跳转至

输入查询内容

    本页内容

    新增 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.0uvm_object_defines.svh:322uvm_object_abstract_utils)、uvm_object_defines.svh:427uvm_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 · 迁移清单

    版本适用范围