CDC waivers are simpler to define because each CDC violation references
only two objects: a source pin or port and a destination pin or port. Use the -from and -to options to
specify the source and destination pins or ports. Do not use -string or -objects with CDC waivers.
Important: CDC waivers are based
only on the source and destination pins. They do not consider the source and destination
clocks. Creating a waiver from Vivado or CDC violations
with the same pins for different clock pairs triggers a warning message.
WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-7' is a duplicate and will not be added again.
Example: CDC-1 Waiver Between Two Pins
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 you omit the -from or -to option, Vivado
treats the missing option as a wildcard. The following two commands are equivalent
and waive all CDC-1 violations 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}]