Skip to content

Commit 33dcb95

Browse files
committed
pdn: do not consider the strap width in the halo check.
Restores the previous semantics. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
1 parent 8bf4755 commit 33dcb95

2 files changed

Lines changed: 2 additions & 17 deletions

File tree

src/pdn/src/grid.cpp

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1792,20 +1792,6 @@ void InstanceGrid::checkHalo() const
17921792
return;
17931793
}
17941794

1795-
// Followpin straps may extend half their width past the row boundary, so
1796-
// grow the rows by that amount before testing for an overlap.
1797-
int row_bloat = 0;
1798-
for (Grid* grid : getDomain()->getPDNGen()->getGrids()) {
1799-
if (this == grid) {
1800-
continue;
1801-
}
1802-
for (const auto& strap : grid->getStraps()) {
1803-
if (strap->type() == GridComponent::kFollowpin) {
1804-
row_bloat = std::max(strap->getWidth() / 2, row_bloat);
1805-
}
1806-
}
1807-
}
1808-
18091795
const odb::Rect inst_box = inst_->getBBox()->getBox();
18101796
const odb::Rect halo_box = applyHalo(inst_box, true, true, true);
18111797

@@ -1815,8 +1801,7 @@ void InstanceGrid::checkHalo() const
18151801
std::vector<odb::Rect> overlapping_rows;
18161802
std::string first_row;
18171803
for (auto* row : getBlock()->getRows()) {
1818-
const odb::Rect row_box
1819-
= row->getBBox().bloat(row_bloat, odb::Orientation2D::Vertical);
1804+
const odb::Rect row_box = row->getBBox();
18201805
if (!halo_box.overlaps(row_box) || inst_box.overlaps(row_box)) {
18211806
continue;
18221807
}

src/pdn/test/sky130_spm_halo_too_big.ok

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ The NOWIREEXTENSIONATPIN statement will be ignored. See file sky130_spm/delayed_
99
[INFO ODB-0131] Created 309 components and 668 component-terminals.
1010
[INFO ODB-0132] Created 2 special nets and 804 connections.
1111
[INFO ODB-0133] Created 20 nets and 49 connections.
12-
[ERROR PDN-0008] macro - dsa\[0\] halo overlaps row ROW_1_2 (and 20 other row(s)); reduce the halo to at most "10.0000 10.0000 5.3750 6.3150".
12+
[ERROR PDN-0008] macro - dsa\[0\] halo overlaps row ROW_1_2 (and 20 other row(s)); reduce the halo to at most "10.0000 10.0000 5.3750 6.5550".
1313
PDN-0008

0 commit comments

Comments
 (0)