Skip to content

AMBA AXI · Module 6

RESP & LAST Signals

Consolidate AXI's response and burst-terminator signals — BRESP/RRESP (OKAY/EXOKAY/SLVERR/DECERR), the write-aggregate vs read-per-beat asymmetry, and WLAST/RLAST and their consistency with AxLEN.

This chapter consolidates two signal groups that have surfaced across the channel chapters and deserve a single, precise treatment: the response codes (BRESP on the write-response channel, RRESP on the read-data channel) and the burst terminators (WLAST, RLAST). The responses tell the manager whether each access succeeded — and the encoding is shared between reads and writes, but how many responses you get differs. The LAST signals mark the final beat of a burst — and their timing must agree exactly with AxLEN. Both are correctness-critical and a frequent source of hangs and misreported errors, so this is the chapter to nail them down.

1. RESP — The Response Encoding

BRESP (write) and RRESP (read) share the same 2-bit encoding:

xRESPNameMeaning
2'b00OKAYNormal access success.
2'b01EXOKAYExclusive access success — only valid for an exclusive access (AxLOCK=1, Chapter 6.4).
2'b10SLVERRSlave error — the access reached the subordinate, but it could not complete it correctly (unsupported transfer, internal error, write to a read-only location, etc.).
2'b11DECERRDecode error — no subordinate exists at that address; the interconnect's default slave returns it when address decode finds no target.

The crucial distinction is SLVERR vs DECERR: SLVERR means "I'm the right slave and I failed"; DECERR means "there is no slave here" (an address-decode miss, generated by the interconnect, not by a real endpoint). EXOKAY is special — it appears only for exclusive accesses and signals the atomic sequence succeeded; a normal access never returns it.

