Global seed vs per-agent vif — which API?
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 componentvif: 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
// hierarchical vif
uvm_config_db#(apb_vif)::set(this, "env.agent*", "vif", vif);
// global seed
uvm_resource_db#(int)::set("GLOBAL_SEED", seed, this);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
Explain which API for vif vs seed in 30 seconds.
Describe uvm_config_db::dump() use after build_phase.
Wildcard set for everything.
Same field name collision across agents.
get in wrong phase.