本页内容
新增 abstract 注册宏族(virtual class 可注册 factory)
新增/接口调整
新增功能:目标库新增的 API 和可选替代接口;已有用法的迁移要求列在用户接口与行为中。
具体差异
新增 object/component abstract utils 及 param/begin/end 变体,通过 abstract registry 注册。registry 提供 create 入口,允许 factory override 到具体类型;无具体 override 时返回 null 并报告抽象创建错误,不是完全没有 create API。
修改方案
无(可选用于整理 virtual 基类的 factory 注册)。
兼容措施与范围:本条是新增能力或实现说明,无需恢复旧接口;按使用条件核对行为。
补充查阅
扫描定位与记录结果
无对应规则。当前脚本没有针对本条的直接检测规则。
本条处理级别为“可选采用”,按修改方案评估;缺少扫描规则本身不增加迁移改造要求。
扫描器下载、输入范围与报告说明
源码与标准依据
核查方式:源码核对。未单独进行 VCS 行为实测。
VCS 内置 UVM-1.2:无(1.2 对 abstract 类只能使用 uvm_field_utils_begin)
VCS 内置 uvm-ieee-2020-2.0:uvm_object_defines.svh:322(uvm_object_abstract_utils)、uvm_object_defines.svh:427(uvm_component_abstract_utils,含 param/begin/end 变体)
标准依据:IEEE 1800.2-2020 §B.2.1.2、§B.2.1.3
标为“源码标注”或未注明原文核对的条款仅作定位;具体库行为以源码和实测为准。
引用代码(高亮为引用行);上方行号链接可直接定位。
| src/vcs-uvm-ieee-2020-2.0/macros/uvm_object_defines.svh |
|---|
| `uvm_field_utils_begin(T)
// @uvm-ieee 1800.2-2020 manual B.2.1.2
`define uvm_object_abstract_utils(T) \
`m_uvm_object_abstract_registry_internal(T,T) \
`uvm_type_name_decl(`"T`")
// @uvm-ieee 1800.2-2020 manual B.2.1.2
`define uvm_object_abstract_param_utils(T) \
`m_uvm_object_abstract_registry_param(T)
// @uvm-ieee 1800.2-2020 manual B.2.1.2
`define uvm_object_abstract_utils_begin(T) \
`uvm_object_abstract_utils(T) \
`uvm_field_utils_begin(T)
// @uvm-ieee 1800.2-2020 manual B.2.1.2
`define uvm_object_abstract_param_utils_begin(T) \
`uvm_object_abstract_param_utils(T) \
|
| src/vcs-uvm-ieee-2020-2.0/macros/uvm_object_defines.svh |
|---|
| `uvm_field_utils_begin(T)
// @uvm-ieee 1800.2-2020 manual B.2.1.3
`define uvm_component_abstract_utils(T) \
`m_uvm_component_abstract_registry_internal(T,T) \
`uvm_type_name_decl(`"T`") \
// @uvm-ieee 1800.2-2020 manual B.2.1.3
`define uvm_component_abstract_param_utils(T) \
`m_uvm_component_abstract_registry_param(T) \
// @uvm-ieee 1800.2-2020 manual B.2.1.3
`define uvm_component_abstract_utils_begin(T) \
`uvm_component_abstract_utils(T) \
`uvm_field_utils_begin(T)
// @uvm-ieee 1800.2-2020 manual B.2.1.3
`define uvm_component_abstract_param_utils_begin(T) \
|
完整源码 · SHA256:072baece05e653f6811936de05739a8ff55c02651d89a9278f39cca11372a260
术语解释 · 兼容配置
返回Object / Factory · 迁移清单
版本适用范围