Tengo los siguientes ejemplos:
-
architecture two of andex is begin process(abus) variable y: bit :='1'; begin for i in 7 downto 0 loop y:=abus(i) and y; end loop; x<=y; end process; end;
-
architecture three of andex is begin process(abus) variable y: bit; begin y:='1'; for i in 7 downto 0 loop y:=abus(i) and y; end loop; x<=y; end process; end;
La única diferencia entre las dos arquitecturas es la ubicación de la inicialización de la variable.
La primera arquitectura produce este RTL:
¿Por qué hay una ruta de retroalimentación? y es conocido por la primera iteración de bucle y cada iteración posterior.
Esperaba que produjera una compuerta AND de 8 bits como la 2a arquitectura.