fpga奇数和偶数分频器和半整数及任意小数分频器设计(verilog程序)

fpga奇数和偶数分频器和半整数及任意小数分频器设计(verilog程序)

ID:6722899

大小:54.50 KB

页数:4页

时间:2018-01-23

fpga奇数和偶数分频器和半整数及任意小数分频器设计(verilog程序)_第1页
fpga奇数和偶数分频器和半整数及任意小数分频器设计(verilog程序)_第2页
fpga奇数和偶数分频器和半整数及任意小数分频器设计(verilog程序)_第3页
fpga奇数和偶数分频器和半整数及任意小数分频器设计(verilog程序)_第4页
资源描述:

《fpga奇数和偶数分频器和半整数及任意小数分频器设计(verilog程序)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、EngineerLhraceAuthor:---EngineerLhrace1、半整数分频占空比不为50%//说明:设计的史上最好用的半整数分频占空比不为50%,包含设计思路modulediv_5(clk,clk_div,cnt1,cnt2,temp1,temp2);//N+0.5inputclk;outputclk_div;outputreg[31:0]cnt1,cnt2;outputregtemp1,temp2;initialbegintemp1=0;temp2=1;end//首先进行初始化,temp1=0;temp2=1paramet

2、erN=5;//设定分频系数为N+0.5always@(posedgeclk)//temp1上升沿跳变beginif(cnt1==2*N)//2*Nbegincnt1[31:0]<=32'd0;endelsebegincnt1[31:0]<=cnt1[31:0]+32'd1;endif(cnt1==32'd0)begintemp1<=1;end//高电平时间为N+1;if(cnt1==N+1)begintemp1<=0;end//低电平时间为N;endalways@(negedgeclk)//temp2下降沿跳变beginif(cnt2==

3、2*N)//2*Nbegincnt2[31:0]<=32'd0;endelsebegincnt2[31:0]<=cnt2[31:0]+32'd1;endif(cnt2==32'd0)begintemp2<=0;end//低电平时间为N;if(cnt2==N)begintemp2<=1;end//高电平时间为N+1;endassignclk_div=temp1&&temp2;//逻辑与endmodule//如果要进行N+0.5分频//思路:总的来说要进行N+1+N=2N+1次分频//在时钟的上升沿和下降沿都进行跳变//上升沿进行占空比为N+1

4、比N的时钟temp1;//下降沿进行占空比为N比N+1的时钟temp2;//最后div=temp1&&temp2即可得到所需要的半整数分频分频5.5仿真结果EngineerLhrace2、奇数分频占空比为50%//说明:奇数分频。modulediv_5(clk,clk_div,cnt1,cnt2,temp1,temp2);//inputclk;outputclk_div;outputreg[31:0]cnt1,cnt2;outputregtemp1,temp2;parameterN=5;//设定分频系数always@(posedgeclk)

5、beginif(cnt1==N-1)//N-1进行N计数begincnt1[31:0]<=32'd0;endelsebegincnt1[31:0]<=cnt1[31:0]+32'd1;endif(cnt1==32'd0)begintemp1<=1;end//if(cnt1==(N-1)/2)begintemp1<=0;end//当计数到(N-1)/2时翻转endalways@(negedgeclk)beginif(cnt2==N-1)//N-1begincnt2[31:0]<=32'd0;endelsebegincnt2[31:0]<=cn

6、t2[31:0]+32'd1;endif(cnt2==32'd0)begintemp2<=1;end//;if(cnt2==(N-1)/2)begintemp2<=0;end//当计数到(N-1)/2时翻转;endassignclk_div=temp1

7、

8、temp2;//逻辑或endmoduleEngineerLhrace2任意小数分频Modulexiao_fenpin(clk,divclk);//占空比为50%任意小数分频inputclk;regclkout;regdelete;parameterk=10;reg[k-1:0]p;para

9、meterM=13;//clk输入的频率,parameterN=11;//需要得到的频率//假如是13Mhz,要生成一个11M的频率//占空比为50%//由M时钟分频等到N频率的方法。always@(posedgeclk)beginif(p>=M)beginp[k-1:0]<=p[k-1:0]-M+N;delete<=1'b0;endif(p

10、inif(delete==1)clkout<=1;elseclkout<=clk;endregcnb;wirecnc;outputdivclk;EngineerLhraceass

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。