Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Пример топологии DDR3
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Работаем с трассировкой
Страницы: 1, 2, 3, 4
HardJoker
Попалась небольшая, но интересная дока от Fujitsu. Если у кого есть аналогичные материалы, пожалуйста, дайте ссылку или выложите здесь

P.S. Еще одна ссылка по сабжу - http://www.pdfgeni.com/book/DDR3-design-guide-pdf.html
Vlad-od
на Jedec.org в поиске наберите DDR3 там и дизайны содиммов и стандарт есть
HardJoker
Цитата(Vlad-od @ Apr 13 2012, 12:53) *
на Jedec.org в поиске наберите DDR3 там и дизайны содиммов и стандарт есть


Нужны примеры топологии чипов (не модулей!) CPU-DDR3. Лучше от самих вендоров. JEDEC смотрел, да и здесь это обсуждалось
Ant_m
ИМХО но дока бесполезная. Рассмотрен узкий случай применения, чуть в сторону и все - приплыли. То что там, как впрочем и в большинсте других документах, указываются выравнивания длинны в мм это только запутает. Нужны как раз не миллиметры, а пикосекунды. Задержка пс\мм на разных слоях разная. Вы можете выровнять хоть до 0,001мм, а толку от этого ровно ноль. Потому что нужно равнять не по длинне, а по задержкам распространнеия сигнала.
Нужно много и очень внимательно читать документы микрона, фрискейла, техаса и наконец сам стандарт. (была ветка где все это обсуждалось, там, при желании, есть все ссылки).
Vlad-od
А что там смотреть - память она и есть память. 40 ом адресная шина до первой микросхемы, потом от 50 до 60 ом, в зависимости от количества микросхем. Данные 50 ом. Длина шины может быть большой. Метод выравнивания адресной шины - флайбай.
Uree
В принципе да, забыли только добавить с каким разбросом выравнивать, какая макс. длина линий может быть... Из того, что мне пришось делать, разброс задержек задавался около 50-60пс, на двух слоях это было 8 с копейкой мм. Это с учетом длины на подложке...
Для данных кстати тоже 40 Ом импеданса рекомендуют делать, а не 50-60.
Плюс всё на всё завязано: адреса к клокам, контроль к клокам, стробы к клокам, данные к стробам.
Vlad-od
Максимальная длина адресной шины 166мм от 1й м/сх до последней. Адреса и контроль к клокам 0.5мм, Разброс между шинами данных не более 20мм. Внутри данных выравнивание на память не помню. Длина от пина до переходного: по клокам 3мм, по контролю 4мм, по адресам 5мм.

PS: внутри пар выравнивание 0.1мм и , кажется, внутри каждой шины данных тоже 0.1мм.
Uree
Вот интересно, откуда такие цифры... У меня другие, от трех разных производителей. Похожие между собой, но с приведенными ни одного совпадения. Так откуда все-таки цифры?
Vlad-od
И какие же они?
vitan
Цитата(Uree @ Apr 13 2012, 17:08) *
50-60пс

Ого! Это что ж за микросхемы должны быть, чтоб такие требования были?
Эти цифры ихмо сопоставимы с требованиями к какому-нибудь pci express, но там и скорости другие. Что-то уж больно круто!
Uree
Круто, сам удивился. Ну так и скорость там нужна была DDR3-2133, как бы уже и не мало...

По цифрам:
макс. длина цепи адерса/управления - 114.3мм
выравнивание данные-управление/клок - от 4.3 до 11.4 мм (от проца до каждого чипа в линейке)
выравнивание строб/клок - 2.5мм/5.0мм(опять же, до каждого чипа)
выравнивание данные/строб - 2.5-8,1 мм

Плюс не везде, но были требования минимальной(!) длины проц-первый_чип памяти, макс. длины последний_чип-терминатор.

