﻿/*
  4ビットカウンタのシミュレーション記述

  同期式、または非同期式のどちらかのモジュールを呼び出して使う。
*/

`timescale 1ps/1ps

module counter_tp;
reg             ck, res;
wire    [3:0]   q;

parameter STEP = 100000;

always #(STEP/2) ck = ~ck;

// ４ビット カウンタ(非同期リセット)
//counter counter( ck, res, q );

// ４ビット カウンタ(同期リセット)
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
