Skip to content

Commit

Permalink
pdn: correct the instance obstruction calculation
Browse files Browse the repository at this point in the history
Use max(halo, min_space) rather than halo + min_space to bloat the instance.
This was causing gf12/tinyRocket to fail due to false strap / obs overlap.

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
  • Loading branch information
maliberty committed Oct 10, 2023
1 parent ea3dff0 commit 2690920
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions src/pdn/src/grid.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1347,11 +1347,13 @@ ShapeTreeMap InstanceGrid::getInstanceObstructions(
for (auto* ob : master->getObstructions()) {
odb::Rect obs_rect = ob->getBox();

// add min spacing
// add max of min spacing and the halo
auto* layer = ob->getTechLayer();
obs_rect.bloat(layer->getSpacing(), obs_rect);
odb::Rect spacing_rect;
obs_rect.bloat(layer->getSpacing(), spacing_rect);
obs_rect = applyHalo(obs_rect, halo, true, true, true);

obs_rect.merge(spacing_rect);

transform.apply(obs_rect);
auto shape = std::make_shared<Shape>(layer, obs_rect, Shape::BLOCK_OBS);

Expand Down

0 comments on commit 2690920

Please sign in to comment.