@@ -29,18 +29,20 @@ if {[info exists power_grid_defined]} {
2929# # Power settings
3030# #########################################################################
3131# Core Power Ring
32- # # Offset from core to power ring
33- set pgcrOffset 2
32+ # # Space between pads and core -> used for power ring
33+ set PowRingSpace 35
3434# # Spacing must meet TM2 rules
35- set pgcrSpacing 6
35+ set pgcrSpacing 4
3636# # Width must meet TM2 rules
37- set pgcrWidth 10
37+ set pgcrWidth 8
38+ # # Offset from core to power ring
39+ set pgcrOffset [expr ($PowRingSpace - $pgcrSpacing - 2 * $pgcrWidth ) / 2]
3840
39- # TopMetal2 Core Power Grid
40- set tpg2Width 6 ; # arbitrary number
41- set tpg2Pitch 204 ; # multiple of pad-pitch
42- set tpg2Spacing 60; # big enough to skip over a pad
43- set tpg2Offset 97; # offset from leftX of core
41+ # TopMetal1 Core Power Grid
42+ set tpg1Width 3 ; # arbitrary number
43+ set tpg1Pitch 228 ; # multiple of pad-pitch
44+ set tpg1Spacing 60; # big enough to skip over a pad
45+ set tpg1Offset 97; # offset from leftX of core
4446
4547# Macro Power Rings -> M3 and M2
4648# # Spacing must be larger than pitch of M2/M3
@@ -52,7 +54,7 @@ set mprOffsetX 2.4
5254set mprOffsetY 0.6
5355
5456# macro power grid (stripes on TopMetal1/TopMetal2 depending on orientation)
55- set mpgWidth 6
57+ set mpgWidth 3
5658set mpgSpacing 4
5759set mpgOffset 20; # arbitrary
5860
@@ -83,18 +85,18 @@ proc sram_power { name macro } {
8385 set stripe_dist [expr $stripe_dist /2]
8486 }
8587
86- add_pdn_stripe -grid ${name} _grid -layer {TopMetal1 } -width $mpgWidth -spacing $mpgSpacing \
88+ add_pdn_stripe -grid ${name} _grid -layer {Metal5 } -width $mpgWidth -spacing $mpgSpacing \
8789 -pitch $stripe_dist -offset $mpgOffset -extend_to_core_ring -starts_with POWER -snap_to_grid
8890
8991 # Connection of Macro Power Ring to standard-cell rails
90- add_pdn_connect -grid ${name} _grid -layers {Metal3 Metal1}
92+ add_pdn_connect -grid ${name} _grid -layers {Metal4 Metal2}
93+ add_pdn_connect -grid ${name} _grid -layers {Metal4 Metal1}
9194 # Connection of Stripes on Macro to Macro Power Ring
92- add_pdn_connect -grid ${name} _grid -layers {TopMetal1 Metal3}
93- add_pdn_connect -grid ${name} _grid -layers {TopMetal1 Metal4}
95+ add_pdn_connect -grid ${name} _grid -layers {Metal5 Metal4}
9496 # Connection of Stripes on Macro to Macro Power Pins
9597 # add_pdn_connect -grid ${name}_grid -layers {TopMetal1 Metal4}
9698 # Connection of Stripes on Macro to Core Power Stripes
97- add_pdn_connect -grid ${name} _grid -layers {TopMetal2 TopMetal1}
99+ add_pdn_connect -grid ${name} _grid -layers {TopMetal1 Metal5 }
98100}
99101
100102
@@ -112,28 +114,27 @@ add_pdn_ring -grid {core_grid} \
112114 -connect_to_pad_layers TopMetal2
113115
114116# M1 Standardcell Rows (tracks)
115- add_pdn_stripe -grid {core_grid} -layer {Metal1} -width {0.44 } -offset {0} \
117+ add_pdn_stripe -grid {core_grid} -layer {Metal1} -width {0.32 } -offset {0} \
116118 -followpins -extend_to_core_ring
117119
118120
119121sram_power " sram_256x64" " RM_IHPSG13_1P_256x64_c2_bm_bist"
120122
121123# Top power grid
122- # Top 2 Stripe
123- add_pdn_stripe -grid {core_grid} -layer {TopMetal2 } -width $tpg2Width \
124- -pitch $tpg2Pitch -spacing $tpg2Spacing -offset $tpg2Offset \
125- -extend_to_core_ring -snap_to_grid -number_of_straps 7
124+ # Top 1 Stripe
125+ add_pdn_stripe -grid {core_grid} -layer {TopMetal1 } -width $tpg1Width \
126+ -pitch $tpg1Pitch -spacing $tpg1Spacing -offset $tpg1Offset \
127+ -extend_to_core_ring -snap_to_grid -number_of_straps 7
126128
127129# "The add_pdn_connect command is used to define which layers in the power grid are to be connected together.
128130# During power grid generation, vias will be added for overlapping power nets and overlapping ground nets."
129- # M1 is declared vertical but tracks still horizontal
130- # vertical TopMetal2 to below horizonals (M1 has horizontal power tracks)
131- add_pdn_connect -grid {core_grid} -layers {TopMetal2 Metal1}
132- add_pdn_connect -grid {core_grid} -layers {TopMetal2 Metal2}
133- add_pdn_connect -grid {core_grid} -layers {TopMetal2 Metal4}
134- # add_pdn_connect -grid {core_grid} -layers {TopMetal2 TopMetal1}
131+ # vertical TopMetal1 to below horizonals (M1 has horizontal power tracks)
132+ add_pdn_connect -grid {core_grid} -layers {TopMetal1 Metal1}
133+ add_pdn_connect -grid {core_grid} -layers {TopMetal1 Metal3}
134+ add_pdn_connect -grid {core_grid} -layers {TopMetal1 Metal5}
135135# power ring to standard cell rails
136136add_pdn_connect -grid {core_grid} -layers {Metal3 Metal2}
137+ add_pdn_connect -grid {core_grid} -layers {Metal2 Metal1}
137138
138139
139140# #########################################################################
0 commit comments