Class uvm_tlm_if_base
Name |
Default value |
Description |
---|---|---|
T1 |
int |
|
T2 |
int |
Functions
- virtual function bit try_peek ( int t ) [source]
Provides a new transaction without consuming it.
If available, a transaction is written to the output argument and 1 is returned. A subsequent peek or get will return the same transaction. If a transaction is not available, then the argument is unmodified and 0 is returned.
- virtual function bit nb_transport ( int req, int rsp ) [source]
Executes the given request and returns the response in the given output argument. Completion of this operation must occur without blocking.
If for any reason the operation could not be executed immediately, then a 0 must be returned; otherwise 1.
Tasks
- virtual function get ( int t ) [source]
Provides a new transaction of type T.
The calling thread is blocked if the requested transaction cannot be provided immediately. The new transaction is returned in the provided output argument.
The implementation of get must regard the transaction as consumed. Subsequent calls to get must return a different transaction instance.
- virtual function peek ( int t ) [source]
Obtain a new transaction without consuming it.
If a transaction is available, then it is written to the provided output argument. If a transaction is not available, then the calling thread is blocked until one is available.
The returned transaction is not consumed. A subsequent peek or get will return the same transaction.
CLASS
uvm_tlm_if_base #(T1,T2)
This class declares all of the methods of the TLM API.
Various subsets of these methods are combined to form primitive TLM interfaces, which are then paired in various ways to form more abstract "combination" TLM interfaces. Components that require a particular interface use ports to convey that requirement. Components that provide a particular interface use exports to convey its availability.
Communication between components is established by connecting ports to compatible exports, much like connecting module signal-level output ports to compatible input ports. The difference is that UVM ports and exports bind interfaces (groups of methods), not signals and wires. The methods of the interfaces so bound pass data as whole transactions (e.g. objects). The set of primitive and combination TLM interfaces afford many choices for designing components that communicate at the transaction level.