CDC-50011: Combinational Logic Before Synchronizer Chain
Description
A CDC transfer has logic between its source and destination, and there is no handshake for the transfer. Without a handshake, the destination of the transfer behaves as the head of a synchronizer chain. However, a chain can only synchronize a signal that is the output of a register, not the output of combinational logic.
Recommendation
If you want to negotiate this transfer by a handshake, replace the existing CDC handshake circuit with the Bus Synchronizer Parameterizable Macro (ipm_cdc_bus_sync).
Refer to the documentation of Insert Template Dialog Box for instructions on adding (or instantiating) this macro.
To resolve the violation without replacing the circuit with the Bus Synchronizer Parameterizable Macro, attach it to a handshake. If the destination of the transfer is to act as a synchronizer chain, either remove the combinational logic on the transfer, or add a register after the combinational logic, with the register clocked by the source clock of the CDC transfer.
Severity
High
Tags
Tag | Description |
---|---|
synchronizer | Design rule checks related to synchronizer chains. |
Device Family
- Intel®Cyclone® 10 GX
- Intel®Arria® 10
- Intel®Stratix® 10
- Intel Agilex®
- Intel Agilex®
- Intel Agilex®