TODOPIC

Otros Microcontroladores / Dispositivos programables => Lógica Programable => Mensaje iniciado por: JORENAWER en 13 de Julio de 2004, 11:58:00

Título: modificación de variable usando clock event
Publicado por: JORENAWER en 13 de Julio de 2004, 11:58:00
Necesito simular un autómata, usando una variable enable (que tendre que variar) combinado con un clock.

El problema es que al hacer el decremento de variable enable sale un error, porque dice que el valor de dicha variable debe ser estable durante los cambios del clock.

Es decir....
defino una variable como: mienable, y hago un if anidado con mienable>"0" y un if (clk"event), y lo que tiene q hacer este if es decrementar mienable. Aqui viene el error, no puedo hacer el if (del clk"event) con una variable (mienable) que me va cambiando de valor....

Alguien puede ayudarme?
Título: RE: modificación de variable usando clock event
Publicado por: Elena2000 en 15 de Julio de 2004, 06:09:00
Hola,

A ver si esto te puede ayudar. Yo haría así la arquitectura de una máquina de estados (FSM) (bueno, parte del código, claro):

Codigo:

-- declaraciones
entity elena_fsm is  
port (  clk, enable:  in std_logic;
           zero, cnt_eq:  in std_logic;  -- entradas de control            
           .................... --salidas etc);
end elena_fsm;

estado:process(clk)      -- proceso para el estado de las transiciones
begin
       if (enable = "1") then  
                -- bla bla...;
       elsif (clk"event and clk="1") then  
                -- flanco de subida del reloj bla bla
       end if;    
       end process estado;



No se si te servirá. Intenta no hacer el if anidado sino más bien combinar ambas condiciones.
Ya me contarás.

Saludos!