Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подключаем DDR2 к CycloneIII
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
torik
Всем привет.
Мне бы для проекта нужна память: читать минимум 80Мслов/с (32 бит), записывать 8 каналов 10Мслов/с (32 бит). Типа 8 изображений на DVI выдать. Программа-максимум 165 МГц пиксельная на монитор. Планирую использовать EEP3C780F. Самое простое решение напрашивается - поставить 4 SDRAMх32. Но это гораз много выводов и дубово как-то.
Хотелось бы все-таки попробовать DDR/DDR2. Почитал про этот самый DDR, поглядел примеры схем отладок и пришел к выводу, что обязательно накосячу на этапе проектирования схемы или ПП, тем более что не избежать БГА корпусов, кучи мелких терминирующих резисторов и фильтрующих кондеров (это сильно удорожает монтаж)...
Мне бы какое-нибудь попроще решение, например SO-DIMM DDR2. Насколько я понимаю, в этом случае не надо согласующих резисторов и разводка платы упрощается.
Мне бы пример схемы/разводки, дабы содрать это дело с минимумом ошибок, вроде вот такой платы:
http://www.terasic.com.tw/cgi-bin/page/arc...17&PartNo=1
Ну или чё-нибудь еще посоветуйте...
Ant_m
Сам недавно искал, имхо, и в гугле прекрасно находится по ключевым словам DDR layout.
например:
Intel 81348 I\O Processor. Design Guide.
от Altera - AN 408: DDR2 Memory Interface Termination, Drive Strength, Loading, and Design Layout Guidelines
от Freescale Semiconductor Application Note AN2582
От все той-же "свободной линейки" wink.gif - Hardware and Layout Design Considerations for DDR2 SDRAM Memory Interfaces AN2910
У самсунга DDR2 Application Note ODT(On Die Termination) Control
Successful DDR2 Design. Mentor Graphics highlights design issues and solutions for DDR2, the latest trend in memory design.
От TI - Implementing DDR2 PCB Layout on theTMS320TCI6482. Application Report SPRAAA9B
И еще одна - Implementing DDR2 PCB Layout on the TMS320DM4xx DMSoc. Application Report SPRAAC6B

Из всего этого самые лучшие документы, из перечисленных, от Intel, Altera и Freescale.
У Интела расписано все очень подробно - как делать плату, какие слои, как питание подводить, какие длины проводников и пр. пр.
В Алтере куча красивых картинок сигналов, и объяснений почему, как и зачем.
torik
Вышеозначенные документы принял к сведению. Хотя я хотел увидеть что-нибудь такое, откуда можно было бы непосредственно содрать подключение SO-DIMM к циклону3. Опыта работы с DDR у меня нет и пробовать что-то простое вроде 8-16 битной памяти нет возможности и времени, потому и хочу наглого сдирательства для максимального исключения ошибок.
Естественно, это не означает что не надо изучать никаких документов)))
vadimuzzz
Цитата(torik @ Mar 21 2010, 22:54) *
Ну или чё-нибудь еще посоветуйте...

содрать с кита для arria?
torik
Спасибо, уже намного лучше. А документацией на кит непосредственно с циклон3+SO-DIMM кто поделится?
DmitryR
Цитата(torik @ Mar 21 2010, 19:54) *
Мне бы для проекта нужна память: читать минимум 80Мслов/с (32 бит), записывать 8 каналов 10Мслов/с (32 бит).

Шестнадцатиразрядная DDR2/266 думаю потянет.

Цитата(torik @ Mar 21 2010, 19:54) *
тем более что не избежать БГА корпусов,

Это правда - но сама ПЛИС-то все равно будет в BGA.

Цитата(torik @ Mar 21 2010, 19:54) *
кучи мелких терминирующих резисторов и фильтрующих кондеров (это сильно удорожает монтаж)...

Я приделывал DDR2 на таких скоростях к третьему Циклону используя единственный резистор на дифференциальный клок. OCT/ODT рулит, только надо отмоделировать и выбрать чип памяти с не самыми крутыми фронтами - у меня на моделях выходное сопротивление буфера получалось у разных микрух от 18 до 27 ом где-то, и если первое без резисторов звенит на модели аццки, то второе заработало без проблем.

Цитата(torik @ Mar 21 2010, 19:54) *
Мне бы какое-нибудь попроще решение, например SO-DIMM DDR2. Насколько я понимаю, в этом случае не надо согласующих резисторов и разводка платы упрощается.

Не надо только торцевых, а на Vtt надо. На одной планке от них разумеется можно пробовать отказаться, но тоже надо моделить. А раз уж моделить - проще поставить один чип на 16 бит и не мучаться.


