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

    

Hyperlynx DDR batch simulation

Развел плату с несколькими процами.

TMS320 + DDR3 и OMAP L138 + DDR2.

Моделирование DDR3 прошло на ура. Вот картинки

post-11606-1522754365_thumb.png

post-11606-1522754474_thumb.png

 

DDR2 все плохо

post-11606-1522754543_thumb.png

форма сигнала:

post-11606-1522754634_thumb.png

 

Что в нем плохого? Мне он кажется вполне приемлемым. И что делать с платой? Или я что-то неверно задаю в hyperlynx?

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


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

В разделе Data Read тоже самое? А в модели на OMAP есть селектор выбора буффера? Если есть, то можно попробовать там поиграться.

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


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

В Data Read тоже bad signal по всем пунктам.

А в модели на OMAP есть селектор выбора буффера? Если есть, то можно попробовать там поиграться.
Есть. Только два варианта. Пробовал оба. Всегда bad signal.

 

post-11606-1522857462_thumb.png

 

 

Решил все начать с самого начала. Смутило вот это:

The following controller nets have inconsistent differential pins attached, based on IBIS modeling:

 

Clock Net: DDR_CK_N  ---
   Pin: D1.K8  (-)    IBIS Signal: u69a.ibs [MT47H128M16RT] CK#
   Pin: U1.W7  (not differential)    IBIS Signal: omapl138_zwt.ibs [OMAP-L138ZWT] DDR_CLKN

Clock Net: DDR_CK_P  ---
   Pin: D1.J8  (+)    IBIS Signal: u69a.ibs [MT47H128M16RT] CK
   Pin: U1.W8  (not differential)    IBIS Signal: omapl138_zwt.ibs [OMAP-L138ZWT] DDR_CLKP

Data Strobe Net: DDR_LDQS  ---
   Pin: D1.F7  (+)    IBIS Signal: u69a.ibs [MT47H128M16RT] LDQS
   Pin: U1.T14  (not differential)    IBIS Signal: omapl138_zwt.ibs [OMAP-L138ZWT] DDR_DQS0

Data Strobe Net: DDR_UDQS  ---
   Pin: D1.B7  (+)    IBIS Signal: u69a.ibs [MT47H128M16RT] UDQS
   Pin: U1.V11  (not differential)    IBIS Signal: omapl138_zwt.ibs [OMAP-L138ZWT] DDR_DQS1

 

Сигналы DQS у OMAP и правда не дифференциальные. А вот с CLK похоже проблема.

Открываю ibis на TMS320 - есть раздел diffpin

post-11606-1522859803_thumb.png

Открываю ibis на OMAP раздела diffpin не вообще

post-11606-1522859863_thumb.png

 

Да действительно IBIS файл на OMAP L138 кривой https://e2e.ti.com/support/dsp/omap_applica...s/f/42/t/235021 и похоже TI не собирается его дополнять.

Добавил в IBIS:

[font="Courier New"]|********************  DIFF PIN  *******************************
[Diff_pin]  inv_pin   vdiff  tdelay_typ  tdelay_min  tdelay_max
W8         W7       NA       NA          NA          NA       || DDR_CLKP & DDR_CLKN[/font]

Остаются еще вот такие предупреждения

post-11606-1522861832_thumb.png

Data read и data write по прежнему bad signal, на зато теперь появилась вкладка Address где все сигналы Pass.

post-11606-1522861690_thumb.png

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


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

похожий вопрос про i.mx6

 

модели с ODT только входы (вроде кажется вполне разумным такое - что выход без ODT работает, но я не уверен), при этом если их ставить в ODT models / ODT enabled - hyperlinx ругается

Controller pin: U1003.G3 (DRAM_SDBA0) --Model is input only, but needs to be output or I/O

Model:

\ibis\mx6sx_bga17x17NP_autmtv.ibs[mx6sx_bga17x17NP] ddr3lodt_t60_sel11_mi

 

список моделей из файла ниже

 

с моделью самой памяти все нормально - там ODT модели вход-выход

 

в принципе ни разводка ни стекап платы не менялись (то есть есть очень похожая плата с рабочей DDR3 из которой кусок скопипасчен), но гиперлинк говорит, что работать не будет

 

когда я задаю модель *mi на ODT и игногрирую предупреждение гиперлинкса - получается вообще все плохо, когда задаю вместо ODT mio модель чуть лучше, но все-равно достаточно большое количество ошибок и в обе стороны (read/write)

 

