Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Разбиение сложной платы на несколько небольших
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Altium Designer, DXP, Protel
void F()
Добрый день, уважаемые.
С Altium-ом не так давно работаю, но перешел на него из-за повышения сложности дизайна проектов.
Имеется неразведенная ПП с большим количеством соединений и компонентов. В основном компоненты связаны параллельными шинами (~16-32 линий): от одного компонента идет шина, подключенная к 4-5 ПЛИС/SRAM и т.п; или же у некоторых микросхем имеются связи друг с другом похожими шинами.
Нажмите для просмотра прикрепленного файла
Мне стало страшно на это смотреть. sad.gif Возможно стоит разделить плату на 2-3 планки, соединив их вертикально с помощью коннекторов с колодками (этакий бутерброд получается)? Как это лучше сделать в Altium-e?
Еще вопрос: как вообще выполняются параллельные соединения 4-5 компонентов к одной шине на ПП? В случае с двухслойной платой можно подключить без проблем к шине только 2 компонента (сверху и снизу), я так понимаю.

Заранее спасибо!

PS: Частоты передачи по линиям ~66MHz, исключая тактовые.
Uree
Видимо есть смысл забыть о 2-х слоях, и смотреть на большее их кол-во. Страшного тут ничего нет, все делается. На 4-х слоях уже будет много легче, на 6-ти... один будет лишнимsm.gif
void F()
Цитата(Uree @ Jul 1 2015, 12:43) *
Страшного тут ничего нет, все делается.

Фух.
Цитата(Uree @ Jul 1 2015, 12:43) *
Видимо есть смысл забыть о 2-х слоях, и смотреть на большее их кол-во. На 4-х слоях уже будет много легче, на 6-ти... один будет лишнимsm.gif

Думал о четырех, но китайцы (по крайней мере Itead Studio) не берут на изготовление четырехслойных плат больше 10x10см, а микросхемы - в этом случае - стоят впритык друг к другу.
Кстати, если четырехслойная плата, то два слоя уходят полностью под сигнальные линии? Я честно представить не могу как параллельно подвести 20 линий к четырем микросхемам...
_4afc_
Цитата(void F() @ Jul 1 2015, 15:19) *
Еще вопрос: как вообще выполняются параллельные соединения 4-5 компонентов к одной шине на ПП? В случае с двухслойной платой можно подключить без проблем к шине только 2 компонента (сверху и снизу), я так понимаю.


Разводили же как-то Радио86РК и ZX в двух слоях, с кучей РУшек без всяких альтиумов...
void F()
Цитата(_4afc_ @ Jul 1 2015, 13:25) *
Разводили же как-то Радио86РК и ZX в двух слоях, с кучей РУшек без всяких альтиумов...

Ах, да. Додумался ;-) Шина должна идти по одной стороне, а на второй уже сами подключения.
musa
Цитата(void F() @ Jul 1 2015, 15:19) *
Частоты передачи по линиям ~66MHz, исключая тактовые.


Лихо вы разобрались со слоями. Частота у вас не маленькая и вам наверняка необходимо выравнивать проводники по длине и согласовывать по сопротивлению а это дополнительные слои и место.
Uree
По длине не надо выравнивать. Если шины будут хоть как-то выглядеть как шины, и так получится некритичный разброс длин.
Aner
Никакого разделения иначе надежность плохая, 4-слойки может хватить, про 2-слойку забыть, иначе замучаетесь отлаживать, и все равно придется делать в 4 слоях. Шины необходимо выравнивать по длине и согласовывать по сопротивлению как диф пары так и сигнальные. С питанием отдельный цирк в 4-слойке. Если не было опыта такой разводки плат то не потяните без опытного.
krux
А что говорит ваш схемотехник?
что, формальных требований к разводке платы вообще нет никаких???
void F()
Цитата(krux @ Jul 1 2015, 16:17) *
А что говорит ваш схемотехник?
что, формальных требований к разводке платы вообще нет никаких???

Схемотехник говорит, разводи как хочешь. Собственно, это сейчас он и пишет :-)
Я делал подобное в Sprint-Layout-е, но разбивал на модули: получалось что-то такое: *img*
Я не сколько за надежность переживаю, сколько за помехи в шинах. Но, что ж... Если без 4 слоев никак - будем делать четыре слоя :-)
Не подскажите компанию, которая берет на заказ 4-слоя ПП в мелкой серии (< 10 шт)?

PS: Возможно ли использовать короткий шлейф для соединения труднодоступных шин? Я имею ввиду плоский тонкий шлейф, подобный тем, которые в смартфонах используют.
krux
Цитата(void F() @ Jul 1 2015, 19:34) *
Собственно, это сейчас он и пишет :-)

