设计一个从 1 到 10 的计数器


Function:设计一个从 1 到 10 的计数器,从1开始计到10

 1.design code

module top_module (
    input clk,
    input reset,      // Synchronous active-high reset
    output reg [3:0] q);
    
    always @(posedge clk) begin
        if (reset || q == 4'd10) begin
            q <= 4'd1;
        end
        else begin
             q <= q + 1'b1;
         end
    end
endmodule

2.testbench code

module top_module_testbench();
reg clk;
reg reset;
wire [3:0] q;

top_module instance1(
    .clk(clk),
    .reset(reset),
    .q(q)
    );

initial begin
    #0 clk = 0;
       reset = 0;
    #4 reset = 1;
    #12 reset = 0;
    #400 $stop;
end

always #5 clk = ~clk;
endmodule