Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Nios II + DDR + своя плата (не kit) как правильно делать?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
jojo
Как правильно запускать 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 и т.д.

Хелп!
Могу приложить к письму проекты, если потребуется.
id_gene
Цитата(jojo @ Feb 6 2008, 16:33) *
Что выбирать при вводе constraint'ов?
....
Плата заведомо рабочая, т.к. есть под нее проект коллеги
Вот и наложите констрейны коллеги.
М/с памяти как конфигурируете?
Контроллер DDR SDRAM вы сами писали или из визарда подбирали?
В последнем случае вы его подобрали/настроили неправильно.
jojo
У него в проекте нет таких назначений, какие делает 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
jojo
Кажется, что понял.

Удаленные многозначительные констрейны делались tcl скриптом, который пользовался dat файлами из глубин мегафункции. А разработчик платы соединил DQ[] совсем иначе. Отсюда результат.

Пойду править dat файл.
jojo
Непонятно. В ep2c5_q208_x8_v02.dat вывода 86 нет, а на схеме есть.
И выводы 58-72 визард норовит использовать. А надо 59-74.

Правка .dat файла успеха не принесла. Назначения выводов становятся правильными, но проект тогда не собирается.

Что делать? Переразводить плату?
id_gene
если плата своя, то и ноги альтере вы назначаете сами.
Визард, насколько я помню, этого не делает.
jojo
Пользователь может только указать, куда примерно разместить группы из dq[], dm и dqs.
Окончательный выбор ног визард делает сам.
И в моем случае выбор визарда таков, что две ноги dq висят в воздухе. Так оно теперь и работает.

Думаю, проводочками соединить. Все равно -макет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.