blob: a63430b98d45f1273ac08f897511ce5d8eabe70d [file] [log] [blame]
###########################################################################################
### Rings creations for Blocks and for power Domains
###########################################################################################
###########################################################################################
### Block Ring creation around the "UART" block on M4/M5
###########################################################################################
deselectAll
selectObject Module i_apb_subsystem/i_uart1
addRing \
-spacing_bottom 1 \
-width_left 3.2 \
-width_bottom 3.2 \
-width_top 3.2 \
-width_right 3.2 \
-spacing_top 1 \
-layer_bottom M5 \
-stacked_via_top_layer M5 \
-around power_domain \
-jog_distance 0.1 \
-offset_bottom 0.3 \
-layer_top M5 \
-threshold 0.1 \
-offset_left 0.3 \
-spacing_right 1 \
-spacing_left 1 \
-type block_rings \
-offset_right 0.3 \
-offset_top 0.3 \
-layer_right M4 \
-nets {VDDuart VSSsoc VDDdvfs} \
-stacked_via_bottom_layer M1 \
-layer_left M4 \
-snap_wire_center_to_grid Grid
deselectAll
###########################################################################################
### Block Ring creation around the PDw power domain on M4/M5
###########################################################################################
selectObject Group PDw
addRing \
-spacing_bottom 1.0 \
-width_left 4 \
-width_bottom 4 \
-width_top 4 \
-spacing_top 1.0 \
-layer_bottom M5 \
-stacked_via_top_layer M9 \
-width_right 4 \
-around power_domain \
-jog_distance 0.1 \
-offset_bottom 2 \
-layer_top M5 \
-threshold 0.1 \
-offset_left 4 \
-spacing_right 1.0 \
-spacing_left 1.0 \
-type block_rings \
-offset_right 4 \
-offset_top 4 \
-layer_right M4 \
-nets { VDDw VSSsoc VDDdvfs} \
-stacked_via_bottom_layer M1 \
-layer_left M4 \
-snap_wire_center_to_grid Grid
deselectAll
###########################################################################################
### Block Ring creation around the PDwakeup power domain on M4/M5
###########################################################################################
selectObject Group PDwakeup
addRing \
-spacing_bottom 1.0 \
-width_left 3.6 \
-width_bottom 3.6 \
-width_top 3.6 \
-spacing_top 1.0 \
-layer_bottom M5 \
-stacked_via_top_layer M5 \
-width_right 3.6 \
-around power_domain \
-jog_distance 0.1 \
-offset_bottom 1 \
-layer_top M5 \
-threshold 0.1 \
-offset_left 1 \
-spacing_right 1.0 \
-spacing_left 1.0 \
-type block_rings \
-offset_right 1 \
-offset_top 1 \
-layer_right M4 \
-nets {VDDwake VSSsoc VDDdvfs} \
-stacked_via_bottom_layer M1 \
-layer_left M4 \
-snap_wire_center_to_grid Grid
deselectAll
###########################################################################################
### Block Ring creation around the PLL macro on M4/M5
###########################################################################################
selectInst i_PLL
addRing \
-spacing_bottom 1.5 \
-width_left 4 \
-width_bottom 4 \
-width_top 10 \
-spacing_top 3.0 \
-layer_bottom M5 \
-stacked_via_top_layer M9 \
-width_right 4 \
-around selected \
-jog_distance 0.1 \
-offset_bottom 56 \
-layer_top M5 \
-threshold 0.1 \
-offset_left 60 \
-spacing_right 1.5 \
-spacing_left 1.5 \
-type block_rings \
-offset_right 4 \
-offset_top 20 \
-layer_right M4 \
-nets {VDDpll VSSsoc} \
-stacked_via_bottom_layer M1 \
-layer_left M4 \
-snap_wire_center_to_grid Grid
addRing \
-spacing_bottom 1.5 \
-width_left 5 \
-width_bottom 5 \
-snap_wire_center_to_grid Grid \
-width_top 5 \
-left 0 \
-top 0 \
-spacing_top 1.5 \
-layer_bottom M5 \
-stacked_via_top_layer M5 \
-width_right 5 \
-around selected \
-jog_distance 0.1 \
-offset_bottom 70 \
-layer_top M5 \
-threshold 0.1 \
-right 0 \
-offset_left 78 \
-spacing_right 1.5 \
-spacing_left 1.5 \
-type block_rings \
-offset_right 78 \
-offset_top 78 \
-layer_right M4 \
-nets VDDdvfs \
-stacked_via_bottom_layer M1 \
-layer_left M4
deselectAll
###########################################################################################
### pad to ring connection for PDw power domain
###########################################################################################
createObstruct 241.000 1820.000 262.000 2126.000
createObstruct 743.000 2729.000 2035.000 2756.000
sroute \
-noBlockPins \
-noPadRings \
-noCorePins \
-noStripes \
-padPinAllGeomsConnect \
-targetViaTopLayer 5 \
-crossoverViaTopLayer 5 \
-padPinMaxLayer 2 \
-straightConnections { straightWithDrcClean straightWithChanges } \
-nets {VDDw} \
-area { 185 185 2815 2815 }
selectObstruct 241.000 1820.000 262.000 2126.000 defObstructName
selectObstruct 743.000 2729.000 2035.00 2756.000 defObstructName
deleteSelectedFromFPlan
###########################################################################################
### Block Pin to Ring connection for "WILD_SUBSYSTEM"
###########################################################################################
sroute \
-blockPinRouteWithPinWidth \
-noPadRings \
-noCorePins \
-noPadPins \
-noStripes \
-straightConnections { straightWithDrcClean } \
-blockPinTarget { routeToRingOnly } \
-nets { VDDw VSSsoc } \
-blocks named \
-blockNames { i_Module_W }
###########################################################################################
### pad to ring connection for PLL
###########################################################################################
sroute \
-noBlockPins \
-noPadRings \
-noCorePins \
-noStripes \
-padPinAllGeomsConnect \
-padPinMaxLayer 2 \
-straightConnections { straightWithDrcClean straightWithChanges } \
-nets {VDDpll} \
-area { 185 185 2815 2815 }
###########################################################################################
### Block Pin to Ring connection for "PLL"
###########################################################################################
sroute \
-blockPinRouteWithPinWidth \
-noPadRings \
-noCorePins \
-noPadPins \
-noStripes \
-straightConnections { straightWithDrcClean } \
-blockPinTarget { routeToRingOnly } \
-nets { VDDpll VSSsoc } \
-blocks named \
-blockNames { i_PLL }
###########################################################################################
### Creation of core ring
###########################################################################################
###Adding Blockages over PLL to avoid wire editing
createRouteBlk 2335.000 2216.900 2810.0400 2809.9800 \
-layer 1 2 3 4 5 6 7 8 9
### Top level Core Ring creation on M4/M5
addRing \
-spacing_bottom 2 \
-width_left 11 \
-width_bottom 11 \
-snap_wire_center_to_grid Grid \
-width_top 11 \
-spacing_top 2 \
-layer_bottom M5 \
-stacked_via_top_layer M9 \
-width_right 11 \
-around core \
-jog_distance 0.1 \
-offset_bottom 2.5 \
-layer_top M5 \
-threshold 0.1 \
-offset_left 2.5 \
-spacing_right 2 \
-spacing_left 2 \
-offset_right 2.5 \
-offset_top 2.5 \
-layer_right M4 \
-nets {VSSsoc VDDdvfs} \
-stacked_via_bottom_layer M1 \
-layer_left M4
selectRouteBlk 2335.0000 2216.9000 2810.0400 2809.9800 defLayerBlkName 4
deleteSelectedFromFPlan
### Pad to Core Ring connection for "VDDdvfs"
sroute \
-noBlockPins \
-noPadRings \
-noCorePins \
-noStripes \
-padPinAllGeomsConnect \
-padPinMaxLayer 2 \
-straightConnections { straightWithDrcClean straightWithChanges } \
-nets {VDDdvfs} \
-area { 185 185 2815 2815 }
### Pad to Core Ring connection for "VSSsoc"
sroute \
-noBlockPins \
-noPadRings \
-noCorePins \
-noStripes \
-padPinAllGeomsConnect \
-padPinMaxLayer 2 \
-straightConnections { straightWithDrcClean straightWithChanges } \
-nets {VSSsoc} \
-area { 185 185 2815 2815 }
createRouteBlk 2335.000 2216.900 2810.0400 2809.9800 \
-layer 1 2 3 4 5 6 7 8 9
### Another set of Top level Core Ring creation on M4/M5
addRing \
-spacing_bottom 2 \
-width_left 11 \
-width_bottom 11 \
-snap_wire_center_to_grid Grid \
-width_top 11 \
-spacing_top 2 \
-layer_bottom M5 \
-stacked_via_top_layer M9 \
-width_right 11 \
-around core \
-jog_distance 0.1 \
-offset_bottom 28.5 \
-layer_top M5 \
-threshold 0.1 \
-offset_left 28.5 \
-spacing_right 2 \
-spacing_left 2 \
-offset_right 28.5 \
-offset_top 28.5 \
-layer_right M4 \
-nets {VSSsoc VDDdvfs} \
-stacked_via_bottom_layer M1 \
-layer_left M4
### Trimming floating wire
editSelect \
-type Special \
-layers M4
editTrim \
-selected
uiSetTool select
###########################################################################################
### Analog connections for PLL and PHY
###########################################################################################
###Remove Blockage over PLL
selectRouteBlk 2335.0000 2216.9000 2810.0400 2809.9800 defLayerBlkName 4
deleteSelectedFromFPlan
### For PLL
selectInst i_PLL
### Analog Power Ring creation for "PLL" block on M4
addRing \
-spacing_bottom 2 \
-width_left 5 \
-width_bottom 5 \
-width_top 5 \
-left 0 \
-top 0 \
-spacing_top 2 \
-layer_bottom M5 \
-stacked_via_top_layer M5 \
-width_right 5 \
-around selected \
-jog_distance 0.1 \
-offset_bottom 20 \
-bottom 0 \
-layer_top M5 \
-threshold 0.1 \
-offset_left 20 \
-spacing_right 2 \
-spacing_left 2 \
-type block_rings \
-offset_right 20 \
-offset_top 60 \
-layer_right M4 \
-nets {AGND1_H AGND0_H AVDD1_H AVDD0_H} \
-stacked_via_bottom_layer M1 \
-layer_left M4
deselectAll
### Analog Pad to Ring connection for "PLL" block
sroute \
-noBlockPins \
-noPadRings \
-noCorePins \
-noStripes \
-padPinAllGeomsConnect \
-targetViaTopLayer 5 \
-crossoverViaTopLayer 5 \
-straightConnections { straightWithDrcClean straightWithChanges } \
-area { 2770.6795 2802.326 2817.8185 2631.3315 } \
-nets { AGND1_H AGND0_H AVDD1_H AVDD0_H } \
-layerChangeTopLayer 4
### Analog Block Pin to Ring connection for "PLL" block
sroute \
-blockPinRouteWithPinWidth \
-noPadRings \
-noCorePins \
-noPadPins \
-noStripes \
-layerChangeBotLayer 4 \
-crossoverViaBottomLayer 4 \
-targetViaTopLayer 5 \
-crossoverViaTopLayer 5 \
-straightConnections { straightWithDrcClean straightWithChanges } \
-targetViaBottomLayer 4 \
-blockPinTarget { routeToRingOnly } \
-nets { AGND1_H AGND0_H AVDD1_H AVDD0_H } \
-layerChangeTopLayer 5 \
-blocks named \
-blockNames { i_PLL }
deselectAll
### Trimming floating wire
editSelect \
-nets {AGND1_H AGND0_H AVDD1_H AVDD0_H} \
-type Special
editTrim \
-selected
deselectAll
uiSetTool select
###Adding Blockages over PLL
createRouteBlk 2335.000 2216.900 2810.0400 2809.9800 \
-layer 1 2 3 4 5 6 7 8 9
selectInst i_Module_U
### Analog Power Ring creation for "PHY" block on M3
addRing \
-spacing_bottom 0.4 \
-width_left 6 \
-width_bottom 0.4 \
-snap_wire_center_to_grid Grid \
-width_top 0.4 \
-left 0 \
-top 0 \
-spacing_top 0.4 \
-layer_bottom M1 \
-stacked_via_top_layer M3 \
-width_right 6 \
-around shared_cluster \
-jog_distance 0.1 \
-offset_bottom 0.1 \
-bottom 0 \
-layer_top M1 \
-threshold 0.1 \
-offset_left 0.1 \
-spacing_right 3 \
-spacing_left 2 \
-type block_rings \
-offset_right 3 \
-offset_top 0.1 \
-layer_right M3 \
-nets {vssa vdda33 vdda25} \
-stacked_via_bottom_layer M1 \
-layer_left M2
deselectAll
### Analog Pad to Block Ring connection for "PHY" block
sroute \
-noBlockPins \
-noPadRings \
-noCorePins \
-noStripes \
-padPinAllGeomsConnect \
-targetViaTopLayer 3 \
-crossoverViaTopLayer 3 \
-straightConnections { straightWithDrcClean straightWithChanges } \
-area { 2743.0 495.0 2818.3 600.6 } \
-nets {vssa vdda33 vdda25}
deselectAll
### Block Analog "vssa" Pin to Ring connection for "PHY" block
sroute \
-noPadRings \
-noCorePins \
-noPadPins \
-noStripes \
-blockSides {right} \
-blockPinRouteWithPinWidth \
-straightConnections { straightWithChanges } \
-blockPinTarget { routeToRingOnly } \
-nets { vssa } \
-blocks named \
-blockNames {i_Module_U} \
-area {2753 258 2788 1074}
### Trimming floating wire
editSelect \
-nets {vssa} \
-layer {M3} \
-type Special
editTrim \
-selected
deselectAll
uiSetTool select
### Block Analog "vdda33" Pin to Ring connection for "PHY" block
sroute \
-noPadRings \
-noCorePins \
-noPadPins \
-noStripes \
-blockSides {right} \
-blockPinRouteWithPinWidth \
-straightConnections { straightWithChanges } \
-blockPinTarget { routeToRingOnly } \
-nets { vdda33 } \
-blocks named \
-blockNames {i_Module_U } \
-area {2753 258 2788 1074}
### Trimming floating wire
editSelect \
-nets {vdda33} \
-layer {M3} \
-type Special
editTrim \
-selected
deselectAll
uiSetTool select
### Block Analog "vdda25" Pin to Ring connection for "PHY" block
sroute \
-noPadRings \
-noCorePins \
-noPadPins \
-noStripes \
-blockSides {right} \
-blockPinRouteWithPinWidth \
-straightConnections { straightWithChanges } \
-blockPinTarget { routeToRingOnly } \
-nets { vdda25 } \
-blocks named \
-blockNames { i_Module_U } \
-area {2753 258 2788 1074} \
-blockPinMinLayer 2
### Trimming floating wire
editSelect \
-nets {vdda25} \
-layer {M3} \
-type Special
editTrim \
-selected
deselectAll
uiSetTool select
### Top level Core Ring creation on M8/M9
addRing \
-spacing_bottom 2 \
-width_left 11 \
-width_bottom 11 \
-width_top 11 \
-spacing_top 2 \
-layer_bottom M9 \
-stacked_via_top_layer M9 \
-width_right 11 \
-around core \
-jog_distance 0.1 \
-offset_bottom 2.5 \
-layer_top M9 \
-threshold 0.1 \
-offset_left 2.5 \
-spacing_right 2 \
-spacing_left 2 \
-offset_right 2.5 \
-offset_top 2.5 \
-layer_right M8 \
-nets {VSSsoc VDDdvfs} \
-stacked_via_bottom_layer M8 \
-layer_left M8
### Another set of Top level Core Ring creation on M8/M9
addRing \
-spacing_bottom 2 \
-width_left 11 \
-width_bottom 11 \
-width_top 11 \
-spacing_top 2 \
-layer_bottom M9 \
-stacked_via_top_layer M9 \
-width_right 11 \
-around core \
-jog_distance 0.1 \
-offset_bottom 28.5 \
-layer_top M9 \
-threshold 0.1 \
-offset_left 28.5 \
-spacing_right 2 \
-spacing_left 2 \
-offset_right 28.5 \
-offset_top 28.5 \
-layer_right M8 \
-nets {VSSsoc VDDdvfs} \
-stacked_via_bottom_layer M8 \
-layer_left M8
##########################################################################
### Ring and stripe creation for PDrom power domain
##########################################################################
deselectAll
selectObject Group PDrom
setAddStripeOption \
-extend_to_closest_target ring \
-switch_cellname { CDN_RING_SW CDN_RING_FILLER }
### Block Ring creation around "PDROM" block on M4/M5
addRing \
-spacing_bottom 0.5 \
-width_left 1.5 \
-width_bottom 1.5 \
-width_top 1.5 \
-spacing_top 0.5 \
-layer_bottom M5 \
-stacked_via_top_layer M5 \
-width_right 1.5 \
-around power_domain \
-jog_distance 0.1 \
-offset_bottom 1 \
-layer_top M5 \
-threshold 0.1 \
-offset_left 1 \
-spacing_right 0.5 \
-spacing_left 0.5 \
-type block_rings \
-offset_right 0.5 \
-offset_top 0.5 \
-layer_right M4 \
-nets {VDDrom VSSsoc} \
-stacked_via_bottom_layer M1 \
-layer_left M4 \
-snap_wire_center_to_grid Grid
### Power Stripe creation for "PDROM" on M8
addStripe \
-block_ring_top_layer_limit M9 \
-max_same_layer_jog_length 0.8 \
-over_power_domain 1 \
-padcore_ring_bottom_layer_limit M4 \
-set_to_set_distance 35 \
-stacked_via_top_layer M9 \
-padcore_ring_top_layer_limit M9 \
-spacing 3 \
-xleft_offset 13 \
-xright_offset 1 \
-merge_stripes_value 0.1 \
-layer M8 \
-block_ring_bottom_layer_limit M4 \
-width 4.8 \
-nets {VDDrom VSSsoc} \
-stacked_via_bottom_layer M4 \
-snap_wire_center_to_grid Grid
deselectAll
### Add connections to ROM rings this will make better connections
addStripe \
-snap_wire_center_to_grid Grid \
-set_to_set_distance 35 \
-stacked_via_top_layer M5 \
-spacing 1.6 \
-xleft_offset 3 \
-xright_offset 5 \
-create_pins 0 \
-layer M4 \
-width 6.4 \
-nets {VDDrom} \
-stacked_via_bottom_layer M1 \
-area {2404.045 1464.000 2713.000 1559.500} \
-allow_jog_block_ring 0 \
-allow_jog_padcore_ring 0
### Trimming floating wire
editSelect \
-nets {VDDrom} \
-layer M4 \
-type Special
editTrim \
-selected
deselectAll
##########################################################################
### PDsmc power domain stripe creation
##########################################################################
selectObject Group PDsmc
### Vertical Power Stripe creation for "SMS" block on M4
addStripe \
-block_ring_top_layer_limit M5 \
-max_same_layer_jog_length 0.8 \
-over_power_domain 1 \
-padcore_ring_bottom_layer_limit M1 \
-set_to_set_distance 70 \
-skip_via_on_pin {} \
-stacked_via_top_layer M5 \
-padcore_ring_top_layer_limit M5 \
-spacing 1.6 \
-xleft_offset 0.905 \
-xright_offset 10 \
-merge_stripes_value 0.1 \
-layer M4 \
-block_ring_bottom_layer_limit M1 \
-width 6.4 \
-nets {VSSsoc VDDdvfs VDDsmc} \
-stacked_via_bottom_layer M1 \
-snap_wire_center_to_grid Grid
### Horizontal Power Stripe creation for "SMS" block on M5
addStripe \
-block_ring_top_layer_limit M5 \
-max_same_layer_jog_length 0.8 \
-over_power_domain 1 \
-padcore_ring_bottom_layer_limit M1 \
-set_to_set_distance 35 \
-skip_via_on_pin {} \
-stacked_via_top_layer M5 \
-padcore_ring_top_layer_limit M5 \
-spacing 1.6 \
-merge_stripes_value 0.1 \
-direction horizontal \
-layer M5 \
-block_ring_bottom_layer_limit M1 \
-width 6.4 \
-nets {VSSsoc VDDdvfs VDDsmc} \
-stacked_via_bottom_layer M1 \
-ytop_offset 2 \
-ybottom_offset 6 \
-snap_wire_center_to_grid Grid
deselectAll
##########################################################################
### PDuart power domain stripe creation
##########################################################################
selectObject Module i_apb_subsystem/i_uart1
### Vertical "VDDdvfs" Power Stripe creation for "UART" block on M4 to connect to PSO cells
addStripe \
-block_ring_top_layer_limit M9 \
-max_same_layer_jog_length 0.8 \
-over_power_domain 1 \
-padcore_ring_bottom_layer_limit M1 \
-set_to_set_distance 70 \
-skip_via_on_pin {} \
-stacked_via_top_layer M9 \
-padcore_ring_top_layer_limit M9 \
-spacing 2 \
-xleft_offset 20 \
-merge_stripes_value 0.1 \
-layer M4 \
-block_ring_bottom_layer_limit M1 \
-width 9.6 \
-nets {VDDdvfs} \
-stacked_via_bottom_layer M1 \
-snap_wire_center_to_grid Grid
### Vertical Power Stripe creation for "UART" block on M4
addStripe \
-block_ring_top_layer_limit M9 \
-max_same_layer_jog_length 0.8 \
-over_power_domain 1 \
-padcore_ring_bottom_layer_limit M1 \
-set_to_set_distance 70 \
-skip_via_on_pin {} \
-stacked_via_top_layer M9 \
-padcore_ring_top_layer_limit M9 \
-spacing 1.6 \
-xleft_offset 36 \
-merge_stripes_value 0.1 \
-layer M4 \
-block_ring_bottom_layer_limit M1 \
-width 6.4 \
-nets {VSSsoc VDDuart} \
-stacked_via_bottom_layer M1 \
-snap_wire_center_to_grid Grid
### Horizontal Power Stripe creation for "UART" block on M5
addStripe \
-block_ring_top_layer_limit M5 \
-max_same_layer_jog_length 0.8 \
-over_power_domain 1 \
-padcore_ring_bottom_layer_limit M1 \
-set_to_set_distance 35 \
-skip_via_on_pin {} \
-stacked_via_top_layer M5 \
-padcore_ring_top_layer_limit M5 \
-spacing 1.6 \
-merge_stripes_value 0.1 \
-direction horizontal \
-layer M5 \
-block_ring_bottom_layer_limit M1 \
-width 6.4 \
-nets {VSSsoc VDDdvfs VDDuart} \
-stacked_via_bottom_layer M1 \
-ytop_offset 2 \
-ybottom_offset 6 \
-snap_wire_center_to_grid Grid
deselectAll
##########################################################################
### PDwakeup power domain stripe creation
##########################################################################
selectObject Group PDwakeup
### Vertical Power Stripe creation for "WAKEUP" block on M4
addStripe \
-block_ring_top_layer_limit M5 \
-max_same_layer_jog_length 0.8 \
-over_power_domain 1 \
-padcore_ring_bottom_layer_limit M1 \
-set_to_set_distance 35 \
-stacked_via_top_layer M5 \
-padcore_ring_top_layer_limit M5 \
-spacing 1.5 \
-xleft_offset 0.905 \
-xright_offset 1 \
-merge_stripes_value 0.1 \
-layer M4 \
-block_ring_bottom_layer_limit M1 \
-width 6.4 \
-nets {VSSsoc VDDwake} \
-stacked_via_bottom_layer M1 \
-snap_wire_center_to_grid Grid
deselectAll
### Top level strap creations with layers M4/M5
deselectAll
selectInst i_PLL
### Top level Horizontal Power Stripe creation on M5
addStripe \
-extend_to design_boundary \
-area_blockage { 262 266 262 1285 1965 1285 1965 917.8 1990.6 917.8 1990.6 266 } \
-block_ring_top_layer_limit M5 \
-max_same_layer_jog_length 0.8 \
-snap_wire_center_to_grid Grid \
-padcore_ring_bottom_layer_limit M1 \
-set_to_set_distance 35 \
-ybottom_offset 1 \
-break_at_selected_blocks 1 \
-stacked_via_top_layer M5 \
-padcore_ring_top_layer_limit M5 \
-spacing 1.6 \
-merge_stripes_value 0.1 \
-allow_jog_block_ring 0 \
-create_pins 0 \
-direction horizontal \
-layer M5 \
-block_ring_bottom_layer_limit M1 \
-ytop_offset 5 \
-width 6.4 \
-nets {VSSsoc VDDdvfs} \
-stacked_via_bottom_layer M1
createRouteBlk 244.000 2751.000 253.000 2756.000 \
-layer 4
### Top level Vertical Power Stripe creation only in the Design Are on M4
addStripe \
-block_ring_top_layer_limit M5 \
-max_same_layer_jog_length 0.8 \
-snap_wire_center_to_grid Grid \
-padcore_ring_bottom_layer_limit M2 \
-set_to_set_distance 35 \
-break_at_selected_blocks 1 \
-stacked_via_top_layer M5 \
-padcore_ring_top_layer_limit M5 \
-spacing 1.6 \
-xleft_offset 1 \
-xright_offset 5 \
-merge_stripes_value 0.1 \
-create_pins 0 \
-layer M4 \
-block_ring_bottom_layer_limit M4 \
-width 6.4 \
-nets {VSSsoc VDDdvfs} \
-stacked_via_bottom_layer M1 \
-area {245.000 245.000 2755.00 2755.000} \
-area_blockage { 262 266 262 1285 1965 1285 1965 917.8 1990.6 917.8 1990.6 266 } \
-allow_jog_block_ring 0 \
-allow_jog_padcore_ring 0
deselectAll
selectRouteBlk 244.000 2751.000 253.000 2756.000 defLayerBlkName 4
deleteSelectedFromFPlan
deselectAll
### Top level Vertical Power Stripe creation only in the extended design boundary are on M6
addStripe \
-extend_to design_boundary \
-block_ring_top_layer_limit M5 \
-max_same_layer_jog_length 0.8 \
-snap_wire_center_to_grid Grid \
-padcore_ring_bottom_layer_limit M5 \
-set_to_set_distance 35 \
-stacked_via_top_layer M9 \
-padcore_ring_top_layer_limit M9 \
-spacing 1.6 \
-xleft_offset 1 \
-xright_offset 5 \
-merge_stripes_value 0.1 \
-create_pins 0 \
-layer M6 \
-block_ring_bottom_layer_limit M4 \
-width 6.4 \
-nets {VSSsoc VDDdvfs} \
-stacked_via_bottom_layer M5 \
-area_blockage {245.000 260.400 2755.00 2740.500}
deselectAll
### Trimming floating wire
editSelect \
-type Special \
-layers M6
editTrim \
-selected
deselectAll
uiSetTool select
deselectAll
### Top level Horizontal Power Stripe creation on M9
addStripe \
-area { 193 245 2807 2755 } \
-block_ring_top_layer_limit M9 \
-max_same_layer_jog_length 0.8 \
-snap_wire_center_to_grid Grid \
-padcore_ring_bottom_layer_limit M5 \
-set_to_set_distance 35 \
-stacked_via_top_layer M9 \
-padcore_ring_top_layer_limit M9 \
-spacing 1.6 \
-merge_stripes_value 0.1 \
-direction horizontal \
-layer M9 \
-block_ring_bottom_layer_limit M5 \
-width 6.4 \
-nets {VSSsoc VDDdvfs} \
-stacked_via_bottom_layer M5 \
-allow_jog_block_ring 0 \
-ytop_offset 18 \
-ybottom_offset 18
deselectAll
### Add M4 straps b/w memories
### M4/M5 power ring creation for memories this will help in reducing IR drop b/w memories
selectInst i_D1TCM/i_sram_core_0
selectInst i_ITCM/i_sram_core
selectInst i_D0TCM/i_sram_core_0
selectInst i_D1TCM/i_sram_core_1
selectInst i_D0TCM/i_sram_core_1
selectInst i_sram_subsystem/i_2_sram_voltage_island/i_1_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_1_sram_voltage_island/i_0_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_2_sram_voltage_island/i_0_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_1_sram_voltage_island/i_1_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_2_sram_voltage_island/i_2_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_0_sram_voltage_island/i_0_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_1_sram_voltage_island/i_2_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_0_sram_voltage_island/i_1_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_1_sram_voltage_island/i_3_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_0_sram_voltage_island/i_2_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_3_sram_voltage_island/i_1_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_0_sram_voltage_island/i_3_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_2_sram_voltage_island/i_3_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_3_sram_voltage_island/i_3_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_3_sram_voltage_island/i_0_SRAM_2kx32_wrap/i_sram_core
selectInst i_sram_subsystem/i_3_sram_voltage_island/i_2_SRAM_2kx32_wrap/i_sram_core
createRouteBlk 597.500 1287.250 601.500 1291.000 \
-layer 4
### Block Ring creation around above selected memories on M4/M5; This is done to improve IR drop and to avoid DRC's
addRing \
-spacing_bottom 0.5 \
-width_left 3 \
-width_bottom 1.5 \
-snap_wire_center_to_grid Grid \
-width_top 1.5 \
-left 0 \
-spacing_top 0.5 \
-layer_bottom M5 \
-stacked_via_top_layer M9 \
-width_right 3 \
-around shared_cluster \
-jog_distance 0.8 \
-offset_bottom 0.1 \
-bottom 0 \
-layer_top M5 \
-threshold 0.1 \
-right 0 \
-offset_left 0.1 \
-spacing_right 1.0 \
-spacing_left 1.0 \
-type block_rings \
-offset_right 0.1 \
-offset_top 0.1 \
-layer_right M4 \
-nets {VSSsoc VDDdvfs} \
-rectangle 1 \
-stacked_via_bottom_layer M1 \
-layer_left M4
deselectAll
selectRouteBlk 597.500 1287.250 601.500 1291.000 defLayerBlkName 4
deleteSelectedFromFPlan
deselectAll
### M8 routing blockage to avoid shorts b/w M8 Vs M4 on memory
### M8 vertical stripe creation, there is a short with via cross-over b/w M8/M4 b/w memories, as a work around routing blockage is placed
createRouteBlk 885.888 577.447 894.6395 593.892 \
-layer 8
setAddStripeOption \
-domain_offset_from_core 1
selectObject Group PDdvfs
selectObject Group PDw
### Top level Vertical Stripe creation on M8
addStripe \
-block_ring_top_layer_limit M9 \
-max_same_layer_jog_length 0.8 \
-over_power_domain 1 \
-snap_wire_center_to_grid Grid \
-padcore_ring_bottom_layer_limit M5 \
-set_to_set_distance 35 \
-stacked_via_top_layer M9 \
-padcore_ring_top_layer_limit M9 \
-spacing 1.6 \
-xleft_offset 54 \
-xright_offset 25 \
-merge_stripes_value 0.1 \
-layer M8 \
-block_ring_bottom_layer_limit M5 \
-width 6.4 \
-nets {VSSsoc VDDdvfs} \
-stacked_via_bottom_layer M5 \
-allow_jog_block_ring 0
deselectAll
selectRouteBlk 885.8900 577.4450 894.6400 593.8900 defLayerBlkName 8
deleteSelectedFromFPlan
deselectAll
### Trimming floating wire
editSelect \
-type Special \
-layers {M5 M8 M9}
editTrim \
-selected
uiSetTool select
deselectAll
### VDDwake connection
### Vertical Stripe creation for "VDDwake" net of "WAKEUP" block on M4
addStripe \
-area { 2750 1604 2763.600 1105.600 } \
-block_ring_top_layer_limit M5 \
-snap_wire_center_to_grid Grid \
-set_to_set_distance 10 \
-xleft_offset 2 \
-stacked_via_top_layer M5 \
-spacing 1.5 \
-direction vertical \
-layer M4 \
-block_ring_bottom_layer_limit M4 \
-width 8 \
-nets {VDDwake} \
-stacked_via_bottom_layer M1
createObstruct 2727.4815 1101.834 2755.7265 1138.149
### Pad to VDDwake stripe connection on M1/M2
sroute \
-noBlockPins \
-noPadRings \
-noCorePins \
-noStripes \
-padPinAllGeomsConnect \
-targetViaTopLayer 5 \
-crossoverViaTopLayer 5 \
-straightConnections { straightWithDrcClean straightWithChanges } \
-area { 2745.6 1145.5 2824.3 1104.6 } \
-nets {VDDwake} \
-layerChangeTopLayer 5
### Horizontal Stripe which connects vertical VDDwake stripe to the Pads on M5
addStripe \
-area { 2706.1 1595.795 2754.900 1605.795 } \
-block_ring_top_layer_limit M5 \
-snap_wire_center_to_grid Grid \
-set_to_set_distance 10 \
-ybottom_offset 1 \
-stacked_via_top_layer M5 \
-spacing 2.0 \
-direction horizontal \
-layer M5 \
-block_ring_bottom_layer_limit M4 \
-width 8 \
-nets {VDDwake} \
-stacked_via_bottom_layer M4
selectObstruct 2727.4000 1101.8000 2755.8000 1139.6000 defObstructName
deleteSelectedFromFPlan
### Remove Blockage over PLL
selectRouteBlk 2335.0000 2216.9000 2810.0400 2809.9800 defLayerBlkName 4
deleteSelectedFromFPlan
clearDrc
### Below is a fix for DRCs
uiSetTool select
editSelect \
-type Special \
-layers M4 \
-direction V \
-area 2439.005 1094.975 2716.32 1104.520 \
-status {ROUTED FIXED}
editTrim \
-selected
deselectAll