Q040FreeDesign Verification
Second Synchronizer Stage Changes Too Soon
Interview prompt
Question
async_in crosses into a destination clock domain through two flops, sync1 followed by sync2. Each column shows a destination rising edge. With nonblocking sequential updates, sync2 receives the previous edge's sync1 value. A new stable level must therefore appear in sync1 before reaching sync2 on a later edge. What root cause does the waveform most directly suggest?

Choose one
Answer choices
- A. Two-flop synchronizers require sync1 and sync2 to toggle together.
- B. async_in must remain low forever.
- C. sync1 should change one edge after sync2.
- D. sync2 is bypassing the intended one-edge separation from sync1.