На самом деле цифры зависят от производителя проца. Это он знает, какой контроллер памяти встроен и какие программные настройки он допускает(т.е. насколько "свободно" можно сделать плату, чтобы потом это хозяйство завелось).
Но, допусков в десятые доли мм не было ни в одном дизайне, кроме выравнивания внутри диффпар(но и тут как правило до 1мм разброса допускается).
Vlad-od
Калькулятор интеловский, но он в неявном виде задан был. Минимальная длина была, но какая-то цифра смешная. Максимальная длина - только для расстояния первая-последняя микросхема памяти. Чипы могут стоять неравномерно (никаких требований к выравниванию между отдельными микросхемами вроде нет). На плате у меня более жессткие условия выравнивания получились.
Если и была прописана максимальная длина шины адреса до первой м/сх, то цифра была больше чем наши платы и я ее не помню.
Uree
У меня нет калькулятора. Я привел цифры из реальных проектов. Пока еще не искал чего-то обобщающего в этой области. Мало пока проектов с ДДР3 было, 4 или 5 всего. Не на чем еще обобщать...
vitan
Мне это тоже предстоит в ближайшем будущем, потихоньку начинаю интересоваться.
Сдается мне, что если есть требование выранивать до 50 пс, то это либо хреновый контроллер, либо хреновая память. Ну не может быть таких цифр на таких скоростях. Ну не гигабиты там никак! Если такие жесткие требования к выравниванию, то это значит, что там у компонентов слишком маленькие времена предустановки/выдержки, а это показатель их качества.
Такое же подозрение на тему требований по минимальной длине трассы. Чем это можно объяснить? Имхо только тем, что выходной буфер в подобной цепи настроен сильно с большим запасом (с сильными предыскажениями), что не дает возможности подключить приемник близко к нему. При этом искажения в передатчике, видимо, не отключаются. Это плохо, опять же (если это так).

В общем, что-то подозрительно все это выглядит..
Ant_m
Цитата(vitan @ Apr 13 2012, 21:46) *
Сдается мне, что если есть требование выранивать до 50 пс, то это либо хреновый контроллер, либо хреновая память. Ну не может быть таких цифр на таких скоростях. Ну не гигабиты там никак! Если такие жесткие требования к выравниванию, то это значит, что там у компонентов слишком маленькие времена предустановки/выдержки, а это показатель их качества.
Такое же подозрение на тему требований по минимальной длине трассы. Чем это можно объяснить? Имхо только тем, что выходной буфер в подобной цепи настроен сильно с большим запасом (с сильными предыскажениями), что не дает возможности подключить приемник близко к нему. При этом искажения в передатчике, видимо, не отключаются. Это плохо, опять же (если это так).


В общем то вы правы: это хреновый контроллер и хреновая память. Но только не отдельный экземпляр, а вся DDR3 biggrin.gif Похоже когда ее делали основная цель была съэкономить, а все остальное - "проблемы индейцев шерифа не волнуют".
Есть несколько документов в которых рассчитывается временной бюджет, там много всяких неявных факторов учитывается...

Про минимальную длинну - если мне не изменяет склероз, то она задается как 165ps (~50мм). Эта задержка нужна для фунционирования технологии write leveling. Но если к контроллеру приляпана только одна микросхема, то можно на это не обращать внимания. Т.к. для одной микросхемы write lеveling не нужен.
К слову говоря: как подключить только одну микросхему не говорится ни одном документе который я читал... А если делать по аналогии, как это пишут во всяких application note, то можно наступить на грабли. Тут надо вчитываться в стандарт.
vitan
Интересно... Я, конечно, еще не приступал к изучению, и понять, зачем нужна задержка я не могу. Но сомнительно выглядит. У меня будет как раз случай, когда надо будет подключать одну-две микросхемы, поэтому читать я буду в первую очередь стандарт. Очень странно, что там про это не написано... Вообще, мне всегда казались странными постоянные обсуждения способов выравнивания сигналов в DDR3, еще и с учетом длин внутри кристаллов. При этом нигде толком не встречал причин, по которым это так сильно надо. Плохо смотрел? Кто-нибудь про это знает?
HardJoker
Цитата(vitan @ Apr 13 2012, 23:08) *
Вообще, мне всегда казались странными постоянные обсуждения способов выравнивания сигналов в DDR3, еще и с учетом длин внутри кристаллов. При этом нигде толком не встречал причин, по которым это так сильно надо. Плохо смотрел? Кто-нибудь про это знает?


