Modifying Placement - 2021.2 English

Vivado Design Suite User Guide: Implementation (UG904)

Document ID
UG904
Release Date
2021-11-24
Version
2021.2 English
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.