Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как PCB Editor учитывает package delay?
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Cadence
Ant_m
Требуется сделать трассировку DDR3, для чего необходимо учесть задержки распространения сигналов внутри корпуса микросхемы - FPGA.
Для FPGA имеется IBIS модель и модель корпуса (package IBIS).

Может ли PCB Editor расчитывать задержку используя для этого package IBIS модель, или нужно задавать PIN_DELAY? И нужно ли ставить галку в Constrain manager, если используется IBIS модель?

Доки читал, но внятного ответа не нашел...

Нажмите для просмотра прикрепленного файла
Uree
Вписывайте PIN_DELAY, эта галочка как раз их и включает в проверку длин.
Ant_m
Цитата(Uree @ Oct 25 2011, 18:23) *
Вписывайте PIN_DELAY, эта галочка как раз их и включает в проверку длин.

Для FPGA, допустим, я смогу вписать эти значения. А для памяти DDR3 откуда их брать? В то, что у памяти длинна проводков от кристалла до выводов одинакова мне не верится...

Еще смущает вот что, Virtex 6 UG406 p.125:
Цитата
The trace lengths described here are for high-speed operation and can be relaxed
depending on the target bandwidth requirements of the application. The package delay
should be included when determining the effective trace length. The most accurate and
recommended method for determining the delay is to use the L and C values for each pin
from the IBIS models.
The delay value is determined as the square root of (L × C).
Alternatively, a less accurate method is to use the PARTGen utility.

The PARTGen utility generates a PKG file that contains the package trace length in microns
(μm) for every pin of the device under consideration.

Uree
Не мешайте все в кучу - IBIS используется при моделировании, с учетом pin_delay, емкости/индуктивности пинов и т.д. В констрейны параметры из IBIS не входят. Либо вписывайте отдельно, либо добавляйте на уровне библиотеки, это без разницы.
Ant_m
Цитата(Uree @ Oct 26 2011, 10:52) *
В констрейны параметры из IBIS не входят.

Тогда мне совершенно непонятно - зачем PCB editor при каждом касании проводника (add, slide, tune) лезет к библиотеке моделей devices.dml, в которую включены модели IBIS?
Uree
Потому что XNet определены с помощью моделей, а они могут входить в состав констрейнов. Вот и проверяет постоянно.
А в хэлпе правильно написано - временная задержка при моделировании определяется с помощью L/C, но констрейны, как правило, описаны через длины.
И да, в наших дизайнах с DDR3 PIN_DELAY для процов описан, а для чипов памяти нет. Почему - непонятно, но так есть. Возможно действительно эти длины выравнены на уровне чипа памяти, особенно учитывая его мелкий размер. А вот в проце макс. разница доходит до 12мм(это в группе, в целом еще больше), при том что в констрейнах задано выравнивание в 8мм.
Ant_m
Похоже что действительно придется добавлять PIN_DELAY sad.gif Повозился с моделями: добавлял-удалял корпуса, заставил пересчитать buffer delay для pin - в constrain manager ничего не изменяется.
Hoodwin
Ant_m

