#UVM# 关于 config_db 机制中的直线非直线设置和获取讲解
在 UVM 验证环境中,uvm_config_db
是一种强大的机制,用于在不同组件之间传递配置参数。实际应用中,我们经常使用直线和非直线的设置与获取。今天,着重回忆一下这些内容,希望实际中更加方便的使用。
UVM 树结构示例
假设 UVM 树结构如下:
uvm_test_top
├── env
│ ├── i_agt
│ │ └── drv (driver)
│ ├── scb (scoreboard)
│ └── ref_model (reference model)
其中,driver
的路径为 uvm_test_top.env.i_agt.drv
。
直线设置与非直线设置
-
直线设置:
-
如果在
uvm_test_top
、env
或i_agt
中对driver
的某些变量进行设置,这种设置称为直线设置。 -
例如,在
env
中设置driver
的pre_num
参数:
-
function void env::build_phase(uvm_phase phase);super.build_phase(phase);uvm_config_db#(int)::set(this, "i_agt.drv", "pre_num", 100);
endfunction
-
这种