Skip to content

Commit a66331b

Browse files
authored
Merge pull request #9003 from gadfort/pdn-expand-report
pdn: add edge to pad connect report and sort connects in report
2 parents f922f96 + 51466fa commit a66331b

File tree

5 files changed

+89
-6
lines changed

5 files changed

+89
-6
lines changed

src/pdn/src/grid.cpp

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -453,9 +453,21 @@ void Grid::report() const
453453
}
454454
}
455455
if (!connect_.empty()) {
456+
std::vector<Connect*> connect;
457+
connect.reserve(connect_.size());
458+
for (const auto& conn : connect_) {
459+
connect.push_back(conn.get());
460+
}
461+
std::ranges::sort(connect, [](const Connect* l, const Connect* r) {
462+
int l_lower = l->getLowerLayer()->getRoutingLevel();
463+
int l_upper = l->getUpperLayer()->getRoutingLevel();
464+
int r_lower = r->getLowerLayer()->getRoutingLevel();
465+
int r_upper = r->getUpperLayer()->getRoutingLevel();
466+
return std::tie(l_lower, l_upper) < std::tie(r_lower, r_upper);
467+
});
456468
logger->report("Connect:");
457-
for (const auto& connect : connect_) {
458-
connect->report();
469+
for (Connect* conn : connect) {
470+
conn->report();
459471
}
460472
}
461473
if (!pin_layers_.empty()) {

src/pdn/src/straps.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -883,6 +883,9 @@ void PadDirectConnectionStraps::report() const
883883
break;
884884
}
885885
logger->report(" Connection type: {}", connection_type);
886+
if (type_ == ConnectionType::Edge) {
887+
logger->report(" Edge: {}", pad_edge_.getString());
888+
}
886889
}
887890

888891
std::string PadDirectConnectionStraps::getName() const

