Vistas de página en total

Buscar este blog

sábado, 9 de noviembre de 2013

VHDL - Multiplexor

Un multiplexor selecciona de entre varios datos de entradas uno de los datos,  y lo presenta a la salida
-- ejemplo multiplexor 4 a 1 donde se cuenta con "4 datos de entrada", cada uno con "ancho de 5 bits", y un dato de salida, también con ancho 5 bit. (Nota: El demultiplexor [FALTA- enlazarlo a la nota del demultiplexor] selecciona en cual de varias salidas se debe presentar el  único dato seleccionado desde las entradas)
--LIBRERIAS--------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;

--DEFINICION DE PUERTOS DE LA ENTIDAD------------------------------------
entity MULTIPLEXOR_1 is port( DATO_IN3: in std_logic_vector(4 downto 0); -- ancho 5 bit DATO_IN2: in std_logic_vector(4 downto 0); -- ancho 5 bit DATO_IN1: in std_logic_vector(4 downto 0); -- ancho 5 bit DATO_IN0: in std_logic_vector(4 downto 0); -- ancho 5 bit SELECTOR_DE_DATO: in std_logic_vector(1 downto 0); -- ancho 2 bit DATO_OUT: out std_logic_vector(4 downto 0) -- ancho 5 bit ); end entity MULTIPLEXOR_1;
--DOS OPCIONES PARA DEFINIR LA ARQUITECTURA-------------------------------
-- Utilizando sentencia CASE architecture ar1_MULTIPLEXOR_1 of MULTIPLEXOR_1 is
begin
    process(DATO_IN3,DATO_IN2,DATO_IN1,DATO_IN0,SELECTOR_DE_DATO)
    begin
            
        case (SELECTOR_DE_DATO) is
     when "00" => DATO_OUT <= DATO_IN0;
     when "01" => DATO_OUT <= DATO_IN1;
     when "10" => DATO_OUT <= DATO_IN2;
     when "11" => DATO_OUT <= DATO_IN3;
     when others => DATO_OUT <= "ZZZZZ"; -- Alta impedancia
 end case;

    end process;
end architecture ar1_MULTIPLEXOR_1;

-- Utilizando sentencia WHEN-ELSE
architecture ar2_MULTIPLEXOR_1 of MULTIPLEXOR_1 is begin DATO_OUT <= DATO_IN0 when SELECTOR_DE_DATO="00" else DATO_IN1 when SELECTOR_DE_DATO="01" else DATO_IN2 when SELECTOR_DE_DATO="10" else DATO_IN3 when SELECTOR_DE_DATO="11" else "ZZZZZ"; end architecture ar2_MULTIPLEXOR_1;
-------------------------------------------------------------------------