首页 > 其他分享 >门控时钟

门控时钟

时间:2023-08-11 12:33:18浏览次数:21  
标签:En 功耗 寄存器 时钟 门控 结构

.门控时钟-概述

  1. 时钟信号的功耗占系统功耗的很大一部分(40%左右)占动态功耗的50%以上,而且由于时钟开启导致的触发器无效翻转以及相应组合逻辑的翻转会很大程度增加电路的动态功耗。
  2. DC门控时钟命令:
    intert_clock_gating
    set_clock_gating_style
  3. 门控时钟插入:
    在这里插入图片描述

1.1 使用效果实例:

a. 对于一个180nm工艺的芯片:有clock gating和没有clock gating的结果相比(芯片实测):
a. 功耗节省34%到43%(具体更应用模式有关)
a. 面积节省20%(一个clock gating能代替多个mux)

  1. 使用原则:
    a. 至少位宽是3或以上的寄存器才用门控时钟
    a. 单bit的寄存器使用门控时钟是没有效果的,面积和功耗都不会节省。
    a. Clock buffer尽可能多的放到clock gating cell的后面。
  2. RTL具体措施:
    a. 无用输出采用使能保持输出的方式编码:
    NxtReadData = (ReadEn) ? RamData : 8'b0;
    如果没有读使能时,我们不关心输出什么数据的话,则改成:
    NxtReadData = (ReadEn) ? RamData : ReadData;
    这样就可以让ReadEn无效时把这8个寄存器的时钟关掉。
  3. 3bit的计数器插clock gating前后电路对比
    插门控之前:
    在这里插入图片描述
    插门控之后:
    在这里插入图片描述
  4. 不同bit数门控时钟插入对比
SMIC.18工艺 面积 动态功耗(W)
    um2 门数  
4bit暂存器 带ICG 221.72 25.25 1.185e-05
  不带ICG 263.42 30 1.427e-05
3bit暂存器 带ICG 175.62 20 9.160e-06
  不带ICG 197.57 22.5 9.920e-06
2bit暂存器 带ICG 131.71 15 6.315e-06
  不带ICG 131.71 15 6.613e-06
1bit暂存器 带ICG 85.61 9.75 3.633e-06
  不带ICG 65.86 7.5 3.307e-06

1.2 门控时钟的结构:

a. 结构-1 与门

在这里插入图片描述这种系统时钟门控的机制算然简单,但是容易使门控后的时钟不完整,甚至产生毛刺。
b. 结构-2
在这里插入图片描述
这种门控方法避免了门控时钟的不完整性,也可以避免避免毛刺的产生,但门控后的时钟可能会产生亚稳态。
c. 结构-3
在这里插入图片描述
这种结构解决了结构-2的亚稳态问题。
d. 结构-4
在这里插入图片描述
这种带测试模式的结构可以在测试时让时钟一直开着。
e. 结构-5

在ASIC进行后端测试的时候,有时候可能会将不同时钟域的逻辑和寄存器连起来进行扫描链插入,此时可能某个模块的时钟来源可能不是通过它原来的时钟路径,而是整个芯片统一的测试时钟,就此时需要对时钟进行选择。

1.3 门控的基本要求:

  1. 所需要的沿(对于正沿触发的寄存器是正沿,对于负沿触发的寄存器是负沿)不增加,不减少;
  2. 不会产生毛刺;
  3. 使用后功耗要能够降低;
  4. 最好面积还会减小。

1.3上升沿触发的门控时钟的结构研究

应用与上升沿触发的寄存器的门控。
1.直接与门结构:
在这里插入图片描述
2.高电平使能Latch + 与门结构:
在这里插入图片描述
3.低电平使能Latch + 与门结构(上升沿触发常用结构):
在这里插入图片描述波形研究:从下面的波形可以看出:
1.如果En信号的上升沿在时钟的上升沿和下降沿之间的话,则结构1与结构2都会多产生一个时钟沿;见波形中的Error。
2.如果En的下降沿在时钟的下降沿和上升沿之间,则很容易产生一个毛刺;
3.结构3是符合我们需要的,上升沿没有丢失或减少。所以DC在正沿触发的寄存器前插入的都是这类CG;
在这里插入图片描述

1.4 下降沿触发的门控时钟的结构研究

