[Verilog] 从系统时钟转换出想要的时钟

如何50MHZ时钟转换出一个250KHZ的时钟出来?

  假如系统时钟是50MHZ,然后想得到250KHZ的新时钟,那么50MHZ / 250KHZ = 200倍,然后令k=200,程序如下:

parameter DIV_FREQ = 200;
reg[7:0] cnt;
if( cnt == DIV_FREQ/2-1'b1) begin
    div_clk = ~div_clk;
end
else begin
    cnt <= cnt + 1'b1;
end

    通过代码可以看到,cnt数到99时,就会进入if。也就是说,一个高电平持续100个系统时钟,1个低电平也会持续100个时钟,所以新时钟的一个周期刚好持续200个系统时钟,

 所以新时钟的时钟周期是系统时钟的200倍,频率就是它的200分之1,即250KHZ。

猜你喜欢

转载自www.cnblogs.com/zf007/p/11836735.html