Bucle de tiempo en sincronización de máquina de estado finito

0

Estoy creando un FSM en VHDL para implementar un módulo de transmisión en serie. Sin embargo, cada vez que lo sintetizo, arroja un montón del mismo error sobre la búsqueda de un ciclo de tiempo.

[Synth 8-295] found timing loop. 

Sin embargo, la línea a la que apunta se ve así:

sync_proc : process (sys_clk, sys_rst, NS) 
begin
    if (sys_rst = '1') then
        PS <= FSM_RESET;
    elsif rising_edge(sys_clk) then
        PS <= NS;
    end if;
end process sync_proc;

Específicamente, el error apunta a la línea "PS < = NS". Por lo que me enseñaron y leí en los estándares VHDL, esta es una forma estándar de implementar la parte síncrona de un FSM, pero no puedo entender por qué me está dando un problema al respecto. ¿Algún pensamiento?

    
pregunta Drew

1 respuesta

5

El problema se debe a que incluyó NS en su lista de sensibilidad. La primera línea se verá así

sync_proc : process (sys_clk, sys_rst) 
    
respondido por el Claudio Avi Chami

Lea otras preguntas en las etiquetas