String
Formal Definition
The string type is predefined in
the package Standard as a standard one-dimensional array type with
each element being of the type Character.
Syntax:
type String is
array (positive range <>)
of character;
Description
The type string is an
unconstrained vector of elements of the type Character. The size of a
particular vector must be specified during its declaration (see
example). The way the vector elements are indexed depends on the
defined range - either ascending or descending (see range).
Assignment to an object of the type string
can be performed in the same way as in case of any arrays, i.e. using
single element assignments, concatenation,
aggregates, slices
or any combination of them.
The package Standard contains declarations of the predefined
operators for the type String: "=", "/=",
"<", "<=", ">",
">=" and "&". Relational operators allow
to compare two strings, while the concatenation operator allows to
concatenate two strings, a string and a character and two characters
to create a string.
Examples
Example 1
constant Message1 : String(1 to
19) := "hold time violation";
signal Letter1 : character;
signal Message2 : string(1
to 10);
. . .
Message2 <= "Not" & Letter1;
Important Notes
-
Unlike Bit_Vector, where the value of index is of the type Natural
(from 0 up to maximum Integer), the index of String has a POSITIVE
value, being an integer greater than 0. It would be an error, then,
to declare a String with a range with zero as one of the boundary values.
-
Strings are written in double quotes. Single elements, however, are
of the type character, therefore values assigned to single elements
(referred by the index) are specified in single quotes.
-
Strings play supplementary role for system modeling as they do not
reflect any particular feature of hardware. They are used mostly for
issuing messages during simulation (see assertion
statement)
|