应用与下降沿触发的寄存器的门控。

  1. 或门结构:
    在这里插入图片描述
  2. 低电平使能Latch + 与门结构:
    在这里插入图片描述
  3. 高电平使能Latch + 与门结构(下降沿触发常用结构):
    在这里插入图片描述
  4. 波形研究:从下面的波形可以看出:
  5. 如果En信号的上升沿在时钟的下降沿和上升沿之间的话,则结构1与结构2都会多产生一个时钟沿;见波形中的Error。
  6. 如果En的上升沿在时钟的上升沿和下降沿之间,则很容易产生一个毛刺;
  7. 结构3是符合我们需要的,下降沿没有丢失或减少。所以DC在负沿触发的寄存器前插入的都是这类CG;
    在这里插入图片描述

1.5 特殊情况分析

  1. 如果En信号的上升沿和下降沿都能保证在时钟的低电平区域,则与门结构可以作为门控来使用:

 

在这里插入图片描述分析:

  1. 如果En是ClkSrc时钟域的寄存器负沿触发输出的信号,或者产生En的信号都是ClkSrc时钟域负沿触发产生的信号;
    则通过合适的约束,可以做到En的沿都在时钟的低电平区域。
  2. 如果从功能上可以确认,En的沿都在时钟的低电平区域,则也可行。
  3. 这种结构不管是对上升沿触发的寄存器或者对下降沿触发的寄存器都是有效的。
  4. 如果En的上升沿和下降沿都能保证在时钟的高电平区域,则或门结构可以当成门控来使用:
    在这里插入图片描述
    分析:
  5. 如果En是ClkSrc时钟域的寄存器正沿触发输出的信号,或者产生En的信号都是ClkSrc时钟域正沿触发产生的信号;
    则通过合适的约束,可以做到En的沿都在时钟的高电平区域。
  6. 如果从功能上可以确认,En的沿都在时钟的高电平区域,则也可行。
  7. 这种结构不管是对上升沿触发的寄存器或者对下降沿触发的寄存器都是有效的。
  8. 这种结构综合的时候一般会综合成:一些这种结构;这种结构面积会小一点15%左右;但功耗会稍大一点;所以需要具体情况具体分析;
    在这里插入图片描述

1.6 综合分析:

  1. 使用Latch为基础的门控结构:
  2. 优点:很明显,就是对En的沿的位置没有特殊要求。
  3. 缺点:
  4. 功耗收益:对寄存器数目比较少的门控效果就不明显,甚至会使功耗增加。比如3个或以下寄存器的门控效果就比较差。
  5. 面积收益:而且由于Latch的面积比较大(相当于5个门左右,而寄存器则相当于7个门左右),所以整个门控结构面积差不多是一个寄存器大小。所以对于面积的收益上来说,Latch结构的门控用在门控多个寄存器(一般是4个或以上)才有收益。
  6. 使用与门,或门的门控结构:
  7. 优点:
  8. 功耗收益:或门或与门的功耗显然比Latch要小得多。所以在驱动一个寄存器的门控都有收益。而且在时钟需要触发的时候不至于增加太多功耗。
  9. 面积收益:一个或门或与门(相当于1.2个Gate)的面积比一个MUX的面积(相当于2.2个Gate)要小,所以从面积收益上来说,即使是门控一bit寄存器都还有1个门左右的收益。
  10. 1bit门控对比分析:
  11. 不使用门控的情况:
    在这里插入图片描述
  12. 时钟端输入电容(以tower库dfcfq1为例):0.002pF
  13. 时钟端反转短路功耗:0.00948pJ;
  14. 使用非与非门控的情况:
    在这里插入图片描述
    a. 跟时钟有关的输入电容:反相器+与非门:0.003+0.001=0.004pF
    a. 时钟端短路功耗:0.00198-0.000918+0.0013=0.0023pJ
  15. 使用非或门情况:
    在这里插入图片描述
  16. 四种门控情况功耗对比与面积对比:
    En0,时钟1MHz
    在这里插入图片描述
    En1,时钟1MHz
    在这里插入图片描述
    从上面的表格我们可以看出
  17. 使用或非门的功耗是最小的;但由于综合工具会把这个电路综合成非与非门结构,所以要使用这种结构的话需要使用库中的或门来例化,同时对这个或门dont_touch;
    注意:不要对或门前的非门进行例会或dont_touch;
  18. 面积是使用非与非门最小的;
  19. 使用Latch的门控虽然在En0时有功耗收益,但在En1时功耗增加太大;而且面积也比没有门控的大;

标签:En,功耗,寄存器,时钟,门控,结构
From: https://www.cnblogs.com/lanlancky/p/17622707.html

相关文章

  • serdes 复制时钟
    serdes复制时钟一般指的是,将rxlane的CDR恢复时钟发送给TX/PLL,这样rx和tx的时钟频偏就一致,在远端环回时经常用到。RX,TX时钟同频后环回数据就可以畅通发出去,否则RX/TX的FIFO就会溢出丢弃数据。主要注意这里不是所有的serdesIP都支持。只有这样才能彻底的实现RX,TX同频。优秀......
  • Mitsubishi 三菱FXPLC基础 | 时钟处理指令知识分享
    谈及时钟和定时器,想来大家都不陌生,就如我,每天都要定三个闹钟才起得了床去上班,而且我敢肯定,不止我一个人。关于时钟和定时器,我在之前的文章就有分享过一二,但当时并没有讲到相关的指令,不是我不想讲,而是时机未到。然后我掐指一算,现在时机正好!在三菱FXPLC中,可以用于表示时间的有......
  • 设计一个单比特跨时钟域传输电路?从慢到快&从快到慢
    ClockDomainCrossing(CDC):跨时钟域设计中,信号adat从aclkdomain传播到bclkdomain;aclk与bclk之间的频率,相位没有固定关系,为asynchronous异步关系的时钟。分为单比特跨时钟域和多比特跨时钟域。多比特跨时钟域:采用异步FIFO。单比特跨时钟域:分为从慢到快,和从快到慢。从慢......
  • c++控制台时钟显示时间
    在旧电脑上刷了ubuntu的服务器版本,开着的时候旧电脑(yoga)的屏幕就处于了无用的状态。为了更好的利用这个屏幕,简单使用c++写了一个显示时间的代码。由于这台yoga的屏幕是可以360翻转的,所以给时间的显示也增加了一点翻转功能。1#include<iostream>2#include<ctime>3#......
  • 记录--canvas 复刻锤子时钟
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助介绍canvas:使用脚本(通常为JavaScript)来绘制图形的HTML元素。本人遍历了以下两份文档,学习完就相当于有了笔和纸,至于最后能画出什么,则需要在canvas应用方面进一步学习。MDN的Canvas教程1张鑫旭的Ca......
  • 拆 大屏液晶电子时钟
    配置不错功能有温湿度,夜晚荧光、micro口充电、液晶数字够大观感还不错渣渣体验开关机或者没电后所有时间要重新设置。所谓充次电用半年一年就是狗屁,一周不到就完犊子,连着充电线用才是正道,不知道实在是吃电太多还是电池垃圾,所谓床头闹钟嘛要克服不少困难吧。 拆机原因电量......
  • CM4 systick 时钟源设置
    CM4systick时钟源设置起因之前离职的同事交接给我的项目里面timer2的配置错误让我决定修改他用到的每一个时钟的配置。systick时钟源设置方法systick的时钟源可以从两个地方选择。internal源external源TheCortexSystemTimer(SysTick)externalclockisclocked......
  • 大实验2:用DS1302时钟芯片设计一个高精度时钟
    需求:1.在LCD1602上面显示年,月,日,星期,时,分,秒,并且按秒更新动态显示2.4个独立按键各有各的功能,按键1能够实现进入暂停;按键2实现数值增大;按键3实现数值减小;按键4设定为功能选择键3.具有闹钟设定以及到时报警功能,报警响起时,按任何按键均可以取消报警完成:1.根据DS1302的特性,读取DS13......
  • 05. STM32F1的时钟树
    一、STM32的时钟树二、时钟源  对于STM32F1,输入时钟源(InputClock)主要包括HSI,HSE,LSI,LSE。其中,从时钟频率来分可以分为高速时钟源和低速时钟源,其中HSI、HSE是高速时钟,LSI和LSE是低速时钟。从来源可分为外部时钟源和内部时钟源,外部时钟源就是从外部通过接晶振......
  • 【FPGA基础】时钟设计与异步复位同步撤离设计
    一、时钟设计1、时钟分频设计累加器时钟分频(32分频)always@(posedgeclkandnegedgerst_n)beginif(!rst_n)clk_cnt<=5'b0;elseclk_cnt<=clk_cnt+1'b1;end 异步时钟分频(32分频)always@(posedgeclk)clk_2<=~clk_2;alwa......