Ваш индекс массива должен быть целым числом. Если вы хотите использовать тип на основе std_logic, вам, вероятно, следует использовать типы со знаком или без знака (которые включают концепцию числового значения, в отличие от простого сигнала std_logic) и соответствующее преобразование типов:
type irf_array is array(0 to 1) of integer;
signal index : unsigned(0 downto 0);
....
index(0) := input(5);
out := irf_array(to_integer(index));
Вы можете использовать std_logic_vector вместо беззнакового типа с дополнительным преобразованием:
signal index : std_logic_vector(0 downto 0);
...
out := irf_array(to_integer(unsigned(index)));