跳转至

输入查询内容

    本页内容

    字段自动配置的查询模式与操作位宽

    影响范围

    定制 field 操作位宽或修改默认自动配置查询模式。

    具体差异

    前者允许扩展 field flag 位宽;后者决定自动配置的资源查询策略。CONFIG_STRICT 扩大搜索范围,不是未注册成员的自动发现机制,也不是拼写检查开关,见 M01-007

    修改方案

    默认注册字段的自动配置可保留。确需扩大资源查询范围时,在相关库编译前定义 +define+UVM_COMPONENT_CONFIG_MODE_DEFAULT=CONFIG_STRICT 并重建,检查实际选中值;该模式不会发现任意未注册成员。自定义操作位使用 UVM_FIELD_FLAG_SIZE 管理位宽并核对保留位,不能把扩大 FLAG 位宽当作恢复旧 FLAG 语义。

    兼容措施与范围:现有入口无需兼容开关;这不表示两版行为相同,仍按本条条件和验证方法核对。

    迁移后验证

    使用实际字段注册和自定义操作,检查选中资源与最终赋值;CONFIG_STRICT 不会自动枚举任意未注册成员。

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

    补充查阅

    扫描定位与记录结果

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

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

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

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

    源码与标准依据

    核查方式:源码核对。未单独进行 VCS 行为实测。

    VCS 内置 UVM-1.2:无

    VCS 内置 uvm-ieee-2020-2.0uvm_object_defines.svh:146UVM_FIELD_FLAG_SIZE 默认 = UVM_FIELD_FLAG_RESERVED_BITS);uvm_global_defines.svh:41UVM_COMPONENT_CONFIG_MODE_DEFAULT 默认 CONFIG_CHECK_NAMES,文件注释注明这是对 1800.2 的 deviation,可 +define+...=CONFIG_STRICT 覆盖)

    标准依据:IEEE 1800.2-2020 §B.6.1

    标为“源码标注”或未注明原文核对的条款仅作定位;具体库行为以源码和实测为准。

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

    src/vcs-uvm-ieee-2020-2.0/macros/uvm_object_defines.svh
    // @uvm-ieee 1800.2-2020 manual B.6.1
    `ifndef UVM_FIELD_FLAG_SIZE
      `define UVM_FIELD_FLAG_SIZE  UVM_FIELD_FLAG_RESERVED_BITS
    `endif
    
    
    // Definitions for the user to use inside their derived data class declarations.
    
    // MACRO -- NODOCS -- `uvm_field_utils_begin
    
    // MACRO -- NODOCS -- `uvm_field_utils_end
    //
    // These macros form a block in which `uvm_field_* macros can be placed.
    // Used as
    //
    //|  `uvm_field_utils_begin(TYPE)
    //|    `uvm_field_* macros here
    //|  `uvm_field_utils_end
    

    完整源码 · SHA256:072baece05e653f6811936de05739a8ff55c02651d89a9278f39cca11372a260

    src/vcs-uvm-ieee-2020-2.0/macros/uvm_global_defines.svh
    // the library can be compiled with `+define+UVM_COMPONENT_CONFIG_MODE_DEFAULT=CONFIG_STRICT`.
    //
    // @uvm-contrib
    `ifndef UVM_COMPONENT_CONFIG_MODE_DEFAULT
     `define UVM_COMPONENT_CONFIG_MODE_DEFAULT CONFIG_CHECK_NAMES
    `endif
    
    // MACRO -- NODOCS -- `UVM_MAX_STREAMBITS
    //
    // Defines the maximum bit vector size for integral types. 
    // Used to set uvm_bitstream_t
    
    `ifndef UVM_MAX_STREAMBITS
     `define UVM_MAX_STREAMBITS 4096
    `endif
    
    
    // MACRO -- NODOCS -- `UVM_PACKER_MAX_BYTES
    //
    

    完整源码 · SHA256:94d6c90ed614d104d6a77413d381e41e1c7b1f74136cf0562c9d6b7aa126acb9

    术语解释 · 兼容配置

    禁用自动字段配置(M01-007)

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

    版本适用范围