Autor Tema: ¿ Cómo Simular un Vector Bidireccional ?  (Leído 2530 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jose_armando

  • PIC10
  • *
  • Mensajes: 4
¿ Cómo Simular un Vector Bidireccional ?
« en: 03 de Octubre de 2004, 02:37:00 »
Hola a todos,

Mi inquietud está digida a:

Cómo poder hacer que el Waveform Editor del MAX+PLUS II, permita que una señal bidireccional muestre el valor en que se encuentra y no se tengan valores como "XXXX" en la simulación, cuando esta se comporta como Señal de Entrada ó Señal de Salida.

Adjunto un ejemplo (bidir.vhd y bidir.scf) que se encuentra en la página de altera para poder ilustar lo dicho. (Bueno la página parece no tiene espacio para el adjunto, pero puedo enviarlos a las personas que me ayuden con la inquietud)

Muchas gracias a todos,

Jose Armando.

Por ejemplo: Este código al simular genera estados de indeterminación "X" en la señal bidir declarada en el port.

--bidir.vhd--

LIBRARY ieee;
USE 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);
        outp    : OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
END bidir;

ARCHITECTURE maxpld OF bidir IS
SIGNAL  a  : STD_LOGIC_VECTOR (7 DOWNTO 0);  -- DFF that stores
                                             -- value from input.
SIGNAL  b  : STD_LOGIC_VECTOR (7 DOWNTO 0);  -- DFF that stores
BEGIN                                        -- feedback value.
    PROCESS(clk)
    BEGIN
    IF clk = "1" AND clk"EVENT THEN  -- Creates the flipflops
        a <= inp;                    
        outp <= b;                  
        END IF;
    END PROCESS;    
    PROCESS (oe, bidir)          -- Behavioral representation
        BEGIN                    -- of tri-states.
        IF( oe = "0") THEN
        --    bidir <= "ZZZZZZZZ";
            b <= bidir;
        ELSE
            bidir <= a;
            b <= bidir;
        END IF;
    END PROCESS;
END maxpld;

----------------

Desconectado Elena2000

  • PIC24F
  • *****
  • Mensajes: 722
RE: ¿ Cómo Simular un Vector Bidireccional ?
« Respuesta #1 en: 08 de Octubre de 2004, 06:20:00 »
Hola!

No he podido analizar tu problema con el MaxPlus2; espero poder hacerlo en breve y así probar directamente el ejemplillo que has puesto.
De todas formas, se me ocurre que le pongas un valor inicial por defecto a la señal bidireccional, quizás así consigues capturar las variaciones que va teniendo a lo largo de la simulación.
ya nos contarás.