Например, в разделе 5.4.2.3.6 Routing Specification в http://www.ti.com/lit/ds/symlink/am3359.pdf на стр.164, 165 об учете длинн внутри контроллера памяти, если не ошибаюсь, ни слова.
Vlad-od
У меня сейчас разброс длины внутри кристалла процессора 300 милс. Хотя были кристаллы у которых память выровнена. А в ПЛИС до 10 мм был разброс
Ant_m
Цитата(vitan @ Apr 14 2012, 00:08) *
Очень странно, что там про это не написано... Вообще, мне всегда казались странными постоянные обсуждения способов выравнивания сигналов в DDR3, еще и с учетом длин внутри кристаллов. При этом нигде толком не встречал причин, по которым это так сильно надо. Плохо смотрел? Кто-нибудь про это знает?

Полу bb-offtopic.gif Есть тема в разделе cadence, где обсуждались выравнивания в этой среде.
Uree
2 HardJoker

А что Вы так сразу прыгнули на стр. 164-165? Требования-рекомендации по длинам в этом документе начинаются со стр. 152.
Но собственно и там совершенно завышенные требования выставлены - 25милс(стр. 171, табл 5-60), они же 0,6мм - это менее 5пс разброса. Ну перебор, как мне кажется...
Хотя, возможно это как раз требования с учетом длин на подложке, которые отдельно не обозначены. Т.е на подложке уже набегает почти весь реально допустимый разброс, вот они и требуют снаружи его отсутствие.
Просто при периоде клока 3.3нс делать выравнивание на 5пс выглядит откровенным перебором. Хотя в рассчетах от Микрон и такая цифра присутствует...
HardJoker
Цитата(Uree @ Apr 14 2012, 14:53) *
2 HardJoker

А что Вы так сразу прыгнули на стр. 164-165? Требования-рекомендации по длинам в этом документе начинаются со стр. 152.


Не,.. ткнули носом
_Макс
Интересует разводка DDR3 SO-DIMM. В таких случаях средние байты получаются значительно более короткими, чем крайние. В документах по разводке DDR3 я видел рисунки где показано нарастание длин от первого байта к последнему. Нигде не могу отыскать прямой ответ на вопрос, могут ли длины симметрично увеличиваться от средних байтов к крайним и насколько это допустимо?
Uree
"The length matching among byte lanes is not as tight as it is within the byte lane."

"Length Matching in Byte Lane to Byte Lane
Not required; deskewing required because of fly-by topology on address command bus"

Micron, TN-41-08: Design Guide for Two DDR3-1066 UDIMM Systems
_Макс
Цитата(Uree @ Apr 30 2012, 23:04) *
Micron, TN-41-08: Design Guide for Two DDR3-1066 UDIMM Systems

В этом документе есть плохая новость. Зазоры между проводниками других групп в ряде случаев нужно выдерживать более 0.5мм, внутри группы - 0.3мм. В черновой разводке я допускал 0.1мм (мин. технологический), потом подумал увеличить до 0.15мм. Но такие зазоры я обеспечить просто не смогу. Не понимаю сколько нужно места, чтобы так вольготно проводники раскладывать. У меня DDR3-1066 с одним SO-DIMM, длина трасс составит около 40мм макс. Стоит ли заморачиваться?
Ant_m
Цитата(_Макс @ May 17 2012, 17:10) *
... Не понимаю сколько нужно места, чтобы так вольготно проводники раскладывать. У меня DDR3-1066 с одним SO-DIMM, длина трасс составит около 40мм макс. Стоит ли заморачиваться?

