diff options
author | gatecat <gatecat@ds0.me> | 2021-03-30 14:44:18 +0100 |
---|---|---|
committer | gatecat <gatecat@ds0.me> | 2021-03-30 15:28:19 +0100 |
commit | 8863b962fdb095dca06025cac6e8e639a57b8344 (patch) | |
tree | 626f2496a90a5493fbb0958f26e8402b8c91c261 /common/placer1.cc | |
parent | 99298d0aba162255308f478c6909945c742f1da0 (diff) | |
download | nextpnr-8863b962fdb095dca06025cac6e8e639a57b8344.tar.gz nextpnr-8863b962fdb095dca06025cac6e8e639a57b8344.tar.bz2 nextpnr-8863b962fdb095dca06025cac6e8e639a57b8344.zip |
interchange: Fix illegal placements
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'common/placer1.cc')
-rw-r--r-- | common/placer1.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/common/placer1.cc b/common/placer1.cc index c2698ad9..1f940dac 100644 --- a/common/placer1.cc +++ b/common/placer1.cc @@ -552,7 +552,9 @@ class SAPlacer add_move_cell(moveChange, other_cell, newBel); } - if (!ctx->isBelLocationValid(newBel) || ((other_cell != nullptr && !ctx->isBelLocationValid(oldBel)))) { + // Always check both the new and old locations; as in some cases of dedicated routing ripping up a cell can deny + // use of a dedicated path and thus make a site illegal + if (!ctx->isBelLocationValid(newBel) || !ctx->isBelLocationValid(oldBel)) { ctx->unbindBel(newBel); if (other_cell != nullptr) ctx->unbindBel(oldBel); |