Skip to content

Commit 695c053

Browse files
committed
[lib] now add rc data for CHANX and CHANY nodes in tileable rr graph
1 parent e62d84a commit 695c053

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

vpr/src/tileable_rr_graph/tileable_rr_graph_node_builder.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -746,6 +746,7 @@ static void load_one_chan_rr_nodes_basic_info(const RRGraphView& rr_graph,
746746
RRGraphBuilder& rr_graph_builder,
747747
vtr::vector<RRNodeId, RRSwitchId>& rr_node_driver_switches,
748748
std::map<RRNodeId, std::vector<size_t>>& rr_node_track_ids,
749+
std::vector<t_rr_rc_data>& rr_rc_data,
749750
const size_t& layer,
750751
const vtr::Point<size_t>& chan_coordinate,
751752
const t_rr_type& chan_type,
@@ -815,6 +816,11 @@ static void load_one_chan_rr_nodes_basic_info(const RRGraphView& rr_graph,
815816
rr_node_track_ids[rr_node_id].push_back(itrack);
816817
rr_graph_builder.add_node_track_num(rr_node_id, chan_coordinate, itrack);
817818
}
819+
/* Finish node RC attributes */
820+
size_t seg_id = chan_details.get_track_segment_id(itrack);
821+
float node_R = rr_graph.node_length(rr_node_id) * segment_infs[seg_id].Rmetal;
822+
float node_C = rr_graph.node_length(rr_node_id) * segment_infs[seg_id].Cmetal;
823+
rr_graph_builder.set_node_rc_index(rr_node_id, NodeRCIndex(find_create_rr_rc_data(node_R, node_C, rr_rc_data)));
818824
/* Finish here, go to next */
819825
}
820826

@@ -862,6 +868,7 @@ static void load_chanx_rr_nodes_basic_info(const RRGraphView& rr_graph,
862868
RRGraphBuilder& rr_graph_builder,
863869
vtr::vector<RRNodeId, RRSwitchId>& rr_node_driver_switches,
864870
std::map<RRNodeId, std::vector<size_t>>& rr_node_track_ids,
871+
std::vector<t_rr_rc_data>& rr_rc_data,
865872
const DeviceGrid& grids,
866873
const size_t& layer,
867874
const size_t& chan_width,
@@ -964,6 +971,7 @@ static void load_chanx_rr_nodes_basic_info(const RRGraphView& rr_graph,
964971
rr_graph_builder,
965972
rr_node_driver_switches,
966973
rr_node_track_ids,
974+
rr_rc_data,
967975
layer, chanx_coord, CHANX,
968976
chanx_details,
969977
segment_infs,
@@ -984,6 +992,7 @@ static void load_chany_rr_nodes_basic_info(const RRGraphView& rr_graph,
984992
RRGraphBuilder& rr_graph_builder,
985993
vtr::vector<RRNodeId, RRSwitchId>& rr_node_driver_switches,
986994
std::map<RRNodeId, std::vector<size_t>>& rr_node_track_ids,
995+
std::vector<t_rr_rc_data>& rr_rc_data,
987996
const DeviceGrid& grids,
988997
const size_t& layer,
989998
const size_t& chan_width,
@@ -1090,6 +1099,7 @@ static void load_chany_rr_nodes_basic_info(const RRGraphView& rr_graph,
10901099
rr_graph_builder,
10911100
rr_node_driver_switches,
10921101
rr_node_track_ids,
1102+
rr_rc_data,
10931103
layer, chany_coord, CHANY,
10941104
chany_details,
10951105
segment_infs,
@@ -1170,6 +1180,7 @@ void create_tileable_rr_graph_nodes(const RRGraphView& rr_graph,
11701180
rr_graph_builder,
11711181
rr_node_driver_switches,
11721182
rr_node_track_ids,
1183+
rr_rc_data,
11731184
grids, layer,
11741185
chan_width.x(),
11751186
segment_inf_x,
@@ -1182,6 +1193,7 @@ void create_tileable_rr_graph_nodes(const RRGraphView& rr_graph,
11821193
rr_graph_builder,
11831194
rr_node_driver_switches,
11841195
rr_node_track_ids,
1196+
rr_rc_data,
11851197
grids, layer,
11861198
chan_width.y(),
11871199
segment_inf_y,

0 commit comments

Comments
 (0)