Skip to content

AMBA AXI · Module 11

DMA, Video & Network Use Cases

AXI4-Stream in real systems — the MM-to-stream DMA bridge, video pipelines (SOF/EOL framing), and network packet processing (TLAST/TKEEP/TDEST). How every stream signal maps to a concrete role across three canonical pipelines.

This chapter closes Module 11 by grounding everything — TDATA, TLAST, TKEEP, TUSER, TID/TDEST, and backpressure — in three canonical use cases: DMA (bridging memory-mapped and streaming), video (pixel pipelines), and network (packet processing). These are where AXI4-Stream actually lives, and seeing each signal play its real role makes the whole module concrete. The unifying theme: every "T" signal maps to a tangible job, and real systems combine all three AXI flavors — memory-mapped for storage, stream for dataflow, AXI4-Lite for control.

1. DMA — Bridging Memory-Mapped and Stream

The most fundamental use case is the DMA that bridges memory-mapped AXI and AXI4-Stream. Two directions:

  • MM-to-Stream (MM2S / "read" DMA): reads data from memory over full AXI4 (addressed, bursting), and emits it as an AXI4-Stream into a downstream block (e.g., an accelerator). It converts addressed memory data into a flow.
  • Stream-to-MM (S2MM / "write" DMA): receives an AXI4-Stream and writes it to memory over full AXI4. It uses TLAST to know a packet is complete — finalizing a buffer, recording the length, advancing a descriptor, raising an interrupt.

This is the MM-edges, stream-middle pattern (Chapter 11.1): memory-mapped AXI4 at the memory endpoints (where addressing and bursts are needed), AXI4-Stream through the compute (where data just flows), and AXI4-Lite for the DMA's control registers. The DMA is the glue that converts between the addressed and streaming worlds.

Memory to MM2S DMA to accelerator stream to S2MM DMA to memory; AXI4-Lite controls the DMAs.MemoryAXI4 (addressed)MM2S DMAAXI4 read → streamAcceleratorAXI4-Stream computeS2MM DMAstream → AXI4 write(TLAST)AXI4-LiteDMA control registers12
Figure 1 — the DMA bridge. An MM2S DMA reads memory over full AXI4 (addressed, bursting) and emits an AXI4-Stream into an accelerator; the accelerator streams results to an S2MM DMA that writes them back to memory over AXI4, using TLAST to delimit buffers. AXI4-Lite carries the DMAs' control registers. Memory-mapped edges, streaming middle.

2. Video — Pixel Pipelines

In a video pipeline, pixels stream through processing stages (scaler, color-space converter, on-screen display, etc.), and the stream signals carry the frame structure:

  • TDATA = the pixel data (one or more pixels per beat).
  • TLAST = end-of-line (EOL) — marks the last pixel of each scanline (each line is a packet).
  • TUSER[0] = start-of-frame (SOF) — asserted on the first pixel of each frame (the standard AXI4-Stream Video convention), framing the stream into frames.
  • Backpressure (TREADY) throttles the pipeline; FIFOs / frame buffers decouple stages, and a real-time camera source needs buffering to absorb downstream stalls (Chapter 11.6) or frames are torn/dropped.

So a video frame is a sequence of lines (each TLAST-delimited), with SOF on TUSER marking the frame's start. Downstream stages use SOF+EOL to track position within the frame. This combination — TDATA/TLAST/TUSER for framing plus TREADY flow control — is the canonical streaming-video design.

Camera to scaler to color converter to display, with TLAST end-of-line, TUSER start-of-frame, and backpressure flow control.Camerareal-time sourceScalerSOF/EOL awareColor convpixel processingDisplayconsumes frames12
Figure 2 — a video pixel pipeline. Pixels stream from a camera through processing stages (scaler, color converter, OSD) to a display. TDATA carries pixels, TLAST marks end-of-line, TUSER[0] marks start-of-frame, and TREADY backpressure plus FIFOs/frame buffers pace the pipeline. The real-time camera needs buffering to absorb downstream stalls.

3. Network — Packet Processing

In network/packet processing, Ethernet frames flow through parsers, classifiers, and switches:

  • TDATA = the frame bytes.
  • TLAST = end-of-frame — frames are variable-length packets, delimited by TLAST (no length field).
  • TKEEP = the partial last beat — since frame length rarely divides the bus width, TKEEP marks the valid bytes of the final beat, giving the exact frame length (Chapter 11.4).
  • TDEST/TID = routing — a stream switch routes whole frames by TDEST to the right processor/queue (CPU, offload engine), with TID identifying the source port (Chapter 11.5).
  • TUSER = per-frame status — e.g., a CRC-error or classification-result flag.

