Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Nios II + DDR2. Помогите разобраться
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
rainzz
Здравствуйте! Пытаюсь заставить работать простейшую систему с альтеровским DDR2-контроллером.
Плата Cyclone III FPGA Development Kit, Quartus II 10.1. Использую одну микросхему DDR2 из группы на плате. Все настройки контроллера видны на картинках.

При попытке как записи так и чтения DDR2 через memory-mapped интерфейс программа зависает. Например
Код
printf("Write\n");
IOWR(ALTMEMDDR_BASE,0x0000000A,0x11223344);
printf("Reading data\n");
j = IORD(ALTMEMDDR_BASE,0x0000000A);
printf("Data0A: %08x\n" ,j);

- выводится в терминал только "Write"
Ситуация повторяется в 11-м квартусе.

Подскажите пожалуйста, что я делаю не так и в каком направлении копать.

Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
gosu-art
Прога выполняется из Он чип памяти?
Посмотрите чтобы в настройках линкера нигде не фигурировала ДДР.
Нажмите для просмотра прикрепленного файла
rainzz
Да, все секции линкера установлены на SRAM onchip-memory.
alexadmin
Цитата(rainzz @ Dec 21 2011, 11:53) *
Да, все секции линкера установлены на SRAM onchip-memory.


Значит какие-то проблемы с памятью и транзакция подвисает при обращении к контроллеру DDR. Для начала проверьте, все ли сигналы подключены правильно.
rainzz
Ну, если в доке на плату выводы расписаны корректно, то сигналы должны быть подключены правильно, перепроверял несколько раз.
Может быть дело в констрейнах? Но они вроде генерируются автоматически...
vadimuzzz
Цитата(rainzz @ Dec 21 2011, 16:30) *
Может быть дело в констрейнах? Но они вроде генерируются автоматически...

отчет таймквеста в студию. и что в логах на предмет Critical warnings?
rainzz
Есть несколько Critical warnings:
Код
Critical Warning: ALTMEMPHY PLL, adcsystem:inst|altmemddr:the_altmemddr|altmemddr_controller_phy:altmemddr_controller_phy_inst|altmemddr_phy:altmemddr_phy_inst|altmemddr_phy_alt_mem_phy:altmemddr_phy_alt_mem_phy_inst|altmemddr_phy_alt_mem_phy_clk_reset:clk|altmemddr_phy_alt_mem_phy_pll:pll|altpll:altpll_component|altpll_n5k3:auto_generated|clk[1], when fed by another PLL, must have bandwidth mode set to High instead of Medium
Critical Warning: ALTMEMPHY PLL, adcsystem:inst|altmemddr:the_altmemddr|altmemddr_controller_phy:altmemddr_controller_phy_inst|altmemddr_phy:altmemddr_phy_inst|altmemddr_phy_alt_mem_phy:altmemddr_phy_alt_mem_phy_inst|altmemddr_phy_alt_mem_phy_clk_reset:clk|altmemddr_phy_alt_mem_phy_pll:pll|altpll:altpll_component|altpll_n5k3:auto_generated|clk[2], when fed by another PLL, must have bandwidth mode set to High instead of Medium
Critical Warning: PLL clock inst|the_altmemddr|altmemddr_controller_phy_inst|altmemddr_phy_inst|altmemddr_ph
y_alt_mem_phy_inst|clk|pll|altpll_component|auto_generated|pll1|clk[1] not driven by a dedicated clock pin or neighboring PLL source.  To ensure minimum jitter on memory interface clock outputs, the PLL clock source should be a dedicated PLL input clock pin or an output of the neighboring PLL.
Critical Warning: PLL clock inst|the_altmemddr|altmemddr_controller_phy_inst|altmemddr_phy_inst|altmemddr_ph
y_alt_mem_phy_inst|clk|pll|altpll_component|auto_generated|pll1|clk[3] not driven by a dedicated clock pin or neighboring PLL source.  To ensure minimum jitter on memory interface clock outputs, the PLL clock source should be a dedicated PLL input clock pin or an output of the neighboring PLL.
Critical Warning: Read Capture and Write timing analyses may not be valid due to violated timing model assumptions


А из таймквеста какой отчёт? Там их несколько...
vadimuzzz
Цитата(rainzz @ Dec 21 2011, 17:36) *
А из таймквеста какой отчёт? Там их несколько...

все выкладывайте
vadimuzzz
так, в таймквесте ошибок не видать. возможно, проблема в распиновке, но по выложенному проекту этого не понять.
использовать только 1 чип памяти - критично? у меня есть несколько примеров для этой борды, но там вся память используется. выложить?
rainzz
Конечно выкладывайте! Разрядность памяти пока не важна, главное чтобы заработало )
vadimuzzz
вот пример проекта. еще есть на alterawiki.com, я вроде там брал
rainzz
Спасибо. А вы его у себя не проверяли, проект рабочий?
vadimuzzz
не уверен насчет именно этой версии, но д.б. рабочий. проверить не смогу, платы нет.
rainzz
Система заработала. Проблема скрывалась всё-таки в эссайнах пинов. Смешал сигналы управления и данных от разных групп микросхем памяти на отладочной плате. Нужно быть внимательней... blink.gif
Благодарю всех кто отписывался в теме!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.