src/pdn/test/report.ok

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,207 +26,275 @@ Straps:
2626
Type: Pad connect
2727
Pin: u_vss_pll/VSS
2828
Connection type: Edge
29+
Edge: NORTH
2930
Type: Pad connect
3031
Pin: u_vss_9/VSS
3132
Connection type: Edge
33+
Edge: EAST
3234
Type: Pad connect
3335
Pin: u_vss_8/VSS
3436
Connection type: Edge
37+
Edge: EAST
3538
Type: Pad connect
3639
Pin: u_vss_7/VSS
3740
Connection type: Edge
41+
Edge: SOUTH
3842
Type: Pad connect
3943
Pin: u_vss_6/VSS
4044
Connection type: Edge
45+
Edge: SOUTH
4146
Type: Pad connect
4247
Pin: u_vss_5/VSS
4348
Connection type: Edge
49+
Edge: SOUTH
4450
Type: Pad connect
4551
Pin: u_vss_4/VSS
4652
Connection type: Edge
53+
Edge: SOUTH
4754
Type: Pad connect
4855
Pin: u_vss_32/VSS
4956
Connection type: Edge
57+
Edge: WEST
5058
Type: Pad connect
5159
Pin: u_vss_31/VSS
5260
Connection type: Edge
61+
Edge: WEST
5362
Type: Pad connect
5463
Pin: u_vss_30/VSS
5564
Connection type: Edge
65+
Edge: WEST
5666
Type: Pad connect
5767
Pin: u_vss_3/VSS
5868
Connection type: Edge
69+
Edge: SOUTH
5970
Type: Pad connect
6071
Pin: u_vss_29/VSS
6172
Connection type: Edge
73+
Edge: WEST
6274
Type: Pad connect
6375
Pin: u_vss_28/VSS
6476
Connection type: Edge
77+
Edge: WEST
6578
Type: Pad connect
6679
Pin: u_vss_27/VSS
6780
Connection type: Edge
81+
Edge: WEST
6882
Type: Pad connect
6983
Pin: u_vss_26/VSS
7084
Connection type: Edge
85+
Edge: WEST
7186
Type: Pad connect
7287
Pin: u_vss_25/VSS
7388
Connection type: Edge
89+
Edge: WEST
7490
Type: Pad connect
7591
Pin: u_vss_24/VSS
7692
Connection type: Edge
93+
Edge: NORTH
7794
Type: Pad connect
7895
Pin: u_vss_23/VSS
7996
Connection type: Edge
97+
Edge: NORTH
8098
Type: Pad connect
8199
Pin: u_vss_22/VSS
82100
Connection type: Edge
101+
Edge: NORTH
83102
Type: Pad connect
84103
Pin: u_vss_21/VSS
85104
Connection type: Edge
105+
Edge: NORTH
86106
Type: Pad connect
87107
Pin: u_vss_20/VSS
88108
Connection type: Edge
109+
Edge: NORTH
89110
Type: Pad connect
90111
Pin: u_vss_2/VSS
91112
Connection type: Edge
113+
Edge: SOUTH
92114
Type: Pad connect
93115
Pin: u_vss_19/VSS
94116
Connection type: Edge
117+
Edge: NORTH
95118
Type: Pad connect
96119
Pin: u_vss_18/VSS
97120
Connection type: Edge
121+
Edge: NORTH
98122
Type: Pad connect
99123
Pin: u_vss_17/VSS
100124
Connection type: Edge
125+
Edge: NORTH
101126
Type: Pad connect
102127
Pin: u_vss_16/VSS
103128
Connection type: Edge
129+
Edge: EAST
104130
Type: Pad connect
105131
Pin: u_vss_15/VSS
106132
Connection type: Edge
133+
Edge: EAST
107134
Type: Pad connect
108135
Pin: u_vss_14/VSS
109136
Connection type: Edge
137+
Edge: EAST
110138
Type: Pad connect
111139
Pin: u_vss_13/VSS
112140
Connection type: Edge
141+
Edge: EAST
113142
Type: Pad connect
114143
Pin: u_vss_12/VSS
115144
Connection type: Edge
145+
Edge: EAST
116146
Type: Pad connect
117147
Pin: u_vss_11/VSS
118148
Connection type: Edge
149+
Edge: EAST
119150
Type: Pad connect
120151
Pin: u_vss_10/VSS
121152
Connection type: Edge
153+
Edge: EAST
122154
Type: Pad connect
123155
Pin: u_vss_1/VSS
124156
Connection type: Edge
157+
Edge: SOUTH
125158
Type: Pad connect
126159
Pin: u_vss_0/VSS
127160
Connection type: Edge
161+
Edge: SOUTH
128162
Type: Pad connect
129163
Pin: u_vdd_pll/VDD
130164
Connection type: Edge
165+
Edge: NORTH
131166
Type: Pad connect
132167
Pin: u_vdd_9/VDD
133168
Connection type: Edge
169+
Edge: EAST
134170
Type: Pad connect
135171
Pin: u_vdd_8/VDD
136172
Connection type: Edge
173+
Edge: EAST
137174
Type: Pad connect
138175
Pin: u_vdd_7/VDD
139176
Connection type: Edge
177+
Edge: SOUTH
140178
Type: Pad connect
141179
Pin: u_vdd_6/VDD
142180
Connection type: Edge
181+
Edge: SOUTH
143182
Type: Pad connect
144183
Pin: u_vdd_5/VDD
145184
Connection type: Edge
185+
Edge: SOUTH
146186
Type: Pad connect
147187
Pin: u_vdd_4/VDD
148188
Connection type: Edge
189+
Edge: SOUTH
149190
Type: Pad connect
150191
Pin: u_vdd_32/VDD
151192
Connection type: Edge
193+
Edge: WEST
152194
Type: Pad connect
153195
Pin: u_vdd_31/VDD
154196
Connection type: Edge
197+
Edge: WEST
155198
Type: Pad connect
156199
Pin: u_vdd_30/VDD
157200
Connection type: Edge
201+
Edge: WEST
158202
Type: Pad connect
159203
Pin: u_vdd_3/VDD
160204
Connection type: Edge
205+
Edge: SOUTH
161206
Type: Pad connect
162207
Pin: u_vdd_29/VDD
163208
Connection type: Edge
209+
Edge: WEST
164210
Type: Pad connect
165211
Pin: u_vdd_28/VDD
166212
Connection type: Edge
213+
Edge: WEST
167214
Type: Pad connect
168215
Pin: u_vdd_27/VDD
169216
Connection type: Edge
217+
Edge: WEST
170218
Type: Pad connect
171219
Pin: u_vdd_26/VDD
172220
Connection type: Edge
221+
Edge: WEST
173222
Type: Pad connect
174223
Pin: u_vdd_25/VDD
175224
Connection type: Edge
225+
Edge: WEST
176226
Type: Pad connect
177227
Pin: u_vdd_24/VDD
178228
Connection type: Edge
229+
Edge: NORTH
179230
Type: Pad connect
180231
Pin: u_vdd_23/VDD
181232
Connection type: Edge
233+
Edge: NORTH
182234
Type: Pad connect
183235
Pin: u_vdd_22/VDD
184236
Connection type: Edge
237+
Edge: NORTH
185238
Type: Pad connect
186239
Pin: u_vdd_21/VDD
187240
Connection type: Edge
241+
Edge: NORTH
188242
Type: Pad connect
189243
Pin: u_vdd_20/VDD
190244
Connection type: Edge
245+
Edge: NORTH
191246
Type: Pad connect
192247
Pin: u_vdd_2/VDD
193248
Connection type: Edge
249+
Edge: SOUTH
194250
Type: Pad connect
195251
Pin: u_vdd_19/VDD
196252
Connection type: Edge
253+
Edge: NORTH
197254
Type: Pad connect
198255
Pin: u_vdd_18/VDD
199256
Connection type: Edge
257+
Edge: NORTH
200258
Type: Pad connect
201259
Pin: u_vdd_17/VDD
202260
Connection type: Edge
261+
Edge: NORTH
203262
Type: Pad connect
204263
Pin: u_vdd_16/VDD
205264
Connection type: Edge
265+
Edge: EAST
206266
Type: Pad connect
207267
Pin: u_vdd_15/VDD
208268
Connection type: Edge
269+
Edge: EAST
209270
Type: Pad connect
210271
Pin: u_vdd_14/VDD
211272
Connection type: Edge
273+
Edge: EAST
212274
Type: Pad connect
213275
Pin: u_vdd_13/VDD
214276
Connection type: Edge
277+
Edge: EAST
215278
Type: Pad connect
216279
Pin: u_vdd_12/VDD
217280
Connection type: Edge
281+
Edge: EAST
218282
Type: Pad connect
219283
Pin: u_vdd_11/VDD
220284
Connection type: Edge
285+
Edge: EAST
221286
Type: Pad connect
222287
Pin: u_vdd_10/VDD
223288
Connection type: Edge
289+
Edge: EAST
224290
Type: Pad connect
225291
Pin: u_vdd_1/VDD
226292
Connection type: Edge
293+
Edge: SOUTH
227294
Type: Pad connect
228295
Pin: u_vdd_0/VDD
229296
Connection type: Edge
297+
Edge: SOUTH
230298
Type: Followpin
231299
Layer: metal1
232300
Width: 0.1700

