跳转至

输入查询内容

    本页内容

    Reporting / 命令行

    优先核对依赖 catcher、NO_ACTION 消息和宽命令行配置的路径。报告核心接口多数保留,但过滤、路由和部分默认行为发生变化;已删除的旧全局 API 需改写。验证时观察消息分类、catcher 次数及实际配置值。

    建议阅读顺序

    先核对删除接口和宽命令行配置,再检查 catcher、报告路由及脚本判定。新增或消失的消息需解释其原因。

    M04-004M04-018M04-001M04-007

    用户接口与行为

    条目 修改方案
    M04-001 消息宏重写:新增 UVM_NO_ACTION 短路检查
    高风险 · 静默/数据 日志/调试变化需要 catcher 统计或修改的消息,入口 action 不应先设为 UVM_NO_ACTION;让消息进入 catcher,再由 catcher 按业务规则处理并决定继续 THROW 或停止 CAUGHT。不依赖 catcher 的禁用消息可保持 NO_ACTION;改写后检查每条消息的 catcher 次数及最终计数/路由,过滤发生在不同阶段时不可只对照屏幕文本。 自定义消息宏需要接入目标报告流程时,按 uvm_report_begin / uvm_report_end 的成对结构封装原消息生成逻辑,并保留 severity、ID、verbosity 与 action 意图;使用该包装不会恢复 NO_ACTION 消息进入 catcher 的旧路径。
    M04-002 uvm_report_warning/uvm_report_error 默认 verbosity 改为 UVM_NONE
    日志/调试变化核对直调 warning/error 的消息策略。2.0 中显式传高 verbosity 也不会恢复旧过滤,需通过 report action 或经过验证的 catcher 控制输出。
    M04-003 非 INFO 消息不再做 verbosity 过滤
    日志/调试变化若有用 verbosity 压制 WARNING 的用法,改为明确的 action 或经过验证的 catcher 策略;仅 severity override 为 INFO 不会恢复入口处的过滤。
    M04-004 旧全局配置、timeout 和 stop 函数需要改写
    编译断点 高风险 · 静默/数据全局配置调用优先改为 uvm_root::get().set_config_int/object/string(...) ,保留原实参与 object 的 clone 标志;这些组件方法在目标主库仍存在(M01-015),不需要 deprecated 开关。统一改用 config_db 时,必须同步类型、作用域和克隆契约,详见下面的映射。timeout 改 uvm_root::get().set_timeout(...) ;stop 的收尾超时按 M03-002 单独设计。
    M04-005 删除:reporting 类中的 deprecated 方法
    编译断点 日志/调试变化把对象 get_report_server() 调用改为 uvm_report_server::get_server()。自定义格式移到 compose_report_message,自定义 action 处理移到 execute_report_message;新参数为 uvm_report_message,不能只把旧方法改名后保留原形参。具体目标签名与默认行为保留方式见下方。
    M04-007 report_summarize 签名与文件路由行为变化
    日志/调试变化 其他行为变化推荐省略实参或显式用 UVM_STDOUT;旧 report_summarize(0) 在目标版走 UVM_LOG 到句柄 0,不再表达 stdout。传入有效文件时,目标只恢复 action,未恢复 UVM/REPORT/SERVER 的 ID 文件配置( src/vcs-uvm-ieee-2020-2.0/base/uvm_report_server.svh:959 );需要复用原配置时调用方保存/恢复文件句柄。report_probe 已验证路由位、低 verbosity 可见性及恢复写法,未以捕获消息替代实际落盘集成验收。
    M04-008 UVM_FILE 相关常量值变化(UVM_STDOUT=1 → 32'h8000_0001)
    日志/调试变化 其他行为变化表达 UVM 标准输出时用 UVM_STDOUT 替代硬编码 1,比较改为 handle == UVM_STDOUT;标准错误用 UVM_STDERR。保留 $fopen 返回的实际句柄,不要把目标文件描述符与旧 MCD 掩码按位拼接。report_summarize 的 stdout 调用按 M04-007 省略参数或显式传 UVM_STDOUT。
    M04-009 消息时间戳默认由 $time 改为 $realtime
    日志/调试变化日志时间戳解析由仅接受整数改为允许实际 $realtime 输出的小数形式;比较时按日志中的时间单位归一化,不截掉小数部分。时间解析与 severity、ID、消息内容分别处理,再更新回归基线;报告调用本身可保留。
    M04-011 get_arg_matches 重用统一匹配接口,/regex/ 仍保留正则语义
    其他行为变化正常 /regex/ 用法无需为此改写为 glob。自行编译且关闭 DPI 的环境单独核对匹配支持范围。
    M04-014 report hooks 与 1.1d-compat 方法在 2.0 保留且不再受 UVM_NO_DEPRECATED 控制
    日志/调试变化无。
    M04-016 删除:uvm_vector_to_string;uvm_cmdline_proc 由 const 变为可写
    编译断点uvm_vector_to_string(value, size, radix, radix_str) 改为 uvm_bitstream_to_string(value, size, radix, radix_str),原实参顺序与格式意图保持;例如 text = uvm_bitstream_to_string(value, 32, UVM_HEX, "h")。不要借此改用 int 截断宽值。uvm_cmdline_proc 的普通只读使用可保留。
    M04-018 +uvm_set_config_int 宽值经 32 位字符串转换被截断
    高风险 · 静默/数据目标版本的宽配置使用 +uvm_set_config_bitstream=uvm_test_top,wide_value,0x1234567801234567 ,该替代已保持完整 64 位;也可在测试中以明确类型调用 config_db::set。必须断言实际读回配置,不能只看 Applying config 日志。
    M04-019 +UVM_STACKTRACE 不再输出报告调用栈(S10)
    日志/调试变化将依赖 +UVM_STACKTRACE 的日志提取和排障步骤列为调试流程迁移项。提交最小触发测试、完整 VCS/Verdi 版本、编译/运行参数及缺少调用栈的日志片段,通过现有产品支持渠道确认目标构建可用的报告断点或调用栈方案。当前没有经过本项目验证、可直接替换此选项的通用命令;在方案确认前保留可复现问题的 1.2 调试构建。
    新增功能 · 1 项

    目标库新增的 API 和可选替代接口;已有用法的迁移要求列在用户接口与行为中。

    条目 修改方案
    M04-015 新增 API(uvm_globals / uvm_misc)
    新增/接口调整无(存量代码不受影响;注意 uvm_string_split ≠ uvm_split_string ,勿混用)。

    全部新增功能

    内部实现 · 2 项

    文件组织、内部数据结构与实现钩子的变化。直接依赖内部接口时查阅,普通 API 的使用不需要重审这些源码。

    条目 修改方案
    M04-010 uvm_report_object 的 report handler 改为懒创建
    日志/调试变化 其他行为变化直接引用 .m_rh 的代码改走 get_report_handler() 。
    M04-017 新增文件 uvm_cmdline_report.svh(+UVM_VERBOSITY / +uvm_set_* 解析抽离)
    日志/调试变化 其他行为变化无。

    全部内部实现

    VCS 定制说明

    VCS 定制说明

    以下对照用于区分 VCS 定制与 Accellera 参照;需要迁移的事项以关联条目的条件、改法和验证为准。

    定制项 两版状态 工程影响与入口
    +UVM_STACKTRACE 目标保留解析但删除原调用路径 调试输出变化、条件与证据见 M04-019
    UVM_DISABLE_ERROR_MSG_POST_QUIT_COUNT 两版延续 quit-count 到顶后抑制后续 error;report_object/globals 均有实现。
    Verdi 交互及命令行钩子 两版延续 verdi_set_verbosity、verdi_uvm_mailbox、UVM_VERDI_TRACE、UVM_VCS_CLP_TF、m_convert_verb 属调试集成,不据此声明所有 Verdi 启动配置等价。
    UVM_DIRECTC_OPTS / UVM_SV_SEED 两版保留种子实现扩展 具体激励仍按随机源与场景验收,不能只比较 seed。
    ZEMI4UVM、FGP 属性与版本后缀 旧消息宏中的 ZeBu 属性、report_handler 的 FGP 锁属性及 .Synopsys 后缀移除 版本解析见 M09-008;FGP 见 M10-007,使用 ZeBu 流程时需单独验证。
    Catcher/message/handler/version/message 宏文件 目标除所述历史属性外与 Accellera 一致 用户可见变化仍按本模块正式条目处理。

    版本适用范围