跳转至

输入查询内容

    本页内容

    uvm_driver 新增 seq_item_port 未连接告警(DRVCONNECT)

    影响范围

    driver 的 seq_item_port 未连接,或依赖无 DRVCONNECT 告警。

    具体差异

    2.0 在 uvm_driver 中新增 end_of_elaboration_phase,若 seq_item_port.size() < 1(未连接 sequencer)则发 `uvm_warning("DRVCONNECT", ...)。1.2 无任何连接检查。继承自 uvm_driver 但未使用 seq_item_port 的用户 driver(如纯 push 模式、虚 driver 壳)会新增告警;对"warning 即失败"的回归环境是直接挂点。

    修改方案

    正常连接的 driver 无需改动;确不需连接的,在构造函数加 set_report_severity_id_action(UVM_WARNING, "DRVCONNECT", UVM_NO_ACTION);(VCS 2.0 内置 README "Migrating from 1.2" 第 2 条官方建议)。

    兼容措施与范围:兼容措施不撤销新增连接检查;report action 只调整诊断显示,不会补上 driver 连接。

    迁移后验证

    对应连接的 driver 检查 is_connected 和实际事务;仅对设计上不需要该端口的 driver 定向抑制,不能全局隐藏漏接。

    记录本条结果M10-001 · 状态与证据

    已有实测与复现

    补充查阅

    扫描定位与记录结果

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

    按“影响范围”检视实际代码与配置,再执行本条验证方法;扫描零命中不能排除此项。

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

    源码与标准依据

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

    VCS 内置 UVM-1.2uvm_driver.svh:44(类定义,无 end_of_elaboration_phase)

    VCS 内置 uvm-ieee-2020-2.0uvm_driver.svh:89–92

    标准依据:IEEE 1800.2-2020 §13.7(uvm_driver);告警本身是实现新增检查,源码标注 // @uvm-ieee 1800.2-2020 auto 13.7.1

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

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

    src/vcs-uvm-1.2/comps/uvm_driver.svh
    //
    //------------------------------------------------------------------------------
    
    class uvm_driver #(type REQ=uvm_sequence_item,
                       type RSP=REQ) extends uvm_component;
    
    
      // Port: seq_item_port
      //
      // Derived driver classes should use this port to request items from the
      // sequencer. They may also use it to send responses back.
    
      uvm_seq_item_pull_port #(REQ, RSP) seq_item_port;
    
      uvm_seq_item_pull_port #(REQ, RSP) seq_item_prod_if; // alias
    
      // Port: rsp_port
      //
      // This port provides an alternate way of sending responses back to the
    

    完整源码 · SHA256:22aed3c4f8d6c772d909479c8a570d3d21969c68459f9849b3eb04b6f4c2a950

    src/vcs-uvm-ieee-2020-2.0/comps/uvm_driver.svh
        seq_item_prod_if = seq_item_port;
      endfunction // new
    
      virtual function void end_of_elaboration_phase(uvm_phase phase);
          if(seq_item_port.size<1)
              `uvm_warning("DRVCONNECT","seq_item_port (a uvm_seq_item_pull_port in uvm_driver) has not been connected to a sequencer")
      endfunction
    endclass
    

    完整源码 · SHA256:45d35b7eff623610891a67e78ae0652b037752d603ce9750facadc500ab3dacb

    术语解释 · 兼容配置

    返回Component / VCS 集成 · 迁移清单

    版本适用范围