Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Пример топологии DDR3
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Работаем с трассировкой
Страницы: 1, 2, 3, 4
KostyantynT
Цитата(FES13 @ Feb 11 2014, 19:41) *
500mils ограничение но судя по RDK они и его не соблюдали по некоторым линиям

ps: вопрос снят, JEDEC рулит)

Кстати, многие рефернсные дизайны очень часто отступают от скрупулезных требований JEDEC. И ничего, работают. Поэтому, желательно запрашивать и у производителя чипа требования для дизайна DDR3.
FES13
Цитата(Uree @ Feb 11 2014, 18:34) *
Не нужно там выравнивать. Только какое-то ограничение на максимальную длину от последнего приемника до терминатора есть, не помню точно какое...

у меня к вам вопрос по выравниванию в целом, вы выравнивали геометрические длины проводников интерфейса памяти, или добивались симуляцией годного результата и выравнивали исходя из времени распространения сигнала? запускали ли вы память на частотах 800MHZ+ ?
вопрос связан в связи с освоением PADS и HyperLynx. PADS Layout позволяет посмотреть время задержки сигнала в проводнике, только вот почему-то на изменение расстояния от этого проводника до опорного слоя он не реагирует, я конечно не исключаю что возможно я что-то не так настраиваю, но всё же хочется понять весь этот механизм и добиться рабочей разводки на 800MHZ с минимальными затратами на производство не рабочих образцов плат
Uree
Я выравнивал задержки, не длины.
Максимальная скорость в нашем дизайне была DDR3-2133, правда только в одном такая была нужна, остальные медленнее.
FES13
Цитата(Uree @ Feb 14 2014, 11:07) *
Я выравнивал задержки, не длины.
Максимальная скорость в нашем дизайне была DDR3-2133, правда только в одном такая была нужна, остальные медленнее.

поделитесь опытом, в каком сапре разводите вы, и как там реализован подсчёт задержек в процессе разводки
Uree
Cadence Allegro.
Как реализован - не знаю. Я задаю констрейн максимального разброса длин/задержек для отрезков, софт его онлайн контролирует.
Есть еще детали - учитывать или нет длины переходных, подсвечивать цепи с временными констрейнами(короткие/норма/длинные) или нет - но это уже фичеры.
razob
Передо мной встала задача разработки design rules для связки процессора с единственным чипом памяти DDR3-1066. У меня есть один успешный проект с подобным интерфейсом, там даже память была чуть быстрее - 1333, но правила проектирования тогда я брал основываясь... так сказать не на научном подходе, а на примере других проектов.
Фактически была выбрана точность 5мм для групп адресов и управления, данных и строба. Ну и трассировалось с головой: группы сигналов в одном слое, без разрывов по опорному слою и с правильно рассчитанными зазорами и ширинами проводников (50Ом для микрополосков и 100Ом для диф. сигналов).
Сейчас же хочется выдать требования конструктору на чём-то основанные, а не "вот я так раньше делал и работало" (проектов у меня пока мало, чтобы эти слова чего-то стоили)))
Начал рассмотрение с группы данных. С процесса записи в память. Данные защёлкиваются в память по стробу, значит данные должны быть на входах памяти до поступления на них стробирующего сигнала. Лезу в даташит на память, смотрю время установления данных к стробу - минимум 75пс, а время удержания памяти к стробу - минимум 100пс.
Затем аналогично операция чтения, то есть смотрю тоже самое, но со стороны контроллера, допустим там такие же значения.
Беру наименьшее значение из времени установления при чтении и записи - 75пс, делю на скорость распространения в данном стекапе - вот и требуемая точность в мм (аж 11мм получается, если считать исходя из скорости 6.7пс/мм), но в общем-то думаю выравнивать по времени, а миллиметры уже пусть софт считает.
Аналогично смотрю на группу по управлению.

Столь простой подход вообще правилен, имеет право на жизнь? что можно уточнить?

