44 lines
1.0 KiB
Coq
44 lines
1.0 KiB
Coq
|
|
`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
|