По-моему, Вы не там блох ловите. sm.gif Задержка распространения сигнала по порядку величины 5-6 пс/мм, то есть даже при разбросе в 12 мм (в процессоре) - это всего 60-70 пс. На основной частоте порядка 500 МГц, период тактовой частоты - 2000 пс. то есть это 3% всего. Вы вот на какую частоту тактирования FPGA рассчитываете? Что-то я не видал пока, чтобы FPGA дотягивали до скоростей памяти, как правило они заметно тормознее памяти.
Ant_m
Hoodwin
В DDR3 некоторые группы сигналов требуют выравнивания между собой с точностью 5-20ps.
Если нужны подробности, то читайте например app note micron TN-41-08. В этом документе, в конце, есть подробно расписанные временные бюджеты.
Hoodwin
1) так это для каких частот то?
2) нужно иметь ввиду, что общие рекомендации везде и всегда идут на грани со здравым смыслом. ну а дальше каждый сам себе злобный буратино.
Uree
Да в том и беда, что когда говорим о DDR3, то речь идет о 1866 или 2133 МГц. Низшие значения не так интересны. И тут реально начинается ловля блох...
Hoodwin
1) Ну, не надо путать data rate и тактовую частоту. Я говорил про частоту, а она вдвое меньше.
2) Так это верно для связи DDR3 - <какой-нибудь новый чипсет от Intel> или DDR3 - <какой-нибудь новый процессор>.
А автор начал тему, упомянув DDR3 в контексте FPGA. А там таких частот сроду не было!
Вот, например, общие сведения для Альтеры по всем семействам.
Как раз что-то порядка 500 МГц на сегодня и есть. Обещают ближе к 1ГГц для новых стратиксов 5, но это когда будет то...

Я вот подключал DDR2 к Cyclone III, для скорости порядка 200/400. Работает, хотя я не заморачивался с выравниваниями длин. Специально их не портил, конечно, но разброс где-то в 10-15 мм там есть.
Uree
На ДДР2 мы тоже не заморачивались выравниваниями. И так все жилО. А вот на ДДР3 все куда хуже.
Кстати, Virtex-7 например DDR3-1866 тянет, вдруг у автора как раз она.
Hoodwin
Так вроде 7 семейство у Xilinx не вышло еще. Я вот жду Kintex-7 или Artix-7, а то пока не к чему Hyperlink от TI цеплять. А TI-то вообще разошлись - 4 пары по 12.5 Gbps каждая, в сумме один линк на 50 Gbps. Альтеры отпали сами собой... Но Kintex существует пока только в видеороликах и общих проспектах... Во всяком случае заказать девборду с ним что-то не получилось...
Ant_m
Цитата(Hoodwin @ Oct 27 2011, 12:06) *
Так вроде 7 семейство у Xilinx не вышло еще.

Свежие новости с полей: Virtex-7 начали отгружать

По теме: У меня в проекте память 1333МТ.
В документе от micron обсчитывается память меньшей частоты(1066) если точность выравнивания трасс 15пс, то запас получается равным 33пс. (20 стр.) У виртекса длинна большей части соединений колеблется от 4 до 10мм. А 33пс это примерно 5мм. Если не учитывать соединения от кристалла до корпуса, то все выравнивания на плате идут лесом...