в стандарте куча всего, я прям не могу как-то его сразу охватить, поэтому буду благодарен за подсказки.
ClayMan
Цитата(razob @ Nov 14 2014, 18:06) *
Передо мной встала задача разработки design rules для связки процессора с единственным чипом памяти DDR3-1066. У меня есть один успешный проект с подобным интерфейсом, там даже память была чуть быстрее - 1333, но правила проектирования тогда я брал основываясь... так сказать не на научном подходе, а на примере других проектов.
Фактически была выбрана точность 5мм для групп адресов и управления, данных и строба. Ну и трассировалось с головой: группы сигналов в одном слое, без разрывов по опорному слою и с правильно рассчитанными зазорами и ширинами проводников (50Ом для микрополосков и 100Ом для диф. сигналов).
Сейчас же хочется выдать требования конструктору на чём-то основанные, а не "вот я так раньше делал и работало" (проектов у меня пока мало, чтобы эти слова чего-то стоили)))
Начал рассмотрение с группы данных. С процесса записи в память. Данные защёлкиваются в память по стробу, значит данные должны быть на входах памяти до поступления на них стробирующего сигнала. Лезу в даташит на память, смотрю время установления данных к стробу - минимум 75пс, а время удержания памяти к стробу - минимум 100пс.
Затем аналогично операция чтения, то есть смотрю тоже самое, но со стороны контроллера, допустим там такие же значения.
Беру наименьшее значение из времени установления при чтении и записи - 75пс, делю на скорость распространения в данном стекапе - вот и требуемая точность в мм (аж 11мм получается, если считать исходя из скорости 6.7пс/мм), но в общем-то думаю выравнивать по времени, а миллиметры уже пусть софт считает.
Аналогично смотрю на группу по управлению.

Столь простой подход вообще правилен, имеет право на жизнь? что можно уточнить?

в стандарте куча всего, я прям не могу как-то его сразу охватить, поэтому буду благодарен за подсказки.


Мне кажется тут нужно учитывать и задержку внутри чипов, не только на самой плате. 11мм для данных - как-то неоправданно много. Вы посмотрите рекомендации от Freescale или Micron, там есть значения.
Ant_m
Еще нужно джиттер учитывать. Он ваши 11 мм и сьест...
svss
Цитата(ClayMan @ Nov 18 2014, 14:21) *
Мне кажется тут нужно учитывать и задержку внутри чипов, не только на самой плате.

Причём в даташите процессора про это должны быть комментарии. По моему опыту требования к трассировке сигналов в описании процессора более жёсткие, чем в описании DDR3.
Ну и, насколько мне позволяет склероз, длина проводников пАры DDR_CK должна быть больше, чем длина всех остальных.
razob
В прошлом своём сообщении я допустил ошибку - посмотрел время установления для DDR3-800, а не для DDR3-1066. Правильное значение 25пс, то есть по моей методе допуск уже не 11мм, а 25/6.7=3.7мм.
Цитата
Еще нужно джиттер учитывать. Он ваши 11 мм и сьест...

А можно тут чуть подробнее?
Если рассматривать ту же группу сигналов (DQS-DQ) при записи, то есть когда контроллер генерирует DQS по переднему фронту CK и выставляет его по центру DQ.
В datasheet на память для моего случая указано значение Clock Period Jitter -90пс...90пс. Так как CK также генерируется контроллером, то правильно ли я понимаю, что фактически эти цифры - это требования к контроллеру? То есть tJIT(per) не должно превышать этих значений. Например у моего контроллер tJIT(per) -50пс...50пс.
В таком случае я в тупике: в следствии девиации CK строб данных DQS может плавать в диапазоне большем, чем требования по времени установления... то есть выравнивай не выравнивай - по этой логике запись всё равно может не осуществится.
Можно ли утверждать, что источник джиттера это PLL контроллера, и как следствие джиттер в равной степени оказывает влияние и на CK, и на DQS, и на DQ?
Ant_m
Цитата(razob @ Nov 19 2014, 11:54) *
Можно ли утверждать, что источник джиттера это PLL контроллера, и как следствие джиттер в равной степени оказывает влияние и на CK, и на DQS, и на DQ?

Нет. Внутри памяти есть DLL который делает тактовые сигналы для выводов DQ. Этот DLL имеет свой джиттер относительно CK.
ИМХО лучше не гадать, а считать по примеру. Uree давал ссылку на рекомендации - посмотрите по ссылке примеры на 18 стр и дальше.
http://electronix.ru/forum/index.php?showt...t&p=1063195
Rider
Помогите пожалуйста советом.
Мне предстоит разводить плату с ДДР3. Будет что то на подобие PicoZed, но с радиочастью и на гибридноой плате (с одной стороны будет Rogers). Так же плата будет уже, но длиннее. Сейчас вопросы вызывает стек слоев и расчет волнового сопротивления. В файле PicoZed_7010_7020_Rev_C_PCB_Layout
приведена послойная топология. Меня смущает расположение вместе пары слоев с проводниками с контролируемым импедансом. Например слей 3 опирается на землю слоя 2, за тем идет слой 4, который опирается но порезаные полигоны питания, и так же с другой стороны. Возникает вопрос можно ли так делать и как расчитывать проводники с ВС в таком стеке? Считаю обычно в поляре. Например можно ли указать что для слоя 4 будет опорным слой питания и как на него подействует сигнальный слой 3 и земля второго слоя?
Так же есть вопрос по монтажу BGA корпусов на роджерс. Не будет ли с этим проблем? И если разводить часть цепей к ДДР3 по роджерсу сверху, то нормально ли это будет соглосовываться с проводниками в FR4? Понимаю что у роджерса другая диэлектрическая проницаемость и что это надо учесть в расчете.
За ранее спасибо!
Konrad
Господа, пытаюсь разобраться как развести DDR3 и IMX6. Штудирую "Hardware Development Guide" на IMX6.

