在uvm里一般用`uvm_info
来打印信息。
`uvm_info
这个宏定义如下:
共有3个参数,分别是,
ID:本模块名、class名、例化名等
MSG:要打印的主要內容
VERBOSITY:控制要打印的等级
uvm_verbosity_level由一个枚举类型定义,数字越小,表示打印得越多。UVM_NONE
是总是会打印,而UVM_DEBUG
几乎不打印。
另外两个打印宏,则在宏內部固定死了VERBOSITY:
所以,我们在使用这个宏时需要合理地使用VERBOSITY,可以遵循下面的原则:
致命错误,仿真需要立即停止的,用UVM_NONE
总是要打印的重要关键信息,也用UVM_NONE
一般报错,但仿真还可以继续跑,用UVM_LOW
一般的信息,提示性的信息,用UVM_MEDIUM
內部信息,更详细一点信息用UVM_HIGH或者UVM_FULL
debug类型的,只在debug时才用,平时不开启,用UVM_DEBUG
在仿真时,在仿真脚本的命令里,传入+UVM_VERBOSITY=UVM_XXX
来控制打印的详细程度,比如,传入UVM_LOW时,只有UVM_LOW和UVM_NONE的会打印,而UVM_MEDIUM到UVM_DEBUG则不打印。
如果需要打印全部信息,包括debug信息,则需要传入UVM_DEBUG。
如果为了省事,不如再包几个自定义的宏,大家看看这样是不是更方便理解呢?