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.

Figure 1. Synchronized 1-bit asynchronous transfer in need of a constraint.. To prevent a CDC-50002 violation, there must be either a false path, asynchronous clock group, or relaxing max delay on the labeled path.

Recommendation

Replace the existing CDC circuit with the CDC parameterizable macros: Single Clock Parameterizable Macro (ipm_cdc_1clk_sync) or Two Clocks Parameterizable Macro (ipm_cdc_2clks_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 CDC parameterizable macros, either apply the set_false_path or set_clock_groups 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®
  • Intel Agilex®
  • Intel Agilex®