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.
|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-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-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|
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.
-all_checks_per_endpointis only available from the Tcl Console and is not supported in the Report CDC dialog window. However, the results of
-all_checks_per_endpointcan be displayed in the Vivado IDE using the