一般Postmask功能ECO流程分成以下几步:修改RTL和验证、修改网表(LEC)、后端工具里ECO Route。如下图:
因为是postmask,所以不能加减stdcell,但可以用spare cells来映射。今天重点来介绍在Innovus里实现ECO Route需要怎么操作。
第一步:读入设计,并替换新网表
source design.enc.dat/design.globals
set init_verilog design_pr_eco.v
init_design
第二步:读入老def,对比网表差异
ecoDefIn -postMask -reportFile eco.rpt design.def
通过eco.rpt来确认是否新加了cell,新加的cell是否有可能直接用sparecell替换。
第三步:连接电源和地
globalNetConnect VDD -type pgpin -pin VDD -inst * -module {}
globalNetConnect VSS -type pgpin -pin VSS -inst * -module {}
globalNetConnect VDD -type tiehi -inst * -module {}
globalNetConnect VSS -type tielo -inst * -module {}
第四步:指定spare cell列表
source -echo -verbose sparelist.tcl
修改逻辑释放出来的cell也应当加到sparecell列表里。
第五步:映射spare cells
ecoPlace -useSpareCells true
第六步:手动优化place
attachTerm spr_1/spr_gate594 A n_tiehi_net
detachTerm spr_1/spr_gate594 Y
attachTerm spr_1/spr_gate752 A n_20211125_3_inv
attachTerm spr_1/spr_gate752 Y wire45008
检查place后用到的sparecell的远近和连线长短,手动交换sparecell。
第七步:eco route
ecoRoute
editDeleteViolations
ecoRoute
第八步:分析timing及timing ECO
setAnalysisMode -analysisType onChipVariation -cppr both
timeDesign -postRoute
timeDesign -postRoute -hold
...
第九步:检查及清除DRC
verify_drc
verifyGeometry
verifyConnectivity
verifyProcessAntenna
...
第十步:导出GDS,保存新设计
streamOut
saveDesign
...
最后,用一张图片来总结一下输入和输出文件,如下图: