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

Не работает чтение DDR3 на CycloneV

Здравствуйте!

Делаю аппаратный контроллер (HMC) памяти DDR3 на CycloneV.

Создал два порта Avalon-MM по 32 бит - один для JTAG Debug Master, второй - для штатного (моего) контроллера.

Через JTAG Debug Master память пишется и читается, из чего делаю вывод, что временнЫе настройки чипов памяти я поставил правильные.

Через штатный контроллер могу питать в память, и единичные записи и берсты проходят. Но вот чтение поднять никак не получается.

Контроллер принимает 2 первых запроса по 8 слов, а на третьем поднимает waitrequest и больше его не опускает. Никогда. Сигнал readdatawalid вижу где-то вдалеке и только один.

Может кто-то сталкивался с таким? Что я делаю не так?

Обязательно ли логику мастера описывать в виде компонента QSYS, сейчас весь авалон у меня экспортирован из QSYS...

2019-07-27 20 28 29.png

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


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

Возможно, сигнал waitrequest не инвертированнный на самом деле (хотя суффикс "_n" намекает об обратном), и мне стоит ждать 6 тактов после первого запроса? :dash2:

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


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

12 часов назад, pavlovconst сказал:

Возможно, сигнал waitrequest не инвертированнный на самом деле (хотя суффикс "_n" намекает об обратном), и мне стоит ждать 6 тактов после первого запроса? :dash2:

У signal tap есть одно поганое свойство: он может сигналы интвертировать, если ему будет так удобнее разложить проект по кристаллу.

Хотите быстро и правильно: берете modelsim, берете модель памяти. И гоняете это дело, пока моделирование не даст положительный результат.

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


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

Когда у вас вся система внутри qsys, интреконнект настраивается автоматически, используя данные из tcl скрипта от вашего модуля. Т.е. если у вашего модуля например сигнал waitrequest активный 0, а у слейва 1, то qsys поставит инвертор. и тд. Поэтому лучше все делать в qsys.

У интела есть темплейты для мастеров чтения и записи, посмотрите, может пригодятся

https://www.intel.com/content/www/us/en/programmable/support/support-resources/design-examples/intellectual-property/embedded/nios-ii/exm-avalon-mm.html

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

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


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

Flip-fl0p, Burenkov Спасибо за советы!

Я разобрался. У контроллера памяти есть статусные выходы

.status_local_init_done
.status_local_cal_success
.status_local_cal_fail

Начинать чтение нужно только после того, как память инициализирована и успешно откалибрована

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


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

2 часа назад, pavlovconst сказал:

Flip-fl0p, Burenkov Спасибо за советы!

Я разобрался. У контроллера памяти есть статусные выходы


.status_local_init_done
.status_local_cal_success
.status_local_cal_fail

Начинать чтение нужно только после того, как память инициализирована и успешно

Ну да, в любом описалове на динамическую память это написано. И применение готовых ip ядер контроллеров памяти, не освобождает о  чтения описалова на память. 

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


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

2 hours ago, Flip-fl0p said:

не освобождает о  чтения описалова

Кто ж спорит. Всего три томика прочитал - и дело в шляпе =)

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


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

11 минут назад, pavlovconst сказал:

Кто ж спорит. Всего три томика прочитал - и дело в шляпе =)

Таков удел разработчиков - читать документацию.

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...