Creating CDC Waivers - 2023.2 English

Vivado Design Suite User Guide: Design Analysis and Closure Techniques (UG906)

Document ID
Release Date
2023.2 English

CDC waivers are simpler to define because each CDC violation references only two pin(s) or port(s) objects for the source and destination elements. Use the command line options -from/-to for specifying the source and destination pins or ports. CDC waivers cannot be defined with -string/-objects.

Important: The CDC waivers are not sensitive to the source and destination clocks but only to the source and destination pins. As a result creating waivers from the GUI or from some CDC violation objects that reference the same source and destination pins but for different clock pairs results in a warning such as: WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-7' is a duplicate and will not be added again.

The following command creates a CDC-1 waiver between the source pin U_CORE/U00_TOP/sr_reg[3]/C and the destination pin U_CORE/U10/ar_reg[3]/CE.

create_waiver -id {CDC-1} -description "CDC violations" \
-from [get_pins {U_CORE/U00_TOP/sr_reg[3]/C}] \
-to [get_pins {U_CORE/U10/ar_reg[3]/CE}]

If one of the command line options -from or -to is omitted, the waiver engine considers the missing option as a wildcard.

The following two commands are equivalent and waive all CDC-1 to the endpoint pin U_CORE/U10/ar_reg[3]/CE, regardless of the startpoint:

create_waiver -id {CDC-1} -description "CDC violations" \
-from {*PIN} \
-to [get_pins {U_CORE/U10/ar_reg[3]/CE}]
create_waiver -id {CDC-1} -description "CDC violations" \
-to [get_pins {U_CORE/U10/ar_reg[3]/CE}]