В нем сказано, что для 4 чипов памяти можно использовать T-топологию и даны рекомендации по длинам для разных групп цепей:
Нажмите для просмотра прикрепленного файла

например, сказано, что клоки можно делать настолько короткими насколько это возможно, и что длинна клока не должна превышать 2.25 дюйма, при этом в примечании сказано, что рекомендована как раз длинна 2.25 дюйма.

далее приведен пример разводки:
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла


Из таблицы 3.5 следует, что клоки имеют длину приблизительно 2.1 дюйма. При этом из топологии видно, что клоки можно было сделать существенно короче и что диф. пары удлинены умышленно. Подскажите пожалуйста зачем это сделано?
vladec
На вскидку, идеология разводки DDR такая, что прокладывается замая длинная в группе трасса, а потом уже пляшут с выравниваниями от ее длинны, посмотрите, а нет ли в Вашем проекте такой трассы, которую уже нельзя укоротить?
PCBtech
Нехорошо опираться на порезанные полигоны питания. Аккуратнее с этим. Следите за возвратными токами.

А проводники по роджерсу вполне нормально согласовываются с проводниками в FR4.
Монтаж BGA на слой роджерса тоже вполне нормально выполняется.
Удобнее, конечно, когда структура платы симметричная, т.е. роджерс на топе и роджерс на боттоме,
а внутренние слои FR4.
Тогда плата хотя бы не будет коробиться, а коробление может оказать влияние на качество монтажа BGA.

Цитата(Rider @ Feb 16 2015, 22:06) *
Помогите пожалуйста советом.
Мне предстоит разводить плату с ДДР3. Будет что то на подобие PicoZed, но с радиочастью и на гибридноой плате (с одной стороны будет Rogers). Так же плата будет уже, но длиннее. Сейчас вопросы вызывает стек слоев и расчет волнового сопротивления. В файле PicoZed_7010_7020_Rev_C_PCB_Layout
приведена послойная топология. Меня смущает расположение вместе пары слоев с проводниками с контролируемым импедансом. Например слей 3 опирается на землю слоя 2, за тем идет слой 4, который опирается но порезаные полигоны питания, и так же с другой стороны. Возникает вопрос можно ли так делать и как расчитывать проводники с ВС в таком стеке? Считаю обычно в поляре. Например можно ли указать что для слоя 4 будет опорным слой питания и как на него подействует сигнальный слой 3 и земля второго слоя?
Так же есть вопрос по монтажу BGA корпусов на роджерс. Не будет ли с этим проблем? И если разводить часть цепей к ДДР3 по роджерсу сверху, то нормально ли это будет соглосовываться с проводниками в FR4? Понимаю что у роджерса другая диэлектрическая проницаемость и что это надо учесть в расчете.
За ранее спасибо!

