@@ -746,6 +746,7 @@ static void load_one_chan_rr_nodes_basic_info(const RRGraphView& rr_graph,
746
746
RRGraphBuilder& rr_graph_builder,
747
747
vtr::vector<RRNodeId, RRSwitchId>& rr_node_driver_switches,
748
748
std::map<RRNodeId, std::vector<size_t >>& rr_node_track_ids,
749
+ std::vector<t_rr_rc_data>& rr_rc_data,
749
750
const size_t & layer,
750
751
const vtr::Point <size_t >& chan_coordinate,
751
752
const t_rr_type& chan_type,
@@ -815,6 +816,11 @@ static void load_one_chan_rr_nodes_basic_info(const RRGraphView& rr_graph,
815
816
rr_node_track_ids[rr_node_id].push_back (itrack);
816
817
rr_graph_builder.add_node_track_num (rr_node_id, chan_coordinate, itrack);
817
818
}
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)));
818
824
/* Finish here, go to next */
819
825
}
820
826
@@ -862,6 +868,7 @@ static void load_chanx_rr_nodes_basic_info(const RRGraphView& rr_graph,
862
868
RRGraphBuilder& rr_graph_builder,
863
869
vtr::vector<RRNodeId, RRSwitchId>& rr_node_driver_switches,
864
870
std::map<RRNodeId, std::vector<size_t >>& rr_node_track_ids,
871
+ std::vector<t_rr_rc_data>& rr_rc_data,
865
872
const DeviceGrid& grids,
866
873
const size_t & layer,
867
874
const size_t & chan_width,
@@ -964,6 +971,7 @@ static void load_chanx_rr_nodes_basic_info(const RRGraphView& rr_graph,
964
971
rr_graph_builder,
965
972
rr_node_driver_switches,
966
973
rr_node_track_ids,
974
+ rr_rc_data,
967
975
layer, chanx_coord, CHANX,
968
976
chanx_details,
969
977
segment_infs,
@@ -984,6 +992,7 @@ static void load_chany_rr_nodes_basic_info(const RRGraphView& rr_graph,
984
992
RRGraphBuilder& rr_graph_builder,
985
993
vtr::vector<RRNodeId, RRSwitchId>& rr_node_driver_switches,
986
994
std::map<RRNodeId, std::vector<size_t >>& rr_node_track_ids,
995
+ std::vector<t_rr_rc_data>& rr_rc_data,
987
996
const DeviceGrid& grids,
988
997
const size_t & layer,
989
998
const size_t & chan_width,
@@ -1090,6 +1099,7 @@ static void load_chany_rr_nodes_basic_info(const RRGraphView& rr_graph,
1090
1099
rr_graph_builder,
1091
1100
rr_node_driver_switches,
1092
1101
rr_node_track_ids,
1102
+ rr_rc_data,
1093
1103
layer, chany_coord, CHANY,
1094
1104
chany_details,
1095
1105
segment_infs,
@@ -1170,6 +1180,7 @@ void create_tileable_rr_graph_nodes(const RRGraphView& rr_graph,
1170
1180
rr_graph_builder,
1171
1181
rr_node_driver_switches,
1172
1182
rr_node_track_ids,
1183
+ rr_rc_data,
1173
1184
grids, layer,
1174
1185
chan_width.x (),
1175
1186
segment_inf_x,
@@ -1182,6 +1193,7 @@ void create_tileable_rr_graph_nodes(const RRGraphView& rr_graph,
1182
1193
rr_graph_builder,
1183
1194
rr_node_driver_switches,
1184
1195
rr_node_track_ids,
1196
+ rr_rc_data,
1185
1197
grids, layer,
1186
1198
chan_width.y (),
1187
1199
segment_inf_y,
0 commit comments