Please go through the code :
class bus_sequencer #(`TB_PARAMS_DECL) extends ovm_sequencer;
`ovm_sequencer_param_utils(bus_sequencer #(`TB_PARAMS_INST))
// new - constructor
function new (string name, ovm_component parent);
super.new(name, parent);
//bus_transfer is sequence item
ovm_update_sequence_lib_and_item(bus_transfer_item#(
TB_PARAMS_INST))
endfunction : new
endclass : bus_sequencer
class bus_base_sequence extends ovm_sequence #(bus_transfer_item);
`ovm_sequence_utils(bus_base_sequence, bus_sequencer)
…
endclass
Getting the below elab warning:
Warning-[PCSRMIO] Class scope used outside of class
bus/verif/bfm/bus_agent/bus_seq_lib.sv, 31
“bus_sequencer::add_typewide_sequence”
An unspecialized class scope ‘::’ reference was seen. This refers to the
generic class, and may only be used inside the class ‘bus_sequencer’. To
access a static member of the default specialization outside the class
‘bus_sequencer’, use ‘bus_sequencer#()::’ instead.
This will be an error in a future release.
Not sure how to solve this warning and blindly adde the parameter next to the bus_sequencer as below:
ovm_sequence_utils(bus_base_sequence, bus_sequencer #(
TB_PARAMS_DECL))
Ended with compilation error itself
Error-[MFNF] Member not found
bus/verif/bfm/bus_agent/bus_seq_lib.sv, 31
Could not find member ‘add_typewide_sequence’ in class ‘bus_sequencer’,
at
“bus/verif/bfm/bus_agent/bus_seq_lib.sv”,
14.
Please let me know the right way of using the parameterized sequencer in sequence.