Цитата(torik @ Mar 21 2010, 19:54) *
Мне бы пример схемы/разводки, дабы содрать это дело с минимумом ошибок, .
..
Ну или чё-нибудь еще посоветуйте...

HyperLynx курите, он несложный. Без него лезть делать скоростные интерфейсы не стоит. Правда.
torik
Цитата
Шестнадцатиразрядная DDR2/266 думаю потянет.

Циклон3, градация7 потянет не более 150 МГц DDR2 Full-Rate по хандбуку.
Получаем 150 Мслов/с х32. При "КПД" памяти не более 70% (чисто на SOPC собрать) не укладываюсь. К тому же хотелось бы запас, дабы была возможность перейти на 165МГц пиксельную...

Цитата
Это правда - но сама ПЛИС-то все равно будет в BGA.

Монтаж одного БГА обойдется в 1200 руб. Но Вы правы, это не столь важно, производство не серийное и цена ОО все равно будет запредельная.

Цитата
Не надо только торцевых, а на Vtt надо. На одной планке от них разумеется можно пробовать отказаться, но тоже надо моделить. А раз уж моделить - проще поставить один чип на 16 бит и не мучаться.

Ага, уже посмотрел схему отладки, предложенную vadimuzzz. Но в принципе, тоже не страшно. Зато какая пропускная способность, какие возможности (ну и освоить хочется)!

Цитата
HyperLynx курите, он несложный. Без него лезть делать скоростные интерфейсы не стоит. Правда.

Ага, вроде бы начал чё-то там осваивать. И в этом проекте планирую применить...
Serhiy_UA
Цитата(torik @ Mar 21 2010, 19:54) *
Мне бы пример схемы/разводки, дабы содрать это дело с минимумом ошибок, вроде вот такой платы:
http://www.terasic.com.tw/cgi-bin/page/arc...17&PartNo=1
Ну или чё-нибудь еще посоветуйте...

Цена этой платы 1100 USD. Можно применить как есть, даже без компьютера. Я на нее уже прицелился, хотя мне нужен сам PCI, ну и DDR2. Проектировать и делать самому подобные платы долго и тяжеловато...
Подробную документацию на эту плату не нашел, видимо ее дадут только при покупке.
DmitryR
Цитата(torik @ Mar 22 2010, 11:28) *
Циклон3, градация7 потянет не более 150 МГц DDR2 Full-Rate по хандбуку.
Получаем 150 Мслов/с х32.

150МГц - это 300 мегаслов, она DDR все-таки. Вы уложитесь даже в 16 бит (один чип) с большим запасом.
torik
Цитата
150МГц - это 300 мегаслов, она DDR все-таки. Вы уложитесь даже в 16 бит (один чип) с большим запасом.


Может я туплю? Для 16 бит 150 МГц, ful-rate, это все равно что 150 МГц х 32 бит. либо 300 МГц х16. Верно?

Цитата
Цена этой платы 1100 USD. Можно применить как есть, даже без компьютера. Я на нее уже прицелился, хотя мне нужен сам PCI, ну и DDR2. Проектировать и делать самому подобные платы долго и тяжеловато...
Подробную документацию на эту плату не нашел, видимо ее дадут только при покупке.


1100 баксов это почти цена изготовления опытного образца, а далее при изготовлении хотя бы 10 шт. цена будет ниже. Просто применить не получится, надо делать свою нашлепку с восьмями видеокодеками (видеоАЦП), это дополнительные расходы.

Сделать самому взаправду сложновато, но это все же не первый проект. Хочется конечно от жадности целый SO-DIMM засандалить. Разве принципиальные сложности при разработке схемы и ПП в этом случае будут существенно больше, чем при подключении одной-двух DDRх16?
DmitryR
Цитата(torik @ Mar 22 2010, 15:16) *
Хочется конечно от жадности целый SO-DIMM засандалить. Разве принципиальные сложности при разработке схемы и ПП в этом случае будут существенно больше, чем при подключении одной-двух DDRх16?

Еще раз, две вам не надо. 80 мегаслов * 32 бита = 2560 мегабод. 300 мегаслов * 16 бит = 4800 мегабод. Запас почти вдвое. А если сравнить 16 бит и SODIMM - разница в сложности ровно вчетверо. Плюс 16 бит можно подключить к одной стороне, а 64 разряда придется подключать половину к верхнему краю, половину к нижнему (ну или к правому и левому): у Циклонов только x32 на сторону, верх/низ нельзя мешать с лево/право. Вот и прикиньте, существенно это вам или нет.
torik
Цитата
Еще раз, две вам не надо. 80 мегаслов * 32 бита = 2560 мегабод. 300 мегаслов * 16 бит = 4800 мегабод.


Это же только чтение, не забудьте про 80 мегаслов х 32 бита = 2560 мегабод на запись (суммарно по восьми каналам, ну может чуть меньше скорость), итого более 5000 мегабод. Да еще "потери" на арбитраж. Т.е. надо две х16. Или одна х32
DmitryR
Сорри, я не понял что писать и читать надо одновременно, но это ничего особо не меняет: два компонента встанут на один край, а для SODIMM придется 32 проволки тянуть с другой стороны кристалла.
torik
Цитата
два компонента встанут на один край, а для SODIMM придется 32 проволки тянуть с другой стороны кристалла.


Да, это так к сожалению. Именно потому я и хотел взять готовую отладку с циклоном3 и содрать оттуда разводку и схему. Правда такой подход не есть правильный и ошибок не исключает. Посмотрю, может придется ставить две по х16. Но SO-DIMM, как понимаете, дает при практически той же цене (циклон все равно будет на 780 выводов) хороший запас на будущее!
DmitryR
Точно такой же запас на будущее вам дадут и четыре отдельных чипа. При этом кроме того, что вам не придется тянуть провода вокруг кристалла (а под ним вы не протянете - там будет все в конденсаторах) вы сможете поставить два отдельных контроллера внутри. Потому что как один контроллер раскидать на кристалле так, чтобы у него выводы были в две стороны - это, думаю, еще тоже будет отдельная задача.
torik
Цитата
Точно такой же запас на будущее вам дадут и четыре отдельных чипа. При этом кроме того, что вам не придется тянуть провода вокруг кристалла (а под ним вы не протянете - там будет все в конденсаторах) вы сможете поставить два отдельных контроллера внутри. Потому что как один контроллер раскидать на кристалле так, чтобы у него выводы были в две стороны - это, думаю, еще тоже будет отдельная задача.


Звучит крайне логично и убедительно! Наверное так и сделаю.
deus
Делайте на SO-DIMM
Мы уже целое семейство модулей сделали по такому принципу:
http://inftest.ru/products/images/ols2.jpg
Микросхема Cyclone II EP2C35F672C6.

Главное при этом, выравнивание цепей управления и шины данных по длинне. Плюс нормальное терминирование. У Альтеры все раписано в документации.
des00
Цитата(deus @ Mar 29 2010, 02:38) *
Мы уже целое семейство модулей сделали по такому принципу:
http://inftest.ru/products/images/ols2.jpg

что то вроде STM1 мультиплексора ? smile.gif
torik
Цитата
Делайте на SO-DIMM
Мы уже целое семейство модулей сделали по такому принципу:
http://inftest.ru/products/images/ols2.jpg
Микросхема Cyclone II EP2C35F672C6.


Круто. Однако, я первый раз вообще закладываю DDR2. С SO-DIMM печать сильно усложняется из-за того, что не лезет на одну сторону ПЛИС, а накосячить не хотелось бы (времени и средств на переделку может и не быть). Примеры разводки я так и не нашел
deus
Цитата(torik @ Mar 30 2010, 08:32) *
Круто. Однако, я первый раз вообще закладываю DDR2. С SO-DIMM печать сильно усложняется из-за того, что не лезет на одну сторону ПЛИС, а накосячить не хотелось бы (времени и средств на переделку может и не быть). Примеры разводки я так и не нашел

Дык. А это что по вашему? Именно DDR2. Только планки формата SO-DIMM. То что не лезет на одну сторону, не страшно, хотя могут быть проблемы при достижении максимальной скорости DDR2. Но мы такой задачи не ставили, и работаем на 166 МГц. Принципе 200 Мгц то же работает, проверяли. Примеров разводки у Альтеры масса.
Идете на http://www.altera.com/products/devkits/kit-dev_platforms.jsp
Ищите плату, с вашей микросхемой и набором памяти, соответствующей вашей конфигурации - есть с DDR2, как чипы так и линейки. Качаете документацию на evaluation board. Открываете файл трассировки. Сдираете.

Это модуль для проверки интерфейсов, формирователь, анализатор и трассировщик. Но там функции заточены под требования конкретного заказщика.
http://inftest.ru/?lang=r&page=2&item=0&prod=ols

PS Система на отдельных микросхемах DDR2 может быть более гибка (хотя все зависит от задачи), но точно не более простая в разводке. На 4 отдельных чипа нужно примерно на 60 цепей больше, чем на одну планку SO-DIMM. Соотвественно, болше свободных выводов и внутренних ресурсов останется на другое.
torik
Цитата
Идете на http://www.altera.com/products/devkits/kit-dev_platforms.jsp
Ищите плату, с вашей микросхемой и набором памяти, соответствующей вашей конфигурации - есть с DDR2, как чипы так и линейки. Качаете документацию на evaluation board. Открываете файл трассировки. Сдираете.


Ага, конечно smile.gif. Там я в первую очередь перерыл все. Пример с SO-DIMM там на арии, разведен с одной стороны.

Однако, там есть пример с циклон3-780ног, где отдельно включены 4 микросхемы х16 + одна х8. В результате получается контроллер х72.
Пример с DDR2 х16 тоже есть.

Достоинство отдельных микросхем в том, что можно сделать не один контроллер х64, а два х32, в некоторых случаях арбитраж проще будет (быстрее). Однако, действительно, либо больше ног придется использовать, либо объединять шину адреса. И в том и в другом случае, разводка (и монтаж конечно) сложнее. Я прям весь в панике, не могу выбрать 07.gif
Говорите, на циклоне 484ноги запустили SO-DIMM, а контроллер DDR2 свой или из SOPC Builder покатит?
deus
Согласен, все зависит от задач. В нашем случае разбивка на несколько контроллеров не требовалась, так как поток данных один.
На Cyclone II 484 pin запустили DDR2 SO-DIMM на 160 Мгц. Хотя проверяли и на 200 Мгц. Вроде тянул.
deus
Цитата(torik @ Apr 6 2010, 07:46) *
а контроллер DDR2 свой или из SOPC Builder покатит?

Контроллер DDR2 альтеровский, обычный, не High Perfomance.
torik
Сейчас рисую схему, скоро попробую развести в квартусе для проверки правильности схемы. Однако я пока не вкуриваю, как буду разводить на две стороны...
torik
Цитата
Дык. А это что по вашему? Именно DDR2. Только планки формата SO-DIMM. То что не лезет на одну сторону, не страшно, хотя могут быть проблемы при достижении максимальной скорости DDR2. Но мы такой задачи не ставили, и работаем на 166 МГц. Принципе 200 Мгц то же работает, проверяли. Примеров разводки у Альтеры масса.
Идете на http://www.altera.com/products/devkits/kit-dev_platforms.jsp
Ищите плату, с вашей микросхемой и набором памяти, соответствующей вашей конфигурации - есть с DDR2, как чипы так и линейки. Качаете документацию на evaluation board. Открываете файл трассировки. Сдираете.


Может я туплю, но среди китов под CycloneIII нашел лишь варианты с отдельными микросхемами памяти, а с планкой лишь на Aria. Но этот вариант не совсем то что нужно, т.к. в ней все помещается на одну сторону.
Если не секрет, сколько слоев в вашей плате? И есть ли глухие отверстия (этот вариант для меня отпадает), вообще не понимаю пока как развести на две стороны, вокруг что ли тащить?

Кстати, согласно даташиту 166МГц - максимально достижимая частота для DDR2 на циклоне2 (да и на 3 тоже), какие уж там 200... Меня 166 МГц устроит с запасом.

Может кто-то поделится схемой и печатью на такую замечательную отладку с циклоном 3 и SO-DIMM?
http://www.terasic.com.tw/cgi-bin/page/arc...17&PartNo=1
torik
А где бы взять модельку DDR2-SODIMM? На сайте микрона что-то только для отдельных микросхем есть модельки...
DmitryR
Моделька SODIMM - это 4-8 модельек отдельных микросхем, дополненных торцевыми резисторами. На каких линиях есть резисторы и какие микросхемы там стоят в документации на DIMM обычно указано.
deus
А зачем ограничивать себя именно китами на Циклоне 3. Берите любую альтеровскую плату с SO-DIMM. Трассировка от этого особо не меняется. У на 8 слоев, но для интерфейса DDR2 используется только 3. Остальные опорные слои земли и питания и другие цепи. То есть реально все развести в 4-6 слойке. Нам нет ничего сложного. Все что надо знать написано здесь:
http://www.altera.com/literature/lit-exter...ory%20Interface
torik
Я про модельку Verilog
Цитата
А зачем ограничивать себя именно китами на Циклоне 3. Берите любую альтеровскую плату с SO-DIMM. Трассировка от этого особо не меняется. У на 8 слоев, но для интерфейса DDR2 используется только 3. Остальные опорные слои земли и питания и другие цепи. То есть реально все развести в 4-6 слойке. Нам нет ничего сложного. Все что надо знать написано здесь:
http://www.altera.com/literature/lit-exter...ory%20Interface

Да, я поглядел другие отладки, типа на арии и т.п., там 3-4 слоя для сигналов памяти, а остальное - слои питания. Придется сделать разводку самому, просто надо еще все промоделировать в Modelsim, и ПП в HyperLynx.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.