跳转至

输入查询内容

    本页内容

    非 INFO 消息不再做 verbosity 过滤

    影响范围

    依赖 verbosity 隐藏非 INFO 报告。

    具体差异

    直调高 verbosity 的 WARNING 在 1.2 可能被滤掉,2.0 的预检只处理调用入口为 UVM_INFO 的情况。severity override 位于后续处理链路,降级成 INFO 不会重新执行此处过滤;interface_probe 中高 verbosity warning 降级后在 2.0 仍进入 catcher。最终输出还取决于 catcher、action 和自定义 server,不能表述为必发。 uvm_sequence_item::uvm_report 的入口预检同样只对 UVM_INFO 生效;省略 verbosity 的默认值变化见 M04-002

    修改方案

    若有用 verbosity 压制 WARNING 的用法,改为明确的 action 或经过验证的 catcher 策略;仅 severity override 为 INFO 不会恢复入口处的过滤。

    兼容措施与范围:现有入口无需兼容开关;这不表示两版行为相同,仍按本条条件和验证方法核对。

    迁移后验证

    分别发出 INFO/WARNING/ERROR 并改变 verbosity;若必须改变 action,按 severity/ID 明确设置并验证错误判定仍符合意图。

    记录本条结果M04-003 · 状态与证据

    已有实测与复现

    补充查阅

    扫描定位与记录结果

    有扫描规则,覆盖部分可识别写法。脚本检查名称、参数和部分 FLAG 表达式,并对少数直接声明关联使用点;未做完整类型解析或预处理,行为结果仍需验证。

    • S30 · 启发式:warning/error/fatal 报告的 verbosity 过滤变化。 覆盖 warning/error/fatal wrapper 和直接 uvm_report,按位置或命名参数核对 severity/verbosity/入口检查开关。排除已知 INFO、普通默认 fatal、显式 UVM_NONE/0;动态 severity 保留提示。负阈值等定制过滤需另查。
    uv run tools/uvm_migration_scan.py <SoC代码目录> --rules S30
    

    核对命中对象及生效分支后,在条目清单记录修改与验证证据;扫描规则记录用于整理命中位置。

    扫描器下载、输入范围与报告说明

    源码与标准依据

    核查方式:源码与实测核对。实测仅覆盖本条所列场景。

    VCS 内置 UVM-1.2uvm_report_object.svh:144if (report_enabled_checked == 0) 对全 severity 检查)

    VCS 内置 uvm-ieee-2020-2.0uvm_report_object.svh:159if ((severity == UVM_INFO) && ...)

    标准依据:IEEE 1800.2-2020 §6.3.3("Verbosity is ignored for warnings, errors, and fatals")

    标为“源码标注”或未注明原文核对的条款仅作定位;具体库行为以源码和实测为准。

    引用代码(高亮为引用行);上方行号链接可直接定位。

    src/vcs-uvm-1.2/base/uvm_report_object.svh
                                        bit report_enabled_checked =0);
        uvm_report_message l_report_message;
        if (report_enabled_checked == 0) begin
          if (!uvm_report_enabled(verbosity, severity, id))
            return;
        end
        l_report_message = uvm_report_message::new_report_message();
        l_report_message.set_report_message(severity, id, message, 
                        verbosity, filename, line, context_name);
        uvm_process_report_message(l_report_message);
      endfunction 
    
    
      // Function: uvm_report_info
    
      virtual function void uvm_report_info( string id,
                         string message,
                         int verbosity = UVM_MEDIUM,
                         string filename = "",
    

    完整源码 · SHA256:f1747ee064c286b2c0f18d6e71b096890360ed9cb71ce494c1e07d007ec35f6a

    src/vcs-uvm-ieee-2020-2.0/base/uvm_report_object.svh
                                        string context_name = "",
                                        bit report_enabled_checked =0);
        uvm_report_message l_report_message;
        if ((severity == UVM_INFO) && (report_enabled_checked == 0)) begin
          if (!uvm_report_enabled(verbosity, severity, id))
            return;
        end
        l_report_message = uvm_report_message::new_report_message();
        l_report_message.set_report_message(severity, id, message, 
                        verbosity, filename, line, context_name);
        uvm_process_report_message(l_report_message);
      endfunction 
    
    
      // Function -- NODOCS -- uvm_report_info
    
      // @uvm-ieee 1800.2-2020 auto 6.3.3.3
      virtual function void uvm_report_info( string id,
                         string message,
    

    完整源码 · SHA256:f0e97820abcfcc86b64800110f8059734479f0c1a259ad04414c9af6708d98fa

    术语解释 · 兼容配置

    uvm_report_warning/uvm_report_error 默认 verbosity 改为 UVM_NONE(M04-002)

    返回Reporting / 命令行 · 迁移清单

    版本适用范围