Imps

Title: uvm_*_imp ports

The following defines the TLM implementation (imp) classes.

CLASS: uvm_*_imp #(T,IMP)

Unidirectional implementation (imp) port classes. An imp port provides access to an implementation of the associated interface to all connected ~ports~ and ~exports~. Each imp port instance ~must~ be connected to the component instance that implements the associated interface, typically the imp port’s parent. All other connections– e.g. to other ports and exports are prohibited.

The asterisk in ~uvm_*_imp~ may be any of the following:

blocking_put
nonblocking_put
put

blocking_get
nonblocking_get
get

blocking_peek
nonblocking_peek
peek

blocking_get_peek
nonblocking_get_peek
get_peek

The interface methods are implemented in a component of type ~IMP~, a handle to which is passed in a constructor argument. The imp port delegates all interface calls to this component.

Function: __init__

Creates a new unidirectional imp port with the given ~name~ and ~parent~. The ~parent~ must implement the interface associated with this port. Its type must be the type specified in the imp’s type-parameter, ~IMP~:

def __init__(self, name, parent):