ECO FLOW
After route_opt is done "600_route_opt" will be linked to "700_final"
ls -lrt 700_final
700_final -> 600_route_opt
always final data base will be linked to "700_final"
cd invs.$(tag)
cp -rf fscripts/eco_pass.N.DESC.tcl fscripts/eco_pass.1.timing.tcl
NOTE : use the same version in eco phase as used during implementation
use below command to open interactive session
qinvs_eco –v <> -m <> -s fscripts/eco_pass.1.timing.tcl
it will open "GUI" after below two commands are executed
win
return
edit the eco_pass.1.timing.tcl in below section
Please refer the latest eco_pass.N.DESC.tcl from Larry (Jan 7, 2025) with extra settings for tweaker ECO
/project/mercury/bin/block_scripts/eco_pass.N.DESC_Tweaker.tcl
#### /////////////////////BEGIN ADD ECO CODE/////////////////////////////////////////////////////
#### Example of how to turn off timing updates and refine place during ecoAddRepeater
setEcoMode -refinePlace false -updateTiming false
## insert source files or source code here for batch mode
## for examples of useful commands look at the bottom of the file
## an early extractRC has prevented errors during ecoAddRepeater: uncomment if desired
# extractRC
## uncomment to source tweaker commands: START
## turn on batchMode and flag to allow non batch mode commands common in tweaker
set is_honorDontTouch [getEcoMode -honorDontTouch]
set is_honorDontUse [getEcoMode -honorDontUse]
set is_honorFixedStatus [getEcoMode -honorFixedStatus]
set is_refinePlace [getEcoMode -refinePlace]
set is_honorFixedNetWire [getEcoMode -honorFixedNetWire]
set is_updateTiming [getEcoMode -updateTiming]
set is_spreadInverter [getEcoMode -spreadInverter]
set is_keepOriginalWires [getEcoMode -keepOriginalWires]
etEcoMode -honorDontUse false -honorDontTouch false -honorFixedStatus false -refinePlace false -updateTiming false -honorFixedNetWire false -spreadInverter false -keepOriginalWires true
set dpgAllowUnsupportedCmdsInBatch 1
setEcoMode -batchMode true
set_interactive_constraint_modes [all_constraint_modes -active]
setEditMode -drc_on 0
source ecoFile.tcl
set_interactive_constraint_modes {}
## lac restore ecoMode settings to those from before.
setEcoMode -batchMode false
setEditMode -drc_on 1
setEcoMode -honorDontUse $is_honorDontUse -honorDontTouch $is_honorDontTouch -honorFixedStatus $is_honorFixedStatus -refinePlace $is_refinePlace -updateTiming $is_updateTiming -honorFixedNetWire $is_honorFixedNetWire -spreadInverter $is_spreadInverter -keepOriginalWires $is_keepOriginalWires
## uncomment to source tweaker commands: END
## uncomment to source noise fixes
## NOTE, you must copy the <BLOCK>.ets_noise.LOGIC.FF.WIN_FF.eco file from the
## avo/noise/ff.win_ff/rpts/ directory to the local nano*/fscripts directory
# source $SCRIPT_DIR/<BLOCK>.ets_noise.LOGIC.FF.WIN_FF.eco
## uncomment to source avo/timing/leakage_opt cell swaps
## NOTE, you must copy the LKG_OPT_cell_changes.NANO.tcl file from the
## avo/timing/leakage_opt/data directory to the local nano*/fscripts directory
# source $SCRIPT_DIR/LKG_OPT_cell_changes.NANO.tcl
## uncomment if you are doing a functional eco
## This will remove the dangling wires from the eco cells
## This is not needed for general ECOs, only functional ECOs (changing logic)
## Resolved in Innovus 20.*
#if {$MJR_MNR_VERSION < 20.00} {
# setNanoRouteMode -dbExpKeepDanglingWires false
#}
#### /////////////////////END ADD ECO CODE///////////////////////////////////////////////////////
comment all the lines till win ; return commands
and source eco_pass.1.timing.tcl
after eco is done 700_final will be linked to "700_final.1.timing"
if we want to revert the eco follow below procedure
unlink 700_final
remove current final "700_final.N.<DESC"
link 700_final to "700_final.(N-1).DESC"
and restart eco