Соблюдать эти рекомендации или нет, это ваше дело. Но тогда не нужно удивляться что "что-то работает не так". laughing.gif
Hoodwin
А у Вас, если не секрет DIMM или чипы отдельные?
Ant_m
Не секрет. Отдельные чипы - 3шт. причем на каждый свой контроллер, т.е они не связаны в шину.
И что еще хуже приходится это все делать без write leveling, т.к микросхемы близко к ПЛИС стоят.
С DIMM даже проще наверное, чем с отдельными микросхемами - большинство app. note и примеров трассировок даны именно для DIMM.
Hoodwin
Не, совсем как раз наоборот! Без DIMM трассы гораздо короче, в связи с чем не нужен весь этот огород с терминаторами и выравниванием. И это не шутка. Вон у TI стоят 5 корпусов DDR3 800/1600, и все работает без всяких терминаторов (см. картинку: зеленоватый цвет - это слой top, голубоватый - внутренний). И вообще, скорость 1333MT- это 666 МГц, что соответствует длине волны на текстолите около 23 см. На картинке длина линии данных получается порядка 925 мил, то есть 23 мм - в 10 раз меньше! То есть, это еще далеко не длинная линия, для которой верны рассуждения о волновом сопротивлении, скорости распространения волны и т.п. Не говоря уже о том, что у нее вообще есть какие-нибудь однородные параметры вроде распределенной индуктивности и емкости. На самом деле все определяется емкостью этой линии, которая в основном состоит из емкости с общим слоем нуля, и еще кучей паразитных емкостей со всеми соседними трассами, которые местами идут так же близко как и слой нуля.
Uree
Нет терминаторов на адресах в ДДР3? Оригинально...
А рассуждения о воновом сопротивлении, скорости распространения и т.п. верны всегда, независимо от длины линии.
vicnic
Цитата(Hoodwin @ Oct 27 2011, 17:48) *
Не, совсем как раз наоборот! Без DIMM трассы гораздо короче, в связи с чем не нужен весь этот огород с терминаторами и выравниванием. И это не шутка. Вон у TI стоят 5 корпусов DDR3 800/1600, и все работает без всяких терминаторов (см. картинку: зеленоватый цвет - это слой top, голубоватый - внутренний). И вообще, скорость 1333MT- это 666 МГц, что соответствует длине волны на текстолите около 23 см. На картинке длина линии данных получается порядка 925 мил, то есть 23 мм - в 10 раз меньше! То есть, это еще далеко не длинная линия, для которой верны рассуждения о волновом сопротивлении, скорости распространения волны и т.п. Не говоря уже о том, что у нее вообще есть какие-нибудь однородные параметры вроде распределенной индуктивности и емкости. На самом деле все определяется емкостью этой линии, которая в основном состоит из емкости с общим слоем нуля, и еще кучей паразитных емкостей со всеми соседними трассами, которые местами идут так же близко как и слой нуля.


Длина волны здорово, только учитывать-то надо фронт. А это в грубом приближении 1/4 волны.
Не готов спорить по оценочному расчёту, но у меня почему то впечатление, что есть ошибка. Буду посмотреть.
Если неправ - так и напишу.
Ant_m
Цитата(vicnic @ Oct 27 2011, 18:32) *
Длина волны здорово, только учитывать-то надо фронт. А это в грубом приближении 1/4 волны.
Не готов спорить по оценочному расчёту, но у меня почему то впечатление, что есть ошибка. Буду посмотреть.
Если неправ - так и напишу.

+42
Нужно учитывать что форма сигнала не синус! А что-то близкое к прямоугольнику, сглаженному синусом. А такой сигнал имеет гармоники, которые определяют скорость нарастания фронта и среза. Навскидку: 3 и 5 гармоники имеют значительное влияние на форму сигнала. Значит они должны безболезненно проходить по линии. А пятая гармоника от 533МГц это 2,7Ггц... santa2.gif
Hoodwin
Коллеги, я нигде не писал, что не надо учитывать фронт. Ясно, что фронт короче, чем вся волна, оценка была лишь для того дана, чтобы показать, что это еще не длинная линия. Вот возьмите камешек и киньте в воду, в появившиеся круги оформятся в волну только где-то после пары длин этой волны. А вблизи источника это по другому выглядит. Понятно, что формализм длинной линии удобен, потому что позволяет перейти от расчету емкостей проводников к простому расчету длин линий, но это идеализация, и об этом не стоит забывать.

Я не хочу, чтобы дискуссия сильно ушла от исходной темы. К сожалению, пока нет времени более подробно расписать по поводу терминаторов. Поэтому постараюсь более кратко и по существу. Вот смотрите. Для 1333МТ половина периода тактовой частоты - это 750 пс. Предположим, что окно данных - это всего треть этого интервала (на самом деле, я думаю, при боле высоких гармониках и больше), то есть окно данных - 250..400 пс. Автор начал тему с того, что хочет учитывать задержки в проводниках корпусов, разброс которых пока оценил в 30 пс. То есть, это примерно на порядок меньше, чем окно данных. При этом автор не озвучил, на что он "разбазарил" остальные 90% бюджета окна данных. Вот поэтому я считаю, что если нет четкого понимания, на что потрачены 90% бюджета, то экономия на 10% - это ловля блох.
Uree
Да что Вы длинные линии сюда мешаете... на платах ими и не пахнет. Но вопросы согласования от этого никуда не деваются.
Ant_m
Цитата(Hoodwin @ Oct 28 2011, 12:38) *
При этом автор не озвучил, на что он "разбазарил" остальные 90% бюджета окна данных. Вот поэтому я считаю, что если нет четкого понимания, на что потрачены 90% бюджета, то экономия на 10% - это ловля блох.


