Step 10: Waiving Multiple DRC Violations - 2023.2 English

Vivado Design Suite Tutorial: Design Analysis and Closure Techniques (UG938)

Document ID
Release Date
2023.2 English
In this step, you waive multiple DRC violations simultaneously.
  1. Select Reports > Report DRC.
  2. In the Report DRC dialog box, leave all settings at their default, and click OK.

  3. In the DRC Report, right-click UCIO#1, and select Create Waiver to create a waiver for the UCIO-1 violations.
    Note: The UCIO#1 violation combines 115 individual violations into a single violation. Similarly, the NSTD#1 violation covers 113 ports.

  4. In the Create Waiver dialog box, look at the output in Tcl Command Preview, and click OK.
  5. To generate the drc_waivers.xdc file and verify that the waiver is waiving all 115 objects, enter:
    write_waivers -type DRC drc_waivers.xdc
  6. In the XDC file, look at the expanded port list, and check that some of the strings from the violations message were converted to wildcards (*).

    Strings are automatically converted to wildcards for UCIO-1, NSTD-1, TIMING-15, and TIMING-16 type violations. For UCIO-1, the numbers of objects in the violations are replaced with wildcards, because the numbers of elements are not meaningful.

  7. To delete the DRC waiver and rewrite the waiver using wildcards to target a subset of the ports objects, enter:
    delete_waivers [get_waivers -type drc]
    create_waiver -type DRC -id {UCIO-1} -user "AMD" -desc "Waive selected UCIO violations" -objects [get_ports { s_axi_rdata[*] s_axi_wdata[*] s_axi_araddr[*] } ] -strings { "*" } -strings { "*" }
    Note: This command only covers a subset of the original 115 objects.
  8. Select Reports > Report DRC to rerun Report DRC.
  9. In the Report DRC dialog box, select Display only waived violations to report only waived violations, and click OK.

    In the DRC Report, verify that only 68 violations are waived out of 115.

    Important: You cannot waive READONLY or NODISABLE violations. For example, if you enter:
     create_waiver -type DRC -id RTSTAT-1 -description "Waive RTSTAT-1"
    The Vivado tools issue the following error:
     ERROR: [Vivado_Tcl 4-934] Waiver ID 'RTSTAT-1' is READONLY or NODISABLE and cannot be waived. 
    These Factory designations specify that a check is required and may not be overridden by user action.