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

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • Start Here4
  • UVM Foundations14
  • UVM Phases & Simulation Lifecycle26
    • The Phase System
    • UVM Phases: Build, Connect, Elaborate and Run
    • Objections Deep Dive: Drain Time and Propagation
      • Objection Hierarchy Propagation: Up the Component Tree
      • Objection Counting Rules: Raises, Drops, and Edge Cases
      • set_drain_time Deep Dive: Grace Period After Objections Clear
      • phase_ready_to_end: Last-Chance Phase Extension
      • End-of-Test Strategy: Choosing a Mechanism
      • Objections at Scale
    • Phase Debugging and End-of-Test Signoff
  • Factory & Configuration15
  • Transaction-Level Modeling (TLM)13
  • UVM Sequences & Stimulus21
  • UVM Agents & Protocol VIP21
  • 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 Phases & Simulation Lifecycle
  1. Topics
  2. UVM Verification
  3. UVM Phases & Simulation Lifecycle
  4. Objections Deep Dive: Drain Time and Propagation

Part 2 · Phases & Lifecycle · Intermediate

Objections Deep Dive: Drain Time and Propagation

How a UVM test decides it is finished: objection counts, drain time, phase_ready_to_end, and how to pick an end-of-test mechanism.

  • 6topics
  • 6lessons
On this page

    Every UVM test has to answer one question the simulator cannot answer for it: is the work finished, or is the bench just quiet for a moment? Objections are UVM's answer. This topic takes you from the counter inside one phase to the end-of-test design of a whole bench, using the course DMA bench and its real logs throughout.

    What you will be able to do

    • Read an objection trace and say, from the counts alone, who is holding the run phase open.

    • State the counting rules interviewers probe: drop without raise, raise in a function phase, a test that never raises.

    • Size a drain time from measured latency, and know when drain time is the wrong tool.

    • Write a phase_ready_to_end hold that cannot pass with a word missing.

    • Choose an end-of-test mechanism for a bench and defend the choice, including at SoC scale.

    The life of a run phase

    Flow: raise, work, last drop, drain time, phase_ready_to_end, then either the phase ends or a re-raise loops back to work, capped at 20 iterations by default.
    One task phase from first raise to end. Each box is the subject of one lesson in this topic.

    Lessons, in order

    Lesson

    What it answers

    Objection Hierarchy Propagation

    Where the counts live, how one raise reaches uvm_top, and a runnable model of the counter.

    Objection Counting Rules

    Pairing, OBJTN_ZERO, NULL_OBJECTION, sequences as raisers, and the test that ends at time 0.

    set_drain_time Deep Dive

    The grace period after the last drop: how it stacks, how a raise cancels it, how to size it.

    phase_ready_to_end

    The last-chance hold, built from the bench's end-of-test scoreboard and a real false-pass bug.

    End-of-Test Strategy

    Five mechanisms compared, their failure modes, and how to choose one per bench.

    Objections at Scale

    Per-transaction cost, propagate mode, objection callbacks, and count versus total.

    When a test hangs instead of ending, go to Objection triage and hang forensics in the next topic.

    Related topics

    • Up: UVM Phases

    • Next topic: Phase debugging

    • The DMA bench

    PreviousNext: Objection Hierarchy Propagation: Up the Component Tree

    Up next

    Up nextObjection Hierarchy Propagation: Up the Component Tree

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • The Phase System
    • UVM Phases: Build, Connect, Elaborate and Run
    • Phase Debugging and End-of-Test Signoff