Step 3: Waiving a Single CDC Violation - 2023.2 English

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

Document ID
Release Date
2023.2 English
The my_ip_glblclk to my_ip_axi_aclk clock pair includes one Critical CDC-10 violation due to combinational logic on the CDC path. This step covers how to waive the CDC-10 violation.

  1. To view a schematic of the violation, select the CDC-10 row in the CDC Report, and click the Schematic toolbar button.
    Note: Alternatively, press F4 to generate the schematic. However, using the toolbar button provides a more detailed schematic that includes all the levels of the downstream synchronizer.

  2. To waive the violation, select the CDC-10 row in the CDC Report, right-click, and select Create Waiver.
  3. In the Create Waiver dialog box, enter a description, and click OK.
    Important: A waiver tracks the date the waiver was added, the user that added the waiver, and a description of why the violation was waived. The date is automatically added by the system. The Tags field is an optional description or list of keywords that can be used for documentation purposes.
  4. After the waiver is created, check the CDC Report.

    To indicate that a waiver was created, the CDC-10 row is gray and disabled.

    Note: Rows are only disabled in the Report CDC result window from which the waivers were created.

  5. To see the impact of the CDC-10 waiver, select Reports > Timing > Report CDC to rerun Report CDC.
    Note: When a waiver is created or deleted, rerun Report CDC, Report DRC, or Report Methodology to see the updated results.
  6. See the CDC Report to view the updated information.

    The differences from the previous Summary by clock pair and Summary by type sections are highlighted in red in the following figures.

    You can also view a summary with the list of waived endpoints.

    The detailed section for the my_ip_glblclk to my_ip_axi_aclk CDC shows that the Critical CDC-10 was replaced with an Info CDC-3.

  7. Select the new CDC-3 row, and click the Schematic toolbar button . If F4 is used to open the schematic, double-click the Q pin of the output register to expand the schematic to match what is shown in the following figure.

    The CDC path includes a 5-level synchronizer on the output of the selected destination register. This is the reason the CDC-10 was replaced with CDC-3 for this topology, as shown in the following figure.

    Important: By default, Report CDC only reports a single violation per endpoint and per clock pair. When multiple violations apply to the same endpoint, only the violation with the highest precedence is reported. Because CDC-10 has a higher precedence than CDC-3, only CDC-10 is reported when both CDC-10 and CDC-3 apply to the same endpoint. For more information on CDC rules precedence, see this link in the Vivado Design Suite User Guide: Design Analysis and Closure Techniques (UG906).
    Tip: To report all of the CDC violations for each endpoint regardless of the precedence rules, use the command line option -all_checks_per_endpoint. However, unsafe rules are not reported on a register if at least one safe rule on the same register is detected.