Vivado’s report_cdc command identifies and classifies CDC
paths by matching each path to a known CDC topology. Each topology is associated with
one or more CDC rules. You cannot change the severity of these rules, unlike DRCs or
Messages.
Simplified schematics and descriptions of the CDC topologies can be found in the Simplified Schematics of the CDC Topologies section ordered from the highest to the lowest precedence.
Rule Precedence
CDC rules are analyzed using a defined precedence. Only one violation is reported per endpoint by default. If multiple CDC issues apply to the same endpoint, only the highest precedence violation is shown.
For example, if both CDC-15 (higher precedence) and CDC-10 (lower precedence) apply to the same register, only CDC-15 is reported.
You can override this behavior using the -all_checks_per_endpoint
option, which reports all Info, Warning, and Critical checks per endpoint. However,
if one safe rule applies to a register, the unsafe rules on that register are still
not reported.
CDC Rules and Descriptions
| CDC Topology | CDC Rule | Severity | Description |
|---|---|---|---|
| Single-bit CDC | CDC-1 | Critical | A single-bit CDC path is not synchronized or has unknown CDC circuitry. |
| CDC-2 | Warning | A single-bit CDC path is synchronized with a 2+
stage synchronizer but the ASYNC_REG property is missing on all or some of the
synchronizer flip-flops. |
|
| CDC-3 | Info | A single-bit CDC path is synchronized with a 2+
stage synchronizer and the ASYNC_REG property is present. |
|
| Multi-bit CDC | CDC-4 | Critical | A multi-bit bus CDC path is not synchronized or has unknown CDC circuitry. |
| CDC-5 | Warning | A multi-bit bus CDC path is synchronized with a
2+ stage synchronizer but the ASYNC_REG property is missing on all or some of the
synchronizer flip-flops. |
|
| CDC-6 | Warning | A multi-bit bus CDC path is synchronized with a
2+ stage synchronizer and the ASYNC_REG property is present. |
|
| Asynchronous Reset | CDC-7 | Critical | An asynchronous signal (clear or preset) is not synchronized or has unknown CDC circuitry. |
| CDC-8 | Warning | An asynchronous signal (clear or preset) is
synchronized but the ASYNC_REG
property is missing on all or some of the synchronizer
flip-flops. |
|
| CDC-9 | Info | An asynchronous reset is synchronized and the
ASYNC_REG property is
present. |
|
| Combinatorial Logic | CDC-10 | Critical | Combinatorial logic has been detected in the fanin of a synchronization circuit. |
| Fanout | CDC-11 | Critical | A fanout has been detected before a synchronization circuit. |
| Multi-Clock Fanin | CDC-12 | Critical | Data from multiple clocks are found in the fanin of a synchronization circuit. |
| non-FD primitive | CDC-13 | Critical | CDC detected on a non-FD primitive. |
| CE-controlled CDC | CDC-15 | Warning | Clock Enable controlled CDC. |
| Mux-controlled CDC | CDC-16 | Warning | Multiplexer controlled CDC. |
| Mux Data Hold CDC | CDC-17 | Warning | Multiplexer data holding CDC. |
HARD_SYNC
primitive |
CDC-18 | Info | A signal is synchronized with a HARD_SYNC primitive. |
| LUTRAM-to-FD CDC | CDC-26 | Warning | LUTRAM read/write potential collision. |
Rule Precedence: Highest to Lowest
| CDC Topology | CDC Rule |
|---|---|
HARD_SYNC
primitive |
CDC-18 |
| Non-FD primitive | CDC-13 |
| Mux Data Hold CDC | CDC-17 |
| Mux-controlled CDC | CDC-16 |
| CE-controlled CDC | CDC-15 |
| LUTRAM-to-FD CDC | CDC-26 |
| Asynchronous Reset | CDC-7 |
| Single-bit CDC not synchronized | CDC-1 |
| Multi-bit CDC not synchronized | CDC-4 |
| Multi-Clock Fanin | CDC-12 |
| Combinatorial Logic | CDC-10 |
| Fanout | CDC-11 |
| Asynchronous Reset synchronized with property | CDC-9 |
| Single-bit CDC synchronized with property | CDC-3 |
| Multi-bit CDC synchronized with property | CDC-6 |
| Asynchronous Reset synchronized without property | CDC-8 |
| Single-bit CDC synchronized without property | CDC-2 |
| Multi-bit CDC synchronized without property | CDC-5 |
This rule set ensures that unsafe or unknown CDC structures are flagged appropriately, and known safe synchronizations are recognized and prioritized.