I am developing a coverage collector class with 2 analysis ports, one to collect data from slave interface and one to collect data from master interface.
I tried to implement them using `uvm_analysis_imp_decl in following way
//Define analysis imports using macro
`uvm_analysis_imp_decl(_master)
`uvm_analysis_imp_decl(_slave)
//Declare analysis imports
uvm_analysis_imp_master#(master_sequence_item, coverage) master_imp;
uvm_analysis_imp_slave#(slave_sequence_item, coverage) slave_imp;
And write methods are defined as follows
virtual function void write_master(master_sequence_item obj);
...
virtual function void write_slave(slave_sequence_item obj);
...
But while compile I get following error message
Quote:
Error-[SV-VMNI] Virtual method not implemented
/home/ip/shared/external/uvm/1.2/54853456/snps/2019.06-SP2-10-T-20210305/src/comps/uvm_subscriber.svh, 64
Virtual method 'write' not implemented in class
'_vcs_unit__3386724743_cbc_coverage_11_0' (declared in
coverage_collector.sv, at line 1).
Is there any way to implement coverage from 2 different interface in same subscriber class or do I need seperate subscriber classes?