Hardware interview practice
Second Synchronizer Stage Changes Too Soon
async_in enters a destination clock domain through two flops. sync1 is the first stage and sync2 is the second stage. Each column is a destination rising edge. Rule to apply: With nonblocking sequential updates, sync2 at an edge receives the previous edge's sync1 value. Therefore a new stable level must appear in sync1 before it can appear in sync2 on a later edge. What is the most direct root cause suggested by the waveform?
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.
