【UVM】UVM中打印信息的控制

重载打印信息的严重性

UVM默认有四种信息严重性:UVM_INFO、UVM_WARNING、UVM_ERROR、UVM_FATAL。这四种严重性可以互相重载。如果要把driver中所有的UVM_WARNING显示为UVM_ERROR,可使用如下的函数:

virtual function void connect_phase(uvm_phase phase);
env.i_agt.drv.set_report_severity_override(UVM_WARNING, UVM_ERROR);
//env.i_agt.drv.set_report_severity_id_override(UVM_WARNING, "my_driver", UVM_ERROR);
endfunction

重载严重性可以只针对某个component内的某个特定的ID起作用:env.i_agt.drv.set_report_severity_id_override(UVM_WARNING, “my_driver”, UVM_ERROR);

UVM不提供递归的严重性重载函数。严重性重载用的较少,一般只会对某个component内使用,不会递归的使用。

重载严重性也可在命令行中实现,其调用方式为:

<sim command> +uvm_set_severity=<comp>,<id>,<current severity>,<new severity>
如:<sim command> +uvm_set_severity="uvm_test_top.env.i_agt.drv,my_driver,UVM_WARNING,UVM_ERROR"
//若要设置所有的ID,可以在id处使用_ALL_:
<sim command> +uvm_set_severity="uvm_test_top.env.i_agt.drv,_ALL_,UVM_WARNING,UVM_ERROR"
  • +UVM_VERBOSITY=UVM_NONE 将整个UVM环境钟的verbosity级别都设置为了UVM_NONE。

  • +uvm_set_verbosity=<comp>,<id>,<verbosity>,time,<time>将设置特定的component下指定ID的verbosity。

  • 例如:“+uvm_set_verbosity=tb_top.pcie_inst*,_ALL_,UVM_NONE,time,0”就是设置tb_top.pcie_inst下面所有ID的verbosity为UVM_NONE。

  • <sim command> +uvm_set_verbosity=uvm_test_top.env0.agent1.*,_ALL_,UVM_FULL,time,800

  • UVM目前定义了6种啰嗦等级,UVM_NONE -> UVM_LOW -> UVM_MEDIUM -> UVM_HIGH-> UVM_DEBUG -> UVM_FULL是越来越啰嗦。

  • 这里的<comp>是uvm component 的路径,支持*号通配符(跟uvm_config_db set/get时的用法类似,只是这里必须用绝对路径)。

  • <id>是uvm_info的第一个参数(如果选择component的所有打印语句,就写_ALL_)。

  • <phase>可以指定从某个uvm phase开始生效。xxx_phase直接写xxx就可以了,_phase省略掉。

  • <time>可以指定从某个仿真时刻开始生效

这些plusargs是在仿真刚开始但RTL时间还未推进之前就解析并执行的,也就是说在0时刻之前。
对于全局配置,如果指定了多次,会按照最低的容忍等级来执行。也就是说,如果在一长串的仿真参数里,先给了一个+UVM_VERBOSITY=UVM_LOW,又给了一个+UVM_VERBOSITY=UVM_HIGH,最终会按照UVM_LOW来过滤信息。这有点像木桶短板理论。
注意:这时候另外加上参数+uvm_set_verbosity=uvm_test_top.env0.agent0,msg_a,UVM_HIGH,run,可以单独指定系统对uvm_test_top.env0.agent0里info id为“msg_a”的打印信息的容忍等级改为高,并且从run phase开始生效。

另外,uvm_set_action,直接贴源码,解释的很清晰。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值