HEADER7F / Guide 02 · Handshakes

Guide 02 · Handshakes

A stalled response is still a promise.

If the receiver is not ready, the transfer has not completed. The cycles between “here is the response” and “accepted” deserve their own test.

Updated 18 October 2026

The edge decides.

For an AXI channel, a transfer occurs when VALID and READY are both high at the sampling edge. VALID alone offers a transfer. READY alone does not accept one. When VALID is high and READY is low, the source must keep the offer and its payload stable until acceptance.

Apply the stall after the response appears.

For the read channel, hold RREADY low while RVALID is asserted. Watch RVALID, RDATA and RRESP across each stalled cycle. For the write-response channel, do the same with BREADY, BVALID and BRESP.

Illustrative read response, not a product measurement
CycleRVALIDRREADYRDATAResult
1100x12345678Pending
2100x12345678Still pending
3110x12345678One accepted transfer

Count handshakes, not VALID cycles.

A response held for three cycles is not three responses. Increment your accepted-transfer count at the handshake. Separately monitor stability while it waits. This distinction catches both disappearing responses and scoreboards that overcount correct behavior.

Try short stalls and longer ones, then release READY. Keep reset as a separate scenario with explicit reset rules; do not apply an ordinary stalled-transfer assertion blindly across reset.

Reference: AMD AXI protocol-check descriptions for response stability and VALID persistence.

Next: preserve enough context to replay a failure →

Does the failure only appear under load?

Tell us which channel stalls and what changes when it does.

Describe the failure