# uvm_push_driver #(REQ,RSP)

Base class for a driver that passively receives transactions, i.e. does not initiate requests transactions. Also known as push mode. Its ports are typically connected to the corresponding ports in a push sequencer as follows:

>     push_sequencer.req_port.connect(push_driver.req_export);
>     push_driver.rsp_port.connect(push_sequencer.rsp_export);

The rsp_port needs connecting only if the driver will use it to write responses to the analysis export in the sequencer.

Summary

uvm_push_driver #(REQ,RSP)
Base class for a driver that passively receives transactions, i.e.
Class Hierarchy
uvm_void
uvm_object
uvm_report_object
uvm_component
uvm_push_driver#(REQ,RSP)
Class Declaration
> class uvm_push_driver #(
> | type | REQ | = | uvm_sequence_item,
> | type | RSP | = | REQ
> ) extends uvm_component
Ports |
req_export | This export provides the blocking put interface whose default implementation produces an error.
rsp_port | This analysis port is used to send response transactions back to the originating sequencer.
Methods |
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.

### Ports

### req_export

This export provides the blocking put interface whose default implementation produces an error. Derived drivers must override put with an appropriate implementation (and not call super.put). Ports connected to this export will supply the driver with transactions.

### rsp_port

This analysis port is used to send response transactions back to the originating sequencer.

### Methods

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

> 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_push_driver #(
> | type | REQ | = | uvm_sequence_item,
> | type | RSP | = | REQ
> ) extends uvm_component

Base class for a driver that passively receives transactions, i.e.

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