тогда стоит начать с того что
66 МГц - что у вас там? это какой-то стандарт или самопал?
и если самопал, то шина или куча разваленных (не синхрнонных) сигналов?
если несинхронных, то насколько критично влияние друг на друга?
если несинхронный самопал, и вы не знаете насколько допустимо влияние - то хочу вас заранее предостеречь от развязывания генерального наступления на грабли.

Цитата
Не подскажите компанию, которая берет на заказ 4-слоя ПП в мелкой серии

берёт любая, если выдерживаете их контрольные соотношения.
типа минимальный зазор/проводник и минимальный ободок на переходном отверстии.
void F()
Цитата(krux @ Jul 1 2015, 16:54) *
тогда стоит начать с того что
66 МГц - что у вас там? это какой-то стандарт или самопал?
и если самопал, то шина или куча разваленных (не синхрнонных) сигналов?
если несинхронных, то насколько критично влияние друг на друга?
если несинхронный самопал, и вы не знаете насколько допустимо влияние - то хочу вас заранее предостеречь от развязывания генерального наступления на грабли.

Интерфейс синхронный типа SRAM: шина данных 16бит, шина адреса 24, сигналы чтения/записи/выборки, тактовый сигнал (не дифф.пара). Описанный интерфейс является основным, соединяющим 5 устройств в шине.
Есть еще один синхронный, связывающий две FPGA через FIFO. Остальные линии не критичны.

PS: А что насчет использования шлейфа?

На более высоком уровне схемотехники смотрится не так страшно: sm.gif
krux
а по вашей схеме я вижу 7 устройств на шине S-bus, вместо указанных по вашим словам 5. что я делаю не так?
ключевой момент: кто из них выдает постоянный тактовый сигнал?
void F()
Цитата(krux @ Jul 1 2015, 18:42) *
а по вашей схеме я вижу 7 устройств на шине S-bus, вместо указанных по вашим словам 5. что я делаю не так?
ключевой момент: кто из них выдает постоянный тактовый сигнал?

Источник (master) - устройство в левом верхнем углу, остальные - подчиненные в шине S-Bus.
krux
ок, у вас есть шина 66 МГц на 7 устройств.
обычно в этом случае возможны 2 варианта
1) от Master делается T-дерево. (разветвленное)
2) от Master делается fly-by шина.
в обоих случаях весьма желательно иметь согласованные по импедансу сигнальные линии. здесь надо смотреть предусматривается ли возможность терминации на ваших микросхемах, или нет, и на всех ли.

далее зависит от того, насколько часто на шину выдается очередная команда чтения или записи. В одних случаях удобнее будет разводка "деревом", в другом может быть "fly-by".
void F()
Цитата(krux @ Jul 1 2015, 19:06) *
ок, у вас есть шина 66 МГц на 7 устройств.
обычно в этом случае возможны 2 варианта
1) от Master делается T-дерево. (разветвленное)
2) от Master делается fly-by шина.
в обоих случаях весьма желательно иметь согласованные по импедансу сигнальные линии. здесь надо смотреть предусматривается ли возможность терминации на ваших микросхемах, или нет, и на всех ли.

далее зависит от того, насколько часто на шину выдается очередная команда чтения или записи. В одних случаях удобнее будет разводка "деревом", в другом может быть "fly-by".

Спасибо. Буду разбираться.
krux
проще всего, даже особо не разбираясь, вам будет начать с шины fly-by. протяните по одной стороне платы шину насквозь, сохраняя длины интервалов между переходными на другой слой. а на другом слое сделайте ответвления равной длины до выводов микросхем. это не совсем fly-by, но тоже где-то рядом, и работает. А потом поймёте как сделать лучше и удобнее.
void F()
Ох, крайне дорого выходит четырехслойная плата >10x10cm для моих целей. Средняя цена превышает 120$. sad.gif
А на плате 10x10 выходит так:
Нажмите для просмотра прикрепленного файла
Помещается только половина крупных компонентов. Хм...
void F()
Насчет fly-by в случае ниже я просто веду ответвления к компонентам.
Нажмите для просмотра прикрепленного файла
Не нравится мне эта картина...
void F()
У меня возникают вопросы не того уровня, в котором находится тема. Взгляните на картинку:
Нажмите для просмотра прикрепленного файла
Я попытался разбить плату на части, чтобы упростить разводку. Однако в этом ужасе я даже не знаю с чего начать. sad.gif
Неверное с размещения компонентов? В таком случае каким правилом мне руководствоваться? Как действуют при разводке большого числа компонентов знающие люди?
Микросхема, от которой идет шина, находится слева наверху; мне ее ставить поближе к краю платы?..
agregat
Перестаньте маяться ерундой. И перестаньте оптимизировать еще не начав трассировку.
Порядок работы:
1. Задайте стек платы, решите где и что будет растрассировано.
Хотите компоненты поставить плотно, увеличьте число слоев. Скажем 6 или 8.
Итак число слоев 6. Стек стандартный в интернете найдете раскладку слоев.
2. Определите контур платы.
Решите где будут разъемы, источники питания, высокоскоростные компоненты.
Низкоскоростные компоненты.
Как правило источники питания размещают у разъемов питания,
Высокоскоростные схемы размещают у разъемов которые они обслуживают.
Низкоскоростные схемы служат буфером между питанием и скоростными схемами.
Генераторы вообще лучше задвинуть в отдельный угол подальше от всех.
3. Расставьте все компоненты на плате.
Не смотрите на линии соединений. Просто расставляйте компоненты.
Максимально компактно, чем меньше и короче трассы тем лучше.
Можно попутно тащить трассы
4. После расстановки компонентов проложите 70% трасс, шины данных и шины питания.

