AMBA AXI · Module 20
AXI Design Checklist
A practical sign-off checklist for an AXI RTL block before review — the handshake rules, payload stability, burst/LAST correctness, WSTRB, response and ID handling, reset behavior, and the structural and timing concerns to confirm before declaring an AXI design done, organized into a repeatable pre-review pass.
The final module distills the whole curriculum into actionable checklists — the sign-off lists you actually run before review, interview, or tape-out. This first one is the AXI design checklist: the concrete items to confirm in an AXI RTL block before you declare it done and hand it to review. A checklist isn't a substitute for understanding (the prior modules built that) — it's the operationalization of understanding, so the things you know not to do are systematically verified rather than left to memory. This chapter organizes the design sign-off into categories — handshake, payload, burst/transaction, structural, and reset/timing — each a small set of must-confirm items, forming a repeatable pre-review pass that catches the classic RTL mistakes before someone else does.
1. Why a Checklist: Operationalizing Understanding
You've learned why AXI works the way it does; a checklist ensures you apply it every time. Under deadline pressure, even experienced engineers forget an item — a missed reset, a VALID gated on READY, an unhandled corner — and a checklist makes the review systematic: every block gets the same pass, so nothing slips through memory's gaps. The design checklist's job is to catch the classic RTL mistakes before review or simulation does, turning "I think it's right" into "I confirmed each item." It's the difference between relying on recall and relying on a process.
2. Handshake and Payload Stability
The first checklist category is the handshake and payload — the per-cycle protocol rules. Confirm: VALID never depends combinationally on READY (the deadlock rule — the single most important item); VALID stays asserted once raised until the handshake completes (never dropped before acceptance); payload is stable while VALID is held and not yet accepted (address, data, strobes, resp, last, id — none change mid-handshake); and READY may depend on VALID (legal) but is driven cleanly. These are the rules an assertion set checks (16.2), confirmed here at design time: a quick scan that VALID/payload come from registered or independent logic, not gated by the incoming READY.
3. Burst, Transaction, and Encoding
The second category is burst and transaction correctness. Confirm: WLAST/RLAST on exactly the last beat (beat LEN, agreeing with the count); one B per write burst (aggregated, after the last beat); WSTRB honored byte-by-byte (write only strobed bytes, preserve neighbors); per-beat address generation correct for the burst type (INCR/WRAP/FIXED); no 4 KB-crossing bursts; legal encodings (no reserved AxBURST, AxSIZE ≤ bus width, legal WRAP lengths); response codes correct (OKAY/SLVERR/DECERR); and ID handling — same-ID in order, BID/RID match the request. These are the transaction-level rules the monitor/scoreboard check (16.3/16.4), confirmed at design time against the burst-handling logic.
4. Structural, Reset, and Timing
The final category is structural, reset, and timing. Confirm: reset behavior — all VALIDs low during reset, registers initialized to reset values, clean exit from reset; channel independence — reads and writes (and address/data) proceed independently, no illegal coupling; outstanding/buffering sized correctly (no deadlock from undersized response paths, 15.7); CDC — any clock-domain crossing uses a proper async-FIFO bridge (14.2); width/parameters — derived values computed not passed (STRB_W = DATA_W/8), elaboration assertions for legal configs; and timing — VALID/READY paths registered where needed (skid buffers, 15.5) so the design closes timing. These structural items are where integration and timing bugs originate, confirmed before the block leaves your hands.
5. Common Misconceptions
6. Debugging Insight
7. Verification Insight
8. Interview Questions
9. Summary
The AXI design checklist operationalizes the curriculum's understanding into a repeatable pre-review pass that systematically confirms the classic RTL mistakes have been excluded — turning "I think it's right" into "I confirmed each item," so nothing slips through memory's gaps under deadline pressure. It's organized into three categories mapping onto the curriculum. Handshake/payload (Module 3): VALID never depends combinationally on READY (the deadlock rule — the single most important item), VALID held until accepted, payload stable while VALID is held, READY may legally depend on VALID. Burst/transaction/encoding (Modules 6–9): WLAST/RLAST on exactly beat LEN, one aggregated B per write burst, WSTRB byte-by-byte (neighbors preserved), per-beat addressing per burst type, no 4 KB crossing, legal encodings, correct responses, and ID handling. Structural/reset/timing (Modules 14–15): reset behavior (VALIDs low, registers initialized, clean exit), channel independence, deadlock-free outstanding/buffer sizing, CDC bridges, derived parameters with elaboration assertions, and registered timing paths.
The disciplines: run it before every review and after every change (edits reintroduce bugs — it's a repeatable gate, not a one-time pass); check the highest-impact items explicitly (VALID-not-on-READY and reset behavior are the most common fatal mistakes); and treat it as an index into the curriculum (each item maps to the module explaining why and the bug taxonomy in Module 17 for how it fails). A checklist is the right tool because AXI correctness is a many-independent-items problem prone to omission under pressure — it makes you consistent, not smarter, and scales quality across a team — with the limits that it operationalizes (not replaces) understanding, covers known not novel mistakes, complements verification, and demands honest checking. This is why the curriculum ends with checklists: they're the operational layer atop the understanding it built. Next, the verification checklist applies the same operationalization to proving an AXI design correct.
10. What Comes Next
You can now sign off a design; next, signing off its verification:
- 20.2 — AXI Verification Checklist (coming next) — the sign-off list for AXI protocol and functional verification: assertions, monitor, scoreboard, coverage, and negative testing, confirmed before declaring a block verified.
Previous: 19.7 — Debug & Trace Path. Related: 3.5 — Handshake Dependency & Deadlock Rules for the top handshake item, 16.2 — AXI Assertions (SVA) for the runtime checks of the same rules, and 15.1 — A Simple AXI4-Lite Slave for a design to run the checklist against.