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.