vladec
Вопрос к производителям плат. При разводке DDR3 рекомендуются (см. например, http://www.xilinx.com/support/documentatio...-pcb-design.pdf ) сегменты печатных проводников в районах BGA вести линиями порядка 0,1мм и волновым ~50 Ом, а на остальной площади линиями до 0,15мм и волновыми 36 - 40 Ом. Использованием каких препрегов этого можно добиться на наружных слоях? Если брать совсем тонкие перепреги, что то типа 106 (0,05мм) или 1080 (0,066мм) то по волновым проваливаемся под 50 Ом уже на толщине проводника 0,1 мм, а уже следующая градация толщин препрегов, это 0,1мм (3313) - 0,12мм (2116) дают для проводников 0,15мм - 0,1мм волновые - 50 - 60 Ом. Существуют ли толщины препрегов в интервале от 0,05мм до 0,1 мм?
vicnic
Вы уже сами ответили на свой вопрос: препрег 1080 толщина порядка 65-75 мкм, в зависимости от наполнителя. Также 3313 может дать толщина диэлектрика менее 100 мкм.
Плюс надо понимать, что толщина исходного препрега - это одна величина, а толщина диэлектрического слоя после прессования - другая.
Я бы не цеплялся за ширину проводника в 100 мкм, а попробовал бы поиграть шириной.
Также, чтобы производитель гарантировал вам унифицированное производство с учетом закупки материала на долгий срок (например, 2-3 года), надо финансово гарантировать большие объемы заказов на этот срок. Иначе, вы можете получить разные варианты исполнения даже у одного производителя.
Я тут сделал расчёт в Si9000: при Dk=4, при наличии маски толщиной порядка 15-25 мкм, а также при толщине диэлектрика порядка 100 мкм сопротивление проводника шириной 100 мкм будет около 63 Ом. Вариант: уменьшить толщину диэлектрика до 65 мкм (вариант 3313, с приличной усадкой после прессования), получаем около 50 Ом. Кстати, при тех же параметрах для проводника шириной 150 мкм расчёт даёт порядка 41 Ом.
bigor
Цитата(vladec @ Apr 3 2015, 13:58) *
... сегменты печатных проводников в районах BGA вести линиями порядка 0,1мм и волновым ~50 Ом, а на остальной площади линиями до 0,15мм и волновыми 36 - 40 Ом. Использованием каких препрегов этого можно добиться на наружных слоях? ...

Например:
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
При искомых 100мкм проводнике 50Ом и 150мкм - около 40Ом.
или:
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Тут конечно не 100мкм проводник при 50Омах, но близко...
Материалы, естественно, разные.
Разные материалы (разные производители или группы материалов одного производителя), соответственно, и разные толщины препрегов (даже одного типа), разные проницаемости.
Цитата(vladec @ Apr 3 2015, 13:58) *
Существуют ли толщины препрегов в интервале от 0,05мм до 0,1 мм?

Да. Но немного.
Материал FR408:
Нажмите для просмотра прикрепленного файла
Материал S1000:
Нажмите для просмотра прикрепленного файла
Материал TU-768:
Нажмите для просмотра прикрепленного файла
Материал IT-180A:
Нажмите для просмотра прикрепленного файла
С другими материалами не работал - не скажу.
vladec
Спасибо за информацию, а то я уже думал, что в диапазоне толщин 65<T<100 ничего нет и не понятно как волновые подгонять.
nord85
Всем день добрый.
Чего то вопрос возник, а разве можно закладывать один лист препрега? Раньше насколько я помню было ограничение не менее двухсмежных слоёв препрега. Или зависит от насыщенности рисунка и толщины меди и технологии продвинулись вперёд и я немного отстал от жизни?
vicnic
Цитата(nord85 @ Apr 6 2015, 09:29) *
Всем день добрый.
Чего то вопрос возник, а разве можно закладывать один лист препрега? Раньше насколько я помню было ограничение не менее двухсмежных слоёв препрега. Или зависит от насыщенности рисунка и толщины меди и технологии продвинулись вперёд и я немного отстал от жизни?

Рекомендация использовать два препрега обычно встречается для материалов фирмы Rogers серии Ro4000. Для материалов класса FR4 это желательно, но необязательно.
И вы правильно заметили: с одной стороны для производства параметры платы зависят от требований заказчика (если они указаны), с другой стороны наличием на складе набора материалов, и возможности и опыта их использования.
vladec
Я тоже задавал этот вопрос технологам, по поводу минимум двух листов препрега, мне сказали, что такая проблема бала раньше, а теперь ее как то преодолели и проблем с анизотропией при использованиии одного листа нет
vicnic
To vladec: если речь идёт про Ro4000, то мой ответ будет таким - зависит от производства. Большинство мне известных откажутся прессовать материал на одном препреге или более трёх между соседними слоями. Если FR4 - вариантов масса.
bigor
Цитата(nord85 @ Apr 6 2015, 08:29) *
Всем день добрый.
Чего то вопрос возник, а разве можно закладывать один лист препрега? Раньше насколько я помню было ограничение не менее двухсмежных слоёв препрега. Или зависит от насыщенности рисунка и толщины меди и технологии продвинулись вперёд и я немного отстал от жизни?

Если между внешним слоем и первым внутренним, который плейн, или, если между двумя смежными плейнами, то можно и один, но только по согласованию с заводом, который эти платы производить будет.
Если между двумя внутренними, которые сигнальные, или между внутренними сигнальным и плейновым - то нельзя. Исключения - очень тонкая медь, от 12мкм, но опять-таки по согласованию с заводом.
nord85
Всем спасибо за информацию.
Sanchez_
Друзья, помогите разобраться с топологией DDR3!
Есть такой замечательный девборд, Cubietruck называется. Во вложении схема на него. В конце схемы есть чертеж платы и фотографии.
Разработчик взял за основу проекта этот девборд, схему памяти скопировал 1 в 1 (лист 4), за искючением того, что у нас чипы памяти 4-Гиговые.
Самого проекта платы кубитрака нету, есть только вот такая картинка:
Нажмите для просмотра прикрепленного файла
А теперь, внимание, вопросы.
1. Какая топология DDR3 применена на девборде?
2. Почему нет терминации на шине адреса и команд?
3. Почему это все работает?
4. Что делать мне? нужно, чтоб все заработало без лишних танцев с бубнами:
а) добавить терминацию в схему и делать как положено по топологии флай-бай?
б) пытаться повторить дизайн девборда, не меняя схему, у них же работает?
5. Может быть у Самсунга какие-то особенные чипы, которые работают без терминации? В даташите на память не нашел никаких упоминаний и требований по топологии и терминации. Так же как и вообще у Самсунга не нашел каких-либо апноутов по DDR3.
6. Может это такой проц замечательный у Аллвинера, который работает с любой разводкой и ему плевать на терминацию? В даташите на него, кроме того, что он поддерживает DDR3 ничего по этому поводу не сказано.
Буду крайне признателен за любые дельные советы!
Zurabob
Добрый день.

