UltraLord 0 14 сентября, 2016 Опубликовано 14 сентября, 2016 · Жалоба Здравствуйте! Прошу помощи, в первые столкнулся с работой DDR2. У нас есть своя кастомная плата с DDR2 MT47H64M16HR-3IT (есть в контроллере UniPHY) и Cyclon V. Компиляция проекта проходит успешно, но возникает следующая проблема, при добавлении контроллера DDR2 в Qsys, ниоc прекращает работать. Проект в eclips с ниосом при дебаге запускается, но тупо зависает и ничего не происходит. Даже не знаю, где копать, понятно что где-то в DDR, но что именно может вызывать подобный эффект? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 14 сентября, 2016 Опубликовано 14 сентября, 2016 · Жалоба при добавлении контроллера DDR2 в Qsys, ниоc прекращает работать. Проект в eclips с ниосом при дебаге запускается, но тупо зависает и ничего не происходит. Даже не знаю, где копать, понятно что где-то в DDR, но что именно может вызывать подобный эффект? Вероятнее всего зависает транзакция на шине при обращении к области памяти DDR, а значит контроллер не может корректно взаимодействовать с памятью. Причин может быть миллион - неправильные подключения управляющих сигналов, неправильные настройки параметров памяти, проблемы с времянками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 14 сентября, 2016 Опубликовано 14 сентября, 2016 · Жалоба На 81% уверен, что дело в том, что при появлении в системе DDR, компилятор начинает пихать в нее программу для Ниоса. А поскольку, вероятно, DDR не работает (по одной или нескольким из миллиона причинам), то весь Ниос не работает. Лечится редактированием файла "linker script". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inanity 1 15 сентября, 2016 Опубликовано 15 сентября, 2016 (изменено) · Жалоба Как верно приметили выше, причин почему может не работать слишком много. Делайте всё последовательно. Сначала просто подключите DDR к процу и сделайте memtest памяти DDR. Код при этом должен выполняться из BRAM. Потом можно все вектора и код поместить в DDR. P.S. для начала, почему у вас instruction_master проца не подключен к DDR? Изменено 15 сентября, 2016 пользователем Inanity Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sergey_Bekrenyov 0 28 сентября, 2016 Опубликовано 28 сентября, 2016 · Жалоба проверьте сбросы - по-моему jtag_debug_reset должен заходить на сброс ddr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SamuraY 0 28 сентября, 2016 Опубликовано 28 сентября, 2016 · Жалоба Как раз недавно столкнулся с подобнной ситуацией. Как правильно указали выше, все ломалось на попытке загрузить через JTAG прогу на выполнение из DDR SDRAM, при неправильно работающем контроллере памяти. Если добавить в SoC внутреннюю блочную память и в настройках linker script BSP указать эту самую блочную память для всех сегментов, программа запустится из блочной памяти. Но проблема с неработающей DDR SDRAM останется. Причин тому может быть миллион (но скорее всего неправильные настройки контроллера памяти). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
UltraLord 0 11 октября, 2016 Опубликовано 11 октября, 2016 (изменено) · Жалоба Разбираясь дальше с DDR2, переделал проект в 14 квартусе. Программу запускаю из под блочной памяти (указываю в настройках BSP). Так же настроил тайминги, для памяти и для платы, проблема от части решилась. Отладка запускается, память DDR2 видна, но не проходит тест записи данных, вернее может пройти, а может и нет (считанные данные не соответствуют записанным), а может и вовсе зависнуть. Ниже скриншот глазковых диаграмм и по нему видно, что есть проблемы, с линиями DQ11, DQ4, DM1, DM0, DQS0, DQS1. Кстати раньше были проблемы со всеми линиями, после включения ODT, остались проблемы только с этими. В чем причина и как с этим бороться, я пока не понимаю. Бывает, так что все диаграммы в норме, тогда и проходит тест, но во время полного теста памяти, диаграммы меняются. Для выше перечисленных линий, до нуля, для всех остальных незначительно. Изменено 11 октября, 2016 пользователем UltraLord Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться