Как видится мне, у вас принципиальная ошибка в типах.
commands_list у вас получился массивом 8-битных векторов. Соответственно commands_list(i) - восьмибитный вектор, который вы сравниваете с массивом векторов command.name.
То же самое со вторым примером, где вы вытаетесь сравнить бит commands_list(i)(j) с восьмибитным вектором command.name(j).
Чтобы все заработало вам надо объявить новый тип. Ну и commands_list, наверно, по смыслу должен быть константой.
CODE
type t_commands_list is array(natural range <>) of commands;
constant commands_list : t_commands_list (0 to COM_COUNT):=
(
x"73746F700000", --stop
x"667764000000", --fwd
x"726576000000" --rev
);
В принципе выше то же самое написали. И да, лучше код целиком кидайте.
Сообщение отредактировал KalashKS - Jul 12 2017, 10:34