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
    • Phases & Objections
    • Env & Test Architecture
    • Debug Broken Testbench
      • Find config_db Mismatch
      • Find Objection Leak
      • Find TLM Null Port
      • Debug Tricky Q&A
    • Mock Interview Sets
    • Senior UVM Coding Cheat Sheet
  • Verification in Industry Practice10
  • Senior Prep: Architecture, Leadership and Interviews32
Loading lesson

←Debug Broken Testbench
  1. Topics
  2. UVM Verification
  3. Coding Practice
  4. Debug Broken Testbench
  5. Find config_db Mismatch
On this page

    UVM Coding PracticeSenior

    Find config_db Mismatch

    Broken top.sv wrong path — verbal debug worksheet.

    Triage worksheet (say aloud before opening code)

    1. Symptom: Driver never wiggles bus — no PSEL/PENABLE activity

    2. Hypothesis list — config_db, objections, TLM connect, factory, seq not started

    3. Minimal experiment — dump, topology print, one UVM_INFO probe

    4. Root cause statement in one sentence

    5. Fix + regression hook

    Interview prompt

    Driver never wiggles bus — list hypotheses before opening code.

    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

    Buggy snippet — critique verbally

    design.sv
    // top.sv
    uvm_config_db#(apb_vif)::set(this, "env.master", "vif", vif);
    // agent path is env.agent.m_driver — get fails

    Answer

    Path mismatch: set env.agent* or match get path. Run uvm_config_db::dump() in agent build_phase.

    Mechanism to narrate

    • Null vif → driver waits forever on clock edge

    • dump() shows set vs get paths side by side

    • Fix: uvm_config_db::set(this, "env.agent*", "vif", vif)

    Smoke test (5 minutes)

    • Fix path — one transaction on bus.

    • Add dump in agent build if get fails.

    Code lab drill

    After reading, try Code lab exercise uvm-l9-bug-config — topic reference: /topics/uvm/coding-practice/debug-broken-tb/find-config-db-mismatch

    Previous

    229 / 280

    Next: Find Objection Leak

    Up next

    Up nextFind Objection Leak

    Sign in to save progress

    Practice this lessonPrevious lessonReport an error

    See also

    • Find TLM Null Port
    • Debug Tricky Q&A