Clock Domain Crossing (CDC)
ConceptClock Domain Crossing (CDC) refers to the transfer of data or signals between separate clock domains within a digital design. CDC paths are susceptible to metastability, requiring synchronization primitives and dedicated verification flows to ensure functional correctness.
WIKI
Clock Domain Crossing (CDC)
Definition
A Clock Domain Crossing (CDC) occurs when a signal, data word, or control signal generated in one clock domain is consumed in another clock domain that operates asynchronously (i.e., with an unrelated or derived clock frequency/phase). SoC and FPGA designs frequently contain multiple asynchronous clock domains, particularly under the Globally-Asynchronous Locally-Synchronous (GALS) power-management approach used to improve energy efficiency.
Metastability and Functional Risk
When a signal transitions near the sampling edge of a receiving flip-flop in another domain, the receiving storage element can enter a metastable state, potentially propagating an indeterminate logic value downstream. CDC paths are therefore prone to metastability-induced functional bugs. Per the formal-verification literature on CDC, conventional methods such as register-transfer-level (RTL) simulation and static timing analysis are not sufficient on their own to catch every CDC issue, leaving verification gaps. CDC-related bugs are among the most common causes of costly silicon re-spins.