uvm_sequence #(REQ,RSP)

The uvm_sequence class provides the interfaces necessary in order to create streams of sequence items and/or other sequences.

Summary
uvm_sequence #(REQ,RSP)
The uvm_sequence class provides the interfaces necessary in order to create streams of sequence items and/or other sequences.
Class Hierarchy
Class Declaration
virtual class uvm_sequence #(
    type  REQ  =  uvm_sequence_item,
    type  RSP  =  REQ
) extends uvm_sequence_base
Variables
reqThe sequence contains a field of the request type called req.
rspThe sequence contains a field of the response type called rsp.
Methods
newCreates and initializes a new sequence object.
send_requestThis method will send the request item to the sequencer, which will forward it to the driver.
get_current_itemReturns the request item currently being executed by the sequencer.
get_responseBy default, sequences must retrieve responses by calling get_response.

req

REQ req

The sequence contains a field of the request type called req.  The user can use this field, if desired, or create another field to use.  The default do_print will print this field.

rsp

RSP rsp

The sequence contains a field of the response type called rsp.  The user can use this field, if desired, or create another field to use.  The default do_print will print this field.

new

function new (
    string  name  =  "uvm_sequence"
)

Creates and initializes a new sequence object.

send_request

function void send_request(
    uvm_sequence_item  request,   
    bit  rerandomize  =  0
)

This method will send the request item to the sequencer, which will forward it to the driver.  If the rerandomize bit is set, the item will be randomized before being sent to the driver.  The send_request function may only be called after uvm_sequence_base::wait_for_grant returns.

get_current_item

function REQ get_current_item()

Returns the request item currently being executed by the sequencer.  If the sequencer is not currently executing an item, this method will return null.

The sequencer is executing an item from the time that get_next_item or peek is called until the time that get or item_done is called.

Note that a driver that only calls get will never show a current item, since the item is completed at the same time as it is requested.

get_response

virtual task get_response(
    output  RSP  response,   
    input  int  transaction_id  =  -1
)

By default, sequences must retrieve responses by calling get_response.  If no transaction_id is specified, this task will return the next response sent to this sequence.  If no response is available in the response queue, the method will block until a response is received.

If a transaction_id is parameter is specified, the task will block until a response with that transaction_id is received in the response queue.

The default size of the response queue is 8.  The get_response method must be called soon enough to avoid an overflow of the response queue to prevent responses from being dropped.

If a response is dropped in the response queue, an error will be reported unless the error reporting is disabled via set_response_queue_error_report_disabled.

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.
class uvm_sequence_base extends uvm_sequence_item
The uvm_sequence_base class provides the interfaces needed to create streams of sequence items and/or other sequences.
virtual class uvm_sequence #(
    type  REQ  =  uvm_sequence_item,
    type  RSP  =  REQ
) extends uvm_sequence_base
The uvm_sequence class provides the interfaces necessary in order to create streams of sequence items and/or other sequences.
REQ req
The sequence contains a field of the request type called req.
RSP rsp
The sequence contains a field of the response type called rsp.
function new (
    string  name  =  "uvm_sequence"
)
Creates and initializes a new sequence object.
function void send_request(
    uvm_sequence_item  request,   
    bit  rerandomize  =  0
)
This method will send the request item to the sequencer, which will forward it to the driver.
function REQ get_current_item()
Returns the request item currently being executed by the sequencer.
virtual task get_response(
    output  RSP  response,   
    input  int  transaction_id  =  -1
)
By default, sequences must retrieve responses by calling get_response.
virtual task wait_for_grant(
    int  item_priority  =  -1,
    bit  lock_request  =  0
)
This task issues a request to the current sequencer.