Programación en VHDL/Ejemplos/ALU
De Wikilibros, la colección de libros de texto de contenido libre.
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 iee.std_logic_1164.ALL;
ENTITY alu IS
PORT(a : IN std_logic_vector(7 DOWNTO 0);--entrada 2
b : IN std_logic_vector(7 DOWNTO 0);--entrada 1
proceso : IN std_logic_vector(3 DOWNTO 0);--que hara la alu
c : OUT std_logic_vector(15 DOWNTO 0));
END alu;
ARCHITECTURE synth OF alu IS
BEGIN
PROCESS (a, b, proceso)
BEGIN
CASE proceso IS
WHEN "0000" => c <= "0000000" & (a + b);
WHEN "0001" =>
IF a < b THEN
c <= "1000000" & (b - a);
ELSE
c <= "00000000" & (a - b);
END IF;
WHEN "0010" =>
........
WHEN OTHERS => null;
END CASE;
END PROCESS;
END synth;