《任意倍数奇数分频-Verilog》由会员分享,可在线阅读,更多相关《任意倍数奇数分频-Verilog(2页珍藏版)》请在金锄头文库上搜索。
1、自己写的代码,只是经过功能仿真之后的。如果有更好的方法的话,请指教了。/奇数分频module div_clk(input clk_in,input rst_n,output clk_div);reg 3:0count1;reg 3:0count2;reg clk_div_1;reg clk_div_2;always (posedge clk_in , negedge rst_n) beginif(!rst_n) begin count1=4b0;clk_div_1=1;end else if(count1=4b0010)begincount1=4b0;clk_div_1=0;end else
2、begin count1=count1+4b1;clk_div_1=1;endendalways (negedge clk_in , negedge rst_n)beginif(!rst_n) begincount2=4b0;clk_div_2=1;end else if(count2=4b0010) begincount2=4b0;clk_div_2=0;end elsebegincount2=count2+4b1;clk_div_2=1;end endassign clk_div=clk_div_1 & clk_div_2;endmodule对于N倍的奇数分频,首先是在系统时钟的上升沿得到占空比为的分频时钟clk_div_1,然后在系统时钟的下降沿得到占空比为的clk_div_2,最后将两个分频之后的时钟相与便会得到想要的奇数分频。如上图所示为进行三分频时的功能仿真波形图。光标之间便为分频之后的解释。想要得到任意倍数奇数分频的话只需改变上述的两个计数寄存器的阈值即可。