虚拟方法“写入”未在类中实现

问题描述

您好,我创建的订阅者类出现上述错误,如下所示: 错误似乎出现在该类的 write 函数中,但我不确定该函数中缺少什么。

`uvm_analysis_imp_decl(_bfm2dut_change)
class checker_subscriber extends uvm_subscriber; 

uvm_analysis_imp_bfm2dut_change#(setup_pcie_pkg::dut2bfm_hdr_trans,checker_subscriber) bfm2dut_change_ap;
   
   `uvm_component_utils(checker_subscriber)
  
     extern function new(string name = "checker_subscriber",uvm_component parent = null);
     // BUILD,CONNECT and RUN Phase
     extern virtual function void build_phase(uvm_phase phase);
     extern virtual function void connect_phase(uvm_phase phase);
     extern virtual task run_phase(uvm_phase phase);
  
    // write function xal2fb
    virtual function void write_xal2fb_change(xal2fb_uvc::transaction tr);
        xal2fb_uvc::tx_default_data_obj obj;
        $cast(obj,tr.tx_data_obj);
        `uvm_info("xal2fb  PPMSU monitoring",$sformatf("%m"),UVM_LOW)
        monitor_xal2fb_pcie_order_check(obj);
    endfunction: write_xal2fb_change

endclass : checker_subscriber

解决方法

请参考verification-methodology-reference 并确保您的“write...”方法的后缀与您在宏声明和端口声明中使用的后缀相匹配。

,

您应该在您的 pure virtual function void write(T t); 类中实现从 uvm_subscriber 类继承的 checker_subscriber