Skip to content

AMBA AXI · Module 14

Asynchronous AXI Bridges

The asynchronous AXI bridge structure — five per-channel async FIFOs crossing a full AXI interface between clock domains, how flow control and the handshake are reconstructed on each side, and the latency/depth and bridge-type trade-offs.

Chapter 14.1 established why AXI needs an async FIFO per channel to cross clock domains safely; this chapter is the concrete bridge structure. An asynchronous AXI bridge crosses a full AXI interface between two clock domains using five per-channel async FIFOs (one for each of AW, W, B, AR, R), presenting a clean AXI port in each domain. We'll cover the bridge's structure and per-channel directions, how the VALID/READY handshake is reconstructed on each side from the FIFO full/empty flags, the latency and depth implications, and the bridge-type choices (full-async vs rational). This is exactly the interconnect's clock converter (Chapter 12.7), made concrete.

1. The Five-Channel Bridge

An async AXI bridge crosses the whole interface with one async FIFO per channel, each crossing in the direction that channel's traffic flows:

  • Forward channelsAW (write address), W (write data), AR (read address) — written in the manager-side domain, read in the subordinate-side domain.
  • Response channelsB (write response), R (read data) — written in the subordinate-side domain, read in the manager-side domain.

The bridge presents a complete AXI subordinate interface on the manager side (clocked by the manager's clock) and a complete AXI manager interface on the subordinate side (clocked by the subordinate's clock). Between them, the five FIFOs carry the traffic across the boundary. So from each side's perspective it's a normal AXI port — the clock-domain crossing is hidden inside the bridge.

Five async FIFOs cross AW, W, AR forward and B, R back between a manager-clock AXI port and a subordinate-clock AXI port.Manager sidemanager clock (AXI subport)AW / W / AR FIFOsforward → sub domainB / R FIFOsresponse → mgr domainSubordinate sidesubordinate clock (AXImgr port)12
Figure 1 — the five-channel async AXI bridge. Each AXI channel has its own async FIFO: forward channels (AW, W, AR) cross manager-domain → subordinate-domain; response channels (B, R) cross subordinate-domain → manager-domain. The bridge presents a full AXI subordinate port (manager clock) on one side and a full AXI manager port (subordinate clock) on the other; the CDC is hidden inside.

2. One Channel's Async FIFO

Each channel's crossing is the async FIFO from Chapter 14.1, made concrete for an AXI channel: it carries that channel's payload (e.g., for AW: AWADDR, AWLEN, AWSIZE, AWID, … packed into one FIFO word) across the boundary:

  • Write side (source domain): when the source presents a valid beat (channel VALID high) and the FIFO isn't full, the beat is written into the FIFO.
  • Read side (destination domain): when the FIFO isn't empty, a beat is available to be read and presented (channel VALID high) to the destination.
  • Dual-clock memory + Gray pointers: the payload rides through the memory (read only when present — no metastable sampling), and the write/read pointers cross domains Gray-coded through synchronizers for safe full/empty computation (14.1).

So one FIFO carries one channel's entire payload as a unit — all that channel's signals packed together — guaranteeing the payload stays coherent across the crossing (no VALID-before-data-stable, no bit skew). Packing the channel's signals into a single FIFO word is what keeps them associated, solving the multi-signal-coherence problem of 14.1.

A channel's payload packed into one FIFO word, written in source domain, read in destination domain, with Gray-coded pointers.Pack channelpayloadADDR/LEN/SIZE/ID → 1 wordDual-clock memorydata rides throughRead in dest domainonly when presentGray-coded pointerscross via synchronizers12
Figure 2 — one channel's async FIFO. The channel's full payload (e.g., AWADDR/AWLEN/AWSIZE/AWID packed together) is written as one FIFO word in the source domain and read in the destination domain only when present. Dual-clock memory carries the data; Gray-coded pointers cross via synchronizers for safe full/empty. Packing the channel's signals into one word keeps them coherent across the crossing.

3. Reconstructing the Handshake and Flow Control

The bridge reconstructs the VALID/READY handshake on each side from the FIFO's flags, preserving AXI flow control across the boundary:

  • Write side: the FIFO's full flag drives the channel's READY — when the FIFO is full, the bridge deasserts READY to the source, backpressuring it (Chapter 11.6). The source holds its data until space frees. So a downstream domain that can't keep up naturally backpressures the upstream through the FIFO.
  • Read side: the FIFO's not-empty flag drives the channel's VALID — when the FIFO has a beat, the bridge asserts VALID to the destination; the destination's READY controls the read.

So each side sees a normal AXI handshake: the manager-side port backpressures (via READY) when the bridge's forward FIFOs fill, and the subordinate-side port sees VALID as forward data arrives. The handshake's coupling (data stable while VALID held until READY) is satisfied because the FIFO holds the data stable until read. This is how the bridge appears as a transparent AXI port to each domain while safely crossing the boundary — the FIFO full/empty flags are the reconstructed flow control.

