UVM-如何从config db获取配置对象到tb_top

时间:2016-11-28 14:03:33

标签: uvm

我的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函数中)?

1 个答案:

答案 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延迟之后可以安全地获取。