跳转至

输入查询内容

    本页内容

    删除:uvm_status_container 与 uvm_scope_stack 类

    内部实现:文件组织、内部数据结构与实现钩子的变化。直接依赖内部接口时查阅,普通 API 的使用不需要重审这些源码。

    影响范围

    直接使用 uvm_status_container 或 uvm_scope_stack 类型。

    具体差异

    两者是老 field automation 的内部支撑类(uvm_object::__m_uvm_status_container 同步移除)。主流环境极少直接引用,但 custom field automation/printer 扩展可能触碰。

    修改方案

    命中引用即需随 field automation 重构一并改写(详见 field 自动化模块章节)。

    兼容措施与范围:旧 status container 和 scope stack 类不再提供;随 automation 迁移到对应策略接口。

    迁移后验证

    编译移除旧类型后的对象操作;通过 comparer/printer 等实际返回值检查结果,不再读取旧全局状态容器。

    记录核销:在无规则及补充检查中记录实际依赖与证据。

    已有实测与复现

    补充查阅

    扫描定位与记录结果

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

    • C11 · 文本匹配:field automation 旧钩子不再被调用,status container/scope stack 删除。
    uv run tools/uvm_migration_scan.py <SoC代码目录> --rules C11
    

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

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

    源码与标准依据

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

    VCS 内置 UVM-1.2uvm_misc.svh:63uvm_scope_stack)、uvm_misc.svh:206uvm_status_container

    VCS 内置 uvm-ieee-2020-2.0:全库无此类(uvm_misc.svh:64 起仅剩 typedef 前置声明)

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

    src/vcs-uvm-1.2/base/uvm_misc.svh
    //
    //----------------------------------------------------------------------------
    
    class uvm_scope_stack;
      local string m_arg;
      local string m_stack[$];
    
      // depth
      // -----
    
      function int depth();
        return m_stack.size();
      endfunction
    
    
      // scope
      // -----
    
      function string get();
    

    src/vcs-uvm-1.2/base/uvm_misc.svh
    //
    //------------------------------------------------------------------------------
    
    class uvm_status_container;
      //The clone setting is used by the set/get config to know if cloning is on.
      bit             clone = 1;
    
      //Information variables used by the macro functions for storage.
      bit          warning;
      bit          status;
      uvm_bitstream_t  bitstream;
      int          intv;
      int          element;
      string       stringv;
      string       scratch1;
      string       scratch2;
      string       key;
      uvm_object   object;
      bit          array_warning_done;
    

    完整源码 · SHA256:06569bf038283ff990de4bd4615e47864fac9ba9e523466cd8b357bb8da68676

    术语解释 · 兼容配置

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

    版本适用范围