アダルト・ヴァイオリン May the force be with you..

2009年2月17日

スペースインベーダー起動

Filed under: Weblog — い~ぐる @ 1:26 PM


回路的には間違っていないし、シミュレーションでは動作しているのに、実機で動作していなかった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;

蓋を開けてみれば、こんなことだ(笑)

これにデジタル処理の音声回路を付けたら完成だ♪
ただ、このボードには標準では音声の出力コネクタがないので、どこのピンに出すべきか…

データ端子の競合検出

Filed under: Weblog — い~ぐる @ 9:25 AM

SFL2VLでは、データ端子に同時に複数の代入が生じた場合に、競合の検出を行なうようなVerilogコードを出していたが、疑似検出が多くあまり便利ではなかったので、コードを整理して、修正した。

20090217のベータ版のみでの対応だが、かなり効率的に競合の検出ができている(ような気がする)。

次のステップは、どの端子同士が競合を起しているかを出力するべきかどうかだが、競合発生時に、シミュレーションストップさせないと、出力が膨大になるので、対応を検討中。それと、合成された中間信号名で出力しても、分りにくいだろうしね~

Powered by WordPress