Timing

Clock Domain Crossing (CDC)

The interface between two parts of a design operating on different clocks, requiring special synchronization.

Detailed Explanation

When data moves between clock domains, metastability can occur if the receiving flip-flop samples during the data's transition. Two-flip-flop synchronizers reduce metastability probability to acceptable levels for single-bit signals.

Multi-bit signals require more care—bits might synchronize on different cycles, causing incorrect values. Solutions include gray coding (only one bit changes at a time), handshake protocols, or asynchronous FIFOs with gray-coded pointers.