SinonJZH
发布于 2021-05-26 / 3 阅读
0
1

Verilog学习笔记——分频器

分频器应该是verilog里最常用的一个模块了,原理也很简单,就是设置一个计数器,设置在计到指定的分频数的一半后反转输出波的电平,以实现指定数目的分频,以下是一个100,000分频的例子:(这个模块本来是用于将一个100mHz的晶振信号转化为周期为1ms的信号)

module ms_clk(
    input clk_100mhz,            //输入时钟信号100mHz
    output reg clk_ms
    );
    localparam DIV_COUNT=50000;  //100,000分频
    reg [16:0]div_ms_counter=0; //分屏用计数器
    initial begin
        clk_ms=0;
    end
    always @(posedge clk_100mhz)begin
        div_ms_counter=div_ms_counter+1;      //每周期计数器+1
        if(div_ms_counter==DIV_COUNT)begin    //计满50,000重置计数器并翻转输出信号
            div_ms_counter=0;
            clk_ms=!clk_ms;
        end
    end
endmodule

评论