网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

任意偶数的分频器设计

时间:2023-06-05 16:54

人气:

作者:admin

标签:   偶数  设计  频器  任意   

导读:所谓“分频”,就是把输入信号的频率变成成倍数地低于输入频率的输出信号。...

所谓“分频”,就是把输入信号的频率变成成倍数地低于输入频率的输出信号。数字电路中的分频器主要是分为两种:整数分频和小数分频。其中整数分频又分为偶分频和奇分频,首先从偶分频开始吧,入门先从简单的开始!

一、2^n的偶分频器设计

先来看最简单的最常见的一个例子——2分频。

假设输入时钟clk是100MHz(T=10ns),要求得到一个50MHz的输出时钟clk_out,二分频波形应该如下图所示:

图片

该波形的实际电路只需要一个D触发器便可以完成,将Q非的输出接到D端输入,便可以实现二分频电路,如下图所示。

图片

由此可以得出,所有2^n次方的偶分频(即二分频、四分频、八分频等等)都可以用触发器级联的方式得到,例如两个触发器级联就是四分频,三个触发器级联就是八分频,如此类推。

这种级联触发器的方式优缺点分析:

优点

1、能得到占空比为50%的波形;

2、所使用的的资源也比较少。

缺点唯一比较大的缺点就是触发器之间有一定的延时。 因为驱动clk_out的触发器是由clk作为时钟的,那么这个触发器的Q端变化相比于clk有一个必不可少的clk-to-q延时,例如下图的q3与q1之间的差距就是clk-to-q延时造成的。

图片

这个clk-to-q延时根据不同的工艺,数值会不同。这个clk-to-q的延时在做时钟树综合的时候是要考虑进去的。特别是如果你还期望clk和clk_out是同步的时钟,时钟边沿要对齐的话,在做clock tree的时候要给clk的tree加一些buffer来弥补这个clk-to-q。 而如果你是用了好几个分频器级联产生更低频率,那么每一级的分频器都会贡献一个clk-to-q延时,那么你需要平衡时钟的时候就需要插入更多的buffer,这部分buffer又占面积,又耗功耗,甚至可能导致时钟无法平衡。 所以这是需要大家在设计的时候考虑进去的。

二、任意偶数的分频器设计

除了上面那种做法之外,对于任意偶数分频的设计还有一种传统的做法就是通过计数器的形式完成设计。例如要设计一个四分频,波形如图所示。cnt计数了DIV_NUM/2-1次之后取反,便可以得到任意偶数分频的波形, 任意偶数分频通用代码如下所示

图片

`timescale 1ns/1ps
module CLK_DIV #(parameter DIV_NUM=4)(
    input clk,
    input rst_n,
    output reg clk_out
    );
   
  reg[3:0] cnt;


  always@(posedge clk or negedge rst_n)begin
    if(!rst_n)
      cnt <= 4'b0;
    else begin
      if(cnt == (DIV_NUM/2)-1)
        cnt <= 4'b0;
      else
        cnt <= cnt + 1'b1;
    end
  end


  always@(posedge clk or negedge rst_n)begin
    if(!rst_n)
      clk_out <= 1'b0;
    else begin
      if(cnt == (DIV_NUM/2)-1)
        clk_out <= ~clk_out;
    end
  end
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信