AMBA AXI · Module 7
Burst Length, Size & Beats
The foundation of AXI data transfer — what a beat is, how burst length is AxLEN+1, how transfer size is 2^AxSIZE bytes per beat, the total-bytes formula, and the AXI3 vs AXI4 length limits.
AXI is a burst-based protocol: a single address transaction can move many data items. Module 6 introduced AxLEN and AxSIZE as signals; this module treats bursts as first-class, and it starts here with the three quantities every burst is built from — the beat, the burst length, and the transfer size. Getting these exactly right is foundational: every burst type, every per-beat address, the 4 KB rule, and narrow/unaligned handling in the rest of Module 7 are arithmetic on top of these definitions. This chapter pins down each term, the formulas that connect them, and the AXI3↔AXI4 limits.
1. The Beat — One Data Transfer
A beat is a single data transfer on a data channel — one successful VALID/READY handshake that moves up to one bus-width of data. On the write-data channel a beat is one WVALID&WREADY cycle carrying one WDATA word (with its WSTRB); on the read-data channel a beat is one RVALID&RREADY cycle carrying one RDATA word (with its RRESP). "Beat" is AXI's unit of data; a burst is just an ordered sequence of beats sharing one address transaction.
The width of a beat — how many bytes it can carry — is set by AxSIZE (Section 3), and is at most the data bus width. The number of beats is set by AxLEN (Section 2).
2. Burst Length — AxLEN + 1
The burst length is the number of beats in the burst, and it is AxLEN + 1. AxLEN is the encoded value, offset by one so that the minimum legal burst (one beat) is encoded as AxLEN = 0:
AxLEN | Beats in burst |
|---|---|
0 | 1 |
1 | 2 |
3 | 4 |
15 | 16 |
255 | 256 (AXI4 INCR only) |
The "+1" is the single most common off-by-one in AXI: a burst of 4 beats is AxLEN = 3, not 4. The field width — and therefore the maximum length — differs by version and burst type (Section 5).
3. Transfer Size — 2^AxSIZE Bytes per Beat
AxSIZE sets the number of bytes transferred per beat, as a power of two: bytes/beat = 2^AxSIZE. It must not exceed the data bus width.
AxSIZE | Bytes per beat |
|---|---|
0 | 1 |
1 | 2 |
2 | 4 |
3 | 8 |
4 | 16 |
5 | 32 |
6 | 64 |
7 | 128 |
A beat whose AxSIZE equals the full bus width is a full-width transfer (all byte lanes usable); a smaller AxSIZE is a narrow transfer that uses only some lanes each beat (Chapter 7.7). AxSIZE is fixed for the whole burst — every beat is the same size.
burst-beats — 4-beat burst (AxLEN=3), 4 bytes/beat (AxSIZE=2)
6 cycles4. Total Data and Why Bursts Exist
The total data a burst moves follows directly:
bytes transferred ≈ (AxLEN + 1) × 2^AxSIZE
i.e., beats × bytes-per-beat. (For INCR/WRAP the address advances across those bytes; for FIXED the same address is rewritten each beat — same byte count, different addressing, Chapter 7.2.) A full-width 64-bit bus (AxSIZE = 3, 8 bytes) doing a 16-beat burst (AxLEN = 15) moves 16 × 8 = 128 bytes from one address transaction.
That "one address transaction" is the whole point. Bursts amortize the address-phase and arbitration overhead across many beats: the manager arbitrates and issues an address once, then streams AxLEN+1 beats. This is what makes AXI efficient for memory and DMA traffic — without bursts, every data word would pay a full address handshake and arbitration round.
5. AXI3 vs AXI4 Length Limits
The maximum burst length depends on the version and the burst type:
AxLEN width | INCR max | FIXED / WRAP max | |
|---|---|---|---|
| AXI3 | 4 bits | 16 beats | 16 beats |
| AXI4 | 8 bits | 256 beats | 16 beats |
AXI4 widened AxLEN to 8 bits and raised the INCR ceiling to 256 beats, while FIXED and WRAP remain capped at 16 beats (a WRAP length must also be 2, 4, 8, or 16 — Chapter 7.4). AXI3's uniform limit was 16 beats for all types. This matters at AXI3↔AXI4 bridges: a 256-beat AXI4 INCR burst cannot pass through to an AXI3 side unchanged — it must be split into ≤16-beat bursts. (And independently of length, no burst may cross a 4 KB address boundary — Chapter 7.6.)
6. Common Misconceptions
7. Debugging Insight
8. Verification Insight
9. Interview Questions
10. Summary
Every AXI burst is built from three quantities. A beat is a single VALID/READY data transfer — AXI's unit of data. The burst length is AxLEN + 1 beats (the +1 offset so 1 beat = AxLEN 0; mind the off-by-one). The transfer size is 2^AxSIZE bytes per beat, constant across the burst and never exceeding the bus width. Together they move (AxLEN+1) × 2^AxSIZE bytes from a single address transaction — and that amortization of address/arbitration overhead over many beats is the entire reason AXI is burst-based and efficient for memory and DMA. The limits differ by version: AXI3 caps every type at 16 beats; AXI4 raises INCR to 256 while FIXED/WRAP stay at 16 (WRAP ∈ 16).
These definitions are the arithmetic foundation for the rest of Module 7: the burst types (FIXED/INCR/WRAP), per-beat address calculation, the 4 KB boundary rule, and narrow/unaligned transfers are all computations on beats, length, and size. Debug and verify them by converting any symptom back to (AxLEN+1) beats and 2^AxSIZE bytes. Next: the first burst type, FIXED — where every beat reuses the same address.
11. What Comes Next
You've got the burst foundation; next, the three burst types, starting with FIXED:
- 7.2 — FIXED Bursts (coming next) — the burst where every beat reuses the same address, and its FIFO/peripheral use case.
- 7.3 — INCR Bursts (coming soon) — the incrementing workhorse for memory access.
Previous: 6.8 — RESP & LAST Signals. Related: 6.1 — AxADDR, AxLEN & AxSIZE for the signals, and 6.2 — AxBURST for the burst-type selector. For the broader protocol catalog, see the AMBA family overview doc.