时钟分频电路在数字芯片设计中非常常见,而且也非常重要,正确的符合要求的数字分频电路对功能的正确与否至关重要。现在数字电路设计中的时钟分频主要包括以下几种方法:

1、寄存器分频

寄存器分频就是利用寄存器生成一个计数器,在计数器计数到不同的值时产生时钟翻转信号,该翻转信号就是分频后的时钟。一般情况下寄存器分频能产生我们需要的几乎所有场景下的时钟。根据寄存器分频后时钟与原时钟信号的关系可以分为:偶数分频、奇数分频、.5分频和任意小数分频。

1.1、偶数分频

50%占空比的偶数分频最简单,假设有一个计数器3bits,那么由于计数器的最低bit每个时钟周期翻转一次,那么二分频电路就可以直接对低bit取反即可,四分频和八分频类似,其具体verilog代码及仿真结果如下:

1.2、奇数分频

  • 非50%占空比奇数分频

奇数分频与偶数分频相比,稍微复杂,如果我们不考虑奇数分频的占空比,那么其实和偶数分频没有什么本质区别,考虑一个3分频时钟,假设其占空比是2/3,那么我们只需要一个2bit的计数器,该计数器在0-2的范围内重复循环计数,当计数器小于2时分频输出为1否则输出为0,就可以输出占空比为2/3的3分频时钟。具体verilog实现及结果如下所示:

  • 50%占空比奇数分频

当需要分出50%占空比的奇数分频时,这个时候利用一个计数器就不能实现50%占空比的奇数分频,我们考虑到一个时钟周期内的上升沿和下降沿相差半个时钟周期,故我们可以重新定义一个下降沿触发的计数器,然后在原时钟的上升沿和下降沿分别产生1/3的奇数分频,然后这两个信号相或后就能产生50%占空比的奇数分频,其时序图如下所示。

1.3、.5分频

有时候我们可能需要产生一个.5分频,例如如果需要产生一个1.5分频,这个时候我们需要产生一个2分频电路,然后和1分频电路进行相关操作就可以产生一个1.5分频逻辑,具体时序如下图所示:

1.4、任意小数分频

所谓的任意小数分频就是分频的小数位是任意的,譬如我们需要产生一个原时钟信号的1.1分频电路,一般情况下对于这样的需求,我们肯定不能直接通过电路去实现这样的分频电路,因为一般情况下这样的的实时准确任意分频也是做不到的,通常我们所说的任意小数分频会从统计的结果去分析。

譬如对于一个1.1分频时钟,我们可以考虑先产生一个1个2分频,再产生9次1分频,那么从这个10个时钟周期来看,其时钟周期的平均值就是1.1,即:(1*2+1*9)/10。

固实际实现中我们通常用下面所示的结构去实现任意小数分频,给电路主要由一个双模分频器以及两个计数器及相关控制构成,其具体工作过程如下:

  1. 首先初始化,将两个计数器的初始配置值J和K分别载入计数器,其中吞咽计数器控制双模分频器进行N+1分频,脉冲计数器控制双模分频器进行N分频(其中K是一个统计周期内的总周期数,J是N+1分频的周期数);
  2. 两个计数器都采用减1计数,当吞咽计数器减到0后,控制脉冲计数器开始工作,同时双模分频切换到N分频;
  3. 当脉冲计数器减到0后,那么产生复位信号复位Cw信号并且同时复位计数器到初始状态;
  4. 重复上述过程;

通过上述过程分析得到总的分频数是:

J*(N+1)+(K-J)*N=J+K*N

如果想要实现一个特定分频的多模分频器,只需要合理选择 J,K,N 值的大小即可。

在实际中很少会通过数字电路去实现上述的任意小数分频,因为这样的分频是从多个时钟周期的统计结果去看的,故肯定存在分频误差,对于这样的任意小数分频在实际中我们一般通过小数分频的PLL去实现,然后在PLL的实现中去优化小数分频引入的噪声。

2、ICG分频

ICG就是所谓的时钟门控,其主要的目的是在数字芯片设计中关闭不需要工作模块的时钟,用于芯片低功耗用途,在实际中其也可以应用于分频电路。这里我们以下图所示的ICG电路讨论一下其分频实现。

假设我们需要生成一个5分频的时钟,那么通过ICG去产生分频的主要工作就是产生以上电路的使能信号enable,这里以5分频为例,实际上就是需要我们产生一个合适的enable信号即可。

我们参考下面时序图,一个4bit的计数器在clk的上升沿重复0-5的计数,当cnt的计数值小于2时将clk_en拉高,否则拉低,这个时候将en连接到上图所示的enable端就可以产生出一个原时钟信号的5分频时钟。

3、总结

寄存器分频的优点在于结构简单,实现灵活,但是对于高速应用来说可能timing会有瓶颈,且寄存器分频的输出一定要定义generate clock。

ICG分频的优点在于:对于高速设计来说EDA工具能够对其优化,且通过其定义的分频时钟不需要定义generate clock,工具能够自动识别;但是不足之处是实现上不是特别灵活,且时钟占空比不能达到50%。

