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
  • Environment & Test Classes11
  • Checking & Coverage in UVM21
  • UVM Register Abstraction Layer (RAL)22
  • Advanced UVM in Practice13
  • Debug & Regression10
  • Coding Practice47
    • How to Use This Course
    • Whiteboard Delivery Framework
    • Scoreboard Coding
    • Monitor & Driver Coding
    • Sequences Coding
    • TLM & Analysis
    • RAL & Adapters
    • Factory & config_db
      • Factory set_type_override
      • config_db Hierarchical Paths
      • Resource Pool vs config_db
      • Factory & config_db Tricky Q&A
    • Phases & Objections
    • Env & Test Architecture
    • Debug Broken Testbench
    • Mock Interview Sets
    • Senior UVM Coding Cheat Sheet
  • Verification in Industry Practice10
  • Senior Prep: Architecture, Leadership and Interviews32
Loading lesson

←Factory & config_db
  1. Topics
  2. UVM Verification
  3. Coding Practice
  4. Factory & config_db
  5. Resource Pool vs config_db
On this page

    UVM Coding PracticeSenior

    Resource Pool vs config_db

    When to use uvm_resource_db.

    Interview prompt

    Global seed vs per-agent vif — which API?

    Diagram
    WHITEBOARD CHAIN
    
    1. DECLARE    interfaces / types / ports you need
    2. SKELETON   class extends + utils macro + key methods
    3. MECHANISM  fill one critical method while narrating
    4. PITFALL    name one bug juniors make on this pattern
    5. TEST       how you would smoke-test the component
    • vif: config_db scoped to hierarchy path — set in top, get in agent

    • global seed: uvm_resource_db or plusarg — not tied to one component path

    • config_db dump for bring-up; resource pool for cross-test globals

    Reference sketch (≤40 lines)

    design.sv
    1
    2
    3
    4
    // hierarchical vif
    uvm_config_db#(apb_vif)::set(this, "env.agent*", "vif", vif);
    // global seed
    uvm_resource_db#(int)::set("GLOBAL_SEED", seed, this);

    Mechanism to narrate

    • config_db: scoped by instance path — best for vif, cfg objects

    • resource_db: global name lookup — seeds, shared knobs

    • Wildcard set("*") works but hides path bugs — use sparingly

    Smoke test (5 minutes)

    • Explain which API for vif vs seed in 30 seconds.

    • Describe uvm_config_db::dump() use after build_phase.

    Common pitfalls

    • Wildcard set for everything.

    • Same field name collision across agents.

    • get in wrong phase.

    Previous

    219 / 280

    Next: Factory & config_db Tricky Q&A

    Up next

    Up nextFactory & config_db Tricky Q&A

    Sign in to save progress

    Practice this lessonPrevious lessonReport an error

    See also

    • Factory set_type_override