TLM Sockets¶
- class uvm.tlm2.uvm_tlm2_sockets.UVMTLMBInitiatorSocket(name, parent)[source]¶
Bases:
UVMTLMBInitiatorSocketBase
- connect(provider)[source]¶
Function: connect
Connects this port to the given
provider
port. The ports must be compatible in the following waysTheir type parameters must match
- The
provider
’s interface type (blocking, non-blocking, analysis, etc.) must be compatible. Each port has an interface mask that encodes the interface(s) it supports. If the bitwise AND of these masks is equal to the this port’s mask, the requirement is met and the ports are compatible. For example, a uvm_blocking_put_port #(T) is compatible with a uvm_put_export #(T) and uvm_blocking_put_imp #(T) because the export and imp provide the interface required by the uvm_blocking_put_port.
- The
Ports of type
UVM_EXPORT
can only connect to other exports or imps.- Ports of type
UVM_IMPLEMENTATION
cannot be connected, as they are bound to the component that implements the interface at time of construction.
- Ports of type
In addition to type-compatibility checks, the relationship between this port and the
provider
port will also be checked if the port’scheck_connection_relationships
configuration has been set. (Seenew
for more information.)Relationships, when enabled, are checked are as follows:
- If this port is a UVM_PORT type, the
provider
can be a parent port, or a sibling export or implementation port.
- If this port is a UVM_PORT type, the
- If this port is a
UVM_EXPORT
type, the provider can be a child export or implementation port.
- If this port is a
If any relationship check is violated, a warning is issued.
Note- the
UVMComponent.connect_phase
method is related to but not the same as this method. The component’sconnect
method is a phase callback where port’sconnect
method calls are made. :param provider:
- class uvm.tlm2.uvm_tlm2_sockets.UVMTLMBTargetSocket(name, parent, imp=None)[source]¶
Bases:
UVMTLMBTargetSocketBase
- connect(provider)[source]¶
Function: connect
Connects this port to the given
provider
port. The ports must be compatible in the following waysTheir type parameters must match
- The
provider
’s interface type (blocking, non-blocking, analysis, etc.) must be compatible. Each port has an interface mask that encodes the interface(s) it supports. If the bitwise AND of these masks is equal to the this port’s mask, the requirement is met and the ports are compatible. For example, a uvm_blocking_put_port #(T) is compatible with a uvm_put_export #(T) and uvm_blocking_put_imp #(T) because the export and imp provide the interface required by the uvm_blocking_put_port.
- The
Ports of type
UVM_EXPORT
can only connect to other exports or imps.- Ports of type
UVM_IMPLEMENTATION
cannot be connected, as they are bound to the component that implements the interface at time of construction.
- Ports of type
In addition to type-compatibility checks, the relationship between this port and the
provider
port will also be checked if the port’scheck_connection_relationships
configuration has been set. (Seenew
for more information.)Relationships, when enabled, are checked are as follows:
- If this port is a UVM_PORT type, the
provider
can be a parent port, or a sibling export or implementation port.
- If this port is a UVM_PORT type, the
- If this port is a
UVM_EXPORT
type, the provider can be a child export or implementation port.
- If this port is a
If any relationship check is violated, a warning is issued.
Note- the
UVMComponent.connect_phase
method is related to but not the same as this method. The component’sconnect
method is a phase callback where port’sconnect
method calls are made. :param provider:
- async b_transport(t, delay)¶
- class uvm.tlm2.uvm_tlm2_sockets.UVMTLMNbInitiatorSocket(name, parent, imp=None)[source]¶
Bases:
UVMTLMNbInitiatorSocketBase
- connect(provider)[source]¶
Function: connect
Connects this port to the given
provider
port. The ports must be compatible in the following waysTheir type parameters must match
- The
provider
’s interface type (blocking, non-blocking, analysis, etc.) must be compatible. Each port has an interface mask that encodes the interface(s) it supports. If the bitwise AND of these masks is equal to the this port’s mask, the requirement is met and the ports are compatible. For example, a uvm_blocking_put_port #(T) is compatible with a uvm_put_export #(T) and uvm_blocking_put_imp #(T) because the export and imp provide the interface required by the uvm_blocking_put_port.
- The
Ports of type
UVM_EXPORT
can only connect to other exports or imps.- Ports of type
UVM_IMPLEMENTATION
cannot be connected, as they are bound to the component that implements the interface at time of construction.
- Ports of type
In addition to type-compatibility checks, the relationship between this port and the
provider
port will also be checked if the port’scheck_connection_relationships
configuration has been set. (Seenew
for more information.)Relationships, when enabled, are checked are as follows:
- If this port is a UVM_PORT type, the
provider
can be a parent port, or a sibling export or implementation port.
- If this port is a UVM_PORT type, the
- If this port is a
UVM_EXPORT
type, the provider can be a child export or implementation port.
- If this port is a
If any relationship check is violated, a warning is issued.
Note- the
UVMComponent.connect_phase
method is related to but not the same as this method. The component’sconnect
method is a phase callback where port’sconnect
method calls are made. :param provider:
- class uvm.tlm2.uvm_tlm2_sockets.UVMTLMNbTargetSocket(name, parent, imp=None)[source]¶
Bases:
UVMTLMNbTargetSocketBase
- connect(provider)[source]¶
Function: connect
Connects this port to the given
provider
port. The ports must be compatible in the following waysTheir type parameters must match
- The
provider
’s interface type (blocking, non-blocking, analysis, etc.) must be compatible. Each port has an interface mask that encodes the interface(s) it supports. If the bitwise AND of these masks is equal to the this port’s mask, the requirement is met and the ports are compatible. For example, a uvm_blocking_put_port #(T) is compatible with a uvm_put_export #(T) and uvm_blocking_put_imp #(T) because the export and imp provide the interface required by the uvm_blocking_put_port.
- The
Ports of type
UVM_EXPORT
can only connect to other exports or imps.- Ports of type
UVM_IMPLEMENTATION
cannot be connected, as they are bound to the component that implements the interface at time of construction.
- Ports of type
In addition to type-compatibility checks, the relationship between this port and the
provider
port will also be checked if the port’scheck_connection_relationships
configuration has been set. (Seenew
for more information.)Relationships, when enabled, are checked are as follows:
- If this port is a UVM_PORT type, the
provider
can be a parent port, or a sibling export or implementation port.
- If this port is a UVM_PORT type, the
- If this port is a
UVM_EXPORT
type, the provider can be a child export or implementation port.
- If this port is a
If any relationship check is violated, a warning is issued.
Note- the
UVMComponent.connect_phase
method is related to but not the same as this method. The component’sconnect
method is a phase callback where port’sconnect
method calls are made. :param provider:
- nb_transport_fw(t, p, delay)¶
- class uvm.tlm2.uvm_tlm2_sockets.UVMTLMBPassthroughInitiatorSocket(name, parent)[source]¶
Bases:
UVMTLMBPassthroughInitiatorSocketBase
- connect(provider)[source]¶
Function: connect
Connects this port to the given
provider
port. The ports must be compatible in the following waysTheir type parameters must match
- The
provider
’s interface type (blocking, non-blocking, analysis, etc.) must be compatible. Each port has an interface mask that encodes the interface(s) it supports. If the bitwise AND of these masks is equal to the this port’s mask, the requirement is met and the ports are compatible. For example, a uvm_blocking_put_port #(T) is compatible with a uvm_put_export #(T) and uvm_blocking_put_imp #(T) because the export and imp provide the interface required by the uvm_blocking_put_port.
- The
Ports of type
UVM_EXPORT
can only connect to other exports or imps.- Ports of type
UVM_IMPLEMENTATION
cannot be connected, as they are bound to the component that implements the interface at time of construction.
- Ports of type
In addition to type-compatibility checks, the relationship between this port and the
provider
port will also be checked if the port’scheck_connection_relationships
configuration has been set. (Seenew
for more information.)Relationships, when enabled, are checked are as follows:
- If this port is a UVM_PORT type, the
provider
can be a parent port, or a sibling export or implementation port.
- If this port is a UVM_PORT type, the
- If this port is a
UVM_EXPORT
type, the provider can be a child export or implementation port.
- If this port is a
If any relationship check is violated, a warning is issued.
Note- the
UVMComponent.connect_phase
method is related to but not the same as this method. The component’sconnect
method is a phase callback where port’sconnect
method calls are made. :param provider:
- class uvm.tlm2.uvm_tlm2_sockets.UVMTLMBPassthroughTargetSocket(name, parent)[source]¶
Bases:
UVMTLMBPassthroughTargetSocketBase
- connect(provider)[source]¶
Function: connect
Connects this port to the given
provider
port. The ports must be compatible in the following waysTheir type parameters must match
- The
provider
’s interface type (blocking, non-blocking, analysis, etc.) must be compatible. Each port has an interface mask that encodes the interface(s) it supports. If the bitwise AND of these masks is equal to the this port’s mask, the requirement is met and the ports are compatible. For example, a uvm_blocking_put_port #(T) is compatible with a uvm_put_export #(T) and uvm_blocking_put_imp #(T) because the export and imp provide the interface required by the uvm_blocking_put_port.
- The
Ports of type
UVM_EXPORT
can only connect to other exports or imps.- Ports of type
UVM_IMPLEMENTATION
cannot be connected, as they are bound to the component that implements the interface at time of construction.
- Ports of type
In addition to type-compatibility checks, the relationship between this port and the
provider
port will also be checked if the port’scheck_connection_relationships
configuration has been set. (Seenew
for more information.)Relationships, when enabled, are checked are as follows:
- If this port is a UVM_PORT type, the
provider
can be a parent port, or a sibling export or implementation port.
- If this port is a UVM_PORT type, the
- If this port is a
UVM_EXPORT
type, the provider can be a child export or implementation port.
- If this port is a
If any relationship check is violated, a warning is issued.
Note- the
UVMComponent.connect_phase
method is related to but not the same as this method. The component’sconnect
method is a phase callback where port’sconnect
method calls are made. :param provider:
- class uvm.tlm2.uvm_tlm2_sockets.UVMTLMNbPassthroughInitiatorSocket(name, parent)[source]¶
Bases:
UVMTLMNbPassthroughInitiatorSocketBase
- connect(provider)[source]¶
Function: connect
Connects this port to the given
provider
port. The ports must be compatible in the following waysTheir type parameters must match
- The
provider
’s interface type (blocking, non-blocking, analysis, etc.) must be compatible. Each port has an interface mask that encodes the interface(s) it supports. If the bitwise AND of these masks is equal to the this port’s mask, the requirement is met and the ports are compatible. For example, a uvm_blocking_put_port #(T) is compatible with a uvm_put_export #(T) and uvm_blocking_put_imp #(T) because the export and imp provide the interface required by the uvm_blocking_put_port.
- The
Ports of type
UVM_EXPORT
can only connect to other exports or imps.- Ports of type
UVM_IMPLEMENTATION
cannot be connected, as they are bound to the component that implements the interface at time of construction.
- Ports of type
In addition to type-compatibility checks, the relationship between this port and the
provider
port will also be checked if the port’scheck_connection_relationships
configuration has been set. (Seenew
for more information.)Relationships, when enabled, are checked are as follows:
- If this port is a UVM_PORT type, the
provider
can be a parent port, or a sibling export or implementation port.
- If this port is a UVM_PORT type, the
- If this port is a
UVM_EXPORT
type, the provider can be a child export or implementation port.
- If this port is a
If any relationship check is violated, a warning is issued.
Note- the
UVMComponent.connect_phase
method is related to but not the same as this method. The component’sconnect
method is a phase callback where port’sconnect
method calls are made. :param provider:
- class uvm.tlm2.uvm_tlm2_sockets.UVMTLMNbPassthroughTargetSocket(name, parent)[source]¶
Bases:
UVMTLMNbPassthroughTargetSocketBase
- connect(provider)[source]¶
Function: connect
Connects this port to the given
provider
port. The ports must be compatible in the following waysTheir type parameters must match
- The
provider
’s interface type (blocking, non-blocking, analysis, etc.) must be compatible. Each port has an interface mask that encodes the interface(s) it supports. If the bitwise AND of these masks is equal to the this port’s mask, the requirement is met and the ports are compatible. For example, a uvm_blocking_put_port #(T) is compatible with a uvm_put_export #(T) and uvm_blocking_put_imp #(T) because the export and imp provide the interface required by the uvm_blocking_put_port.
- The
Ports of type
UVM_EXPORT
can only connect to other exports or imps.- Ports of type
UVM_IMPLEMENTATION
cannot be connected, as they are bound to the component that implements the interface at time of construction.
- Ports of type
In addition to type-compatibility checks, the relationship between this port and the
provider
port will also be checked if the port’scheck_connection_relationships
configuration has been set. (Seenew
for more information.)Relationships, when enabled, are checked are as follows:
- If this port is a UVM_PORT type, the
provider
can be a parent port, or a sibling export or implementation port.
- If this port is a UVM_PORT type, the
- If this port is a
UVM_EXPORT
type, the provider can be a child export or implementation port.
- If this port is a
If any relationship check is violated, a warning is issued.
Note- the
UVMComponent.connect_phase
method is related to but not the same as this method. The component’sconnect
method is a phase callback where port’sconnect
method calls are made. :param provider: