-
alman
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 263
-
Спасибо получено: 41
-
-
-
-
-
|
Беда беда беда. Ну вот никак не могу запустить SDRAM на плате Марсохода2. Брал различные решения, но наилучший результат получил вот с этим кодом -
marsohod.org/11-blog/281-sdramvhdl
Контроллер без труда интегрировался в проект и подаёт признаки жизни - запиывая и читая слова, обнаруживаю от 256 байт до полумегабайта ОЗУ. Но работает очень нестабильно и разрядность от 16 до 32 бит пришлось реализовывать самому.
Другие контроллеры SDRAM из различных проектов "не завелись". При том котроллер
marsohod.org/index.php/prodmarsohod2/amb...-2012-10-08-10-25-17
показался через чур сложным (wishbone избыточен для моих целей), а другие не поддерживают регенерацию.
Уважаемые коллеги, помогите пожалуйста раз и навсегда решить поблему с MT48LC4M16A2-75. Например, адаптировав вот этот
контроллер к Марсоходу2. У меня он не завёлся. (кое что пришлось закоментировать чтобы исходник компилировался в Квартусе, может быть это и создало проблему).
Или, как вариант, предложите другое рабочее решение - простое, с регенерацией, универсальное, быстрое, надёжное и легко интегрируемое в проект. Всё же 8Мб это чертовски много и с их помощью можно сделать очень много полезного. Очень надеюсь на вашу помощь.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от alman.
|
-
mindango
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 3
-
Спасибо получено: 1
-
-
|
Давно обновил SDRAM-контроллер, но, видно, публикация на сайте где-то затерялась.
Если интересно – смотрите вложение, там исходный код контроллера и небольшая заметка о том, что изменилось.
Если кратко: добавил функцию регенерации, учёл различные задержки микросхемы, что должно повысить стабильность. Однако полноценной верификацией не занимался, так что за найденные баги буду очень благодарен :)
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
alman
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 263
-
Спасибо получено: 41
-
-
-
-
-
|
mindango пишет: Однако полноценной верификацией не занимался, так что за найденные баги буду очень благодарен :)
Пока тестирую. Но результат ещё не радует.
Если ставлю частоту 100Мгц, то зависает.
Если оставляю частоту 50Мгц, то читает какие-то случайные данные.
Предыдущая версия всё же лучшие результаты даёт.
Сравнивал изменения между версиями - пока буду эксперементировать, читать спеку на чип - может быть и удастся запустить.
А у Вас есть плата Марсоход2 или проверяли на другой плате или только в симуляторе тестировали?
Разумеется не исключаю возможность что я что-то недопонял и неправильно использую.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от alman.
|
-
mindango
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 3
-
Спасибо получено: 1
-
-
|
alman пишет: Пока тестирую. Но результат ещё не радует.
Первоначально контроллер инициализирует микросхему, загружая в неё определённые настройки, поэтому после запуска проекта нужно выждать некоторое время. Потом контроллер переходит в режим ожидания, а на выходе ready появляется "1". Запросы на чтение и запись, а также соответствующие данные (адреса и записываемые в память слова) будут восприниматься контроллером только когда ready=1, в обратном случае входы следует зафиксировать во избежание потерь информации. Успешный цикл чтения на выходе rd_valid даёт "1".
Если кратко: когда ready=1 можно подавать входные данные, когда rd_valid=1 можно брать выходные.
Закрытие активной строки занимает два периода синхросерии (для частот ниже 50 МГц можно обойтись одним периодом, но в данный момент в коде это не учтено). Если в момент закрытия строки в отдельном счётчике накоплено нужное значение, будет запущен цикл регенерации, длящийся 66 нс (7 тактов на 100 МГц). Но во время операций закрытия строки и регенерации ready=0, поэтому входные данные будут игнорироваться.
Вы эти особенности учли? Если да, хотелось бы получить больше информации о характере имеющихся проблем. Я проверял контроллер только в симуляторе, обкатать его в марсоходе2 пока руки не доходят.
Вообще, можете прислать весь Ваш проект, может получится выяснить, откуда ноги растут.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
kox
-
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 26
-
Спасибо получено: 3
-
-
|
Здравствуйте, mindango.
Спасибо за ваш контролер, он отлично работает на плате DE0-Nano.
Но на плате DE0-Nano 32мб SDRAM, а контролер поддерживает только 8мб.
Если вам не сложно- не могли бы вы переделать контролер для поддержки 32мб, а то
в VHDL я мало понимаю, только начал изучать ПЛИС, в основном методом схемного ввода.
Заранее спасибо!
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Flip-fl0p
-
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 33
-
Спасибо получено: 0
-
-
|
А почему память регенерируется только когда было обращение к строке ?
А если я записал данные и больше их не трогаю. Тогда получиться что цикл регенерации выполняться не будет...
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
Время создания страницы: 0.157 секунд