icg不支持mysql_为何ICG容易出现setup violation?

ICG(Intergrated Clock Gating)作为low power的设计手法之一,已经在实际中得到广泛应用。它们能够在某些时候将某些clock关断从而达到降低功耗的目的。然而从时序的角度,经常会发生ICG的setup难以收敛的情况。

为什么会出现这种情况呢?

下图展示了一种简单的带ICG的clock tree结构:

20200401125123519392.png

一般每个ICG会控制一个或多个DFF,通过某个DFF传递过来的控制信号控制ICG的开启或者关断。

然而,在CTS(clock tree synthesis)工具或者命令综合时钟树的时候,ICG不会被看作sink因此并不会作为balance对象,因此就会出现如下这种结果:

20200401125123912922.png

由上图可以看出,在分析setup时:

launck clk delay   = a + b

capture clk delay = a

因此,对于ICG的setup path,天然存在clock skew:b ,而skew的大小完全取决于ICG距离sink DFF有多远。

在出现setup violation的ICG path上,比较多见的就是因为ICG和sink DFF的clock之间存在较多逻辑或者物理上距离较远,从而导致skew较大而发生setup violation。

针对这种现象,在实际设计中,我们可能会考虑将出现setup violation的ICG尽量放在sin DFF附近以减小skew。与此同时,EDA工具也提供命令来收紧ICG的timing constraint来迫使工具来优化这些path,比如set_clock_gating_check命令。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值