/* 4ビットカウンタのシミュレーション記述 同期式、または非同期式のどちらかのモジュールを呼び出して使う。 */ `timescale 1ps/1ps module counter_tp; reg ck, res; wire [3:0] q; parameter STEP = 100000; always #(STEP/2) ck = ~ck; // 4ビット カウンタ(非同期リセット) //counter counter( ck, res, q ); // 4ビット カウンタ(同期リセット) counter_sync counter_sync( ck, res, q ); initial begin ck = 0; res = 0; #STEP res = 1; #STEP res = 0; #(STEP*18); #STEP $finish; end initial $monitor( $stime, " ck=%b res=%b q=%b", ck, res, q ); endmodule