Sequences encapsulate user-defined procedures that generate multiple ovm_sequence_item-based transactions. Such sequences can be reused, extended, randomized, and combined sequentially and hierarchically in interesting ways to produce realistic stimulus to your DUT.
With ovm_sequence objects, users can encapsulate DUT initializaton code, bus-based stress tests, network protocol stacks-- anything procedural-- then have them all execute in specific or random order to more quickly reach corner cases and coverage goals.
The OVM sequence item and sequence class hierarchy is shown below.
The base class for user-defined sequence items and also the base class for the ovm_sequence class.
class ovm_sequence_item extends ovm_transaction
The ovm_sequence class provides the interfaces necessary in order to create streams of sequence items and/or other sequences.
virtual class ovm_sequence #( type REQ = ovm_sequence_item, type RSP = REQ ) extends ovm_sequence_base