Дисклеймер: пока не заработало.
Ну вот, джентельмены. Осознал, что я тупее компилятора. А еще - даже если симуляция работает и показывает правильно, в железяке не факт, что тоже самое будет. Мистика. Но это не главное. Итак.
Переделал машину состояний и убрал все latches, что, в свою очередь убрало все гонки сигналов.
Разделил стейт машину на 2е. Так легче дизайнить, что и позволило создать приличный FSM.
Общий вид:
По частям. Первая - инит, вторая общий цикл:
Итак.
Вот симуляция инициализации
А вот осцил (красный - RAS, желтый - cpu clk). Я теперь крутой. наконец настроил утилиты и могу видеть все на компе.
Один в один.
Класс.
M1 - Fetch
Read
Write
Вот что вижу на осцилографе (RAS red, CAS yel)
По таймингу вроде все нормально, как и задумано - 40 ns между ними. Но не пойму, что с фронтами и PK-PK/ Там 10 вольт что ль!!?? Входная емкость у этой DRAM просто неимоверная похоже.
Но....
Теперь обращение к DRAM вроде номуль . Raddr-> RAS->Caddr->CAS. А все равно не взлетает.
Даже и не знаю теперь чего не нравится. Входная емкость (что вообще для меня убрать это рокет сайнс). Снизить частоту котроллера с 50 до 25 МГц?
З.Ы. : Так и не понял. Вроде загружаю нормальные картинки, а при просмотре форума какая-то муть с низким разрешением видится.