Clock Domain Crossing (CDC) refers to the transfer of data or control signals between two parts of a design that operate on different clock domains.
A clock domain is a group of flip-flops driven by the same clock signal. When signals move between different clock domains, timing is unpredictable and can lead to metastability, data corruption, or functional failures.
CDC is the process of transferring signals from one clock domain to another clock domain safely and reliably.
Suppose a design has:
Clock Domain A = 100 MHz
Clock Domain B = 200 MHz
Clock A
│
Source FF
│
▼
Signal
│
▼
Synchronizer
│
▼
Destination FF
│
Clock B
The signal crosses from Clock A to Clock B.
This is a CDC path.
Different clocks may have: