Create a DRC/METHODOLOGY/CDC/LINT message waiver
Syntax
create_waiver [‑type <arg>] [‑id <arg>] [‑objects <args>] [‑from <args>]
[‑to <args>] [‑strings <args>] [‑rtl_name <args>]
[‑rtl_hierarchy <args>] [‑rtl_file <args>] [‑of_objects <args>]
[‑user <arg>] ‑description <arg> [‑tags <arg>] [‑timestamp <arg>]
[‑scoped] [‑quiet] [‑verbose]
Returns
Waiver
Usage
Name | Description |
---|---|
[-type]
|
Type of waiver - DRC, METHODOLOGY, CDC, LINT |
[-id]
|
ID of the DRC/METHODOLOGY/CDC/LINT message being waived, not needed for -of_objects use |
[-objects]
|
List of inserted message objects for which a DRC/METHODOLOGY waiver will be set (i.e. %ELG, %SIG, etc. for cells or nets, etc., sites, etc., or '*CELL', '*NET', '*SITE', etc. as wildcards |
[-from]
|
List of source (driver) pins or ports (or '*PORT', '*PIN' as wildcard) for which a CDC waiver will be set |
[-to]
|
List of target (load) pins or ports (or '*PORT', '*PIN' as wildcard) for which a CDC waiver will be set |
[-strings]
|
List of inserted message string values for which a DRC/METHODOLOGY waiver will be set (i.e. %STR for strings, or '*' as wildcard) |
[-rtl_name]
|
List of rtl_name values for the LINT waiver ('*' as wildcard) |
[-rtl_hierarchy]
|
List of rtl_hierarchy values for the LINT waiver ('*' as wildcard) |
[-rtl_file]
|
List of rtl_file values for the LINT waiver ('*' as wildcard) |
[-of_objects]
|
List of DRC/METHODOLOGY/CDC violation objects for which waiver(s) will be set |
[-user]
|
Name of the user creating the waiver (required, but if not specified, the waivers will take the USER name from the environment if it is available) |
-description
|
Description string of the cause for the waiver |
[-tags]
|
Optional list of one or more tags to aid in subsequent waiver identification or categorization |
[-timestamp]
|
Timestamp of waiver - for restaining the original time of a waiver being (re)created after being written |
[-scoped]
|
Flag waiver to interpret object wildcards as scoped to the current_instance that is set |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
Description
After report_drc
, report_methodology
, or report_cdc
commands are run, they return messages of specific violations or conditions found in the design. These violations can prevent the design from progressing until they have been resolved or addressed in some way. The create_waiver
command lets you select individual violations or specific checks that can be waived for a design, letting you move forward in the design flow.
The user creating the waiver is required to provide a user ID and description in the create_waiver
command in order to provide some history of the waiver.
A waiver must be specified for an individual DRC or methodology violation, or for a specific DRC or methodology check, or for a CDC path. The waiver must be assigned to a specific object, or specific violation ID, or for paths using -from/-to
arguments. The form of the create_waiver
command varies depending on the check, violation, or object being waived, as shown in the examples below.
To save waivers from one design session to the next, you must use write_waivers
to create an XDC file of the waiver commands, and read_xdc
to read those waivers back into the design when it is reopened.
After creating a waiver, you will need to rerun the DRC, methodology, or CDC report to have the waiver considered in the analysis. To see what waivers are in place in the current design you can use the report_waivers
command. In addition, the report_drc
, report_methodology
, and report_cdc
commands have options to run the reports on waived violations or checks. Use the delete_waivers
command to remove waivers from the design.
Arguments
-type <arg>
- (Optional) Specifies the type of waiver to create. Currently supports DRC, METHODOLOGY, and CDC.
-id <arg>
- (Optional) Specifies the ID of the check or violation being waived. This is not required when using the -of_objects
option. The waiver associated with the ID can also be further limited by specifying the -objects
, -from/-to
, or the -strings
arguments.
-objects <arg>
- (Optional) For DRC and methodology checks and violations, this option specifies the object or list of objects that the waiver applies to. Objects are specified using the convention of the violation definition (e.g. %ELG, %SIG, etc. for cells or nets, etc., sites, etc., or '*CELL', '*NET', '*SITE', etc. as wildcards). Refer to the create_drc_check
or create_drc_violation
commands for more information.
-from <arg>
- (Optional) For CDC checks or violations, this option lists source (driver) pins or ports (or '*PORT', '*PIN' as wildcard) that the waiver applies to.
-to <arg>
- (Optional) For CDC checks or violations, this option lists target (load) pins or ports (or '*PORT', '*PIN' as wildcard) that the waiver applies to.
-strings
- (Optional) For DRC and methodology checks and violations, this option specifies inserted message string values (i.e. %STR for strings, or '*' as wildcard) that the waiver applies to.
-of_objects <arg>
- (Optional) Specifies a list of DRC violations as returned by get_drc_violations
; or a list of methodology violations as returned by get_methodology_violations
; or a list of CDC violations as returned by get_cdc_violations
. The defined waiver applies to the specified list of violation objects.
-user <arg>
- (Optional) Specifies the user ID of the person responsible for creating the waiver. When not specified, the user ID is obtained from the OS.
-description <arg>
- (Required) Provides a brief description of the waiver, and why it is being applied.
-tags <arg>
- (Optional) Specifies a list of user-defined strings to be associated with the waiver. Tags can be used to filter waivers when using the get_waivers
command.
-timestamp <arg>
- (Optional) Specifies the original time of the waiver as it is created. Timestamp must be specified in the form "SUN Aug 6 17:02:21 GMT 2017". If -timestamp
is not specified, the current time is used.
clock format [clock seconds] -gmt 0
-scoped
- (Optional) Specify that waivers should be interpreted with object wildcards as scoped to the current_instance
that is set.
-quiet
- (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
-verbose
- (Optional) Temporarily override any message limits and return all messages from this command.
set_msg_config
command.Examples
This example creates a waiver for a methodology check based on the specified ID:
create_waiver -id TIMING-18 -user samwise -description {waive rule check}
The following example creates a DRC check waiver for the indicated ID on the specified list of port objects, and provides the timestamp in local time:
create_waiver -type DRC -id UCIO-1 -user samwise -desc {waiving DRC violation} \
-objects [get_ports {src_in* dest_out*}] \
-timestamp [clock format [clock seconds] -gmt 0]
The following example creates a waiver for specific CDC paths in the design, defined by the -from/-to arguments:
create_waiver -type CDC -id CDC-6 -user samwise \
-description {Paths to be re-tested later}\
-from [list [get_pins {inst_xpm_grey/src_gray_ff_reg[3]/C \
inst_xpm_grey/src_gray_ff_reg[16]/C \
inst_xpm_grey/src_gray_ff_reg[22]/C \
inst_xpm_grey/src_gray_ff_reg[25]/C}] ] \
-to [list [get_pins {inst_xpm_grey/dest_graysync_ff_reg[0][1]/D \
inst_xpm_grey/dest_graysync_ff_reg[0][6]/D \
inst_xpm_grey/dest_graysync_ff_reg[0][9]/D \
inst_xpm_grey/dest_graysync_ff_reg[0][24]/D}] ]