时钟门控的实现原理如下图所示:
图 3-1 时钟门控原理图
如上图所示,由于现在的设计方式,大多数是同步设计,设计人员只考虑数据路径,时钟往往是不做处理的。因此如果要实现门控,只需要在设计电路时提供可以识别的控制信号,在综合的时候,EDA工具就可以自动插入时钟门控。
利用Design Compiler进行时钟门控单元插入,在读入设计以及时序约束后,需要做以下设置:
1. set_clock_gating_style,设置时钟门控单元插入的约束
2. insert_clock_gating –global,开始插入时钟门控单元;
3. uniquify,将所有时钟门控单元做uniquify操作,以便后续PR
4. hookup_testports -se_port ATPGSE_Pad -se_pin uPad/uATPGSE_Pad/C –verbose,将所有时钟门控单元的scan_enable信号与测试用SE信号连接起来。如果没有ATPG,可以不用该句命令。
5. propagate_constraints -gate_clock,将门控单元信息传递给整个电路。
6.report_clock_gating可以查看时钟门控单元插入的情况,以便做电路修改,或插入时钟门控单元设置的修改。
完成这些设置后,只需要和平常一样做系统综合即可。而在DC 2008.09版本以后,第2~5的步骤都可以省略,在利用compile_ultra进行优化时,第2、3步骤都会被自动执行,第4、5步骤会在insert_dft时被执行。
形式验证工具Formality,在进行形式验证,需要设置verification_clock_gatie_hold_mode为low、high或者any,Formality就可以识别出时钟门控单元,并与RTL进行形式验证了。3.1.2.1. Clock Gating Cells
这里所说的Clock Gating Cell是指专门设计的,集成式时钟门控单元(Integrated Clock Gating Cell,简称ICG),就是利用Latch和与门/或门实现的一个独立的Standard Cell,其优势在于以硬IP实现,时序易于掌握,物理实现中对布局布线有帮助。当然如果单元库中不提供专门的时钟门控单元,EDA工具也可以利用与门、或门、Latch甚至是寄存器等进行门控单元的实现,但效果都没有ICG好用。这里针对ICG的插入进行描述。
图 3-1中的门控单元是一种典型的,利用负沿使能Latch以及与门组成的上升沿有效时钟门控单元,只有时钟下降沿后才会将时钟门控住,保证不产生时钟毛刺。
2 / 26
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库数字集成电路低功耗物理实现技术与UPF(2)在线全文阅读。
相关推荐: