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
  • Factory & Configuration15
    • UVM Factory: Registration, Overrides and Debug
    • config_db and Resources
      • The set/get Contract: Four Arguments That Must Agree
      • Instance Paths and Wildcards: Who Can See a Setting
      • config_db Resolution: Who Wins at Build and After
      • Config Objects: One Typed Handle Instead of Twenty Knobs
      • config_db Performance and Anti-Patterns
      • Auto-Config and Field Macros on Components
      • Configuring Sequences
  • 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

‹Factory & Configuration
  1. Topics
  2. UVM Verification
  3. Factory & Configuration
  4. config_db and Resources

Part 3 · Factory & Configuration · Intermediate

config_db and Resources

How config_db carries handles and settings from the top and the test into components and sequences: the contract, paths, precedence, config objects, cost, auto-config and sequences.

  • 7topics
  • 7lessons
On this page

    In the DMA bench, three virtual interfaces travel from the top module to the drivers and monitors, the env tells the output agent to stay passive, and dma_rand_test picks up a job description if someone left one for it. None of those components holds a hard-wired handle or value; they all read config_db. This topic teaches it the way senior interviews probe it: exact key matching, who wins when two settings collide, and what config costs at scale.

    What you will be able to do

    • Write set and get calls that match on the first try, and read the failure when they do not.

    • State the precedence rules correctly: setter depth during build, last set otherwise, never path specificity.

    • Design config objects instead of loose knobs, and keep config lookups out of hot paths.

    • Explain auto-config and why skipping super.build_phase breaks it, and configure sequences per path.

    Learning path: contract, paths, resolution order, then config objects, performance, auto-config and configuring sequences.
    Start with the contract and paths, then the precedence rules, which the last four lessons rely on.

    The lessons

    Lesson

    What you learn

    The set/get contract

    The four arguments, how the lookup key is built, exact type matching, and checked gets.

    Instance paths and wildcards

    Glob patterns, why agt.* does not include agt, and choosing the reach of a setting.

    Resolution order: who wins

    The one home for precedence: 1000 minus setter depth during build, last set otherwise, with the lookup diagram and the debug tools.

    Config objects

    One typed object instead of many knobs: dma_job_cfg, get-or-randomize, polymorphic config and shared handles.

    config_db performance and anti-patterns

    What a lookup costs, gets in hot paths, global * sets, check_config_usage, wait_modified.

    Auto-config and field macros on components

    apply_config_settings, use_automatic_config, is_active, and +uvm_set_config_int typing.

    Configuring sequences

    A sequence's full name, get(null, get_full_name(), ...), p_sequencer config and per-path knobs.

    Interview

    The config_db question every senior loop asks: "The agent sets a value for its driver in build_phase, and the test sets a different value for the same driver. Who wins?" The test, because during build a set from higher in the hierarchy has higher precedence (1000 minus the setter's depth), whatever the order and however specific the paths. The full rules are in Resolution order.

    Related topics

    • Up: Factory & Configuration

    • Previous topic: the UVM factory

    PreviousNext: The set/get Contract: Four Arguments That Must Agree

    Up next

    Up nextThe set/get Contract: Four Arguments That Must Agree

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • UVM Factory: Registration, Overrides and Debug