Перейти к содержанию

    

Добрый день, нужно подключить ddr3 память MT41K256M8-125 к kintex 7.

Проект в ISE. Создал файлы в MIG.

Не пойму как подключить сгенерированные файлы, какие-то они грамоздкие.

Просто для начала инициализацию хотябы

В проекте один топ файл, где фифо, юсб3.

Подскажите какие файлы нужно подключить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поделитесь, пожалуйста, ссылками по использование MIG в ISE.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вся документация на сайте Xilinx, ее много,

в тч использование МIG для ISE и для Vivado описано в разных версиях

 

http://www.xilinx.com/support/documentatio...7Series_MIS.pdf

 

http://www.xilinx.com/support/documentatio...xtp105-14.4.pdf

 

Дополнительно как пример для Virtex-6

 

https://www.wpi.edu/Pubs/E-project/Availabl...DDR3_Memory.pdf

Изменено пользователем Алга

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для седьмой сарии лучше использовать не ISE, а Vivado, а там можно попробовать собрать блочный дизайн.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Добрый день, нужно подключить ddr3 память MT41K256M8-125 к kintex 7.

Проект в ISE. Создал файлы в MIG.

Не пойму как подключить сгенерированные файлы, какие-то они грамоздкие.

Просто для начала инициализацию хотябы

В проекте один топ файл, где фифо, юсб3.

Подскажите какие файлы нужно подключить.

Там в папке МИГа example design лежит - вот можно с него начать.

Поставьте его как топ-левел. Он память инициализирует и зажигает флаг об окончании инициализации.

Потом начинает писать-читать туда-сюда. Если какая ошибка случается - то зажигает флаг Error.

Флаги вывести на светодиоды и посмотреть как оно работает, пальцем или пинцетом помехи посоздавать.

 

Обычно приходится повозиться с клоками. В МИГе расчитатано, что приходит два клока: один 200МГц для IOdelay, другой 400 МГц - частота памяти.

В реальности зачастую клок один и другой частоты, например, 100МГц - вот и приходится залезать во внутренности файлов МИГа и править их вручную.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Обычно приходится повозиться с клоками. В МИГе расчитатано, что приходит два клока: один 200МГц для IOdelay, другой 400 МГц - частота памяти.

В реальности зачастую клок один и другой частоты, например, 100МГц - вот и приходится залезать во внутренности файлов МИГа и править их вручную.

Другой клок можно варьировать в определенных пределах при создании корки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скажите пожалуйста, чтобы пример завести, в настройках корки, что выбирать при настройках клока input clock period, system clock, ref clock

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую.

Есть плата HTG-V7-PCIE-G3. Установлена планка 1GB 204-PIN SODIMM DDR3 (Crucial CT12864BF1339.M4FKD). Добавил в IP интегратор DDR3 контроллер, сгенерил систему.

Получил следующие порты:

output [13:0]ddr3_addr;

output [2:0]ddr3_ba;

output ddr3_cas_n;

output [0:0]ddr3_ck_n;

output [0:0]ddr3_ck_p;

output [0:0]ddr3_cke;

output [0:0]ddr3_cs_n;

output [7:0]ddr3_dm;

inout [63:0]ddr3_dq;

inout [7:0]ddr3_dqs_n;

inout [7:0]ddr3_dqs_p;

output [0:0]ddr3_odt;

output ddr3_ras_n;

input ddr3_ref_clk_clk_n;

input ddr3_ref_clk_clk_p;

input ddr3_reset;

output ddr3_reset_n;

input ddr3_sys_clk_clk_n;

input ddr3_sys_clk_clk_p;

output ddr3_we_n;

output init_calib_complete;

На схеме платы шина адреса для слота памяти имеет разрядность 16 бит - в полученной системе 14. Где брать ещё две линии?

На слот памяти (согласно схеме платы) подключены линии:

1) DDR3_CK0_P, DDR3_CK0_N и DDR3_CK1_P, DDR3_CK1_N;

2) DDR3_CKE0 и DDR3_CKE1;

3) DDR3_CS0_N и DDR3_CS1_N;

4) DDR3_ODT0 и DDR3_ODT1.

