Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как из .brd извлечь длины трасс с учетом Z axis delay?
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Cadence
sast777
нужно для выравнивания длин трасс на мезанине, подключаемом к Xilinx ML605.brd
В проекте ML605 .brd сделано выравнивание длин в дифф парах, и так как проводники пары идут от FPGA к разему в одном слое, они не учитывали Z axis.
(Setup>Constraints>Modes>Electrical Modes> чекбокс "Z axis delay" пустой)
Мне на мезанине надо выровнять и пары между собой; пары идут по 5 и 14 слоям, между 5 и 14 миллиметр. Многовато.

как вывести из Allegro PCB Editor длины трасс в дифф парах с учетом Z axis,
или еще лучше - propagation delay time pin-to-pin (c учетом propagation velocity factor in via ), порядка 30 цепей.
Ant_m
Вообще для этих целей в Allegro есть интерфейс DesignLink(см Allegro® PCB SI User Guide). Он вроде как позволяет состыковать между собой 2 brd файла для моделирования и констрейнов. Но мне пока это делать не приходилось, поэтому это чистая теория...

А как вытащить длинну с Z-axis не знаю. Никогда такой задачи не было.
Uree
Непонятно вообще, при чем тут длина трасс на мезанине(я так понимаю это отдельная плата) и Z axis delay.
Суммарная длина трасс - понимаю.
Учет длины(высоты/глубины) переходных при проверке выравниваний - тоже понимаю.
Но Вы хотите их смешать в очень странный коктейль...
sast777
Мне нужно для разработки сопрягаемого с ML605.brd проекта извлечь из из проекта ML605.brd длины трасс, с учетом длины (высоты/глубины) в переходных.
Может я и зря упомянул Z axis delay - просто мне он кажется единственным параметром, учитывающим длины (высоты/глубины) в переходных

Спрошу по другому: Как из .brd извлечь длины трасс с учетом длины (высоты/глубины) в переходных?
Uree
Генерите "Etch Length by Net Report". Путем несложных преобразований этого отчета получаете список длин нужных цепей. Дальше эти длины закладываются в констрейны проектируемой платы в часть Delta установки Relative Delay Match Group-ы.
А Z-axis delay здесь будет мало актуален - ведь это диффпары, если будете переходить со слоя на слой, то переходить обоими трассами, значит выравнивание внутри трассы останется на месте. А выравнивать трассы между собой с точностью пары мм... можно конечно, если Вам реально важна временная точность порядка 10-15пс, только тогда не забудьте прописать Pin Delay в компонентах своей платы и откуда-то извлечь их из ML605 sm.gif
Правда все просто?sm.gif Вы точно уверены, что это необходимо?
sast777
нужно именно выровнять
1) трассы в паре - это понятно как, через Pin Delay; Pin Delay - из Xilinx ISE;
2) пару к паре - есть требование: "The difference in track length between the Data and Strobe signals shall be less than 5 % of the track length and no more than 5 mm."

Стандарт слов нет как кривой в части требований к PCB, да не я стандарт писал - мне ему остается соответствовать.

Так что 2 мм (это два via) на плате ML605 - почти половина от 5 мм. А еще впереди 3 разъема и 30 метров кабеля...

Так что вопрос в пикосекундах, хотя за совет спасибо.

Через DesignLink - спасибо, как раз сделан инструмент для моего случая.

Правда нюанс - я собрался мезанинчик в Mentor Expedition сделать :-) Expedition мне привычней;
тут другая беда, в Expedition аналога Pin Delay просто не знаю; у Mentor'ов то, что я пробовал - дифф паре не смог задать разные длины цепей в констрейнах.

Посмотрю как pin-to-pin propagation time из ML605 через SI извлечь...
vitan
А что это за интерфейс такой трассируется, у которого диф.парами сделаны сигналы строба и данных?
ЗЫ. Если экспедишен более привычен, то что же Вы не юзаете его в DFL mode? Оно как раз то что надо в данном случае.
Uree
30м кабеля и выравнивание между парами в пикосекунды? Не верюsm.gif Ни один кабель не позволит так точно выравнять провода в нем. Так что чего-то Вы не так поняли...