RESP 00 OKAY, 01 EXOKAY exclusive only, 10 SLVERR slave error, 11 DECERR decode error from default slave.00 OKAYnormal success01 EXOKAYexclusive success (AxLOCK=1only)10 SLVERRright slave, failed access11 DECERRno slave — interconnect default12
Figure 1 — the shared 2-bit RESP encoding. OKAY (normal success), EXOKAY (exclusive success only), SLVERR (the addressed slave failed), DECERR (no slave at the address — from the interconnect's default slave). The same codes apply to BRESP and RRESP; the key contrast is SLVERR 'wrong result from the right slave' vs DECERR 'no slave there at all'.

2. One Response vs One Per Beat

A subtle but important asymmetry: a write burst gets a single response; a read burst gets a response per beat.

  • BRESP is driven once per write transaction on the B channel — a single aggregate result for the whole burst, after all W beats are accepted.
  • RRESP is driven on every R beat — each returned data beat carries its own response, so different beats of the same burst can report different statuses (e.g., most beats OKAY, one SLVERR).

This follows from the channel structure: the write-response channel B is single-beat by nature (one response closes the write), while the read-data channel R is multi-beat (data and its status arrive together, beat by beat). An error on one read beat does not cancel the rest of the burst — the subordinate still returns the remaining beats and asserts RLAST normally; the manager decides how to handle the flagged beat.

Write burst yields a single BRESP; read burst yields per-beat RRESP, one per data beat, which may differ.Write burstN W-beats1 × BRESPaggregate, on B channelRead burstN R-beatsN × RRESPper beat — may differ12
Figure 2 — response cardinality. A write burst produces one BRESP covering the whole transaction on the B channel. A read burst produces one RRESP per R beat, so each data beat carries its own status and beats can differ. An error beat doesn't abort a read — the remaining beats and RLAST still come.

3. LAST — Marking the End of a Burst

WLAST and RLAST mark the final beat of a data burst:

  • WLAST — the manager asserts it on the last write-data (W) beat, telling the subordinate "this is the final beat of the write burst."
  • RLAST — the subordinate asserts it on the last read-data (R) beat, telling the manager "this is the final beat of the read burst."

LAST exists only on the data channels (W, R) because only they are multi-beat. The address channels (AW, AR) carry a single address transfer, and the B channel is a single response — none of them needs a terminator. The directions mirror who drives the data: the manager produces write data (so it drives WLAST); the subordinate produces read data (so it drives RLAST).

resp-last — 4-beat read burst, per-beat RRESP, RLAST on the final beat

6 cycles
A read burst of four beats: RRESP is OKAY, OKAY, SLVERR, OKAY across the beats, and RLAST asserts only on the fourth beat matching AxLEN+1.4 beats = AxLEN(3)+1beat 2: RRESP=SLVERR (burst continues)beat 2: RRESP=SLVERR (…RLAST on final beatRLAST on final beataclkrvalidrreadyrdataXD0D1D2D3D3rrespXOKAYOKAYSLVERROKAYOKAYrlastt0t1t2t3t4t5
Figure 3 — the resp-last waveform: a 4-beat INCR read burst (AxLEN=3). Each R beat carries its own RRESP — here beat 2 returns SLVERR while the others are OKAY — and the burst still runs to completion. RLAST asserts on the 4th and final beat, exactly matching AxLEN+1 beats. The error beat does not abort the burst.

4. LAST Must Agree With AxLEN

LAST is not free-running — its position is determined by AxLEN. A burst has exactly AxLEN + 1 beats, so LAST must assert on beat number AxLEN + 1 and on no other:

Count beats: assert LAST on beat AxLEN+1; early or late assertion is a protocol violation causing short bursts or hangs.yes, on AxLEN+1beforeafter / missingBeat countreachesAxLEN+1?Assert WLAST /RLAST — burstends cleanlyAsserted early →short burst(loss / hang)Asserted late /never → burstopen (hang)
Figure 4 — LAST consistency. The subordinate (RLAST) or manager (WLAST) counts beats; LAST must assert on exactly beat AxLEN+1. Asserting it early ends the burst short (missing beats — a likely hang or data loss); asserting it late or never leaves the burst open (the receiver waits forever — a hang). Both are protocol violations.

A receiver uses LAST to know the burst is complete and to release/match resources (e.g., an outstanding-transaction slot, or the next transaction's ordering). If WLAST/RLAST disagrees with AxLEN, the burst is malformed: assert early and beats are lost or the next transaction is misframed; assert late or never and the receiver waits indefinitely — a classic hang.

5. Common Misconceptions

6. Debugging Insight

7. Verification Insight

8. Interview Questions

9. Summary

RESP and LAST close out the AXI signal set. The response codes — shared 2-bit encoding on BRESP and RRESP — are OKAY (success), EXOKAY (exclusive success only), SLVERR (the addressed slave failed), and DECERR (no slave at the address, from the interconnect default slave); the key contrasts are SLVERR vs DECERR (right-slave-failed vs no-slave-there) and the write/read asymmetryBRESP is one aggregate response per write transaction, while RRESP is per beat, so read beats can differ and an error beat never aborts the burst. The terminatorsWLAST (manager-driven) and RLAST (subordinate-driven) — mark the final beat and exist only on the multi-beat data channels; their timing must match AxLEN exactly (beat AxLEN+1), or the burst is short (loss) or open (hang).

Their bugs are the bread-and-butter of AXI bring-up: misattributed errors (confusing SLVERR/DECERR), "missing" write errors (looking at W instead of B), overlooked per-beat read errors, and — most painfully — hangs and corrupted transaction tracking from mis-framed LAST. Debug and verify them by checking every response against a reference model and every LAST against AxLEN. This completes Module 6 — the AXI signal reference. Next, Module 7 builds on these signals to treat bursts as first-class: how beats, length, and size compose real data transfers.

10. What Comes Next

You've finished the per-signal reference; Module 7 turns to bursts as a whole:

Previous: 6.7 — WSTRB Write Strobes. Related: 6.4 — AxLOCK & AxCACHE for EXOKAY and exclusive access. For the broader protocol catalog, see the AMBA family overview doc.