Een range kan stijgend of dalend gekozen worden:
We kunnen verwijzen naar individuele elementen door een index te gebruiken:
Voorbeeld:
entity and_or_poort is
port( a_vec: in bit_vector(2 downto 0);
c_vec: out bit_vector(0 to 1));
end and_or_poort;
architecture arch of and_or_poort is
signal c_intern: bit;
begin
c_intern <= a_vec(2) and a_vec(1);
c_vec(1) <= c_intern or a_vec(0);
c_vec(0) <= c_intern:
end arch;
Voorbeeld:
signal x: bit_vector(2 to 6);
signal y: bit_vector(7 downto 3);
...
x <= y;
signal y, z: bit_vector(3 downto 0);
signal a, b: bit;
signal byte: bit_vector(7 downto 0);
z <= (a, '1', b, '0'); -- z wordt dan a1b0 met a en b een waarde 0 of 1
byte <= (7 => '1', 4 downto 2 => a, 6 => b, others => '0'); -- byte wordt dan 1b0aaa00
z <= " 1010" ;
z <= a & '1' & b & '0';
byte <= y & z;
signal a, z: bit_vector(3 downto 0);
signal b: bit;
signal byte: bit_vector(7 downto 0);
...
byte(5 downto 2) <= a;
z(1 downto 0) <= '0' & b;
signal a: bit_vector(3 downto 0);
signal byte: bit_vector(7 downto 0);
...
byte(5 downto 2) <= a;
signal z: bit_vector(3 downto 0);
signal b: bit;
...
z(0 to 1) <= '0' & b; -- dit geeft een error!
Aliases zijn verwijzingen naar reeds gedefinieerde signals, die de code beter begrijpbaar maken.
signal adres: bit_vector(31 downto 0);
alias top_adres: bit_vector(3 downto 0) is adres(31 downto 28);
alias adres_bank: bit_vector(3 downto 0) is adres(27 downto 24);
alias rij_adres: bit_vector(11 downto 0) is adres(24 downto 12);