Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DDR2 + Cyclon V
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
UltraLord
Здравствуйте!

Прошу помощи, в первые столкнулся с работой DDR2. У нас есть своя кастомная плата с DDR2 MT47H64M16HR-3IT (есть в контроллере UniPHY) и Cyclon V. Компиляция проекта проходит успешно, но возникает следующая проблема, при добавлении контроллера DDR2 в Qsys, ниоc прекращает работать. Проект в eclips с ниосом при дебаге запускается, но тупо зависает и ничего не происходит. Даже не знаю, где копать, понятно что где-то в DDR, но что именно может вызывать подобный эффект?
alexadmin
Цитата(UltraLord @ Sep 14 2016, 10:43) *
при добавлении контроллера DDR2 в Qsys, ниоc прекращает работать. Проект в eclips с ниосом при дебаге запускается, но тупо зависает и ничего не происходит. Даже не знаю, где копать, понятно что где-то в DDR, но что именно может вызывать подобный эффект?


Вероятнее всего зависает транзакция на шине при обращении к области памяти DDR, а значит контроллер не может корректно взаимодействовать с памятью. Причин может быть миллион - неправильные подключения управляющих сигналов, неправильные настройки параметров памяти, проблемы с времянками.
Koluchiy
На 81% уверен, что дело в том, что при появлении в системе DDR, компилятор начинает пихать в нее программу для Ниоса.
А поскольку, вероятно, DDR не работает (по одной или нескольким из миллиона причинам), то весь Ниос не работает.

Лечится редактированием файла "linker script".
Inanity
Как верно приметили выше, причин почему может не работать слишком много. Делайте всё последовательно. Сначала просто подключите DDR к процу и сделайте memtest памяти DDR. Код при этом должен выполняться из BRAM. Потом можно все вектора и код поместить в DDR.

P.S. для начала, почему у вас instruction_master проца не подключен к DDR?
Sergey_Bekrenyov
проверьте сбросы - по-моему jtag_debug_reset должен заходить на сброс ddr
SamuraY
Как раз недавно столкнулся с подобнной ситуацией. Как правильно указали выше, все ломалось на попытке загрузить через JTAG прогу на выполнение из DDR SDRAM, при неправильно работающем контроллере памяти. Если добавить в SoC внутреннюю блочную память и в настройках linker script BSP указать эту самую блочную память для всех сегментов, программа запустится из блочной памяти. Но проблема с неработающей DDR SDRAM останется. Причин тому может быть миллион (но скорее всего неправильные настройки контроллера памяти).
UltraLord
Разбираясь дальше с DDR2, переделал проект в 14 квартусе. Программу запускаю из под блочной памяти (указываю в настройках BSP). Так же настроил тайминги, для памяти и для платы, проблема от части решилась. Отладка запускается, память DDR2 видна, но не проходит тест записи данных, вернее может пройти, а может и нет (считанные данные не соответствуют записанным), а может и вовсе зависнуть. Ниже скриншот глазковых диаграмм и по нему видно, что есть проблемы, с линиями DQ11, DQ4, DM1, DM0, DQS0, DQS1. Кстати раньше были проблемы со всеми линиями, после включения ODT, остались проблемы только с этими. В чем причина и как с этим бороться, я пока не понимаю. Бывает, так что все диаграммы в норме, тогда и проходит тест, но во время полного теста памяти, диаграммы меняются. Для выше перечисленных линий, до нуля, для всех остальных незначительно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.