- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
任意分频Verilog实现.pdf
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;
clk_10=~clk_10;
end
else
k=k+1;
二分频最简单了, 一句话就可以了: always @ (negedge clk) clk_2=
文档评论(0)