[source]

Class uvm_push_driver

uvm_pkg::uvm_push_driver <REQ, RSP> + req : REQ + req_export : uvm_blocking_put_imp #(REQ, uvm_push_driver) + rsp : RSP + rsp_port : uvm_analysis_port #(RSP) + type_name : string + check_port_connections(): void + end_of_elaboration_phase(): void + get_type_name(): string + put()

Inheritance Diagram of uvm_push_driver

CLASS

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.

Parameters

Name

Default value

Description

REQ

uvm_sequence_item

RSP

REQ

Variables

Name

Type

Description

req_export

uvm_blocking_put_imp#(uvm_sequence_item, uvm_push_driver#(uvm_sequence_item, uvm_sequence_item))

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

uvm_analysis_port#(uvm_sequence_item)

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

req

uvm_sequence_item

rsp

uvm_sequence_item

type_name

string

Constructors

function new ( string name, uvm_component parent ) [source]

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.

Functions

function void check_port_connections ( ) [source]

virtual function void end_of_elaboration_phase ( uvm_phase phase ) [source]

virtual function string get_type_name ( ) [source]

Tasks

virtual function put ( uvm_sequence_item item ) [source]