Timing analysis and CDC
Why must the output of combinational logic in the sending clock domain not be fed directly into a synchronizer in the receiving domain?
- ABecause the receiving side may capture a momentary glitch on the combinational output as a valid value
- BBecause combinational outputs have a low voltage and the receiving flip-flop does not respond
- CBecause capturing a combinational output always causes metastability
Show answer and explanation
Answer: A. Because the receiving side may capture a momentary glitch on the combinational output as a valid value
Within the same clock domain, glitches settle before the next clock edge and cause no problem. When captured by an asynchronous clock, however, the edge can come at any time, so a momentary 1 pulse on a signal that should be 0 can be captured. The rule is therefore that signals crossing domains come directly from a flip-flop output in the sending domain. Metastability does not occur every time, and CDC verification tools also flag combinational logic in front of synchronizers.