SDRAM controller

Кратко о принципе работы

Контроллер расположен в FPGA, SDRAM - снаружи, чипы SDRAM разбиты на два отдельных модуля - AB и CD. В первый промежуток времени (field1,2) - пишем в AB и одновременно читаем из CD. Во второй промежуток времени (field3,4) - пишем в CD и одновременно читаем из AB. И так повторяется, пока поступает MR.

Общие детали.

Использую я этот вариант контроллера для задержки видео. Длительность задержки определяется частотой следования MR, в этом примере я его формирую из VB(Vertical Blanc). Задержка может быть произвольной (в рамках объёма SDRAM), необходимо учитывать, что во время MR = 1 выходной сигнал неопределён, поэтому он(MR) должен приходиться на блэнковый интервал. Минимальная длительность MR = 2 такта.
Простая коммутация входа(IN) и выхода(OUT) контроллера даёт "замораживание" картинки. Проще говоря, в момент команды "замораживание" выход подается на вход и система "гоняет" одни и те же два поля по кругу.
Эта версия контроллера не обеспечивает произвольного доступа к ячейкам памяти. Каждый такт CLK записывает 32 бита в SDRAM и выталкивает 32 из SDRAM.

Немного об элементной базе.

Я использую HY57V651620B (4 Banks x 1M x 16Bit Synchronous DRAM, 7ns, 400 mil 54pin
TSOP II), хотя проверял и другие типы чипов - работало.
На один контроллер у меня стоят 4 вышеупомянутых чипа SDRAM, шины управления запараллелены попарно. Если нет нужды в 32 битных IN, OUT, то чипы B и D можно не ставить.

Два слова об исходном коде контроллера.

Он не оптимален, и не только потому, что "руки не доходят", а, скорее, вследствие того, что зтот вариант кода оказался ОЧЕНЬ удобным для модификаций.
Основа контроллера - FSM  - не самое удачное решение с точки зрения быстродействия (40MHz) и занимаемий площади на кристалле (600LC). Однако, если Вы захототе переделать, доработать, "разобрать на части", просто понять как он работает, этот вариант - наилучший.

 Качайте его тут -распакуйте zip , файл с расширением  gdf - top level. Всё это для Max+II

Никакой ответственности ни за что вообще не несу.
Виталий.