The Vivado tools track two states for placed
cells, Fixed and Unfixed, which describes 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 for the cells have been 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 shown in orange (default) to indicate that it is Fixed.
Unfixed Cells
Unfixed cells have been placed by the Vivado tools in
implementation, during 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).
- These cells can be moved by the implementation tools as needed in design iterations.
- The LUT in the following figure is shown in blue (default) to indicate that it is Unfixed.
Figure 1. Logic Placed in a Slice
Both LOCS and BELS can be fixed. 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 should not go into the XDC.