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思想。