# TLM Export Classes

The following classes define the TLM export classes.

Contents

TLM Export Classes | The following classes define the TLM export classes.
uvm_*_export #(T) | The unidirectional uvm_*_export is a port that forwards or promotes an interface implementation from a child component to its parent.
uvm_*_export #(REQ,RSP) | The bidirectional uvm_*_export is a port that forwards or promotes an interface implementation from a child component to its parent.

## uvm_*_export #(T)

The unidirectional uvm_*_export is a port that forwards or promotes an interface implementation from a child component to its parent. An export can be connected to any compatible child export or imp port. It must ultimately be connected to at least one implementation of its associated interface.

The interface type represented by the asterisk 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

T | The type of transaction to be communicated by the export

Exports are connected to interface implementations directly via uvm_*_imp #(T,IMP) ports or indirectly via other uvm_*_export #(T) exports.

Summary

uvm_*_export #(T)
The unidirectional uvm_*_export is a port that forwards or promotes an interface implementation from a child component to its parent.
Methods |
new | The name and parent are the standard uvm_component constructor arguments.

### Methods

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

## uvm_*_export #(REQ,RSP)

The bidirectional uvm_*_export is a port that forwards or promotes an interface implementation from a child component to its parent. An export can be connected to any compatible child export or imp port. It must ultimately be connected to at least one implementation of its associated interface.

The interface type represented by the asterisk is any of the following

>     blocking_transport
>     nonblocking_transport
>     transport

>     blocking_master
>     nonblocking_master
>     master

>     blocking_slave
>     nonblocking_slave
>     slave

Type parameters

REQ | The type of request transaction to be communicated by the export
RSP | The type of response transaction to be communicated by the export

Exports are connected to interface implementations directly via uvm_*_imp #(REQ, RSP, IMP, REQ_IMP, RSP_IMP) ports or indirectly via other uvm_*_export #(REQ,RSP) exports.

Summary

uvm_*_export #(REQ,RSP)
The bidirectional uvm_*_export is a port that forwards or promotes an interface implementation from a child component to its parent.
Methods |
new | The name and parent are the standard uvm_component constructor arguments.

### Methods

### 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.
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.
The bidirectional uvm_*_export is a port that forwards or promotes an interface implementation from a child component to its parent.