Sequence-Related Macros

UVMkit » 1800.2-2020
Summary
Sequence-Related Macros
Sequence Action MacrosThese macros are used to start sequences and sequence items on the default sequencer returned by get_sequencer().
`uvm_do_pri
`uvm_do_with
`uvm_do_pri_with
Sequence on Sequencer Action MacrosThese macros are used to start sequences and sequence items on a specific sequencer.
`uvm_create_on
`uvm_do_on
`uvm_do_on_pri
`uvm_do_on_with
`uvm_do_on_pri_with
Sequence Action Macros for Pre-Existing SequencesThese macros are used to start sequences and sequence items that do not need to be created.
`uvm_send_pri
`uvm_rand_send_pri
`uvm_rand_send_with
`uvm_rand_send_pri_with

Sequence Action Macros

These macros are used to start sequences and sequence items on the default sequencer returned by get_sequencer().  This is determined a number of ways.

`uvm_do_pri

`uvm_do_pri(SEQ_OR_ITEM, PRIORITY)

This is the same as `uvm_do except that the sequence item or sequence is executed with the priority specified in the argument

`uvm_do_with

`uvm_do_with(SEQ_OR_ITEM, CONSTRAINTS)

This is the same as `uvm_do except that the constraint block in the 2nd argument is applied to the item or sequence in a randomize with statement before execution.

`uvm_do_pri_with

`uvm_do_pri_with(SEQ_OR_ITEM, PRIORITY, CONSTRAINTS)

This is the same as `uvm_do_pri except that the given constraint block is applied to the item or sequence in a randomize with statement before execution.

Sequence on Sequencer Action Macros

These macros are used to start sequences and sequence items on a specific sequencer.  The sequence or item is created and executed on the given sequencer.

`uvm_create_on

`uvm_create_on(SEQ_OR_ITEM, SEQR)

This is the same as `uvm_create except that it also sets the parent sequence to the sequence in which the macro is invoked, and it sets the sequencer to the specified SEQR argument.

`uvm_do_on

`uvm_do_on(SEQ_OR_ITEM, SEQR)

This is the same as `uvm_do except that it also sets the parent sequence to the sequence in which the macro is invoked, and it sets the sequencer to the specified SEQR argument.

`uvm_do_on_pri

`uvm_do_on_pri(SEQ_OR_ITEM, SEQR, PRIORITY)

This is the same as `uvm_do_pri except that it also sets the parent sequence to the sequence in which the macro is invoked, and it sets the sequencer to the specified SEQR argument.

`uvm_do_on_with

`uvm_do_on_with(SEQ_OR_ITEM, SEQR, CONSTRAINTS)

This is the same as `uvm_do_with except that it also sets the parent sequence to the sequence in which the macro is invoked, and it sets the sequencer to the specified SEQR argument.  The user must supply brackets around the constraints.

`uvm_do_on_pri_with

`uvm_do_on_pri_with(SEQ_OR_ITEM, SEQR, PRIORITY, CONSTRAINTS)

This is the same as `uvm_do_pri_with except that it also sets the parent sequence to the sequence in which the macro is invoked, and it sets the sequencer to the specified SEQR argument.

Sequence Action Macros for Pre-Existing Sequences

These macros are used to start sequences and sequence items that do not need to be created.

`uvm_send_pri

`uvm_send_pri(SEQ_OR_ITEM, PRIORITY)

This is the same as `uvm_send except that the sequence item or sequence is executed with the priority specified in the argument.

`uvm_rand_send_pri

`uvm_rand_send_pri(SEQ_OR_ITEM, PRIORITY)

This is the same as `uvm_rand_send except that the sequence item or sequence is executed with the priority specified in the argument.

`uvm_rand_send_with

`uvm_rand_send_with(SEQ_OR_ITEM, CONSTRAINTS)

This is the same as `uvm_rand_send except that the given constraint block is applied to the item or sequence in a randomize with statement before execution.

`uvm_rand_send_pri_with

`uvm_rand_send_pri_with(SEQ_OR_ITEM, PRIORITY, CONSTRAINTS)

This is the same as `uvm_rand_send_pri except that the given constraint block is applied to the item or sequence in a randomize with statement before execution.

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.
virtual function void set_sequencer( uvm_sequencer_base  sequencer )
Sets the default sequencer for the sequence to sequencer.