сильно хотелось бы разобраться с этими ошибками/моделями, прежде чем отдавать плату в производство

но при этом хотелось бы получить это "искоропки" - так как Mentor рекламирует это DDR batch simulation

если это возможно и я просто не ту кнопку жму - спасайте :)

 

[Model Selector] ddr                                     
ddr3_sel11_ds111_mio                     DDR, 1.5V, ddr3 mode, 34 Ohm driver impedance
ddr3_sel11_ds110_mio                     DDR, 1.5V, ddr3 mode, 40 Ohm driver impedance
ddr3_sel11_ds101_mio                     DDR, 1.5V, ddr3 mode, 48 Ohm driver impedance
ddr3_sel11_ds100_mio                     DDR, 1.5V, ddr3 mode, 60 Ohm driver impedance
ddr3_sel11_ds011_mio                     DDR, 1.5V, ddr3 mode, 80 Ohm driver impedance
ddr3_sel11_ds010_mio                     DDR, 1.5V, ddr3 mode, 120 Ohm driver impedance
ddr3_sel11_ds001_mio                     DDR, 1.5V, ddr3 mode, 240 Ohm driver impedance
ddr3l_sel11_ds111_mio                    DDR, 1.35V, ddr3l mode, 34 Ohm driver impedance
ddr3l_sel11_ds110_mio                    DDR, 1.35V, ddr3l mode, 40 Ohm driver impedance
ddr3l_sel11_ds101_mio                    DDR, 1.35V, ddr3l mode, 48 Ohm driver impedance
ddr3l_sel11_ds100_mio                    DDR, 1.35V, ddr3l mode, 60 Ohm driver impedance
ddr3l_sel11_ds011_mio                    DDR, 1.35V, ddr3l mode, 80 Ohm driver impedance
ddr3l_sel11_ds010_mio                    DDR, 1.35V, ddr3l mode, 120 Ohm driver impedance
ddr3l_sel11_ds001_mio                    DDR, 1.35V, ddr3l mode, 240 Ohm driver impedance
ddr3odt_t17_sel11_mi                     DDR, 1.5V, ddr3 mode, 17 Ohm ODT
ddr3odt_t20_sel11_mi                     DDR, 1.5V, ddr3 mode, 20 Ohm ODT
ddr3odt_t24_sel11_mi                     DDR, 1.5V, ddr3 mode, 24 Ohm ODT
ddr3odt_t30_sel11_mi                     DDR, 1.5V, ddr3 mode, 30 Ohm ODT
ddr3odt_t40_sel11_mi                     DDR, 1.5V, ddr3 mode, 40 Ohm ODT
ddr3odt_t60_sel11_mi                     DDR, 1.5V, ddr3 mode, 60 Ohm ODT
ddr3odt_t120_sel11_mi                    DDR, 1.5V, ddr3 mode, 120 Ohm ODT
ddr3lodt_t17_sel11_mi                    DDR, 1.35V, ddr3l mode, 17 Ohm ODT
ddr3lodt_t20_sel11_mi                    DDR, 1.35V, ddr3l mode, 20 Ohm ODT
ddr3lodt_t24_sel11_mi                    DDR, 1.35V, ddr3l mode, 24 Ohm ODT
ddr3lodt_t30_sel11_mi                    DDR, 1.35V, ddr3l mode, 30 Ohm ODT
ddr3lodt_t40_sel11_mi                    DDR, 1.35V, ddr3l mode, 40 Ohm ODT
ddr3lodt_t60_sel11_mi                    DDR, 1.35V, ddr3l mode, 60 Ohm ODT
ddr3lodt_t120_sel11_mi                   DDR, 1.35V, ddr3l mode, 120 Ohm ODT
lpddr2_sel10_ds111_mio                   LPDDR, 1.2V, lpddr2 mode, 34 Ohm driver impedance
lpddr2_sel10_ds110_mio                   LPDDR, 1.2V, lpddr2 mode, 40 Ohm driver impedance
lpddr2_sel10_ds101_mio                   LPDDR, 1.2V, lpddr2 mode, 48 Ohm driver impedance
lpddr2_sel10_ds100_mio                   LPDDR, 1.2V, lpddr2 mode, 60 Ohm driver impedance
lpddr2_sel10_ds011_mio                   LPDDR, 1.2V, lpddr2 mode, 80 Ohm driver impedance
lpddr2_sel10_ds010_mio                   LPDDR, 1.2V, lpddr2 mode, 120 Ohm driver impedance
lpddr2_sel10_ds001_mio                   LPDDR, 1.2V, lpddr2 mode, 240 Ohm driver impedance

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


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

