如何在bench里面run多个seqeuence,uvm_cmdline_processor usage

1. 用UVM command line processor。+SEQ=seq1 +SEQ=seq2 .。。。看到的方式都比较固定,总结一些写法。

task run_phase(uvm_phase phase);

     seq_class seq;

     string list_of_sequences[$];

     uvm_cmdline_processor clp;

     

     clp=uvm_cmdline_processor::get_inst();

    if(clp.get_arg_values("+SEQ=",list_of_sequences) == 0 )begin

         `uvm_fatal(get_type_name(),"No sequences specified.")

          end

   phase.raise_objection(this);

   foreach(list_of_sequences[n])begin

      $cast(seq,factory.create_object_by_name(list_of_sequences[n])); 

       seq.start(null);

    end

   phase.drop_objection(this);

endtask

2.uvm_cmdline_processor usage

连接验证环境与验证脚本的桥。

用法:

1. 内部存在的桥:+UVM_TESTNAME = 后面接test的名字,

+UVM_VERBOSITY = 打印的优先级 UVM_HIGH,UVM_LOW,UVM_MEDIUM

+uvm_set_verbosity  设置某个组件,标识,时间的优先级,

+uvm_set_action 设置组件,标识,严重程度的某个动作,UVM_NO_ACTION,UVM_DISPLAY,UVM_LOG,UVM_COUNT,UVM_EXIT,UVM_CALL_HOOK,UVM_STOP,UVM_RM_RECORD

+uvm_set_severity设置某组件的严重程度,UVM_ERROR,UVM_WARNING

+UVM_TIMEOUT 全局时间限制

+UVM_MAX_QUIT_COUNT最大错误数量限制

4个trace开关

+UVM_PHASE_TRACE

+UVM_OBJECTION_TRACE

+UVM_RESOURCE_DB_TRACE

+UVM_CONFIG_DB_TRACE

工厂模式,用于整体修改基于inst和type的替换

+uvm_set_inst_override

+uvm_set_type_override

修改uvm内部组件,特定字段的特定值

+uvm_set_config_int = uvm_test_top.env,mode,5

+uvm_set_config_string

default sequence的设定 

+uvm_set_default_sequence

提供了一些函数来设置args。

1. get_inst(),返回cmdline的默认名字

2. function void get_args(output string args[$]) 获取命令行中的所有参数,并将参数放到args 队列中

3. function void get_plusargs(output string args[$]).获取以“+”开头的参数,将参数放到args队列中

4.function void get_uvm_args(output string args[$]) 获取带有uvm的参数,不区分大小写,将参数放到args队列中

5.function int get_arg_matches(string match,ref string args[$])获取与字符串match的内容匹配的参数,将参数放到args队列中

6. function int get_arg_value(string match,ref string value),获取与字符串match的内容,仅仅获取第一个参数

7.function int get_arg_values(string match,ref string value),获取与字符串match的内容,获取所有参数放到args队列中

8. function string get_tool_name().返回simulation工具名字。vendor 定义的

9.function string get_tool_version(). 返回工具版本号,vendor定义。

10. function bit m_convert_verb(string verb_str,output uvm_verbosity verb_enum) ,将verb值换算成一个变量来控制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值