Tal como lo dice el título, ¿cómo ocurre esto? Estoy tratando de envolver mi cabeza en torno a los procesos frente a los componentes y no entiendo cómo funciona este mecanismo. Puede que esta no sea una pregunta adecuada, así que, por favor, ayúdame a formularla para que sea más específica, pero realmente necesito entender este concepto para seguir avanzando en mi diseño.
Por ejemplo:
count: process (x)
variable cnt : integer := -1;
begin
cnt:=cnt+1;
if (cnt > '9') then
cnt:=0;
OVERFLOW <= '1';
endif;
end process;
Entiendo que la instrucción if depende de la instrucción de incremento anterior. También entiendo por qué el orden es importante (lógicamente tiene sentido, verifico la condición después de la actualización), pero lo que no tiene sentido para mí es sin ningún tipo de mecanismo de reloj ni ningún otro mecanismo secuencial, cómo OVERFLOW (que es una señal en esto) ejemplo, no se muestra) ¿se actualiza su valor simultáneamente con todas las otras señales en el diseño cuando depende de que se actualice primero cnt? Además, cualquier otra señal otra que tenga procesos implícitos asociados con OVERFLOW se asigna de manera simultánea, lo que las hace dependientes de cnt por proxy también.