aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-05-15 13:22:49 +0100
committergatecat <gatecat@ds0.me>2021-05-15 14:54:33 +0100
commitf31889847462509c450e30f739bb2f2e2109546a (patch)
tree080502f291ecd305f9a5014d3c4bfc835dbed566 /common
parent7fbfd98b8a1cd36d80fa9b7aa3e529c5a510f7e1 (diff)
downloadnextpnr-f31889847462509c450e30f739bb2f2e2109546a.tar.gz
nextpnr-f31889847462509c450e30f739bb2f2e2109546a.tar.bz2
nextpnr-f31889847462509c450e30f739bb2f2e2109546a.zip
router2: Hacky workaround for slow Cyclone V convergence
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'common')
-rw-r--r--common/router2.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/common/router2.cc b/common/router2.cc
index cbed0f69..d189cd68 100644
--- a/common/router2.cc
+++ b/common/router2.cc
@@ -835,9 +835,6 @@ struct Router2
// Ripup failed arcs to start with
// Check if arc is already legally routed
if (check_arc_routing(net, i, j)) {
-#if 0
- ROUTE_LOG_DBG("Arc '%s' (user %zu, arc %zu) already routed skipping.\n", ctx->nameOf(net), i, j);
-#endif
continue;
}
@@ -904,10 +901,13 @@ struct Router2
++net_data.fail_count;
if ((net_data.fail_count % 3) == 0) {
// Every three times a net fails to route, expand the bounding box to increase the search space
+#ifndef ARCH_MISTRAL
+ // This patch seems to make thing worse for CycloneV, as it slows down the resolution of TD congestion, disable it
net_data.bb.x0 = std::max(net_data.bb.x0 - 1, 0);
net_data.bb.y0 = std::max(net_data.bb.y0 - 1, 0);
net_data.bb.x1 = std::min(net_data.bb.x1 + 1, ctx->getGridDimX());
net_data.bb.y1 = std::min(net_data.bb.y1 + 1, ctx->getGridDimY());
+#endif
}
}
}