А слоев у вас сколько? Место обычно оттуда берется...
Если не заморачиваться, то и память ставить не нужно biggrin.gif Промоделируйте перекрестные искажения и наводки (crosstalk) тогда все будет ясно... что зазоры нужны.
_Макс
Цитата(Ant_m @ May 17 2012, 16:26) *
А слоев у вас сколько? Место обычно оттуда берется...
Промоделируйте перекрестные искажения и наводки (crosstalk) тогда все будет ясно... что зазоры нужны.

3 сигнальных.

Чем еще кроме HyperLynx можно промоделировать?
Как быть если IBIS модели для процессора нет? Для модуля памяти её и быть не может. Есть какие-то обходные пути?
jks
Цитата(_Макс @ May 17 2012, 16:10) *
В этом документе есть плохая новость. Зазоры между проводниками других групп в ряде случаев нужно выдерживать более 0.5мм, внутри группы - 0.3мм. В черновой разводке я допускал 0.1мм (мин. технологический), потом подумал увеличить до 0.15мм. Но такие зазоры я обеспечить просто не смогу. Не понимаю сколько нужно места, чтобы так вольготно проводники раскладывать. У меня DDR3-1066 с одним SO-DIMM, длина трасс составит около 40мм макс. Стоит ли заморачиваться?


Crosstalk зависит от длины параллельного участка и от частоты.

Грубо связь можно считать критической если длина участка больше Lamda/8 при зазоре равном ширине и 50 Ом волновом одиночной линии.
Если длина участка больше то пропорционально увеличивать зазор. Делать зазор больше 3-x w смысла особого нет.
Пары практически не связанные на таких зазорах.

При таких скоростях (533МГц) на 40мм набежит почти 45 градусов, так что почти на пределе. Зазор придется увеличить хотя бы до 2-х W.
_Макс
Цитата(jks @ May 17 2012, 17:29) *
При таких скоростях (533МГц) на 40мм набежит почти 45 градусов, так что почти на пределе. Зазор придется увеличить хотя бы до 2-х W.

Спасибо за информацию. Где об этих законах почитать больше?

Но подождите, для 533МГц lamda/8 = 562/8 = 70.25мм. Стало быть, набежит только 25 градусов. Проверьте меня. И это только в том случае если проводник будет на протяжении всей длинны идти смежно с другим, чего не будет.
Uree
На самом деле все работает и с меньшими зазорами... Не забываем простой момент - кроссталки все портят во время фронтов. Вот только при выравненных длинах эти фронты присутствуют примерно одновременно на всех сигналах группы, когда они устанавливаются. А вот сэмплируются эти сигналы в другой момент, когда они уже установлены. Поэтому внутри группы никто никому на самом деле не мешает.
jks
Цитата(_Макс @ May 17 2012, 17:59) *
Спасибо за информацию. Где об этих законах почитать больше?

Но подождите, для 533МГц lamda/8 = 562/8 = 70.25мм. Стало быть, набежит только 25 градусов. Проверьте меня. И это только в том случае если проводник будет на протяжении всей длинны идти смежно с другим, чего не будет.


70 мм это в вакууме. А на печатной плате надо еще диэл. проницаемость учитывать.
Поэтому надо делить приблизительно на SQRT(e = 4.5) ~ 2.12.

Немного картинок.

5 параллельных проводника ширина/зазор 0,1/0,1.
4 драйвера симметрично относительно центрального.
Центральный проводник приемник.

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

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

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

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

Нажмите для просмотра прикрепленного файла
_Макс
Цитата(Uree @ May 17 2012, 21:34) *
На самом деле все работает и с меньшими зазорами... Не забываем простой момент - кроссталки все портят во время фронтов. Вот только при выравненных длинах эти фронты присутствуют примерно одновременно на всех сигналах группы, когда они устанавливаются. А вот сэмплируются эти сигналы в другой момент, когда они уже установлены. Поэтому внутри группы никто никому на самом деле не мешает.

