# 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. |

Restrictions | 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. |

Restrictions | 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 base type is of the type 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 base type is of the type 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 | |

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 | |

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 | |

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 | |

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 the 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. |