Код
type commands is array(0 to COM_SIZE) of std_logic_vector(7 downto 0);
signal commands_list : commands(0 to COM_COUNT) :=
(
x"73746F700000", --stop
x"667764000000", --fwd
x"726576000000" --rev
);
type com_str is array (0 to 31) of std_logic_vector(7 downto 0);
type arg_str is array (0 to 9) of std_logic_vector(7 downto 0);
type com is
record
name : com_str;
arg1 : arg_str;
arg2 : arg_str;
arg3 : arg_str;
name_len : integer;
end record;
signal command : com;
signal commands_list : commands(0 to COM_COUNT) :=
(
x"73746F700000", --stop
x"667764000000", --fwd
x"726576000000" --rev
);
type com_str is array (0 to 31) of std_logic_vector(7 downto 0);
type arg_str is array (0 to 9) of std_logic_vector(7 downto 0);
type com is
record
name : com_str;
arg1 : arg_str;
arg2 : arg_str;
arg3 : arg_str;
name_len : integer;
end record;
signal command : com;
Сравниваю весь массив
Код
for i in 0 to COM_COUNT loop
if (commands_list(i) /= command.name) then
end if;
end loop;
if (commands_list(i) /= command.name) then
end if;
end loop;
И побайтово
Код
for i in 0 to COM_COUNT loop
for j in 0 to command.name_len loop
if (commands_list(i)(j) /= command.name(j)) then
end if;
end loop;
end loop;
for j in 0 to command.name_len loop
if (commands_list(i)(j) /= command.name(j)) then
end if;
end loop;
end loop;
В обоих случаях получаю ошибку
Error (10327): VHDL error at parser.vhd(253): can't determine definition of operator ""/="" -- found 0 possible definitions
Не могу сообразить в чем подвох.