跳转至

输入查询内容

    本页内容

    uvm_comparer 新增标准配置 API

    新增功能:目标库新增的 API 和可选替代接口;已有用法的迁移要求列在用户接口与行为中。

    影响范围

    使用新 comparer 配置访问器,尤其 threshold 与 show_max。

    具体差异

    uvm_comparer extends uvm_policy 并注册工厂,new(string name="");新增 flush()(重置 miscompares/check_type/result/递归状态——注意不重置 show_max/verbosity/sev/threshold)、set_threshold(快速失败阈值,默认 1)、object_compared() 递归状态查询。1.2 字段 policy/show_max/verbosity/sev/miscompares/result/check_type 全部保留(@uvm-compat)。

    修改方案

    无(新增);建议新代码用 accessor

    兼容措施与范围:本条是新增能力或实现说明,无需恢复旧接口;按使用条件核对行为。

    迁移后验证

    分别改变停止阈值和显示上限,注入多处不匹配;检查停止比较的时点、消息数和最终比较结果。

    已有实测与复现

    补充查阅

    扫描定位与记录结果

    无对应规则。当前脚本没有针对本条的直接检测规则。

    本条处理级别为“可选采用”,按修改方案评估;缺少扫描规则本身不增加迁移改造要求。

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

    源码与标准依据

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

    VCS 内置 UVM-1.2:无

    VCS 内置 uvm-ieee-2020-2.0uvm_comparer.svh:46–95(flush/object_compared/get_miscompares/get_result/set_result/set_recursion_policy/set_check_type/set_show_max/set_verbosity/set_severity/set_threshold)、uvm_comparer.svh:216(static set_default/get_default)

    标准依据:IEEE 1800.2-2020 §16.3.2/§16.3.4/§16.3.5/§16.3.6

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

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

    src/vcs-uvm-ieee-2020-2.0/base/uvm_comparer.svh
       `uvm_object_utils(uvm_comparer)
    
      // @uvm-ieee 1800.2-2020 auto 16.3.2.2
      extern virtual function void flush();
    
      // @uvm-ieee 1800.2-2020 auto 16.3.3.5
      extern virtual function uvm_policy::recursion_state_e object_compared(
         uvm_object lhs,
         uvm_object rhs,
         uvm_recursion_policy_enum recursion,
         output bit ret_val
      );
    
      // @uvm-ieee 1800.2-2020 auto 16.3.3.8
      extern virtual function string get_miscompares();
    
      extern virtual function int unsigned get_result();
    
      extern virtual function void set_result(int unsigned result) ;
    
      // @uvm-ieee 1800.2-2020 auto 16.3.4.1
      extern virtual function void set_recursion_policy( uvm_recursion_policy_enum policy);
    
      // @uvm-ieee 1800.2-2020 auto 16.3.4.1
      extern virtual function uvm_recursion_policy_enum get_recursion_policy();
    
      // @uvm-ieee 1800.2-2020 auto 16.3.4.2
      extern virtual function void set_check_type( bit enabled );
    
      // @uvm-ieee 1800.2-2020 auto 16.3.4.2
      extern virtual function bit get_check_type();
    
      // @uvm-ieee 1800.2-2020 auto 16.3.5.1
      extern virtual function void set_show_max (int unsigned show_max);
    
      extern virtual function int unsigned get_show_max ();
    
      // @uvm-ieee 1800.2-2020 auto 16.3.5.2
      extern virtual function void set_verbosity (int unsigned verbosity);
    
      extern virtual function int unsigned get_verbosity ();
    
      // @uvm-ieee 1800.2-2020 auto 16.3.5.3
      extern virtual function void set_severity (uvm_severity severity);
    
      // @uvm-ieee 1800.2-2020 auto 16.3.5.3
      extern virtual function uvm_severity get_severity ();
    
      // @uvm-ieee 1800.2-2020 auto 16.3.6
      extern virtual function void set_threshold (int unsigned threshold);
    
      extern virtual function int unsigned get_threshold ();
    

    src/vcs-uvm-ieee-2020-2.0/base/uvm_comparer.svh
      // @uvm-ieee 1800.2-2020 auto 16.3.3.1
      virtual function bit compare_field (string name, 
                                          uvm_bitstream_t lhs, 
                                          uvm_bitstream_t rhs, 
                                          int size,
                                          uvm_radix_enum radix=UVM_NORADIX); 
        uvm_bitstream_t mask;
        string msg;
    
        if(size <= 64)
          return compare_field_int(name, lhs, rhs, size, radix);
    
        mask = -1;
        mask >>= (UVM_STREAMBITS-size);
        if((lhs & mask) !== (rhs & mask)) begin
          case (radix)
            UVM_BIN: begin
                  $swrite(msg, "%s: lhs = 'b%0b : rhs = 'b%0b", 
                           name, lhs&mask, rhs&mask);
    

    完整源码 · SHA256:da5c3a1045bfe5a1e4c44375ca886115c903ca45a2081cd08161dc3af163cede

    术语解释 · 兼容配置

    返回Comparer / Printer / Packer / Recorder · 迁移清单

    版本适用范围