Skip to content

Commit 5eb7751

Browse files
author
osamahammad21
committed
drt: skip min-area patching of shapes with fixed geometry
Signed-off-by: osamahammad21 <osama@precisioninno.com>
1 parent d950792 commit 5eb7751

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

src/drt/src/gc/FlexGC_main.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2113,6 +2113,16 @@ void FlexGCWorker::Impl::checkMetalShape_lef58Area(gcPin* pin,
21132113
if (!drcBox_.contains(bbox2)) {
21142114
return;
21152115
}
2116+
// Do not patch or mark shapes containing fixed geometry (e.g. a library pin
2117+
// or macro metal); the router must not modify foundry-clean fixed shapes.
2118+
// Mirrors the fixed-edge bail-out in checkMetalShape_minArea.
2119+
for (auto& edges : pin->getPolygonEdges()) {
2120+
for (auto& edge : edges) {
2121+
if (edge->isFixed()) {
2122+
return;
2123+
}
2124+
}
2125+
}
21162126
const bool is_rect = poly->size() == 4;
21172127
const auto curr_area = gtl::area(*poly);
21182128
if (is_rect) { // iterate through rectwidth constraints first

0 commit comments

Comments
 (0)