Инициализировать ничего не надо. Отлаживаться проще в sdk, при помощи стандартного проекта hello world с stdio через mdm. Сначала сложить все в брамку, проверить на работоспособность. Потом сложить в ddr. Если все хорошо, то будет работать также как и из брамки. Если все плохо, то возможно два варианта: 1. Программа тупо не грузится и sdk виснет - ддрка не прошла все стадии калибровки и повисла где-то посередине. 2. Программа грузится, но в итоге sdk говорит что elfcheck failed. Оба бага носят аппаратный характер. Первый вариант - что-то напутано в ucf, таиминги там, распиновка. Там много сто напутать можно. Второй вариант - совсем хардварный. Типа плохого контакта модуля sodimm, был такой вариант в моей практике. Дебажить согласно документации на mig, те довольно муторно. Через кореген создаем ip ядро контроллера ddr, в структуре папок ip ядра находим example design. Правим его согласно своим потребностям ( как минимум клоки, ucf и вытаскивать нужные сигналы на чипскоп - calib done и error). Запускаем и смотрим что и где валится. Если на калибровке - смотрим стадию, читаем даташит, действуем по ситуации. Если на записи-чтении тестовых паттернов - пытаемся играть паттернами и адресами чтобы обнаружить где не работает. Но перво-наперво проверить ucf и свой дизайн. Не забыли ли сгенерировать адрес ддр, все ли нужные клоки подключены ( там, кроме шинного, еще куча нужна: половинная частота, сдвинутая на 90 градусов, 200 мгц)
|