File tree Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -117,7 +117,10 @@ e_create_move MedianMoveGenerator::propose_move(t_pl_blocks_to_be_moved& blocks_
117
117
} else {
118
118
layer_new = net_bb_coords.layer_min ;
119
119
}
120
-
120
+
121
+ // If the mvoing block is on the border of the bounding box, we cannot get
122
+ // the bounding box incrementatlly. In that case, bounding box should be calculated
123
+ // from scratch.
121
124
if (!get_bb_incrementally (net_id,
122
125
coords,
123
126
xold,
@@ -324,6 +327,12 @@ static bool get_bb_incrementally(ClusterNetId net_id,
324
327
t_bb union_bb_edge;
325
328
t_bb union_bb;
326
329
const bool & cube_bb = g_vpr_ctx.placement ().cube_bb ;
330
+ /* Calculating per-layer bounding box is more time consuming compared to cube bounding box. To speed up
331
+ * this move, the bounding box used for this move is of the type cube bounding box even if the per-layer
332
+ * bounding box is used by placement SA engine.
333
+ * If per-layer bounding box is used, we take a union of boundinx boxes on each layer to make a cube bounding box.
334
+ * For example, the xmax of this cube boundix box is determined by the maximim x coordinate across all blocks on all layers.
335
+ */
327
336
if (!cube_bb) {
328
337
std::tie (union_bb_edge, union_bb) = union_2d_bb_incr (place_move_ctx.layer_bb_num_on_edges [net_id],
329
338
place_move_ctx.layer_bb_coords [net_id]);
You can’t perform that action at this time.
0 commit comments