Я вроде немного продвинулся дальше с проблемой с прерываниями.
Очень нужна помощь знатаков i8080. Попробую описать что к чему...
И так. Имеются: рабочий эмулятор корвета, основанный на исходниках эмулятора Сергея, и пока не рабочий дизайн корвета на FPGA.
В обоих случаях используется ОПТС2.0. При помощи простейшей трассировки программы выяснилось следующее:
Пока не приходит прерывание, результат сравнения один в один.
Но как только приходит прерывание происходит вот что...
Думаю так понятно будет.Код:Emulator FPGA ---------- ---------- RD 181B,13 RD 181B,13 RD 181C,2B RD 181C,2B RD 181D,BC RD 181D,BC RD 181E,C2 RD 181E,C2 RD 181F,1A RD 181F,1A RD 1820,18 RD 1820,18 RD 181A,12 RD 181A,12 WR 6703,00 WR 6703,00 RD 181B,13 RD 181B,13 RD 181C,2B RD 181C,2B interrupt WR F499,18 WR F499,18 WR F498,1C WR F498,1F RD F7F0,C3 RD F7F0,C3 RD F7F1,76 RD F7F1,76 RD F7F2,00 RD F7F2,00 RD 0076,C3 RD 0076,C3 RD 0077,94 RD 0077,94 RD 0078,0F RD 0078,0F ... ... interrupt routine ... ... RD 0FAD,FB RD 0FAD,FB RD 0FAE,C9 RD 0FAE,C9 RD F498,1C RD F498,1F RD F499,18 RD F499,18 RD 181C,2B RD 181F,1A RD 181D,BC RD 6704,XX RD 181E,C2 RD 1820,18 RD 181F,1A RD 1821,BD ... ... ...
Для объективности результата я вызываю прерывание в FPGA абсолютно в то же время что и в эмуляторе. Но! Эмулятор заносит в стёк адрес 0x181C, а FPGA 0x1F. Ну и как результат, при выходе из подрограммы обработки прерывания в FPGA всё валится.
Может у кого нибудь есть идеи на этот счёт?
---------- Post added at 21:30 ---------- Previous post was at 21:17 ----------
Да, совсем забыл написать, что использую корку T80 из проекта Вектора 06Ц на FPGA от Svofski.
---------- Post added at 22:24 ---------- Previous post was at 21:30 ----------
Интересно... только что поменял T80 на k580wm80a.v из проекта "Башкирии" на DE1 от b2m.... и теперь прерывания отрабатываются правильно.
Скорей всего с этой коркой заведётся... Если всё получится, перепишу её на VHDL потом, если b2m будет не против!
---------- Post added at 23:28 ---------- Previous post was at 22:24 ----------
Ну наконец-то! В симуляторе всё заработало!




Ответить с цитированием