# uvm_driver #(REQ,RSP)

The base class for drivers that initiate requests for new transactions via a uvm_seq_item_pull_port. The ports are typically connected to the exports of an appropriate sequencer component.

This driver operates in pull mode. Its ports are typically connected to the corresponding exports in a pull sequencer as follows:

>     driver.seq_item_port.connect(sequencer.seq_item_export);
>     driver.rsp_port.connect(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_driver #(REQ,RSP)
The base class for drivers that initiate requests for new transactions via a uvm_seq_item_pull_port.
Class Hierarchy
uvm_void
uvm_object
uvm_report_object
uvm_component
uvm_driver#(REQ,RSP)
Class Declaration
> class uvm_driver #(
> | type | REQ | = | uvm_sequence_item,
> | type | RSP | = | REQ
> ) extends uvm_component
Ports |
seq_item_port | Derived driver classes should use this port to request items from the sequencer.
rsp_port | This port provides an alternate way of sending responses 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

### seq_item_port

Derived driver classes should use this port to request items from the sequencer. They may also use it to send responses back.

### rsp_port

This port provides an alternate way of sending responses back to the originating sequencer. Which port to use depends on which export the sequencer provides for connection.

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

The base class for drivers that initiate requests for new transactions via a uvm_seq_item_pull_port.

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