修timing之前要找到问题,这样就可以高效的解决
一、DC综合阶段
1、如果是设计问题,在DC中用retiming或pipeline的方法修复(需要一定的经验才能发现)
2、细分group_path,将某些重要的逻辑单独拿出来,设为一个group_path,并且给予一个相对较高的weight值
3、base DCT flow。默认的情况下DC综合是基于zero_wire_load model来估算delay的,并没有physical信息与icc2一致性相差相差较大
二、PR阶段place之后
1、如果违例严重,就要考虑是否是因为floorplan不合理(本身block的形状、port的位置、memory以及IP的位置不合理),解决方法就是优化floorplan。或者考虑是否是模块利用率太高了,congestion比较严重从而影响timing
2、如果setup violation 比较小那么可以通过细分group_path并且提高相对的weight值,或者通过useful skew 等方法来解决
三、PR阶段route之后
方法:解决局部的congestion或者增加buffer、inv
四、timing signoff阶段
方法(1)将某些cell size成低阈值的cell,或者size up来解决问题
(2)PT中对clock tree进行ECO