aboutsummaryrefslogtreecommitdiffstats
path: root/nexus/global.cc
diff options
context:
space:
mode:
Diffstat (limited to 'nexus/global.cc')
-rw-r--r--nexus/global.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/nexus/global.cc b/nexus/global.cc
index 62633df9..53306e21 100644
--- a/nexus/global.cc
+++ b/nexus/global.cc
@@ -136,10 +136,19 @@ struct NexusGlobalRouter
}
}
+ bool is_relaxed_sink(const PortRef &sink) const
+ {
+ // This DPHY clock port can't be routed without going through some general routing
+ if (sink.cell->type == id_DPHY_CORE && sink.port == id_URXCKINE)
+ return true;
+ return false;
+ }
+
void route_clk_net(NetInfo *net)
{
for (size_t i = 0; i < net->users.size(); i++)
- backwards_bfs_route(net, i, 1000000, true, [&](PipId pip) { return global_pip_filter(pip); });
+ backwards_bfs_route(net, i, 1000000, true,
+ [&](PipId pip) { return is_relaxed_sink(net->users.at(i)) || global_pip_filter(pip); });
log_info(" routed net '%s' using global resources\n", ctx->nameOf(net));
}