Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutRoadmapCareersInternshipsFAQContactPrivacyTerms
Skip to lesson

Course contents

  • Start Here4
  • UVM Foundations14
  • UVM Phases & Simulation Lifecycle26
  • Factory & Configuration15
  • Transaction-Level Modeling (TLM)13
  • UVM Sequences & Stimulus21
  • UVM Agents & Protocol VIP21
    • Agent Architecture
    • Reusable VIP: Active, Passive and Protocol Agents
    • Error and Fault Injection
    • Agent Patterns: Slaves, Reset, Interrupts and Pipelines
  • Environment & Test Classes11
  • Checking & Coverage in UVM21
  • UVM Register Abstraction Layer (RAL)22
  • Advanced UVM in Practice13
  • Debug & Regression10
  • Coding Practice47
  • Verification in Industry Practice10
  • Senior Prep: Architecture, Leadership and Interviews32
Loading lesson

←UVM Verification
  1. Topics
  2. UVM Verification
  3. UVM Agents & Protocol VIP
On this page

    Part 6 of 15Part 6 of 15/Agents & Protocol IPIntermediate

    UVM Agents & Protocol VIP

    UVM agents that drive, monitor and package one protocol interface: their architecture, the reactive, reset-aware and interrupt patterns, reuse as VIP, and error injection.

    • 4topics
    • 21lessons

    A block team verifies a DMA with three agents: an APB agent that programs it, a stream agent that feeds it, and a second copy of that stream agent watching its output. Six months later the DMA sits inside a subsystem next to a second DMA. The subsystem bench reuses the block env twice, unchanged. One of the stream agents now watches a bus that the first DMA drives, so it is switched to passive with one configuration line, and its monitor keeps feeding the second DMA's scoreboard. Nothing was rewritten. That is what a well-built agent buys you, and it is what this part of the course teaches.

    What you will be able to do

    • Take any agent apart: its sequencer, driver, monitor, configuration, analysis port and virtual interface, and the timing rules that keep driver and monitor race-free.

    • Build the agents that go beyond "drive a transaction": a reactive slave that answers the DUT, drivers and scoreboards that survive a reset in the middle of traffic, and a passive interrupt agent.

    • Package an agent as reusable VIP that runs active at block level and passive at subsystem or chip level.

    • Inject protocol errors on purpose, through sequences, driver hooks, callbacks or factory overrides, and check that the DUT reacts correctly.

    The picture: every agent pattern lives in the DMA bench

    The DMA bench with four agents around dma_dut: an active APB agent, an active input stream agent, an output stream agent that is passive or a reactive slave, and a passive interrupt agent. Dotted arrows link each topic to the agent that demonstrates it.
    The four topics mapped onto the DMA bench. The APB agent is the reference for agent architecture; the output and interrupt agents carry the advanced patterns; the input agent is where errors are injected and, in the two-DMA subsystem, where the same class runs passive.

    The four topics, in order

    #

    Topic

    What it covers

    1

    Agent Architecture

    The parts of an agent and their contracts: the wrapper and its analysis port, configuration, mode-gated build, driver, monitor, sequencer, clocking-block sampling and X policy, and virtual interfaces versus abstract BFMs.

    2

    Reusable VIP: Active, Passive and Protocol Agents

    Turning an agent into VIP: passive use at higher levels, parameterization, protocol-specific structure for APB, AXI and streams, and versioning and delivery.

    3

    Error and Fault Injection

    Making the DUT see illegal or unlucky traffic on purpose, and checking that it reports and recovers correctly, without the bench calling its own faults bugs.

    4

    Agent Patterns

    Agents that do more than initiate traffic: a reactive slave whose responder sequence decides when to accept each beat, drivers and scoreboards that handle a reset on the fly, a passive interrupt agent that publishes events, and drivers that keep several transfers in flight.

    Start with Agent Architecture even if you have written agents before: its last two lessons, on sampling races and interface abstraction, are where senior interviews go. Reusable VIP and Error Injection come next and can be read in either order; Agent Patterns comes last: it puts every part from the architecture topic under load at once.

    Related topics

    • Up: UVM course hub

    • Previous: Sequences

    • Next: Environment & Test

    PreviousNext: Agent Architecture

    Up next

    Up nextAgent Architecture

    Sign in to save progress

    Practice this lessonPrevious lessonReport an error

    See also

    • Start Here
    • UVM Foundations
    • UVM Phases & Simulation Lifecycle