From 75d2ce6a9274c16a3cd9c83179c2ba6c88c843a8 Mon Sep 17 00:00:00 2001 From: myrtle Date: Wed, 2 Oct 2024 22:36:57 +0200 Subject: [PATCH] heap: Fix ripup criterea (#1378) Signed-off-by: gatecat --- common/place/placer_heap.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/place/placer_heap.cc b/common/place/placer_heap.cc index b2ae6dbe84..940d1d714d 100644 --- a/common/place/placer_heap.cc +++ b/common/place/placer_heap.cc @@ -890,7 +890,7 @@ class HeAPPlacer total_iters_noreset++; if (total_iters > int(solve_cells.size())) { total_iters = 0; - ripup_radius = std::max(std::max(max_x, max_y), ripup_radius * 2); + ripup_radius = std::min(std::max(max_x, max_y), ripup_radius * 2); } if (total_iters_noreset > std::max(5000, 8 * int(ctx->cells.size()))) { @@ -995,7 +995,7 @@ class HeAPPlacer CellInfo *bound = ctx->getBoundBelCell(sz); if (bound != nullptr) { // Only rip up cells without constraints - if (bound->cluster != ClusterId()) + if (bound->cluster != ClusterId() || bound->belStrength > STRENGTH_WEAK) continue; ctx->unbindBel(bound->bel); }