FIFO full drives write-side READY (backpressure); FIFO not-empty drives read-side VALID; handshake reconstructed each side.FIFO full→ deassert READY (backpressure)Write-side handshakesource stalls when fullFIFO not-empty→ assert VALIDRead-side handshakedest reads when ready12
Figure 3 — handshake reconstruction and flow control. On the write side, the FIFO full flag drives READY (full → deassert READY → backpressure the source). On the read side, the FIFO not-empty flag drives VALID (data present → assert VALID). Each side sees a normal AXI handshake; the FIFO flags reconstruct the VALID/READY flow control across the crossing, and the held data satisfies the stability rule.

4. Latency, Depth, and Bridge Types

Design considerations and variants:

  • Latency: each FIFO crossing adds a few cycles each way (write-to-read synchronization + FIFO traversal). This CDC latency adds to the transaction latency (Chapter 13.2), which raises the outstanding depth needed to hide it (Chapter 13.3) — so a master behind an async bridge needs more in-flight transactions to sustain throughput across the added latency.
  • FIFO depth: sized for two things at once — to absorb rate mismatch (a faster source filling while a slower destination drains, Chapter 11.6) and to hold enough outstanding transactions to cover the CDC latency (the bandwidth-latency product). Too shallow → backpressure/latency-bound; sized right → sustains throughput up to the slower domain's rate.
  • Bridge types: a fully asynchronous bridge handles any clock relationship (arbitrary, unrelated frequencies) using the Gray-pointer async FIFO — the general, safe case. A rational/synchronous bridge, where the clocks have a known integer ratio (or share an edge), can be simpler/cheaper (fewer synchronizer stages, deterministic latency) but only works for that constrained relationship. Use full-async unless the clocks are guaranteed related.

So the bridge is a latency-vs-area-vs-generality trade: full-async FIFOs (general, more latency/area) sized for the rate mismatch and CDC latency, with outstanding depth budgeted accordingly. Reset coordination across the two domains is also required (Chapter 14.3).

CDC latency raises depth needed; FIFO depth sized for rate mismatch and outstanding; full-async for any clocks, rational for integer ratios.CDC latency addsto transactionlatency→ raise outstandingdepth; size FIFOdepthFull-async: anyclockrelationship(general)Rational/sync:integer ratio(simpler,constrained)
Figure 4 — design considerations and bridge types. CDC latency (FIFO + synchronizer) adds to transaction latency, raising the outstanding depth needed; FIFO depth is sized for both rate-mismatch absorption and outstanding coverage of the CDC latency. Bridge types: fully-asynchronous (any clock relationship, Gray-pointer FIFO — general) vs rational/synchronous (known integer ratio — simpler/cheaper but constrained). Use full-async unless clocks are guaranteed related.

5. Common Misconceptions

6. Debugging Insight

7. Verification Insight

8. Interview Questions

9. Summary

An asynchronous AXI bridge crosses a full AXI interface between clock domains with five per-channel async FIFOs: forward channels (AW/W/AR) cross manager→subordinate, response channels (B/R) cross subordinate→manager, and the bridge presents a normal AXI port (subordinate-side on the manager domain, manager-side on the subordinate domain) hiding the CDC inside. Each FIFO packs its channel's payload into one word (keeping the signals coherent), carries it through dual-clock memory (read only when present), and crosses Gray-coded pointers via synchronizers (14.1). The VALID/READY handshake is reconstructed from the FIFO flags — fullREADY deasserts (backpressure), not-emptyVALID asserts — so each side sees normal AXI flow control.

The trade-offs: the bridge adds CDC latency (raising the outstanding depth needed to hide it, Module 13), and its FIFO depth is sized for both rate-mismatch absorption and outstanding coverage of that latency. Bridge types: fully-asynchronous (any clock relationship — the safe general case) vs rational/synchronous (known integer ratio — simpler/cheaper but constrained). It must be co-verified structurally (static CDC — metastability safety) and functionally (AXI protocol + data integrity across clock ratios) and for performance (throughput across the crossing) — the convergence of CDC, protocol, and performance, which is why it's usually verified IP. Next: reset sequencingARESETn behavior and the synchronous-deassert discipline.

10. What Comes Next

You've got the async bridge; next, coordinating reset across it:

  • 14.3 — Reset Sequencing (coming next)ARESETn behavior, synchronous-deassert reset discipline, and coordinating reset across clock domains.

Previous: 14.1 — AXI Across Clock Domains. Related: 12.7 — Clock & Reset in Interconnect for where this sits in the fabric, and 13.3 — Outstanding Depth & Buffering for the depth the CDC latency demands. For the broader protocol catalog, see the AMBA family overview doc.