aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2022-09-20 13:42:51 +0200
committergatecat <gatecat@ds0.me>2022-09-20 13:42:51 +0200
commit415c097df8db5693c7acd171a4ee6cb5d7b23b94 (patch)
treee4a2faf30a93600feedfcddb9fc6c58beb99d19c /common
parent376cedd558f6aaf7fa460c4560cb5e45d41f0a62 (diff)
downloadnextpnr-415c097df8db5693c7acd171a4ee6cb5d7b23b94.tar.gz
nextpnr-415c097df8db5693c7acd171a4ee6cb5d7b23b94.tar.bz2
nextpnr-415c097df8db5693c7acd171a4ee6cb5d7b23b94.zip
router2: Reserve source wire, too
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'common')
-rw-r--r--common/route/router2.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/common/route/router2.cc b/common/route/router2.cc
index d054c9ef..ed1a6fe0 100644
--- a/common/route/router2.cc
+++ b/common/route/router2.cc
@@ -453,6 +453,13 @@ struct Router2
{
bool did_something = false;
WireId src = ctx->getNetinfoSourceWire(net);
+ {
+ auto &src_wd = wire_data(src);
+ if (src_wd.reserved_net != -1 && src_wd.reserved_net != net->udata)
+ log_error("attempting to reserve src wire '%s' for nets '%s' and '%s'\n", ctx->nameOfWire(src),
+ ctx->nameOf(nets_by_udata.at(src_wd.reserved_net)), ctx->nameOf(net));
+ src_wd.reserved_net = net->udata;
+ }
auto &usr = net->users.at(i);
for (auto sink : ctx->getNetinfoSinkWires(net, usr)) {
pool<WireId> rsv;