From 415c097df8db5693c7acd171a4ee6cb5d7b23b94 Mon Sep 17 00:00:00 2001 From: gatecat Date: Tue, 20 Sep 2022 13:42:51 +0200 Subject: [PATCH] router2: Reserve source wire, too Signed-off-by: gatecat --- common/route/router2.cc | 7 +++++++ 1 file changed, 7 insertions(+) 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 rsv;