std_logic_vector ve bit_vector tipleri std_logic ve bit sinyallerinden oluşan dizilerdir. Bu dizilerin VHDL standardına göre gösterimi aşağıdaki gibidir.
type bit_vector is array (natural range<>) of bit; type std_logic_vector is array (natural range<>) of std_logic;
Yukarıdaki gösterimden de görüleceği üzere dizilerin uzunlukları belirtilmemiştir. Dizi uzunluğu veri tipi tanımlanacağı zaman kullanıcı tarafından belirtilir.
type t_Kelime_10 is array (9 downto 0) of std_logic; signal r_Kelime_10 : t_Kelime_10;
Yukarıda t_Kelime_10 tipi ile tanımlanan r_Kelime_10 sinyali, 10 elemanlı std_logic veri tipinden meydana gelmektedir.
VHDL’de diziler çok boyutlu olabilir. Dizi tanımlamalarını kavramak için öncelikle bir boyutlu dizi tanımlaması ile ilgili örnek aşağıda verilmiştir:
type t_dizi_1d is array (2 downto 0) of std_logic_vector(3 downto 0); signal r_dizi_1d : t_dizi_1d;
r_dizi_1d sinyali her biri 4 bitlik std_logic_vector tipinde sinyallerinden oluşan 3 bileşenden meydana gelmektedir. Aşağıda r_dizi_1d bileşeni için bir atama işlemi gösterilmektedir.
r_dizi_1d <= ("0010", "1100", "1001"); -- Tüm değerlerin ataması. r_dizi_1d(0) <= "1001"; -- 0. Elemanın değer ataması. r_dizi_1d(1) <= "1100"; -- 1. Elemanın değer ataması. r_dizi_1d(2) <= "0010"; -- 2. Elemanın değer ataması. r_dizi_1d(2)(1) <= '1'; -- 2. Elemanın 1. bitine değer ataması.
VHDL ile iki boyutlu dizi tanımlaması bir boyutlu ile benzerdir. Aşağıda iki boyutlu dizi tanımlamasına ait örnek kullanım verilmiştir.
type t_dizi_2d is array (0 to 1, 2 downto 0) of std_logic_vector(3 downto 0); signal r_dizi_2d : t_dizi_2d;
array_2d sinyali her biri 4 bitlik std_logic_vector sinyallerinden oluşan 6 bileşenden meydana gelmektedir. Aşağıda array_2d bileşeni için bir atama işlemi gösterilmektedir.
r_dizi_2d <= (("0010", "1100", "1001"), ("1101", "0011", "0110")); -- Tüm değerlerin atanması. r_dizi_2d(0) <= ("0010", "1100", "1001");-- 0. satıra değer atanması. r_dizi_2d(1) <= ("1101", "0011", "0110");-- 1. Satıra değer atanması. r_dizi_2d(0, 2) <= "0010";--0. satırın 2. elemanına değer atanması. r_dizi_2d(0, 1) <= "1100";--0. satırın 1. elemanına değer atanması. r_dizi_2d(1, 1) <= "0011";--1. satırın 1. elemanına değer atanması. r_dizi_2d(1, 0) <= "0110";--1. satırın 0. elemanına değer atanması. r_dizi_2d(1, 0)(1) <= '1';--1. satır, 0. elemanın, 1. bitine değer atama. r_dizi_2d(1, 0)(0) <= '0';--1. satır, 0. elemanın, 0. bitine değer atama.