
Сообщение от
ra3qdp
на сколько это отличается от чисто программных эмуляторов симш, эрзац, шарон ?
Вот вам кусок кода из PDP-2011
Код:
case cpuCurrState is
when stateInstrFetch =>
instrWAIT <= No;
-- здесь, в пропущенном куске кода instrWAIT не трогается
....
if instrWAIT then -- if in wait mode
instrWAIT <= Yes;
else
-- set instruction fetch flag to signal instruction fetch to the outside world
isInstrFetching <= Yes;
-- go process an instruction
cpuCurrState <= stateOpsDecode;
end if;
No - это константа со значением false, Yes - true
Попробуйте сделать такое на чисто программном эмуляторе.
Я, когда первый раз этот код увидел, вообще не въехал - что делается с instrWAIT и как оно работает. А потом посмотрел, что синтезировалось - и всё стало на свои места.