Digamos que tenemos dos declaraciones de proceso en VHDL que reaccionan en el mismo borde del reloj.
Al lado del reloj también tenemos, por ejemplo, la señal de reinicio. Sé que solo un proceso puede modificar la señal de restablecimiento, de lo contrario, obtenemos un error de varios controladores.
Ahora asumamos que uno de los procesos está modificando la señal y el otro la está leyendo. Que se evaluará primero. O en otras palabras, ¿se activará el cambio de señal en ambos procesos y el código funcionará como se esperaba?
Para aclarar aquí está el código VHDL.
-- First process
process (clk, reset)
begin
if rising_edge(clk) and reset= '1' then
-- do work
end if;
end process;
-- Second process
process (clk)
begin
if rising_edge(clk) then
case reset is
when '1' => reset <= '0';
when '0' => reset <= '1';
end case;
end if;
end process;
El código es hipotético y totalmente irrelevante. Pero, ¿se ejecutará el primer proceso en cualquier otro reloj o no?
Basado en una prueba, esto sucederá. Pero puedo asumir que esto siempre sucederá o no.
Gracias de antemano.