uvm: basic sequences
TRANSCRIPT
Any use of this material without specific permission of Arrow Devices is strictly prohibited
May 2015
UVM: Basic Sequences Chandra Bhushan Singh
Sequence Item Content
Sequence Item consists of the following
Ø Control : What type of transfer, what size
Ø Payload : The main data content of the transfer
Ø Configuration : Setting up a new mode of operation,
error behavior etc
Ø Analysis : Convenience fields which aid analysis - time
stamps, rolling checksums etc
Arrow Devices Pvt Ltd
Arrow Devices Pvt Ltd
Randomiza7on Considera7ons
Ø Request properties should be rand Ø Response properties should not be rand
Arrow Devices Pvt Ltd
Sequencer Characteris7cs
Sequencer has the following characteristics: Ø Provides coordination between sequence
and driver Ø Sends transactions to driver Ø Gets the response from the driver Ø Responsible for arbitrating between the
parallel sequences
Arrow Devices Pvt Ltd
UVM Sequencer API API’s Supported by UVM Sequencer Ø get_next_item Ø try_next_item Ø item done Ø peek Ø get Ø put
Arrow Devices Pvt Ltd
Recommended Driver-‐Sequencer API
Ø get_next_item() followed by item_done() Ø get(req) followed by put(rsp)
1
2
Arrow Devices Pvt Ltd
Sequences
Ø Derived from an uvm_sequence_item Ø Parameterized with the type of seq_item Ø Body method Ø m_sequencer handle
Sequences have the following characteristics:
Arrow Devices Pvt Ltd
Running a Sequence
Ø Step 1: Create Sequence
Ø Step 2: Configure Sequence
Ø Step 3: Start the Sequence
Arrow Devices Pvt Ltd
Step 2: Configure Sequence
Ø Set up start values Ø Set up generation loop variables Ø Set up pointers to test-bench
resources
Arrow Devices Pvt Ltd
Sequence Item To A Driver: The Flow
Ø Creation of seq item Ø Ready - start_item() Ø Set - Randomization Ø Go - finish_item() Ø Response - get_response()
Arrow Devices Pvt Ltd
Sequence Execu7on Flow
Sequences have two types of execution Ø Linear Execution Flow Ø Parallel Execution Flow
Arrow Devices Pvt Ltd
Coding Guideline
Ø Do not use fork, join_any, disable fork Ø Do not use fork join_none to exit a body
method Ø Do not fork join a sequence which
contains a forever loop without terminating condition
Arrow Devices Pvt Ltd
Sequences Overrides
Two types of overrides: Ø Sequence Type Factory Override Ø Sequence Instance Factory Override