回路的には間違っていないし、シミュレーションでは動作しているのに、実機で動作していなかったMidway-8080であるが、問題は、メモリの初期化のためのBMMファイルにあった。BMMファイルには、ビットレーンを記述するので、下記のように記述したが、実は、XilinxのISEはビットレーン情報はビット数を計算するためだけに使っていて、値は見ていない。data2memで確認すると、全くの逆順にデータが格納されていた(!)。
そこで、BMMファイルに記述するビットレーンを逆順にしたら動きだした。
(画面にゴミが見えるのは、VRAMを256×240に設定しているからであり、インベーダーの解像度、256×224に合わせればゴミは消える)
ADDRESS_SPACE rom8k RAMB16 [0x0000:0x1fff] BUS_BLOCK board/rom/Mram_ram1 [1:0]; board/rom/Mram_ram2 [3:2]; board/rom/Mram_ram3 [5:4]; board/rom/Mram_ram4 [7:6]; END_BUS_BLOCK; END_ADDRESS_SPACE;
蓋を開けてみれば、こんなことだ(笑)
これにデジタル処理の音声回路を付けたら完成だ♪
ただ、このボードには標準では音声の出力コネクタがないので、どこのピンに出すべきか…