Vistas de página en total

Buscar este blog

sábado, 9 de noviembre de 2013

VHDL - Decodificador ONE-HOT 2 a 4

[Imagen del decodificador]
[Explicación del decodificador]
[Descripción del decodificador mediante VHDL]
-- Decodificador 2 a 4

-------------------------------------------------------------------------
-- Definir librerias:
library ieee;
use ieee.std_logic_1164.all;
-------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Definir el puerto de la entidad:

entity decodificador_1 is
       port( DATO_ENTRADA: in  std_logic_vector(1 downto 0);
             DATO_SALIDA: out std_logic_vector(3 downto 0)
            );
end decodificador_1;
-------------------------------------------------------------------------

-- Dos opciones para describir el comportamiento de este decodificador:

-------------------------------------------------------------------------
-- Opcion 1  Arquitectura definida de acuerdo al comportamiento y sentencia CASE:
-------------------------------------------------------------------------
architecture ar1_decodificador_1 of decodificador_1 is
begin

    -- Definicion del proceso utilizando "CASE"

    process (DATO_ENTRADA)
    begin
        
        case (DATO_ENTRADA) is
     when "00" => DATO_SALIDA <= "0001";
     when "01" => DATO_SALIDA <= "0010";
     when "10" => DATO_SALIDA <= "0100";
     when "11" => DATO_SALIDA <= "1000";
     when others => DATO_SALIDA <= "0000";
 end case;

    end process;
 
end architecture ar1_decodificador_1;
-------------------------------------------------------------------------


-------------------------------------------------------------------------
-- Opcion 2 Arquitectura definida de acuerdo al comportamiento y sentencia WHEN ELSE: 
-------------------------------------------------------------------------
architecture ar2_decodificador_1 of decodificador_1 is
begiN

    DATO_SALIDA <=  "0001" when DATO_ENTRADA = "00" else
          "0010" when DATO_ENTRADA = "01" else
          "0100" when DATO_ENTRADA = "10" else
          "1000" when DATO_ENTRADA = "11" else
          "0000";

end ar2_decodificador_1;
-------------------------------------------------------------------------

Ver diseño de aplicación en un reloj con TTL
<http://www.slideshare.net/MiguelSanchez14/reloj-digital-ttl-24-horas>
Ver diseño de reloj con microcontrolador y una RTC DS1307 (julio 2014)
<http://electronicsforu.com/electronicsforu/circuitarchives/view_article.asp?sno=860&title%20=%20Microcontroller-Based+Clock+Using+DS1307&id=9050&article_type=2&b_type=new#.U7RaWfl5OSo>