|
发表于 2021-7-7 21:52:39
|
显示全部楼层
第二
在-preCTS模式,Innovus是有能力做drv fixing,WNS, TNS optimization的。根据设计需求,可以选择只做drv fixing。
如果综合后没有setup violation,Innovus preCTS也没有setup violation,WNS,TNS都为正,Innovus不需要做WNS,TNS optimization,可以跑类似下面的flow。
setPlaceMode ...
setOptMode ...
place_opt_design
place_opt_design -incremental
如果综合后有setup violation, Innovus preCTS 有负的 WNS,TNS, 可以选择暂时不理会timing,只做drv fixing。
setPlaceMode ...
setOptMode ...
place_design
optDesign -drv
这里optDesign -drv告诉工具只做drv fixing。
我个人是不喜欢在placement阶段做timing optimization的。
想了想,可能因为我的flow严格要求综合必须meet setup,掩盖了一些问题。如果综合后勉强满足setup,WNS为0。Innovus place时两个模块距离较远,place时是有可能出现WNS为负的。这时跑上面第一个flow, place_opt_design可能会首先在critical path上upsize cell,如果还不能meet setup,place_opt_design可能会“发疯”的。 也许这是place后utilization增加好多的原因。 也许可以试一下第二个flow,只做place_design,观察utilization,再做optDesign -drv,观察utilization,再做optDesign -preCTS ... 还有,usefulskew全程关掉,减少不必要的变数。
第三
我明白你的做法了。
|
|