@@ -815,19 +815,19 @@ static void power_usage_routing(t_power_usage* power_usage,
815
815
t_trace* trace;
816
816
817
817
for (trace = route_ctx.trace [net_id].head ; trace != nullptr ; trace = trace->next ) {
818
- auto node = & device_ctx.rr_nodes [trace->index ];
818
+ auto node = device_ctx.rr_nodes [trace->index ];
819
819
t_rr_node_power* node_power = &rr_node_power[trace->index ];
820
820
821
821
if (node_power->visited ) {
822
822
continue ;
823
823
}
824
824
825
- for (t_edge_size edge_idx = 0 ; edge_idx < node-> num_edges (); edge_idx++) {
826
- if (node-> edge_sink_node (edge_idx) != OPEN) {
827
- auto next_node = & device_ctx.rr_nodes [node-> edge_sink_node (edge_idx)];
828
- t_rr_node_power* next_node_power = &rr_node_power[node-> edge_sink_node (edge_idx)];
825
+ for (t_edge_size edge_idx = 0 ; edge_idx < node. num_edges (); edge_idx++) {
826
+ if (node. edge_sink_node (edge_idx) != OPEN) {
827
+ auto next_node = device_ctx.rr_nodes [node. edge_sink_node (edge_idx)];
828
+ t_rr_node_power* next_node_power = &rr_node_power[node. edge_sink_node (edge_idx)];
829
829
830
- switch (next_node-> type ()) {
830
+ switch (next_node. type ()) {
831
831
case CHANX:
832
832
case CHANY:
833
833
case IPIN:
@@ -837,9 +837,9 @@ static void power_usage_routing(t_power_usage* power_usage,
837
837
next_node_power->in_dens [next_node_power->num_inputs ] = clb_net_density (node_power->net_num );
838
838
next_node_power->in_prob [next_node_power->num_inputs ] = clb_net_prob (node_power->net_num );
839
839
next_node_power->num_inputs ++;
840
- if (next_node_power->num_inputs > next_node-> fan_in ()) {
840
+ if (next_node_power->num_inputs > next_node. fan_in ()) {
841
841
VTR_LOG (" %d %d\n " , next_node_power->num_inputs ,
842
- next_node-> fan_in ());
842
+ next_node. fan_in ());
843
843
fflush (nullptr );
844
844
VTR_ASSERT (0 );
845
845
}
@@ -857,7 +857,7 @@ static void power_usage_routing(t_power_usage* power_usage,
857
857
/* Calculate power of all routing entities */
858
858
for (size_t rr_node_idx = 0 ; rr_node_idx < device_ctx.rr_nodes .size (); rr_node_idx++) {
859
859
t_power_usage sub_power_usage;
860
- auto node = & device_ctx.rr_nodes [rr_node_idx];
860
+ auto node = device_ctx.rr_nodes [rr_node_idx];
861
861
t_rr_node_power* node_power = &rr_node_power[rr_node_idx];
862
862
float C_wire;
863
863
float buffer_size;
@@ -866,7 +866,7 @@ static void power_usage_routing(t_power_usage* power_usage,
866
866
// float C_per_seg_split;
867
867
int wire_length;
868
868
869
- switch (node-> type ()) {
869
+ switch (node. type ()) {
870
870
case SOURCE:
871
871
case SINK:
872
872
case OPIN:
@@ -877,13 +877,13 @@ static void power_usage_routing(t_power_usage* power_usage,
877
877
* - Driver (accounted for at end of CHANX/Y - see below)
878
878
* - Multiplexor */
879
879
880
- if (node-> fan_in ()) {
880
+ if (node. fan_in ()) {
881
881
VTR_ASSERT (node_power->in_dens );
882
882
VTR_ASSERT (node_power->in_prob );
883
883
884
884
/* Multiplexor */
885
885
power_usage_mux_multilevel (&sub_power_usage,
886
- power_get_mux_arch (node-> fan_in (),
886
+ power_get_mux_arch (node. fan_in (),
887
887
power_ctx.arch ->mux_transistor_size ),
888
888
node_power->in_prob , node_power->in_dens ,
889
889
node_power->selected_input , true ,
@@ -904,19 +904,19 @@ static void power_usage_routing(t_power_usage* power_usage,
904
904
VTR_ASSERT (node_power->in_prob );
905
905
906
906
wire_length = 0 ;
907
- if (node-> type () == CHANX) {
908
- wire_length = node-> xhigh () - node-> xlow () + 1 ;
909
- } else if (node-> type () == CHANY) {
910
- wire_length = node-> yhigh () - node-> ylow () + 1 ;
907
+ if (node. type () == CHANX) {
908
+ wire_length = node. xhigh () - node. xlow () + 1 ;
909
+ } else if (node. type () == CHANY) {
910
+ wire_length = node. yhigh () - node. ylow () + 1 ;
911
911
}
912
912
C_wire = wire_length
913
- * segment_inf[device_ctx.rr_indexed_data [node-> cost_index ()].seg_index ].Cmetal ;
913
+ * segment_inf[device_ctx.rr_indexed_data [node. cost_index ()].seg_index ].Cmetal ;
914
914
// (double)power_ctx.commonly_used->tile_length);
915
- VTR_ASSERT (node_power->selected_input < node-> fan_in ());
915
+ VTR_ASSERT (node_power->selected_input < node. fan_in ());
916
916
917
917
/* Multiplexor */
918
918
power_usage_mux_multilevel (&sub_power_usage,
919
- power_get_mux_arch (node-> fan_in (),
919
+ power_get_mux_arch (node. fan_in (),
920
920
power_ctx.arch ->mux_transistor_size ),
921
921
node_power->in_prob , node_power->in_dens ,
922
922
node_power->selected_input , true , power_ctx.solution_inf .T_crit );
@@ -979,10 +979,10 @@ static void power_usage_routing(t_power_usage* power_usage,
979
979
/* Determine types of switches that this wire drives */
980
980
connectionbox_fanout = 0 ;
981
981
switchbox_fanout = 0 ;
982
- for (t_edge_size iedge = 0 ; iedge < node-> num_edges (); iedge++) {
983
- if (node-> edge_switch (iedge) == routing_arch->wire_to_rr_ipin_switch ) {
982
+ for (t_edge_size iedge = 0 ; iedge < node. num_edges (); iedge++) {
983
+ if (node. edge_switch (iedge) == routing_arch->wire_to_rr_ipin_switch ) {
984
984
connectionbox_fanout++;
985
- } else if (node-> edge_switch (iedge) == routing_arch->delayless_switch ) {
985
+ } else if (node. edge_switch (iedge) == routing_arch->delayless_switch ) {
986
986
/* Do nothing */
987
987
} else {
988
988
switchbox_fanout++;
@@ -1205,37 +1205,37 @@ void power_routing_init(const t_det_routing_arch* routing_arch) {
1205
1205
for (size_t rr_node_idx = 0 ; rr_node_idx < device_ctx.rr_nodes .size (); rr_node_idx++) {
1206
1206
int fanout_to_IPIN = 0 ;
1207
1207
int fanout_to_seg = 0 ;
1208
- auto node = & device_ctx.rr_nodes [rr_node_idx];
1208
+ auto node = device_ctx.rr_nodes [rr_node_idx];
1209
1209
t_rr_node_power* node_power = &rr_node_power[rr_node_idx];
1210
1210
1211
- switch (node-> type ()) {
1211
+ switch (node. type ()) {
1212
1212
case IPIN:
1213
1213
max_IPIN_fanin = std::max (max_IPIN_fanin,
1214
- static_cast <int >(node-> fan_in ()));
1215
- max_fanin = std::max (max_fanin, static_cast <int >(node-> fan_in ()));
1214
+ static_cast <int >(node. fan_in ()));
1215
+ max_fanin = std::max (max_fanin, static_cast <int >(node. fan_in ()));
1216
1216
1217
- node_power->in_dens = (float *)vtr::calloc (node-> fan_in (),
1217
+ node_power->in_dens = (float *)vtr::calloc (node. fan_in (),
1218
1218
sizeof (float ));
1219
- node_power->in_prob = (float *)vtr::calloc (node-> fan_in (),
1219
+ node_power->in_prob = (float *)vtr::calloc (node. fan_in (),
1220
1220
sizeof (float ));
1221
1221
break ;
1222
1222
case CHANX:
1223
1223
case CHANY:
1224
- for (t_edge_size iedge = 0 ; iedge < node-> num_edges (); iedge++) {
1225
- if (node-> edge_switch (iedge) == routing_arch->wire_to_rr_ipin_switch ) {
1224
+ for (t_edge_size iedge = 0 ; iedge < node. num_edges (); iedge++) {
1225
+ if (node. edge_switch (iedge) == routing_arch->wire_to_rr_ipin_switch ) {
1226
1226
fanout_to_IPIN++;
1227
- } else if (node-> edge_switch (iedge) != routing_arch->delayless_switch ) {
1227
+ } else if (node. edge_switch (iedge) != routing_arch->delayless_switch ) {
1228
1228
fanout_to_seg++;
1229
1229
}
1230
1230
}
1231
1231
max_seg_to_IPIN_fanout = std::max (max_seg_to_IPIN_fanout,
1232
1232
fanout_to_IPIN);
1233
1233
max_seg_to_seg_fanout = std::max (max_seg_to_seg_fanout, fanout_to_seg);
1234
- max_fanin = std::max (max_fanin, static_cast <int >(node-> fan_in ()));
1234
+ max_fanin = std::max (max_fanin, static_cast <int >(node. fan_in ()));
1235
1235
1236
- node_power->in_dens = (float *)vtr::calloc (node-> fan_in (),
1236
+ node_power->in_dens = (float *)vtr::calloc (node. fan_in (),
1237
1237
sizeof (float ));
1238
- node_power->in_prob = (float *)vtr::calloc (node-> fan_in (),
1238
+ node_power->in_prob = (float *)vtr::calloc (node. fan_in (),
1239
1239
sizeof (float ));
1240
1240
break ;
1241
1241
default :
@@ -1254,14 +1254,14 @@ void power_routing_init(const t_det_routing_arch* routing_arch) {
1254
1254
1255
1255
/* Populate driver switch type */
1256
1256
for (size_t rr_node_idx = 0 ; rr_node_idx < device_ctx.rr_nodes .size (); rr_node_idx++) {
1257
- auto node = & device_ctx.rr_nodes [rr_node_idx];
1257
+ auto node = device_ctx.rr_nodes [rr_node_idx];
1258
1258
1259
- for (t_edge_size edge_idx = 0 ; edge_idx < node-> num_edges (); edge_idx++) {
1260
- if (node-> edge_sink_node (edge_idx) != OPEN) {
1261
- if (rr_node_power[node-> edge_sink_node (edge_idx)].driver_switch_type == OPEN) {
1262
- rr_node_power[node-> edge_sink_node (edge_idx)].driver_switch_type = node-> edge_switch (edge_idx);
1259
+ for (t_edge_size edge_idx = 0 ; edge_idx < node. num_edges (); edge_idx++) {
1260
+ if (node. edge_sink_node (edge_idx) != OPEN) {
1261
+ if (rr_node_power[node. edge_sink_node (edge_idx)].driver_switch_type == OPEN) {
1262
+ rr_node_power[node. edge_sink_node (edge_idx)].driver_switch_type = node. edge_switch (edge_idx);
1263
1263
} else {
1264
- VTR_ASSERT (rr_node_power[node-> edge_sink_node (edge_idx)].driver_switch_type == node-> edge_switch (edge_idx));
1264
+ VTR_ASSERT (rr_node_power[node. edge_sink_node (edge_idx)].driver_switch_type == node. edge_switch (edge_idx));
1265
1265
}
1266
1266
}
1267
1267
}
@@ -1270,13 +1270,13 @@ void power_routing_init(const t_det_routing_arch* routing_arch) {
1270
1270
/* Find Max Fanout of Routing Buffer */
1271
1271
t_edge_size max_seg_fanout = 0 ;
1272
1272
for (size_t rr_node_idx = 0 ; rr_node_idx < device_ctx.rr_nodes .size (); rr_node_idx++) {
1273
- auto node = & device_ctx.rr_nodes [rr_node_idx];
1273
+ auto node = device_ctx.rr_nodes [rr_node_idx];
1274
1274
1275
- switch (node-> type ()) {
1275
+ switch (node. type ()) {
1276
1276
case CHANX:
1277
1277
case CHANY:
1278
- if (node-> num_edges () > max_seg_fanout) {
1279
- max_seg_fanout = node-> num_edges ();
1278
+ if (node. num_edges () > max_seg_fanout) {
1279
+ max_seg_fanout = node. num_edges ();
1280
1280
}
1281
1281
break ;
1282
1282
default :
@@ -1358,14 +1358,14 @@ bool power_uninit() {
1358
1358
bool error = false ;
1359
1359
1360
1360
for (size_t rr_node_idx = 0 ; rr_node_idx < device_ctx.rr_nodes .size (); rr_node_idx++) {
1361
- auto node = & device_ctx.rr_nodes [rr_node_idx];
1361
+ auto node = device_ctx.rr_nodes [rr_node_idx];
1362
1362
t_rr_node_power* node_power = &rr_node_power[rr_node_idx];
1363
1363
1364
- switch (node-> type ()) {
1364
+ switch (node. type ()) {
1365
1365
case CHANX:
1366
1366
case CHANY:
1367
1367
case IPIN:
1368
- if (node-> fan_in ()) {
1368
+ if (node. fan_in ()) {
1369
1369
free (node_power->in_dens );
1370
1370
free (node_power->in_prob );
1371
1371
}
0 commit comments