问题描述
您好,我创建的订阅者类出现上述错误,如下所示: 错误似乎出现在该类的 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
。