# 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
uvm_void
uvm_object
uvm_report_object
uvm_component
uvm_sequencer_base
uvm_sequencer_param_base#(REQ,RSP)
Class Declaration
> class uvm_sequencer_param_base #(
> | type | REQ | = | uvm_sequence_item,
> | type | RSP | = | REQ
> ) extends uvm_sequencer_base
new | 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 | The send_request function may only be called after a wait_for_grant call.
get_current_item | Returns the request_item currently being executed by the sequencer.
Requests |
get_num_reqs_sent | Returns the number of requests that have been sent by this sequencer.
set_num_last_reqs | Sets the size of the last_requests buffer.
get_num_last_reqs | Returns the size of the last requests buffer, as set by set_num_last_reqs.
last_req | Returns the last request item by default.
Responses |
rsp_export | Drivers or monitors can connect to this port to send responses to the sequencer.
get_num_rsps_received | Returns the number of responses received thus far by this sequencer.
set_num_last_rsps | Sets the size of the last_responses buffer.
get_num_last_rsps | Returns the max size of the last responses buffer, as set by set_num_last_rsps.
last_rsp | Returns 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.

### Requests

### 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.

### Responses

### 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.