bug fixed on removing undriven pins (direct connection between clbs) from cb

This commit is contained in:
tangxifan 2020-04-15 20:41:15 -06:00
parent 2ffd174e6a
commit 72e8824a87
1 changed files with 8 additions and 0 deletions

View File

@ -373,6 +373,14 @@ RRGSB build_rr_gsb(const DeviceContext& vpr_device_ctx,
ix, iy, IPIN, ipin_rr_node_grid_side); ix, iy, IPIN, ipin_rr_node_grid_side);
/* Fill the ipin nodes of RRGSB */ /* Fill the ipin nodes of RRGSB */
for (const RRNodeId& inode : temp_ipin_rr_nodes) { 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 /* Do not consider IPINs that are directly connected by an OPIN
* they are supposed to be handled by direct connection * they are supposed to be handled by direct connection
*/ */