if i define sequence as below:
class l2b_seq_lib #(type REQ = ovm_sequence_item,type RSP = ovm_sequence_item) extends ovm_sequence #(REQ, RSP);
use default sequence
set_config_string(“l2b_sve0.l2bEnv.l2b.sequencer”, “default_sequence”, “l2b_seq_lib”);
if i define sequence as below:
class l2b_seq_lib #(type REQ = ovm_sequence_item,type RSP = ovm_sequence_item) extends ovm_sequence #(REQ, RSP);
use default sequence
set_config_string("l2b_sve0.l2bEnv.l2b.sequencer", "default_sequence", "l2b_seq_lib");
# OVM_WARNING @ 0: reporter [BDTYP] Cannot create an object of type 'l2b_seq_lib' because it is not registered with the factory.
# ** Error: Assertion error.
if i change as:
class l2b_seq_lib extends ovm_sequence #( ovm_sequence_item);
# ** Error: (vsim-3567) ../ovm20/base/ovm_registry.svh(88): No field named 'set_name'.
# Region: /ovm_pkg::ovm_object_registry::ovm_object_registry__7
# ** Error: (vsim-3978) ../ovm20/base/ovm_registry.svh(89): Illegal assignment to variable of class ovm_object from variable of class <temp_name>
# Time: 0 ps Iteration: 0 Region: /ovm_pkg::ovm_object_registry::ovm_object_registry__7 File: ../ovm20/ovm_pkg.sv
# ** Error: (vsim-3567) ../ovm20/base/ovm_registry.svh(88): No field named 'set_name'.
# Region: /ovm_pkg::ovm_object_registry::ovm_object_registry__7
# ** Error: (vsim-3978) ../ovm20/base/ovm_registry.svh(87): Illegal assignment to variable of class ovm_object_wrapper from variable of class <temp_name>
# Time: 0 ps Iteration: 0 Region: /ovm_pkg::ovm_object_registry::ovm_object_registry__7 File: ../ovm20/ovm_pkg.sv
# ** Error: (vsim-3567) ../ovm20/base/ovm_registry.svh(88): No field named 'set_name'.
# Region: /ovm_pkg::ovm_object_registry::ovm_object_registry__9
# ** Error: (vsim-3978) ../ovm20/base/ovm_registry.svh(89): Illegal assignment to variable of class ovm_object from variable of class <temp_name>
# Time: 0 ps Iteration: 0 Region: /ovm_pkg::ovm_object_registry::ovm_object_registry__9 File: ../ovm20/ovm_pkg.sv
# ** Error: (vsim-3567) ../ovm20/base/ovm_registry.svh(88): No field named 'set_name'.
# Region: /ovm_pkg::ovm_object_registry::ovm_object_registry__9
# ** Error: (vsim-3978) ../ovm20/base/ovm_registry.svh(87): Illegal assignment to variable of class ovm_object_wrapper from variable of class <temp_name>
# Time: 0 ps Iteration: 0 Region: /ovm_pkg::ovm_object_registry::ovm_object_registry__9 File: ../ovm20/ovm_pkg.sv
# ** Error: (vsim-3567) ../ovm20/base/ovm_registry.svh(88): No field named 'set_name'.
# Region: /ovm_pkg::ovm_object_registry::ovm_object_registry__10
# ** Error: (vsim-3978) ../ovm20/base/ovm_registry.svh(89): Illegal assignment to variable of class ovm_object from variable of class <temp_name>
# Time: 0 ps Iteration: 0 Region: /ovm_pkg::ovm_object_registry::ovm_object_registry__10 File: ../ovm20/ovm_pkg.sv
# ** Error: (vsim-3567) ../ovm20/base/ovm_registry.svh(88): No field named 'set_name'.
# Region: /ovm_pkg::ovm_object_registry::ovm_object_registry__10
# ** Error: (vsim-3978) ../ovm20/base/ovm_registry.svh(87): Illegal assignment to variable of class ovm_object_wrapper from variable of class <temp_name>
# Time: 0 ps Iteration: 0 Region: /ovm_pkg::ovm_object_registry::ovm_object_registry__10 File: ../ovm20/ovm_pkg.sv
# ** Error: (vsim-3043) l2b_seq_lib.sv(42): Unresolved reference to 'add_typewide_sequence'.
# Region: /all_top/l2b_seq_lib
Is there a specific reason that you are parameterizing the sequence l2b_seq_lib? Typically, a sequence is expected to generate a specific type of request & response, and the ovm_sequence is parameterized with these types. The ovm_sequence_utils macro will then register the sequence with the factory.
I would expect to see the sequence definition below:
class l2b_seq_lib extends ovm_sequence #(my_sequence_item, my_sequence_item);
where my_sequence_item is a class extended from ovm_sequence_item.