// apb_agnt and other components are assumed to be user-defined classes that already exist in TB apb_agnt m_apb_agnt; func_cov m_func_cov; scbd m_scbd; env_cfg m_env_cfg; // Build components within the "build_phase" virtual function void build_phase (uvm_phase phase); super.bui...
上面代码中的scope_name默认设置为"uvm_test_top.env.sub_env.agent1.sequencer.initialization_sequence"。 sequence配置最常见的用例是为agent及其组成组件(sequencer、driver、monitor……)获取agent的配置对象集。 classsub_envextendsuvm_env;...functionvoidbuild_phase(uvm_phasephase);...my_bus_configagent1_c...
env_vcs.f :env_vcs.f文件,针对vcs工具的filelist文件,包含设计和验证平台的文件列表。 env_xrun.f :env_xrun.f文件,针对xrun工具的filelist文件,包含设计和验证平台的文件列表。 tc.list :tc.list文件,包含所有测试用例信息,可为测试用例设定分组,方便回归测试。 my_env_cfg.sv :my_env_cfg.sv文件,整个...
function void build_phase(uvm_phase phase); super.build_phase(phase); cfg = iconfig::type_id::create("cfg"); uvm_config_db#(iconfig)::set(this,"env.agent.driver","cfg",cfg); uvm_config_db#(iconfig)::set(this,"env.agent.monitor","cfg",cfg); ... endfunction endclass 通过在b...
(uvm_phase phase);// Create env configuration objectm_env_cfg=spi_env_config::type_id::create("m_env_cfg");// Call function to configure the envconfigure_env(m_env_cfg);// Create apb agent configuration objectm_apb_cfg=apb_agent_config::type_id::create("m_apb_cfg");// Call ...
在env文件夹中创建一个名为amp_env.sv的文件,该文件用于创建env,并例化reference model、scoreboard和agent,建立起它们之间的连接,以及完成配置方面的工作。 正如在agent的部分所说的那样,agent所需的配置变量agt_cfg将在env中获取然后传递给agent,而agt_cfg的创建将在tests文件夹下的文件中完成。
ARB_ENV arbiter_master_agent:给arbiter提供并行数据,并且对来自arbiter的仲裁信号进行响应 arbiter_slave_agent:模拟formatter的功能,接收来自arbiter的输出数据,对arbiter的输出信号做出响应 reg_cfg_agent:对三个chnl的优先级进行配置 scoreboard:从三个agent的monitor中获取监测数据,对arbiter的仲裁机制做出预测,并且将输...
this.virt_sqr = conv_virtual_sequencer::type_id::create("virt_sqr", this);endfunctionendclass: conv_envclass cfg_agent extends uvm_agent;function void build_phase(uvm_phase phase);super.build_phase(phase);driver = cfg_driver::type_id::create("driver", this);monitor = cfg_monitor::...
class my_test extends uvm_test;my_config cfg;...function void bulid_phase(uvm_phase phase);...uvm_config_db#(my_config)::set(this,"env","cfg",cfg);...endfunctionendclass 在test.env中get:class my_env extends uvm_env;my_config cfg;...function void bulid_phase(uvm_phase phase);....
UVM_INFO @ 0.00ns: uvm_test_top.fifo_env.rd_agt.drv [CFGPRT] visible resources: rd_drv_if [/^uvm_test_top\.fifo_env\.rd_agt\.drv$/] : (virtual interface rd_interface#(8)) ? - UVM_INFO @ 0.00ns: uvm_test_top.fifo_env.rd_agt.drv.rsp_port [CFGPRT] visible resources: ...