Timing analysis and CDC
What constraint applies when passing pulses from a fast clock domain to a slow one with toggle synchronization?
- AThe interval before the next pulse must be at least the several cycles the receiving side needs to finish detecting the change
- BThe pulse width must be stretched to at least 1.5 times the receiving clock period
- CThe sending and receiving clock frequencies must be in an integer ratio
Show answer and explanation
Answer: A. The interval before the next pulse must be at least the several cycles the receiving side needs to finish detecting the change
Toggle synchronization does not lose events even with short pulses, but if the next pulse arrives before the receiving side has finished detecting the change over the several synchronization cycles, the toggle signal goes 0→1→0 and both events may become invisible. For example, if the receiving side runs at 100 MHz and needs 3 cycles to detect a change, pulses must be spaced roughly 30 ns or more apart. When the spacing cannot be guaranteed, use a handshake that waits for the receiver's response, or an asynchronous FIFO. Neither pulse stretching nor a condition on the frequency ratio is required.