Я хотел бы запустить полный набор тестов 6502 от Клауса Дормана для тестирования моя реализация Kansas Lava 6502. Однако в коде используется самомодификация (см. Все варианты использования range_adr
) , который, хотя и тривиально реализовать в эмуляторе, не сулит ничего хорошего для аппаратной реализации: образ программы должен храниться в ПЗУ, поэтому обратная запись будет заблокирована любыми маршрутами записи на основе адресации ПЗУ или Детали с RAM-поддержкой.
Одна и та же проблема, конечно, применима как к его синтезу в реальной FPGA, так и к запуску в симуляторе (низкоуровневом VHDL или высокоуровневом Kansas Lava).
Есть ли способ запустить набор тестов, не выполняя длительную (с точки зрения циклов) пляску приостановки ЦП, побайтно копируя программу из некоторого неадресуемого ПЗУ в память, полностью состоящую из ОЗУ, а затем инициализируя ЦП и позволяя ему бежать? Я бы предпочел не делать этого, потому что имитация этих дополнительных циклов при запуске значительно замедлит выполнение теста.