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_violationcommand is used to identify and flag violations when checking the rule against a design. Thecreate_drc_violationcommand 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_checkcommand. Call this rule by name when you run thereport_drccommand. - Optionally, you can elect to create a DRC rule deck by using the
create_drc_ruledeckcommand. 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_checkscommand. - Checking the design against the design rules is performed by running the
report_drccommand. When running report_drc, you can specify to run either a DRC rule deck, user-defined design rule checks, or predefined DRCs.