Skip to content

Commit ebbce78

Browse files
authored
Merge pull request #2158 from verilog-to-routing/map_lookahead_bug_fix
router lookahead: fix criticality multiplication bug
2 parents 5cc8af0 + ed0934f commit ebbce78

File tree

6 files changed

+1052
-1079
lines changed

6 files changed

+1052
-1079
lines changed

comparison_output.xlsx

39.3 KB
Binary file not shown.

libs/libarchfpga/src/physical_types_util.cpp

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,6 @@ static std::vector<int> get_pb_pin_driving_pins(t_physical_tile_type_ptr physica
8080
int relative_cap,
8181
const t_pb_graph_pin* pin);
8282

83-
//static std::vector<const t_pb_graph_node*> get_child_pb_graph_node_mode(const t_pb_graph_node* parent_node, int mode_num);
84-
8583
static std::tuple<int, int, int, int> get_pin_index_for_inst(t_physical_tile_type_ptr type, int pin_index, bool is_flat) {
8684
int max_ptc = get_tile_ipin_opin_max_ptc(type, is_flat);
8785
VTR_ASSERT(pin_index < max_ptc);
@@ -360,31 +358,6 @@ static std::vector<int> get_pb_pin_driving_pins(t_physical_tile_type_ptr physica
360358
return driving_pins;
361359
}
362360

363-
//static std::vector<const t_pb_graph_node*> get_child_pb_graph_node_mode(const t_pb_graph_node* parent_node, int mode_num) {
364-
// int num_child_pb_nodes = 0;
365-
// std::vector<const t_pb_graph_node*> child_pb_nodes;
366-
//
367-
// if(parent_node->is_primitive())
368-
// return child_pb_nodes;
369-
//
370-
// const t_mode& mode = parent_node->pb_type->modes[mode_num];
371-
// for(int pb_type_idx = 0; pb_type_idx < mode.num_pb_type_children; pb_type_idx++) {
372-
// for(int pb_idx = 0; pb_idx < mode.pb_type_children[pb_type_idx].num_pb; pb_idx++) {
373-
// num_child_pb_nodes++;
374-
// }
375-
// }
376-
// child_pb_nodes.resize(num_child_pb_nodes);
377-
// int num_added_pb_nodes = 0;
378-
// for(int pb_type_idx = 0; pb_type_idx < mode.num_pb_type_children; pb_type_idx++) {
379-
// for(int pb_idx = 0; pb_idx < mode.pb_type_children[pb_type_idx].num_pb; pb_idx++) {
380-
// child_pb_nodes[num_added_pb_nodes] = &parent_node->child_pb_graph_nodes[mode_num][pb_type_idx][pb_idx];
381-
// num_added_pb_nodes++;
382-
// }
383-
// }
384-
// VTR_ASSERT(num_added_pb_nodes == num_child_pb_nodes);
385-
// return child_pb_nodes;
386-
//}
387-
388361
/******************** End Subroutine declarations and definition ************************/
389362

390363
int get_sub_tile_physical_pin(int sub_tile_index,

vpr/src/route/router_lookahead_map.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -326,8 +326,8 @@ std::pair<float, float> MapLookahead::get_expected_delay_and_cong(RRNodeId from_
326326
wire_cost_entry = get_wire_cost_entry(reachable_wire_inf.wire_rr_type, reachable_wire_inf.wire_seg_index, delta_x, delta_y);
327327
}
328328

329-
float this_delay_cost = (1. - params.criticality) * (reachable_wire_inf.delay + wire_cost_entry.delay);
330-
float this_cong_cost = (params.criticality) * (reachable_wire_inf.congestion + wire_cost_entry.congestion);
329+
float this_delay_cost = (params.criticality) * (reachable_wire_inf.delay + wire_cost_entry.delay);
330+
float this_cong_cost = (1. - params.criticality) * (reachable_wire_inf.congestion + wire_cost_entry.congestion);
331331

332332
expected_delay_cost = std::min(expected_delay_cost, this_delay_cost);
333333
expected_cong_cost = std::min(expected_cong_cost, this_cong_cost);

0 commit comments

Comments
 (0)