Перейти к содержанию
    

Здравствуйте.

Я собираюсь первый раз делать плату с DDR3. По методике разводки, в принципе, всё понятно. Но есть один неясный момент. Согласно изученным мной рекомендациям, необходимо при разводке учитывать длину линий передачи внутри чипа. То есть, от кристалла до шарика BGA. Вопрос заключается в том, как и где найти документ с точными значениями этих длин. В документации от памяти (Micron.com) и стандарте JESD79-3F я их не нашёл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Совет очень простой держись ближе к середине диапазонов значений, помни, что клок может быть чуточку длиннееи когда сделаешь черновой вариант просто просиммулируй это вот все безобразие в хайперлинкс или в цст.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для DDR2/3/4 никаких данных не будет. У них всё выровнено внутри чипа уже. Приглядитесь под чипом под шариками на внутренних слоях плат чипа есть все выравнивания в виде соответствующих змеек до шарика BGA, их видно. Выравнивание делается на другой стороне flight time у FPGA, проца. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, Aner said:

Для DDR2/3/4 никаких данных не будет. У них всё выровнено внутри чипа уже. Приглядитесь под чипом под шариками на внутренних слоях плат чипа есть все выравнивания в виде соответствующих змеек до шарика BGA, их видно. Выравнивание делается на другой стороне flight time у FPGA, проца. 

Подскажите пожалуйста тогда, в какой документации указан данный факт. Чтобы при обсуждении деталей проекта мне было на что сослаться, как минимум.

По поводу DDR4 - там всё-же указана package delay в пикосекундах (например, документ от той же Micron "8Gb: x4, x8, x16 DDR4 SDRAM Features", начиная со стр. 311). Хотя, она там указана, как диапазон значений и тоже придётся уточнять, как с ней быть, в случае её использования. А вот именно в даташитах на DDR3 подобных таблиц я и не нашёл.

Также, заодно хотелось-бы спросить, возможно-ли вытащить значения package delay из моделей для симуляции, например HSpice или IBIS (они предоставляются производителем)?

Изменено пользователем MadMan M
уточнение

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какая планируется максимальная частота работы? Для скоростей DDR3 package delay, как правило, ещё не актуален.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, Corvus said:

Какая планируется максимальная частота работы? Для скоростей DDR3 package delay, как правило, ещё не актуален.

1066 Mb/s. Однако, в UG586 (стр. 198) сказано, что package delay нужно учитывать ("The package delay should be included when determining the effective trace length."). Собственно, на стороне ПЛИС-то всё понятно (это будет либо Artix-7, либо Zynq - ещё программисты не определились, что им нужно). Вообще, я нашёл по этой ссылке http://zedboard.org/content/ddr3-routing-zedboard-rev-c интересную фразу: "Micron DDR3 timing is specified at the package ball, therefore, the DDR3 package delays do not need to be included in the calculations." Но вот где про это у микрона найти информацию - непонятно. Я открыл в Notepad++ IBIS модель микроновской DDR3, но по задержкам там ничего толком не нашёл. При этом, в подтверждение Ваших слов, по той же ссылке, которую я привёл, также указано. что при разработке ZedBoard Rev C задержки внутри микросхемы Zynq не учитывались и устройство работает нормально. Однако, они же рекомендуют остальным оные задержки учитывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

25 minutes ago, MadMan M said:

1066 Mb/s. Однако, в UG586 (стр. 198) сказано, что package delay нужно учитывать ("The package delay should be included when determining the effective trace length."). Собственно, на стороне ПЛИС-то всё понятно (это будет либо Artix-7, либо Zynq - ещё программисты не определились, что им нужно). Вообще, я нашёл по этой ссылке http://zedboard.org/content/ddr3-routing-zedboard-rev-c интересную фразу: "Micron DDR3 timing is specified at the package ball, therefore, the DDR3 package delays do not need to be included in the calculations." Но вот где про это у микрона найти информацию - непонятно. Я открыл в Notepad++ IBIS модель микроновской DDR3, но по задержкам там ничего толком не нашёл. При этом, в подтверждение Ваших слов, по той же ссылке, которую я привёл, также указано. что при разработке ZedBoard Rev C задержки внутри микросхемы Zynq не учитывались и устройство работает нормально. Однако, они же рекомендуют остальным оные задержки учитывать.

Не стоит заморачиваться задержками чипа DDR (даже DDR4), достаточно взять задержки источника (FPGA). Если это чип от Xilinx, то задержки можно получить из Vivado (в пикосекундах). Чтобы быть спокойным за выравнивание вы можете его сделать более точным, чем указано в UG583. Я обычно делаю 1мм для шин адресса, 0.5мм для данных.

Изменено пользователем toretto

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Собственно Toretto правильно говорит, разводите байты данных, адресов, свапите как удобно,  а далее, когда начинаете ровнять, подгружаете из вивады pin delay, и дело в шляпе.  ЗЫ. я обычно выравнивание до порядка 5пс. В аллегро это прекрасно делается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подниму тему :) Сразу отмечу, что можно просимулировать время прохождения в том же Hyperlynx, но интересна именно метода и юзабельность в разрезе Altium Designer.

Например, если взять Zynq XC7Z030SBG485, то из Vivado можно вывести список, где для каждого пина (кроме power разумеется) указывается Min Trace Delay (ps) и Max Trace Delay (ps). Для пинов DDR эта разница может составлять до 67 пс. Если брать DDR3-1600 от Micron, то рекомендуется разбег не более 10 пс. Пусть данный разбег взят с большим запасом и для 800 МГц разностью трасс внутри Zynq можно пренебречь, но сейчас речь немного о другом.

Для Altium Designer можно учесть это время flight time, но только не в пс, а в мм/mil в виде параметра Pin package length. Допустим, все-таки необходимо учесть длину трасс внутри Zynq, как это сделать используя имеющиеся данные по задержкам? Для FR4 известно примерное время распространения сигнала - 6.5 пс/мм, а как вычислить длину внутри Zynq не зная скорости распространения?

Можно, конечно, сделать очень оценочный расчет типа среднее между Max и Min Trace Delay поделить на 6.5 пс/мм и получить "относительную" длину трасс внутри Zynq, но насколько эти значения будут близки к реальности? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут связываться с Altium Designer брать большой риск, так как нужны табличные пересчеты, например в эксел и тп. Пару парней прокололись переделывали платы. Проблема еще в том, в каком стеке, слое располагать трассы, разные задержки получите, особенно верхний и внутренний, + переходы. Разница на первый взгляд не так уж и велика, но все же вы обламываетесь на эпсилон для FR-4, так как он оч разный для вершних частот в спектре, также продольный эпсилон отличается от вертикального, что нужно учитывать. А если у вас 800 Мгц при DDR3, то вам частотку нужно учитывать до 5..7 гармоники, что под 4..5ГГц, иначе завал фронтов не учтете. В этом плане оркад много лучше, не говоря про экпедишн.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Про Оркад и Экспедишн согласен, но речь именно про Альтиум (без вариантов). Про стек, слои, переходные и виа, сам материал платы и его свойства - все понятно. Вопрос больше по юзабельности этого самого Pin package length. Есть же проекты, например, тот же Zedboard, в которых эти длины внутри корпуса вообще не учтены и как-то платы работают :)

 

Скажем так: стОит использовать хотя бы "относительную" длину или нет? Эта "относительная" длина делает примитивное выравнивание по длине всей трассы более точным или наоборот вредит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну тогда потолочный совет среднее меду Min Trace Delay (ps) и Max Trace Delay (ps). И далее переводите через таблицу в нужные длины трасс с учетом всего того.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, Lehin_05 сказал:

Подниму тему :) Сразу отмечу, что можно просимулировать время прохождения в том же Hyperlynx, но интересна именно метода и юзабельность в разрезе Altium Designer.

