Each uvm_tlm_*_socket class is derived from a corresponding uvm_tlm_*_socket_base class. The base class contains most of the implementation of the class, The derived classes (in this file) contain the connection semantics.
Sockets come in several flavors: Each socket is either an initiator or a target, a passthrough or a terminator. Further, any particular socket implements either the blocking interfaces or the nonblocking interfaces. Terminator sockets are used on initiators and targets as well as interconnect components as shown in the figure above. Passthrough sockets are used to enable connections to cross hierarchical boundaries.
There are eight socket types: the cross of blocking and nonblocking, passthrough and termination, target and initiator
Sockets are specified based on what they are (IS-A) and what they contains (HAS-A). IS-A and HAS-A are types of object relationships. IS-A refers to the inheritance relationship and HAS-A refers to the ownership relationship. For example if you say D is a B that means that D is derived from base B. If you say object A HAS-A B that means that B is a member of A.
TLM Sockets | Each uvm_tlm_*_socket class is derived from a corresponding uvm_tlm_*_socket_base class. |
uvm_tlm_b_initiator_socket | IS-A forward port; has no backward path except via the payload contents |
uvm_tlm_b_target_socket | IS-A forward imp; has no backward path except via the payload contents. |
uvm_tlm_nb_initiator_socket | IS-A forward port; HAS-A backward imp |
uvm_tlm_nb_target_socket | IS-A forward imp; HAS-A backward port |
uvm_tlm_b_passthrough_initiator_socket | IS-A forward port; |
uvm_tlm_b_passthrough_target_socket | IS-A forward export; |
uvm_tlm_nb_passthrough_initiator_socket | IS-A forward port; HAS-A backward export |
uvm_tlm_nb_passthrough_target_socket | IS-A forward export; HAS-A backward port |
IS-A forward port; has no backward path except via the payload contents
uvm_tlm_b_initiator_socket | |||||||||||||||||
IS-A forward port; has no backward path except via the payload contents | |||||||||||||||||
Class Hierarchy | |||||||||||||||||
| |||||||||||||||||
Class Declaration | |||||||||||||||||
| |||||||||||||||||
Methods | |||||||||||||||||
new | Construct a new instance of this socket | ||||||||||||||||
Connect | Connect this socket to the specified uvm_tlm_b_target_socket |
Connect this socket to the specified uvm_tlm_b_target_socket
IS-A forward imp; has no backward path except via the payload contents.
The component instantiating this socket must implement a b_transport() method with the following signature
task b_transport(T t, uvm_tlm_time delay);
uvm_tlm_b_target_socket | ||||||||||||||||||||||
IS-A forward imp; has no backward path except via the payload contents. | ||||||||||||||||||||||
Class Hierarchy | ||||||||||||||||||||||
| ||||||||||||||||||||||
Class Declaration | ||||||||||||||||||||||
| ||||||||||||||||||||||
Methods | ||||||||||||||||||||||
new | Construct a new instance of this socket imp is a reference to the class implementing the b_transport() method. | |||||||||||||||||||||
Connect | Connect this socket to the specified uvm_tlm_b_initiator_socket |
function new ( string name, uvm_component parent, IMP imp = null )
Construct a new instance of this socket imp is a reference to the class implementing the b_transport() method. If not specified, it is assume to be the same as parent.
Connect this socket to the specified uvm_tlm_b_initiator_socket
IS-A forward port; HAS-A backward imp
The component instantiating this socket must implement a nb_transport_bw() method with the following signature
function uvm_tlm_sync_e nb_transport_bw(T t, ref P p, input uvm_tlm_time delay);
uvm_tlm_nb_initiator_socket | |||||||||||||||||||||||||||
IS-A forward port; HAS-A backward imp | |||||||||||||||||||||||||||
Class Hierarchy | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Class Declaration | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Methods | |||||||||||||||||||||||||||
new | Construct a new instance of this socket imp is a reference to the class implementing the nb_transport_bw() method. | ||||||||||||||||||||||||||
Connect | Connect this socket to the specified uvm_tlm_nb_target_socket |
function new( string name, uvm_component parent, IMP imp = null )
Construct a new instance of this socket imp is a reference to the class implementing the nb_transport_bw() method. If not specified, it is assume to be the same as parent.
Connect this socket to the specified uvm_tlm_nb_target_socket
IS-A forward imp; HAS-A backward port
The component instantiating this socket must implement a nb_transport_fw() method with the following signature
function uvm_tlm_sync_e nb_transport_fw(T t, ref P p, input uvm_tlm_time delay);
uvm_tlm_nb_target_socket | |||||||||||||||||||||||||||
IS-A forward imp; HAS-A backward port | |||||||||||||||||||||||||||
Class Hierarchy | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Class Declaration | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Methods | |||||||||||||||||||||||||||
new | Construct a new instance of this socket imp is a reference to the class implementing the nb_transport_fw() method. | ||||||||||||||||||||||||||
connect | Connect this socket to the specified uvm_tlm_nb_initiator_socket |
function new ( string name, uvm_component parent, IMP imp = null )
Construct a new instance of this socket imp is a reference to the class implementing the nb_transport_fw() method. If not specified, it is assume to be the same as parent.
function void connect( this_type provider )
Connect this socket to the specified uvm_tlm_nb_initiator_socket
IS-A forward port;
uvm_tlm_b_passthrough_initiator_socket | |||||||||||||||||
IS-A forward port; | |||||||||||||||||
Class Hierarchy | |||||||||||||||||
| |||||||||||||||||
Class Declaration | |||||||||||||||||
|
IS-A forward export;
uvm_tlm_b_passthrough_target_socket | |||||||||||||||||
IS-A forward export; | |||||||||||||||||
Class Hierarchy | |||||||||||||||||
| |||||||||||||||||
Class Declaration | |||||||||||||||||
|
IS-A forward port; HAS-A backward export
uvm_tlm_nb_passthrough_initiator_socket | ||||||||||||||||||||||
IS-A forward port; HAS-A backward export | ||||||||||||||||||||||
Class Hierarchy | ||||||||||||||||||||||
| ||||||||||||||||||||||
Class Declaration | ||||||||||||||||||||||
|
IS-A forward export; HAS-A backward port
uvm_tlm_nb_passthrough_target_socket | ||||||||||||||||||||||
IS-A forward export; HAS-A backward port | ||||||||||||||||||||||
Class Hierarchy | ||||||||||||||||||||||
| ||||||||||||||||||||||
Class Declaration | ||||||||||||||||||||||
| ||||||||||||||||||||||
Methods | ||||||||||||||||||||||
connect | Connect this socket to the specified uvm_tlm_nb_initiator_socket |
function void connect( this_type provider )
Connect this socket to the specified uvm_tlm_nb_initiator_socket
IS-A forward port; has no backward path except via the payload contents
class uvm_tlm_b_initiator_socket #( type T = uvm_tlm_generic_payload ) extends uvm_tlm_b_initiator_socket_base #(T)
IS-A forward imp; has no backward path except via the payload contents.
class uvm_tlm_b_target_socket #( type IMP = int, type T = uvm_tlm_generic_payload ) extends uvm_tlm_b_target_socket_base #(T)
IS-A forward port; HAS-A backward imp
class uvm_tlm_nb_initiator_socket #( type IMP = int, type T = uvm_tlm_generic_payload, type P = uvm_tlm_phase_e ) extends uvm_tlm_nb_initiator_socket_base #(T,P)
IS-A forward imp; HAS-A backward port
class uvm_tlm_nb_target_socket #( type IMP = int, type T = uvm_tlm_generic_payload, type P = uvm_tlm_phase_e ) extends uvm_tlm_nb_target_socket_base #(T,P)
IS-A forward port;
class uvm_tlm_b_passthrough_initiator_socket #( type T = uvm_tlm_generic_payload ) extends uvm_tlm_b_passthrough_initiator_socket_base #(T)
IS-A forward export;
class uvm_tlm_b_passthrough_target_socket #( type T = uvm_tlm_generic_payload ) extends uvm_tlm_b_passthrough_target_socket_base #(T)
IS-A forward port; HAS-A backward export
class uvm_tlm_nb_passthrough_initiator_socket #( type T = uvm_tlm_generic_payload, type P = uvm_tlm_phase_e ) extends uvm_tlm_nb_passthrough_initiator_socket_base #(T,P)
IS-A forward export; HAS-A backward port
class uvm_tlm_nb_passthrough_target_socket #( type T = uvm_tlm_generic_payload, type P = uvm_tlm_phase_e ) extends uvm_tlm_nb_passthrough_target_socket_base #(T,P)
Construct a new instance of this socket
function new( string name, uvm_component parent )
Construct a new instance of this socket imp is a reference to the class implementing the b_transport() method.
function new ( string name, uvm_component parent, IMP imp = null )
Construct a new instance of this socket imp is a reference to the class implementing the nb_transport_bw() method.
function new( string name, uvm_component parent, IMP imp = null )
Construct a new instance of this socket imp is a reference to the class implementing the nb_transport_fw() method.
function new ( string name, uvm_component parent, IMP imp = null )
Connect this socket to the specified uvm_tlm_nb_initiator_socket
function void connect( this_type provider )
Connect this socket to the specified uvm_tlm_nb_initiator_socket
function void connect( this_type provider )