aboutsummaryrefslogtreecommitdiffstats
path: root/common/place_common.cc
diff options
context:
space:
mode:
Diffstat (limited to 'common/place_common.cc')
-rw-r--r--common/place_common.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/common/place_common.cc b/common/place_common.cc
index b3eb4267..73a320d0 100644
--- a/common/place_common.cc
+++ b/common/place_common.cc
@@ -304,7 +304,7 @@ class ConstraintLegaliseWorker
// Set the strength to locked on all cells in chain
void lockdown_chain(CellInfo *root)
{
- root->belStrength = STRENGTH_LOCKED;
+ root->belStrength = STRENGTH_STRONG;
for (auto child : root->constr_children)
lockdown_chain(child);
}
@@ -380,7 +380,7 @@ class ConstraintLegaliseWorker
rippedCells.insert(confl_cell->name);
}
}
- ctx->bindBel(target, ctx->cells.at(cp.first).get(), STRENGTH_LOCKED);
+ ctx->bindBel(target, ctx->cells.at(cp.first).get(), STRENGTH_STRONG);
rippedCells.erase(cp.first);
}
for (auto cp : solution) {
@@ -529,4 +529,12 @@ int get_constraints_distance(const Context *ctx, const CellInfo *cell)
return dist;
}
+bool check_cell_bel_region(const CellInfo *cell, BelId bel)
+{
+ if (cell->region != nullptr && cell->region->constr_bels && !cell->region->bels.count(bel))
+ return false;
+ else
+ return true;
+}
+
NEXTPNR_NAMESPACE_END