diff --git a/vpr/src/place/analytic_placer.cpp b/vpr/src/place/analytic_placer.cpp index 3c5fccbfcd6..90e04d2b355 100644 --- a/vpr/src/place/analytic_placer.cpp +++ b/vpr/src/place/analytic_placer.cpp @@ -14,6 +14,7 @@ # include "vtr_log.h" # include "cut_spreader.h" # include "vpr_utils.h" +# include "place_util.h" // Templated struct for constructing and solving matrix equations in analytic placer template diff --git a/vpr/src/route/rr_graph_indexed_data.cpp b/vpr/src/route/rr_graph_indexed_data.cpp index d5f0c95df2d..c015aa032bc 100644 --- a/vpr/src/route/rr_graph_indexed_data.cpp +++ b/vpr/src/route/rr_graph_indexed_data.cpp @@ -387,8 +387,13 @@ static void load_rr_indexed_data_T_values(int index_start, switches_buffered[cost_index] = buffered; } else { if (switches_buffered[cost_index] != buffered) { - VPR_FATAL_ERROR(VPR_ERROR_ARCH, - "Expecting all wire-to-wire switches of wire segments with cost index (%d) to have same 'buffered' value (%d), but found segment switch with different 'buffered' value (%d)\n", cost_index, switches_buffered[cost_index], buffered); + // If a previous buffering state is inconsistent with the current one, + // the node should be treated as buffered, as there are only two possible + // values for the buffering state (except for the UNDEFINED case). + // + // This means that at least one edge of this node has a buffered switch, + // which prevails over unbuffered ones. + switches_buffered[cost_index] = 1; } } } @@ -497,9 +502,13 @@ static void calculate_average_switch(int inode, double& avg_switch_R, double& av buffered = 0; } } else if (buffered != device_ctx.rr_switch_inf[switch_index].buffered()) { - VTR_LOG_WARN("Inconsitent buffering of children of rr node %s (%s)\n", - rr_node_arch_name(inode).c_str(), - describe_rr_node(inode).c_str()); + // If a previous buffering state is inconsistent with the current one, + // the node should be treated as buffered, as there are only two possible + // values for the buffering state (except for the UNDEFINED case). + // + // This means that at least one edge of this node has a buffered switch, + // which prevails over unbuffered ones. + buffered = 1; } num_switches++;