|
|
  |
Nios II + DDR + своя плата (не kit) как правильно делать?, чтил массу pdf, но не помогло |
|
|
|
Feb 6 2008, 13:33
|
Знающий
   
Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827

|
Как правильно запускать Nios II на самодельной плате с EP2C8 (208 ног) и DDR MT46V32M16-6T?
В IP wizarde такой памяти нет, сделал из похожей заготовки.
Что выбирать при вводе constraint'ов? Визуально похоже на банки выводов ПЛИСа, но в результате constraint'ы не совпадают с топологией платы и проект не собирается.
Wizard понаделал назначений, часть из которых мешала сборке проекта и я ее удалил. Но чувствую, что даром это не прошло. выкинув из qsf много "лишнего", я добился собираемости проекта, но...
В результате получил сбои при записи и чтении процессором в/из DDR. Эффект такой, что 32-битные слова при записи в память съезжают на 16 бит вверх, что видно при просмотре памяти в Nios IDE.
Плата заведомо рабочая, т.к. есть под нее проект коллеги, но без процессора.
частота ядра 50 МГц, SDRAM - 125 МГц.
Тестовый пример показал, что при write_clock опережающем на 90 градусов, старшие 16 бит недоступны вообще, читается ffff или 7fff. При отстающем (попробовал ради интереса) младшие 16 бит битые, старшие, наоборот, есть.
Инструменты Quartus 7.1 + Nios II 7.1 (какой есть..) + IP 7.1 С внутренней памятью тестовые проекты работают. hello led и т.д.
Хелп! Могу приложить к письму проекты, если потребуется.
|
|
|
|
|
Feb 6 2008, 14:15
|
carpe manana
  
Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659

|
Цитата(jojo @ Feb 6 2008, 16:33)  Что выбирать при вводе constraint'ов? .... Плата заведомо рабочая, т.к. есть под нее проект коллеги Вот и наложите констрейны коллеги. М/с памяти как конфигурируете? Контроллер DDR SDRAM вы сами писали или из визарда подбирали? В последнем случае вы его подобрали/настроили неправильно.
|
|
|
|
|
Feb 6 2008, 14:37
|
Знающий
   
Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827

|
У него в проекте нет таких назначений, какие делает Wizard. Все сделано на рассыпухе в графическом редакторе. Назначение выводов из его проекта я скопировал, конечно.
Наверное, назначения set_location_assignment LAB_X2_Y2 -to "nio:inst|ddr_sdram_0:the_ddr_sdram_0|ddr_sdram_0_auk_ddr_sdram:ddr_sdram_0_ auk_ddr_sdram_inst|ddr_sdram_0_auk_ddr_datapath:ddr_io|ddr_sdram_0_auk_ddr_dqs_g r oup:\\g_datapath:1:g_ddr_io|altddio_out:dm_pin|ddio_out_sbf:auto_generated|output _cell_L[0]" и т.д. тоже были нужны, но я не понял, как их правильно вводить для своей платы. С ними проект не собрался.
Контроллер DDR взял из SOPC wizarda. Понятно, что-то не то.
Память конфигурируется по шаблону, который сделан из [Nios Development Board, Cyclone II (EP2C35)], description = Micron MT46V16M16TG-6T 256Mbit x16 chip
Настройки типовые, CL = 2.0
[Micron MT46V16M32TG-6T] description = Micron my MT46V32M16TG-6T 512Mbit x16 chip mem_type = ddr_sdram clock_pairs = 1 chipselects = 1 bankbits = 2 width = 16 colbits = 10 rowbits = 13 dq_per_dqs = 8 pch_bit = 10 reg_dimm = 0 cas_latency = 2.5 clock_speed = 166.6667
trcd = 18 tras = 42 twtr = 1 twr = 15 trp = 18 trfc = 72 tmrd = 12 trefi = 7.81 tinit_time = 200
tDQSQ = 450 tQHS = 550 tDQSCK = 600 tAC = 700 fmax_at_cl5 = 0 fmax_at_cl4 = 0 fmax_at_cl3 = 166.6667 fmax_at_cl25 = 166.6667 fmax_at_cl2 = 133.3333 tCK_MAX = 13000 tDS = 450 tDH = 450 tDQSS_MIN = 0.75 tDQSS_MAX = 1.25
dq_pin_load = 4 cmd_pin_load = 2 clk_pin_load = 2
|
|
|
|
|
Feb 7 2008, 07:57
|
Знающий
   
Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827

|
Кажется, что понял. Удаленные многозначительные констрейны делались tcl скриптом, который пользовался dat файлами из глубин мегафункции. А разработчик платы соединил DQ[] совсем иначе. Отсюда результат. Пойду править dat файл.
Эскизы прикрепленных изображений
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|