# Port Base Classes

Contents

Port Base Classes |
uvm_port_list | Associative array of uvm_port_component_base class handles, indexed by string
uvm_port_component_base | This class defines an interface for obtaining a port’s connectivity lists after or during the end_of_elaboration phase.
uvm_port_component #(PORT) | This implementation of uvm_port_component class from IEEE 1800.2 declares all the API described in the LRM, plus it inherits from uvm_port_component_base for the purpose of providing the get_connected_to() method.
uvm_port_base | The library implements the following public API beyond what is documented in 1800.2.

## uvm_port_list

Associative array of uvm_port_component_base class handles, indexed by string

@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2

Summary

uvm_port_list
Associative array of uvm_port_component_base class handles, indexed by string
Class Declaration
> typedef uvm_port_component_base uvm_port_list[string]

## uvm_port_component_base

This class defines an interface for obtaining a port’s connectivity lists after or during the end_of_elaboration phase. The sub-class, uvm_port_component #(PORT), implements this interface.

Each port’s full name and type name can be retrieved using get_full_name and get_type_name methods inherited from uvm_component.

@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2

Summary

uvm_port_component_base
This class defines an interface for obtaining a port’s connectivity lists after or during the end_of_elaboration phase.
Class Hierarchy
uvm_component
uvm_port_component_base
Class Declaration
> virtual class uvm_port_component_base extends uvm_component
Methods |
get_connected_to | For a port or export type, this function fills list with all of the ports, exports and implementations that this port is connected to.

### Methods

### get_connected_to

> pure virtual function void get_connected_to(
> | ref | uvm_port_list | list
> )

For a port or export type, this function fills list with all of the ports, exports and implementations that this port is connected to.

@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2

## uvm_port_component #(PORT)

This implementation of uvm_port_component class from IEEE 1800.2 declares all the API described in the LRM, plus it inherits from uvm_port_component_base for the purpose of providing the get_connected_to() method.

@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2

Summary

uvm_port_component #(PORT)
This implementation of uvm_port_component class from IEEE 1800.2 declares all the API described in the LRM, plus it inherits from uvm_port_component_base for the purpose of providing the get_connected_to() method.
Class Hierarchy
uvm_component
uvm_port_component_base
uvm_port_component#(PORT)
Class Declaration
> class uvm_port_component #(
> | type | PORT | = | uvm_object
> ) extends uvm_port_component_base
Methods |
get_connected_to | Implementation of the pure function declared in uvm_port_component_base

### Methods

### get_connected_to

> virtual function void get_connected_to(
> | ref | uvm_port_list | list
> )

Implementation of the pure function declared in uvm_port_component_base

@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2

## uvm_port_base

The library implements the following public API beyond what is documented in 1800.2.

Summary

uvm_port_base
The library implements the following public API beyond what is documented in 1800.2.
Methods |
get_comp | Returns a handle to the internal proxy component representing this port.
debug_connected_to | The debug_connected_to method outputs a visual text display of the port/export/imp network to which this port connects (i.e., the port’s fanout).
debug_provided_to | The debug_provided_to method outputs a visual display of the port/export network that ultimately connect to this port (i.e., the port’s fanin).

### Methods

### get_comp

> virtual function uvm_port_component_base get_comp()

Returns a handle to the internal proxy component representing this port.

Ports are considered components. However, they do not inherit uvm_component. Instead, they contain an instance of uvm_port_component #(PORT) that serves as a proxy to this port.

@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2

### debug_connected_to

> function void debug_connected_to (
> | int | level | = | 0,
> | int | max_level | = | -1
> )

The debug_connected_to method outputs a visual text display of the port/export/imp network to which this port connects (i.e., the port’s fanout).

This method must not be called before the end_of_elaboration phase, as port connections are not resolved until then.

@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2

### debug_provided_to

> function void debug_provided_to (
> | int | level | = | 0,
> | int | max_level | = | -1
> )

The debug_provided_to method outputs a visual display of the port/export network that ultimately connect to this port (i.e., the port’s fanin).

This method must not be called before the end_of_elaboration phase, as port connections are not resolved until then.

@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2

> typedef uvm_port_component_base uvm_port_list[string]

Associative array of uvm_port_component_base class handles, indexed by string

> virtual class uvm_port_component_base extends uvm_component

This class defines an interface for obtaining a port’s connectivity lists after or during the end_of_elaboration phase.

> class uvm_port_component #(
> | type | PORT | = | uvm_object
> ) extends uvm_port_component_base

This implementation of uvm_port_component class from IEEE 1800.2 declares all the API described in the LRM, plus it inherits from uvm_port_component_base for the purpose of providing the get_connected_to() method.
The library implements the following public API beyond what is documented in 1800.2.

> pure virtual function void get_connected_to(
> | ref | uvm_port_list | list
> )

For a port or export type, this function fills list with all of the ports, exports and implementations that this port is connected to.

> virtual function void get_connected_to(
> | ref | uvm_port_list | list
> )

Implementation of the pure function declared in uvm_port_component_base

> virtual function uvm_port_component_base get_comp()

Returns a handle to the internal proxy component representing this port.

> function void debug_connected_to (
> | int | level | = | 0,
> | int | max_level | = | -1
> )

The debug_connected_to method outputs a visual text display of the port/export/imp network to which this port connects (i.e., the port’s fanout).

> function void debug_provided_to (
> | int | level | = | 0,
> | int | max_level | = | -1
> )

The debug_provided_to method outputs a visual display of the port/export network that ultimately connect to this port (i.e., the port’s fanin).