不枉初心,砥砺前行

皮皮祥的博客

欢迎留言,评论

导航

clock gate

今天我们要介绍的时序分析概念是clock gate。 clock gate cell是用data signal控制clock信号的cell,它被频繁地用在多周期的时钟path,可以节省功耗。如下图所示:

 

我们经常说的reg2clockgate path的setup和hold检查,就是指:clock gate上enable信号要比clock信号提前到达一段时间和保持一段时间。

 

通常,clock gate上的setup会比较难收敛,因为如下图对于clock gate的timing path,天然会穿在skew k;clock tree必然不balance。在实际设计中,我们一般会尽量将clock gate 单元放在寄存器附近以减小skew。也可以采用set_clock_gating_check,加大对clock gate timing的约束。

 

常见的clock gating cell有ICG cell(integrated clock gating cell)和clock gating logical cell(and+low latch)。现在一般library库里都带有ICG cell了,clock gating logical cell已经不常用了

 

对于clock gating cell,synthesis前就会插入,本身和CTS没太大关系,

一般只要确保clock timing check打开的就行,就是如下global变量设成true

timing_enable_clock2clock_clockgating_check

 

另外,CTS工具会对其做clone,declone操作. 

 

ICG cell Clone:  受相同ICG cell控制的时序单元较多或者分布不均匀时,就会导致ICG cell连线过长,这时可以通过clone ICG cell进行优化

 

ICG cell De-Clone: 受相同ICG cell控制的时序单元较少,就会导致ICG cell数量过多,设计density增大。这时可以通过De-clone ICG cell进行优化

 

 

 

1、结构图(锁存器,与门,D触发器)

latch或reg:用于同步使能信号,防止出现亚稳态和毛刺。

与门:使能信号无效时,关断模块输入时钟。

D触发器:简化的reg。

2、为什么需要clk gate?

模块不工作时,clk翻转浪费功耗。模块/reg相当于一个DFF,但是en为高时,模块才工作,clk才有效。不工作时,clk翻转浪费功耗。

3、如何clk gate?

将一直翻转的时钟变为en有效才翻转的时钟,即将CLK转化为CLK_G。

4、基于与门的clk gate(会有右图所示问题)

5、避免毛刺glicth的clk gate

en信号的source reg用下降沿触发,en信号从产生到与门之前有半个时钟周期,可以稳定毛刺。

 *5、ICG

作用:采用使能信号EN控制数据是否有效,使能消耗无效时保持输出。

参考文献:深入浅出ClockGating - 操作 (基于基本CELL的clock gating形式)

时序分析基本概念介绍--clockgate_简单同学-CSDN博客_clock gate

 

posted on 2022-04-11 17:05  皮皮祥  阅读(1101)  评论(0编辑  收藏  举报