1. Не всё так просто в Датском королевстве , как кажется на первый взгляд.
Сначала я склонялся к топологии fly-by , но потом , почитав app-notes , изменил своё мнение.
Я думаю , что топология тут "штаны" .
Адреса + управление идут единой шиной до чипов по прямой , а потом разбиваются на 2 штанины.
Далее , одна штанина идёт к 2-м чипам и вторая штанина идёт к двум.
Только тут для простоты монтажа чипы от штанин стоят не один над одним , а рядышком.
Такая ситуация возможна , если чипы не удаляются от средней точки далее , чем 5 см.
Как раз такое мы и наблюдаем.
Короче : это НЕ FLY-BY топология.
Такое разводится на 2-х внутренних слоях обычно.
2. Я просмотрел все свои проекты с данной топологией и ни в одном нет терминации.
В app-notes для применяемых в моих проектах чипов памяти написано , что при малых длинах линий и указанной мной топологии терминация должна быть сериальной.
Резистор должен стоять как можно ближе к источнику в разрыве цепи.
Но , тут возникают ситуации : если понизить силу драйвера у процессора и минимизировать длинну линий (длинна до 5 см) , то можно согласование не ставить.
Предполагаю , что именно это и проделано. Т.е. при существующей топологии ПП и организации памяти согласование не нужно.
Оно буднт нужно , если длинна линий превысит 5 см и количество чипов превысит 5.
Я дополнительно просмотрел IBIS модельки памяти на предмет ODT согласования , но нет. В моделях на приёмник никакого ODT нету. Да его и не должно быть , поскольку согласование происходит (если оно вообще нужно) на стороне ПЕРЕДАТЧИКА. А шина адресов работает только CPU->DDR. Так что всё ОК.
3. Потому что гладиолус. (извините , но вопрос ИМХО глупый)
4.
а) На представленном девборде топология НЕ fly-by. -> терминация в части адресов + управления не нужна. Если вы всё же хотите перестраховаться , то вам нужно добавить резисторов в разрыв цепей поближе к процессору.
Но , это заставит выныривать цепи адресов на поверхность и усложнит разводку , удлиннит цепи -> совершенно не нужно этого делать.
б) Да. нужно пытаться повторить дизайн , зная , что это НЕ fly-by.
5. Нет.
6. Нет.

Итак , вам нужно разводить шину адресов + управления "штанами".
Желательно расположить чипы памяти попарно один над одним , чтобы минимизировать длинну отводов от средней точки.
Такая разводка укладывается в 2 внутренних слоя. +TOP +BOTTOM.
Конечно же необходимо посчитать "стекап" платы , чтобы дифф.сопротивление линий передачи было 50 Ом.


razob
Закончили трассировку ddr3-1066. Соединение точка-точка.
Изучаю замечательную на взгляд программу PowerSI от Cadence. Среди многочисленных её возможностей есть и такая: расчёт коэффициента связности цепей (net coupling).
Результатом этого расчёта является определение для каждой цепи соответствующей ей цепи-агрессора. То есть цепи, которая оказывает наибольшее влияние на эту цепь.
Пример расчёта:
Нажмите для просмотра прикрепленного файла
Как эти результаты трактовать с практической точки зрения? ну кроме того, что определённую цепь-агрессор следует проложить подальше, дабы уменьшить связность.
Sanchez_
Спасибо, Zurabob! за подробные ответы.

Чипы друг над другом разместить не получится, т.к. одна сторона занята. Но и так (примерно как на девборде) нормально получается, т.к. не только от средней точки, но вобще вся цепь получается короче 5см.

Осталась еще пара вопросов.
А какая топология у клока: дифпара SCKA до резисторов и кондера и DSCK после (если смотреть по схеме в PDF)? Вроде как по рисунку и фото она идет к нижнему чипу. И как вообще ее правильно развести?
Если вести ее последовательно по чипам, получается 11мм до резисторов и 46мм после на все чипы.
Где должны быть резисторы и кондер, как можно ближе к источнику (процу) или около точки деления (если надо тоже делить)?
Zurabob
Добрый день.

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

