AMBA AXI · Module 11
TVALID, TREADY & TDATA
The core AXI4-Stream signals — TVALID/TREADY handshake and TDATA payload. The four handshake states, the stability and no-retraction rules, full-rate throughput vs backpressure/starvation bubbles, and how it mirrors the AXI VALID/READY handshake.
AXI4-Stream's core is just three signals: TVALID, TREADY, and TDATA. The handshake is the same VALID/READY mechanism as memory-mapped AXI (Module 3) — a transfer happens on a clock edge when both TVALID and TREADY are high — now governing a one-way data pipe. This chapter details the stream handshake: the four states, the stability and no-retraction rules that keep data intact, and how full-rate throughput degrades into bubbles under backpressure or starvation. If you know the AXI handshake, this is that knowledge applied to the stream — but it's worth nailing precisely, because in a streaming protocol the handshake is essentially the whole thing.
1. The Three Signals
TVALID— driven by the source; asserted when the source has a valid data word onTDATAto transfer.TREADY— driven by the sink; asserted when the sink can accept a word this cycle.TDATA— the payload, driven by the source; the stream's actual content. Width is implementation-defined (typically a multiple of 8 bits).
A transfer occurs on the rising clock edge when both TVALID and TREADY are high — one TDATA word moves from source to sink. That's the entire core mechanism: the source offers data (TVALID), the sink accepts it (TREADY), and when they agree, a word flows.
2. The Rules — Stability and No Retraction
The handshake carries the same correctness rules as AXI (Module 3), now on the stream:
- No
TVALID-on-TREADYdependency. The source must not wait to seeTREADYbefore assertingTVALID—TVALIDmay not combinationally depend onTREADY. (The sink may wait forTVALIDbeforeTREADY, or assertTREADYearly — "pre-ready.") This asymmetry prevents handshake deadlock. - Hold stable until accepted. Once the source asserts
TVALID, it must keepTVALIDhigh and holdTDATA(and all payload signals) stable until the transfer completes (the cycleTREADYis also high). No retracting the offer, no changing the data mid-offer. - No transfer without both. A word moves only when both are high on a clock edge. If
TREADYis low, the source waits (holding data); ifTVALIDis low, the sink waits (no data to take).
Violating stability corrupts the stream (the sink may sample changing data); retracting TVALID before acceptance loses or duplicates a word. These are the identical pitfalls as the AXI handshake — the stream just has one such handshake instead of five channels' worth.
3. On the Wire — Transfers and Bubbles
Data flows at full rate when both signals stay high; backpressure (TREADY low) or starvation (TVALID low) inserts bubbles:
stream-transfer — transfers with backpressure and starvation bubbles
8 cycles4. Throughput — Full Rate and Bubbles
The throughput consequence is direct: when both TVALID and TREADY stay high every cycle, the stream moves one word per cycle — full rate, the maximum the link can carry. Any cycle where one side isn't ready is a bubble (no transfer):
- Backpressure bubble (
TREADYlow) — the sink can't keep up (its buffer is full, or it's busy). The source holds its data and stalls. - Starvation bubble (
TVALIDlow) — the source has no data (it's waiting on its own upstream). The sink waits idle.
So a stream's sustained throughput equals the slower of the producer's data-supply rate and the consumer's accept rate — exactly like a pipe limited by its narrowest point. To hit full rate, both sides must sustain a word every cycle; buffering (FIFOs) between stages smooths bursty producers/consumers so a momentary stall on one side doesn't bubble the whole pipeline. This is the streaming form of the same throughput reasoning as AXI's handshake and outstanding-transaction discussions — but here it's purely about keeping both handshake signals high.
5. Common Misconceptions
6. Debugging Insight
7. Verification Insight
8. Interview Questions
9. Summary
The AXI4-Stream core is TVALID (source has data), TREADY (sink can accept), and TDATA (the payload) — a transfer happens when both TVALID and TREADY are high on a clock edge, the same VALID/READY mechanism as memory-mapped AXI (Module 3). The four states are transfer (both high), backpressure (TREADY low), starvation (TVALID low), and idle (both low). The correctness rules are identical to AXI: TVALID must not depend on TREADY (deadlock avoidance), and once asserted the source must hold TVALID and TDATA stable until accepted (no retraction, no mid-offer change). Violations cause deadlock or stream corruption.
Throughput is one word per cycle when both stay high; any cycle where one side isn't ready is a bubble (backpressure or starvation), so sustained rate equals the slower side — and FIFOs/skid buffers between stages absorb momentary mismatches to keep a pipeline full. Because the stream protocol is essentially this handshake plus payload, getting it airtight under all flow patterns (full rate, backpressure, starvation, random interleavings) is most of stream verification, and the debug taxonomy mirrors AXI's handshake exactly (stuck→dependency, corruption→stability, lost/dup→transfer-condition, slow→bubbles). Next: TLAST — how a stream is framed into packets.
10. What Comes Next
You've got the core handshake; next, framing the stream:
- 11.3 — TLAST & Packet Boundaries (coming next) — how
TLASTmarks the end of a packet/frame, structuring an otherwise-continuous stream. - 11.4 — TKEEP & TSTRB (coming soon) — byte qualifiers for partial and position bytes.
Previous: 11.1 — The AXI4-Stream Mental Model. Related: Valid/Ready Handshake — the memory-mapped handshake this mirrors. For the broader protocol catalog, see the AMBA family overview doc.