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 inteface 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
T | The type of transactions to be stored by this FIFO. |
uvm_tlm_fifo_base #(T) | |||||||||||||||||
This class is the base for <uvm_tlm_fifo #(T)>. | |||||||||||||||||
Class Hierarchy | |||||||||||||||||
| |||||||||||||||||
Class Declaration | |||||||||||||||||
| |||||||||||||||||
Ports | |||||||||||||||||
put_export | The put_export provides both the blocking and non-blocking put interface methods to any attached port: | ||||||||||||||||
get_peek_export | The get_peek_export provides all the blocking and non-blocking get and peek 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. | ||||||||||||||||
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. | ||||||||||||||||
Methods | |||||||||||||||||
new | The name and parent are the normal uvm_component constructor arguments. |
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.
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.
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.
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.
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.
The uvm_object class is the base class for all UVM data and hierarchical classes.
virtual class uvm_object extends uvm_void
The uvm_report_object provides an interface to the UVM reporting facility.
class uvm_report_object extends uvm_object
The uvm_component class is the root base class for UVM components.
virtual class uvm_component extends uvm_report_object
This class is the base for uvm_tlm_fifo #(T).
virtual class uvm_tlm_fifo_base #( type T = int ) extends uvm_component
The name and parent are the normal uvm_component constructor arguments.
function new( string name, uvm_component parent = null )
This class declares all of the methods of the TLM API.
virtual class uvm_tlm_if_base #( type T1 = int, type T2 = int )