diff options
Diffstat (limited to 'common/place/place_common.cc')
-rw-r--r-- | common/place/place_common.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/common/place/place_common.cc b/common/place/place_common.cc index e03fca55..c2fc3b7d 100644 --- a/common/place/place_common.cc +++ b/common/place/place_common.cc @@ -293,6 +293,8 @@ class ConstraintLegaliseWorker { if (cell->cluster != ClusterId() && ctx->getClusterRootCell(cell->cluster) != cell) return true; // Only process chain roots + if (cell->isPseudo()) + return true; if (constraints_satisfied(cell)) { if (cell->cluster != ClusterId()) lockdown_chain(cell); @@ -415,7 +417,7 @@ class ConstraintLegaliseWorker { log_info("Legalising relative constraints...\n"); for (auto &cell : ctx->cells) { - oldLocations[cell.first] = ctx->getBelLocation(cell.second->bel); + oldLocations[cell.first] = cell.second->getLocation(); } for (auto &cell : ctx->cells) { bool res = legalise_cell(cell.second.get()); @@ -448,6 +450,8 @@ bool legalise_relative_constraints(Context *ctx) { return ConstraintLegaliseWork int get_constraints_distance(const Context *ctx, const CellInfo *cell) { int dist = 0; + if (cell->isPseudo()) + return 0; if (cell->bel == BelId()) return 100000; Loc loc = ctx->getBelLocation(cell->bel); |