Только вот в DDR3 фазы между разными byte lane могут быть существенно сдвинуты и распределены случайным образом. Т.е. между byte lane зазоры необходимо соблюдать максимальные, правильно?

Цитата(jks @ May 17 2012, 21:36) *
70 мм это в вакууме. А на печатной плате надо еще диэл. проницаемость учитывать.
Поэтому надо делить приблизительно на SQRT(e = 4.5) ~ 2.12.

Немного картинок.

Делить расстояние на корень квадратный их проницаемости? Тогда более 45 градусов получается.

Что вы используете для создания таких картинок?
как и чем можно симулировать DDR3 в отсутствии IBIS модели на процессор и модуль SO-DIMM?
jks
Цитата(_Макс @ May 17 2012, 21:54) *
Только вот в DDR3 фазы между разными byte lane могут быть существенно сдвинуты и распределены случайным образом. Т.е. между byte lane зазоры необходимо соблюдать максимальные, правильно?


Делить расстояние на корень квадратный их проницаемости? Тогда более 45 градусов получается.

Что вы используете для создания таких картинок?
как и чем можно симулировать DDR3 в отсутствии IBIS модели на процессор и модуль SO-DIMM?


Картинки сделаны в MWO.
Но программа предназначена больше для проектирования и моделирования в СВЧ, а также анализа различных ЭМ структур.

Для цифры есть HyperLinx или SigXplorer.
Uree
Но согласитесь, сделать 3-w зазор между байт-группами в 10 раз легче, чем такой же зазор между всеми бит-сигналами?sm.gif
На практике делали зазоры "по возможности", где было для этого место. Зазор в пределах 2-3W(0.25-0.375мм), длина интерфейса ~110мм макс. Это для данных. Для адресов зазором вообще никто не заморачивался - 5милс/5милс все разведено. ПО факту работает на 1866МГц. На 2133 так и не завелось, правда непонятно почему - то ли чипы неудачные, то ли дизайн подкачал, то ли сетап проца не тот...
jks
Цитата(Uree @ May 18 2012, 09:25) *
Но согласитесь, сделать 3-w зазор между байт-группами в 10 раз легче, чем такой же зазор между всеми бит-сигналами?sm.gif
На практике делали зазоры "по возможности", где было для этого место. Зазор в пределах 2-3W(0.25-0.375мм), длина интерфейса ~110мм макс. Это для данных. Для адресов зазором вообще никто не заморачивался - 5милс/5милс все разведено. ПО факту работает на 1866МГц. На 2133 так и не завелось, правда непонятно почему - то ли чипы неудачные, то ли дизайн подкачал, то ли сетап проца не тот...


А про 1866МГц/2133 - это частота фронтов или реально тактовая такая высокая?
Вроде максимальная частота была 1066 МГц.

Сколько же она потребляет на таких скоростях.
Uree
Пока не мерил, сколько там реально. Но то же, что в компах - DDR3-1866. Только без планок и два независимых канала рядом.
jks
Цитата(Uree @ May 18 2012, 09:52) *
Пока не мерил, сколько там реально. Но то же, что в компах - DDR3-1866. Только без планок и два независимых канала рядом.


А на таких скоростях как разводите данные? На внутренних слоях или на внешних?
Или стэк слоев и в этом случае стандартный 4-х слойный?
Uree
Да, это была 4-х слойка. Все разведено на внешних слоях, внутренние земля/питание.
_Макс
Цитата(Uree @ May 18 2012, 09:25) *
На практике делали зазоры "по возможности", где было для этого место. Зазор в пределах 2-3W(0.25-0.375мм), длина интерфейса ~110мм макс. Это для данных. Для адресов зазором вообще никто не заморачивался - 5милс/5милс все разведено. ПО факту работает на 1866МГц. На 2133 так и не завелось, правда непонятно почему - то ли чипы неудачные, то ли дизайн подкачал, то ли сетап проца не тот...

