UVM_ERROR代表出现严重错误,需要立即暂停仿真并进行处理。而UVM_FATAL则表示仿真已经无法继续进行,需要立即终止。这四个信息严重性等级可以通过`uvm_info`语句重载,并可以使用`$sformatf()`系统函数打印带参数的字符串。不同的等级可以在仿真过程中设置不同的冗余度级别,当达到一定数量时,仿真会结束。
3.set_report_verbosity_level:设置某个特定的component 冗余度。 driver里面两个UVM_HIGH 的info。 base_test里设置为UVM_HIGH。仿真,两条都打印。改成UVM_MEDIUM,两条都不打印。 1)由于牵涉到层次引用,要在connect_phase即以后的phase才能调用。 2)如果不牵涉层次引用,如设置当前component的冗余度,可以在connect...
uvm_info执行的时候,UVM会判断系统对这条语句的啰嗦容忍等级,然后进行屏蔽或打印。通过命令行参数或者component对象调用配置函数,可以灵活调整系统的啰嗦容忍等级,从而控制对uvm_info语句的屏蔽。 另外,建议大家写uvm_info语句的时候,info id尽量使用一些便于后期筛选或过滤的字符串(比如function或者task的名字); 而不要...
uvm默认的打印等级是UVM_MEDIUM,也就是说,使用`uvm_info打印时,第三个参数传递的为UVM_NONE,UVM_LOW,UVM_MEDIUM,最终会被打印到标准输出,而传递参数为UVM_HIGH,UVM_FULL,UVM_DEBUG,则不会打印到标准输出。从这个角度理解,打印等级实际上是一个阈值的概念,当阈值设定为某个级别时,当前级别往下的等级,都可以打印...
如何在仿真时调整打印级别呢?在vcs sim run的时候加上run_opt 比如+UVM_VERBOSITY=UVM_XXX 就行了。当然,还有更高级的用法,可以指定某个模块的uvm_verbosity等级: 这里的id就解释了`uvm_info(id,msg,verbosity)的id的作用了,代表标识,phase代表了在什么phase起作用。再看个下面例子,对agent全部组件及全部id生效...
uvm_info是一个带参数的宏,包含3个部分:ID(标示信息)、MSG(调试信息)、啰嗦程度。ID并非唯一,可为多条语句指定相同ID。MSG为打印信息,可直接指定或通过$sformat产生格式化字符串。啰嗦程度通过枚举类型指定,决定信息是否被屏蔽。通过uvm_report_enabled函数计算信息的啰嗦程度与系统容忍等级进行比较...
(1) 在一些特殊case中,遇到VIP报uvm_error导致仿真退出,这时,可以使用uvm_report_catcher捕获到它特定的message,并将其降级为UVM_INFO. (2) 比较粗糙的将UVM_ERROR disable的方法有使用uvm打印信息重载方法对UVM_ERROR降级或使用set_report_severity_actiion方法; ...
可以看到打印了信息# UVM_INFO ./lab1.sv(6) @ 0: reporter [lab1.1] hello uvm! 软件:Questasim、gitbash 推荐使用gitbash,使用makefile之前要安装makefile,教程在这里->https://www.eemaker.com/git-bash-make.html 本节代码下载链接: 链接:https://pan.baidu.com/s/1GBhvpGaoG_BNvRZqh-4kPA 提取码...
`uvm_info("TAG", "Message", UVM_MEDIUM); ``` 其中,TAG为打印信息的标签,Message为要输出的信息,UVM_MEDIUM为信息的级别。在使用Print函数时,需要注意以下几点: 1. 打印信息的标签可以自定义,一般用于区分不同模块或功能的信息。 2. 要输出的信息可以是字符串常量,也可以是变量或表达式。在输出变量或表达式...