0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是自动时钟门控结构呢?关于自动时钟门控的解析

冬至子 来源:芯时代青年 作者:尼德兰的喵 2023-12-04 14:56 次阅读

每次作为面试官问一些RTL功耗优化的问题时候,都会希望听到一个答案:优化了RTL的clk-gating比例。

相传在很多年前,时序逻辑中是不存在自动时钟门控(clk-gating)的。那个时候我还小没赶上,如果我们回家问问家大人的话,他们会告诉我们那时候流行的D触发器综合应该是这样的:

图片

这种结构呢在没有使能的情况下,触发器的D端是不会有信号跳变的,能够有限的降低一些功耗。不过大家也清楚寄存器的动态功耗主要来源于时钟的跳变,因此这种综合结果下时钟信号保持翻转,触发器的内部电路也大多保持活跃,于是后面进一步的出现了自动时钟门控结构。

什么是自动时钟门控结构呢?就是通过工具自动的插入一些结构,能够在数据不跳变的时间里,关断寄存器的时钟输入。那么如果来做一个最简单的门控结构,那必然就是如此了:

图片

当使能为低时,D触发器的时钟被关断,没有时钟跳变自然寄存器也不会翻转,因此Q端也不需要连线回接到D端来实现数据保持。不过这样的结构存在一个明显的问题,en信号显然是逻辑电路生成的,虽然其必然满足建立时间和保持时间要求,但是当en信号维持时间过短时,时钟会被过早的关断:

图片

以及en的逻辑跳变引起的时钟脉冲和毛刺:

图片

因此呢就出现一个需求,作用在clk上的en信号必须要能在时钟上升沿到时钟下降沿这个区间保持为一个常量,所以进一步的我们引入一个锁存结构:

图片

clk信号作为锁存器的控制端,en信号为被锁存信号,当clk为1时锁存en信号,clk为0时透传en信号,对应的波形如下:

图片

通过锁存器的锁存功能,en信号只要在上升沿前保持稳定,即可保证产生完整的时钟脉冲,这个结构就已经基本满足我们的需求了。此外,大部分的厂商会在标准单元库中提供“时钟门控单元”,比上面的结构会多一个test_se信号,在扫描测试时候使用,因此一个完成的gating结构大体是这样的:

图片

而最终一个插入了自动时钟门控的D触发器的门电路结构图也就完成了:

图片

那么完成了clk-gating结构后我们需要分析一下,clk-gating的收益是什么呢?功耗收益,能够在EN端不使能时关断时钟降低寄存器的动态功耗。那么对应的额外消耗支出有哪些呢?

1.面积增加,与门、或门和latch都是会增加面积的,因此工具不会无脑的插入gating,一般只有在EN控制的寄存器超过4bit时才会插入,这个值是可以设置的;

2.EN路径的时序更加紧张,为了保证时钟及时被开启,EN端必须更早的实现时序收敛(或者理解为EN路径是相对clk的,D路径是相对gating clk的)。关于这一点综合完的clk timing.rpt和clk gating timing.rpt对比下就会发现gating的timing路径中一般会减去一个时间比如-100ps;

最后再解答还是经常在面试里问的问题:为什么时序逻辑里不写else工具才能自动插入时钟门控呢?

通过观察结构就可以发现,时钟门控的结果就是当EN不使能时Q端数据不发生改变,如果else分支里有赋值,那么天然就不满足这个条件了,因此工具无法插入时钟门控。

当然本篇所述是在触发器级的自动时钟门控,而整体看门控时钟可以处于整个时钟树的任何节点,越靠近根部的门控时钟对于降低功耗的作用越明显。原因显而易见,整个电路结构的功耗整体由三部分组成:组合逻辑产生的功耗+触发器产生的功耗+时钟树功耗;靠近根部的门控结构不仅降低了大量触发器的功耗,同时降低了区域的时钟树功耗(时钟树功耗几乎占到了芯片功耗的50%)。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117746
  • RTL
    RTL
    +关注

    关注

    1

    文章

    377

    浏览量

    59073
  • 触发器
    +关注

    关注

    14

    文章

    1681

    浏览量

    60412
  • CLK
    CLK
    +关注

    关注

    0

    文章

    122

    浏览量

    16912
  • 时钟门控
    +关注

    关注

    0

    文章

    7

    浏览量

    6762
