天天看点

门控时钟--低功耗设计

一、门控时钟做什么用?

门控时钟包括分离门控时钟和集成门控时钟(integrate clock gating,ICG),用于降低功耗。

二、什么是门控时钟?结构是什么?如何实现门控作用?

Clockgating:在数据无效时,将寄存器时钟关闭的技术,能够有效降低功耗, 是低功耗设计的重要方法之一。门控时钟其实就是一个逻辑模块,在寄存器的输入数据无效时,将寄存器的输入时钟置为0,而此时寄存器值保持不变,此时没有时钟翻转,避免了动态功耗。[2]

门控时钟有一个latch+一个与门组成。如下图所示[1]:

门控时钟--低功耗设计
门控时钟--低功耗设计

三、如何降低功耗?

通常情况下,时钟树由大量的缓冲器和反相器组成,时钟信号为设计中翻转率最高的信号,时钟树的功耗可能高达整个设计功耗30%。加入门控时钟电路后,可以减少了时钟树开关行为,节省系统动态功耗。同时,由于减少了时钟引脚的开关行为,寄存器的内部功耗也减少了。采用门控时钟,可以非常有效地降低设计的功耗,一般情况下能够节省20%~60%的功耗。

时钟门控通过在电路中增加额外的逻辑单元、优化时钟树结构减少功耗。时钟门控的加入使MUX的加入减少,可以减小芯片的面积,节省功耗。

由于门控时钟逻辑具有一定的开销,因此数据宽度过小不适合做clockgating。一般情况下,数据宽度大于8比特时建议采用门控时钟。

四、副作用是什么?

可测试性

五、如何计算门控时钟的delay?对后端有什么影响?

对于分离门控时钟,需要手动写入setup和hold信息。一般插入分离门控时钟单元可能会引起时钟偏斜(Clock Skew)问题,进而会导致输出的时钟信号中有毛刺。

ICG的时序信息直接包含在lib库中。

[1]https://www.cnblogs.com/IClearner/p/6912455.html

[2]https://blog.csdn.net/icxiaoge/article/details/80792819

[3]https://www.cnblogs.com/ASIC-Horizon/p/10105470.html