
Сообщение от
b2m
Ты бы лучше попытался разобраться, как заставить работать SRAM.
Лучше, но сложнее.
---------- Post added at 10:00 ---------- Previous post was at 09:28 ----------
Экспресс-тест по допустимой частоте cpu_ce в текущем состоянии. Только я немного переделал
Код:
reg cpu_ce2;
wire cpu_ce = cpu_ce2;
always @(posedge clk50mhz) begin
//internal ram (cpu and video) works fine with cpu_cnt!=3
//sdram (cpu) works fine with cpu_cnt!=9
if(cpu_cnt!=9) begin cpu_cnt <= cpu_cnt + 11'd1; cpu_ce2<=0; end
else begin cpu_cnt<=0; cpu_ce2<=1; end
startup <= reset|(startup&~addrbus[15]);
end
"Тестировал" в мониторе, заполняя соответственно 4000,40FF и 0,FF значениями 00,55,AA,FF и потом смотрел дамп.
---------- Post added at 11:43 ---------- Previous post was at 10:00 ----------
Вроде и SRAM нормально заработал, по крайней мере монитором, ксониксом и супер питоном проверку проходит. Взял все тот же контроллер SDRAM (очень вдохновляющий пример, b2m - еще раз спасибо) и сократил до двух состояний (читал про такое на форуме минимига, но не мог нормально сделать)
1. первый такт выставляем адрес и управляющие сигналы
2. второй такт - еще и читаем или пишем.
Только это вариант с раздельным доступом, переделанный из SDRAM, т.е. SRAM по адресам 0-3FFF и обращается к ней только проц.
Надо бы еще наверно что-то вроде теста ОЗУ наваять, но очень похоже, что все работает.