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 (for example,
CDC-1,TIMING-14,PDRC-1569). Only one ID can be specified per waiver. -
-description - A multi-line string that provides enough information for team review.
-
- Use the recommended arguments:
-
-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. When the type is not specified, the system infers the type from the check id specified with-id. -
-user - Overrides the default user name, which is the user ID running Vivado Design Suite.
-
- When you use scoped waivers, use the
-scopecommand to ensure wildcards are scoped. The waivers support the XDC scoping mechanism and the current instance can be changed before creating a waiver. In this case, the current instance information is saved along with the waiver and restored when the waivers are exported as XDC. - Avoid duplicate waivers. Vivado
treats a waiver as a duplicate if another waiver exists with the same arguments. To
reduce the memory footprint and runtime, duplicate waivers are not saved and result
in a message similar to 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 and cannot be waived. To filter out read-only checks, use theIS_READ_ONLYproperty: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.