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

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

3天内不再提示

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

冬至子 来源:艾思后端实现 作者:艾思后端设计 2023-06-19 16:49 次阅读

门控时钟的分类

通过门控方式不同,一个门控时钟通常可以分为下面基类,

高有效(Active High)门控时钟

通常使用与门(and)或者与非门(nand)实现,

image.png

当使能信号为高的时候,时钟才可以被释放出去. 如果是nand,则输出的时钟是一个反向时钟的波形

image.png

低有效(Active High)门控时钟

通常使用与门(and)或者与非门(nand)实现,

image.png

当使能信号为低的时候,时钟才可以被释放出去. 如果是nor,则输出的时钟是一个反向时钟的波形

image.png

除过上述的情况,有时候也会使用复杂一些的clock gating结构,这里的波形就会复杂一些

XOR结构的门控时钟

image.png

当enable信号为1的时候,输出是输入的反向,反之则是正向

MUX结构的门控时钟

image.png

时钟传播单调性(unate

静态时序分析的基本原理是信号传播,对于拥有明确单调性的传播是构建正确STA环境的基础,数据通路对单调性(unate)通常不敏感,但是时钟通常是边沿敏感信号,所以时钟网络的单调性在STA时序分析的形态中尤为重要。STA工具也只有在单调性明确的时钟网络上做正确的时序分析,否则大概率会在实际芯片里边出现和STA不一致的情况。这点对于时钟网络的设计非常重要。

通过上述几种门控始终结构,从单调时钟的(unate)的角度来看,可以总结为下表

gating结构

image.png

所以,对于所有在时钟网络上的门控时钟,用户都需要明确其单调性,以便STA进行正确的分析。

门控时钟的的检查(clock gating check)

通过上述描述,可以看到始终网络对于静态时序分析的重要性,所以在门控时钟在时钟网络的传播路径上的检查尤为重要。同样,基于clock gating的结构,对于active high,active low的门控时钟,通过STA工具。可以自动推断(infer)出相应的门控时钟检查(clock gating check),用户可以理解,这里的clock gating结构被STA所覆盖。所以用户在需要理解STA自动推断的原理,从而确保自己的时钟路径被STA覆盖

定义

工具判断门控时钟的基本标准如下

  • 输入的时钟到输出必须存在一个组合逻辑的传播路径。常规的与或非,或者常规的latch based 的clock gating结构(见下图),但是register的分频结构,就不是一个clock gating。

image.png

  • 输入的端口必须包含clock,但是输入到输出的传播必须包含数据路径(gated 信号)。

    示例1: 组合逻辑的输入都是clock,STA会自动将时钟传播到输出,这样输出的会看到四个clock,这样的结构是无法判定为clock gating结构的,需要用户在使用的时候,当clock1有效的时候,clock2/3/4需要维持一个常1,否则输出的clock会出现混乱
    image.png
    示例2: 输入都是clock,但是用户使用下列命令在输出创建了一个gen-clock

    create_generated_clock -name clock1_gen_clk -divide_by 1 \\
    -source clock1 [get_pins U1/Z]
    

由于这个AND只有clock1传播过去,STA会自动推断出这是一个clock gating结构,clock1到clock2的gating 检查,clock2信号就是一个门控信号(enable)

image.png

示例3 :对于一个复杂的门控时钟无法自动推断

这里的UMUX0满足clock gating的结构

image.png

但是由于MUX结构是一个非单调性传播(none-unate),这样一个clock gating结构是无法自动推断(auto-infer)出来的,所以在clock 传播路径上存在风险,这样工具会给出如下的提示。需要用户进一步处理

image.png

挑战

门控时钟是在clock的传播路径插入了与或非逻辑,设计人员通过一定的逻辑控制达到对时钟的操作:

  • 时钟分频:使用低频门控信号与高频时钟和做AND操作: clock_slow = clock_fast * slow_enable

  • 时钟开合:使用半静态信号(近乎于始终关断控制): block_clock = sys_clock * block_enable

  • 时钟选择:使用半静态信号(近乎于模式控制): clock_out =(sel==1'b0)?func_clock : scan_clock

    或者使用latch/reg结构,设计一个防抖的时钟切换,但是无论门控信号的产生有多么复杂,只要符合门控适中的结构,最后的clock gating check的点位是不会发生变化的,只是一个好的时钟生成(clock-gen)的设计,可以对STA更友好的,推进项目质量和加速项目收敛,这也是一个有经验的设计工程师的基本修为。

    时钟是周期的变化,如果和一个门控逻辑进行组合逻辑运算,通常会出现时钟波形传播的问题(clock crop 或者clock swallow):
    image.png

在不同阶段出现的enable信号,会导致clock的波形发生畸变

image.png

注意:在STA的timing report中,用户是不会看到上述问题的影响的的,但是在实际芯片中,这种影响是真实发生的。 所以,clock-gating的逻辑,必须被clock-gating-check所覆盖,并且需要谨慎地进行彻底修复,对于工具不能自动推断出来的clock-gating点,需要用户重点关注和给出解决方案,否则在最后的芯片中会出现和STA完全不一致(无法通过STA定位)的时序问题。

未完待续… (To Be continued …)

这样处理以后,LVS的std-cell的port mismatch也就完美解决了,

学好v2lvs,再也不用perl去patch source netlist了~~~~

【敲黑板划重点】

理解门控时钟检查(clock-gating-check)和理解门控时钟(clock-gating)同等重要,任何在clock tree上做的动作都需要额外的小心。

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

    关注

    43

    文章

    433

    浏览量

    49313
  • STA
    STA
    +关注

    关注

    0

    文章

    51

    浏览量

    18850
  • 门控时钟
    +关注

    关注

    0

    文章

    27

    浏览量

    8895
  • XOR
    XOR
    +关注

    关注

    0

    文章

    12

    浏览量

    161693
收藏 人收藏

    评论

    相关推荐

    浅析clock gating模块电路结构

    ICG(integrated latch clock gate)就是一个gating时钟的模块,通过使能信号能够关闭时钟
    的头像 发表于 09-11 12:24 1146次阅读
    浅析<b class='flag-5'>clock</b> <b class='flag-5'>gating</b>模块电路结构

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

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

    FPGA的时钟门控是好还是坏?

    喜我对时钟门控有一些疑问。从我所读到/学到的东西 - 时钟门控可用于低功率fpga设计(关闭时钟以防止元件切换以节省功率)。但是,我还读到
    发表于 02-21 10:21

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

    们识别为无意义的。我们知道它们是无意义的,因为自动检查确保这些值不会被有意义的计算所消耗。从一开始就有时钟门控的全部意义可能并不明显。我从来没有参与过一个达到时钟
    发表于 12-19 17:09

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

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

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

    门控时钟的设计初衷是实现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>降低功耗的原理

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

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

    一文详解门控时钟

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

    低功耗设计基础:Clock Gating

    大多数低功耗设计手法在严格意义上说并不是由后端控制的,Clock Gating也不例外。
    的头像 发表于 06-27 15:47 1165次阅读
    低功耗设计基础:<b class='flag-5'>Clock</b> <b class='flag-5'>Gating</b>

    AND GATE的clock gating check简析

    一个cell的一个输入为clock信号,另一个输入为gating信号,并且输出作为clock使用,这样的cell为gating cell。
    的头像 发表于 06-29 15:28 1850次阅读
    AND GATE的<b class='flag-5'>clock</b> <b class='flag-5'>gating</b> <b class='flag-5'>check</b>简析

    什么是时钟门控技术?为什么需要控制时钟的通断呢?

    开始之前,我们首先来看一下什么是时钟门控clock gating)技术,顾名思义就是利用逻辑门技术控制时钟的通断。
    的头像 发表于 06-29 15:38 1375次阅读
    什么是<b class='flag-5'>时钟</b><b class='flag-5'>门控</b>技术?为什么需要控制<b class='flag-5'>时钟</b>的通断呢?

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

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

    低功耗之门控时钟设计

    clock gating和power gating是降低芯片功耗的常用手段,相比power gating设计,clock
    的头像 发表于 06-29 17:23 2236次阅读
    低功耗之<b class='flag-5'>门控</b><b class='flag-5'>时钟</b>设计

    Clock Gating的特点、原理和初步实现

    当下这社会,没有几万个Clock Gating,出门都不好意思和别人打招呼!
    的头像 发表于 07-17 16:50 2634次阅读
    <b class='flag-5'>Clock</b> <b class='flag-5'>Gating</b>的特点、原理和初步实现

    ASIC的clock gating在FPGA里面实现是什么结果呢?

    首先,ASIC芯片的clock gating绝对不能采用下面结构,原因是会产生时钟毛刺
    发表于 08-25 09:53 686次阅读
    ASIC的<b class='flag-5'>clock</b> <b class='flag-5'>gating</b>在FPGA里面实现是什么结果呢?