Creating Custom Design Rules Checks (DRCs) - 2024.1 English

Vivado Design Suite User Guide: Using Tcl Scripting (UG894)

Document ID
Release Date
2024.1 English

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, the create_drc_violation command is used to identify and flag violations when checking the rule against a design. The create_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 the report_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 the add_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.