跳转至

输入查询内容

    本页内容

    废弃开关极性翻转:UVM_NO_DEPRECATED(opt-out)→ UVM_ENABLE_DEPRECATED_API(opt-in)

    影响范围

    构建脚本包含 UVM_NO_DEPRECATED 或准备启用新 deprecated 开关。

    具体差异

    1.2 默认包含 deprecated API、定义 UVM_NO_DEPRECATED 才排除;2.0 默认排除、需 +define+UVM_ENABLE_DEPRECATED_API 才引入 deprecated sequence 宏。原构建脚本中的 +define+UVM_NO_DEPRECATED 在 2.0 下无任何效果。

    修改方案

    按原意检查构建开关。原先定义 UVM_NO_DEPRECATED 是排除旧接口,不能机械改成启用 UVM_ENABLE_DEPRECATED_API;仅当确实需要目标版保留的旧宏时开启新开关。

    兼容措施与范围

    本开关只开放目标库仍保留的 deprecated API;不恢复已删除的接口,也不控制 field FLAG。旧 UVM_NO_DEPRECATED 是禁用,新开关是启用,须保留原构建意图。

    迁移后验证

    分别在启用/关闭旧接口的目标构建编译代表宏;检查预处理分支符合原 opt-out/opt-in 意图。

    记录本条结果M09-007 · 状态与证据

    已有实测与复现

    补充查阅

    扫描定位与记录结果

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

    uv run tools/uvm_migration_scan.py <SoC代码目录> --rules D2
    

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

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

    源码与标准依据

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

    VCS 内置 UVM-1.2uvm_macros.svh:77UVM_NO_DEPRECATED 段)及 uvm_macros.svh:109deprecated defines 默认编入)

    VCS 内置 uvm-ieee-2020-2.0uvm_macros.svh:130–131src/vcs-uvm-ieee-2020-2.0/deprecated/readme.important 明确"默认不包含,需编译期定义 UVM_ENABLE_DEPRECATED_API"

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

    src/vcs-uvm-1.2/uvm_macros.svh
    //
    // Deprecation Control Macros
    //
    `ifdef UVM_NO_DEPRECATED
    `endif
    
    `define uvm_delay(TIME) #(TIME);
    
    // Modified by Verdi
    `ifndef UVM_VERDI_PORT_RECORDING
    `define UVM_VERDI_NO_PORT_RECORDING
    `endif
    
    `ifdef UVM_NO_VERDI_RECORD
    `define UVM_VERDI_NO_VERDI_TRACE
    `define UVM_VERDI_NO_HIER_TRACE
    `define UVM_VERDI_NO_COMP_TYPE
    `define UVM_VERDI_NO_FACTORY_RECORDING
    `define UVM_VERDI_NO_PORT_RECORDING
    

    src/vcs-uvm-1.2/uvm_macros.svh
    `include "macros/uvm_sequence_defines.svh"
    `include "macros/uvm_callback_defines.svh"
    `include "macros/uvm_reg_defines.svh"
    `include "macros/uvm_deprecated_defines.svh"
    
    `ifdef VCS
    `ifndef UVM_VCS_ENC
    `define UVM_VCS_GLOBAL_DECLARATIONS
    `define UVM_VCS_DECLARATIONS
    `define UVM_VCS_CHECK(if_expr) if_expr
    `define UVM_VCS_CLP_TF
    `ifdef UVM_VCS_DTL_REFRESH
    `define UVM_VCS_CALL_REFRESH_COMPONENT
    `endif
    `endif
    `endif
    
    `endif
    

    完整源码 · SHA256:cdf2c414fc9ae4bb2453842e5a1c1172596c5d19e34abeb4c7745a2773f98070

    src/vcs-uvm-ieee-2020-2.0/uvm_macros.svh
    `include "macros/uvm_callback_defines.svh"
    `include "macros/uvm_reg_defines.svh"
    
    `ifdef UVM_ENABLE_DEPRECATED_API
    `include "deprecated/macros/uvm_sequence_defines.svh"
    `endif
    
    `ifdef VCS
    `ifndef UVM_VCS_ENC
    `define UVM_VCS_GLOBAL_DECLARATIONS
    `define UVM_VCS_DECLARATIONS
    `define UVM_VCS_CHECK(if_expr) if_expr
    `define UVM_VCS_CLP_TF
    `ifdef UVM_VCS_DTL_REFRESH
    `define UVM_VCS_CALL_REFRESH_COMPONENT
    `endif
    `endif
    `endif
    

    完整源码 · SHA256:d85eb414948cb37c6249b33c0c7f728296e86f833a81d772c86e09245d8df764

    术语解释 · 兼容配置

    返回Field Automation / 版本宏 · 迁移清单

    版本适用范围