library IEEE;
use IEEE.STD_LOGIC_1164.all, IEEE.NUMERIC_STD.all;

entity TEST_ALU is
end TEST_ALU;

architecture TESTBENCH of TEST_ALU is
component ALU
    port ( Sel      : in   unsigned(4 downto 0);
	   CarryIn  : in   std_logic;
	   A, B     : in   unsigned(7 downto 0);
	   Y        : out  unsigned(7 downto 0));
end component;
signal    SIN           : unsigned(4 downto 0);
signal    CIN           : std_logic;
signal    AIN,BIN,YIN   : unsigned(7 downto 0);
begin
	U0: ALU port map (SIN,CIN,AIN,BIN,YIN);
	process begin
            AIN <= "00001111";  BIN <= "11110000";
	    wait for 10 ns;
	    SIN <= "00000"; CIN <= '0';
	    wait for 10 ns;
	    SIN <= "00000"; CIN <= '1';
	    wait for 10 ns;
	    SIN <= "00001"; CIN <= '0';
	    wait for 10 ns;
	    SIN <= "00001"; CIN <= '1';
	    wait for 10 ns;
	    SIN <= "00010"; CIN <= '0';
	    wait for 10 ns;
	    SIN <= "00010"; CIN <= '1';
	    wait for 10 ns;
	    SIN <= "00011"; CIN <= '0';
	    wait for 10 ns;
	    SIN <= "00011"; CIN <= '1';
	    wait for 10 ns;
	    SIN <= "00100"; CIN <= '0';
	    wait for 10 ns;
	    SIN <= "00101"; CIN <= '0';
	    wait for 10 ns;
	    SIN <= "00110"; CIN <= '0';
	    wait for 10 ns;
	    SIN <= "00111"; CIN <= '0';
	    wait for 10 ns;
	    SIN <= "01000"; CIN <= '0';
	    wait for 10 ns;
	    SIN <= "10000"; CIN <= '0';
	    wait for 10 ns;
	    SIN <= "11000"; CIN <= '0';
	    wait for 10 ns;
	    wait;

	end process;
end TESTBENCH;

configuration CFG_ALU of TEST_ALU is
    for TESTBENCH
    end for;
end CFG_ALU;
