< Programación en VHDL < Ejemplos


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;

Este artículo ha sido escrito por Wikibooks. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.