Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Hyperlynx DDR3 Batch Simulation
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Работаем с трассировкой
Restinstage
Приветствую!

Использую Hyperlynx, опцию DDRx Batch Simulation для DDR3 (mt41j64m16JT) в связке со Spartan6.
Шина данных выравнена с точностью 1,27мм, в отдельном слое, ширина дорожки 0,1, мин расстояние
между трассами - 3w.
1)Можно ли делать вывод о правильности разводки, ориентируясь только на DDRx Results Spreadsheets,
выдаваемые Batch Simulation?
2)В DDR_report_data_worstcases_Slow.xls не проходят DQ14 и DQ15 по параметру Hold Time Margin (отрицательный),
независимо от используемых в симуляции моделей ODT. Как можно это исправить?
fractcon
Цитата(Restinstage @ May 22 2013, 15:47) *
Шина данных выравнена с точностью 1,27мм, в отдельном слое, ширина дорожки 0,1, мин расстояние
2)В DDR_report_data_worstcases_Slow.xls не проходят DQ14 и DQ15 по параметру Hold Time Margin (отрицательный),
независимо от используемых в симуляции моделей ODT. Как можно это исправить?

Что то у Вас не то. Или шина данных DQ выровнена, а DQS нет.
Setup/Hold это привязка данных к стробу. Длина 1.27mm дает задержку или опережение на 8ps примерно.
Это не та цифра, которая может завалить дизайн.
Restinstage
Стробы и маски у меня, конечно, выровнены с той же точностью, просто они на другом слое (импеданс
в слоях немного различается, но думаю это не так критично).
Сейчас попробовал поиграть с длинами DQ14, 15 в сторону уменьшения, картина чуть улучшилась в плане количества
ошибок, при дальнейшем уменьшении все вернулось. В любом случае не проходят почему-то именно эти две.
Restinstage
Увеличивал длины тех же цепей: где проходит Hold Time Margin не проходит Setup Time Margin.
Не получается найти баланс, все линии данных находятся в одинаковых условиях, полигоны под всеми
без разрывов.
fractcon
Я думаю у Вас неверно выставлены эти самые "margin". Насколько я понимаю тут ситуация такая. Строб щелкает данные по двум фронтам тактовой частоты. Данные меняются также по двум фронтам.
Следовательно расстояние между стробом и двумя сменами данных по TCLK/4 с обоих сторон от строба. Это максимум доступного времени. Или временные окна от строба до и после.
Чуть ближе к стробу, если так можно выразиться стоят времена Setup Time и Hod Time. Далее за ними идут эти самые margin также от строба в разные стороны. И наконец остается еще запас до границ окон.
Примерно так:
Смена данных>>>>запас>>>>setup margin>>>>setup time>>>СТРОБ>>>>hold time>>>>hold margin>>>>запас>>> Смена данных.

И если Вы двигаете трассы длиннее короче и нарушаете то одно margin то другое, значит у Вас неверно выставлены временные параметры. Скажем TCLK/4 для 1833, а margin для 1066.
Тогда конечно в мелком окне если задать громадные пороги никогда не будет баланса.
Restinstage
fractcon, спасибо.
Действительно, косяк был в том что я ставил 800 Mt/s а модели ODT начинаются с 1066.
Теперь с DQ14 и DQ15 все нормально, но по Hold не проходят DQ4-DQ7, только в значительно
меньшем кол-ве случаев, а в SI Spreadsheet у них фэйл по Vref Threshold Multi Cross.
Еще в некоторых появилось такое:
Multi-threshold for the strobe net is found!!! Calculation of setup/hold time is cancelled for this net!
fractcon
Цитата(Restinstage @ May 24 2013, 17:39) *
Multi-threshold for the strobe net is found!!! Calculation of setup/hold time is cancelled for this net!

Похоже трассу колбасит нештатно и в наличии дребезг сигнала, посмотрите осциллограммы. Видимо проблемы с терминаторами.
Uree
В DDR3 нет терминаторов. Точнее они встроенные и дальше только вопрос выбора модели.
Restinstage
fractcon, осциллограммы смотрел, выглядит так будто линия несогласована, на приемнике нехилое падение уровня. Осциллограммы при симуляции цепи в SI Oscilloscope сильно отличаются от тех что выдает Batch Simulation.

Юзал разные модели ODT, картина особо не менялась. И как их выбрать, когда я симулирую линию через осцилл?

Приложил *.hyp файл и IBIS модели, посмотрите, pls, у кого есть Hyperlynx. У меня 8.1.
Александр Карась
модель контроллера делали, или использовали стандартную? Надо обязательно делать стандартную модель и прогонять через DDRx, предварительно выбрав оптимльный вариант по моделям через SweepAnalyzer

Цитата(Restinstage @ May 27 2013, 11:44) *
fractcon, осциллограммы смотрел, выглядит так будто линия несогласована, на приемнике нехилое падение уровня. Осциллограммы при симуляции цепи в SI Oscilloscope сильно отличаются от тех что выдает Batch Simulation.

Юзал разные модели ODT, картина особо не менялась. И как их выбрать, когда я симулирую линию через осцилл?

Приложил *.hyp файл и IBIS модели, посмотрите, pls, у кого есть Hyperlynx. У меня 8.1.

картина на тайминге от модели ODT особо и не зависит. Только на поведение сигнала повлияет.
Выбирается модель на этапе анализа, потом на этапе зашивки выбирается нужная. Осциллографом щупаете уже прошитый контроллер. (см ответ Uree)
fractcon
Цитата(Restinstage @ May 27 2013, 12:44) *
Приложил *.hyp файл и IBIS модели, посмотрите, pls, у кого есть Hyperlynx. У меня 8.1.

Посмотрел, линии DQ7, DQ15, картинку прикладываю, смотрится отлично.
Модель ODT выбирается нажатием кнопки Select, Model Selector. Смотрите картинки
Flood
А насколько в целом адекватен Batch Simulation со стандартной моделью контроллера?
fractcon
Цитата(Flood @ May 29 2013, 23:14) *
А насколько в целом адекватен Batch Simulation со стандартной моделью контроллера?

Я не знаю, никогда не пользовался Batch для Hyperlynx, по идее все это надо строго проверять прежде чем использовать, по времени затратно...
Restinstage
Цитата(Александр Карась @ May 29 2013, 19:30) *
модель контроллера делали, или использовали стандартную? Надо обязательно делать стандартную модель и прогонять через DDRx, предварительно выбрав оптимльный вариант по моделям через SweepAnalyzer


Вы имеете в виду модель, сгенеренную в ISE? Я использовал ту что с сайта Xilinx.
Цитата(fractcon @ May 29 2013, 22:03) *
Посмотрел, линии DQ7, DQ15, картинку прикладываю, смотрится отлично.
Модель ODT выбирается нажатием кнопки Select, Model Selector.

Теперь ясно, спасибо. Значит я смотрел их без ODT модели.
А в DDRx они выбираются как на первой картинке.

Цитата(Flood @ May 29 2013, 23:14) *
А насколько в целом адекватен Batch Simulation со стандартной моделью контроллера?


Важный вопрос. Собственно Hold/Setup, которые у меня не проходят, зависят от файла
DDR3Delays_autogenerated.txt, который генерит DDRx. Если в DDR3 Write Leveling не ставить
флажок, то он каждый раз генерит его заново. Откуда он берет эти цифры непонятно.

"The spreadsheet accepts write-leveling delays for strobe signals, but not for data and data mask signals. Write-leveling delays are only useful when performing write cycle clock-to-strobe skew and setup/hold measurements. Write cycle data and data mask setup/hold measurements are made relative to the strobe and not the clock, so the write-leveling delays are not relevant for those timing analyses."

Еще неясно как конфигурировать работу ODT в "Verify ODT Behavior".

Если полностью разобраться в настройках DDRx Batch Simulation, думаю, не нужно будет перепроверять каждую линию отдельно.
Александр Карась
Цитата(Flood @ May 29 2013, 22:14) *
А насколько в целом адекватен Batch Simulation со стандартной моделью контроллера?

Batch тут не причём. Само ипользование стандартной временнОй модели контроллера некорректно!

Цитата(Restinstage @ May 30 2013, 11:46) *
Вы имеете в виду модель, сгенеренную в ISE? Я использовал ту что с сайта Xilinx.

нет, не поведенческая модель (IBIS), а временнАя - генерится на основании данных даташита конкретного контроллера
Restinstage
Цитата(Александр Карась @ May 31 2013, 11:58) *
нет, не поведенческая модель (IBIS), а временнАя - генерится на основании данных даташита конкретного контроллера


Подскажите пожалуйста как ее генерить и как цеплять к Hyperlynx.
dmitry-tomsk
Помнится у меня проблемы с моделированием были для DQ только с DDR3 в spartan-6 из-за модели s6, осциллограф надо было цеплять on die a не на вывод.
Александр Карась
Цитата(Restinstage @ May 31 2013, 16:56) *
Подскажите пожалуйста как ее генерить и как цеплять к Hyperlynx.

на основании даташита, в HL есть шаблон для нее. Вычисляются данные по времянкам из графиков на даташите, потомпросто вставляете их в программу, которая генерит вам модельку. Потом ее и используете для временного анализа. Это очень важно, т.к. разные контроллеры имеют разные временные характеристики, отличающиеся от стандартной Jedec в разные стороны.
Например, некоторые контроллеры iMX - это вообще дурдом, там очень точно надо выравнивать трассы.
Restinstage
Отлично, нашел, это называется DDRx controller timing model wizard, генерит файлы *.v

В DDRx пункт Specify Timing Models, там и подкидываешь ему модель. Я правильно понимаю, что
меняешь только модель контроллера, а память оставляешь как есть?
Александр Карась
Цитата(Restinstage @ Jul 2 2013, 16:57) *
Отлично, нашел, это называется DDRx controller timing model wizard, генерит файлы *.v

В DDRx пункт Specify Timing Models, там и подкидываешь ему модель. Я правильно понимаю, что
меняешь только модель контроллера, а память оставляешь как есть?

совершенно верно!
Незабудьте выбрать лучшие модели (поведенческие) на оба цикла (R-W) используя SweepAnalyzer. Может повлиять на резутьтаты тайминг-анализа
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.