Cómo usar Loop y Exit en VHDL
En el tutorial anterior aprendimos cómo retrasar el tiempo usando el wait for
declaración. También aprendimos sobre el ciclo del proceso. Ahora sabemos que si lo permitimos, el "hilo" del proceso se repetirá dentro del proceso para siempre.
Pero, ¿y si queremos hacer algo solo una vez al principio del proceso? ¿Y luego repetir algún otro código al final? El tipo de bucle más simple en VHDL se puede crear usando el loop
declaración.
Esta publicación de blog es parte de la serie Tutoriales básicos de VHDL.
La sintaxis del bucle simple es:
loop
end loop;
Tal ciclo continuará indefinidamente, o hasta que un exit;
se encuentra El exit
La declaración se puede utilizar para salir de cualquier bucle.
Ejercicio
Este video tutorial le enseña cómo crear un bucle simple y cómo salir de él:
El código final que creamos en este tutorial:
entity T03_LoopTb is end entity; architecture sim of T03_LoopTb is begin process is begin report "Hello!"; loop report "Peekaboo!"; exit; end loop; report "Goodbye!"; wait; end process; end architecture;
La salida a la consola del simulador cuando presionamos el botón ejecutar en ModelSim:
VSIM 2> run # ** Note: Hello! # Time: 0 ns Iteration: 0 Instance: /t03_looptb # ** Note: Peekaboo! # Time: 0 ns Iteration: 0 Instance: /t03_looptb # ** Note: Goodbye! # Time: 0 ns Iteration: 0 Instance: /t03_looptb
Análisis
Al ejecutar el código final en el simulador vimos que el primer "¡Hola!" se imprimió en la consola de ModelSim. Luego, el “¡Peekaboo!” entre el loop;
y end loop;
fue impreso. En la siguiente línea, el programa presionó el exit;
instrucción, lo que hace que el programa salga del bucle. Finalmente, "¡Adiós!" fue impreso. Después de esto no pasa nada más porque el programa se detiene para siempre en el wait;
declaración.
Podemos ver en las marcas de tiempo de las impresiones que todo sucedió en el tiempo de simulación de 0 ns. Como aprendimos en el tutorial anterior, todo lo que no sea wait
las declaraciones consumen cero tiempo.
Para llevar
- El
loop
declaración implementa un bucle infinito - El
exit
declaración saldrá de cualquier bucle
Ir al siguiente tutorial »
VHDL
- Cómo usar un procedimiento en un proceso en VHDL
- Cómo usar una función impura en VHDL
- Cómo usar una función en VHDL
- Cómo usar un procedimiento en VHDL
- Cómo crear un temporizador en VHDL
- Cómo usar constantes y mapas genéricos en VHDL
- Cómo usar la creación de instancias de mapas de puertos en VHDL
- Cómo usar una instrucción Case-When en VHDL
- Cómo instalar un simulador y editor VHDL gratis
- Microcontrolador PIC18:qué es y cómo usarlo
- ¿Qué es un designador de referencia y cómo lo usamos en ensamblaje?