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.