Bit_Vector
Definition:
The Bit_Vector type is predefined
in the Standard package as a standard one-dimensional array type with
each element being of the Bit type.
Syntax:
type bit_vector is
array (natural range <>)
of bit;
Description
The Bit_vector type is an unconstrained vector of elements of the bit
type. The size of a particular vector is specified during its
declaration (see the example below). The way the vector elements are
indexed depends on the defined range and can be either ascending or
descending (see range).
Assignment to an object of the Bit_vector type 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.
Examples
Example 1
signal DataBus :
Bit_vector(7 downto 0);
signal FlagC : Bit;
DataBus(0) <=
'1'; --
1
DataBus <= '0' & "111000" &
FlagC; --
2
DataBus <= ('0', others
=>
'1'); --
3
DataBus <= DataBus(6 downto
0) & DataBus(7); -- 4
DataBus <=
"01110001"; --
5
There is one bit_vector defined in this example - DataBus. Its range
is defined as descending, therefore the most significant bit will be
DataBus(7). Line 1, marked in the comment field, illustrates
assignment of a single element (bit). The line 2 shows typical use of
concatenation. Note that both single bits, groups of bits (with
double quotes!) and other signals (as long as their type is
compatible) can be used. The line 3 demonstrates the use of
aggregates. The line 4 illustrates how slices can be used together
with concatenation. The value of DataBus will be rotated left in this
example. Finally, in line 5 DatBus is assigned an explicit value,
specified with double quotes.
Despite that each of the numbered lines above is correct, it would be
illegal to put them together in one specification as shown above, due
to the fact that bit_vector is an unresolved type and there can be
only one assignment to an object of this type in an architecture.
Important Notes
-
Logical values for objects of the Bit_vector type MUST be written in
double quotes. Single elements, however, are of the bit type,
therefore all values assigned to single elements are specified in
single quotes.
|