This document provides an overview of sequences in UVM. It discusses sequence items, sequencers, and how sequences are used to drive items to a driver. Sequences are derived from sequence items and contain a body method. They utilize a sequencer handle to send items to a driver. The document outlines how to create, configure, and start a sequence as well as the typical flow of a sequence item being sent from the sequencer to a driver.
Sequence Item Content
SequenceItem 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
5.
Arrow Devices Pvt Ltd
Randomiza7on
Considera7ons
Ø Request properties should be rand
Ø Response properties should not be rand
Arrow Devices PvtLtd
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
ArrowDevices 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 PvtLtd
Step
2:
Configure
Sequence
Ø Set up start values
Ø Set up generation loop variables
Ø Set up pointers to test-bench
resources
21.
Arrow Devices PvtLtd
Step
3:
Start
Sequence
• Call
to
its
start()
method
22.
Arrow Devices PvtLtd
Sequence
Item
To
A
Driver:
The
Flow
Ø Creation of seq item
Ø Ready - start_item()
Ø Set - Randomization
Ø Go - finish_item()
Ø Response - get_response()
23.
Arrow Devices PvtLtd
Sequence
Execu7on
Flow
Sequences have two types of execution
Ø Linear Execution Flow
Ø Parallel Execution Flow
24.
Arrow Devices PvtLtd
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
25.
Arrow Devices PvtLtd
Sequences
Overrides
Two types of overrides:
Ø Sequence Type Factory Override
Ø Sequence Instance Factory Override