Modifying Placement - Modifying Placement - 2025.2 English - UG904

Vivado Design Suite User Guide: Implementation (UG904)

Document ID
UG904
Release Date
2025-11-20
Version
2025.2 English
The Vivado tools track two states for placed cells, Fixed and Unfixed. They describe the way in which the Vivado tools view placed cells in the design.

Fixed Cells

Fixed cells are those that you have placed yourself, or the location constraints imported from an XDC file.

  • The Vivado Design Suite treats these placed cells as Fixed.
  • Fixed cells are not moved unless directed to do so.
  • The FF in the following figure is in orange (default) to indicate that it is Fixed.

Unfixed Cells

Vivado places unfixed cells during implementation, either by the place_design command, or on execution of one of optimization commands.

  • The Vivado Design Suite treats these placed cells as Unfixed (or loosely placed).
  • You can move these cells by the implementation tools as needed in design iterations.
  • The LUT in the following figure in blue (default) indicates that it is Unfixed.
Figure 1. Logic Placed in a Slice

You can fix both LOCS and BELS. The placement above generates the following constraints:

set_property is_bel_fixed true [get_cells [list {usbEngine0/u4/u6/csr0_reg[6]}]] 
set_property is_loc_fixed true [get_cells [list {usbEngine0/u4/u6/csr0_reg[6]}]]

There is no placement constraint on the LUT. Its placement is unfixed, indicating that the placement must not go into the XDC.