module tb_counter;
reg clk;
reg reset;
reg enable;
wire [3:0] count;
wire overflow;
counter DUT (
.clk(clk),
.reset(reset),
.enable(enable),
.count(count),
.overflow(overflow)
);
always #5 clk = ~clk;
initial begin
clk = 0;
reset = 1;
enable = 0;
#20 reset = 0;
#10 enable = 1;
#200 $finish;
end
endmodule
module counter (
input wire clk,
input wire reset,
input wire enable,
output reg [3:0] count,
output wire overflow
);
assign overflow = (count == 4'hF);
always @(posedge clk) begin
if (reset)
count <= 4'b0;
else if (enable)
count <= count + 1;
end
endmodule
Module Port Diagram
clk โ
reset โ
enable โ
โ
โ
โ count[3:0]
โ overflow