統合シミュレーションの方法


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 |


| Back |