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 ways

  • Their 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.

  • 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.

In addition to type-compatibility checks, the relationship between this port and the provider port will also be checked if the port’s check_connection_relationships configuration has been set. (See new 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_EXPORT type, the provider can be a child

    export or implementation port.

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’s connect method is a phase callback where port’s connect 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 ways

  • Their 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.

  • 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.

In addition to type-compatibility checks, the relationship between this port and the provider port will also be checked if the port’s check_connection_relationships configuration has been set. (See new 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_EXPORT type, the provider can be a child

    export or implementation port.

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’s connect method is a phase callback where port’s connect 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 ways

  • Their 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.

  • 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.

In addition to type-compatibility checks, the relationship between this port and the provider port will also be checked if the port’s check_connection_relationships configuration has been set. (See new 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_EXPORT type, the provider can be a child

    export or implementation port.

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’s connect method is a phase callback where port’s connect 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 ways

  • Their 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.

  • 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.

In addition to type-compatibility checks, the relationship between this port and the provider port will also be checked if the port’s check_connection_relationships configuration has been set. (See new 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_EXPORT type, the provider can be a child

    export or implementation port.

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’s connect method is a phase callback where port’s connect 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 ways

  • Their 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.

  • 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.

In addition to type-compatibility checks, the relationship between this port and the provider port will also be checked if the port’s check_connection_relationships configuration has been set. (See new 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_EXPORT type, the provider can be a child

    export or implementation port.

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’s connect method is a phase callback where port’s connect 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 ways

  • Their 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.

  • 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.

In addition to type-compatibility checks, the relationship between this port and the provider port will also be checked if the port’s check_connection_relationships configuration has been set. (See new 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_EXPORT type, the provider can be a child

    export or implementation port.

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’s connect method is a phase callback where port’s connect 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 ways

  • Their 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.

  • 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.

In addition to type-compatibility checks, the relationship between this port and the provider port will also be checked if the port’s check_connection_relationships configuration has been set. (See new 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_EXPORT type, the provider can be a child

    export or implementation port.

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’s connect method is a phase callback where port’s connect 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 ways

  • Their 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.

  • 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.

In addition to type-compatibility checks, the relationship between this port and the provider port will also be checked if the port’s check_connection_relationships configuration has been set. (See new 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_EXPORT type, the provider can be a child

    export or implementation port.

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’s connect method is a phase callback where port’s connect method calls are made. :param provider: