IEEE
LANGUAGE REFERENCE MANUAL Std 1076-2002
Copyright © 2002 IEEE. All rights reserved.
7
1.1.1.2 Ports
Ports provide channels for dynamic communication between a block and its environment. The following
applies to both external blocks defined by design entities and to internal blocks defined by block statements,
including those equivalent to component instantiation statements and generate statements (see 9.7).
port_list ::=
port
_interface_list
The ports of a block are defined by a port interface list; interface lists are described in 4.3.2.1. Each interface
element in the port interface list declares a formal port.
To communicate with other blocks, the ports of a block can be associated with signals in the environment in
which the block is used. Moreover, the ports of a block may be associated with an expression in order to
provide these ports with constant driving values; such ports must be of mode
in
. A port is itself a signal (see
4.3.1.2); thus, a formal port of a block may be associated as an actual with a formal port of an inner block.
The port, signal, or expression associated with a given formal port is called the actual corresponding to the
formal port (see 4.3.2.2). The actual, if a port or signal, must be denoted by a static name (see 6.1). The
actual, if an expression, must be a globally static expression (see 7.4).
After a given description is completely elaborated (see Clause 12), if a formal port is associated with an
actual that is itself a port, then the following restrictions apply depending upon the mode (see 4.3.2) of the
formal port:
a) For a formal port of mode
in
, the associated actual must be a port of mode
in
,
inout
, or
buffer
.
b) For a formal port of mode
out
, the associated actual must be a port of mode
out
,
inout
, or
buffer
.
c) For a formal port of mode
inout
, the associated actual must be a port of mode
inout
, or
buffer
.
d) For a formal port of mode
buffer
, the associated actual must be a port of mode
out
,
inout
, or
buffer
.
e) For a formal port of mode
linkage
, the associated actual may be a port of any mode.
If a formal port is associated with an actual port, signal, or expression, then the formal port is said to be
connected
. If a formal port is instead associated with the reserved word
open
, then the formal is said to be
unconnected
. It is an error if a port of mode
in
is unconnected or unassociated (see 4.3.2.2) unless its decla-
ration includes a default expression (see 4.3.2). It is an error if a port of any mode other than
in
is uncon-
nected or unassociated and its type is an unconstrained array type. It is an error if some of the subelements of
a composite formal port are connected and others are either unconnected or unassociated.
NOTE—Ports of mode linkage may be removed from a future version of the language (see Annex F).
1.1.2 Entity declarative part
The entity declarative part of a given entity declaration declares items that are common to all design entities
whose interfaces are defined by the given entity declaration.
entity_declarative_part ::=
{ entity_declarative_item }