Вы, видимо, упорно не хотите даже пролистать TN-41-08: Design Guide for Two DDR3-1066 UDIMM Systems, на который я ссылался несколько постов назад... Ну раз так, то привожу страничку с примером "разбазаривания" времени.
Нажмите для просмотра прикрепленного файла
Hoodwin
Так это, там ключевое слово - UDIMM - в названии. sm.gif Это не то же самое, что и отдельные корпуса борт в борт с ПЛИС.

Добавление:
Кстати, если Вы заметили, в этой табличке понятие total skew состоит из трех слагаемых, два из которых составляют 80% от суммы, и называются memory controller skew, то есть взяты в расчет с некоего потолка, описывают некоторый среднестатистический контроллер, а вовсе не тот конкретный, что стоит у Вас в ПЛИС. И в итоге в общем бюджете все согласования длин как таковые составляют 15 пс из 450, то есть 3%. А если еще вернуться к собственно обозначенной теме - задержке от кристалла до вывода микросхемы, то из 15 пс придется вычесть те 10, которые относятся к трассам на плате. И в итоге останется та самая блоха - 1%, о котором я говорю. Все учебники по оптимизации гласят, что если берешься что-то оптимизировать, то ищи сначала те факторы, которые дают наибольший вклад в явление.
Ant_m
Да я собственно, не уговариваю делать так как написано. Каждый трактует информацию как ему угодно. Не хотите делать как рекомендует Micron, TI, Altera, Xilinx - Ваше право! 08.gif
ИМХО топик скатился в оффтопик. bb-offtopic.gif Предлагаю эту тему дальше не развивать.
anton85
Подскажите, чем обусловлено требование на максимальную длину трассы?
В рекомендациях на любой чип или контроллер оно есть, но как его получить?
Uree
Если оно есть в рекомендациях, то оттуда и берите. А если нет, значит не надо ничего дополнительно усложнять.
_Sergey_
А в каком месте хранится PIN_DELAY у компонента? В уго, футпринте или отдельно?
EvilWrecker
Цитата(_Sergey_ @ Mar 22 2017, 11:21) *
А в каком месте хранится PIN_DELAY у компонента? В уго, футпринте или отдельно?

В редакторе плат: File-Import-Pin Delay. Можно другой магией но это самый простой путь.
Uree
Хороший вопрос... Не знаю точно есть ли в Capture возможность их задать, но в Authoring точно была непосредственно на уровне схемныой библиотеки. А реально как правило уже на уровне BRD-файла они участвуют, непосредственно туда и импортировал такие данные, либо из референсов, либо сам писал файлы с инфой о Pin Delay, ничего сложного в них нет.
_Sergey_
Цитата(EvilWrecker @ Mar 22 2017, 11:23) *
В редакторе плат: File-Import-Pin Delay. Можно другой магией но это самый простой путь.

beer.gif
Задача - раздобыть задержки из дизайна или библиотеки для конкретного корпуса.
В библиотеке уго не нашел. Где копать дальше?
Uree
Ищите в дизайне. В СМ, в свойствах компонентов можно увидеть их наличие. И если прописаны, то экспортируйте, а потом втяните в свой дизайн.
_Sergey_
Цитата(Uree @ Mar 22 2017, 11:41) *
Ищите в дизайне. В СМ, в свойствах компонентов можно увидеть их наличие. И если прописаны, то экспортируйте, а потом втяните в свой дизайн.

Спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.