Поскольку я ставил чипы один под одним , то эту троицу (конденс+2резистора) я ставил поближе к процессору ,
потом заводил под парочку чипов и там уже бил на ветки как можно ближе к нужным пинам.

В вашем случае не важно : под какой из 2-х чипов сначала зайдёт клок , поскольку все длины относительно небольшие.

Советую вам читать хорошую книжку : Л.Н. Кечиев "Проектирование печатных плат для цифровой быстродействующей аппаратуры"
Читать так : берёте чёрный маркер , вымарываете из книги все формулы и читаете на ночь , как простую книжку с картинками.
Я думаю , что 95% ваших вопросов после этой книжки отвалится.
cool.gif
Sanchez_
Цитата(Zurabob @ Apr 16 2015, 06:48) *
Дело в том , что в данной ситуации без разницы , поскольку длинна линии меньше предполагаемой длинны волны.
И считается , что помехами вносимыми электрически короткой линией передачи в передаваемый сигнал можно пренебречь.
...
Советую вам читать хорошую книжку : Л.Н. Кечиев "Проектирование печатных плат для цифровой быстродействующей аппаратуры"
Читать так : берёте чёрный маркер , вымарываете из книги все формулы и читаете на ночь , как простую книжку с картинками.
Я думаю , что 95% ваших вопросов после этой книжки отвалится.
B)

Добрый вечер!
С книжкой знаком, как и с Кечиевым, бывал на его лекциях.
Дело в том, что эту линию нельзя считать прям короткой. Период клока 2,5нс. Сколько фронт? ну пусть 20%, это 0,5нс. По расчетам того же Кечиева при фронтах в 0,5нс граница между короткой и длинной линии - 38мм. Так что как минимум это на грани. Если считать по задержке (7пс/мм), то 500пс = 70мм, т.е. время фронта соизмеримо с длинной линии.
Поэтому я и подумал, что не должна быть безразлична как топология так и положение согласующих элементов. Во всех апноутах, которые мне попались, была описана топология флай-бай с терминацией в конце шины.
Насколько я понял, у Вас есть информация, как можно делать иначе, (апноуты). Поделитесь, пожалуста.
Содной стороны, логично поставить согласующие элементы вначале линии, и я склоняюсь к этому. Довести до средней точки, а там разделить на 2 стороны и соединить с каждой стороны по 2 чипа последовательно.
Но я видел пример топологии, где они около точки деления. Есть ли в этом смысл?

Есть еще у кого какие-нибудь соображения?
krux
Технология DDR3 никогда не подразумевала существования топологий, отличных от fly-by. Во всяком случае в редакции JEDEC.
"Штаны", они же T-topology применительно к DDR3 - это недокументированная возможность, или cheating, если уж на то пошло.
при использовании невысоких частот и частоты посылки управляющих команд не чаще чем раз в 2 такта - при определенной топологии линию можно считать короткой и терминацией на шине управления - пренебречь. (о чем собственно и говорится в различных аппнотах)

Всё это имеет место быть при f =< 533М, в низкопотребляющем сегменте, где разница в задержках RAS-CAS между 12 тактами или 8 - не играет никакой роли.
Zurabob
Читы это или нет , но "Т" топология применяется и работает.
Чтобы быть уверенным в каждом конкретном случае , нужно проводить моделирование топологии в соответствующих пакетах.
Для этого собственно моделирование и проводится , чтобы посмотреть.
ИМХО , поскольку рассматриваемая плата является девбордом , то на её разработку было затрачено "немного более денег" , поскольку её потом нужно было продавать.
И вложив один раз в разработку , затраты окупятся. (собственно западная модель разработки , опять же ИМХО)

У нас же ситуация несколько другая : (отступление)
Не желая тратить денех на покупку дополнительного софта , начальство требует от подчинённых 100% результат.
И начинается гадание на кофейной гуще... читайте на стандратах , рекомендациях и аппноутах.
Все эти документы служат лиш для того , чтобы подтолкнуть вас в нужном направлении.
Не стоит их заучивать наизусть и шаг в лево шаг в право - расстрел.
В моей практике встречались проекты с чипами MT41J256M16HA , клок торотых 800 Мгц. Соответственно это DDR3-1600.
И они были "Т" топологии и прекрасно работают (иначе заказчики придут с топором и массажнут мозг сначала моему начальству , а потом начальство собравшись с силами , примется за меня).
И таких проектов не один.

Так вот , применительно к вашей плате: я думаю , что после разводки было проведено моделирование , получены результаты и проект был сдан или переработан , а потом сдан. Всё.

