如何在fpga上实现将25M晶振频率分频为1HZ的信号?

如题所述

reg [25:0] cnt; //cnt为计数寄存器always @(posedge clk or negedge rst_n) //这里的clk为50M时钟输入if(!rst_n) cnt<=26'd0即可。

一、计数分频和dcm分频都可以实现,dcm是专门的数字时钟管理,它所实现的分频时钟更准确,与时钟源和其他的分频分钟有着严格的相位关系,时钟抖动等特性要好;计数分频则必然与原时钟有一定的相位偏移,尽量不要用计数分频的信号去做时钟触发,一般都会报warning。

二、计数count小于10000000时为低,大于10000000小于20000000时为高,计数等于20000000时清零重新开始,循环,这就把25M分成1Hz了。

三、module div(clk,o_clk);input clk;output o_clk;reg[31:0] count;always@(posedge clk)  begin if(count==20000000) count<=0;else count<=count+1; endassign o_clk=(count<10000000)?0:1;endmodule。

温馨提示:答案为网友推荐,仅供参考