Step 9: Waiving Multiple CDC Violations - 2022.1 English

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

Document ID
UG938
Release Date
2022-05-11
Version
2022.1 English
In this step, you waive multiple CDC violations simultaneously.
  1. In the CDC Report, view the my_ip_axi_aclk to my_ip_glblclk CDC under CDC Details.

    This crossing has five CDC-14 violations, which are multi-bit violations. The five CDC-14 violations all start from the same two register clock pins:

    i_my_ip_support_block/jesd204_i/inst/tx_cfg_test_modes_reg[2:1]/C
    Tip: You can sort the table by the column ID to more easily see the five CDC-14 violations.


  2. Because i_my_ip_support_block/jesd204_i/inst/tx_cfg_test_modes_reg[*]/C matches five pins and you only need to target two of those five pins, construct the list of startpoints as follows:
    set startpoints [list \
      [get_pins i_my_ip_support_block/jesd204_i/inst/tx_cfg_test_modes_reg[1]/C] \
      [get_pins i_my_ip_support_block/jesd204_i/inst/tx_cfg_test_modes_reg[2]/C] \
      ]
    
  3. To waive the five CDC-14 violations, use the create_waiver Tcl command with the -from option:
    create_waiver -type {CDC} -id {CDC-14} -user {Xilinx} -desc {No more CDC 14!} -from $startpoints
  4. From the Vivado IDE, select Reports > Timing > Report CDC to rerun Report CDC.
  5. In the CDC Report, verify that the CDC-14 violations are no longer reported in the Summary section.

  6. To report only the waived violations, enter:
    report_cdc -details -waived

    The following figure shows the waived CDC violations in two different tables. The first table shows the 5 CDC-14 violations waived as multi-bit violations. The second table shows the 10 single-bit violations, calculated by multiplying the 5 multi-bit violations by 2 bits per multi-bit violation.



  7. To export all the waivers inside a script and verify that a total of four waivers were added, enter:
    write_waivers -type cdc waivers.xdc -force
    Note: Because the waivers.xdc file already exists, the -force option must be specified to override the file.
    Tip: Alternatively, because there are no DRC or methodology waivers, you can enter:
    write_waivers waivers.xdc -force

    or

    write_xdc -type waiver waivers.xdc -force

    The list of waivers inside waivers.xdc appears as follows.



  8. To import the waivers.xdc file, enter:
    read_xdc waivers.xdc

    The following warnings show that duplicate waivers were not added to the existing waivers. Only waivers that are exact duplicates of existing waivers are rejected.

    WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-10' is a duplicate and will not be added again.
    WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-11' is a duplicate and will not be added again.
    WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-11' is a duplicate and will not be added again.
    WARNING: [Vivado_Tcl 4-935] Waiver ID 'CDC-14' is a duplicate and will not be added again.