¿Cómo escribo un bucle infinito en VHDL? Qué está mal con:
while 1 loop
--sequential statements/code
end loop;
¿Cómo escribo un bucle infinito en VHDL? Qué está mal con:
while 1 loop
--sequential statements/code
end loop;
Lo que está mal con tu ejemplo es que cuando se sintetiza el código, todos los bucles se desenrollan; un bucle infinito produciría una lógica infinita, y eso no encajará en ningún dispositivo de silicio real.
Necesitará agregar algo de contexto si está buscando ayuda para lograr algo en particular.
En VHDL sintetizable, los bucles hacen duplicados de circuitos. No hay noción de un bucle infinito porque el dispositivo de destino (FPGA) no tiene un número infinito de puertas lógicas.
¿Estás intentando escribir un programa de computadora en VHDL como si fuera un microprocesador? Suena como tal y te animo a que entiendas la distinción entre escribir software en comparación con diseñar circuitos digitales en VHDL. Buena suerte y hay muchos textos sobre el tema.
Tal vez podrías hacer algo como esto (alguien, corrígeme si me equivoco):
process (clock)
begin
-- statements
end process;
Sin embargo, necesitas una señal clock
para que funcione.
cree un bloque PROCESS (CLK) para reiniciar siempre un circuito secuencial con LOOP dentro. Proceso de actuar como lista de sensibilidad de interrupción. solo asegúrese de inyectar un período CLK más bajo que la propagación del circuito secuencial completo para evitar el error BottleNeck . La directiva LOOP seguro tomó mucho tiempo.
Lea otras preguntas en las etiquetas vhdl