blob: dd8eca207830922798134c384597a63cb18e5e98 [file] [log] [blame]
###################################################################################
# POST-PLACE PLUG-IN
###################################################################################
#
# This plug-in script is called after placeDesign from the run_place.tcl script.
#
# Example tasks include:
# - standard cell rail creation
#
###################################################################################
#
# Standard cell rail creation for power domains if they are created/modified
# during the flow
# -----------------------------------------------------------------------------------
#sroute \
# -noBlockPins \
# -noPadRings \
# -noPadPins \
# -noStripes \
# -straightConnections { straightWithDrcClean straightWithChanges } \
# -nets { <p/g nets> } \
# -powerDomains { <power domain> } \
# -targetViaTopLayer <layer> \
# -crossoverViaTopLayer <layer> \
# -verbose
######################################################################################
### standard cell rail creation
### Note: Before creating std. cell rails, user should check stack via limit from
### tech. lef/DRC rules based on this he has to pass proper values for
### targetViaTopLayer/crossoverViaTopLayer
######################################################################################
### std. rails for PDuart power domain
sroute \
-noBlockPins \
-noPadRings \
-noPadPins \
-noStripes \
-straightConnections { straightWithDrcClean straightWithChanges } \
-nets { VDDuart VSSsoc } \
-powerDomains { PDuart } \
-targetViaTopLayer 4 \
-crossoverViaTopLayer 4 \
-verbose
### std. rails for PDdvfs power domain
sroute \
-noBlockPins \
-noPadRings \
-noPadPins \
-noStripes \
-straightConnections { straightWithDrcClean straightWithChanges } \
-nets { VDDdvfs VSSsoc } \
-powerDomains { PDdvfs } \
-targetViaTopLayer 4 \
-crossoverViaTopLayer 4 \
-verbose
editSelect -type Special -layers {M3 M4 M5 M7} -nets {VDDdvfs VSSsoc} -shapes {COREWIRE} -status {ROUTED FIXED}
deleteSelectedFromFPlan
### std. rails for PDsmc power domain
sroute \
-noBlockPins \
-noPadRings \
-noPadPins \
-noStripes \
-straightConnections { straightWithDrcClean straightWithChanges } \
-nets { VDDsmc VSSsoc } \
-powerDomains { PDsmc } \
-targetViaTopLayer 4 \
-crossoverViaTopLayer 4 \
-layerChangeTopLayer 4 \
-verbose
### std. rails for PDwakeup power domain
sroute \
-noBlockPins \
-noPadRings \
-noPadPins \
-noStripes \
-straightConnections { straightWithDrcClean straightWithChanges } \
-nets { VDDwake VSSsoc } \
-powerDomains { PDwakeup } \
-targetViaTopLayer 4 \
-crossoverViaTopLayer 4 \
-layerChangeTopLayer 4 \
-verbose
### std. rails for PDpll power domain
sroute \
-noBlockPins \
-noPadRings \
-noPadPins \
-noStripes \
-straightConnections { straightWithDrcClean straightWithChanges } \
-nets { VDDpll VSSsoc } \
-powerDomains { PDpll } \
-targetViaTopLayer 4 \
-crossoverViaTopLayer 4 \
-layerChangeTopLayer 4 \
-verbose
### Block Pin to connections for i_Module_U
selectInst i_Module_U
sroute \
-noPadRings \
-noCorePins \
-noPadPins \
-noStripes \
-blockPin { allPins } \
-blockPinMaxLayer 6 \
-targetViaTopLayer 6 \
-crossoverViaTopLayer 6 \
-straightConnections { straightWithDrcClean } \
-nets { VDDdvfs VSSsoc } \
-msgRate 1 \
-layerChangeTopLayer 6 \
-blocks named \
-blockNames { i_Module_U } \
-verbose
deselectAll
### Block Pin to connections for i_Module_B
selectInst i_Module_B
sroute \
-noPadRings \
-noCorePins \
-noPadPins \
-noStripes \
-blockPin { allPins } \
-blockPinMaxLayer 6 \
-targetViaTopLayer 6 \
-crossoverViaTopLayer 6 \
-straightConnections { straightWithDrcClean } \
-nets { VDDdvfs VSSsoc } \
-msgRate 1 \
-layerChangeTopLayer 6 \
-blocks named \
-blockNames { i_Module_B } \
-verbose
deselectAll
clearDrc
#####################################################################################
### Clean any DRC
#####################################################################################
deselectAll
uiSetTool cutWire
editCutWire -x1 254.0005 -y1 1631.617 -x2 254.0005 -y2 1622.78
editCutWire -x1 2311.0735 -y1 1629.6475 -x2 2311.0735 -y2 1622.9375
uiSetTool select
deselectAll
selectWire 254.0000 1627.2350 2311.0750 1627.5650 1 VDDdvfs
deleteSelectedFromFPlan
deselectAll
editCutWire -x1 2350.025 -y1 2277.41 -x2 2350.025 -y2 2224.374
uiSetTool select
editSelect -type Special -nets {VDDpll VSSsoc} -layers M1 -direction H -area 2374.235 2224.315 2766.79 2278.2 -shapes {FOLLOWPIN COREWIRE} -status {ROUTED FIXED}
deleteSelectedFromFPlan
deselectAll
######################################################################################
### sroute creates spacing/short violations with M1 hook-up to the ring around SMS block,
### work around is deleting all M1 rows from cell blockage area around SMC block
######################################################################################
deselectAll
setLayerPreference allM0 -isVisible 0
setLayerPreference allM1 -isVisible 1
setLayerPreference allM2 -isVisible 0
setLayerPreference allM3 -isVisible 0
setLayerPreference allM4 -isVisible 0
setLayerPreference allM5 -isVisible 0
setLayerPreference allM6 -isVisible 0
setLayerPreference allM7 -isVisible 0
setLayerPreference allM8 -isVisible 0
setLayerPreference allM9 -isVisible 0
setLayerPreference allM1Cont -isVisible 0
setLayerPreference allM2Cont -isVisible 0
setLayerPreference allM3Cont -isVisible 0
setLayerPreference allM4Cont -isVisible 0
setLayerPreference allM5Cont -isVisible 0
setLayerPreference allM6Cont -isVisible 0
setLayerPreference allM7Cont -isVisible 0
setLayerPreference allM8Cont -isVisible 0
setLayerPreference allM9Cont -isVisible 0
deselectAll
setLayerPreference inst -isVisible 0
deselectAll
windowSelect 263.911 1309.076 455.284 1565.786
windowToggleSelect 279.910 1324.698 440.067 1550.292
deleteSelectedFromFPlan
deselectAll
setLayerPreference inst -isVisible 1
setLayerPreference allM0 -isVisible 1
setLayerPreference allM1 -isVisible 1
setLayerPreference allM2 -isVisible 1
setLayerPreference allM3 -isVisible 1
setLayerPreference allM4 -isVisible 1
setLayerPreference allM5 -isVisible 1
setLayerPreference allM6 -isVisible 1
setLayerPreference allM7 -isVisible 1
setLayerPreference allM8 -isVisible 1
setLayerPreference allM9 -isVisible 1
setLayerPreference allM1Cont -isVisible 1
setLayerPreference allM2Cont -isVisible 1
setLayerPreference allM3Cont -isVisible 1
setLayerPreference allM4Cont -isVisible 1
setLayerPreference allM5Cont -isVisible 1
setLayerPreference allM6Cont -isVisible 1
setLayerPreference allM7Cont -isVisible 1
setLayerPreference allM8Cont -isVisible 1
setLayerPreference allM9Cont -isVisible 1
### Trim metal
editSelect -nets {VDDdvfs VSSsoc} -layer {M2 M4} -type Special
editTrim -selected
deselectAll
uiSetTool select