收藏 人收藏

    评论

    相关推荐

    XOR自门控时钟门控的不同之处

    时钟XOR自门控(Self Gating)基本思路和时钟门控类似,都是当寄存器中的数据保持不变时,通过关闭某些寄存器的时钟信号来降低设计的动
    的头像 发表于 01-02 11:34 526次阅读
    XOR自<b class='flag-5'>门控</b>与<b class='flag-5'>时钟</b><b class='flag-5'>门控</b>的不同之处

    fpga门控时钟问题

    我在一个图像项目里用来很多的门控时钟来产生需要的时序波形,这样程序很不稳定,图像晃动很大,我猜想是不是因为门控时钟太多,程序不稳定,但是又没有方法替代
    发表于 10-28 22:39

    关于门控时钟的讨论 精选资料推荐

    1、什么是门控时钟?在解释何为门控时钟之前,有必要了解为什么需要门控时钟。集成电路工艺节点的提升
    发表于 07-30 06:11

    什么是门控时钟

    什么是门控时钟
    发表于 11-05 07:26

    什么是时钟门控?如何去实线时钟门控的设计

    ,所以应用有效性的开销是最小的。有效性不仅仅是关于时钟门控。可以说,它有助于是否有意义。例如,前面的CPU波形是来自TL-Verilog模型。调试变得更容易了,因为我们已经自动过滤掉了
    发表于 12-19 17:09

    基于门控时钟的CMOS电路低功耗设计

    阐述了如何运用门控时钟来进行CMOS电路的低功耗设计。分析了门控时钟的实现方式,如何借助EDA工具在设计中使用门控
    发表于 11-19 11:49 22次下载

    门控时钟

    门控时钟的资料,关于FPGA方面的资料。有需要的可以看看
    发表于 05-10 16:31 11次下载

    通常有两种不同的时钟门控实现技术

    时钟门控(Clock Gating)是一种在数字IC设计中某些部分不需要时关闭时钟的技术。这里的“部分”可以是单个寄存器、模块、子系统甚至整个SoC。 为什么需要时钟
    的头像 发表于 06-13 16:48 2331次阅读

    什么是门控时钟 门控时钟降低功耗的原理

    门控时钟的设计初衷是实现FPGA的低功耗设计,本文从什么是门控时钟门控时钟实现低功耗的原理、推
    的头像 发表于 09-23 16:44 1.2w次阅读
    什么是<b class='flag-5'>门控</b><b class='flag-5'>时钟</b> <b class='flag-5'>门控</b><b class='flag-5'>时钟</b>降低功耗的原理

    门控时钟实现低功耗的原理

    只有当FPGA工程需要大量降低功耗时才有必要引入门控时钟,若必须引入门控时钟,则推荐使用基于寄存器的门控
    的头像 发表于 07-03 15:32 1707次阅读

    什么是门控时钟?如何生成门控时钟

    由于门控时钟逻辑具有一定的开销,因此数据宽度过小不适合做clockgating。一般情况下,数据宽度大于8比特时建议采用门控时钟
    发表于 12-05 12:28 2445次阅读

    一文详解门控时钟

    当寄存器组的输出端没有驱动或没有变化时,可以关掉寄存器组的时钟来减少动态功耗,此谓门控时钟 (Clock Gating, CG) 技术。
    的头像 发表于 03-29 11:37 6152次阅读
    一文详解<b class='flag-5'>门控</b><b class='flag-5'>时钟</b>

    FPGA原型平台门控时钟自动转换

    现代FPGA综合工具会自动执行门控时钟转换,而无需更改RTL代码中的设计,然而,我们可能需要适当地手动指导综合工具执行门控时钟变换。
    的头像 发表于 05-23 17:38 1078次阅读
    FPGA原型平台<b class='flag-5'>门控</b><b class='flag-5'>时钟</b><b class='flag-5'>自动</b>转换

    门控时钟检查(clock gating check)的理解和设计应用

    通过门控方式不同,一个门控时钟通常可以分为下面基类,
    的头像 发表于 06-19 16:49 1703次阅读
    <b class='flag-5'>门控</b><b class='flag-5'>时钟</b>检查(clock gating check)的理解和设计应用

    为什么需要时钟门控时钟门控终极指南

    时钟门控(Clock Gating)** 是一种在数字IC设计中某些部分不需要时关闭时钟的技术。这里的“部分”可以是单个寄存器、模块、子系统甚至整个SoC。
    的头像 发表于 06-29 15:58 1116次阅读
    为什么需要<b class='flag-5'>时钟</b><b class='flag-5'>门控</b>?<b class='flag-5'>时钟</b><b class='flag-5'>门控</b>终极指南