как объявить двумерные массивы и их элементы в VHDL

Мне нужно объявить значения, которые счетчик должен принимать в 2D-массиве. Кроме того, как выбрать элементы из массива и использовать их (скажем, назначить их другой переменной) как объявить элементы этого 2D-массива ?

type lutable is array (0 to 4, 0 to 63) of integer range 0 to 4000;

1 ответов


в 2D массиве, например:

type lutable is array (0 to 4, 0 to 2) of integer range 0 to 4000;

signal sample_array: lutable;

вы можете назначить другой сигнал следующим образом:

out_signal<=sample_array(in_a, in_b);

содержимое массива может быть объявлено, например, по умолчанию (внимание, это не поддерживается всеми инструментами синтеза!):

signal sample_array: lutable:=( (1000, 2000, 3000),
                        (4000, 3000, 2000),
                        (100, 200, 300),
                        (1,2,3),
                        (5,6,7));

или через постоянный массив, например:

signal sample_array: lutable;
constant sample_array_init: lutable:=(  (1000, 2000, 3000),
                        (4000, 3000, 2000),
                        (100, 200, 300),
                        (1,2,3),
                        (5,6,7));
 ...
 sample_array<=sample_array_init;
 ...

или, конечно, элемент за элементом:

 sample_array(1,1)<=1000;
 ...