Skip to content

AMBA AXI · Module 19

AXI4-Stream Video Pipeline

Build a capture-process-display video pipeline with AXI4-Stream — the address-less streaming plane where data flows continuously: how pixels stream through processing stages, TLAST marks frame/line boundaries, TUSER carries start-of-frame, backpressure throttles the whole pipeline, and why streaming (not memory-mapped) AXI fits continuous dataflow.

The three previous case studies were all memory-mapped — they had addresses (CPU loads, DMA writes, CSR registers). A fourth, fundamentally different pattern has no addresses at all: AXI4-Stream, where data simply flows from producer to consumer continuously. The canonical example is a video pipeline: pixels stream from a camera (capture) through processing stages (filters, format conversion) to a display, in an unbroken flow where each pixel goes to "the next stage," not to an address. This chapter builds a capture→process→display pipeline to show the streaming plane — AXI4-Stream's TVALID/TREADY/TDATA/TLAST/TUSER carrying continuous dataflow, how frame/line structure is marked, and how backpressure throttles the whole chain — completing AXI's design-space tour with its address-less member.

1. The Streaming Pattern: Continuous Dataflow, No Addresses

AXI4-Stream carries a continuous flow of data from a producer to a consumer with no address — data goes to "whoever's downstream," not to a location. A video pipeline is the archetype: the camera produces a stream of pixels, each processing stage consumes the stream, transforms it, and produces a new stream, and the display consumes the final stream — a dataflow graph, not a memory map. The handshake is the familiar TVALID/TREADY (a beat transfers when both are high), and the payload is TDATA (the pixel/data), but there are no AW/AR/address channels — the stream is the channel. This is the right model when data flows in one direction continuously and position-in-the-stream, not address, defines where data goes.

AXI4-Stream: camera produces pixel stream, processing stages transform it, display consumes; TVALID/TREADY/TDATA, no address channels.Camera(capture)produces pixelsProcess stagefilter/convertProcess stagefilter/convertDisplay (sink)consumes pixelsTVALID/TREADYhandshake, noaddressContinuousdataflowstream = channel12
Figure 1 — the streaming pattern: continuous dataflow with no addresses. AXI4-Stream carries data from producer to consumer as an unbroken flow — data goes to 'whoever's downstream', not to an address. A video pipeline is the archetype: camera → processing stages → display, a dataflow graph where each stage consumes a stream and produces a new one. The handshake is the familiar TVALID/TREADY (beat on both high) and the payload is TDATA, but there are NO address channels — the stream is the channel. Right when data flows one-way continuously and stream position, not address, defines routing.

2. Structuring the Stream: TLAST, TUSER, TKEEP

A raw stream is just bytes; video needs structure, and AXI4-Stream's sideband signals provide it. TLAST marks the end of a packet — in video, typically the end of a line (or frame), so the consumer knows where line/frame boundaries are. TUSER carries user-defined sideband, conventionally start-of-frame (the first pixel of a frame asserts a TUSER bit), so the pipeline can align to frame boundaries. TKEEP/TSTRB mark which bytes are valid (for partial/end transfers). Together these turn a flat pixel stream into a structured frames of lines of pixelsTUSER=start-of-frame at the first pixel, TLAST=end-of-line at each line's last pixel, TDATA=the pixels. This is exactly the video-over-AXI4-Stream convention.

Stream of pixels: first pixel asserts TUSER (start-of-frame); each line's last pixel asserts TLAST (end-of-line); TDATA carries pixels.SourceStreamSinkpixel 0,0 + TUSER(start-of-frame)pixels ... (TDATA)last pixel of line +TLAST (end-of-line)next line ...repeatsframe ends; next TUSER starts new frameframe ends; nextTUSER starts new…
Figure 2 — structuring a video stream with sideband signals. TLAST marks end-of-line (or end-of-frame) so the consumer knows line/frame boundaries. TUSER conventionally carries start-of-frame (the first pixel of a frame asserts a TUSER bit) for frame alignment. TKEEP/TSTRB mark valid bytes for partial transfers. Together they turn a flat pixel stream into structured frames-of-lines-of-pixels: TUSER=start-of-frame at the first pixel, TLAST=end-of-line at each line's last pixel, TDATA=the pixels — the standard video-over-AXI4-Stream convention.

3. Backpressure Throttles the Whole Pipeline

The defining behavior of a streaming pipeline is backpressure propagation. Because the stages are chained by TVALID/TREADY handshakes, if any stage can't accept data (drops TREADY — e.g. the display isn't ready, or a processing stage stalls), that backpressure propagates upstream: the stage feeding it stalls, then the stage before that, all the way back to the camera. The whole pipeline runs at the rate of its slowest consumer. This is why streaming designs need rate matching — FIFOs between stages to absorb rate mismatches and bursty processing — and why a real-time source (a camera that can't stall) must have enough downstream buffering, or it drops frames. Backpressure is the flow-control mechanism, and managing it is the central streaming design concern.

A stage drops TREADY; backpressure propagates upstream to the camera; pipeline runs at slowest consumer; FIFOs needed for rate matching.mitigateif no bufferA stage dropsTREADYBackpressurepropagates upstreamPipeline runs atslowest consumerFIFOs absorbrate mismatchReal-timesource: bufferor drop frames
Figure 3 — backpressure throttles the whole streaming pipeline. The stages are chained by TVALID/TREADY, so if any stage drops TREADY (display not ready, a processing stage stalls), the backpressure propagates upstream stage by stage back to the camera — the whole pipeline runs at the rate of its slowest consumer. Streaming designs therefore need rate-matching FIFOs between stages to absorb mismatches and bursty processing, and a real-time source that can't stall (a camera) needs enough downstream buffering or it drops frames. Managing backpressure is the central streaming design concern.

4. Why Streaming, Not Memory-Mapped, and the Hybrid

AXI4-Stream fits video because the access pattern is continuous, one-directional dataflow where every pixel goes to the next stage in order — there's no random access, no addressing, no need for the read/write/response structure of memory-mapped AXI. Forcing video through memory-mapped AXI would mean addressing every pixel (pointless — they're sequential) and the overhead of address phases on a continuous flow. But real systems are often hybrid: a video pipeline streams pixels (AXI4-Stream) and is configured over AXI4-Lite (CSRs to set resolution, format, enable) and may write frames to memory via a DMA (full AXI) for buffering. So one video subsystem can use all three AXI variants — Stream for the pixel dataflow, Lite for control, full AXI for frame-buffer DMA — each for the traffic class it fits.

Video subsystem hybrid: AXI4-Stream for pixels, AXI4-Lite for CSR control, full AXI DMA for frame buffer; each variant for its traffic class.AXI4-Streampixel dataflowContinuous, norandom accessaddressing pointlessAXI4-LiteCSR controlFull AXI DMAframe bufferHybrid subsystemall three variantsEach for its classstream/control/data12
Figure 4 — why streaming fits video, and the hybrid system. AXI4-Stream fits because video is continuous one-directional dataflow with no random access — addressing every sequential pixel would be pointless overhead. But a real video subsystem is hybrid: it streams pixels (AXI4-Stream), is configured over AXI4-Lite (CSRs for resolution/format/enable), and may DMA frames to/from memory (full AXI) for buffering. One subsystem uses all three AXI variants — Stream for pixel dataflow, Lite for control, full AXI for frame-buffer DMA — each matched to its traffic class.

5. Common Misconceptions

6. Debugging Insight

7. Verification Insight

8. Interview Questions

9. Summary

AXI4-Stream is the streaming plane — the fourth and final point in AXI's design-space tour — and it's fundamentally different from the three memory-mapped paths: address-less continuous dataflow where data flows from producer to consumer with no addresses, only the TVALID/TREADY handshake and TDATA payload. A video pipeline (capture→process→display) is the archetype: pixels stream stage to stage as a dataflow graph, structured by sideband signals — TLAST for line/frame boundaries, TUSER for start-of-frame, TKEEP/TSTRB for valid bytes — turning a flat stream into frames-of-lines-of-pixels. The defining behavior is backpressure propagation: chained handshakes mean a stall ripples upstream, so the pipeline runs at its slowest consumer, requiring rate-matching FIFOs between stages and, for un-stallable real-time sources (cameras), sufficient downstream buffering or it drops frames.

Streaming fits video because the traffic is continuous one-directional dataflow with no random access — addressing sequential pixels would be pointless overhead. But real systems are hybrid: a video subsystem streams pixels (AXI4-Stream), is configured over AXI4-Lite (CSRs), and DMAs frames to memory over full AXI — using all three variants, each for its traffic class (often with async FIFOs for the clock-domain crossings). This is the capstone lesson of the case-study module: the four paths span the dimensions of on-chip traffic (addressed-vs-streaming, data-vs-control, latency-vs-throughput), revealing AXI as a family of right-sized protocols that real systems compose. The architect's job is to classify each subsystem's traffic, choose the right variant/configuration, and compose them on the interconnect with appropriate arbitration — the system-architecture understanding the whole curriculum builds toward. Next, we scale up to how AXI bridges into a Network-on-Chip at system scale.

10. What Comes Next

You've toured AXI's four traffic patterns; next, scaling the interconnect:

  • 19.5 — NoC / Interconnect Use (coming next) — how AXI bridges into a Network-on-Chip at scale, where many masters and slaves connect through a packet-switched fabric rather than a simple crossbar.

Previous: 19.3 — AXI4-Lite CSR Access. Related: 11.1 — The AXI4-Stream Mental Model for the streaming paradigm, 11.3 — TLAST & Packet Boundaries for the framing, and 11.6 — Stream Backpressure for the flow control.