搭建UVM验证环境常遇到的问题

1.在定义class时,new()函数的形参一定要指定缺省值,否则UVM会报错。如:

   

class IdValChkseq extends uvm_sequence;
      `uvm_object_utils(IdValChkseq)
       function new(string name = "");
           super.new(name);
       endfunction
endclass

   2.定义sequence类时,一定要用`uvm_object_utils宏注册,否则设置default_sequence时,UVM会报找不到sequence的错误。

class IdValChkTest extends base_test;
      `uvm_component_utils(IdValChkTest)
      function new(string name, uvm_component parent);
           super.new(name,parent);
       endfunction

       virtual function void build_phase(uvm_phase phase);
            super.build_phase(name,parent);
            uvm_config_db#(uvm_object_wrapper)::set(this,"mon_env.vsqr.run_phase","default_sequence",IdValChkseq::type_id::get);
       endfuction

endclass

 3.类里面的方法指定了extern,virtual关键字时,在类的外面定义方法的时候,不需要再指定它们。

 


版权声明:本文为u012521321原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。