Para las declaraciones de proceso en VHDL, se dice que el orden de ejecución es secuencial. Mi pregunta es, ¿las señales a , b y c están asignadas a sus nuevos valores de forma concurrente o secuencial?
process(clk) is
begin
if rising_edge(clk) then
a <= b;
b <= c;
c <= a;
a <= c;
end if;
end process;
Si esto es secuencial, debo decir que después del final del proceso, a es igual a b , b es igual a c , y c es igual a b , porque asignamos b a a antes de asignar a a c .
Y finalmente, a debe ser b , porque c se asigna a b antes de la última asignación de señal. Sin embargo, esto parece imposible de implementar en hardware.