Я в отчаянии... По работе надо написать код, который имитирует чтение ПЗУ для 8061 (шина MBUS), работаю с платой Nano20K (GW2AR-LV18QN88) в качестве макетки, но код, который вроде как однозначен, время от времени работает со сбоем, причём ошибка возникает там, где по моим понятиям возникнуть просто не может...
Вот код
if (pcm_memrqexec) pcm_memrq <= MC_IDLE; // сброс запроса
...................................................................................
10'h001: begin
// RPM, STB: mbi_rpms=1, чтение ROM
mbi_oe <= 1; // выход MBUS активен
pcm_state <= PB_RPME; // завершение чтения байта @SPC
if (pcm_state != PB_RPME) begin
pcm_spc <= pcm_spc + 1'b1; // инкремент указателя
pcm_spcbnk <= { mbus_bs0, mbus_bs3 };
pcm_memrq <= MC_PBSPCRD; // запуск чтения ROM
end
При возникновении состояния PB_RPME выполняется инкремент pcm_spc и формируется запрос pcm_memrq. Но реально, периодически инкремент выполняется, а запрос pcm_memrq не срабатывает. А бывает, что и инкремент не срабатывает, а потом всё работает... Как это победить, помогите, плз...