Files
hdl-projects/counter/counter_tb.v
Jose Luis Montañes Ojados 53925538d6 add counter
2026-03-01 01:42:33 +01:00

44 lines
1.0 KiB
Verilog

`include "./counter/counter.v"
module counter_tb;
reg clk, rst, write_enable;
reg [15:0] write_value;
wire [15:0] count;
counter #(.N(16)) cnt(
.clk(clk),
.rst(rst),
.write(write_enable),
.write_value(write_value),
.count(count)
);
initial clk = 0;
always #5 clk = ~clk;
initial begin
$dumpfile("./counter/counter.vcd");
$dumpvars(0, counter_tb);
rst = 1; write_enable = 0; write_value = 0;
@(posedge clk); #1
rst = 0;
// Contar 20 ciclos
repeat(20) @(posedge clk);
#1 $display("despues de 20 ciclos: count=%0d", count);
// Load a 200
write_enable = 1; write_value = 200;
@(posedge clk); #1
write_enable = 0;
$display("tras load 200: count=%0d", count);
// Contar hasta overflow (56 ciclos llega a 255 y desborda a 0)
repeat(60) @(posedge clk);
#1 $display("tras 60 ciclos mas: count=%0d", count);
$finish;
end
endmodule