aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorAlessandro Comodi <acomodi@antmicro.com>2021-07-12 16:02:51 +0200
committerAlessandro Comodi <acomodi@antmicro.com>2021-07-12 16:45:08 +0200
commitd9668df818d801b0c24ae8c372c6e7149352a388 (patch)
tree5e96a5da2de786f174c85c7a2a60a572ccb36605 /common
parent24b7084feb6beecacbe447a15f9b2de04b14d685 (diff)
downloadnextpnr-d9668df818d801b0c24ae8c372c6e7149352a388.tar.gz
nextpnr-d9668df818d801b0c24ae8c372c6e7149352a388.tar.bz2
nextpnr-d9668df818d801b0c24ae8c372c6e7149352a388.zip
interchange: add constraints constraints application routine
Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
Diffstat (limited to 'common')
-rw-r--r--common/placer_heap.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/common/placer_heap.cc b/common/placer_heap.cc
index dbb8d36c..27144316 100644
--- a/common/placer_heap.cc
+++ b/common/placer_heap.cc
@@ -401,6 +401,14 @@ class HeAPPlacer
// Initial constraints placer
for (auto &cell_entry : ctx->cells) {
CellInfo *cell = cell_entry.second.get();
+
+ if (cell->bel != BelId()) {
+ if (ctx->verbose)
+ log_error("Cell \'%s\' (%s) has already been constrianed by arch implementation",
+ cell->name.c_str(ctx), cell->type.c_str(ctx));
+ continue;
+ }
+
auto loc = cell->attrs.find(ctx->id("BEL"));
if (loc != cell->attrs.end()) {
std::string loc_name = loc->second.as_string();