【innovus】分享一个premask eco脚本
专栏:ExASIC Dec. 26, 2025, 11:20 a.m. 11 阅读
premask eco可以删除cell,也可以增加cell,在后端tapeout之前还是用得比较多

在项目后期,RTL还是经常有bug,通过APR ECO flow可以大大缩短后端时间,不用从头开始做。

提供当前的pr netlist给前端设计工程师,他们根据rtl的变动来修改pr netlist。后端拿到pr eco netlist后,先检查一下逻辑等价性,然后就可以开始premask eco流程了。

第一步,source上一版的enc.dat/top.globals,设置init_verilog为eco netlist,再init_design

source save_latest.enc.dat/top.globals
set init_verilog ../../eco/top_pr_eco.v
init_design

第二步,读入最新的def,innovus会对比出来增减inst和修改连线的情况。

ecoDefIn top.def

第三步,重连电源和地线。

clearGlobalNets
globalNetConnect VDD -type pgpin -pin VDD -instanceBasename * -hierarchicalInstance {}
globalNetConnect VSS -type pgpin -pin VSS -instanceBasename * -hierarchicalInstance {}
globalNetConnect VDD -type tiehi -instanceBasename * -hierarchicalInstance {}
globalNetConnect VSS -type tielo -instanceBasename * -hierarchicalInstance {}
globalNetConnect VDD -type pgpin -pin VNW -instanceBasename * -hierarchicalInstance {}
globalNetConnect VSS -type pgpin -pin VPW -instanceBasename * -hierarchicalInstance {}

第四步,删除filler,进行ecoPlace

deleteInst FILLER*
checkPlace
ecoPlace

# 如果有接1'b1或1'b0的,就需要连到tie high、tie low cell上
setTieHiLoMode -cell {PULL1_9TR PULL0_9TR} -maxFanout 4 -maxDistance 30 -createHierPort true
addTieHiLo

第五步,进行ecoRoute、fix drc。

ecoRoute

第六步,检查和fix timing。

setAnalysisMode -analysisType onChipVariation -cppr both
timeDesign -postRoute
timeDesign -postRoute -hold

第七步,填回filler,再确认一次drc、connectivity、antenna。

addFiller -cell { F_FILL1_9TR  F_FILL2_9TR  F_FILL4_9TR  F_FILL8_9TR  F_FILL16_9TR }
checkFiller

verify_drc
verifyConnectivity
verify_antenna

第八步,导出新的pr netlist、gds、def等。并保存enc,方便后续接着修改。

saveNetlist top_pr.v
streamOut top.gds -mapFile encStreamout.map -libName DesignLib -merge { stdcell.gds } -units 1000 -mode ALL
defOut top.def -floorplan -netlist -routing

saveDesign save_eco_xxx.enc
感谢阅读,更多文章点击这里:【专栏:ExASIC】
最新20篇 开设专栏