本文转自:自己的微信公众号《集成电路设计及EDA教程》
《忆往昔--集成门控时钟技术的前世--分离门控时钟技术》
多种门控时钟实现方案:
Design Compiler中已经集成了可以进行低功耗设计的Power Compiler,它有多种门控时钟实现方案(分离门控时钟、集成门控时钟、多级门控时钟、层次化门控时钟)。
如何选择?
首先需要看自己所用的标准单元库中是否有集成门控时钟(Integrated Clock Gating, ICG)单元,如果有的话最好选择使用ICG而不用分离门控时钟单元,因为它性能不如ICG,且在后端实现中需要一些人为的干预(需要通过设置net weight将Latch和与非门/或非门靠近放置),较麻烦。无论是分离门控时钟单元还是ICG,他们都可以被用来实现多级以及层次化门控时钟。
如果标准单元库中没有ICG,那么我们只能采用分离门控时钟技术。
在逻辑综合阶段,我们可以通过set_clock_gating_style命令来设置选择采用哪种方案,下面将对几种方式分别做以介绍。
1.分离门控时钟(Discrete Clock Gating)
Power Compiler在实现CG时,一般会默认采用分离门控时钟技术。
我们采用分离门控时钟技术应该只有一种情况,那就是采用的工艺比较特殊(如BiCMOS)或者工艺比较老,标准单元库中没有ICG,但是又想降低动态功耗,那只能使用分离门控时钟技术了。
它有两种实现方式,即基于锁存器的CG和不用锁存器的CG,一般默认情况下软件会选择前者。基于锁存器的CG单元的结构及波形如图1所示,它由一个锁存器和一个与门(或者或门、与非门、