TLM Port Classes

The following classes define the TLM port classes.

Contents
TLM Port ClassesThe following classes define the TLM port classes.
uvm_*_port #(T)These unidirectional ports are instantiated by components that require, or use, the associated interface to convey transactions.
uvm_*_port #(REQ,RSP)These bidirectional ports are instantiated by components that require, or use, the associated interface to convey transactions.

uvm_*_port #(T)

These unidirectional ports are instantiated by components that require, or use, the associated interface to convey transactions.  A port can be connected to any compatible port, export, or imp port.  Unless its min_size is 0, a port must be connected to at least one implementation of its assocated interface.

The asterisk in uvm_*_port is any of the following

blocking_put
nonblocking_put
put

blocking_get
nonblocking_get
get

blocking_peek
nonblocking_peek
peek

blocking_get_peek
nonblocking_get_peek
get_peek

Type parameters

TThe type of transaction to be communicated by the export

Ports are connected to interface implementations directly via uvm_*_imp #(T,IMP) ports or indirectly via hierarchical connections to uvm_*_port #(T) and uvm_*_export #(T) ports.

Summary
uvm_*_port #(T)
These unidirectional ports are instantiated by components that require, or use, the associated interface to convey transactions.
Methods
newThe name and parent are the standard uvm_component constructor arguments.

new

The name and parent are the standard uvm_component constructor arguments.  The min_size and max_size specify the minimum and maximum number of interfaces that must have been connected to this port by the end of elaboration.

function new (string name,
              uvm_component parent,
              int min_size=1,
              int max_size=1)

uvm_*_port #(REQ,RSP)

These bidirectional ports are instantiated by components that require, or use, the associated interface to convey transactions.  A port can be connected to any compatible port, export, or imp port.  Unless its min_size is 0, a port must be connected to at least one implementation of its assocated interface.

The asterisk in uvm_*_port is any of the following

blocking_transport
nonblocking_transport
transport

blocking_master
nonblocking_master
master

blocking_slave
nonblocking_slave
slave

Ports are connected to interface implementations directly via uvm_*_imp #(REQ,RSP,IMP,REQ_IMP,RSP_IMP) ports or indirectly via hierarchical connections to uvm_*_port #(REQ,RSP) and uvm_*_export #(REQ,RSP) ports.

Type parameters

REQThe type of request transaction to be communicated by the export
RSPThe type of response transaction to be communicated by the export
Summary
uvm_*_port #(REQ,RSP)
These bidirectional ports are instantiated by components that require, or use, the associated interface to convey transactions.
Methods
newThe name and parent are the standard uvm_component constructor arguments.

new

The name and parent are the standard uvm_component constructor arguments.  The min_size and max_size specify the minimum and maximum number of interfaces that must have been supplied to this port by the end of elaboration.

function new (string name, uvm_component parent, int min_size=1, int max_size=1)

virtual class uvm_component extends uvm_report_object
The uvm_component class is the root base class for UVM components.
Unidirectional implementation (imp) port classes--An imp port provides access to an implementation of the associated interface to all connected ports and exports.
These unidirectional ports are instantiated by components that require, or use, the associated interface to convey transactions.
The unidirectional uvm_*_export is a port that forwards or promotes an interface implementation from a child component to its parent.
Bidirectional implementation (imp) port classes--An imp port provides access to an implementation of the associated interface to all connected ports and exports.
These bidirectional ports are instantiated by components that require, or use, the associated interface to convey transactions.
The bidirectional uvm_*_export is a port that forwards or promotes an interface implementation from a child component to its parent.