Вот в этом месте Вы готовы принять решение по тому сколько слоев, какой размер
и сколько будет стоить плата.

Aner
Это старая идеология едва работает сегодня. Нужно знать блок-схему, схемотехнику, знать стандарты сигналов (требования к ним), шины и их структуру как по питанию, тактированию, так и по обработке данных и передачи на разъемы. Выравнивать длины шин, диф пар. Следить за развязкой, полигонами. Если требуется проводить проверку целосности цепей, сигналов. ... всего сразу и не объяснишь. То что вы тут выкладываете это крохи из которых трудно понять многое, замучают вас советами ненужными. Если есть импульсники, их разводка отдельная тема. Также придется учитавать и технологические стандарты как производства самой платы, так и стандарты ее сброки при разводке.
agregat
Да и еще, возможно Вам понадобится больше слоев, на начальном этапе не бойтесь, ставьте 8.
Главное развести все в заданных габаритах. Потом все оптимизируется до 10 раз.
ViKo
Можно начать разводить на бумаге. Нарисовать компоненты, соединенные шиной, и попытаться эту шину прикинуть. И так раз сэм-восэм, пока не понравится. Разъемы уже имеют, обычно, конкретное расположение, от них и начать плясать. Больше 4 слоев использовать не вижу смысла, если нет BGA корпусов. Внутренние слои - земля, питания, на верхнем слое - большая часть цепей, в том числе и шины, на нижнем - всякие "особые", не пролазящие по верхнему слою.
void F()
Всем большое спасибо. Теперь знаю в каком направлении двигаться.
musa
Цитата(ViKo @ Jul 4 2015, 09:11) *
Больше 4 слоев использовать не вижу смысла,


Сомневаюсь что вы в двух слоях разведете все сигнальные цепи которые у него есть. И не забывайте про согласавание импедансов и длин цепей, для "змеек" тоже нужно место. И кроме того компоненты нужно ставить так чтобы минимизировать разницу в длинах цепей в компоненте и между компонентами. Врядли вы все это сможете сделать на бумаге
Ruslan1
Извините, а в чем сложность платы?
У Топикстартера ужасно расположены элементы на плате, отсюда и проблемы с разводкой.
Там красивая шина получается, нужно просто предусмотреть на плате место для ее проведения. И 66 мегагерц- не те скорости, чтобы специально за выравнивание бороться, хватит просто шины (как тут уже сказали).
Ну и, конечно, 4 слоя а не 2. Про "больше чем 4" - это, мне кажется, перебор. Про "два слоя"- это ненужный и дорогой мазохизм.
Секрет в хорошем расположении элементов, но это приходит с опытом. Нужно делать- и переделывать. У меня не раз бывали случаи что на второй-третий день разводки оказывалось что что-то не так поставил как нужно для разводки, ну и полная переделка связей в какой-то области платы, с потерей времени, но зато с приобретением опыта. Не нужно бояться откатываться назад, нужно только хоть дважды в день сохранять копии (или делать коммиты, кто что пользует). Ну и дней за 5-10 разведете красиво.
ViKo
Цитата(musa @ Jul 4 2015, 10:20) *
Сомневаюсь что вы в двух слоях разведете все сигнальные цепи которые у него есть. И не забывайте про согласавание импедансов и длин цепей, для "змеек" тоже нужно место. И кроме того компоненты нужно ставить так чтобы минимизировать разницу в длинах цепей в компоненте и между компонентами. Врядли вы все это сможете сделать на бумаге


Не все цепи, конечно, а большую часть. Нижний слой использовать в том случае, когда не получается на верхнем. Внутренние слои использовать в исключительных случаях. На бумаге не разводить, а общий принцип набросить, где какой элемент поставить, и как к нему шину тянуть. Выравнивать с точностью до нескольких мм, думаю, не обязательно. Разбежка по времени будет небольшая. Тем более, заглядывать внутрь корпусов... rolleyes.gif Выше советовали разводить шину звездой. Представляете, как согласовывать импедансы у такой шины? Я - нет.

Плотность разводки зависит от диаметра переходных отверстий. Сделайте минимально возможными, и разведется легко. rolleyes.gif



musa
Цитата(ViKo @ Jul 4 2015, 11:34) *
Не все цепи, конечно, rolleyes.gif


Просто у тебя прозвучало так что внутренние слои полностью под питание. С переходными нужно смотреть возможности производителя а то можно налететь на большую стоимость.
Uree
ViKo, а при чем здесь топология шины к импедансу ее трасс?sm.gif Импеданс зависит строго от геометрии трассы на конкретном материале. Ни от сигналов летящих по этой трассе, ни от топологии он не зависит. Хоть звезда, хоть последовательно, хоть в случайном порядке - импеданс трасс будет один и тот же.
На 4-х слойке разводить шину между несколькими СМД корпусами по верхнему слою? Не самое удачное решение - там же будут находиться эти компоненты. Вот как раз максимально по нижнему, с минимальными отводами по верхнему к подключаемым компонентам - это да, работает. Только короткие сигналы есть смысл оставлять на верхнем слое, чтобы они не мешали длинным шинам внизу. Как-то вот так должна такая шина выглядеть:

Нажмите для просмотра прикрепленного файла

Это конечно память, но суть та же - чипы с одной стороны, шина с другой, и к чипам только отводы от переходных.
ViKo
Так у вас будет куча переходных отверстий, которых можно было бы (попытаться) избежать. На нижнем слое удобно ставить развязывающие конденсаторы. Впрочем, не настаиваю...
Импеданс. В формировании сигналов в длинной линии участвуют не только трассы, но и сопротивления источника сигнала и нагрузки.Допустим, от одного выхода пошли две цепи. Какой импеданс будет подключен к выходу? Параллельное соединение двух цепей, так? А если звезда не идеальная, а отвод идет от середины цепи?

upd. Попробовал в LTspice соединить 2 цепи параллельно. Если на конце длинной линии стоит нагрузка с импедансом, равным волновому сопротивлению линии, то сигнал не искажается, независимо от выходного сопротивления источника. Это радует. Топология звездой имеет право на жизнь. Правда, амплитуда сигнала падает. Надо, чтобы выход был мощный (низкоомный).

А в цепочке - амплитуда не падает.

Да, это хорошо, когда стоят 100 Ом терминаторы на конце 100 Омной линии. А если просто КМОП входы? От там красота! crying.gif У звезды длина линии покороче будет. Это плюс.

Пока время распространения сигнала по цепи туда плюс обратно меньше длительности фронта сигнала, волноваться нечего. Да и после не страшно, если сигнал не на тактовый вход триггера идет. biggrin.gif
Uree
Через любой корпус с пинами расположенными не в два ряда провести шину по одному слою не получится. Через несколько компонентов имеющих разный порядок подключения пинов к шине тоже не получится. Поэтому и есть смысл сразу закидывать ее на другую сторону(другой слой) и тянуть по нему с отводами к компонентам. Только из этих соображений.

Насчет импедансов скажем так - импеданс, это исключительно характеристика линии передачи. Что мы к ней подключим и что получим при таком подключении - это уже Вы о целостности сигналов говорите, в комплексе, и тут импеданс только одна из составляющих картины. И в SI столько деталей, что играться можно долго... Короткие линии, длинные, терминаторы на нагрузке, возле источника, и там и там, к питанию или к земле... вариантов масса и каждый может поправить, а может и испортить.
В общем если это реально критично в дизайне, надо думать и моделить, так на глаз угадать, что и как будет практически нереально.
musa
Цитата(Uree @ Jul 4 2015, 16:49) *
Это конечно память, но суть та же


Шикарная разводка. Но память как раз по моему разводится Т образно. А так у вас получаются от разных микросхем разные длины. Или я что то не понимаю.
Uree
Т-образная технология применяется обычно в DDR2. А на скриншоте обычная SDRAM 133МГц(или больше, точно не помню). Нашелся и пример трассировки звездой, пять девайсов, все могут быть как источниками так и приемниками. Но давно его делал, уже не помню, что там было со скоростями. Максимально точно больше 100МГц, но сколько именно - не помню... Ну и кол-во слоев там не 4, а 8 было:

Нажмите для просмотра прикрепленного файла

Но к данному случаю это точно не относится, здесь все проще должно быть.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.