sample.verilog.txt 874 B

1234567891011121314151617181920212223242526272829303132333435
  1. `include "first_counter.v"
  2. module first_counter_tb();
  3. // Declare inputs as regs and outputs as wires
  4. reg clock, reset, enable;
  5. wire [3:0] counter_out;
  6. // Initialize all variables
  7. initial begin
  8. $display ("time\t clk reset enable counter");
  9. $monitor ("%g\t %b %b %b %b",
  10. $time, clock, reset, enable, counter_out);
  11. clock = 1; // initial value of clock
  12. reset = 0; // initial value of reset
  13. enable = 0; // initial value of enable
  14. #5 reset = 1; // Assert the reset
  15. #10 reset = 0; // De-assert the reset
  16. #10 enable = 1; // Assert enable
  17. #100 enable = 0; // De-assert enable
  18. #5 $finish; // Terminate simulation
  19. end
  20. // Clock generator
  21. always begin
  22. #5 clock = ~clock; // Toggle clock every 5 ticks
  23. end
  24. // Connect DUT to test bench
  25. first_counter U_counter (
  26. clock,
  27. reset,
  28. enable,
  29. counter_out
  30. );
  31. endmodule