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



我在我的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延迟后可以安全地获得。

最新更新