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步进是不可能的,只能考虑模拟电路出波形。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)