分享

Power 介绍——power optimization之clock gating(2)

 mzsm 2022-06-22 发布于湖北

本公众号【读芯树:duxinshu_PD】主要介绍数字集成电路物理设计相关知识,才疏学浅,如有错误,欢迎指正交流学习。

这是集成电路物理设计的第四个系列【Power】的第十一篇文章,本篇文章主要介绍Power Optimization Clock Gating相关内容:

01

什么是Clock Gating?

  • clock network消耗的功耗占总功耗的很大比例,而时钟信号的无效翻转会造成多余功耗的损失,因此可以在时钟不需要翻转时使用Clock Gating电路'关闭'时钟信号翻转,节省功耗。

  • Clock Gating思路:将寄存器输入信号D和保持信号Q的选择控制信号EN变换为用来控制时钟信号,在EN有效,控制时钟信号不翻转,降低电路翻转概率。

图片

  • ICG(integrated clock gating):将clock gating cell做成一个大的集成cell,内部一般包括去抖动latch,gating cell(AND/OR),和使能控制单元。

图片

02


Clock Gating的优点和Metric定义

  • 节省功耗:clock network上toggle减小可以显著降低 dynamic power,同时register的clk pin的toggle可以降低register的internal power。

  • 节省面积:使用ICG cell可以节省Mux cell (注意:共用的ICG越多,节省面积越多,否则,可能不会节省面积)。

  • 容易实现:不需要修改RTL代码,可以通过EDA工具自动插入clock gating。

  • Clock Gating Efficienccy: 有多少时钟周期在通过Clock Gating之后被suppressed。Clock Gating Efficiency = 1 - (TRout/TRin)

图片

  • Register Q-to-CLK ratio:  寄存器Q端的toggle与寄存器clk pin的toggle比值。Toggle Q-to-CLK ratio = TRQ/TRclk

图片

  • Clustering Efficiency: 在EN信号相同情况下,时钟频率越高,节省功耗有效性越高。

图片

  • Split Cluster:当同一ICG单元控制多个register时,可能有的register翻转率高,有的register翻转率低,这会造成EN信号有效性降低。可以通过split cluster和clone ICG单元,提高ICG单元利用率。

图片

03


Clock Gating的种类

  • Discrete Clock Gate: 需要考虑latch与AND的skew最小值,将latch clock pin设置为non stop pin属性,需要设置setup/hold time, 这会增加flow的复杂性。

图片

  • Integrated Clock Gate: 不需要考虑latch与AND的skew值,CTS和timing analysis 工具自动处理,setup/hold time信息在library中。

图片

  • AND Type:如果EN信号来自上升沿触发器,则hold是half_cycle check;如果EN信号来自下升沿触发器,则hold是0_cycle check。

图片

图片

  • OR Type:如果EN信号来自下升沿触发器,则hold是half_cycle check;如果EN信号来自上升沿触发器,则hold是0_cycle check。

图片

图片

  • ODC Based Type: (Observability dont care) 当A=0时,无论B如何变化,AND门输出都是0,此时B点为observability dont care点,可以将B的源头寄存器gate掉,消除后续无效逻辑翻转,节省功耗。

图片

  • Logical Clock Gating: 通过逻辑综合自动实现,一般是在register clock pin上。

图片

  • Global Clock Gating: 通过控制某一或者某几个模块的clock enable信号实现。

图片

04


XOR Self Gating

  • XOR Self Gating是一种新的clock gating方法,当寄存器的输入信号D与前一时刻的输出信号Q相同时,可以将clock信号gating住,减少无效翻转。

  • XOR Self Gating优点: 可以gating任何register,不需要预存在的一些logic cell限制。同时还可以对已有clock gating结构进行优化,得到更好的gating效率。

图片

图片

05


Combinational & Sequential Clock Gating

  • Combinational Clock Gating: 减小clock network上toggle,降低power。

      merge_clock_gates: 具有相同EN信号的CG可以合并,减小面积和CG功耗。

图片

图片

remove_clock_gates: 当CG对power没有优化时,或者有多个CG但EN信号可以合并时,可以删除多余的clock gates。

图片

  • Sequential Clock Gating:通过观测前后的时序逻辑变化,不考虑clock-to-clock边界限制进行clock gating优化。这种方法不仅可以优化时序逻辑功耗,还可以优化组合逻辑功耗。

  • De-Assert a data path if its forward stage is gated.

图片

  • De-Assert forward stage, if the current stage is gate.

图片

06


为何Clock Gating容易出现setup violation?

  • 在CTS阶段,clock tree的skew会尽量要求小一点,即下图中到FF1的clock latency (T1)与到FF2的clock latency (T3+T4)尽量接近。

  • 在分析ICG的setup timing时,需要满足T1+Tck2q+T2 < T3+Tcycle,而T1>T3,所以ICG的setup不容易满足。

  • 由分析可以,由于T1>T3造成setup不容易满足,T1-T3=~T4,所以减小T4有利于满足setup,即将ICG Cell尽量摆放在靠近DFF sink的位置。

  • 同时分析公式可知,减小T2的延时也有利于setup的满足。

图片

07


参考文献

1,Fusion Compiler/ IC Compiler 2 user guide
2,Innovus user guide

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多