src/pdn/test/report.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@
4545
design, layer="metal9", width=1.40, pitch=40.0, offset=2.0, extend_to_core_ring=True
4646
)
4747

48-
pdn_aux.add_pdn_connect(design, layers=["metal1", "metal4"])
4948
pdn_aux.add_pdn_connect(design, layers=["metal4", "metal7"])
50-
pdn_aux.add_pdn_connect(design, layers=["metal7", "metal8"])
49+
pdn_aux.add_pdn_connect(design, layers=["metal1", "metal4"])
5150
pdn_aux.add_pdn_connect(design, layers=["metal8", "metal9"])
51+
pdn_aux.add_pdn_connect(design, layers=["metal7", "metal8"])
5252

5353
pdngen.report()

src/pdn/test/report.tcl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ add_pdn_stripe -layer metal8 -width 1.40 -pitch 40.0 -offset 2.0 -extend_to_core
2525
add_pdn_stripe -layer metal9 -width 1.40 -pitch 40.0 -offset 2.0 -extend_to_core_ring
2626

2727

28-
add_pdn_connect -layers {metal1 metal4}
2928
add_pdn_connect -layers {metal4 metal7}
30-
add_pdn_connect -layers {metal7 metal8}
29+
add_pdn_connect -layers {metal1 metal4}
3130
add_pdn_connect -layers {metal8 metal9}
31+
add_pdn_connect -layers {metal7 metal8}
3232

3333
pdngen -report_only

0 commit comments

Comments
 (0)