統合シミュレーションの方法
FPGAに実装するシステム全体のシミュレーションを行ってみましょう。
テストベンチとして kite_test.v を作成し、kite_top モジュールを呼び出しま
す。KITEプロセッサは、リセット後にメモリに書き込まれたプログラムを実行開
始します。ですから、テストベンチからは CLK と RST のみを連続して与えます。
--- kite_test.v ---
`timescale 1ns/1ns
module kite_test;
reg CLK, RST;
wire R, G, B, HS, VS;
initial
begin
$shm_open("waves.shm");
$shm_probe("as");
end
integer i;
initial
begin
CLK = 0;
for( i=0 ; i<500000 ; i=i+1 )
CLK = #10 ~CLK;
end
initial
begin
RST = 0;
RST = #5 1;
RST = #10 0;
end
kite_top kite_top (CLK, RST, R, G, B, HS, VS);
endmodule
Verilog-XLシミュレータを用いる場合は、
initial
begin
$shm_open("waves.shm");
$shm_probe("as");
end
を書いておくことで、下位階層すべての信号変化をシミュレータで観測できます。
シミュレータは以下のように必要なすべてのファイルを指定して実行します。
verilog kite_top.v kite.v alu.v acc.v ar.v fr.v ir.v pc.v r12.v dec_seq.v vram.v memory.v
シミュレーションの結果は以下のように観測できました。
000番地のスタートベクタである 010 を読み出した後、010番地の C108 命令か
ら実行開始しているのが分かります。
以下の波形では、2,200,000ns の少し前から VRAM の RW 信号が出なくなってい
ます。
これは、VRAM の RW 信号が出ているところは、LIFEのプログラムで初期配置デー
タをVRAMに表示するプログラムが動いています。その後、次世代作成に入りVRAM
をアクセスしなくなったため、VRAM の RW 信号が出なくなったことを示してい
ます。
| Back |
CAD Home |