verilog 任意比例分频电路的实现_任意分频Verilog实现

1.

偶数倍(

2N

)分频

使用一模

N

计数器模块即可实现,即每当模

N

计数器上升沿从

0

开始计数至

N-1

时,输出时钟进行翻转,

同时给计数器一复位信号使之从

0

开始重新计数,以此循环即可。偶数倍分频原理示意图见图

1

2.

奇数倍(

2N+1

)分频

(

1

)占空比为

X/(2N+1)

或(

2N

1-X

)

/

(

2N+1

)分频,用模(

2N

1

)计数器模块可以实现。取

0

2N-1

之间一数值

X(0

当计数器时钟上升沿从

0

开始计数到

X

值时输出时钟翻转一次,

在计数器继续计数达到

2N

时,输出时钟再次翻转并对计数器置一复位信号,使之从

0

开始重新计数,即可实现。

(

2

)占空比为

50

%的分频,设计思想如下:基于(

1

)中占空比为非

50

%的输出时钟在输入时钟的上升沿

触发翻转;若在同一个输入时钟周期内,此计数器的两次输出时钟翻转分别在与(

1

)中对应的下降沿触发

翻转,输出的时钟与(

1

)中输出的时钟进行逻辑或,即可得到占空比为

50

%的奇数倍分频时钟。当然其

输出端再与偶数倍分频器串接则可以实现偶数倍分频。奇数倍分频原理示意图见图

2

(这也是许多公司常

出的面试题,

^_^

,是不是很简单?)

3. N-0.5

倍分频

采用模

N

计数器可以实现。

具体如下:

计数器从

0

开始上升沿计数,

计数达到

N-1

上升沿时,

输出时钟需翻

转,由于分频值为

N-0.5

,所以在时钟翻转后经历

0.5

个周期时,计数器输出时钟必须进行再次翻转,即当

CLK

为下降沿时计数器的输入端应为上升沿脉冲,使计数器计数达到

N

而复位为

0

重新开始计数同时输出

时钟翻转。这个过程所要做的就是对

CLK

进行适当的变换,使之送给计数器的触发时钟每经历

N-0.5

个周

期就翻转一次。

N-0.5

倍:取

N=3

,分频原理示意图见图

3

对于任意的

N

A/B

倍分频(

N

A

B

Z

A

B

)

分别设计一个分频值为

N

和分频值

N

1

的整数分频器,采用脉冲计数来控制单位时间内两个分频器出现

的次数,从而获得所需要的小数分频值。可以采取如下方法来计算个子出现的频率:

N

出现的频率为

a

,则

N

×

a

+(

N+1

)

×

(

B-a

)=

N

×

B

A

求解

a

B-A;

所以

N

1

出现的频率为

A.

如实现

7

2/5

分频,取

a

3

,即

7

×

3

8

×

2

就可以实现。但是由于这种小数分频输出的时钟脉冲抖动很大,

现实中很少使用。

通常实现偶数的分频比较容易,以十分频为例

:

always @( posedge clk or posedge reset)

if(reset)

begin

k<=0;

clk_10<=0;

end

else

if(k==4)

begin

k<=0;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值