|
19 | 19 | //Note: The flag is only effective if compiled with VTR_ENABLE_DEBUG_LOGGING
|
20 | 20 | bool f_placer_breakpoint_reached = false;
|
21 | 21 |
|
22 |
| -constexpr int MIN_NUMBER_OF_BLOCK_PER_COLUMN = 3; |
23 |
| - |
24 | 22 | //Accessor for f_placer_breakpoint_reached
|
25 | 23 | bool placer_breakpoint_reached() {
|
26 | 24 | return f_placer_breakpoint_reached;
|
@@ -979,6 +977,9 @@ bool find_compatible_compressed_loc_in_range(t_logical_block_type_ptr type,
|
979 | 977 | bool block_constrained,
|
980 | 978 | const BlkLocRegistry& blk_loc_registry,
|
981 | 979 | vtr::RngContainer& rng) {
|
| 980 | + // If the number of blocks in a column is less than this number, we |
| 981 | + // will expand the search range to the whole column |
| 982 | + constexpr int MIN_BLK_PER_COLUMN_EXPAND = 3; |
982 | 983 | //TODO For the time being, the blocks only moved in the same layer. This assertion should be removed after VPR is updated to move blocks between layers
|
983 | 984 | VTR_ASSERT(to_layer_num == from_loc.layer_num);
|
984 | 985 | const auto& compressed_block_grid = g_vpr_ctx.placement().compressed_block_grids[type->index];
|
@@ -1019,7 +1020,7 @@ bool find_compatible_compressed_loc_in_range(t_logical_block_type_ptr type,
|
1019 | 1020 | }
|
1020 | 1021 | auto y_upper_iter = block_rows.upper_bound(search_range.ymax);
|
1021 | 1022 |
|
1022 |
| - if (block_rows.size() < MIN_NUMBER_OF_BLOCK_PER_COLUMN && !block_constrained) { |
| 1023 | + if (block_rows.size() < MIN_BLK_PER_COLUMN_EXPAND && !block_constrained) { |
1023 | 1024 | //Fall back to allow the whole y range
|
1024 | 1025 | y_lower_iter = block_rows.begin();
|
1025 | 1026 | y_upper_iter = block_rows.end();
|
|
0 commit comments