
为什么我打印的 info 看不到?在 UVM 验证环境中,你可能会遇到这样的情况:在代码中写了大量的uvm_info宏来打印调试信息,但仿真时却一条也看不到,或者只看到部分 warning/error。这是为什么?答案在于 UVM 的消息过滤机制。UVM 对消息有两个维度的控制:严重级别(severity)和冗余度(verbosity)。默认情况下,仿真器只会显示一定冗余度以上的消息,并且对不同的严重级别有不同的处理方式。如果不知道如何调整这些设置,你就会错过关键的调试信息,或者在日志中看到一堆无关紧要的消息。重点:理解 UVM 消息级别和过滤机制,是高效调试验证平台的基本功。Verbosity 与 Severity四类严重级别(Severity)UVM 定义了四种消息严重级别,用于区分消息的重要性:UVM_INFO:一般信息,用于报告正常的事件或状态。默认不会终止仿真,但可以通过设置提升其重要性。UVM_WARNING:警告信息,表示可能存在潜在问题,但仿真可以继续。默认不会终止仿真,但会显示。UVM_ERROR:错误信息,表示验证平台检测到实际错误,默认累计错误数,达到一定数量后可能终止仿真(具体取决于仿真器设置)。UVM_FATAL:致命错误,表示必须立即终止仿真,通常用于无法继续运行的情况。重点:严重级别决定了消息的重要程度,也决定了 UvM 的默认处理动作(是否终止、是否计数等)。