如何在fpga上实现将25M晶振频率分频为1HZ的信号,求Verilog HDL完整程序

如何在fpga上实现将25M晶振频率分频为1HZ的信号,求Verilog HDL完整程序,第1张

module div(clk25M,clkout) //分频,产生1HZ频率

input clk25M //输入24MHz,输出1Hz

output reg clkout

integer A=0//计数器

always@(posedge clk10M)

if(A<=12500000)A<=A+1 //计隐颤模数器每记到12.5M,洞友clk翻转一次

else begin clkout<灶缓=~clkoutA<=0end

endmodule

仿真的时候碰滑肢可以通过写testbench直接获得想让伍要的时钟频率

实际 *** 作到开发板的话需要在程序中加入分频的代码

以笑世vhdl语言为例吧:

clk_division : process (clk, clk_divider)

begin

if clk'event and clk = '1' then

clk_divider <= clk_divider + 1

end if

slow_clk <= clk_divider(1)

end process

这一段就是很好的把频率分为一半的程序

这么高的频率不可能写出频率可变的方波,因为使用verilog只能对一个方波进行分频,而不能倍频。v5的片子跑到1g已经够高了,再高应该就不可能了,pll生成1g的方波应该可以,指好肆但是1g的方波进行分频只能是2分频,4分频,6分频。。。。(如果不要求50%的占空比可以3分频,5分袜兆频。。。),唯轿也就是最多能出个500m.,333m,250m三个频率,要实现250m到500m以1m步进是不可能的,只能考虑模拟电路出波形。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8213562.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存