|
|
|
DDR Wizard, Моделирование перекрёстных помех и учёт заливки внутри "гармошек |
|
|
|
May 7 2018, 23:13
|
Местный
Группа: Свой
Сообщений: 232
Регистрация: 8-06-05
Из: Москва
Пользователь №: 5 847
|
Здравствуйте. 1. При моделировании перекрёстных помех в модуле DDRx Batch-Mode Wizard в окне Coupling Settings есть возможность включить флаг Include Trace to trace coupling. В руководстве про данный флаг сказано: "Enable to model trace-to-trace coupling. Note: When you multiple nets and disable this option, the software still models trace-to-trace coupling for the selected nets that meet coupling thresholds."
Вопрос: на что повлияет данный флаг при моделировании DDR3? Не дублирует ли данный флаг переключатель Use electrical thresholds? 2. На рисунке ниже приведён пример трассировки сигналов DQ DDR3. Видно, что часть проводников имеет заливку полигоном между сегментами "гармошки" одной цепи, а часть - нет. Известно, что время распространения и форма сигналов в этих различных условиях будут отличаться из-за отличающихся параметров взаимной ёмкости между сегментами "гармошек" (в случае с заливкой землёй ёмкостная связь между сегментами "гармошки" одной цепи отсутствует).
Вопрос: учитывает ли DDRx Batch-Mode Wizard при моделировании ЦС заливку полигоном между сегментами "гармошки" одной цепи? Как лучше поступить, если нет возможности обеспечить заливку полигоном всех областей трассировки цепей: привести всё к единообразию, везде удалив заливку, или оставить заливку там, где это возможно, для снижения перекрёстных помех? Спасибо.
|
|
|
|
|
May 8 2018, 05:37
|
Участник
Группа: Участник
Сообщений: 20
Регистрация: 3-10-05
Из: г. Владимир
Пользователь №: 9 178
|
Цитата(Stepanich @ May 8 2018, 02:13) Как лучше поступить, если нет возможности обеспечить заливку полигоном всех областей трассировки цепей: привести всё к единообразию, везде удалив заливку, или оставить заливку там, где это возможно, для снижения перекрёстных помех?
Спасибо. В любом случае - лучше конечно привести все к единообразию (вся группа должна быть в одинаковой среде, допустим BL0), везде удалить заливку, этим вы избавитесь от лишних антенн и не надо высчитывать как измениться дополнительно емкость/индуктивность и как они повлияют на скорость передачи сигнала. Сделайте для этих цепей опорный слой с низким потенциалом (GND). А перекрестные помехи и так снизятся за счет разнесения линий друг от друга - этого вполне достаточно. Как правило зазоры от 3W до 5W (W - толщина проводника), смотря между какими линиями. Самое главное придерживаетесь правил, которые написаны в спецификации на DDR.
--------------------
|
|
|
|
|
May 8 2018, 09:40
|
Гуру
Группа: Модераторы
Сообщений: 4 361
Регистрация: 17-08-04
Из: КП Две Поляны
Пользователь №: 512
|
В новых версиях немного другие настройки
Как можете заметить, учитываются все влияния. Про указанную опцию теперь в доке написано " Checked, includes the effects of crosstalk among various signals in the memory interface. Aggressor nets for signals that are not in the memory interface are simulated and driven with a PRBS stimulus, using the same bit order you specify for non-strobe and non-clock nets." Также заметьте: The following simulation types use independent crosstalk threshold settings. These settings are available from the dialog boxes associated with each simulation type: General Batch simulation SERDES Batch simulation DDRx simulation IBIS-AMI and FastEye channel analysis - for SERDES designs
Если отключена опция Include trace to trace coupling, и выбрано несколько цепей, то все равно учитывается взаимное влияние между ними. Т.е. в данном случае не учитывается влияние остальных, не выбранных цепей.
--------------------
Чем больше познаю, тем больше понимаю ... насколько мало я все таки знаю. www.megratec.ru
|
|
|
|
|
May 8 2018, 12:23
|
Знающий
Группа: Свой
Сообщений: 551
Регистрация: 3-09-10
Из: Беларусь, Минск
Пользователь №: 59 267
|
Цитата Видно, что часть проводников имеет заливку полигоном между сегментами "гармошки" одной цепи, а часть - нет. Известно, что время распространения и форма сигналов в этих различных условиях будут отличаться из-за отличающихся параметров взаимной ёмкости между сегментами "гармошек" (в случае с заливкой землёй ёмкостная связь между сегментами "гармошки" одной цепи отсутствует). У вас довольно щедрые зазоры между аккордеонами - если адекватно сделан референс, то думаю что влияния на задержку они практически никакого не окажут. А вот островная заливка GND выглядит действительно инородно, с такими минимальными зазорами она как минимум повлияет на импеданс.
|
|
|
|
|
May 9 2018, 16:01
|
Местный
Группа: Свой
Сообщений: 232
Регистрация: 8-06-05
Из: Москва
Пользователь №: 5 847
|
Товарищи, спасибо за ответы. 1. Skat-pro, под W вы имеете в виду не толщину, а ширину (width) проводника? В нашей плате под цепи DDR отведено 4 сигнальных и 5 опорных слоёв: есть области, где не получается соблюдать правила зазоров в несколько проводников:
2. fill, я правильно понимаю, что флаг Include trace to trace cpuling включать не нужно, если рядом с цепями DDR нет проводников-агрессоров? Т. е. если я включаю в моделирование все типы цепей (адреса, команды, данные, строб, такт), то симулятор будет рассматривать все комбинации сигналов? И как разделить пороги (Electrical thresholds) для униполярных и дифф. сигналов? Может, поставить минимально возможное значение 10 мВ, пожертвовав временем моделирования? 3. Aner, это не термопады, а переходные отверстия от компонентов на нижней стороне платы, их нельзя убирать, если вы предлагаете использовать глухие ПО, то это также недопустимо. Почему Вы предпочитаете тромбоны? 4. ClayMan, в п. 1 я привёл рисунок, где видно, что зазоры большие не везде. Островных частей в заливке нет, это запрещено на уровне Planes Processor (в рисунок не вошли истоки заливок). А вот на импеданс заливка влияет не сильно:
Общие вопросы: 1. Если нет возможности обеспечить 3W зазоры между всеми цепями, то каким цепям отдать предпочтение (например, обеспечить зазоры 3W только для цепей CK, и xDQS)? 2. Нужно ли размещать ПО к опорному слою рядом с ПО с сигнальных проводников (как указано, например, в WP420: "Where “layer-jumping” is necessary, return path continuity is easily achieved by inserting GND vias close to the signal vias.")? На рисунке ниже приведён снимок опорного слоя. Видно, что часть ПО с сигнальными проводниками находится далеко от ПО к опорному слою.
|
|
|
|
|
May 10 2018, 08:17
|
Гуру
Группа: Модераторы
Сообщений: 4 361
Регистрация: 17-08-04
Из: КП Две Поляны
Пользователь №: 512
|
Цитата(Stepanich @ May 9 2018, 19:01) fill, я правильно понимаю, что флаг Include trace to trace cpuling включать не нужно, если рядом с цепями DDR нет проводников-агрессоров? Т. е. если я включаю в моделирование все типы цепей (адреса, команды, данные, строб, такт), то симулятор будет рассматривать все комбинации сигналов? И как разделить пороги (Electrical thresholds) для униполярных и дифф. сигналов? Может, поставить минимально возможное значение 10 мВ, пожертвовав временем моделирования? Да, если флаг не включен, то на взаимные влияния рассматриваются только те цепи, которые выбраны для моделирования. Порог не разделяется. Взаимные влияния всегда есть, просто внутри дифф. пары это благо, а вне это зло.
--------------------
Чем больше познаю, тем больше понимаю ... насколько мало я все таки знаю. www.megratec.ru
|
|
|
|
|
May 15 2018, 13:00
|
Местный
Группа: Свой
Сообщений: 232
Регистрация: 8-06-05
Из: Москва
Пользователь №: 5 847
|
Fill, спасибо за ответ. Ещё вопросы: 1. Результаты моделирования циклов чтения из памяти DDR/800Mbps показывают ошибку
Как вычисляется значение Initial Delay Delta в цикле операций чтения из памяти? Связано ли оно с параметром tDQSQ, указанным во временн ой модели для памяти (ddr3_dram.v)? В качестве временн ых моделей для памяти и контроллера используются стандартные модели из библиотеки HyperLynx. В документации сказано, что Initial Delay Delta = (tDQSQ(max) – tDQSQ(min))/2. Из временн ой модели на память (ddr3_dram.v) имеем: `else `define DDR3_800 //Table 68 in 79-3F parameter tDQSQ = 200; parameter tQH = 0.38; parameter tDQSCK = 400; parameter tDQSS = 0.25; parameter tDSS = 0.20; parameter tDSH = 0.20; ///////////////// tDQSQ(max) = 200 пс; tDQSQ(min) = - 200 пс. Соответственно, Initial Delay Delta = 200 пс. Согласно результатам моделирования (из таблицы) Initial Delay Delta = Hold Time (From Sim) - Min Hold Time = 250 пс. Почему Wizard использует значение 250, а не 200 пс? 2. В документации сказано: «RAM timing models are standardized since the timing specifications at the DRAMs are specified by the JEDEC standards. However, controllers can have timing requirements that differ from vendor to vendor» Значит ли это, что для корректных результатов нельзя пользоваться стандартной временн ой моделью контроллера? 3. Должна ли временная модель контроллера включать в себя значения Setup Derate Time Delta, d(tDS)? Или иными словами, верно ли, что значение параметра Setup Derate Time Delta, d(tDS) равно 0 для текущего случая (чтение из памяти)?
|
|
|
|
|
May 17 2018, 13:13
|
Знающий
Группа: Свой
Сообщений: 551
Регистрация: 3-09-10
Из: Беларусь, Минск
Пользователь №: 59 267
|
Цитата Значит ли это, что для корректных результатов нельзя пользоваться стандартной временной моделью контроллера? Да, для контроллера нужно создавать свою кастомную timing-модель с помощью даташита и встроенного визарда (он поможет сделать это по шагам).
|
|
|
|
|
May 19 2018, 17:40
|
Местный
Группа: Свой
Сообщений: 232
Регистрация: 8-06-05
Из: Москва
Пользователь №: 5 847
|
ClayMan, спасибо за ответ. Нашлось на форуме Xilinx: https://forums.xilinx.com/t5/Memory-Interfa...p/707654/page/2Т. е. Xilinx не выпускает моделей, т. к. их контроллер DDR соответствует JEDEC стандарту. Думаю, что можно использовать стандартную модель контроллера, имеющуюся в DDR Wizard.
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|