RTL Studio Open IDE

Wiki UVM uvm_config_db

uvm_config_db

Pass virtual interfaces and knobs from tb_top into the agent.

uvm_config_db is how tb_top hands a virtual interface (and config objects) into the UVM tree without globals.

flowchart TB
  top[tb_top] -->|set| db[uvm_config_db]
  db -->|get| drv[driver]
// tb_top
uvm_config_db #(virtual fifo_if)::set(null, "uvm_test_top.*", "vif", vif);

// driver
if (!uvm_config_db #(virtual fifo_if)::get(this, "", "vif", vif))
  `uvm_fatal("DRV", "no vif")

Match the instance path (uvm_test_top.env.agent.*) or use "*" carefully. Prefer a config object for many knobs.

Wrong vs right

Wrong — uvm_config_db #(virtual fifo_if)::get ignored return value, then null-pointer in run_phase.

Right — get must succeed or uvm_fatal; set from tb_top before run_test().

See also