본문 바로가기
Language/Verilog & SV

[Verilog] Counter

by VIR&US 2023. 7. 21.
반응형

목차

    Counter

    카운터를 활용하여, 기존 Clock의 주기를 Count 하여 동작의 기준을 새로 바꿔줄 수도 있고, SR(상태레지스터)를 일정 시간 후에 계속 확인을 한다던지, 시계, 타이머등을 설계할 수 있습니다. 가장 기본적인 Counter Code에 대해 다뤄보겠습니다.

     

    해당 Code는 rst이 negedge일 때 counter를 0으로 초기화하고 Clock의 posedge때마다 1씩 상승합니다. 그리고 counter가 4'b1000에 도달하면 0으로 초기화합니다.

     

    Code

    module counter(
        input clk, rstn,
        output [3:0] cnt
    );
    
    reg [3:0] count;
    
    assign cnt = count;
    
    always @ (posedge clk or negedge rstn) begin
        if (rstn) begin
            count <= 4'b0;
        end
        else begin
            if (count == 4'b1000) begin
                count <= 4'b0;
            end
            else begin
                count <= count + 4'b1;
            end
        end
    end
    
    endmodule
    

     

     

    728x90
    반응형