面试官针对ICG提出了几个关键问题,包括要求画出ICG的结构、探讨en信号是否需要时序检查,以及ICG的具体作用。接下来,我们将逐一解答这些问题。首先,让我们来了解ICG的结构。ICG结构详解 在ICG的结构中,当CLK信号为0时,由于gating cell(门控单元)是一个与门,其输出在ENL信号的高低变化时都保持为0,这实际上是由CLK
可以使用单独的门(锁存器和与门)构建这种类型的电路,但这需要在综合/后端/STA中进行一些额外的时序检查。 大多数ASIC库都提供一个标准的ICG单元,其中的时序已经在内部进行了描述。类似于触发器和锁存器,ICG单元的使能输入同样具有建立和保持时间要求,很容易进行时序分析。 那么为什么使用Latch-based ICG 而不使用Fli...
2)经过的cell类型 除了上述三个约束条件外,另一个需要满足的条件是信号必须通过非复杂类型的cell。如果一个cell是non-unate cell,那么这个cell可以被视为复杂类型的cell。 对于复杂类型的cell(如常见的异或、同或和MUX),工具不会自动执行时钟门控检查。 append • 可以通过使用set_clock_gating_check命令来显式地...
fix hold violations时,插入buffer或者delay cell的位置,是靠近launch端还是capture端,还是并无任何要求呢? 在逻辑和物理上都应该尽量靠近capture端,也就是endpoint。在逻辑上更靠近endpoint能够保证插入的cells只会影响到有violation的path,物理上更靠近endpoint能够有效避免DRV,因为修hold时加入的cell普遍驱动能力较弱。 ...
常见的是,当ICG与sink DFF之间存在多层逻辑或物理距离时,导致skew过大,引发setup violation。为解决这一问题,实际设计中可将易出现setup violation的ICG靠近sink DFF布置,减少skew。同时,EDA工具提供了设置时钟门控检查命令,以优化这些路径的timing。在处理hold violation时,插入buffer或delay cell应...
可以使用单独的门(锁存器和与门)构建这种类型的电路,但这需要在综合/后端/STA中进行一些额外的时序检查。 大多数ASIC库都提供一个标准的ICG单元,其中的时序已经在内部进行了描述。类似于触发器和锁存器,ICG单元的使能输入同样具有建立和保持时间要求,很容易进行时序分析。
Latch的时序检查只有半个时钟周期; register Q到Latch EN的combo逻辑延迟; 解决办法: 一般将clock gate 单元放在寄存器附近以减小skew。 也可以采用set_clock_gating_check,加大对clock gating时序约束。 对于clock gating cell,synthesis时就会插入,和CTS没太大关系,一般只要确保clock timing check打开的就行。
Latch的时序检查只有半个时钟周期; register Q到Latch EN的combo逻辑延迟; 解决办法: 一般将clock gate 单元放在寄存器附近以减小skew。 也可以采用set_clock_gating_check,加大对clock gating时序约束。 对于clock gating cell,synthesis时就会插入,和CTS没太大关系,一般只要确保clock timing check打开的就行。
而使用锁存器,能够占用整个时钟周期(time borrow),因为Latch在有效电平是一直能够传播数据的,触发器只能在边沿传播数据。 因此,Latch-based ICG相比Flip-Flop-based ICG具有更好的功耗、面积和时序。 原文链接:为什么ICG Cell中使用锁存器(Latch),而不使用触发器(Flip Flop)? - 知乎 (zhihu.com)...