CDC-50002: 1-Bit Asynchronous Transfer with Insufficient Constraints
Description
Violations of this rule identify a synchronizer chain following a single-bit asynchronous data transfer with insufficient timing constraints. Such paths must be constrained in a way that prevents the Timing Analyzer from analyzing them as timed, synchronous transfers.
A data transfer is considered asynchronous if its launch and latch clocks are unrelated or asynchronous. Clocks are unrelated if they do not share a common parent clock. Clocks are asynchronous if they are explicitly designated as such via a clock group or clock-to-clock false path. Data transfers are also asynchronous if their destination register has the SYNCHRONIZER_IDENTIFICATION FORCED instance assignment.
Recommendation
Either apply the set_false_path or set_clock_groups -asynchronous constraint, or relax the timing on the transfer with a set_max_delay constraint with a value greater than the latch clock's period. Applying a max delay of any other value is not sufficient to satisfy this rule.
If a violating transfer was not intended to be asynchronous, ensure that the launch clock of the transfer is correct and is related to the latch clock of the 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™