UVM Sequences
UVM Sequences
UVM Sequence
● Easy to use
○ Minimize the protocol / environment knowledge requirements uvm_object
● Generate stimulus based on constraints
● Can be generated on-the-fly or at time zero uvm_transaction
● Can nest sequences
● Override sequences using factory uvm_sequence_item
1. Wait for request from Driver 1. Send a request to get the sequence item
2. Generate the transaction (sequence item) 2. Wait for the sequence item
3. Give the sequence item to driver 3. Drive the sequence item to DUT
1. Wait for request from Driver 1. Send a request to get the sequence item
Test
Starting Sequence Item
● APIs for a sequence item
○ Start_item, finish_item, get_response
● To start a sequence on a sequencer
○ Use start() method
Using Macros
● For a sequence item to start on a sequencer
○ `uvm_do , `uvm_do_with
○ Using Instance
Sequence Objection
Starting_phase is set
When this sequence is
set as default sequence
Sequence Library
Needed to populate the
sequence library with any
sequences that were
registered with it or any of
its base classes
my_seq_lib
seq1
Macro to add seq2
sequence to a
sequence library
seqN
Thank You