I/O Interfaces & Buses

In the VALID/READY handshake used on each AXI channel, when is data transferred?

  1. AAt a clock edge when both the sender's VALID and the receiver's READY are 1
  2. BThe instant the sender sets VALID to 1, regardless of READY
  3. 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.
Practice this topic Back to topic

More I/O Interfaces & Buses questions

  1. What is the advantage of burst transfers in AXI?
  2. In AXI, what is the advantage of issuing the next read request without waiting for the previous one's response (having multiple outstanding requests)?
  3. What is AXI4-Lite mainly used for?
  4. What is a characteristic of AXI4-Stream?
  5. Why have large SoCs adopted a network-on-chip (NoC) instead of a single shared bus?