Модель контроллера я скачал.

Если пришлете или укажите ссылку на модель вашей памяти.

То могу попробовать поиграться в предтопологическом режиме.

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

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


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

спасибо.

 

я тему еще одну создал, но спрошу и тут - а нет ли возможности выжать из проекта топологии представление в виде линий задержек и абстрактной пасивки как в проекте linesim? топологию я пересылать "как есть" боюсь, чтобы не поиметь неприятностей по работе

если нельзя - то почищу все кроме этих двух микросхем и перешлю

 

прикладываю память и ddr визард

MT41K64M16TW

 

----------

 

upd: есть подозрение, что разводчик поменял топологию DDR - то есть я еще проверю формально по длинам проводников. но чтоб было :) - выкладываю редуцированый проект, там стекап из-за радио достаточно странный, но так надо - прошу обратить внимание на Zo по слоям где разведена DDR - по-моему, какое-то странное это Zo - посмотрите и на это, пожалуйста (по заявлениям мануфактуры должно быть 50 Ом)

 

---------

upd2: поправил стекап - задал plane-ы по слоям с землей - импедансы стали больше похожи на требуемые, но симуляция все-равно fail

также смотрю на задержки в linesim после экспорта - вроде бы разброс в допустимых ps

v88a_1p35_it.7z

Luscinia2_Rev4.2_800_60ohm.ddr.7z

public.7z

corect_planes.7z

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


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

 

я тему еще одну создал, но спрошу и тут - а нет ли возможности выжать из проекта топологии представление в виде линий задержек и абстрактной пасивки как в проекте linesim? топологию я пересылать "как есть" боюсь, чтобы не поиметь неприятностей по работе

если нельзя - то почищу все кроме этих двух микросхем и перешлю

 

прикладываю память и ddr визард

MT41K64M16TW

 

----------

 

upd: есть подозрение, что разводчик поменял топологию DDR - то есть я еще проверю формально по длинам проводников. но чтоб было :) - выкладываю редуцированый проект, там стекап из-за радио достаточно странный, но так надо - прошу обратить внимание на Zo по слоям где разведена DDR - по-моему, какое-то странное это Zo - посмотрите и на это, пожалуйста (по заявлениям мануфактуры должно быть 50 Ом)

 

---------

upd2: поправил стекап - задал plane-ы по слоям с землей - импедансы стали больше похожи на требуемые, но симуляция все-равно fail

 

 

А параметры стека правильные? Я поставил плейнами 2, 4, 6, 7, 9 и 11. Но просто смотрю получившийся импеданс на адресах и данных и он всего 36-38 Ом.post-512-1523646016_thumb.png

Вот при таком стекеpost-512-1523646928_thumb.png получим нужный импеданс.

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


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

можно предположить (другой информации у меня нет) если производитель говорит, что с такой толщиной препрегов требуется 0.08мм ширина дорожки для 50Ом и они будут контролировать импеданс - то может эпсилон у материала меньше. я с производством плат (и подготовкой документации для этого) имею дело не часто. но вот если прижмет, то приходится разбираться.

я ставил Er=3 и получал Zo 45-50 ОМ

 

непонятный кстати момент - почему при симметричном стекапе на симметричных слоях у меня получается разный Zo ??

 

но все-равно симуляция (с 40 Ом драйверами в моделях) не проходит, хотя ошибок меньше.

я так понимаю, что 40 Ом драйвера в моделях/микросхемах лучше согласованы будут - но нужно будет в linesim для отдельных цепей посмотреть...

 

 

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


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

я ставил Er=3 и получал Zo 45-50 ОМ

 

непонятный кстати момент - почему при симметричном стекапе на симметричных слоях у меня получается разный Zo ??

 

но все-равно симуляция (с 40 Ом драйверами в моделях) не проходит, хотя ошибок меньше.

я так понимаю, что 40 Ом драйвера в моделях/микросхемах лучше согласованы будут - но нужно будет в linesim для отдельных цепей посмотреть...

