13. Predefined attributes

T'BASE

Kind

type

Prefix

any type or subtype T

Result type

base type of T

Restrictions

This attribute can only be used as a prefix for the names of other attributes,
e.g., T'BASE'LEFT.

T'LEFT

Kind

value

Prefix

any scalar type or subtype T

Result type

same type as T

Result

left bound of T

T'RIGHT

Kind

value

Prefix

any scalar type or subtype T

Result type

same type as T

Result

right bound of T

T'HIGH

Kind

value

Prefix

any scalar type or subtype T

Result type

same type as T

Result

upper bound of T

T'LOW

Kind

value

Prefix

any scalar type or subtype T

Result type

same type as T

Result

lower bound of T

T'ASCENDING

Kind

value

Prefix

any scalar type or subtype T

Result type

boolean

Result

TRUE if T is defined with an ascending range; FALSE otherwise.

T'IMAGE(X)

Kind

function

Prefix

any scalar type or subtype T

Parameter

expression whose type is the base type of T

Result type

string

Result

The string of the parameter value. Preferably lower case letters are used without
additional chars (Exception: Extended Identifier -> \ ; Character Literal -> `).
Physical types are represented with the primary unit, except the type time.
There the current resolution limit of the simulator determine the unit. Numbers
of type real are represented up to R number right of the decimal point. Unnecessary
zeros are left out. The replacement characters of See Replacing characters are not allowed.

Restriction

The type of the parameter have to be of the subtype of the Prefix.

T'VALUE(X)

Kind

function

Prefix

any scalar type or subtype T

Parameter

expression of type string

Result type

base type of T

Result

Value of T whose string representation is X. Additional leading and trailing
whitespaces are allowed and ignored. Numerical types are represented as numbers
with any valid base. Physical types are represented with any valid unit.
The replacement characters of See Replacing characters are allowed.

Restriction

The parameter have to be a valid string representation of a literal of type T.

T'POS(x)

Kind

function

Prefix

any discrete or physical type or subtype T

Parameter

expression with a base type of T

Result type

universal_integer

Result

position of the parameter value

T'VAL(x)

Kind

function

Prefix

any discrete or physical type or subtype T

Parameter

expression of an integer type

Result type

base type of T

Result

value of the element whose positional number = X

Restrictions

An error occurs if the result does not belong to the range T'LOW to T'HIGH.

T'SUCC(x)

Kind

function

Prefix

any discrete or physical type or subtype T

Parameter

expression whose base type is of the type T

Result type

base type of T

Result

value of the element whose positional number = X+1

Restrictions

An error occurs if X=T'HIGH or if X does not belong to the range T'LOW to T'HIGH.

T'PRED(x)

Kind

function

Prefix

any discrete or physical type or subtype T

Parameter

expression whose base type is of the type T

Result type

base type of T

Result

value of the element whose positional number = X-1

Restrictions

An error occurs if X=T'LOW or if X does not belong to the range T'LOW to T'HIGH.

T'LEFTOF(x)

Kind

function

Prefix

any discrete or physical type or subtype T

Parameter

expression whose type is base type of T

Result type

base type of T

Result

value of the element which is left of the element which is addressed by X

Restrictions

An error occurs if X=T'LEFT or if X does not belong to the range T'LOW to T'HIGH.

T'RIGHTOF(x)

Kind

function

Prefix

any discrete or physical type or subtype T

Parameter

expression whose type is base type of T

Result type

base type of T

Result

value of the element which is right of the element which is addressed by X

Restrictions

An error occurs if X=T'RIGHT or if X does not belong to the range T'LOW to T'HIGH.

A'LEFT[(n)]

Kind

function

Prefix

any prefix which is suitable as an array object, an alias of it or a conditional array-subtype

Parameter

locally static expression of the type universal_integer whose value must not
exceed the dimension of A.
If there is no parameter it defaults to 1.

Result type

type of the left bound of the Nth index range of A

Result

left bound of the Nth index range of A

A'RIGHT[(n)]

Kind

function

Prefix

any prefix which is suitable as an array object, an alias of it or a conditional array-subtype

Parameter

locally static expression of the type universal_integer whose value must not
exceed the dimension of A.
If there is no parameter default value 1 is used.

Result type

type of the right bound of the Nth index range of A

Result

right bound of the Nth index range of A

A'HIGH[(n)]

Kind

function

Prefix

any prefix which is suitable as an array object, an alias of it or a conditional array-subtype

Parameter

locally static expression of the type universal_integer whose value must not
exceed the dimension of A.
If there is no parameter it defaults to 1.

Result type

type of the upper bound of the Nth index range of A

Result

upper bound of the Nth index range of A

A'LOW[(n)]

Kind

function

Prefix

any prefix which is suitable as an array object, an alias of it or a conditional array-subtype

Parameter

locally static expression of the type universal_integer whose value must not
exceed the dimension of A.
If there is no parameter it defaults to 1.

Result type

type of the lower bound of the Nth index range of A

Result

lower bound of the Nth index range of A

A'RANGE[(n)]

Kind

range

Prefix

any prefix which is suitable as an array object, an alias of it or a conditional array-subtype

Parameter

locally static expression of the type universal_integer whose value must not
exceed the dimension of A.
If there is no parameter it defaults to 1.

Result type

type of the Nth index range of A

Result

The range A'RIGHT(n) to A'LEFT(n) for a rising or A'RIGHT(n) downto A'LEFT(n)
for a descending direction of the Nth index range of A.

A'REVERSE_RANGE[(n)]

Kind

range

Prefix

any prefix which is suitable as an array object, an alias of it or a conditional array-subtype

Parameter

locally static expression of the type universal_integer whose value must not exceed the dimension of A.
If there is no parameter it defaults to 1.

Result type

type of the Nth index range of A

Result

The range A'RIGHT(n) downto A'LEFT(n) for a rising or A'RIGHT(n) to A'LEFT(n)
for a descending direction of the Nth index range of A.

A'LENGTH[(n)]

Kind

value

Prefix

any prefix which is suitable as an array object, an alias of it or a conditional array-subtype

Parameter

locally static expression of the type universal_integer whose value must not
exceed the dimension of A.
If there is no parameter it defaults to 1.

Result type

universal_integer

Result

number of values in the Nth index range

A'ASCENDING[(n)]

Kind

value

Prefix

any prefix which is suitable as an array object, an alias of it or a conditional array-subtype

Parameter

locally static expression of the type universal_integer whose value must not
exceed the dimension of A.
If there is no parameter it defaults to 1.

Result type

boolean

Result

TRUE if the Nth index range of A is defined with an ascending range; FALSE otherwise.

S'DELAYED[(t)]

Kind

signal

Prefix

any signal

Parameter

Static expression of the type time which provides a value > 0.
If t is missing the it defaults to 0.

Result type

base type of S

Result

a signal delayed by t time units, equivalent to S

S'STABLE[(t)]

Kind

signal

Prefix

any signal

Parameter

Static expression of the type time which provides a value > 0.
If t is missing the it defaults to 0.

Result type

boolean

Result

A signal which has the value TRUE if there has been no event at S for t time units; otherwise it has the value FALSE.

S'QUIET[(t)]

Kind

signal

Prefix

any signal

Parameter

static expression of the type TIME which provides a value > 0.
If t is missing it defaults to 0

Result type

boolean

Result

A signal that has the value TRUE when S has been quiet for t time units;
otherwise it has the value FALSE.

S'TRANSACTION

Kind

signal

Prefix

any signal

Result type

bit

Result

A signal whose value is inverted in each simulation cycle in which the signal S is activated.

Restrictions

A description must not depend on the initial value of S'TRANSACTION.

S'EVENT

Kind

function

Prefix

any signal

Result type

boolean

Result

A signal which has the value TRUE when there has been an event at S in the current
simulation cycle; otherwise it has the value FALSE

S'ACTIVE

Kind

function

Prefix

any signal

Result type

boolean

Result

A signal which has the value TRUE when S is active in the current simulation
cycle; otherwise it has the value FALSE.

S'LAST_EVENT

Kind

function

Prefix

any signal

Result type

time

Result

The amount of time that has passed since the last event occurred on signal S.

S'LAST_ACTIVE

Kind

function

Prefix

any signal

Result type

time

Result

The amount of time that has passed since S last was active.

S'LAST_VALUE

Kind

function

Prefix

any signal

Result type

base type of S

Result

The value of S immediately before the last change

S'DRIVING

Kind

function

Prefix

any signal

Result type

boolean

Result

S = scalar: FALSE if the current value of the driver of S in the current process
is determined by the null transaction; TRUE otherwise.
S= composite: TRUE if for every subelement R of S R'DRIVING is TRUE.
FALSE otherwise.
S = null slice: S'DRIVING=TRUE.

Restrictions

This attribute is available only from within a process, a concurrent statement with
an equivalent process or a subprogram. Is S a port then the port must have the mode
inout, out or buffer. If the attribute name appears in a subprogram body then it have
to be a declarative item contained within a process statement and S have to be a
formal parameter of the given subprogram or of a parent of that subprogram.
The formal parameter of the subprogram has then to be of mode inout or out.

S'DRIVING_VALUE

Kind

function

Prefix

any signal

Result type

base type of S

Result

S = scalar: Current value of the driver of S in the current process
S= composite: Corresponding aggregate.
S = null slice: null slice.

Restrictions

This attribute is available only from within a process, a concurrent statement with
an equivalent process or a subprogram. Is S a port then the port must have the mode
inout, out or buffer. If the attribute name appears in a subprogram body then it have
to be a declarative item contained within a process statement and S have to be a
formal parameter of the given subprogram or of a parent of that subprogram.
The formal parameter of the subprogram has then to be of mode inout or out.
S'DRIVING has to be TRUE at the time S'DRIVING_VALUE is evaluated.

E'SIMPLE_NAME

Kind

value

Prefix

any named entity (see See Attribute specification)

Result type

string

Result

The simple name, character literal or operator symbol of the named entity, without
leading or trailing whitespace or quotations marks. (Exception: character literal ->
' and extended identifier -> \). Except for extended identifiers lower case
characters are used.

E'INSTANCE_NAME

Kind

value

Prefix

any named entity (see See Attribute specification) other then the local ports and generics of a component declaration.

Result type

string

Result

The complete hierarchical path including instantiated entities beginning at the
current level downto the name object.

E'PATH_NAME

Kind

value

Prefix

any named entity (see See Attribute specification) other then the local ports and generics of a component declaration.

Result type

string

Result

The complete hierarchical path excluding instantiated entities beginning at the
root level downto the name object.

B'BEHAVIOUR (VHDL'87 only)

Kind

value

Prefix

any block or entity architecture

Result type

boolean

Result

A value which is TRUE if the block or respectively the architecture contains
no component instantiation; otherwise the value is FALSE.

B'STRUCTURE (VHDL'87 only)

Kind

value

Prefix

any block or entity architecture

Result type

boolean

Result

A value which is TRUE if the block or respectively the architecture contains
neither a passive process statement nor a concurrent statement with a
corresponding process statement; otherwise the value is FALSE.