diff --git a/vpr/src/tileable_rr_graph/tileable_rr_graph_edge_builder.cpp b/vpr/src/tileable_rr_graph/tileable_rr_graph_edge_builder.cpp index e974db8c8b3..471f68ad49c 100644 --- a/vpr/src/tileable_rr_graph/tileable_rr_graph_edge_builder.cpp +++ b/vpr/src/tileable_rr_graph/tileable_rr_graph_edge_builder.cpp @@ -139,7 +139,7 @@ void build_rr_graph_edges(const RRGraphView& rr_graph, /* Create a GSB object */ const RRGSB& rr_gsb = build_one_tileable_rr_gsb(grids, rr_graph, device_chan_width, segment_inf_x, segment_inf_y, - layer, gsb_coord); + layer, gsb_coord, perimeter_cb); /* adapt the track_to_ipin_lookup for the GSB nodes */ t_track2pin_map track2ipin_map; /* [0..track_gsb_side][0..num_tracks][ipin_indices] */ diff --git a/vpr/src/tileable_rr_graph/tileable_rr_graph_gsb.cpp b/vpr/src/tileable_rr_graph/tileable_rr_graph_gsb.cpp index 79f4166e190..01682243754 100644 --- a/vpr/src/tileable_rr_graph/tileable_rr_graph_gsb.cpp +++ b/vpr/src/tileable_rr_graph/tileable_rr_graph_gsb.cpp @@ -623,7 +623,8 @@ RRGSB build_one_tileable_rr_gsb(const DeviceGrid& grids, const std::vector& segment_inf_x, const std::vector& segment_inf_y, const size_t& layer, - const vtr::Point& gsb_coordinate) { + const vtr::Point& gsb_coordinate, + const bool& perimeter_cb) { /* Create an object to return */ RRGSB rr_gsb; @@ -719,7 +720,7 @@ RRGSB build_one_tileable_rr_gsb(const DeviceGrid& grids, break; case BOTTOM: /* BOTTOM = 2*/ /* For the bording, we should take special care */ - if (gsb_coordinate.y() == 0) { + if (!perimeter_cb && gsb_coordinate.y() == 0) { rr_gsb.clear_one_side(side_manager.get_side()); break; } @@ -749,7 +750,7 @@ RRGSB build_one_tileable_rr_gsb(const DeviceGrid& grids, break; case LEFT: /* LEFT = 3 */ /* For the bording, we should take special care */ - if (gsb_coordinate.x() == 0) { + if (!perimeter_cb && gsb_coordinate.x() == 0) { rr_gsb.clear_one_side(side_manager.get_side()); break; } diff --git a/vpr/src/tileable_rr_graph/tileable_rr_graph_gsb.h b/vpr/src/tileable_rr_graph/tileable_rr_graph_gsb.h index 4d3bbfdcc67..ca17517a8d9 100644 --- a/vpr/src/tileable_rr_graph/tileable_rr_graph_gsb.h +++ b/vpr/src/tileable_rr_graph/tileable_rr_graph_gsb.h @@ -47,7 +47,8 @@ RRGSB build_one_tileable_rr_gsb(const DeviceGrid& grids, const std::vector& segment_inf_x, const std::vector& segment_inf_y, const size_t& layer, - const vtr::Point& gsb_coordinate); + const vtr::Point& gsb_coordinate, + const bool& perimeter_cb); void build_edges_for_one_tileable_rr_gsb(RRGraphBuilder& rr_graph_builder, const RRGSB& rr_gsb,