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);