AMBA AXI · Module 16
Using AXI VIP
How a commercial or open-source AXI Verification IP slots into a UVM environment — what a VIP packages (a pre-verified agent plus assertions, coverage, and a reference model), the master/slave/passive modes, configuration and integration, and when to buy a VIP versus build your own agent.
This chapter closes Module 16 by zooming out from building verification components to buying them. A commercial or open-source AXI Verification IP (VIP) is, in essence, a pre-built, pre-verified version of everything the module constructed: an agent (driver + sequencer + monitor), a complete protocol-assertion checker, functional coverage, and often a reference memory model — packaged to drop into a UVM environment with configuration rather than code. Because you now understand what's inside a VIP, you can use it knowledgeably: configure it, slot it in, and read its results critically. This chapter covers what a VIP packages, its master/slave/passive modes, how it integrates into the environment from 16.8, and the engineering judgment of buy vs. build — the practical endpoint of an AXI verification education.
1. What a VIP Packages
A VIP bundles the entire per-interface verification stack the module built, pre-verified by the vendor against the spec: the agent (driver, sequencer, monitor), a protocol checker (the full assertion set from 16.2), functional coverage (16.5), and usually a reference/memory model and ready-made sequences. You get the whole 16.1–16.8 toolkit as a configured component instead of authored code.
2. Master, Slave, and Passive Modes
A VIP is configured into one of three roles, mirroring the active/passive distinction (16.8) but split by which side it plays. A master VIP drives an AXI manager interface (generates transactions to a DUT slave). A slave VIP responds as an AXI subordinate (answers the DUT master's requests, with a built-in memory model). A passive/monitor VIP only observes — checking and covering an interface driven entirely by the RTL. Choosing the mode is how you decide what the VIP stands in for.
3. Integrating a VIP into the Environment
A VIP slots into exactly the environment structure from 16.8: instantiate it like an agent, set its config (mode, the virtual interface, protocol parameters via the config DB), connect its analysis port to your scoreboard/coverage (or rely on the VIP's built-in checker/coverage), and drive it via its sequence API. The VIP's protocol assertions bind automatically to the interface. Integration is configuration and connection, not authoring — the same composition model the agent introduced.
// Instantiate and configure a VIP master agent in the env's build_phase
axi_vip_master m_vip;
function void build_phase(uvm_phase phase);
m_vip = axi_vip_master::type_id::create("m_vip", this);
// Configure mode, interface, and protocol parameters via the config DB
uvm_config_db#(virtual axi_if)::set(this, "m_vip*", "vif", dut_vif);
uvm_config_db#(axi_vip_cfg)::set(this, "m_vip*", "cfg", vip_cfg);
endfunction
function void connect_phase(uvm_phase phase);
// Subscribe your own scoreboard/coverage to the VIP's analysis port,
// in addition to (or instead of) the VIP's built-in checks.
m_vip.ap.connect(scoreboard.axi_export);
endfunction4. Buy vs. Build
Knowing what's inside a VIP, the engineering decision is buy vs. build. A VIP's advantage is that the protocol-compliance layer is pre-verified and exhaustive — the assertion set, coverage model, and corner-case handling represent vendor effort across many customers, far more than a project would spend hand-building, and it's standard, maintained, and supported. The cost is licensing, a learning curve, and reduced visibility into a closed implementation. You build when the interface is simple, custom, or non-standard (no VIP exists), when you need full control/visibility, or to learn; you buy for a complex standard protocol like full AXI where the compliance layer is large and getting it exhaustively right yourself is expensive and error-prone.
5. Common Misconceptions
6. Debugging Insight
7. Verification Insight
8. Interview Questions
9. Summary
An AXI VIP is the commercial/open realization of everything Module 16 built: a pre-verified agent (driver, sequencer, monitor) plus a complete protocol-assertion checker, functional coverage, a reference/memory model, and a sequence library — delivered as a configurable component rather than authored code. It's configured into a master (drives a DUT slave), slave (responds to a DUT master with a memory model), or passive (observes RTL-driven traffic) role, and it integrates exactly like an agent (16.8): instantiate, configure mode/vif/parameters via the config DB, connect its analysis port to your checks, drive it through its sequence API, with its assertions binding automatically. Integration is configuration and connection, not authoring.
The key disciplines: a VIP gives you the compliance layer for free (vendor-verified, exhaustive) but does not replace your functional checking — the compliance-vs-correctness split (16.1) and coverage closure (16.5) remain your responsibility, and the slave VIP's responder memory is not your DUT's scoreboard. A VIP assertion firing is strong evidence of a real DUT bug (the checker is trusted), while no-traffic/mis-flagging points at configuration. Buy vs. build is a deliberate judgment: build for simple/custom/visibility/learning, buy for complex standard protocols where the exhaustive compliance layer and support outweigh licensing and reduced visibility. The deepest takeaway closes the module: because you built every piece yourself, you can use a VIP as a knowledgeable engineer — configuring it correctly, interpreting it critically, and knowing its limits — rather than as a black box. This completes Module 16 (AXI Verification): from the protocol-checker mindset through assertions, monitors, scoreboards, coverage, constrained-random, negative testing, the UVM agent, and VIP. Next, Module 17 turns to debugging — diagnosing the failures that all of this machinery surfaces.
10. What Comes Next
You can now verify AXI end-to-end; Module 17 turns to diagnosing what verification surfaces:
- 17.1 — Stuck VALID / Stuck READY (coming next) — diagnosing a channel hung on
VALIDorREADY, the first and most common AXI debugging scenario.
Previous: 16.8 — UVM AXI Agent Overview. Related: 16.1 — The Protocol-Checker Mindset for the compliance-vs-correctness split a VIP embodies, 16.2 — AXI Assertions (SVA) for the checker a VIP provides, and 15.8 — Reusable AXI RTL Templates for the parallel buy-vs-build/reuse-boundary judgment in RTL.