ЗЫ Не знаю точно, что за интерфейс, но в XDR/XDR2 насколько помнится все сигналы дифференциальные. Правда кабеля такому интерфейсу никак не прикрутишь, поэтому у ТС явно какой-то другой случай.
vitan
Цитата(Uree @ Nov 26 2011, 14:09) *
30м кабеля и выравнивание между парами в пикосекунды? Не верюsm.gif Ни один кабель не позволит так точно выравнять провода в нем. Так что чего-то Вы не так поняли...

ЗЫ Не знаю точно, что за интерфейс, но в XDR/XDR2 насколько помнится все сигналы дифференциальные. Правда кабеля такому интерфейсу никак не прикрутишь, поэтому у ТС явно какой-то другой случай.

А откуда кабель взялся? Я так понял, ТС делает мезонин в экспедишене для платы, которая в аллегро.
sast777
Пардон оЧепятка вышла, хотелось "Вопрос НЕ В ПИКОСЕКУНДАХ", да вот "НЕ" пропало - вечер, пятница..
Я ж писал - Требования к PCB - "The difference in track length between the Data and Strobe signals shall be less than 5 % of the track length and no more than 5 mm."
Стандарт SpaceWare ECSS-E-ST-50-12C, легко гуглится. Или

Код
5.5 PCB and backplane tracking
5.5.1 General
As well as routing SpaceWire signals through a cable, the signals can also be
transmitted across a PCB or along a backplane.
Only point to point connections are supported on a PCB or backplane, not
multi‐drop bus structures. Bus type structures are built from point to point
connections between nodes on the backplane.
5.5.2 Differential signal pairs
5.5.2.1 Differential impedance
a. Differential pair signals shall run on a pair of close, parallel PCB tracks
with a differential impedance of (100 ± 6) Ω.
NOTE This differential impedance can be achieved by
adjusting the track thickness, width, separation
and height above the ground plane.
5.5.2.2 Difference in track length for a differential pair
a. To avoid skew between the two parts of the differential signal, the
difference in track length between the two signals from a differential pair
shall be less than 5 % of the track length and no more than 5 mm.
5.5.2.3 Difference in track length for Data and Strobe
a. The skew introduced between the Data and Strobe (D and S) signals shall
be minimized as specified here. For PCB tracks, skew is controlled by
making the tracks all close to the same length.
b. The difference in track length between the Data and Strobe signals shall
be less than 5 % of the track length and no more than 5 mm.


К xilinx EVB ML605 (из его .brd и нужно извлечь длины трасс) надо сделать возможность подключения кабелей этого самого SpaceWare; это мезанин с разъемами SpaceWare.
Трактовать можно и как 5мм это допуск в одной плате линка; Я предпочитаю удовлетворить жесткому условию 5мм - на весь тракт.
Рассмотрение ECSS-E-ST-50-12C - это не здесь, плз.

За идею Expedition in DFL mode - спасибо, не обратил внимания, что такое есть. Попробую.

По моему тему надо закрывать - я руками я бы быстрее вынул нужную инфу из ML605.brd :-)
вопрос был как это сделать средствами CAD - в пару кликов.
Uree
Как я и предполагал, у Вас проблема в переводе оказалась. Пункт 5.5.2.2 говорит о разнице в длинах сигналов внутри пары:
"To avoid skew between the two parts of the differential signal, the difference in track length between the two signals from a differential pair..." - Во избежание асимметрии двух членов дифф.пары разница длин трасс между двумя сигналами (из) дифф.пары должна быть менее 5% и не более 5мм.
Речь о разбросе длин внутри пары, только и исключительно. Static tolerance Вам в помощь и сводите эту разницу к нулю. И можете не заморачиваться Z axis delay и остальными наворотами.
sast777
2 Uree:

Нюанс в том, что и Data, и Strobe - каждый есть пара LVDS, 400MHz max;

Пункт 5.5.2.2 - согласен, перевод исчерпывающий. И вот тут-то на следующей строке:
5.5.2.3
a. bla bla bla
b. The difference in track length between the Data and Strobe signals shall be less than 5 % of the track length and no more than 5 mm

Если хотите лучше понять о чем речь, сюда плз. тыц

Зачем мой топик - сначала p. 43, "5.5 PCB and backplane tracking", потом p. 50, Table 6: Example jitter and skew budgets at 400 Mb/s, "PCB/connector skew"

Возвращаясь к теме, жаль, что в Allegro нет такого репорта - трассы с учетом длин переходов. Правда в Expedition год только как появился.
То есть подразумевают использовать DesignLink.
Uree
Все данные есть.
Constraint Manager - создать Match Group, собрать в нее нужные цепи, в установках анализа включить Z axis delay. Теперь в столбцах Length и Delay в строке Pin_Pair(PPR) получите данные о длине/задержке с учетом переходных для заданного стэка платы.

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

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

Дальше выделяйте нужные данные, копируйте и используйте как необходимо.
sast777
спасибо Uree, помогли.

Хотя тут у Cadence или ну оочень тонкая фича, либо просто баг. 16.5, 9-й update. По моему на багрепрорт тянет.

Я с этого тулза, куда Вы меня послали, и начинал, Analyze Modes> Electrical Options> check Z axis delay, почему о Z axis и топик.

НО!

1. Я открываю проект, захожу в Analyze Modes> Electrical Options, вижу check Z axis delay - unchecked> cancel,
выделяю Length в relative propagation delay (нужные мне цепи уже в match у ML605 бордоделов); F9
смотрю длины.

2. Снова захожу в Analyze Modes> Electrical Options > check Z axis delay>Apply, выделяю Length; F9
смотрю длины - ничего не изменилось.

3. Снова захожу в Analyze Modes> Electrical Options > uncheck Z axis delay>Apply, выделяю Length; F9
смотрю длины - опять ничего не изменилось.

Закрываю Cmgr, открываю Cmgr, повторяю 1,2,3.

Повторяю 1,2,3 n раз. По прежнему длины не изменяются.

Матерюсь, открываю здесь топик - не люблю людей дергать там, где сам могу разобраться;
регюсь на cadence community - шоб и им покоя не было, если тут не помогут;

И тут Вы, Uree, перестаете играть в несознанку :-)

Ага! значит про Z axis - это ЖЖЖ неспроста, cнова долблюсь в 1,2,3; и в процессе долбления как-то сделав check Z axis delay > Apply, ВНИМАНИЕ ! выхожу из Cmgr.

Снова захожу в Analyze Modes> Electrical Options, вижу check Z axis delay - CHECKED> cancel, выделяю Length в relative propagation delay; F9

И - ЗАРАБОТАЛО!!

Резюме:

В моем случае оказалось, чтобы изменения, внесенные в режим Analyze Modes> Electrical Options> check (или uncheck) Z axis delay,
учитывылись при Analyze, НУЖНО ВЫЙТИ И СНОВА ВОЙТИ в Cmgr.



Uree
Насколько я понял, Z axis delay срабатывает только при расчете длин цепей, собраных в Match Group. По крайней мере по другому, т.е. просто на странице relative propagation delay в СМ, я разницу увидеть не смог.
Как только собрал цепи в группу - сразу же, без выходов и перезагрузок, включаю Z axis, жму F9 на группе - одна длина, выключаю Z axis, жму F9 - другая.
Т.е. для меня все прозрачно - в группе считается, по отдельным цепям - нет. В общем логично...

