Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: FPGA + 4GB DDR2
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
bark
Подскажите пожалуйста с информацией о использовании памяти с FPGA.
я по этому вопросу совсем не в теме. мне поставили задачу сейчас начинаю собирать информацию и просматривать старые темы форума.
чтобы не изобретать себе пройденные грабли спрошу у вас.

Задача: прилепить 4ГБайт оперативы к Cyclone IV. память вероятно DDR2

Критерии: желательно поменьше микросхем памяти использовать, скорость надо иметь порядка 4Гбит/с или выше, можно ли этим нормально воспользоваться без Nios?
Вопросы:
1. как это оптимально сделать.
2. на какие и чьи чипы памяти смотреть.
3. как со стороны FPGA пользовать память? (корка альтеры наверняка ведь есть подходящая или в циклоне есть контроннер памяти?)
4. Подводные камни.

понимаю что большинство ответов найти можно и самому(и этим я тоже занимаюсь), но увы как говорится "на вчера".
Hoodwin
Вот смотрите: сайт Микрона сообщает, что максимальная емкость одного кристалла - 4 Гбит. То есть, даже самых больших кристаллов потребуется 8 штук. А более ходовых, на 2 Гбита, и вовсе 16. Прикручивать можно, только этот объем сожрет довольно много выводов. Скажем, байтовая шина * 8 кристаллов = 64 бита данных DDR2. Разводить такую плату будет непросто.
А вот со скоростью проблем не должно быть совсем. Одна линия данных даст около 400 Мбит/с, а 64 линии - 25.6 Гбит/с. И это при довольно хилой частоте в 200 МГц. Но нужно обратить внимание на линии адреса и управления. Их придется разветвить на 8 кристаллов и смотреть, хватит ли драйверов альтеровских на 8 входов.
bark
Я вот попробовал вставить инстанцию Альтеровского ДДР контроллера.. там есть уже готовые профили для разных кристаллов. один из них тоже Микроновский, но на 1ГБ.
Micron MT47H32M16-5E.
может конечно по факту чип достать трудно..

касательно циклона4.
там в документации что-то есть про работу с памятью.. но я пока не могу понять как это выглядит. кто пользовался альтеровской коркой можете в двух словах описать процесс работы..
документацию я конечно читать буду, но форум на то и форум чтобы опытом обмениваться.
Hoodwin
Так а Вы на сколько кристаллов рассчитываете? MT47H32M16 - это 512 Мбит. 1Гбит - это MT47H64M16. Но при ваших объемах (если это не описка) потребуется 32 кристалла по 1Гбит. Я не думаю, что это будет изящным решением...
bark
мне бы конечно чем меньше чипов тем лучше. всё-таки плата не резиновая и разводить много кристалов не хочется.
Hoodwin
а в штуках это сколько? sm.gif По-моему, даже 8 кристаллов - это некоторый перебор. не говоря уже о 16 или 32...
bark
ну хотелось бы не больше 8. как я понимаю так получится при использованиии 512Мбайтных чипов.
а что с FPGA? корки типа Альтеровской сами заботятся о рефреше и времянках? со стороны пользователя это просто ММ доступ к данным ?
des00
буковские планки 2x2GB поставить и не париться
bark
Не слишком ли много ног потребуется?
они как-то каскадируются?
maksimp
А если DDR3 поставить? Там микросхемы вероятно большего объёма чем DDR2 (так как новее).
Нормальная частота DDR3 - 300 МГц и выше. Единственная дешёвая ПЛИС которая может так работать - Spartan 6.
Но у DDR3 есть специальный режим с выключенный DLL, при котором частота 125 Мгц или ниже - так Cyclone 4 может работать. Можно например 16 МГц сделать. Тогда времянки гораздо легче обеспечить, и буферов выходных ПЛИС хватит по выходной мощности.
Serhiy_UA
Цитата(des00 @ Sep 5 2011, 17:25) *
буковские планки 2x2GB поставить и не париться

Кому-то удалось реально использовать подобные SO-DIMM DDR2 в своих проектах с ПЛИС от Altera?
Мог бы кто рассказать об основных особенностях этого процесса, типа: какая была мегафункция, итоговая частота обращения, тонкости трассировки и т.п.?
Кстати, ссылка не работает...


des00
Цитата(Serhiy_UA @ Sep 6 2011, 00:32) *
Кому-то удалось реально использовать подобные SO-DIMM DDR2 в своих проектах с ПЛИС от Altera?
Мог бы кто рассказать об основных особенностях этого процесса, типа: какая была мегафункция, итоговая частота обращения, тонкости трассировки и т.п.?
Кстати, ссылка не работает...

ссылка из местной сети, забыл как то что сайт снаружи томска не виден. коллеги пришивали такую память на 4 ый виртекс, все работало без сбоев на частоте в 350 МГц, если мне память не изменяет. делали на mpmc. не альтера конечно, но важен сам факт.

ЗЫ. а трассировать да, судя по плате "весело" было.
bark
А у меня ссылка на память открывается.

у Альтеры достаточно будет "DDR and DDR2 SDRAM High-Performance Controllers and ALTMEMPHY IP" чтобы использовать внешнюю память?
или тут ещё ньюансы есть.. типа фитеров у сети или ещё что-то?

Если кто понимает в каком направлении надо двигаться для подключения на Альтере памяти - скажите.. я не прошу пересказывать документацию.. направление дайте, чтобы время не тратить на тыканья в потёмках.

И кстати как память вообще работает? там типа ведь МемориМап? и никакого дуплекса? или запись или чтение? причем бёрстами. так?
Serhiy_UA
Цитата(des00 @ Sep 6 2011, 08:58) *
... но важен сам факт.

Хорошо бы иметь такой факт для Altera...

Получается что LogiCORE IP Multi-Port Memory Controller (MPMC) (v6.03.a) только для Xilinx, а для Altera нет? http://www.xilinx.com/support/documentatio...tation/mpmc.pdf

Создается впечатление, что у Xilinx при обслуживании SDRAM дела обстоят несколько лучше, или это не так?
Hoodwin
Цитата
у Альтеры достаточно будет "DDR and DDR2 SDRAM High-Performance Controllers and ALTMEMPHY IP" чтобы использовать внешнюю память?
или тут ещё ньюансы есть.. типа фитеров у сети или ещё что-то?


Судя по описанию, достаточно. Но я бы сказал, что 90% времени Вы проведете за изучением того, что Вам не нужно и как это не использовать. Потому что эти деятели писали талмуд сразу под все семейства FPGA и под все виды DDR памятей. В итоге, настройка HPC2 потребует от вас знаний не только о DDR2, но и о DDR, об отличиях DDR и DDR2 в во времянках обращений, времянках и параметрах инициализации и т.п. Я это пробовал читать когда-то, но довольно быстро охладел, времени стало жалко.

Цитата
Если кто понимает в каком направлении надо двигаться для подключения на Альтере памяти - скажите.. я не прошу пересказывать документацию.. направление дайте, чтобы время не тратить на тыканья в потёмках.


ну, если Вы только еще начинаете проектировать, то могу посоветовать нарисовать "bubbling idiot" - муляж двигалки всеми ногами: шин адреса, данных, сигналов управления. Пусть это будут разряды счетчиков или какие-то другие моргалки. Потом настроить правильно все I/O стандарты и попробовать собрать. Это Вам даст гарантию, что в будущем проект вообще соберется. Я когда схему рисовал вначале, по традиции этого не делал, упаковал банки почти под завязку (зато в два банка уложился), а потом решил проверить, соберется или нет. И вот оказалось, что не собирается. Примерно 10-15% выводов пришлось освободить и оставить неподключенными. Пришлось занять еще банк и только после этого стало собираться. В общем, об этом всем тоже можно почитать в даташите, но там это описано несколько отвлеченно, что вот выходы не должны быть на два пада вблизи входов и т.п., только пады - это понятие, относящееся к кристаллу, и в зависимости от типа корпуса подключение падов к пинам может быть разным, так что в уме это не прикинуть.


Цитата
И кстати как память вообще работает? там типа ведь МемориМап? и никакого дуплекса? или запись или чтение? причем бёрстами. так?


Память работает как и обычная SDRAM. Только для снижения потребления сам массив работает на меньшей частоте, чем шина. Ну и отсюда всякие штуки с burst-ами, чтобы уравнять производительность массива и шины. Это если совсем в двух словах.

Мой опыт показывает, что если кристаллов мало (2-4), Вы можете поставить их в упор к FPGA, частоты I/O у Cyclon-ов достаточно низкие и разводить это можно вообще как обычный SDRAM, то есть 1) вообще не заморачиваться с терминаторами, 2) вообще не выравнивать трассы. Важно только правильно подключить все VREF'ы и правильно развести memory clock. Больше того, можно даже не ставить самую большую drive strength. Так, в частности, рекомендует TI подключать DDR2 к своим DSP, хотя частота там выше.

Поэтому я рекомендовал бы Вам подумать нельзя ли сократить объем памяти до такого, какой можно охватить 4 кристаллами. Это существенно упростило бы жизнь.
Что касается модулей памяти, предложенных des00, то тут еще нужно учитывать ваши требования по надежности (вибрации и т.п.). Я вот не люблю, когда какой-нибудь Kontron делает промышленную embedded PC, при этом делает память в виде SODIMM, хотя мог бы просто припаять туда кристаллы большой емкости и вообще вопрос памяти закрыть. Большинство пользователей всегда берет память с большим запасом, потому что программисты почти никогда не думают, что будет с их программами, когда память физически кончится.
bark
Hoodwin, спасибо. Учту при проектировании.
Объем памяти уменьшить вероятно не получится.

есть девборда с 256МБ DDR2. на ней могу попробовать отработать сам обмен с памятью. поэтому и важным вопросом был "что и как использовать" в качестве контроллера памяти.
Hoodwin
Не хочу показаться навязчивым, но вот летом занимался контроллером и даже выложил его на публичное тестирование. Смотрите вот эту ветку.
Если есть доска, с которой можно скопировать топологию, то можете обкатать на ней решение и повторить с большим объемом памяти.
bark
доска есть с СIII. на ней две независимых памяти висит. всего 256Мб.


сейчас пытаюсь на най скомпилировать Альтеровскую корку выдаёт ошибку
Error: The DDIO_OUT WYSIWYG primitive "DDR2_01:DDR2_inst_01|DDR2_01_controller_phy|...|ddio_outa[0]" feeding the pin "ddr2_ck_p[1]" has multiple fan-outs

вроде разобрался.. дело было вроде в несоответствии направлений пинов на разных уровнях. (bidir/output)
Serhiy_UA
А нет ли уже готовой платы с FPGA Cyclone III или IV с логической емкостью не ниже 120, на которой стояло бы 6-8 корпусов DDR2 SDRAM примерно по 64М*16 каждый? Допускается, если памяти будет больше, а других узлов больше не требуется, т.е только память и FPGA ...
Создавать самому плату с нуля, как-то рискованно, уж очень жесткие требования к трассировке...
des00
Цитата(Serhiy_UA @ Sep 19 2011, 06:02) *
А нет ли уже готовой платы с FPGA Cyclone III или IV с логической емкостью не ниже 120, на которой стояло бы 6-8 корпусов DDR2 SDRAM примерно по 64М*16 каждый?

есть такие но с разъемом под ДДР %)
Serhiy_UA
Цитата(des00 @ Sep 19 2011, 14:29) *
есть такие но с разъемом под ДДР %)

Дайте ссылку, пожалуйста...
Почему после ДДР усмешка? Нужен обработчик с большой памятью, сделать который самому и без тренировки тяжело и долго, а времени маловато...
des00
Цитата(Serhiy_UA @ Sep 19 2011, 07:32) *
Дайте ссылку, пожалуйста...

http://www.altera.com/products/devkits/alt...it-st3-dsp.html
в свое время была аналогичная борда на 120 ом сыклоне правда втором, у нас где то на работе валяется
Цитата
Почему после ДДР усмешка?

кхм, вроде я такой смайлик уже лет 7 использую %)

bark
Цитата(des00 @ Sep 19 2011, 17:41) *
http://www.altera.com/products/devkits/alt...it-st3-dsp.html
в свое время была аналогичная борда на 120 ом сыклоне правда втором, у нас где то на работе валяется

кхм, вроде я такой смайлик уже лет 7 использую %)


ну вообще-то это стратикс, а не сциклон. и всё равно вариант не интересный.
там есть более привлекательная борда.
des00
Цитата(bark @ Sep 20 2011, 01:31) *
ну вообще-то это стратикс, а не сциклон. и всё равно вариант не интересный.
там есть более привлекательная борда

о кстати спасибо, вот та борда на сыклоне что у нас на работе есть http://www.buyaltera.com/scripts/partsearc...ame=544-1699-ND
ну а ваша стоит не гуманно, сильно не гуманно
bark
Цитата(des00 @ Sep 20 2011, 10:44) *
о кстати спасибо, вот та борда на сыклоне что у нас на работе есть http://www.buyaltera.com/scripts/partsearc...ame=544-1699-ND
ну а ваша стоит не гуманно, сильно не гуманно

ну по сравнению с той бордой на 3 стратиксе вполне гуманно. почти та же цена, только гораздо более оснащенная плата.
а какая ориентировочная цена на эту с СII ? на сайте не указано =\
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.