本页内容
废弃开关极性翻转: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 表达式,并对少数直接声明关联使用点;未做完整类型解析或预处理,行为结果仍需验证。
- D2 · 文本匹配:UVM_NO_DEPRECATED 开关失效(极性翻转为 opt-in)。
| uv run tools/uvm_migration_scan.py <SoC代码目录> --rules D2
|
核对命中对象及生效分支后,在条目清单记录修改与验证证据;扫描规则记录用于整理命中位置。
扫描器下载、输入范围与报告说明
源码与标准依据
核查方式:源码与实测核对。实测仅覆盖本条所列场景。
VCS 内置 UVM-1.2:uvm_macros.svh:77(UVM_NO_DEPRECATED 段)及 uvm_macros.svh:109(deprecated defines 默认编入)
VCS 内置 uvm-ieee-2020-2.0:uvm_macros.svh:130–131;src/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 / 版本宏 · 迁移清单
版本适用范围