tlm interfaces | |
Globals | Global macro’s & enums |
uvm_tlm_phase_e | Nonblocking transport synchronization state values between an initiator and a target. |
uvm_tlm_sync_e | Pre-defined phase state values for the nonblocking transport Base Protocol between an initiator and a target. |
`UVM_TLM_TASK_ERROR | Defines Not-Yet-Implemented TLM tasks |
`UVM_TLM_FUNCTION_ERROR | Defines Not-Yet-Implemented TLM functions |
TLM IF Class | Base class type to define the transport functions. |
Global macro’s & enums
Defines Not-Yet-Implemented TLM tasks
Defines Not-Yet-Implemented TLM functions
Base class type to define the transport functions.
Base class type to define the transport functions.
uvm_tlm_if | |||||||||||||
Base class type to define the transport functions. | |||||||||||||
Class Declaration | |||||||||||||
| |||||||||||||
tlm transport methods | Each of the interface methods take a handle to the transaction to be transported and a reference argument for the delay. | ||||||||||||
nb_transport_fw | Forward path call. | ||||||||||||
nb_transport_bw | Implementation of the backward path. | ||||||||||||
b_transport | Execute a blocking transaction. |
Each of the interface methods take a handle to the transaction to be transported and a reference argument for the delay. In addition, the nonblocking interfaces take a reference argument for the phase.
virtual function uvm_tlm_sync_e nb_transport_fw( T t, ref P p, input uvm_tlm_time delay )
Forward path call. The first call to this method for a transaction marks the initial timing point. Every call to this method may mark a timing point in the execution of the transaction. The timing annotation argument allows the timing points to be offset from the simulation times at which the forward path is used. The final timing point of a transaction may be marked by a call to nb_transport_bw or a return from this or subsequent call to nb_transport_fw.
See TLM2 Interfaces, Ports, Exports and Transport Interfaces Subset for more details on the semantics and rules of the nonblocking transport interface.
virtual function uvm_tlm_sync_e nb_transport_bw( T t, ref P p, input uvm_tlm_time delay )
Implementation of the backward path. This function MUST be implemented in the INITIATOR component class.
Every call to this method may mark a timing point, including the final timing point, in the execution of the transaction. The timing annotation argument allows the timing point to be offset from the simulation times at which the backward path is used. The final timing point of a transaction may be marked by a call to nb_transport_fw or a return from this or subsequent call to nb_transport_bw.
See TLM2 Interfaces, Ports, Exports and Transport Interfaces Subset for more details on the semantics and rules of the nonblocking transport interface.
class master extends uvm_component;
uvm_tlm_nb_initiator_socket #(trans, uvm_tlm_phase_e, this_t) initiator_socket;
... function void build_phase(uvm_phase phase);
initiator_socket = new(“initiator_socket”, this, this);
endfunction function uvm_tlm_sync_e nb_transport_bw(ref trans t, ref uvm_tlm_phase_e p, input uvm_tlm_time delay); transaction = t; state = p; return UVM_TLM_ACCEPTED; endfunction ... endclass
virtual task b_transport( T t, uvm_tlm_time delay )
Execute a blocking transaction. Once this method returns, the transaction is assumed to have been executed. Whether that execution is succesful or not must be indicated by the transaction itself.
The callee may modify or update the transaction object, subject to any constraints imposed by the transaction class. The initiator may re-use a transaction object from one call to the next and across calls to b_transport().
The call to b_transport shall mark the first timing point of the transaction. The return from b_transport shall mark the final timing point of the transaction. The timing annotation argument allows the timing points to be offset from the simulation times at which the task call and return are executed.
Base class type to define the transport functions.
class uvm_tlm_if #( type T = uvm_tlm_generic_payload, type P = uvm_tlm_phase_e )
Forward path call.
virtual function uvm_tlm_sync_e nb_transport_fw( T t, ref P p, input uvm_tlm_time delay )
Implementation of the backward path.
virtual function uvm_tlm_sync_e nb_transport_bw( T t, ref P p, input uvm_tlm_time delay )
Execute a blocking transaction.
virtual task b_transport( T t, uvm_tlm_time delay )