Изменить 1 : Да, вы можете напрямую сравнивать два типа массивов одного типа.
Ниже приведен тестовый стенд и его результат для описания VHDL.
Форма волны
comp entity">
tb.v
library IEEE;
entity tb is
end tb;
architecture behav of tb is
signal a : bit_vector(1 downto 0) := "00";
signal b : bit_vector(1 downto 0) := "00";
signal a_eq_b : bit;
begin
dut: entity work.comp port map (a=>a, b=>b, a_eq_b=>a_eq_b );
stimulus: process
begin
wait for 10 ns;
a <= "01";
wait for 10 ns;
b <= "01";
wait for 10 ns;
a <= "10";
wait for 10 ns;
b <= "11";
wait for 10 ns;
b <= "10";
wait;
end process stimulus;
end behav;
Редактировать 2 : вы можете использовать оператор =
для управления вашим выходным присваиванием: a_eq_b1 <= '1' when (a = b) else '0';
, но вы не можете напрямую присвоить результат из оператора равенства =
, который возвращает логическое значение, bit
.
Дайте мне знать, если вы ищете что-то конкретное, поскольку ваш вопрос требует только "сработает или нет".