library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity Vmodecmp is port ( M: in STD_LOGIC_VECTOR (1 downto 0); -- mode A, B: in STD_LOGIC_VECTOR (31 downto 0); -- unsigned integers EQ, GT: out STD_LOGIC ); -- comparison results end Vmodecmp; architecture Vmodecmp_arch of Vmodecmp is begin process (M, A, B) begin case M is when "00" => if A = B then EQ <= '1'; else EQ <= '0'; end if; if A > B then GT <= '1'; else GT <= '0'; end if; when "01" => if A(31 downto 1) = B(31 downto 1) then EQ <= '1'; else EQ <= '0'; end if; if A(31 downto 1) > B(31 downto 1) then GT <= '1'; else GT <= '0'; end if; when "10" => if A(31 downto 2) = B(31 downto 2) then EQ <= '1'; else EQ <= '0'; end if; if A(31 downto 2) > B(31 downto 2) then GT <= '1'; else GT <= '0'; end if; when others => EQ <= '0'; GT <= '0'; end case; end process; end Vmodecmp_arch;