# uvm_sequence_item

The base class for user-defined sequence items and also the base class for the uvm_sequence class. The uvm_sequence_item class provides the basic functionality for objects, both sequence items and sequences, to operate in the sequence mechanism.

Summary

uvm_sequence_item
The base class for user-defined sequence items and also the base class for the uvm_sequence class.
Class Hierarchy
uvm_void
uvm_object
uvm_transaction
uvm_sequence_item
Class Declaration
> class uvm_sequence_item extends uvm_transaction
new | The constructor method for uvm_sequence_item.
get_sequence_id | private
set_item_context | Set the sequence and sequencer execution context for a sequence item
set_use_sequence_info |
get_use_sequence_info | These methods are used to set and get the status of the use_sequence_info bit.
set_id_info | Copies the sequence_id and transaction_id from the referenced item into the calling item.
set_sequencer | Sets the default sequencer for the sequence to sequencer.
get_sequencer | Returns a reference to the default sequencer used by this sequence.
set_parent_sequence | Sets the parent sequence of this sequence_item.
get_parent_sequence | Returns a reference to the parent sequence of any sequence on which this method was called.
set_depth | The depth of any sequence is calculated automatically.
get_depth | Returns the depth of a sequence from its parent.
is_item | This function may be called on any sequence_item or sequence.
get_root_sequence_name | Provides the name of the root sequence (the top-most parent sequence).
get_root_sequence | Provides a reference to the root sequence (the top-most parent sequence).
get_sequence_path | Provides a string of names of each sequence in the full hierarchical path.
Reporting Interface | Sequence items and sequences will use the sequencer which they are associated with for reporting messages.
uvm_report |
uvm_report_info |
uvm_report_warning |
uvm_report_error |
uvm_report_fatal | These are the primary reporting methods in the UVM.

### new

> function new (
> | string | name | = | "uvm_sequence_item"
> )

The constructor method for uvm_sequence_item.

### get_sequence_id

> function int get_sequence_id()

private

Get_sequence_id is an internal method that is not intended for user code. The sequence_id is not a simple integer. The get_transaction_id is meant for users to identify specific transactions.

These methods allow access to the sequence_item sequence and transaction IDs. get_transaction_id and set_transaction_id are methods on the uvm_transaction base_class. These IDs are used to identify sequences to the sequencer, to route responses back to the sequence that issued a request, and to uniquely identify transactions.

