如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
分频器的verilogHDL描述(转)分频器,在许多涉及时序的电路设计中都会用到,在这里,我转载某位高人的文章,关于分频器的设计偶数倍分频:偶数倍分频应该是大家都比较熟悉的分频,通过计数器计数是完全可以实现的。如进行N倍偶数分频,那么可以通过由待分频的时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数。以此循环下去。这种方法可以实现任意的偶数分频。moduleodd_division(clk,rst,count,clk_odd);inputclk,rst;outputclk_odd;output[3:0]count;regclk_odd;reg[3:0]count;parameterN=6;always@(posedgeclk)if(!rst)begincount<=1'b0;clk_odd<=1'b0;endelseif(count<N/2-1)begincount<=count+1'b1;endelsebegincount<=1'b0;clk_odd<=~clk_odd;endendmodule奇数倍分频:归类为一般的方法为:对于实现占空比为50%的N倍奇数分频,首先进行上升沿触发进行模N计数,计数从零开始,到(N-1)/2进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%奇数n分频时钟。再者同时进行下降沿触发的模N计数,到和上升沿过(N-1)/2时,输出时钟再次翻转生成占空比非50%的奇数n分频时钟。两个占空比非50%的n分频时钟相或运算,得到占空比为50%的奇数n分频时钟。moduleeven_division(clk,rst,count1,count2,clk_even);inputclk,rst;output[3:0]count1,count2;outputclk_even;reg[3:0]count1,count2;regclkA,clkB;wireclk_even;parameterN=5;assignclk_re=~clk;assignclk_even=clkA|clkB;always@(posedgeclk)if(!rst)begincount1<=1'b0;clkA<=1'b0;endelseif(count1<(N-1))begincount1<=count1+1'b1;if(count1==(N-1)/2)beginclkA<=~clkA;endendelsebeginclkA<=~clkA;count1<=1'b0;endalways@(posedgeclk_re)if(!rst)begincount2<=1'b0;clkB<=1'b0;endelseif(count2<(N-1))begincount2<=count2+1'b1;if(count2==(N-1)/2)beginclkB<=~clkB;endendelsebeginclkB<=~clkB;count2<=1'b0;endendmodule