Timing analysis and CDC
Each bit of 4-bit data is passed to another clock domain through its own two-stage synchronizer. What problem can occur when the data changes from 0111 to 1000?
- AThe bits may be captured in different cycles, so an intermediate value such as 1111 or 0000 may be received
- BPassing through the synchronizers aligns all bits to the same cycle, so no problem occurs
- CAll four bits become metastable and never return to either 0 or 1
Show answer and explanation
Answer: A. The bits may be captured in different cycles, so an intermediate value such as 1111 or 0000 may be received
For each bit, a two-stage synchronizer does not determine whether a change is captured at the current edge or the next one. In a change from 0111 to 1000 all four bits change, so for one cycle the receiver may get a value in which only some bits have their new value, such as 1111, 0000 or 0100. If the receiver uses that value, it malfunctions. Metastability resolves to 0 or 1 over time. For counter values, convert to Gray code so that only one bit changes; for arbitrary data, use a handshake or an asynchronous FIFO.