I/O Interfaces & Buses
In the VALID/READY handshake used on each AXI channel, when is data transferred?
- AAt a clock edge when both the sender's VALID and the receiver's READY are 1
- BThe instant the sender sets VALID to 1, regardless of READY
- CThe instant the receiver sets READY to 1, regardless of VALID
Show answer and explanation
Answer: A. At a clock edge when both the sender's VALID and the receiver's READY are 1
The sender raises VALID when it has valid data, and the receiver raises READY when it can accept it; a transfer happens at a clock edge where both are 1. A busy receiver can hold READY low to make the sender wait (backpressure), so blocks of different speeds can connect without losing data. The rule that the sender must not wait for READY before asserting VALID prevents the two sides from waiting on each other forever.
- A. Correct. Transfer happens only when both agree.
- B. The receiver cannot take data until it is ready.
- C. Without valid data from the sender, nothing is transferred.