In reply to chr_sue:
hai chr_sue, still its giving an error. here is the complete code of my coverage class
class fifo_coverage extends uvm_subscriber#(fifo_seq_item);
`uvm_component_utils(fifo_coverage)
fifo_seq_item seq; // declaration of seq_item class
virtual sync_interface sync_vintf; // interface declaration
covergroup sync_fifo_cov;
WRITE :coverpoint seq.write iff(!sync_vintf.rst_n) {}
ALMOST_FULL :coverpoint seq.almost_full iff(!sync_vintf.rst_n) {}
FULL :coverpoint seq.full iff(!sync_vintf.rst_n) {}
OVERRUN :coverpoint seq.overrun iff(!sync_vintf.rst_n) {}
READ :coverpoint seq.read iff(!sync_vintf.rst_n) {}
ALMOST_EMPTY :coverpoint seq.almost_empty iff(!sync_vintf.rst_n) {}
EMPTY :coverpoint seq.empty iff(!sync_vintf.rst_n) {}
UNDERRUN :coverpoint seq.underrun iff(!sync_vintf.rst_n) {}
endgroup
function new(string name="fifo_coverage", uvm_component parent=null);
super.new(name,parent);
endfunction:new
function void build_phase(uvm_phase phase);
super.build_phase(phase);
endfunction:build_phase
virtual function void write(fifo_seq_item pkt);
seq=pkt;
sync_fifo_cov.sample();
endfunction
endclass
|
*xmvlog: E,CVMNMM fifo_coverage.sv,28|50): Virtual method ‘fifo_coverage::write’ formal argument name does not match base class ‘uvm_subscriber’.