Each DRC, methodology, or CDC violation is unique. It includes one or more of the following elements: strings and design or device objects such as pins, cells, nets, Pblocks, sites, and tiles.
- Preserve the order of elements. The order and content of all strings and objects in a violation are critical. Providing arguments in the wrong order when creating a waiver can fail to match the violation or mistakenly waive the wrong one.
- Before creating a manual waiver for a specific violation (such as
TIMING-14#1) or a class of violations (such as allTIMING-14), follow these steps:- Create an example waiver using the GUI or a violation object.
- Export the waiver using the
write_waiverorwrite_xdccommand. - Review the exported content to understand the correct order of strings and objects.
- Use this format as a reference for other waivers with the same check ID.
- Include the following for every CDC, DRC, or methodology waiver:
-
-id - Specifies the violation or check ID, such as
CDC-1,TIMING-14, orPDRC-1569. Specify only one ID per waiver. -
-description - Provides a multi-line string with enough information for team review.
-
- Use the recommended arguments for each waiver:
-
-type - Forces the waiver type (
CDC,DRC, orMethodology). A waiver with the wrong type does not match any violation. For example, to waive a CDC violation, set the type toCDC. If you do not specify a type, the system infers the type from the check ID in-id. -
-user - Overrides the default user name. By default, Vivado uses the user ID that runs Vivado Design Suite.
-
- When you use scoped waivers, use the
-scopecommand.- The
-scopecommand ensures that wildcards remain scoped. - Waivers support the XDC scoping mechanism.
- You can change the current instance before you create a waiver.
- Vivado saves the current instance information with the waiver.
- Vivado restores that information when it exports waivers as XDC.
- The
- Avoid duplicate waivers.
- Vivado treats a waiver as a duplicate when another waiver uses the same arguments.
- Vivado does not save duplicate waivers.
- This behavior reduces memory use and runtime.
-
Vivado then reports a message like the
following:
WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-13' is a duplicate and will not be added again.
- Identify read-only checks.
- Some checks, such as those starting with
RTSTAT-*, are read-only - You cannot waive read-only checks.
- You can filter out read-only checks using the
IS_READ_ONLYproperty. - For example, you can use the following
commands:
set allWaivableChecks [get_drc_checks -filter {!IS_READ_ONLY}] set allWaivableChecks [get_methodology_checks -filter {!IS_READ_ONLY}] - If you try to waive a read-only check, such as DRC
RTSTAT-1, Vivado returns an error.ERROR: [Vivado_Tcl 4-934] Waiver ID 'RTSTAT-12' is READONLY and may not be waived.
- Some checks, such as those starting with