a. Add this in “invs_local_groups.tcl”
##KSK added Partial routing blockages to minimise number of routes in upper layers
foreach blkg [dbGet -e -u top.fplan.rBlkgs.name sf_pRtBlkg_*] {
deleteRouteBlk -name $blkg
}
foreach {rtBlkgPerc layers} $PARTIAL_RT_BLKG_CONFIG {
foreach layer $layers {
set blkgName sf_pRtBlkg_${layer}_${rtBlkgPerc}
if {[dbGet -e top.fplan.rblkgs.name $blkgName] == ""} {
Puts "MERCURY INFO :: Creating partial routing blockage $blkgName on layers $layer allowing $rtBlkgPerc percent"
createRouteBlk -layer $layer -partial $rtBlkgPerc -box [dbGet top.fplan.box] -name $blkgName
}
}
}
ð Change the highlighted section if you need. But observation is, if we put full partial blockage over the design it is helping.
b. Add this “invs_config.tcl”
###KSK added below prb
set PARTIAL_RT_BLKG_CONFIG {
60 {M15 M16 M18 M19}
50 M17
}
c. Add this in “route_opt.tcl”, just after the “restoreDesign section”
##KSK removing prb at the starting of routeopt to avoid top layer shorts.
foreach blkg [dbGet -e -u top.fplan.rBlkgs.name sf_pRtBlkg_*] {
deleteRouteBlk -name $blkg
}
##KSK
Note:
1. Run should be done from placement.
append in routeMode.tcl
source /project/mercury/bin/block_scripts/ETF_route_22_12_23.tcl