ЗЫ А в несознанку я не игралsm.gif Просто во-первых на самом деле еще ни в одном проекте не использовал Z axis, не было необходимости. Знаю, что он есть, но как работает, точно не знаю. А во-вторых уж сильно надуманными требования казались, особенно когда Вы упомянули "3 разъема и 30 метров кабеля". Собственно я их и до сих пор считаю завышенными, особенно для частот в районе 400МГц, но ладно, SpaceWare... надо... sm.gif
Просто у нас есть проблемы, с выравниваниями, но на DDR3-2133. На 1600 и ниже проблем нет. Так требование выравнивать не точнее 8мм! Поэтому мне и не верится в требования 5мм на 400Мгц. Тем более даже по их расчетам временного бюджета получается около 100пс, а это примерно 14ммsm.gif Но пусть будет 5мм, с запасом так сказать...
В общем проверил как что работает и отписал по сути.
sast777
Если Вы выравнизмом страдаете, ровняте по критерию времени, а не length;
так проще не забыть, что mirosrtripline и stripline имеют разные TOF.

HyperLynx считает что разница для что mirosrtripline и stripline ~15%

Если у Вас тяжелая форма выравнизма, тогда почитайте www.ultracad.com/mentor/microstrip%20propagation.pdf
Uree
Я как раз не страдаю. И почитал и посчитал и помоделировал уже очень не мало.
Но на тех скоростях, которые в DDR3, без него уже никуда. Это к сожалению проверили - 3 редакция платы, а стабильности в работе с ОС нетsad.gif
А по времени выравнивать смысла нет - требования/рекомендации производителя проца описаны в длинах. Плата 4-х слойная, поэтому линии передачи только одного типа. И дизайн по готовности проходит процедуру валидации у производителя проца...
sast777
2 Uree
Я просто хотел напомнить, будьте бдительны - выравнивать нужно по времени, а не по длине.
Писатели стандарта/производители проца не задумываются, как юзер сделает свою PCB.
Они свой test board сделали весь во внутренних слоях, чиподелы на спичках (PCB) не экономят - и пишут равняйте длины.

Смысл имеет только time budget.


Uree
Я в курсе. Но наши "чиподелы" делают чипы как раз оптимизированные на минимум слоев готовой платы, фактически все процы разводятся в 4-х слоях. Так что дизайн практически один к одному с референсом.
sast777
2 Uree
Этот топик с Вашей помощью закрыт - ответ помог, спасибо;

Если не NDA'но - то что к чему Вы приколачиваете, и как понял не без заноз?
И может лучше откроете на что-то типа "DDR3-XXXX на 4-х слойке?"

Заинтриговало - а сколько ж гектар у Вас 4-х слойка (2 слоя для разводки), чтобы все для DDR3-XXXX выровнять? Сколько бит?
Uree
NDA, но немного сказать можно - к процу от броадкома цепляется 32-х битная ддр3.
Гектаров никаких нет, полный размер платы 192х140мм.

А вот так выглядит кусочек с памятью:

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

Отркывать какие-либо топики на тему бессмысленно - все дизайны верифицируются броадкомом. Машину инициализации памяти они проверяют, корректируют и дают в закрытом виде. Мы знаем, что там есть какие-то регистры, но не знаем как оно работает и что на что и как влияет. Так что простора для фантазии мало, зато есть жесткие требования - какая группа, к какому клоку/стробу с каким опозданием и разбросом должна быть выравнена. Такие дела...
sast777
Если time budget соблюден, но не фурычит - ищите crosstalk'и. Хотя вроде все короткое...

Судя по тому,что с вашей конторой броадком общается и ваши дизайны верифицирует - не один десяток кодеров у вас зряплату ежемесячно получает.
Помножте их ежемесячное жалованье на число кодеров, сравните со стоимостью n-слойки - и сделайте экспериментальную более чем 4-х слойку, например 8 сигнальных, с предельно короткими и несвязанными трассами.
Досыпьте кондеров- на память и на проц. Кондеров именно тех, что в BOM EVB Broadcom. Особенно если фурычит, но есть редкие сбои.
Сделайте каждое питание как полигон, сопряженный с землей через самый тонкий диэлектрик, который есть у PCB изготовителя. Изолируйте каждый слой питания от другого слоя питания слоями земли. (организуйте кондеры с предельно малым ESR в плате). Это например еще 8 слоев.

Пара-другая K$ и пара недель на PCB+assembling+DHL - за 16-ти слойку на фоне зарплаты даже десятка кодеров - не деньги, на столько наверно кодеры кофе в месяц выхлебывают, матеря сбои :-).

Просто получите рабочее железо, сделанное Вами, а не броадкомом. Убедитесь, что ваш софт работает на Вашем железе, а не на EVB Broadcom.

Дедуктивно: раз с Вами Броадком общается - тиражи должны быть в мегаштуках. Для мегаштук уже переразводите в несколько итераций на n-2 слоя.

Если на выходе получите стабильно работающую плату на 8-слойке - это всяко лучше, чем сбоящая 4-х слойка. Переживут маркетоиды плату на 5$ дороже. Ну не получат бонус...

Пардон за напоминание об основах, но мне лично несколько раз помогало - когда со стороны тормозили: Может лучше задумаешься - а зачем трясешь-то? :-)

Если Ваш CEO экономической эффективности такого пути не понимает и ну оочень хозяйственный, хочет все сразу и дешево - соболезнования...
Uree
Извините sast777, но экономика не Ваш конекsm.gif Все, что Вы посчитали, актуально для десятков-сотен штук. но переплачивать миллионы за многослойный дизайн... ни одного оправдания.

А все Ваши мысли по поводу реализации дизайна сделаны изначально, ничего нового Вы не сказали. Наверное не на одной сотне процов продукты выпущены.
sast777
Я екклезиаста помню и не надюсь что то новое сказать..
Спасибо, мне Ваш совет помог. Потому и трачу время, вдруг повторенные мной азы (не сомневаюсь, что Вы это знаете) помогут.

Вы правы, я не маркетоид, но что такое даже 1$ умноженный на миллион понимаю.

Но я на свой шкурке знаю, зачастую важнее - Ваше изделие дешевле, лучше, но - на рынке Вы уже 100-й?

Если Вам не влом топтать клаву - мне интересна Ваша стратегия.

Как Вы собираетесь рвать замкнутый круг - где баг в железе?

Ну не работает Ваша 4-х слойная плата - что дальше?

Мерять нечем -приборы на 10GHz дороже разработки плат на 2 а то и на 3 порядка, да и пока их освоите...

Модели - у Вас есть хороший signal integrity engineer, с опытом, который по IBIS моделям скажет - по моему здесь лажа?

N итераций в 4-х слоях - пока одна из них не проработает сотню часов без виса?

Если не видите смысла в продолжении трепа, скажите плз. А так - удачи в нашей борьбе с багами.
Uree
Да можно и потрепаться, если не очень затягивать сей процесс, почему бы и нет?

Цитата(sast777 @ Nov 29 2011, 11:19) *
Но я на свой шкурке знаю, зачастую важнее - Ваше изделие дешевле, лучше, но - на рынке Вы уже 100-й?


Самое интересное - хоть 1001-йsm.gif Покупатель голосует рублем/долларом/евром/... Поэтому на самом деле, на мировом рынке быть первым конечно немеряно круто, но куда важнее предлагать более выгодное соотношение функциональность/стоимость.
Вот из такой постановки задачи и пляшем: время вывода продукта на рынок - как можно быстрее, функциональность - на уровне конкурнетов, цена - минимально достижимая.

Цитата(sast777 @ Nov 29 2011, 11:19) *
Мерять нечем -приборы на 10GHz дороже разработки плат на 2 а то и на 3 порядка, да и пока их освоите...


Ну почему сразу нечем? Оборудование есть, апдейтится практически каждый год, по крайней мере специализированные, типа DVB-T генераторов-тестеров и подобного. Иначе как тестить все, что проектируется.
Да, вот купленных масок для тестов DDR3 нет, в отличие от например USB HS. Но тут логика другая:

Цитата(sast777 @ Nov 29 2011, 11:19) *
Модели - у Вас есть хороший signal integrity engineer, с опытом, который по IBIS моделям скажет - по моему здесь лажа?

N итераций в 4-х слоях - пока одна из них не проработает сотню часов без виса?


