2019-08-24 14:39:01 +02:00
|
|
|
library IEEE;
|
|
|
|
|
use IEEE.STD_LOGIC_1164.ALL;
|
|
|
|
|
|
|
|
|
|
entity EqualCheck is
|
2019-08-29 15:12:25 +02:00
|
|
|
|
|
|
|
|
generic(
|
|
|
|
|
BITCOUNT: integer := 8
|
|
|
|
|
);
|
|
|
|
|
|
2019-08-24 14:39:01 +02:00
|
|
|
port(
|
2019-08-29 15:12:25 +02:00
|
|
|
X, Y : in std_logic_vector((BITCOUNT-1) downto 0);
|
|
|
|
|
IS_EQUAL : out std_logic
|
2019-08-24 14:39:01 +02:00
|
|
|
);
|
2019-08-29 15:12:25 +02:00
|
|
|
|
2019-08-24 14:39:01 +02:00
|
|
|
end EqualCheck;
|
|
|
|
|
|
|
|
|
|
architecture EqualCheckArch of EqualCheck is
|
2019-08-29 15:12:25 +02:00
|
|
|
|
|
|
|
|
signal COMP_VEC : std_logic_vector((BITCOUNT-1) downto 0);
|
|
|
|
|
|
2019-08-29 15:21:25 +02:00
|
|
|
|
|
|
|
|
|
2019-08-24 14:39:01 +02:00
|
|
|
begin
|
2019-08-29 15:12:25 +02:00
|
|
|
|
|
|
|
|
COMP_VEC <= X xor Y;
|
2019-08-24 14:39:01 +02:00
|
|
|
|
2019-08-29 15:12:25 +02:00
|
|
|
RES_COMPUTE: process (COMP_VEC)
|
|
|
|
|
|
|
|
|
|
variable RES_TMP : std_logic;
|
|
|
|
|
|
2019-08-24 14:39:01 +02:00
|
|
|
begin
|
2019-08-29 15:12:25 +02:00
|
|
|
|
|
|
|
|
RES_TMP := '0';
|
|
|
|
|
|
|
|
|
|
for i in COMP_VEC'range loop
|
|
|
|
|
RES_TMP := RES_TMP or COMP_VEC(i);
|
2019-08-24 14:39:01 +02:00
|
|
|
end loop;
|
2019-08-29 15:12:25 +02:00
|
|
|
|
|
|
|
|
IS_EQUAL <= not RES_TMP;
|
|
|
|
|
|
2019-08-24 14:39:01 +02:00
|
|
|
end process;
|
|
|
|
|
|
|
|
|
|
end EqualCheckArch;
|
|
|
|
|
|