我的tb_top文件中有一些强制(dut接口)。
例如:
// rx forces and assignments
assign rx_vif.chind2 = dut.rx_fe.chind2;
initial begin
force dut.rx_fe.x = rx_vif.x;
end
end
我只想在rx_agent处于活动状态时执行上述步骤。
为此,我必须将rx_agent_config对象添加到tb_top,如下所示:
if(!uvm_config_db #(rx_agent_config)::get(this, "", "db_rx_agent_config", m_rx_cfg)) begin
`uvm_error("top", "rx_agent_config not found")
end//if
set的代码:
uvm_config_db #(rx_agent_config)::set(this, "*", "db_rx_agent_config", m_cfg.m_rx_agent_cfg);
我应该写什么而不是这个(在get函数中)?
答案 0 :(得分:0)
假设您的组件名称在ENV中是“comp”,并且env在uvm_test中名为“env”,因此在测试台顶模块中,您应该使用下面的代码来获取配置句柄
uvm_config_db#(rx_agent_cfg)::get(null, "uvm_test_top.env.comp", "db_rx_agent_cfg", rx_cfg);
因为你可以在uvm_config_db中设置“rx_agent_cfg”的最早时间是build_phase中的0次,所以在初始块中的#0延迟之后可以安全地获取。