Нет, SI инженеров, в прямом смысле этого слова у нас нет. Просто смотрите: покупая процы, мы тем самым покупаем к ним и базовый setup(он фактически уже включен в стоимость железа). И сделать его - не наша задача. Я же писал - мы не знаем, как внутри устроен контроллер памяти и какие его настройки на что влияют. Его готовит производитель чипа, на нашей плате в том числе. И это его инженеры делают тесты DDR3 и его SI инженеры сидят и думают, почему идентичный дизайн на их плате работает, а на нашей нетsm.gif
А наши кодеры в это время уже переносят на новую платформу(обычно на референс) клиентский софтsm.gif

Вот и получается - максимально дешевое железо, например в разы дешевле сделать ЭМС-экран на проц+память, чтоб не фонить из пластикового корпуса в эфир, чем сделать вместо 4-х слойки 6-ти слойку, спрятав быстрые цепи на внутренние слои. Так же остальные компоненты - минимальная цена решения, при условии что оно удовлетворяет поставленным требованиям.

Со временем тоже, все итерации от многослойки до 4-х слоев займут в разы дольше времени. Да и бессмысленно надеяться, что дизайн, нормально работавший на 16-ти слоях однозначно правильно будет себя вести на 4-х. Обязательно всплывут эффекты на многослойке в принципе не наблюдавшиеся и их придется решать, способами, в предыдущих вариантах вообще не нужными...

Так что способ с итерациями хорош, когда времени много. А когда нужно сейчас начать, и чтобы к Евро-2012 у клиентов боксы уже работали в квартирах - такой способ не прокатывает, увы...
И самое главное: дело ведь даже не в стоимости процесса разработки - итерационный процесс в принципе не позволяет рассчитать конечную цену устройства. А без такого рассчета нет смысла даже начинать разработку.
Знаете, как говорит наш президент фирмы - "Мы здесь собрались не для того, чтобы сделать лучше, чем у всех. Мы здесь собрались, чтобы зарабатывать деньги." И таки он прав...
falling_stone
Уважаемый Uree,
Позвольте дилетантский совет: поэкспериментируйте с емкостями на VREFах, в том числе и на проце. Емкости и на землю и на питание, параллельно делителю.
Как выглядят слой земли и питания, если можно, покажите картинку.
Кроме этого, (простите за банальность) проверяли ли импеданс на плате на соответствие заданному при проектировании? Контролируется ли он производителем?
Равны ли импедансы на верхнем и нижнем слоях?
Проверьте питание DLL, (я гадаю, но наверняка в чип они введены через фильтры).
И еще одно: возможно, Вы принимаете за сбой памяти проблему с ядром чипа. Это может особенно проявляться, если чип сделан по одному из последних процессов, и его потребление меняется в разы, в зависимости от занятости, и/или он сам управляет своим источником. Источник питания не успевает среагировать, что в совокупности в не всегда верной разводкой (Опять, таки, гадаю, в Вашем случае не видел, но есть линии sense, на питание и (гораздо реже) на землю, позволяющие скомпенсировать большую часть статического падения напряжения на никовольтных/высокоамперных цепях, не все их корректно присоединяют) может приводить к разнообразным чудачествам. И если при этом чудит кэш, например, то это может восприниматься как проблема памяти.
Всего Доброго,
Ф.С.
Uree
Спасибо конечно всем за советы. Но у нас полное разделение труда - я сейчас никакого отношения к поиску проблем в том дизайне не имею. Ребята им занимаются и пусть занимаются. Если выяснят в чем конкретно была проблема - отпишусь.
Не забивайте себе головуsm.gif Я это просто в качестве примера трассировки привел, когда и выравнивания не помогают.

ЗЫ А питания, и VREF, и DDRV, и PLL и остальное в порядке, это было первое, что проверялось. Проблема именно в таймингах, потому что на 1333МГц все работает как часы. На 1600 уже появляются ошибки. На 2133 даже не всегда начальная инициализация проходит...
Ant_m
Маленькое ИМХО по картинке - дифф пары DQS слишком плотно лежат рядом с другими проводниками. Получается что расстояние между проводниками в дифф паре (5-6 на красном слое) и просто рядом идущими (4 на красном слое ) почти одинаковое...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.