Что подключается к портам DDR3_CK1_P и DDR3_CK1_N, DDR3_CKE1, DDR3_CS1_N, DDR3_ODT1? У контроллера памяти нет таких портов, или должна быть какая-то дополнительная опция?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем нужны указанные выше сигналы так и не понял, пока всё работает без них.

 

Собрал систему приведённую на рисунке ниже. MicroBlaze пишет/читает по адресам DDR3. Через указатель на DDR3 (окно Variables) также могу записывать в память. А вот окно Memory почему-то не работает. На чтение показывает все нули, при попытке записи по адресу DDR3 выбрасывает ошибку. MDM вроде как должен иметь доступ к DDR3 (согласно схеме подключения и карте памяти).

В чём может быть проблема? Возможно ли редактировать/просматривать внешнюю (DDR3) память через окно Memory?

post-63539-1435215442_thumb.jpg

post-63539-1435215447_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
На слот памяти (согласно схеме платы) подключены линии:

1) DDR3_CK0_P, DDR3_CK0_N и DDR3_CK1_P, DDR3_CK1_N;

2) DDR3_CKE0 и DDR3_CKE1;

3) DDR3_CS0_N и DDR3_CS1_N;

4) DDR3_ODT0 и DDR3_ODT1.

Что подключается к портам DDR3_CK1_P и DDR3_CK1_N, DDR3_CKE1, DDR3_CS1_N, DDR3_ODT1? У контроллера памяти нет таких портов, или должна быть какая-то дополнительная опция?

 

Нашёл стандарт для SO-DIMM 204, данные сигналы используются в модулях с двухрядным расположением микросхем памяти (в моём случае они не используются, т.к. модуль - однорядный).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В чём может быть проблема? Возможно ли редактировать/просматривать внешнюю (DDR3) память через окно Memory?

После правильной настройки DDR3-контроллера всё заработало.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день

делаю циклический буфер в ддр3

пишу в память 1 транзакцию в цикле пока адрес записи не убежит к примеру на 4 адреса, потом считываю 4 адреса.

проблема, что при чтение не всегда приходит 4 valid сигнала, а иногда на 1 меньше.

и еще заметил сдвиг данных по адресам, пишу в один адрес а эти данные (тест счетчик) считываются по другому позже, с фиксированным сдвигом по адресу.

В целом буфер работает, но иногда происходят разрывы.

плис kintex 7, dd3

Может в чтение или записи проблема.

Смотрю временные диаграмы разные в интернете.

при записи app_wdf_wren<='1';app_wdf_end<='1'; в одно время дергаю, а при чтение считываю по app_rd_data_valid='1'

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Добрый день

делаю циклический буфер в ддр3

пишу в память 1 транзакцию в цикле пока адрес записи не убежит к примеру на 4 адреса, потом считываю 4 адреса.

проблема, что при чтение не всегда приходит 4 valid сигнала, а иногда на 1 меньше.

и еще заметил сдвиг данных по адресам, пишу в один адрес а эти данные (тест счетчик) считываются по другому позже, с фиксированным сдвигом по адресу.

В целом буфер работает, но иногда происходят разрывы.

плис kintex 7, dd3

Может в чтение или записи проблема.

Смотрю временные диаграмы разные в интернете.

при записи app_wdf_wren<='1';app_wdf_end<='1'; в одно время дергаю, а при чтение считываю по app_rd_data_valid='1'

Если у вас версия MIG v1.9 (ISE 14.7, а может и более ранние)

то там есть косяк: http://www.xilinx.com/support/answers/56276.html.

В этой версии, если оставить дефолтный параметр MEM_ADDR_ORDER=TG_TEST, то адреса перемешиваются перед записью/чтением в память, она начинает тормозить и валиды приходят с паузами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для пробы делаю сейчас так, записываю 64 раза начиная с адреса 16, и инкрементирую +16 каждый раз адрес (16,32,64)

Потом в бесконечном цикле считываю эти 64 адреса.

В качестве данных записываю адрес

В результат в чипскопе данные непрырывно начиная с 16, начинаются только с адреса 64, т.е. сдвиг 3 адреса.

Пробовал первые три адреса перезаписывать несколько раз, всеравно данные оказываются только в дресах сдвинутых на 3.

Может с адресацией что-то не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация