Timing analysis and CDC
A pulse that is 1 for only one cycle (2 ns) in a 500 MHz clock domain is passed to a 100 MHz domain through a two-stage synchronizer. What problem can occur?
- AThe pulse is stretched to five cycles on the receiving side
- BThe pulse is always captured twice and treated as two events
- CThe pulse can fall between edges of the receiving clock and be lost without being captured
Show answer and explanation
Answer: C. The pulse can fall between edges of the receiving clock and be lost without being captured
The 100 MHz receiving clock has an edge only every 10 ns, so a 2 ns pulse often starts and ends between edges, in which case it is not captured at all. A synchronizer only reduces the probability of malfunction due to metastability; it does not catch short pulses, nor does it stretch them according to the frequency ratio. When passing a pulse from a fast domain to a slow one, stretch the pulse to well beyond the receiving period, or use toggle synchronization or a handshake.