Skip to content
VLSI Mentor

AMBA AXI · Module 7

INCR Bursts

The AXI INCR burst (AxBURST=01) — the incrementing workhorse for memory access. How each beat's address advances by 2^AxSIZE, the per-beat address formula, length up to 256 beats, and the 4 KB-boundary constraint.

The INCR burst (AxBURST = 2'b01) is the one you'll meet most: an incrementing burst where each beat's address advances by the transfer size, so the burst sweeps a contiguous range of memory. Essentially all memory traffic — DMA to/from RAM, instruction fetch, buffer copies, structure reads — is INCR. Where FIXED reused one address, INCR walks forward; that single difference makes it the workhorse of the protocol. This chapter pins down how the address progresses, the per-beat formula, why INCR gets the long-burst extension, and the one rule that bounds it: the 4 KB boundary.

1. What an INCR Burst Is

In an INCR burst, each beat's address is the previous beat's address plus the number of bytes transferred — i.e., it increments by 2^AxSIZE every beat. The manager issues a single start address (AxADDR) and AxBURST = 2'b01; the addresses then walk forward:

beat n address = AxADDR + n × 2^AxSIZE, for n = 0 … AxLEN

So a burst with base 0x1000, AxSIZE = 2 (4 bytes/beat), and AxLEN = 3 (4 beats) touches 0x1000, 0x1004, 0x1008, 0x100C — a contiguous 16-byte span. Everything else is the standard burst machinery (AxSIZE bytes per beat, per-beat WSTRB, LAST on the final beat); the defining feature is the forward-marching address.

INCR burst addresses: beat 0 at A, beat 1 at A plus s, beat 2 at A plus 2s, final beat at A plus AxLEN times s.Beat 0ABeat 1A + sBeat 2A + 2sBeat AxLENA + AxLEN·s (LAST)12
Figure 1 — INCR address progression. From base A, each beat advances by 2^AxSIZE (here s): A, A+s, A+2s, … A+AxLEN·s. The burst covers a contiguous range of (AxLEN+1)·2^AxSIZE bytes from one address transaction — the natural fit for memory.

2. An INCR Read on the Wire

Here a 4-beat INCR read sweeps four words from base 0x1000 (AxSIZE = 2, 4 bytes/beat). One address handshake, four data beats, each returning the word at the next address:

incr-burst — 4-beat INCR read from 0x1000, 4 bytes/beat

6 cycles
Address 0x1000 issued once with ARBURST INCR; four read-data beats return the words at 0x1000, 0x1004, 0x1008, 0x100C, RLAST on the fourth.addr += 4 each beataddr += 4 each beatARBURST=INCR, base 0x1000, AxSIZE=2ARBURST=INCR, base 0x1000,AxSIZE=2beat 3 → 0x100C, RLASTbeat 3 → 0x100C, RLASTaclkaraddr100010001000100010001000arburst01 INCR01 INCR01 INCR01 INCR01 INCR01 INCRrvalidrdataXM[1000]M[1004]M[1008]M[100C]M[100C]rlastt0t1t2t3t4t5
Figure 2 — incr-burst: a 4-beat INCR read (AxLEN=3, ARBURST=01) from base 0x1000, 4 bytes/beat. The address is issued once; the four R beats return the words at 0x1000, 0x1004, 0x1008, 0x100C in order, RLAST on the last. The per-beat addresses are implicit — derived by the increment, not re-sent.

3. The Workhorse — Where INCR Is Used

INCR is the default for anything that touches a contiguous memory range:

  • DMA to/from RAM — streaming a buffer in or out, address marching through the buffer.
  • Cache line fills / evictions — pulling or writing back a contiguous line (when not using WRAP, Chapter 7.4).
  • Instruction fetch — sequential code is a forward sweep of addresses.
  • Structure / array access — reading or writing a contiguous block.

If the data lives across a span of addresses rather than at one port, it's INCR. That covers the overwhelming majority of high-bandwidth traffic, which is why INCR — not FIXED or WRAP — is the type that received AXI4's long-burst extension.

INCR is used for DMA to RAM, cache line fills, instruction fetch, and array or structure access — all contiguous-memory traffic.DMA ↔ RAMbuffer streamingCache fillcontiguous lineInstr fetchsequential codeArray accesscontiguous block12
Figure 3 — INCR's domain: contiguous-memory traffic. DMA buffers, cache-line fills, instruction fetch, and array/structure access all sweep a range of addresses, so they use INCR. The forward-marching address maps directly onto how memory is laid out — one transaction covers a whole block.

4. Length up to 256 — and the 4 KB Bound

INCR is the only burst type that reaches AXI4's 256-beat maximum (AxLEN up to 255); AXI3 caps it at 16, and FIXED/WRAP stay at 16 in both. Long INCR bursts are what let a DMA move a large contiguous block in one transaction.

But there is one hard limit that bites INCR specifically: a burst must not cross a 4 KB address boundary (Chapter 7.6). Because INCR's address marches forward, a long enough burst can reach a 4 KB boundary — and the manager must split the transfer at that boundary into separate bursts. (The 4 KB rule exists so that any single burst stays within one minimum-page region, so it can't span two regions that might map to different slaves.) FIXED never moves so it can't cross; WRAP wraps within its own aligned block; only INCR's forward progression makes the 4 KB rule an active design concern.

An INCR burst scales to 256 beats but must split at any 4 KB boundary it would otherwise cross.noyesINCR burst (upto 256 beats)Would itcross a 4 KBboundary?Issue as oneburstSplit intobursts at theboundary
Figure 4 — INCR length and the 4 KB bound. INCR scales to 256 beats (AXI4), but its forward-marching address means a long burst can hit a 4 KB boundary — which it must not cross. The manager splits the transfer at the boundary into two bursts. This is unique to INCR among the burst types; FIXED can't move and WRAP stays within its block.

5. Common Misconceptions

6. Debugging Insight

7. Verification Insight

8. Interview Questions

9. Summary

The INCR burst (AxBURST = 2'b01) is AXI's workhorse: each beat's address advances by 2^AxSIZE, so beat n targets AxADDR + n·2^AxSIZE and the burst sweeps a contiguous memory range. That maps directly onto how memory is laid out, which is why essentially all high-bandwidth traffic — DMA to/from RAM, cache-line fills, instruction fetch, array/structure access — is INCR, and why INCR is the only type that gets AXI4's 256-beat extension (AXI3 and the other types stay at 16). Only the base address rides the bus; the per-beat addresses are derived arithmetic.

The defining constraint, unique among burst types, is the 4 KB boundary: because INCR's address marches forward, a burst can reach a 4 KB boundary it must not cross, so masters split transfers there. Its bugs are address-arithmetic (wrong stride if you don't step by 2^AxSIZE), boundary crossings (tail-of-transfer corruption), and unaligned-edge handling. Debug and verify by reconstructing AxADDR + n·2^AxSIZE and checking the 4 KB boundary. Next: the third type, WRAP — where the address increments but wraps within an aligned block, the natural fit for cache-line fills.

10. What Comes Next

You've got the incrementing workhorse; next, the wrapping variant:

  • 7.4 — WRAP Bursts (coming next) — bursts whose address increments then wraps within an aligned block, the natural fit for critical-word-first cache-line fills.
  • 7.5 — Burst Address Calculation (coming soon) — worked per-beat address derivations for every burst type.

Previous: 7.2 — FIXED Bursts. Related: 7.6 — The 4KB Boundary Rule for the constraint INCR must respect, and 7.1 — Burst Length, Size & Beats for the underlying arithmetic. For the broader protocol catalog, see the AMBA family overview doc.

Continue learning

Standards & specifications

Governing standard
Arm AMBA AXI Protocol Specification (IHI 0022)(opens Arm in a new tab)

Defines the AXI channels, handshake and ordering rules. RTL structure, interconnect topology and verification strategy are design choices this specification does not mandate.

This page also covers RTL structure, verification approach and debugging technique. Those are engineering practice built on the standard, not requirements the standard itself imposes.

Where this fits

Part of the AMBA AXI curriculum.