Моделировали или так отдали в производство?
Uree
Отдали. Мы никогда не моделим, у нас для этого инструментов нет, только мозгиsm.gif
jks
Цитата(Uree @ May 18 2012, 12:15) *
Да, это была 4-х слойка. Все разведено на внешних слоях, внутренние земля/питание.


Еще пару вопросов.
Для плат что работают на 1866МГц.

Сколько переходных максимум на трассах данных (не считая fanout)? Какая длина трассы при этом?
Какая толщина платы?
Параметры переходного отверстия (pad/drill/antipad)?



Цитата(Uree @ May 18 2012, 14:31) *
Отдали. Мы никогда не моделим, у нас для этого инструментов нет, только мозгиsm.gif


Согласен. Глаза боятся, а руки делают.
Uree
Переходных - от нуля до двух, как получится.
Длина трасс - от ~40мм для ближнего чипа до 110 для дальнего.
Плата обычная, ~1.6мм.
Переходные 0.5/0.3мм. Что такое антипад - до сих пор не пойму... Если имеется в виду зазор до плэйнов на внутренних слоях, то 0.2мм drill-to-shape, неподключенные переходные удалены(Unused Pad Supression включено для внутренних слоев).

Да ничего глаза не боятся. Если похожая реализация на референсе работает, то почему бы ей не заработать в переделанном моем дизайне?
_Макс
В ряде мануалов есть тенденция выводить сопротивление дорог к 45 или даже 40 омам. У меня 55 (0,1 мм). Что я теряю? И почему многие устремлены к уменьшению?
Uree
Потому что в ДДР3 драйвера такие, рассчитанные на работу на трассах с низким импедансом.
_Макс
Цитата(Uree @ May 28 2012, 16:10) *
Потому что в ДДР3 драйвера такие, рассчитанные на работу на трассах с низким импедансом.

Не верится, где об этом почитать? Чем мне грозят мои 55?
Uree
Не верьте, дело Ваше, но мне кажется производитель чипов памяти знает, как лучше проектировать дизайн под его память:
Нажмите для просмотра прикрепленного файла
_Макс
Цитата(Uree @ May 28 2012, 16:19) *
Не верьте, дело Ваше, но мне кажется производитель чипов памяти знает, как лучше проектировать дизайн под его память

Я не хочу слепо верить, я хочу понимать. И вам рекомендую.
Uree
Хотите понимать? Тогда поднимайте теорию длинных линий, считайте КСВ/КБВ, а в данном конкретном случае - выбросы на фронтах(overshot/undershot). Собственно именно их величина зависит от импеданса драйверов и линии передачи.
_Макс
Цитата(Uree @ May 28 2012, 17:50) *
Хотите понимать? Тогда поднимайте теорию длинных линий, считайте КСВ/КБВ, а в данном конкретном случае - выбросы на фронтах(overshot/undershot). Собственно именно их величина зависит от импеданса драйверов и линии передачи.

О выбросах на фронтах (overshot/undershot) мне известно давно, а вот, как именно это связанно с волновым сопротивлением, не могу понять.
VladimirB
Цитата(_Макс @ May 28 2012, 21:05) *
О выбросах на фронтах (overshot/undershot) мне известно давно, а вот, как именно это связанно с волновым сопротивлением, не могу понять.

В гиперлинксе поставьте 40ом и 55ом и сравните овершуты.

З.Ы. Для лучшего понимания
можно вручную диаграмму Бержерона нарисовать для длинной линии с нелинейными драйвером/нагрузкой на концах.
Doomsday_machine
Цитата(_Макс @ May 28 2012, 20:05) *
О выбросах на фронтах (overshot/undershot) мне известно давно, а вот, как именно это связанно с волновым сопротивлением, не могу понять.

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