Dicas para o 1o. Trabalho

---------------------------------------------------------------------------------------------------------

1) Use o pacote numeric da biblioteca  IEEE.

     LIBRARY ieee ;
        USE ieee.std_logic_1164.all;
        USE ieee.numeric_std.all;

e na compilação e elaboração, usando GHDL, substitua a biblioteca IEEE
pela synopsys
              ghdl  -a --ieee=synopsys -fexplicit alu.vhd
             
ghdl -e --ieee=synopsys -fexplicit alu

OBS.: veja também
http://ghdl.free.fr/ghdl/IEEE-library-pitfalls.html

---------------------------------------------------------------------------------------------------------

2) Para operações aritiméticas  com std_logic_vector use funções de conversão:

         Exemplos: A, C e B declarados como
std_logic_vector

                A <=  std_logic_vector(signed(C) + signed(B)); -- para valores com sinal
                A <=  std_logic_vector(unsigned(C) + unsigned(B)); -- para valores sem sinal

---------------------------------------------------------------------------------------------------------

3) O compilador GHDL não está aceitando sinal cujo tipo foi declarado usando-se GENERIC
    como controle de CASE.

   no lugar de:   AluControl : in std_logic_vector(Cw-1 downto 0);
   use            :
  AluControl : in std_logic_vector(2 downto 0);