Programación en VHDL/Ejemplos/ALU
Apariencia
El objetivo es crear un dispositivo capaz de realizar cualquier operación dependiendo del valor de una señal de entrada, además se dispondrá de dos entradas de datos.
- Entradas:
- a: Entrada de datos 1.
- b: Entrada de datos 2.
- proceso: Entrada de la operación.
- Salidas:
- c: Salida de datos.
LIBRARY ieee;
USE IEEE.STD_LOGIC_1164.all;
USE IEEE.NUMERIC_STD.all;
ENTITY alu IS
PORT(op1 : IN std_logic_vector(7 DOWNTO 0);--entrada 1
op2 : IN std_logic_vector(7 DOWNTO 0);--entrada 2
proceso : IN std_logic_vector(3 DOWNTO 0);--que hara la alu
res : OUT std_logic_vector(15 DOWNTO 0));
END alu;
ARCHITECTURE synth OF alu IS
SIGNAL a,b:UNSIGNED(op1'range);
SIGNAL c:UNSIGNED(res'range);
BEGIN
PROCESS (a, b, proceso)
BEGIN
CASE proceso IS
WHEN "0000" => c <= RESIZE((a + b),c'length);
WHEN "0001" => c <= RESIZE((a - b),c'length);
WHEN "0010" =>
........
WHEN OTHERS => null;
END CASE;
END PROCESS;
a <= UNSIGNED(op1);
b <= UNSIGNED(op2);
res <= std_logic_vector(c);
END synth;