uvm_tlm_fifo_base #(T)

This class is the base for uvm_tlm_fifo#(T).  It defines the TLM exports through which all transaction-based FIFO operations occur.  It also defines default implementations for each interface method provided by these exports.

The interface methods provided by the put_export and the get_peek_export are defined and described by uvm_tlm_if_base #(T1,T2).  See the TLM Overview section for a general discussion of TLM interface definition and usage.

Parameter type

TThe type of transactions to be stored by this FIFO.
Summary
uvm_tlm_fifo_base #(T)
This class is the base for uvm_tlm_fifo#(T).
Class Hierarchy
Class Declaration
virtual class uvm_tlm_fifo_base #(
    type  T  =  int
) extends uvm_component
Ports
put_exportThe put_export provides both the blocking and non-blocking put interface methods to any attached port:
get_peek_exportThe get_peek_export provides all the blocking and non-blocking get and peek interface methods:
put_apTransactions passed via put or try_put (via any port connected to the put_export) are sent out this port via its write method.
get_apTransactions passed via get, try_get, peek, or try_peek (via any port connected to the get_peek_export) are sent out this port via its write method.
Methods
newThe name and parent are the normal uvm_component constructor arguments.

put_export

The put_export provides both the blocking and non-blocking put interface methods to any attached port:

task put (input T t)
function bit can_put ()
function bit try_put (input T t)

Any put port variant can connect and send transactions to the FIFO via this export, provided the transaction types match.  See uvm_tlm_if_base #(T1,T2) for more information on each of the above interface methods.

get_peek_export

The get_peek_export provides all the blocking and non-blocking get and peek interface methods:

task get (output T t)
function bit can_get ()
function bit try_get (output T t)
task peek (output T t)
function bit can_peek ()
function bit try_peek (output T t)

Any get or peek port variant can connect to and retrieve transactions from the FIFO via this export, provided the transaction types match.  See uvm_tlm_if_base #(T1,T2) for more information on each of the above interface methods.

put_ap

Transactions passed via put or try_put (via any port connected to the put_export) are sent out this port via its write method.

function void write (T t)

All connected analysis exports and imps will receive put transactions.  See uvm_tlm_if_base #(T1,T2) for more information on the write interface method.

get_ap

Transactions passed via get, try_get, peek, or try_peek (via any port connected to the get_peek_export) are sent out this port via its write method.

function void write (T t)

All connected analysis exports and imps will receive get transactions.  See uvm_tlm_if_base #(T1,T2) for more information on the write method.

new

function new(
    string  name,   
    uvm_component  parent  =  null
)

The name and parent are the normal uvm_component constructor arguments.  The parent should be null if the uvm_tlm_fifo is going to be used in a statically elaborated construct (e.g., a module).  The size indicates the maximum size of the FIFO.  A value of zero indicates no upper bound.

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.
virtual class uvm_tlm_fifo_base #(
    type  T  =  int
) extends uvm_component
This class is the base for uvm_tlm_fifo#(T).
This class provides storage of transactions between two independently running processes.
The put_export provides both the blocking and non-blocking put interface methods to any attached port:
The get_peek_export provides all the blocking and non-blocking get and peek interface methods:
function new(
    string  name,   
    uvm_component  parent  =  null
)
The name and parent are the normal uvm_component constructor arguments.
virtual class uvm_tlm_if_base #(
    type  T1  =  int,
    type  T2  =  int
)
This class declares all of the methods of the TLM API.