分频电路(转)
来源:互联网 发布:卡地亚蓝气球档次 知乎 编辑:程序博客网 时间:2024/04/28 06:16
各种分频电路
偶数分频:
偶数分频电路比较简单,需要使用计数器即可实现50%占空比的分频电路。
下面是一个N分频的偶数分频电路Verilog代码:
input rst_n,
output reg o_clk
if (!rst_n)
cnt <= 0;
end
// 0~(N/2-1) -> 1; (N/2)~(N-1) -> 0
else
end
endmodule
奇数分频:
非50%占空比的N倍奇数分频也可以简单的通过一个模N计数器来实现,如3分频电路,通过模三计数,在1和2时刻输出时钟进行翻转就可以实现占空比为1/3,2/3的分频电路。它的verilog代码实现与上面基本相同,就不在多说了。
50%占空比的N倍奇数分频。先进行上升沿触发进行模N计数,计数到(N-1)/2时进行输出时钟翻转,然后计数到N-1再次进行翻转得到一个占空比非50%的奇数n分频时钟;同时进行下降沿触发的模N计数,同样到(N-1)/2时进行输出时钟翻转,计数到N-1再次进行翻转,生成占空比非50%的奇数n分频时钟。两个占空比非50%的n分频时钟相或运算,即得到占空比为50%的奇数n分频时钟。
下面是一个N分频的奇数分频电路Verilog代码:
module div(clr,clk,clkout);
input clr,clk;
output clkout;
reg clkreg1,clkreg2;
parameter n=5;
reg[n:0] counter1,counter2;
assign clkout=clkreg1||clkreg2;
always @(posedge clk)
if(clr==1)
begin
clkreg1=0;
counter1=0;
end
else
begin
if(counter1==n-1)
begin
counter1=0;
clkreg1=~clkreg1;
end
else if(counter1==(n-1)/2)
begin
counter1=counter1+1;
clkreg1=~clkreg1;
end
else
begin
counter1=counter1+1;
end
end
always @(negedge clk)
if(clr==1)
begin
clkreg2=0;
counter2=0;
end
else
begin
if(counter2==n-1)
begin
counter2=0;
clkreg2=~clkreg2;
end
else if(counter2==(n-1)/2)
begin
counter2=counter2+1;
clkreg2=~clkreg2;
end
else
begin
counter2=counter2+1;
end
end
endmodule
半整数分频:
分频系数为N-0.5的分频器电路可由一个异或门、一个模N计数器和一个二分频器组成。在实现时,模N计数器可设计成带预置的计数器,这样可以实现任意分频系数为N-0.5的分频器。下图给出了通用半整数分频器的电路组成。
下面是一个4.5分频电路的Verilog代码:
module div45(clk, rstn, clkout); input clk; always@(posedge clkout or negedge rstn) begin always@(posedge clk2 or negedge rstn) begin begin begin endmodule 小数分频的基本原理是采用脉冲吞吐计数器和锁相环技术先设计两个不同分频比的整数分频器,然后通过控制单位时间内两种分频比出现的不同次数来获得所需要的小数分频值。如设计一个分频系数为10.1的分频器时,可以将分频器设计成9次10分频,1次11分频,这样总的分频值为: F=(9×10+1×11)/(9+1)=10.1 从这种实现方法的特点可以看出,由于分频器的分频值不断改变,因此分频后得到的信号抖动较大。
input rstn;
output clkout;
reg clkout;
reg clkout1;
wire clk2;
integer cnt;
xor xor1(clk2,clk,clkout1);
if(~rstn)
clkout1<=1'b0;
end
else
clkout1<= ~clkout1;
if(~rstn)
cnt<=0;
clkout<=1'b0;
end
else if(cnt==4)
cnt<=0;
clkout<=1'b1;
end
else
cnt<=cnt+1;
clkout<=1'b0;
end 小数分频:
- 分频电路(转)
- 分频电路(转)
- 分频电路(偶分频、奇分频)
- 分频电路
- [matlab]余弦分频电路
- 分频电路-verilog
- 用Verilog实现电路分频
- D触发器二分频电路
- Verilog任意整数分频电路
- 欧姆龙PLC分频电路
- 从计数器到分频电路
- 用Verilog语言实现奇数倍分频电路3分频、5分频、7分频
- 关于3分频电路的讨论
- D触发器的二分频电路
- 关于分频和倍频(转)
- 分频
- 分频
- 分频
- 在Linux系统中映射windows的目录
- the one 无线网络模拟器下载地址
- 下拉列表无级数据绑定
- Silverlight MMORPG网页游戏开发课程[一期] 第九课:HUD与背景音乐
- 桌面右键弹出IE的木马
- 分频电路(转)
- C#单链表的实现
- 【VS2008无法启动asp.net development server】的解决
- 使用PreferenceActivity设置应用程序参数
- udev的用法
- Linux之VI
- C++初学者指南 第十篇(6)
- Wix打包系列(一)如何使用wix制作安装程序
- glViewPort() glOrtho()用法 (学习)