Common Mistakes - 2025.2 English - UG1387

Versal Adaptive SoC Hardware, IP, and Platform Development Methodology Guide (UG1387)

Document ID
UG1387
Release Date
2025-12-17
Version
2025.2 English

Following are common mistakes that you must avoid:

  • Relaxing setup without adjusting hold back to same launch and capture edges in the case of a multicycle path not functionally active at every clock cycle.

    The hold requirement can become very high (at least one clock period in most cases) and impossible to meet.

  • Setting a multicycle path exception between incorrect points in the design.

    This occurs when you assume that there is only one path from a startpoint cell to an endpoint cell. In some cases, this is not true. The endpoint cell can have multiple data input pins, including clock enable and reset pins, which are active on at least two consecutive clock edges.

    For this reason, AMD recommends specifying the endpoint pin instead of the cell (or clock). For example, the endpoint cell REGB has three input pins: C, EN, and D. Only the REGB/D pin must be constrained by the multicycle path exception, not the EN pin because it can change at every clock cycle. If the constraint is attached to a cell instead of a pin, all the valid endpoint pins are considered for the constraints, including the EN (clock enable) pin.

    To be safe, AMD recommends that you always use the following syntax:
    set_multicycle_path -from [get_pins REGA/C] \
    -to [get_pins REGB/D] -setup 3
    set_multicycle_path -from [get_pins REGA/C] \
    -to [get_pins REGB/D] -hold 2