CDC Rules Precedence - 2025.2 English - UG906

Vivado Design Suite User Guide: Design Analysis and Closure Techniques (UG906)

Document ID
UG906
Release Date
2025-12-10
Version
2025.2 English

By default, Report CDC reports only one violation per endpoint and per clock-pair. If multiple violations exist for a single endpoint and clock pair, only the violation with the highest precedence is reported.

CDC rules are ordered by precedence. The rule with the highest precedence is reported first. If you waive that violation, the next violation in the precedence list is reported.

The following table shows the CDC rules sorted from highest to lowest precedence:

Table 1. CDC Rules Precedence
Rule ID CDC Topology Severity Category
CDC-18 Synchronized with HARD_SYNC Primitive Info Safe
CDC-13,14 1-bit and multi-bit CDC path on a non-FD primitive Critical Unsafe
CDC-17 MUX Hold Type Warning Safe
CDC-16 MUX Type Warning Safe
CDC-15 CE Type Warning Safe
CDC-26 LUTRAM read/write potential collision Warning Safe
CDC-7 Asynchronous Reset not synchronized Critical Unknown
CDC-1, 4 1-bit and Multi-bit CDC not synchronized Critical Unknown
CDC-12 Multi-Clock Fan-in Critical Unsafe
CDC-10 Combinatorial Logic detected between synchronizer Critical Unsafe
CDC-11 Fan-out from Launch Flop to destination domain Critical Unsafe
CDC-9 Asynchronous Reset synchronized with ASYNC_REG property Info Safe
CDC-6 Multi-bit synchronized with ASYNC_REG property Warning Unsafe
CDC-3 1-bit synchronized with ASYNC_REG property Info Safe
CDC-8 Asynchronous Reset synchronized with missing ASYNC_REG property Warning Safe
CDC-2,5 1-bit and multi-bit CDC synchronized with missing ASYNC_REG property Warning Safe
Note: Some rules marked as Warning appear above Critical rules in precedence because their rules do not apply to the same endpoint due to different CDC topologies.

When an endpoint has multiple CDC violations, waiving the highest precedence causes the next violation to be reported in order.

Viewing All Violations Per Endpoint

To simplify waiver creation, you can generate a report that includes all CDC violations for each endpoint, regardless of rule precedence.

  1. Run the report_cdc command with the -all_checks_per_endpoint option to include every CDC rule that applies to an endpoint:
    report_cdc -all_checks_per_endpoint -name full_cdc_report
    Note: This option is only available from the Tcl Console. It is not supported in the Report CDC dialog window.
  2. You can view the results of -all_checks_per_endpoint in the Vivado IDE by using the -name option.