Full AXI4 is built for moving bursts of data between processors and memories. Most blocks in a chip do something simpler: they have a few control and status registers that software reads and writes one word at a time. This chapter covers the two lighter members of the AXI4 family: AXI4-Lite for register access, and AXI4-Stream for data that flows without addresses.

AXI4-Lite is the subset of AXI4 for simple, register-style interfaces. It keeps the five channels and the VALID/READY handshake, so it connects to an AXI interconnect without a protocol change, but every transaction is a single beat that uses the full data bus. There are no bursts, no transaction IDs and no exclusive accesses. This article lists exactly what AXI4-Lite keeps and drops, and what that means for masters, slaves and the interconnect between them.

7 min read | Intermediate

What You'll Learn

  • List the signals of an AXI4-Lite interface
  • Explain what AXI4-Lite gives up compared with AXI4
  • Use write strobes for byte-wide register writes
  • Connect AXI4-Lite slaves to full AXI4 masters

The Rules of AXI4-Lite

The specification defines AXI4-Lite in a few lines:

  • every transaction has a burst length of 1;
  • every access uses the full width of the data bus, which is 32 or 64 bits;
  • every access is Non-modifiable and Non-bufferable;
  • exclusive accesses are not supported, so EXOKAY never appears.

Those rules remove most of the AXI4 signals:

What remains is: AWADDR, AWPROT, WDATA, WSTRB, BRESP, ARADDR, ARPROT, RDATA, RRESP, plus VALID and READY on each channel and the global ACLK and ARESETn. Without bursts there is nothing for AxLEN, AxSIZE, AxBURST, WLAST or RLAST to describe; every beat is the last one.

Quick Check

Q: Can an AXI4-Lite master have several transactions in flight?

Show Answer

Yes. AXI4-Lite supports multiple outstanding transactions, but a slave may restrict this with its READY signals. Because there are no IDs, all responses come back in order.

Write Strobes Still Matter

AXI4-Lite keeps WSTRB. Masters and interconnects must always drive correct strobes, which lets software write a single byte of a register. A slave has three choices:

  • use the strobes fully;
  • ignore them and treat every write as a full-width write;
  • detect strobe combinations it does not support and answer with an error.

A slave that provides memory must support the strobes fully. A register block may choose a simpler option, as long as its documentation says so.

Responses

BRESP and RRESP can be OKAY, SLVERR or DECERR, but never EXOKAY. A register block typically answers SLVERR for an address it does not implement, and the interconnect's default slave answers DECERR for an address that belongs to no slave.

A Register Slave in Action

The register slave from Designing an AXI4-Lite Register Slave has a read/write CTRL register, a byte-writable DATA register, a read-only COUNT of accepted writes and a read-only ID. The full AXI4 testbench master drives it with single-beat transactions:

Output
35  AW  id=0 addr=0x000 len=0 size=4 INCR
35  W   data=0x000000c1 strb=1111 last
55  W   data=0x11223344 strb=1111 last
55  B   id=0 OKAY
75  AW  id=0 addr=0x004 len=0 size=4 INCR
95  AW  id=0 addr=0x004 len=0 size=4 INCR
95  B   id=0 OKAY
145  W   data=0xaa000000 strb=1000 last
165  AW  id=0 addr=0x00c len=0 size=4 INCR
165  W   data=0xffffffff strb=1111 last
165  B   id=0 OKAY
185  AW  id=0 addr=0x040 len=0 size=4 INCR
185  W   data=0x12345678 strb=1111 last
185  B   id=0 OKAY
205  B   id=0 SLVERR
215  AR  id=0 addr=0x000 len=0 size=4 INCR
225  R   id=0 data=0x000000c1 OKAY last
235  AR  id=0 addr=0x004 len=0 size=4 INCR
245  R   id=0 data=0xaa223344 OKAY last
255  AR  id=0 addr=0x008 len=0 size=4 INCR
265  R   id=0 data=0x00000004 OKAY last
275  AR  id=0 addr=0x00c len=0 size=4 INCR
285  R   id=0 data=0x41584c31 OKAY last
295  AR  id=0 addr=0x040 len=0 size=4 INCR
305  R   id=0 data=0x00000000 SLVERR last

The single-byte write with WSTRB = 1000 changed only the top byte of DATA, which reads back as 0xAA223344. The write to the read-only ID register was ignored (ID still reads 0x41584C31), and the accesses to 0x040, where there is no register, got SLVERR. Every R beat has RLAST high, because in AXI4-Lite every transfer is the last.

AXI4 Masters and AXI4-Lite Slaves

Three of the four combinations just work: an AXI4-Lite master on an AXI4 slave, and Lite on Lite, and full on full. The case that needs care is a full AXI4 master talking to an AXI4-Lite slave:

  • ID reflection: the master expects its ID back on BID and RID. Either a bridge stores and returns the ID, or the Lite slave includes ID reflection logic itself.
  • Conversion: if the master might send bursts, a converter splits each burst into single transactions, combines their write responses into one (any error wins), and drops AxLOCK and AxCACHE. An exclusive write through such a converter always fails.

In practice, AXI interconnects include these converters on their Lite ports, so a register block can stay simple.

Quick Check

Q: An AXI4 master sends a four-beat write burst to an AXI4-Lite slave through a converter, and the third beat fails. What response does the master get?

Show Answer

The converter turns the burst into four single writes and combines their four responses into one. Errors are sticky, so the master receives one write response with the error.

Running It in ChipVerify Lab

The example contains the register slave and the testbench above. Change the strobes of the byte write and predict the DATA value before you run it.

Common Mistakes

Mistake #1: Sending a burst to an AXI4-Lite slave

A Lite slave ignores AxLEN. A burst sent straight to it is treated as one beat and the remaining data upsets the following transactions. Put a converter in between if the master can issue bursts.

Mistake #2: Forgetting the IDs

Connected directly to a full AXI master, a Lite slave must reflect AWID and ARID on BID and RID, or the master cannot match its responses.

Mistake #3: Choosing a 16-bit or 128-bit AXI4-Lite bus

AXI4-Lite allows only 32-bit and 64-bit data buses. Use 64 bits only for registers that need 64-bit atomic access.

Practice Exercise

Challenge: Two Middle Bytes

Change the strobes of the third write from 1000 to 0110, keeping the data 0xAA000000. What does DATA read back as?

Hint

Strobe bits 1 and 2 enable bytes 1 and 2 of WDATA. What does 0xAA000000 carry in those bytes?

Solution
Output
245  R   id=0 data=0x11000044 OKAY last

Bytes 1 and 2 of 0xAA000000 are both 0x00, so they replace 0x33 and 0x22 in 0x11223344. Bytes 0 and 3 keep their values: 0x11000044. The 0xAA in byte 3 is ignored because its strobe is low.

Open the ready-made example in the lab and run the simulation.

Summary

  • AXI4-Lite is AXI4 with single-beat, full-width transactions: no bursts, no IDs, no exclusive access.
  • It keeps the five channels, VALID/READY, the addresses, AxPROT, WSTRB and the responses.
  • The data bus is 32 or 64 bits; every R transfer counts as the last.
  • Slaves may use, ignore or reject write strobes; memories must use them.
  • A full AXI4 master needs ID reflection and burst conversion to talk to a Lite slave.
Did you find what you were looking for?

Quiz

No quiz questions available for this article.