Listing 2. counter2.v Example

module test;

   /* Make a reset that pulses once. */
   reg reset = 0;
   initial begin
      # 17 reset = 1;
      # 11 reset = 0;
      # 29 reset = 1;
      # 11 reset = 0;
      # 100 $stop;
   end

   /* Make a regular pulsing clock. */
   reg clk;
   always #5 clk = !clk;

   wire [7:0] value;
   counter c1 (value, clk, reset);


   initial $monitor("At time %t, value = %h (%0d)",
                    $time, value, value);
endmodule // test

Running counter2.v

    % iverilog -o a.vvp -ylib counter2.v
    % vvp a.vvp
    [...]