数字芯片设计中的时钟分频电路,你了解多少?相关推荐

  1. 数字设计中的时钟与约束

    数字设计中的时钟与约束 </div> ps:可以转载,转载请标明出处:http://www.cnblogs.com/IClearner/ 最近做完了synopsys的DC workshop ...

  2. IC/FPGA面试之任意时钟分频电路的产生

    IC/FPGA面试之任意时钟分频电路的产生 #题目分析 第一步:确定输入输出,输入时钟,复位信号,分频选择信号,输出分频信号. 第二步:偶数分频实现通过计数即可.奇数分频,首先产生分频电路,其次使用始 ...

  3. IC/FPGA校招笔试题分析(二)任意切换的时钟分频电路

    今天的笔试题是某芸科技的现场笔试题,数字前端的笔试题,要求很简单,就是现场写出代码实现: 任意切换1-8分频,且无论奇分频还是偶分频,占空比均为50%,我至今仍然认为,在那种紧张且时间有限的情况下(本 ...

  4. 芯片设计中的时钟与约束

    1.同步电路与异步电路 首先来谈谈同步电路与异步电路.那么首先就要知道什么是同步电路.什么是异步电路? 对于同步时序电路,不同的文章有不同的说法,大致有下面的定义方法: ①对于比较严格的定义:一个电路 ...

  5. 可任意切换分频倍数的时钟分频电路

    IC校招笔试题:设计一个可任意切换1-8时钟分频,且无论奇偶分频,时钟占空比均为50%. 一.奇数分频 例如7分频,若不要求占空比为50%,很简单地产生3个cycle的高电平,4个cycle的低电平即 ...

  6. 数字芯片设计中的面积优化方法

    前言:数字芯片设计工程师在设计的时候要考虑三个方面,PPA,即Performance.Power和Area.本文讲解在实际项目中,如何对前端面积进行有效优化. 理论方法 本文首先参考书籍<FPG ...

  7. linux 时钟分频,浅析AD9522时钟分频电路原理

    在集成度高度发展的今天,不能靠多个晶振源来解决问题,而且一旦晶振固定那么它的灵活性和可移植性必然受到很大影响,所以一些时钟分频芯片应运而生,今天我们将举一个很有代表性的AD9522时钟分频芯片的典型应 ...

  8. 硬件探索——D触发器74LS74在Multisim中搭建四分频电路

    任务:请用74LS74构成一个4分频器,即输出信号的频率为输入信号频率的四分之一 一种仿真电路如下所示 该电路仿真波形如下图所示 仿真文件已放置于资源中,无需CB即可下载 蓝奏云:4分频D.zip - ...

  9. 数字芯片设计中常见的三个握手协议

    本篇文章转载自一道Nvidia的面试题 Valid-Ready Handshake Valid-Ready是非常常见的握手协议,我们熟悉的AXI总线的核心就是Valid-Ready协议.Valid-R ...

最新文章

  1. 将获取到的JSONObject和JSONArray转换为实体对象
  2. 为鸿蒙说两句公道话,鸿蒙是安卓的套壳吗?
  3. css选择器的优先级
  4. JSP/Servlet中的汉字编码问题
  5. moore 数据集_警报数据集(alarm dataset)_机器学习_科研数据集
  6. Java Annotation认知(包括框架图、详细介绍、示例说明)
  7. 【LeetCode笔记】128. 最长连续序列(Java、哈希表、动态规划)
  8. apollo 配置中心_配置中心——Apollo小记
  9. sphinx java_把 sphinx 官方提供的 java api 添加到 maven 库
  10. sql 子查询 嵌套查询_SQL子查询– SQL中的嵌套查询
  11. POJ2104(K-th Number)
  12. 关于BIO和NIO的理解
  13. android - 房源登记模版
  14. php代码实现微信代扣,html5+如何通过native.js实现APP微信支付代扣签约?
  15. CC00075.bigdatajava——|Java循环结构.V14|——|Java.v14|while循环.v02|实现调和数列累加和|
  16. 刘元普双生贵子(但行好事,莫问前程)
  17. 用户行为分析——AARRR 模型 和RARRA模型
  18. 未成年人勿进 谨以献给1980~1990出生的人(四)
  19. 异域公主连接iOS怎么修改服务器,公主连结ios账号在电脑端登录方法 模拟器使用技巧分享...
  20. 浩方cs全是虚拟服务器,在浩方里面的CS1.5 如何建立服务器

热门文章

  1. 《假如给我三天光明》读后感及其摘录(1)
  2. 机器学习-西瓜书-模型评估
  3. windows系统:Xshell下载安装+连接服务器
  4. 计算机电源多低无法使用吗,怎么确定电脑电源供电不足?
  5. 「量化技术」Inv_Strategy 胜率76%的趋势反转策略
  6. 识别三极管和场效应管引脚
  7. Harbor未授权创建管理员漏洞(CVE-2019-16097)
  8. AspriseOCR图片识别
  9. 【vue】bable的介绍以及编写vue文件
  10. attactEvent与addEventListener