AMBA AXI · Module 20
AXI Integration Checklist
A sign-off checklist for wiring AXI into an interconnect/SoC — address map (no overlap, decode coverage), ID width and remapping, clock-domain crossings, reset sequencing, interrupts, outstanding/QoS across the fabric, and the system-level deadlock and bring-up checks that integration requires beyond a correct, verified block.
The design (20.1) and verification (20.2) checklists confirm a block is correct and proven. This one confirms the block is correctly wired into the system — the integration sign-off. A block that's perfect in isolation can still break when connected: a wrong address-map entry, a missing clock-domain bridge, a mis-sequenced reset, an ID collision, or an interconnect that deadlocks under mixed traffic. The AXI integration checklist is the sign-off list for wiring AXI into an interconnect/SoC, confirming the system-level concerns the block-level checklists don't cover. It operationalizes Modules 12 (interconnect) and 14 (CDC/reset) plus the integration case study (19.6) into a checklist, organized into address-map, physical-glue, fabric, and bring-up categories.
1. Address Map: Decode, Overlap, and ID Width
The first category is the address map and IDs — how transactions are routed. Confirm: every master can reach every slave it needs to (decode coverage); the address regions don't overlap (no aliasing) and the decode is total (unmapped → DECERR, not silent); each slave's region is sized for its space; and the ID width and remapping are correct — the interconnect appends source bits so multi-master IDs don't collide, and strips them on return (responses go to the right master with the right ID). The check is that the system address map is complete, non-overlapping, and decodes totally, and that ID remapping preserves each master's view — the foundation of correct routing.
2. Physical Glue: Clocks, Resets, Interrupts
The second category is the physical glue — the connections beyond the AXI data path. Confirm: clock-domain crossings — every AXI link that crosses a clock domain uses a proper async-FIFO CDC bridge (14.2), no direct multi-bit crossing; reset sequencing — resets connected and sequenced correctly across the fabric and endpoints (14.3), no block left undefined, clean release; and interrupts — each peripheral's interrupt wired to the controller with the right number/priority, and the driver clears it correctly (W1C). These are the same integration-glue items as the peripheral-integration case study (19.6), confirmed at the system level: a missing CDC bridge causes intermittent corruption, a mis-sequenced reset an undefined startup, a misrouted interrupt a dead handler — all classic integration bugs.
3. Fabric: Outstanding, QoS, and Deadlock
The third category is the fabric-level behavior — properties that emerge only from the system, not any single block. Confirm: outstanding depth is provisioned end-to-end (the path's outstanding support meets the bandwidth-delay product, so masters don't starve — 13.3); QoS/arbitration balances mixed traffic (latency-critical CPU vs. throughput DMA, so neither starves — 12.4); deadlock-freedom — no cross-channel/cross-path dependency cycle (response paths sized to worst-case outstanding, channels independent, acyclic routing — 17.7); and width conversion points handle the data correctly. These are composition-level properties the block checklists can't see — a deadlock from undersized buffering or a starved master under contention emerges only when blocks are wired together, so they must be confirmed at integration.
4. Bring-Up and the Composition Principle
The final category is the bring-up sequence that verifies the integration end-to-end, simplest-first (19.6): address decode (each endpoint's ID register reads, no DECERR) → register access (CSRs work through the fabric) → reset/clock (clean startup across domains) → data path (transactions traverse the fabric correctly) → interrupts (events reach handlers) → system traffic (mixed masters run without deadlock or starvation). The composition principle behind it: locally-correct blocks can still fail in composition (deadlock, ordering, starvation, glue bugs), so integration sign-off confirms the system-level properties — the block checklists prove each piece, the integration checklist proves they work together.
5. Common Misconceptions
6. Debugging Insight
7. Verification Insight
8. Interview Questions
9. Summary
The AXI integration checklist is the sign-off for composition — confirming verified blocks are correctly wired together, a concern distinct from the blocks themselves and where a major bug class lives. It operationalizes the interconnect (12), CDC/reset (14), and integration (19.6) material into four categories. Address map + IDs: decode coverage (every master reaches its slaves), no overlap (no aliasing), total decode (unmapped → DECERR), slave sizing, and ID width/remapping (append/strip so multi-master IDs don't collide). Physical glue: CDC bridges on every cross-domain link, reset sequencing across the fabric, interrupt wiring/clearing. Fabric: outstanding provisioned end-to-end (no starvation), QoS balancing mixed traffic (CPU vs. DMA), deadlock-freedom (sized buffers, independent channels, acyclic routing), width conversion. Bring-up: simplest-first (decode → register access → reset/clock → data path → interrupts → system traffic), which doubles as the integration debug taxonomy.
The governing principle: locally-correct blocks can fail in composition — deadlock, ordering across reconvergent paths, starvation, and glue bugs (address map, CDC, reset, interrupt) are emergent, composition-level properties no block checklist can see (a single deadlock-free port doesn't make a deadlock-free fabric; a block correct in its domain still needs a CDC bridge across domains). The disciplines: confirm decode coverage (not just no-overlap), treat CDC/reset/deadlock/QoS as system properties, and bring up simplest-first to localize failures. The meta-lesson completes the checklist trilogy: a working system requires three separate sign-offs — designed right (20.1), proven right (20.2), wired right (20.3) — because correctness is hierarchical (components correct and composition correct and emergent properties correct), and you cannot verify a system by verifying its components alone. Composition bugs only exist at the system level and only manifest under the interactions integration testing creates, so integration is its own discipline. Next, the checklists turn to the engineer's own readiness: the last-mile interview revision list.
10. What Comes Next
You can now sign off integration; next, your own interview readiness:
- 20.4 — AXI Interview Checklist (coming next) — a last-mile revision list before an AXI interview, distilling the must-know points into a final pre-interview pass.
Previous: 20.2 — AXI Verification Checklist. Related: 12.3 — Decode & Address Map for the address-map items, 14.2 — Asynchronous Bridges for CDC, and 17.7 — Debugging Deadlock for the fabric deadlock-freedom check.