The Vivado Design Suite lets you define and use custom design rule checks (DRCs) written in Tcl. When creating custom DRCs be aware of the following:
- The basis of creating a custom DRC is a Tcl checker procedure that gets design objects of
interest, or attributes of those design objects, and a checking function that
defines the design rule. The Tcl checker procedure is defined in a separate Tcl
script that must be loaded into the Vivado Design Suite prior to
running
report_drc
. Inside of the Tcl checker procedure, thecreate_drc_violation
command is used to identify and flag violations when checking the rule against a design. Thecreate_drc_violation
command creates a violation object within the in-memory design, with properties that can be reported and further processed in the Vivado Design Suite. - The Tcl checker procedure is associated to a user-defined DRC that is created using the
create_drc_check
command. Call this rule by name when you run thereport_drc
command. - Optionally, you can elect to create a DRC rule deck by using the
create_drc_ruledeck
command. A DRC rule deck is a collection of DRCs. A mix of both user-created and predefined DRCs can be added to the user-created DRC rule deck by using theadd_drc_checks
command. - Checking the design against the design rules is performed by running the
report_drc
command. When running report_drc, you can specify to run either a DRC rule deck, user-defined design rule checks, or predefined DRCs.