我在我的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
设置的代码:
uvm_config_db #(rx_agent_config)::set(this, "*", "db_rx_agent_config", m_cfg.m_rx_agent_cfg);
我应该写什么而不是(在GET函数中)?
假设您的组件名称是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延迟后可以安全地获得。