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.