Откуда взята такая цифра Er=3? Вы поинтересуйтесь у производителя плат, они же делают и знают. А только затем закладывайте в проект. У таких призводителей обычно есть опция измерения импеданса.

Просто вот интересно если это не роджерс, то что за препреги с таким эпсилон у вас?

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


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

я ставил Er=3 и получал Zo 45-50 ОМ

 

непонятный кстати момент - почему при симметричном стекапе на симметричных слоях у меня получается разный Zo ??

 

но все-равно симуляция (с 40 Ом драйверами в моделях) не проходит, хотя ошибок меньше.

я так понимаю, что 40 Ом драйвера в моделях/микросхемах лучше согласованы будут - но нужно будет в linesim для отдельных цепей посмотреть...

При такой настройке 800_40ohm.7z стека и визарда, ошибок в моделировании нет.

 

У меня импеданс одинаковый, просто в присланном вами, слой 2 не был плейном, поэтому и разница в Zo.

 

Чтобы быть уверенным в результатах моделирования нужно чтобы все параметры стека были близкими к тому что будет на производстве. Ведь все это влияет на время прохождения сигналов и их форму.

Я вижу что в топологии есть трассы (идущие на память) шириной 90мкм, 80мкм, и даже 75мкм.

 

Это вариант визарда 800_40ohm_2.7z тоже работает

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


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

огромное спасибо.

но, по-моему, дизайн плохой - CK короче DQS-ов,

то есть write leveling работать не будет. нужен ли этот write leveling для point-to-point непонятно, но вроде как формальное требование нарушено (а в рабочем дизайне, на который я сослался этого нарушения нет)

 

то есть придется с ddr разбираться, а настройки я сейчас проверю.

 

Откуда взята такая цифра Er=3? Вы поинтересуйтесь у производителя плат, они же делают и знают. А только затем закладывайте в проект. У таких призводителей обычно есть опция измерения импеданса.

Просто вот интересно если это не роджерс, то что за препреги с таким эпсилон у вас?

 

Er=3 это мои фантазии - то есть взяв толщины препрегов и ширины проводников как константы, подобрал, чтобы было близко к 50 Ом (ну чтобы проверить влияние на результат симуляции)

то есть у меня есть эксельная табличка от производителя, где стекап и толщины проводников для 50 Ом по разным слоям

материал не роджерс, текстолит, но там весьма хитрое производство (NEC) поэтому может и не FR-4, но из-за сложности общения я выяснять не буду

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


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

проходит по всем углам.

но не понимаю, что я не так делал - наверно, где-то неаккуратно с заданием стекапа или еще где-то просмотрел. теперь не могу добиться, чтобы были ошибки :)

еще раз спасибо.

 

 

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


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

Ну у вас всё с ног на голову поставлено. Потому, что никак не нужно подбирать Er, его должны дать для различных материалов он разный. Под FR-4 кучи различных материалов есть, но с 3 никогда не встречал, обычно от 4.2 до 5.2. И там особый момент это анизотропность. В даташитах это по вертикале материала FR-4, если он расположен горизонтально. А горизонтальный Er= 2.9 ... 4.0, но с частот выше определенной. Часто делают ошибки не зная о анизотропности на скоростых трассах применяя марки FR-4.

 

CK короче DQS-ов может быть читайте AN вашего DDR3L. write leveling может и не работать вовсе на низких скоростях, где оч большие задержки допустимы.

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

 

С DDR3, DDR3L всегда обходился 100, 70 микронными трассами, не приходилось уменьшать или использовать другие. Платы были 8-12 слойки. Но тут от стека, препрега выбор тоже зависим.

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


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

да, есть такое. но у меня была еще задача разобраться с гиперлинксом (все-таки инструмент крайне редко мной используемый), то есть хотелось иметь как успешные, так и неуспешные результаты ddr batch, сравнить их с linesim-ом для отдельных проводов/различных импедансов ibis моделей и т.д.

 

по поводу этой платы - выяснилось, что стекап мне прислали не тот - то есть в результате взаимодействия собственно разработчика платы и производства было несколько итераций и толщина препрегов менялась, то есть в финальной версии эти проводники 0.08/0.09 на разных слоях дают примерно 50 Ом

 

 

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


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

Как учитывается (и учитывается ли) Pin Delay при моделировании вообще и в DDR Batch Simulation в частности? Насколько вижу никак не учитывается, отсюда вопрос - а как учесть?

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти