CDC Rules Precedence - 2023.2 English

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

Document ID
Release Date
2023.2 English

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

The CDC rules are sorted as shown in the table below from the highest to the 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 with severity Warning are listed above with a higher precedence than other critical rules because those rules cannot actually apply to the same endpoint due to different CDC topologies.

When an endpoint has multiple CDC violations, if the violation with the highest precedence is waived, the next violation is reported based on the precedence order.

To create waivers for a design, it could be convenient to report all the CDC violations for each endpoint in a single run, regardless of the rules precedence. Use the report_cdc command line option -all_checks_per_endpoint to generate an extensive report of all the CDC violations in the design.

Note: -all_checks_per_endpoint is only available from the Tcl Console and is not supported in the Report CDC dialog window. However, the results of -all_checks_per_endpoint can be displayed in the Vivado IDE using the -name option.