A continuación se muestra uno de mis procesos que escribí en un bloque de la unidad de control que se interconecta con una placa FPGA. El programa entero básicamente implementa un cronómetro.
Intenté implementar un reinicio asíncrono en este proceso. Mi código original no funcionó al reiniciar el cronómetro. Sin embargo, esta nueva versión funciona y no entiendo por qué.
controlProc: process(clk, reset)
begin
if (reset = '1') then
pstate <= S1;
elsif (clk'event and clk = '1') then
--if (reset = '1') then <----- This is my old code commented out.
--pstate <= S1; <-----
-- Do Stuff
end if;
end process;
Aquí está mi código original
controlProc: process(clk, reset)
begin
if (clk'event and clk = '1') then
if (reset = '1') then
pstate <= S1;
end if;
-- Do Stuff
end if;
end process;