时钟分频器

Posted lizhiqing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了时钟分频器相关的知识,希望对你有一定的参考价值。

作用:

分频器主要用于提供不同相位和频率的时钟

前提:

分频后的时钟频率都小于原始时钟的频率,若没有更高频的主时钟无法得到同步分频时钟;

 

一、偶数分频器:

分频原理:

  以获得ƒ/2n的时钟信号为例:一个周期内,占空比50%的原始时钟信号ƒ在高电平与低电平的时间相同、相位相差180°(相反),因此相邻的两个上升沿(或者下降沿)的频率必然是原始时钟的1/2倍。之后通过Counter数n个ƒ/2信号就可以获得ƒ/2n的时钟信号了。

module divider #(parameter NUM_DIV = 8)(
    output                  div_clk,
    input                   clk, rst
);
                reg [3:0]   cnt;

    always @(posedge clk)
      begin
        if(!rst)
                cnt <=0;
        else if(cnt==(NUM_DIV/2)-1)
                cnt <= 0;
        else
                cnt <= cnt+1;
    end

    assign div_clk = (cnt<=NUM_DIV/2-1)?1:0;

endmodule 

 

 

占空比为50%奇数分频器

分频原理:

  这种分频器有多种方法实现,其基本原理也是基于多个偶数分频器的组合逻辑实现。

  原理1:使用两个周期为2N、相位差为90°的时钟信号来获得周期为N的奇数分频器(N为odd);

  原理2:使用一个(N-1)/2和(N+1)/2

 

原理1:

 

 

技术图片

 

 

 

 

非整数分频(非50%占分比)

非50%占分比,1.5倍频

1.5倍频为每三个参考时钟包含两个对称的脉冲

技术图片

 

应为在多路选择端切换开关时两个输入端的延时不相等,多路器的输出不能马上改变,并可能在输出始终上产生毛刺,并且随着参考时钟(ref_clk)频率的增加,出现错误的可能性会越来越大。在仿真时可以正确工作,但是在综合可能出现问题。

 

非50%占分比,4.5倍频

根据分频的

 

 

 

 

基于查找表的分频方法

以上是关于时钟分频器的主要内容,如果未能解决你的问题,请参考以下文章

时钟分频器

verilog分频模块设计

FPGA中为啥要用分频器进行分频

VHDL 中的通用时钟分频器

求一个用verilog实现二分之一分频(是提高频率,不是降低频率)的代码

当比率是某个随机分数时设计时钟分频器