From 228cbf77d0e6573883c03331b5ce6dfecee65c93 Mon Sep 17 00:00:00 2001 From: David Shah Date: Thu, 11 Oct 2018 11:50:56 +0100 Subject: [PATCH] placer: Fix conflicts during constraint legalisation Signed-off-by: David Shah --- common/place_common.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/common/place_common.cc b/common/place_common.cc index 120e5e00..da8ab37d 100644 --- a/common/place_common.cc +++ b/common/place_common.cc @@ -237,6 +237,12 @@ class ConstraintLegaliseWorker return false; } } + // Don't place at tiles where any strongly bound Bels exist, as we might need to rip them up later + for (auto tilebel : ctx->getBelsByTile(loc.x, loc.y)) { + CellInfo *tcell = ctx->getBoundBelCell(tilebel); + if (tcell && tcell->belStrength >= STRENGTH_STRONG) + return false; + } usedLocations.insert(loc); for (auto child : cell->constr_children) { IncreasingDiameterSearch xSearch, ySearch, zSearch;