以下是一种实现方法:

module clk_divider (
    input clk_in,
    output reg clk_out
);

reg [11:0] cnt;

always @(posedge clk_in) begin
    if (cnt == 11'd2047) begin
        cnt <= 0;
        clk_out <= ~clk_out;
    end else begin
        cnt <= cnt + 1;
    end
end

endmodule

这个模块输入一个时钟信号clk_in,并输出一个分频后的时钟信号clk_out,其频率为clk_in/4096。实现方法是计数器cnt每累加到2047时,将clk_out取反,并将计数器清零。这样,clk_out的周期就是4096*clk_in

verilog实现100M时钟分频4096

原文地址: https://www.cveoy.top/t/topic/ffQN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录