variable_declaration ::= |
|||
identifier_list ::= identifier { , identifier }
subtype_indication ::=
[
resolution_function_
name ] type_mark [ constraint ]
expression ::=
relation {
and
relation }
| relation {
or
relation }
| relation {
xor
relation }
| relation [
nand
relation ]
| relation [
nor
relation ]
Shared variables declarations are allowed only in the declarative part of entities, architectures, packages, package bodies and blocks. Shared variables declarations must not be used in processes and subprograms.
More than one process can access shared variables. If several processes access a given shared variable in the same simulation cycle, the sequence of accesses is not prescribed. It is neither the actual value of the variable after the simulation cycle nor the different values of the variable read within the simulation cycle are deterministic. See example below.