Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: UniPhy DDR3 Controller на Stratix IV
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
MIX@
Приветствую плисоводов sm.gif

Пытаюсь поднять контроллер ddr3 памяти (на базе UniPhy) на альтеровской отладке (Stratix IV GX FPGA Development Kit).
Использую DDR3 Top, состоящую из одного модуля Micron MT41J64M16LA-15E на 128 метров.
Сделал простенький проект в QSYS, состоящий всего из двух компонентов - Альтеровский контроллер и штатный генератор траффика.
Все настройки контроллера и соответствие пинов проекта ногам FPGA прописал из мануала к отладке.
Суть проблемы - контроллер ddr3 памяти падает на этапе калибровки (1-ый шаг, Pre-bit Read deskew failure).
Как я понимаю, суть этого шага - выровнять сигналы на линиях DQ, относительно друг друга и управляющего сигнала DQS.

Настройки контроллера, архитектуру системы в QSYS и отчёт EMI (External Memory Interface Toolkit) во вложении.

За любые советы по делу - заранее спасибо.
ISK
А квартус у вас какой?

Попробуйте отключить smart compilation и rapid recompile. И почистить папку DB
MIX@
Квартус у меня свежий, 12ый sm.gif

Smart compilation и rapid recompile отключены. Чистка папки DB ничего не дала.
serebr
При генерации корки можно попросить MegaWizard попутно сгенерить и Example Project. В этом примере используются те же модули, что и в рабочем проекте. Example Project содержит calibration logic, генератор и checker тестовых векторов. Попробуйте начать с этого.
MIX@
Цитата(serebr @ Oct 31 2012, 20:54) *
При генерации корки можно попросить MegaWizard попутно сгенерить и Example Project. В этом примере используются те же модули, что и в рабочем проекте. Example Project содержит calibration logic, генератор и checker тестовых векторов. Попробуйте начать с этого.


Попробовал сгенерить тестовый проект - теперь падает мегавизард sm.gif
Код
Error: Error during execution of script C:/Users/Администратор/AppData/Local/Temp/alt5645_7943971019348877730.dir/0009_ddr3_UniPHY_controller_gen/example_project/create_project.tcl: Peak virtual memory: 162 megabytes
Error: Error during execution of script C:/Users/Администратор/AppData/Local/Temp/alt5645_7943971019348877730.dir/0009_ddr3_UniPHY_controller_gen/example_project/create_project.tcl: Processing ended: Thu Nov 01 11:58:55 2012
Error: Error during execution of script C:/Users/Администратор/AppData/Local/Temp/alt5645_7943971019348877730.dir/0009_ddr3_UniPHY_controller_gen/example_project/create_project.tcl: Elapsed time: 00:00:01
Error: Error during execution of script C:/Users/Администратор/AppData/Local/Temp/alt5645_7943971019348877730.dir/0009_ddr3_UniPHY_controller_gen/example_project/create_project.tcl: Total CPU time (on all processors): 00:00:00
Error: Execution of script C:/Users/Администратор/AppData/Local/Temp/alt5645_7943971019348877730.dir/0009_ddr3_UniPHY_controller_gen/example_project/create_project.tcl failed


Кто-нибудь пользует 12-ый квартус?
ISK
Цитата(MIX@ @ Nov 1 2012, 10:55) *
Кто-нибудь пользует 12-ый квартус?


У нас 12-й квартус. DDR3 uniphy заработал в 4-м стратиксе ещё на 9.1 квартусе. Без особых проблем перешли на 12-й. Вначале были проблемы, подобные вашим, когда не проходит калибровка, и после сброса выставляются сигналы local_cal_fail = '1' и local_init_done = '0'. Решается всё так, как я выше описал. Скорее всего ваша проблема где-то или в констрейнах, или в правильности подключения к железу. Сам контроллер рабочий, за исключением вот этих глюков.

Ещё, как вариант, можно поюзать External memory interface toolkit.
serebr
Цитата(MIX@ @ Nov 1 2012, 00:55) *
Попробовал сгенерить тестовый проект - теперь падает мегавизард sm.gif

Кто-нибудь пользует 12-ый квартус?


Мы тоже используем 12-й Quartus (SP2). Проблем с генерацией Example project не было. Могу предложить попробовать сгенерить Example project на своем компе с вашим исходным файлом для MegaWizard.
AndrewS6
1. Мегавизард падает, если в пути встречаются кириллические символы. Еще в какой-то из версий падал, если в пути были пробелы.
2. Для корректной работы контроллера возможно понадобится вносить сдвиг по фазе для клока адресов / команд. В первой вкладке мегавизарда ставьте галку на Advanced Clock Phase Control и вписывайте сдвиг, например -30.

Общая рекомендация - посмотрите туториалы:
http://www.altera.com/literature/hb/extern...emi_tut_qdr.pdf
MIX@
Всем спасибо за советы, проблему решил.
Действительно нужно прописать Advanced Clock Phase Control в -30, но ГЛАВНОЕ - не забыть подключить SDC-файл, генерируемый QSYS. По неопытности я полагал, что при подключении файла .qsys к проекту - подключается всё, что он нагенерировал, но оказывается нужно руками добавлять sdc.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.