to Sanchez :
Вы можете поставить согласующие элементы как можно ближе к средней точке , вобщем то хуже не будет. Но , опять же , в моей практике "Т" разводка встречалась только , когда чипы стоят один под одним двумя парами. Соответственно , поставить согласующие элементы как можно ближе не получается. Обе стороны заняты. И я ставил их сразу после процессора.
Насчёт того , что длинная-короткая-на грани. Возможно , вы правы и там на грани , но выбросы после фронта не достигают критических величин. И глаз остаётся достаточно открытым для нормальной работы микросхем.
ИМХО западная модель построения разработок : не нужно стремиться к идеалу (его нет) , достаточно заставить работать и продать.

Если у вас есть место и слои на ПП , то можно сделать Fly-by топологию , поставить согласующих элементов и это точно будет работать.
Только тогда цена продукта будет неоптимальная (выше , чем могла бы быть).
Но , выбор всегда за вами.
Надеюсь , свою мысль я донёс.


Sanchez_
Спасибо!
У меня f=400MHz (DDR3-800). 533 не потяенет проц.
Потом покажу, что получилось и расскажу как работает.
NoMemory
Всем добрый день, хотелось бы услышать совет опытных людей. Прошлый проект по части DDR3 был несколько... неудачен (оно конечно работает и этого даже оказалось достаточно для сдачи проекта, но во второй ревизии необходимо сделать все как надо, для справки, чип от Xilinx zynq xc7020), в процессе поиска заковырок возник вопрос: при трассировке флайбаем и свапе пинов в байте можно ли менять нахождение первого бита в группе, т.е. DQ0, DQ8 и т.д.. У самого Xilinx в аппноте ничего сказано не было, однако в Jedec и в аппнотах от Freescale такая строчка встречалась, процитирую Freescale:

Hardware write leveling – lowest order bit within byte lane must remain on lowest order bit of lane
by JEDEC compliance (see the “Write Leveling” section in JESD79-3E)
— D0, D8, D16, D24, D32, D40, D48, and D56 are fixed
— Other data lines free to swap within byte lane.

Я правильно уловил суть? К сожалению разглядывание сторонних дев.бордов ничего не дало, т.к. они вообще с этим делом (бит свопом) не заморачивались (думаю и мне в свое время не стоило). Это конечно не единственная проблема, но только на этот вопрос я сам никак не могу точно ответить, к сожалению.

Uree
Правильно, нулевой бит каждого байта должен оставаться на своем месте ибо по нему делается тот самый Write Leveling, т.е. подстройка таймингов байта. Остальные можно менять.
NoMemory
Спасибо большое, вот все на свои места и встало.
Uree
Хотя вот сейчас подумал - в случае FPGA может быть и иначе. Вдруг там можно любой из пинов байт-группы назначить нулевым и он будет участвовать в процедуре write leveling.
Правда у Цинка кажется выделенный интерфейс памяти, так что к нему должно быть справедливо правило от JEDEC "по умолчанию".
NoMemory
Не, у Zynq контроллер хардовый, ничего там не поменяешь, потому это нужно переделать, а на данный момент смириться с этой ошибкой. Ну... тоже опыт.
peshkoff
У FPGA можно менять как хочешь. kintex, virtex для них по фиг.
в документации на них ничего о первом бите нет, не разрешают, но и не запрещают, равно как и о цинке.

а у процессоров как дела обстоят? у них должно быть еще жестче, чем у цинка.
ни разу не встречал подобной фразы в документации и все время меняю без оглядки на первый бит
например, tms320c6678.
или интел. тоже не видел про первый бит ничего
vitan
Цитата(NoMemory @ Jul 27 2015, 10:26) *
процитирую Freescale:

А конкретно что за апнота? Специально посмотрел AN3940, там ничего такого нет...
NoMemory
peshkoff, да, ничего не сказано, у интела по крайней мере, но в JEDEC точно есть такая строчка в Write Leveling, и на процессоре предстоящем в своей борде они вообще ничего не свапали. Потому вопрос и возникает, производители просто этим вопросом не заморачиваются.
vitan, Hardware Development Guide for i.MX 6Quad, 6Dual, 6DualLite, 6Solo Families of Applications Processors , гайд по трассировке i.MX 6, пункт 3.5.1
vitan
Цитата(NoMemory @ Jul 28 2015, 06:17) *
но в JEDEC точно есть такая строчка в Write Leveling

