|
DDR3 + kintex7 |
|
|
|
Jun 8 2015, 04:34
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 30-01-15
Пользователь №: 84 837

|
Добрый день, нужно подключить ddr3 память MT41K256M8-125 к kintex 7. Проект в ISE. Создал файлы в MIG. Не пойму как подключить сгенерированные файлы, какие-то они грамоздкие. Просто для начала инициализацию хотябы В проекте один топ файл, где фифо, юсб3. Подскажите какие файлы нужно подключить.
|
|
|
|
|
Jun 15 2015, 08:57
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 30-01-15
Пользователь №: 84 837

|
поделитесь, пожалуйста, ссылками по использование MIG в ISE.
|
|
|
|
|
Jun 16 2015, 20:13
|
Знающий
   
Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219

|
Цитата(exigo @ Jun 8 2015, 07:34)  Добрый день, нужно подключить ddr3 память MT41K256M8-125 к kintex 7. Проект в ISE. Создал файлы в MIG. Не пойму как подключить сгенерированные файлы, какие-то они грамоздкие. Просто для начала инициализацию хотябы В проекте один топ файл, где фифо, юсб3. Подскажите какие файлы нужно подключить. Там в папке МИГа example design лежит - вот можно с него начать. Поставьте его как топ-левел. Он память инициализирует и зажигает флаг об окончании инициализации. Потом начинает писать-читать туда-сюда. Если какая ошибка случается - то зажигает флаг Error. Флаги вывести на светодиоды и посмотреть как оно работает, пальцем или пинцетом помехи посоздавать. Обычно приходится повозиться с клоками. В МИГе расчитатано, что приходит два клока: один 200МГц для IOdelay, другой 400 МГц - частота памяти. В реальности зачастую клок один и другой частоты, например, 100МГц - вот и приходится залезать во внутренности файлов МИГа и править их вручную.
|
|
|
|
|
Jun 17 2015, 05:38
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 18-11-12
Пользователь №: 74 459

|
Цитата(VladimirB @ Jun 16 2015, 23:13)  Обычно приходится повозиться с клоками. В МИГе расчитатано, что приходит два клока: один 200МГц для IOdelay, другой 400 МГц - частота памяти. В реальности зачастую клок один и другой частоты, например, 100МГц - вот и приходится залезать во внутренности файлов МИГа и править их вручную. Другой клок можно варьировать в определенных пределах при создании корки.
|
|
|
|
|
Jun 17 2015, 07:54
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 30-01-15
Пользователь №: 84 837

|
Скажите пожалуйста, чтобы пример завести, в настройках корки, что выбирать при настройках клока input clock period, system clock, ref clock
|
|
|
|
|
Jun 24 2015, 09:50
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Приветствую. Есть плата 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? У контроллера памяти нет таких портов, или должна быть какая-то дополнительная опция?
|
|
|
|
|
Jun 25 2015, 06:57
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Зачем нужны указанные выше сигналы так и не понял, пока всё работает без них. Собрал систему приведённую на рисунке ниже. MicroBlaze пишет/читает по адресам DDR3. Через указатель на DDR3 (окно Variables) также могу записывать в память. А вот окно Memory почему-то не работает. На чтение показывает все нули, при попытке записи по адресу DDR3 выбрасывает ошибку. MDM вроде как должен иметь доступ к DDR3 (согласно схеме подключения и карте памяти). В чём может быть проблема? Возможно ли редактировать/просматривать внешнюю (DDR3) память через окно Memory?
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 25 2015, 11:51
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(doom13 @ Jun 24 2015, 12:50)  На слот памяти (согласно схеме платы) подключены линии: 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, данные сигналы используются в модулях с двухрядным расположением микросхем памяти (в моём случае они не используются, т.к. модуль - однорядный).
|
|
|
|
|
Jan 13 2016, 09:07
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 30-01-15
Пользователь №: 84 837

|
Добрый день делаю циклический буфер в ддр3 пишу в память 1 транзакцию в цикле пока адрес записи не убежит к примеру на 4 адреса, потом считываю 4 адреса. проблема, что при чтение не всегда приходит 4 valid сигнала, а иногда на 1 меньше. и еще заметил сдвиг данных по адресам, пишу в один адрес а эти данные (тест счетчик) считываются по другому позже, с фиксированным сдвигом по адресу. В целом буфер работает, но иногда происходят разрывы. плис kintex 7, dd3 Может в чтение или записи проблема. Смотрю временные диаграмы разные в интернете. при записи app_wdf_wren<='1';app_wdf_end<='1'; в одно время дергаю, а при чтение считываю по app_rd_data_valid='1'
|
|
|
|
|
Jan 13 2016, 21:45
|
Знающий
   
Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219

|
Цитата(exigo @ Jan 13 2016, 12:07)  Добрый день делаю циклический буфер в ддр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, то адреса перемешиваются перед записью/чтением в память, она начинает тормозить и валиды приходят с паузами.
|
|
|
|
|
Jan 14 2016, 09:42
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 30-01-15
Пользователь №: 84 837

|
Для пробы делаю сейчас так, записываю 64 раза начиная с адреса 16, и инкрементирую +16 каждый раз адрес (16,32,64) Потом в бесконечном цикле считываю эти 64 адреса. В качестве данных записываю адрес В результат в чипскопе данные непрырывно начиная с 16, начинаются только с адреса 64, т.е. сдвиг 3 адреса. Пробовал первые три адреса перезаписывать несколько раз, всеравно данные оказываются только в дресах сдвинутых на 3. Может с адресацией что-то не так?
|
|
|
|
|
Jan 19 2016, 10:42
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 30-01-15
Пользователь №: 84 837

|
Скиньте, пожалуйста, кто-нибуть файл к которому подключен МИГ и есть автомат чтения-записи, проверю конфигурацию и сигналы.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|