Step 2: Adding Placement Constraints - 2022.2 English

Vivado Design Suite Tutorial: Using Constraints (UG945)

Document ID
Release Date
2022.2 English

Explore some of the design hierarchy, and begin placing logic elements to create physical constraints.

  1. From the Flow Navigator, select Open Synthesized Design. The synthesized design might already be open if you came directly to this step.

    The synthesized netlist opens with the Device window displayed.

  2. Select the Netlist window and expand the clkgen hierarchy.
  3. Expand the Leaf Cells folder and select the instance mmcm_adv_inst (MMCME2_ADV).

  4. Look in the Cell Properties view, under the Properties tab, and notice that the STATUS is UNPLACED, and there are no IS_LOC_FIXED or IS_BEL_FIXED properties shown.
  5. Check this in the Tcl Console by typing:
    get_property IS_LOC_FIXED [get_cells clkgen/mmcm_adv_inst]

    This returns a zero, indicating the object is not fixed to a location.

  6. Zoom into the bottom right of the Device view, to display the lower half of Clock Region X1Y0, to prepare for placing the selected object. See the following figure.
    Tip: It is easier to place logic in the Device window if Routing Resources are not displayed. If they are displayed, select the Routing Resources toolbar button to disable.

  7. In the Netlist window, click on the mmcm_adv_inst and drag it into the Device window to place it into the bottom right MMCME2_ADV.
  8. Look in the Tcl Console. You should see something like these three commands:
    place_cell clkgen/mmcm_adv_inst MMCME2_ADV_X1Y0/MMCME2_ADV
    The startgroup and endgroup Tcl commands bracket sequences of commands to support the undo function in the Vivado tools. If you make a mistake, you can use the undo command in the Tcl Console, or the Edit > Undo command. This will undo the placement and allow you to redo it. For more information on startgroup, endgroup, and undo, refer to the Vivado Design Suite Tcl Command Reference Guide (UG835).
  9. Look at the Properties tab of the Cell Properties window for the MMCM cell you placed.

    Notice that the IS_BEL_FIXED and IS_LOC_FIXED properties are now checked, reflecting that the object has been placed, as shown in the following figure. The STATUS property is set to FIXED as well.

    Note: The Cell Drag and Drop mode in the Device window determines whether only IS LOC FIXED is set, or IS BEL FIXED is also set, when placing objects. Refer to this link in the Vivado Design Suite User Guide: Using the Vivado IDE (UG893) for more information on the Device window.

    The IS_BEL_FIXED and IS_LOC_FIXED properties on the object are physical constraints reflecting the placement of the object. These constraint are used by Vivado implementation, and will not be changed by the tool. However, if the properties are invalid, they will cause errors downstream in the design flow.

    Notice that when you place mmcm_adv_inst in the Device window, the Save Constraints button is enabled. The physical constraints are added to the Vivado tool in-memory design, but are not yet saved to the target constraint file.