Например, если взять Zynq XC7Z030SBG485, то из Vivado можно вывести список, где для каждого пина (кроме power разумеется) указывается Min Trace Delay (ps) и Max Trace Delay (ps). Для пинов DDR эта разница может составлять до 67 пс. Если брать DDR3-1600 от Micron, то рекомендуется разбег не более 10 пс. Пусть данный разбег взят с большим запасом и для 800 МГц разностью трасс внутри Zynq можно пренебречь, но сейчас речь немного о другом.

Для Altium Designer можно учесть это время flight time, но только не в пс, а в мм/mil в виде параметра Pin package length. Допустим, все-таки необходимо учесть длину трасс внутри Zynq, как это сделать используя имеющиеся данные по задержкам? Для FR4 известно примерное время распространения сигнала - 6.5 пс/мм, а как вычислить длину внутри Zynq не зная скорости распространения?

Можно, конечно, сделать очень оценочный расчет типа среднее между Max и Min Trace Delay поделить на 6.5 пс/мм и получить "относительную" длину трасс внутри Zynq, но насколько эти значения будут близки к реальности? 

1. "Zynq XC7Z030SBG485, то из Vivado можно вывести список, где для каждого пина (кроме power разумеется) указывается Min Trace Delay (ps) и Max Trace Delay (ps)." - Длины для конкретного чипа выводятся через команду в Vivado: "partgen -v xc7z020clg484"

2."Для Altium Designer можно учесть это время flight time, но только не в пс, а в мм/mil в виде параметра Pin package length" - В Excel файле, после выгрузки, получаем значения в пс. Требуется высчитать время задержки сигнала, которое необходимом "накрутить" на плате.  ( К примеру: даны 3 задержки - 10пс, 16.5пс. 23пс. Учитывая вышесказанную задержку на FR4 в 6.5пс/мм - Для первой задержки сигнала добавляем 2мм,, для второй добавляем к трассе 1 мм, третью оставляем без изменения. Таким образом компенсируется задержка сигнала в кристалле за счет дополнительных длин на плате). 

3. "Для FR4 известно примерное время распространения сигнала - 6.5 пс/мм, а как вычислить длину внутри Zynq не зная скорости распространения?" - все очень условно, что касается FR4. Расположение волокон материала, непостоянство диэлектрической проницаемости от места платы и температуры нагрева. Мы для таких целей используем Megtron - обладает температурной стабильностью и низким тангенсом угла потерь. (в том же FineLine он теперь закупается с запасом и всегда в наличии.

4. Необходимую длину задежки в Altium Designer указывают при помощи X-сигналов или в фоотпринте элемента (второй способ я лично не опробовал еще). 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Quote

- Длины для конкретного чипа выводятся через команду в Vivado: "partgen -v xc7z020clg484"

Наш программист перепробовал много разных способов вывода из Вивадо инфы про package length и во всех случаях генерится именно задержка (что на самом деле более правильно), а не длина выводов

Quote

В Excel файле, после выгрузки, получаем значения в пс. Требуется высчитать время задержки сигнала, которое необходимом "накрутить" на плате.

Это решение лежит "на поверхности". Пока так и сделано через перевод пс в мм используя значение 6.5 пс/мм. И данная инфа внесена на уровне паттерна простым действием "умная вставка" из Excel. Вопрос в другом: значение 6.5 пс/мм вряд ли соответствует действительности и получаем "относительные" длины внутри корпуса. Если бы Альтиум умел выравнивать трассы не в мм, а в пс, то вопросов бы вообще не было... Вряд ли тут требуется большая мощность вычислений. Стекап задан, Dk проставляется, скорость распространения сигнала в зависимости от материала можно запросить на фабриках. Типовых материалов не так и много, чтобы один раз сделать эту работу. А сейчас получается надо выровнять длину, потом симулировать и получать пс, а потом снова ровнять длину и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну да такой трах в Альтии. На фабрике дадут постоянную вертикальную для материала из их даташита. К примеру для FR-4 ( e~4.5 на 100Мгц; у многих производителей на 1000Мгц не нормируется ) а горизонтальная на 1 ... 2 меньше. Да симулировать целостность в гиперлинксе, потом подгонять в AD длину, снова симулировать.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...