Ir al contenido

Programación en VHDL/Ejemplos/Multiplexor

De Wikilibros, la colección de libros de texto de contenido libre.
← Ejemplos/Puerta triestado Multiplexor Ejemplos/Sumador →



El objetivo es crear un sistema que devuelva un valor dependiente de otra señal de entrada, la cual será la encargada de seleccionar la salida. Además se definirán varias entradas de datos que actuarán como salidas. Cuando la señal de selección este a cero no se producirá ninguna salida, es decir el valor será cero.

  • Entradas:
    • a, b, c: entradas de datos.
    • sel: señal que indica la señal que va a ser devuelta.
  • Salidas:
    • salida: salida de datos.

     library IEEE;
     use IEEE.STD_LOGIC_1164.all;

     ENTITY mux IS
        PORT(a      : IN std_logic_vector(3 DOWNTO 0); 
             b      : IN std_logic_vector(3 DOWNTO 0); 
             c      : IN std_logic_vector(3 DOWNTO 0); 
             sel    : IN std_logic_vector(1 DOWNTO 0); 
             salida : OUT std_logic_vector(3 DOWNTO 0));
     END mux;

     ARCHITECTURE synth OF mux IS
     BEGIN

       PROCESS (sel, a, b, c) IS
       BEGIN
         CASE sel IS
           WHEN "00" => salida <= (others => '0');
           WHEN "01" => salida <= a;
           WHEN "10" => salida <= b;
           WHEN "11" => salida <= c;
           WHEN OTHERS => salida <= (others => '0');
         END CASE;
       END PROCESS;
     END synth;

← Ejemplos/Puerta triestado Multiplexor Ejemplos/Sumador →