So a frame is a TLAST-delimited, TKEEP-sized packet, routed by TDEST, tagged by TID, with status on TUSER. This exercises essentially every stream signal — which is why networking is the showcase use case for AXI4-Stream's full feature set.

MAC sends a frame as a stream to a switch which routes it by TDEST to a processor, with TLAST marking the frame end.Ethernet MACStream switchProcessor/queueframe: TDATA … (TKEEP, TUSER status)frame: TDATA …(TKEEP, TUSER…TLAST = end-of-frameroute whole frame by TDEST (TID = port)route whole frameby TDEST (TID =…TLAST → next frame re-routedTLAST → nextframe…
Figure 3 — a network packet pipeline. An Ethernet MAC presents frames as AXI4-Stream (TLAST=end-of-frame, TKEEP sizing the partial last beat, TUSER carrying CRC/status); a switch routes whole frames by TDEST (with TID identifying the source) to a CPU queue or offload engine. Networking exercises nearly every stream signal.

4. Every Signal Maps to a Role

The throughline across all three use cases: each stream signal has a concrete real-world job.

SignalRoleExample
TDATAthe payloadsamples / pixels / frame bytes
TVALID/TREADYflow controlpace producer/consumer, backpressure
TLASTunit boundarypacket / line (EOL) / frame
TKEEPpartial last beatvariable frame length
TUSERsidebandSOF (video), CRC/status (network)
TID/TDESTidentify / routesource port / destination queue

And every real system layers the three AXI flavors: memory-mapped AXI4 for addressed storage (DMA endpoints, frame buffers), AXI4-Stream for dataflow (the compute/processing pipeline), and AXI4-Lite for control (configuration/status registers). Recognizing which flavor fits which part — and which stream signal carries which structure — is the practical payoff of the whole AXI curriculum so far.

Stream signals map to roles; systems combine memory-mapped AXI4, AXI4-Stream, and AXI4-Lite.endpointspipelineregistersStream signals →concrete rolesMemory-mappedAXI4: storageAXI4-Stream:dataflowAXI4-Lite:control
Figure 4 — signals to roles, and the three-flavor system. Each stream signal has a concrete job (TDATA payload, TLAST boundary, TKEEP length, TUSER sideband, TID/TDEST routing, TVALID/TREADY flow). Real systems combine memory-mapped AXI4 (storage), AXI4-Stream (dataflow), and AXI4-Lite (control) — the canonical SoC structure.

5. Common Misconceptions

6. Debugging Insight

7. Verification Insight

8. Interview Questions

9. Summary

AXI4-Stream lives in three canonical use cases that put every signal to work. A DMA bridges memory-mapped AXI and stream — MM2S reads memory (AXI4) and emits a stream; S2MM receives a stream and writes memory (AXI4), using TLAST to delimit buffers — the MM-edges, stream-middle pattern with AXI4-Lite control. A video pipeline streams pixels (TDATA) framed by EOL (TLAST) and SOF (TUSER[0]), paced by backpressure with FIFOs/frame buffers, where the real-time camera needs buffering. A network pipeline carries variable-length frames — TLAST end-of-frame, TKEEP sizing the partial last beat, TDEST/TID routing whole frames through a switch, TUSER status — exercising nearly every signal.

The unifying lesson: every stream signal maps to a concrete role (TDATA payload, TLAST boundary, TKEEP length, TUSER sideband, TID/TDEST routing, TVALID/TREADY flow), and real systems combine all three AXI flavors — memory-mapped for storage, stream for dataflow, AXI4-Lite for control — each where its model fits. Streaming is the right abstraction for sequential dataflow precisely because forcing it through an addressed model would be wasteful overhead. This completes Module 11 (AXI4-Stream). Next, Module 12 returns to the heart of memory-mapped systems: the AXI interconnect — how it routes, arbitrates, and converts between many managers and subordinates.

10. What Comes Next

You've grounded AXI4-Stream in real systems; Module 12 turns to the interconnect:

Previous: 11.6 — Stream Backpressure. Related: 11.1 — The AXI4-Stream Mental Model for the MM-edges/stream-middle pattern, and 10.1 — Why AXI4-Lite Exists for the control flavor. For the broader protocol catalog, see the AMBA family overview doc.