VHDL: Bus bidireccional

author-image

Por

Este ejemplo implementa un bus de 8 bits que alimenta y recibe comentarios de pines bidireccionales.

Para obtener más información sobre el uso de este ejemplo en su proyecto, vaya a:

bidir.vhd (implementación de bus triestado)

Ieee de la biblioteca;
UTILICE ieee.std_logic_1164.ALL;

ENTITY bidir IS
    PORT
        (bidir:   INOUT STD_LOGIC_VECTOR (7 DOWNTO 0);
        oe, clk: IN STD_LOGIC;     inp: IN STD_LOGIC_VECTOR (7 DOWNTO 0);    salida: OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
END bidir;

ARQUITECTURA maxpld OF bidir IS
SIGNAL  a: STD_LOGIC_VECTOR (7 DOWNTO 0);  -- DFF que almacena 
                                             -- valor de la entrada.
SEÑAL  B: STD_LOGIC_VECTOR (7 DOWNTO 0);  -- DFF que almacena 
BEGIN - valor de                                        retroalimentación.
    PROCESS(clk)
    BEGIN
    IF clk = '1' AND clk'EVENT  THEN-- Crea las flipflops
        un <= inp;                    
        outp <= b;                  
        FINALIZAR SI;
    PROCESO FINAL;    
    PROCESS (oe, bidir)          -- Representación de comportamiento 
        BEGIN - de estados                    triples.
        IF( oe = '0') a
            continuación, bidir <= "ZZZZZZZZ"
            b <= bidir;
            ELSE bidir <= a; 
            b <= bidir;
        FINALIZAR SI;
    PROCESO FINAL;
END maxpld;

El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.