Нашел тут у себя свои наработки. Использовал ACEX1K для связки AT91SAM7S64 и модуля SDRAM (от компьютера smile.gif ). Суть в том, что полную шину организовать на этом MC - ну никак, а памяти надо было много-го-го. Причем надо было максимально большую скорость. Узкое место здель именно интерфейс между MC и ПЛИС. Често скажу, подробностей не помню. Помню что работало где-то так: если надо читать память, выставляем одной командой (благо регистр портов 32 бита - доступен одной командой) rd=0, wr=1, на 8-bit шину - младший байт адреса. Затем одной командой rd=1, wr=0 (инверсия обоих сигналов), шина - следующий байт адреса и т.д. После адреса перестраиваем биты, соотсетствующие шине, на прием, инвертируем биты управления и читаем байт. Инвертируем опять... читаем следующий smile.gif
Запись аналогично.
Возился долго. Но до стабильности вроде довел. Специально гонял туда сюда целые ночи данные через ПЛИС - проверял на ошибки. Насколько помню, все работало на максимальной скорости MC (33Мгц вроде). Единственное, тактовая памяти была маленькая (25МГц, если не ошибаюсь), как как подключал целую планку(использовал только 16 бит из 64-х), а там у всех CLK от одного контакта, ну выходной мощности тактового генератора и не хватало, кажется использовал MAX3000 для этого). Но и такой частоты хватало с лихвой.
Вот, кому интересно, пожалуйста! Там че-то такого понаворочено... Шучу. Там несколько автоматов состояний. Готов разобраться (заново smile.gif ), если помощь потребуется!
Можно выдать какому-нибудь преподу как плод гениального ума! smile.gif
tdf для Алетеры (как это, AHDL вроде называется?)
P.S. Не помню, почему я не использовал SPI. Медленно?
Да, контроллер SDRAM - мой! Без burst, конечно, но лучше, чем тот, с которого я его делал 8)