aboutsummaryrefslogtreecommitdiffstats
path: root/common/place_common.cc
diff options
context:
space:
mode:
authorDavid Shah <davey1576@gmail.com>2018-10-17 11:14:27 +0100
committerGitHub <noreply@github.com>2018-10-17 11:14:27 +0100
commitb53a4862db99e41f16c06425f314a1a398a21985 (patch)
treedbe277f6d9487eab64715e4c14ce9be230820c38 /common/place_common.cc
parent529a595157a2eef24f8529b0de0c504a40ed503b (diff)
parent1cde2080902c25d2a59e8ebb5b0b23a90f693e8e (diff)
downloadnextpnr-b53a4862db99e41f16c06425f314a1a398a21985.tar.gz
nextpnr-b53a4862db99e41f16c06425f314a1a398a21985.tar.bz2
nextpnr-b53a4862db99e41f16c06425f314a1a398a21985.zip
Merge pull request #89 from YosysHQ/ecp5_bram
ECP5 BRAM support
Diffstat (limited to 'common/place_common.cc')
-rw-r--r--common/place_common.cc6
1 files changed, 6 insertions, 0 deletions
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;