Programación en VHDL/Ejemplos/ALU

← Ejemplos/Máquinas de estados ALU



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;

← Ejemplos/Máquinas de estados ALU