CCOpt的Useful Skew到底怎么玩的?
上图里,我们可以看到,在CCOpt之前,这个chain上的slack为+200ps/-100ps/+200ps。我们想修复这-100ps的slack,就有两个策略了:
方法1:把F1的delay提前;
方法2:把F2的delay滞后;
然而,F1的window不能支持提前,于是,CCOpt会选择把F2的delay滞后,尝试在F2之前增加驱动器来调clock delay,例如滞后150ps,将这一部分delay传递到左侧,以分担-100ps的slack。由此一来,整条chain 上就没有了timing 违反了。
这就是CCOpt最基本的skew scheduling思想。