From 72e8824a874a80d02ab860df01423372f1b594fa Mon Sep 17 00:00:00 2001 From: tangxifan Date: Wed, 15 Apr 2020 20:41:15 -0600 Subject: [PATCH] bug fixed on removing undriven pins (direct connection between clbs) from cb --- openfpga/src/annotation/annotate_rr_graph.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/openfpga/src/annotation/annotate_rr_graph.cpp b/openfpga/src/annotation/annotate_rr_graph.cpp index eba72933f..644f4541c 100644 --- a/openfpga/src/annotation/annotate_rr_graph.cpp +++ b/openfpga/src/annotation/annotate_rr_graph.cpp @@ -373,6 +373,14 @@ RRGSB build_rr_gsb(const DeviceContext& vpr_device_ctx, ix, iy, IPIN, ipin_rr_node_grid_side); /* Fill the ipin nodes of RRGSB */ for (const RRNodeId& inode : temp_ipin_rr_nodes) { + /* Skip those has no configurable outgoing, they should NOT appear in the GSB connection + * This is for those grid output pins used by direct connections + */ + if (0 == std::distance(vpr_device_ctx.rr_graph.node_configurable_in_edges(inode).begin(), + vpr_device_ctx.rr_graph.node_configurable_in_edges(inode).end())) { + continue; + } + /* Do not consider IPINs that are directly connected by an OPIN * they are supposed to be handled by direct connection */