The sequence_id is assigned automatically by a sequencer when a sequence initiates communication through any sequencer calls (i.e. `uvm_do_*, wait_for_grant). A sequence_id will remain unique for this sequence until it ends or it is killed. However, a single sequence may have multiple valid sequence ids at any point in time. Should a sequence start again after it has ended, it will be given a new unique sequence_id.

The transaction_id is assigned automatically by the sequence each time a transaction is sent to the sequencer with the transaction_id in its default (-1) value. If the user sets the transaction_id to any non-default value, that value will be maintained.

Responses are routed back to this sequences based on sequence_id. The sequence may use the transaction_id to correlate responses with their requests.

### set_item_context

> function void set_item_context(
> | uvm_sequence_base | parent_seq, |  |
> | uvm_sequencer_base | sequencer | = | null
> )

Set the sequence and sequencer execution context for a sequence item

### set_use_sequence_info

> function void set_use_sequence_info(
> | bit | value
> )

### get_use_sequence_info

> function bit get_use_sequence_info()

These methods are used to set and get the status of the use_sequence_info bit. Use_sequence_info controls whether the sequence information (sequencer, parent_sequence, sequence_id, etc.) is printed, copied, or recorded. When use_sequence_info is the default value of 0, then the sequence information is not used. When use_sequence_info is set to 1, the sequence information will be used in printing and copying.

### set_id_info

> function void set_id_info(
> | uvm_sequence_item | item
> )

Copies the sequence_id and transaction_id from the referenced item into the calling item. This routine should always be used by drivers to initialize responses for future compatibility.

### set_sequencer

> virtual function void set_sequencer(
> | uvm_sequencer_base | sequencer
> )

Sets the default sequencer for the sequence to sequencer. It will take effect immediately, so it should not be called while the sequence is actively communicating with the sequencer.

### get_sequencer

> function uvm_sequencer_base get_sequencer()

Returns a reference to the default sequencer used by this sequence.

### set_parent_sequence

> function void set_parent_sequence(
> | uvm_sequence_base | parent
> )

Sets the parent sequence of this sequence_item. This is used to identify the source sequence of a sequence_item.

### get_parent_sequence

> function uvm_sequence_base get_parent_sequence()

Returns a reference to the parent sequence of any sequence on which this method was called. If this is a parent sequence, the method returns null.

### set_depth

> function void set_depth(
> | int | value
> )

The depth of any sequence is calculated automatically. However, the user may use set_depth to specify the depth of a particular sequence. This method will override the automatically calculated depth, even if it is incorrect.

### get_depth

> function int get_depth()

Returns the depth of a sequence from its parent. A parent sequence will have a depth of 1, its child will have a depth of 2, and its grandchild will have a depth of 3.

### is_item

> virtual function bit is_item()

This function may be called on any sequence_item or sequence. It will return 1 for items and 0 for sequences (which derive from this class).

### get_root_sequence_name

> function string get_root_sequence_name()

Provides the name of the root sequence (the top-most parent sequence).

### get_root_sequence

> function uvm_sequence_base get_root_sequence()

Provides a reference to the root sequence (the top-most parent sequence).

### get_sequence_path

> function string get_sequence_path()

Provides a string of names of each sequence in the full hierarchical path. A “.” is used as the separator between each sequence.

### Reporting Interface

Sequence items and sequences will use the sequencer which they are associated with for reporting messages. If no sequencer has been set for the item/sequence using set_sequencer or indirectly via uvm_sequence_base::start_item or uvm_sequence_base::start), then the global reporter will be used.

### uvm_report

> virtual function void uvm_report(
> | uvm_severity | severity, |  |
> | string | id, |  |
> | string | message, |  |
> | int | verbosity | = | (severity == uvm_severity'(UVM_ERROR)) ? UVM_LOW : (severity == uvm_severity'(UVM_FATAL)) ? UVM_NONE : UVM_MEDIUM,
> | string | filename | = | "",
> | int | line | = | 0,
> | string | context_name | = | "",
> | bit | report_enabled_checked | = | 0
> )

### uvm_report_info

> virtual function void uvm_report_info(
> | string | id, |  |
> | string | message, |  |
> | int | verbosity | = | UVM_MEDIUM,
> | string | filename | = | "",
> | int | line | = | 0,
> | string | context_name | = | "",
> | bit | report_enabled_checked | = | 0
> )

### uvm_report_warning

> virtual function void uvm_report_warning(
> | string | id, |  |
> | string | message, |  |
> | int | verbosity | = | UVM_MEDIUM,
> | string | filename | = | "",
> | int | line | = | 0,
> | string | context_name | = | "",
> | bit | report_enabled_checked | = | 0
> )

### uvm_report_error

> virtual function void uvm_report_error(
> | string | id, |  |
> | string | message, |  |
> | int | verbosity | = | UVM_LOW,
> | string | filename | = | "",
> | int | line | = | 0,
> | string | context_name | = | "",
> | bit | report_enabled_checked | = | 0
> )

### uvm_report_fatal

> virtual function void uvm_report_fatal(
> | string | id, |  |
> | string | message, |  |
> | int | verbosity | = | UVM_NONE,
> | string | filename | = | "",
> | int | line | = | 0,
> | string | context_name | = | "",
> | bit | report_enabled_checked | = | 0
> )

These are the primary reporting methods in the UVM. uvm_sequence_item derived types delegate these functions to their associated sequencer if they have one, or to the global reporter. See uvm_report_object::Reporting for details on the messaging functions.

> virtual class uvm_void

The uvm_void class is the base class for all UVM classes.

> virtual class uvm_object extends uvm_void

The uvm_object class is the base class for all UVM data and hierarchical classes.

> virtual class uvm_transaction extends uvm_object

The uvm_transaction class is the root base class for UVM transactions.

> class uvm_sequence_item extends uvm_transaction

The base class for user-defined sequence items and also the base class for the uvm_sequence class.

> function new (
> | string | name | = | "uvm_sequence_item"
> )

The constructor method for uvm_sequence_item.

> function int get_sequence_id()

private

> function void set_item_context(
> | uvm_sequence_base | parent_seq, |  |
> | uvm_sequencer_base | sequencer | = | null
> )

Set the sequence and sequencer execution context for a sequence item

> function void set_use_sequence_info(
> | bit | value
> )

> function bit get_use_sequence_info()

These methods are used to set and get the status of the use_sequence_info bit.

> function void set_id_info(
> | uvm_sequence_item | item
> )

Copies the sequence_id and transaction_id from the referenced item into the calling item.

> virtual function void set_sequencer(
> | uvm_sequencer_base | sequencer
> )

Sets the default sequencer for the sequence to sequencer.

> function uvm_sequencer_base get_sequencer()

Returns a reference to the default sequencer used by this sequence.

> function void set_parent_sequence(
> | uvm_sequence_base | parent
> )

Sets the parent sequence of this sequence_item.

> function uvm_sequence_base get_parent_sequence()

Returns a reference to the parent sequence of any sequence on which this method was called.

> function void set_depth(
> | int | value
> )

The depth of any sequence is calculated automatically.

> function int get_depth()

Returns the depth of a sequence from its parent.

> virtual function bit is_item()

This function may be called on any sequence_item or sequence.

> function string get_root_sequence_name()

Provides the name of the root sequence (the top-most parent sequence).

> function uvm_sequence_base get_root_sequence()

Provides a reference to the root sequence (the top-most parent sequence).

> function string get_sequence_path()

Provides a string of names of each sequence in the full hierarchical path.

> virtual function void uvm_report(
> | uvm_severity | severity, |  |
> | string | id, |  |
> | string | message, |  |
> | int | verbosity | = | (severity == uvm_severity'(UVM_ERROR)) ? UVM_LOW : (severity == uvm_severity'(UVM_FATAL)) ? UVM_NONE : UVM_MEDIUM,
> | string | filename | = | "",
> | int | line | = | 0,
> | string | context_name | = | "",
> | bit | report_enabled_checked | = | 0
> )

> virtual function void uvm_report_info(
> | string | id, |  |
> | string | message, |  |
> | int | verbosity | = | UVM_MEDIUM,
> | string | filename | = | "",
> | int | line | = | 0,
> | string | context_name | = | "",
> | bit | report_enabled_checked | = | 0
> )

> virtual function void uvm_report_warning(
> | string | id, |  |
> | string | message, |  |
> | int | verbosity | = | UVM_MEDIUM,
> | string | filename | = | "",
> | int | line | = | 0,
> | string | context_name | = | "",
> | bit | report_enabled_checked | = | 0
> )

> virtual function void uvm_report_error(
> | string | id, |  |
> | string | message, |  |
> | int | verbosity | = | UVM_LOW,
> | string | filename | = | "",
> | int | line | = | 0,
> | string | context_name | = | "",
> | bit | report_enabled_checked | = | 0
> )

> virtual function void uvm_report_fatal(
> | string | id, |  |
> | string | message, |  |
> | int | verbosity | = | UVM_NONE,
> | string | filename | = | "",
> | int | line | = | 0,
> | string | context_name | = | "",
> | bit | report_enabled_checked | = | 0
> )

These are the primary reporting methods in the UVM.

> virtual task start_item (
> | uvm_sequence_item | item, |  |
> | int | set_priority | = | -1,
> | uvm_sequencer_base | sequencer | = | null
> )

start_item and finish_item together will initiate operation of a sequence item.

> virtual task start (
> | uvm_sequencer_base | sequencer, |  |
> | uvm_sequence_base | parent_sequence | = | null,
> | int | this_priority | = | -1,
> | bit | call_pre_post | = | 1
> )

Executes this sequence, returning when the sequence has completed.