А это на сей раз где? Понятие "prime DQ" есть, но это же не означает автоматом, что это нулевой бит...
Uree
Означает. Только об этом пишет уже производитель чипов памяти(из доки на DDR3L от Micron-a):
"When write leveling is enabled, the rising edge of DQS samples CK, and the prime DQ outputs the sampled CK’s status. The prime DQ for a x4 or x8 configuration is DQ0 with all other DQ (DQ[7:1]) driving LOW. The prime DQ for a x16 configuration is DQ0 for the lower byte and DQ8 for the upper byte. It outputs the status of CK sampled by LDQS and UDQS. All other DQ (DQ[7:1], DQ[15:9]) continue to drive LOW. Two prime DQ on a x16 enable each byte lane to be leveled independently."

Итого каждый младший бит в байте должен оставаться на своем месте(в случае фиксированного интерфейса памяти) и каждый байт можно выравнивать по длине независимо от других.
vitan
Цитата(Uree @ Jul 28 2015, 16:38) *
Итого каждый младший бит в байте должен оставаться на своем месте(в случае фиксированного интерфейса памяти) и каждый байт можно выравнивать по длине независимо от других.

Я бы сказал, что означает оно не в случае фиксированного интерфейса памяти, а в случае наличия контроллера, который рассчитывает на появление шевеления только на пине DQ0 во время write leveling-а. Автоматически же одно из другого не следует.
Заинтересовался, т.к. тоже использовал фрискейл, но не imx.6, тогда все быстро завелось, скорость 1333, своп есть во всех пинах на двух контроллерах (каждый 72-битный). Правда там у меня регулярная структура и разница между чипами постоянная (хотя чипы 16-битные). Специально облазил все доки, ничего не нашел на эту тему, кроме прямого разрешения свопить в чек-листе. Жуть. sm.gif
Uree
В случаях с FPGA тоже, кажется, не было ограничений по поводу младшего бита в байте, а вот с процами такой свободы действий не встречал.
vitan
Цитата(Uree @ Jul 28 2015, 18:47) *
В случаях с FPGA тоже, кажется, не было ограничений по поводу младшего бита в байте, а вот с процами такой свободы действий не встречал.

Дальше еще интересней: посмотрел указанный проект, обнаружил, что своп-то есть, но DQ0 на каждом чипе чудом остался на своем месте. При этом DQ8 посвоплен с DQ15. Эксперимент не чистый вышел. Придется обращаться в саппорт за разъяснениями.

UPD.
Почитал это, немного расслабился. sm.gif Скорее всего, так оно и есть... В общем, чур, больше страусов не пугать, пол бетонный! sm.gif
NoMemory
Здравствуйте все еще раз, вынужден опять просить совета, т.к. столкнулись с некоторыми непонятками. Ситуация следующая: по рекомендации производителя чипов памяти, самого SoC (все тот же ZC7020) и работающих вещах (например плата от Trenz TE0720-02-2AQF) указано, что при трассировке необходимо подтянуть сигнал CKE к VTT через согласующий резистор на конце линии. Но вопроса бы не возникло если бы не одно но, во-первых, схемотехник напротив, подтянул его к низкому уровню через 4.7К (собственно тогда и озадачился), во-вторых, отладочная плата на Zynq разведена с такой же подтяжкой. Взглянул реф.мануал, такое решение применяется при трассировке DDR2/LPDDR2, начал смотреть топологию: дерево, как для DDR2, но чипы DDR3. Т.к. для Trenz топологии нет, решил посмотреть сходное по составу решение MicroZed, там 40 Ом к верхнему и топология флайбай. Ииии... почему? Изменение топологии влияет на данный резистор и как?
Из микрона:
CKE enables (registered HIGH) and disables (registered LOW)
internal circuitry and clocks on the DRAM. The specific circuitry that is enabled/
disabled is dependent upon the DDR3 SDRAM configuration and operating mode.
Т.е. в зависимости от уровня она включает и выключает внутренние цепи и клоки в DRAM. Далее говорится о режимах, но какое отношение это имеет к топологии? Только если опять какой-нибудь Write Leveling зависит от этого уровня? Буду рад любым комментариям по данному поводу. На моей стороне нет ответа.
P.S.: глянул проект i.Mx6 Rex, тоже что и на девборде от Xilinx: дерево. Значит точно зависимость от топологии, но очень хочется знать почему, смотреть в JEDEC, где?
vitan
Цитата(NoMemory @ Aug 3 2015, 08:57) *
Значит точно зависимость от топологии, но очень хочется знать почему, смотреть в JEDEC, где?

Зачем гадать, когда можно:
а) спросить у схемотехника;
б) отмоделировать?
У меня, например, вообще, 40 Ом на землю...
Владимир
Цитата(NoMemory @ Aug 3 2015, 08:57) *
но чипы DDR3. Т.к. для Trenz топологии нет, решил посмотреть сходное по составу решение

Там топология флайбай и 40 Ом к VTT
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.