Skip to content

Commit 620c07d

Browse files
committed
dpl: better pdn patch resolution
Signed-off-by: osamahammad21 <[email protected]>
1 parent 22a4b4c commit 620c07d

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/dpl/src/infrastructure/Grid.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -154,10 +154,6 @@ void Grid::markBlocked(dbBlock* block)
154154
}
155155
wire_rect.moveDelta(-core.xMin(), -core.yMin());
156156
GridRect grid_rect = gridCovering(wire_rect);
157-
if (grid_rect.yhi - grid_rect.ylo < 3) {
158-
// probably a patch over a via, ignore
159-
return;
160-
}
161157
GridRect core{.xlo = GridX{0},
162158
.ylo = GridY{0},
163159
.xhi = GridX{row_site_count_},
@@ -178,12 +174,18 @@ void Grid::markBlocked(dbBlock* block)
178174
continue;
179175
}
180176
for (odb::dbSWire* swire : net->getSWires()) {
181-
for (odb::dbSBox* s : swire->getWires()) {
182-
if (!s->isVia()) {
183-
odb::Rect wire_rect = s->getBox();
184-
odb::dbTechLayer* tech_layer = s->getTechLayer();
185-
addBlockedLayers(wire_rect, tech_layer);
177+
for (odb::dbSBox* sbox : swire->getWires()) {
178+
if (sbox->isVia()) {
179+
// TODO: handle via
180+
continue;
181+
}
182+
if (sbox->getWireShapeType() == odb::dbWireShapeType::DRCFILL) {
183+
// TODO: handle patches
184+
continue;
186185
}
186+
odb::Rect wire_rect = sbox->getBox();
187+
odb::dbTechLayer* tech_layer = sbox->getTechLayer();
188+
addBlockedLayers(wire_rect, tech_layer);
187189
}
188190
}
189191
}

0 commit comments

Comments
 (0)