ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

UVM Test

2022-09-11 20:04:07  阅读:390  来源: 互联网

标签:mem test phase UVM env Test model uvm


UVM Test

用户自定义 test 是从uvm_test 派生的,uvm_test是从 uvm_component 继承而来的。

  • test 定义了testbench的测试场景
  • test 类包含env、配置属性、类覆盖等
  • 在 test 中创建并启动一个/多个 sequences

调用 run_test() 方法时会激活 UVM testbench,全局 run_test() 任务应在 initial 块内指定。

可以有许多用户定义的测试用例。在多个测试用例中,可以选择一个特定的测试用例并使用两种方法执行,

1. 通过将 test 名称指定为 run_test() 的参数;

  example: run_test("mem_model_test");

2. 通过提供 UVM_TESTNAME 命令行参数

  example: <SIMULATION_COMMANDS> +UVM_TESTNAME=mem_model_test

Writing Test

1. test 是通过扩展UVM_TEST来编写的

class mem_model_test extends uvm_test;
 
  `uvm_component_utils(mem_model_test)
 
  function new(string name = "mem_model_test",uvm_component parent=null);
    super.new(name,parent);
  endfunction : new
 
endclass : mem_model_test

2. 声明 env and sequence

mem_model_env env;
mem_sequence  seq;

3. 创建 env and sequence

env = mem_model_env::type_id::create("env",this);
seq = mem_sequence::type_id::create("seq");

4. 启动 sequence

seq.start(env.mem_agnt.sequencer);

 

完整代码:

class mem_model_test extends uvm_test;
 
  `uvm_component_utils(mem_model_test)
 
  mem_model_env env;
  mem_sequence  seq;
 
  function new(string name = "mem_model_test",uvm_component parent=null);
    super.new(name,parent);
  endfunction : new
 
  virtual function void build_phase(uvm_phase phase);
    super.build_phase(phase);
 
    env = mem_model_env::type_id::create("env", this);
    seq = mem_sequence::type_id::create("seq");
  endfunction : build_phase
 
  task run_phase(uvm_phase phase);
    seq.start(env.mem_agnt.sequencer);
  endtask : run_phase
 
endclass : mem_model_test

 

标签:mem,test,phase,UVM,env,Test,model,uvm
来源: https://www.cnblogs.com/fuqiangblog/p/16684675.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有