uvm_sequencer_param_base #(REQ,RSP)

Extends uvm_sequencer_base with an API depending on specific request (REQ) and response (RSP) types.

Summary
uvm_sequencer_param_base #(REQ,RSP)
Extends uvm_sequencer_base with an API depending on specific request (REQ) and response (RSP) types.
Class Hierarchy
Class Declaration
class uvm_sequencer_param_base #(
    type  REQ  =  uvm_sequence_item,
    type  RSP  =  REQ
) extends uvm_sequencer_base
newCreates and initializes an instance of this class using the normal constructor arguments for uvm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
send_requestThe send_request function may only be called after a wait_for_grant call.
get_current_itemReturns the request_item currently being executed by the sequencer.
Requests
get_num_reqs_sentReturns the number of requests that have been sent by this sequencer.
set_num_last_reqsSets the size of the last_requests buffer.
get_num_last_reqsReturns the size of the last requests buffer, as set by set_num_last_reqs.
last_reqReturns the last request item by default.
Responses
rsp_exportDrivers or monitors can connect to this port to send responses to the sequencer.
get_num_rsps_receivedReturns the number of responses received thus far by this sequencer.
set_num_last_rspsSets the size of the last_responses buffer.
get_num_last_rspsReturns the max size of the last responses buffer, as set by set_num_last_rsps.
last_rspReturns the last response item by default.

new

function new (
    string  name,
    uvm_component  parent
)

Creates and initializes an instance of this class using the normal constructor arguments for uvm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.

send_request

virtual function void send_request(
    uvm_sequence_base  sequence_ptr,   
    uvm_sequence_item  t,   
    bit  rerandomize  =  0
)

The send_request function may only be called after a wait_for_grant call.  This call will send the request item, t, to the sequencer pointed to by sequence_ptr.  The sequencer will forward it to the driver.  If rerandomize is set, the item will be randomized before being sent to the driver.

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_num_reqs_sent

function int get_num_reqs_sent()

Returns the number of requests that have been sent by this sequencer.

set_num_last_reqs

function void set_num_last_reqs(
    int  unsigned  max
)

Sets the size of the last_requests buffer.  Note that the maximum buffer size is 1024.  If max is greater than 1024, a warning is issued, and the buffer is set to 1024.  The default value is 1.

get_num_last_reqs

function int unsigned get_num_last_reqs()

Returns the size of the last requests buffer, as set by set_num_last_reqs.

last_req

function REQ last_req(
    int  unsigned  n  =  0
)

Returns the last request item by default.  If n is not 0, then it will get the n�th before last request item.  If n is greater than the last request buffer size, the function will return null.

rsp_export

Drivers or monitors can connect to this port to send responses to the sequencer.  Alternatively, a driver can send responses via its seq_item_port.

seq_item_port.item_done(response)
seq_item_port.put(response)
rsp_port.write(response)   <--- via this export

The rsp_port in the driver and/or monitor must be connected to the rsp_export in this sequencer in order to send responses through the response analysis port.

get_num_rsps_received

function int get_num_rsps_received()

Returns the number of responses received thus far by this sequencer.

set_num_last_rsps

function void set_num_last_rsps(
    int  unsigned  max
)

Sets the size of the last_responses buffer.  The maximum buffer size is 1024.  If max is greater than 1024, a warning is issued, and the buffer is set to 1024.  The default value is 1.

get_num_last_rsps

function int unsigned get_num_last_rsps()

Returns the max size of the last responses buffer, as set by set_num_last_rsps.

last_rsp

function RSP last_rsp(
    int  unsigned  n  =  0
)

Returns the last response item by default.  If n is not 0, then it will get the nth-before-last response item.  If n is greater than the last response buffer size, the function will return null.

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.
class uvm_report_object extends uvm_object
The uvm_report_object provides an interface to the UVM reporting facility.
virtual class uvm_component extends uvm_report_object
The uvm_component class is the root base class for UVM components.
class uvm_sequencer_base extends uvm_component
Controls the flow of sequences, which generate the stimulus (sequence item transactions) that is passed on to drivers for execution.
class uvm_sequencer_param_base #(
    type  REQ  =  uvm_sequence_item,
    type  RSP  =  REQ
) extends uvm_sequencer_base
Extends uvm_sequencer_base with an API depending on specific request (REQ) and response (RSP) types.
function new (
    string  name,
    uvm_component  parent
)
Creates and initializes an instance of this class using the normal constructor arguments for uvm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
virtual function void send_request(
    uvm_sequence_base  sequence_ptr,   
    uvm_sequence_item  t,   
    bit  rerandomize  =  0
)
The send_request function may only be called after a wait_for_grant call.
function REQ get_current_item()
Returns the request_item currently being executed by the sequencer.
function int get_num_reqs_sent()
Returns the number of requests that have been sent by this sequencer.
function void set_num_last_reqs(
    int  unsigned  max
)
Sets the size of the last_requests buffer.
function int unsigned get_num_last_reqs()
Returns the size of the last requests buffer, as set by set_num_last_reqs.
function REQ last_req(
    int  unsigned  n  =  0
)
Returns the last request item by default.
function int get_num_rsps_received()
Returns the number of responses received thus far by this sequencer.
function void set_num_last_rsps(
    int  unsigned  max
)
Sets the size of the last_responses buffer.
function int unsigned get_num_last_rsps()
Returns the max size of the last responses buffer, as set by set_num_last_rsps.
function RSP last_rsp(
    int  unsigned  n  =  0
)
Returns the last response item by default.