Comment utiliser la boucle et la sortie en VHDL
Dans le tutoriel précédent, nous avons appris à retarder le temps en utilisant le wait for
déclaration. Nous avons également appris la boucle de processus. Nous savons maintenant que si nous le laissons faire, le "thread" du processus bouclera à l'intérieur du processus pour toujours.
Mais que se passe-t-il si nous voulons faire quelque chose une seule fois au début du processus ? Et puis boucler sur un autre code à la fin ? Le type de boucle le plus simple en VHDL peut être créé en utilisant le loop
déclaration.
Cet article de blog fait partie de la série de didacticiels VHDL de base.
La syntaxe de la boucle simple est :
loop
end loop;
Une telle boucle continuera indéfiniment, ou jusqu'à un exit;
est rencontré. Le exit
peut être utilisée pour sortir de n'importe quelle boucle.
Exercice
Ce didacticiel vidéo vous apprend à créer une boucle simple et à en sortir :
Le code final que nous avons créé dans ce tutoriel :
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 sortie vers la console du simulateur lorsque nous avons appuyé sur le bouton d'exécution dans 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
Analyse
Lors de l'exécution du code final dans le simulateur, nous avons vu que le premier "Hello!" a été imprimé sur la console ModelSim. Ensuite, le "Peekaboo!" entre le loop;
et end loop;
a été imprimé. Sur la ligne suivante, le programme frappe le exit;
déclaration, provoquant la sortie du programme de la boucle. Enfin, "Au revoir!" a été imprimé. Après cela, plus rien ne se passe car le programme est mis en pause pour toujours sur le wait;
déclaration.
Nous pouvons voir à partir des horodatages des impressions que tout s'est passé à un temps de simulation de 0 ns. Comme nous l'avons appris du tutoriel précédent, tout autre que wait
les instructions ne consomment aucun temps.
À emporter
- Le
loop
instruction implémente une boucle infinie - Le
exit
déclaration sortira de tout boucle
Aller au tutoriel suivant »
VHDL
- Comment utiliser une procédure dans un processus en VHDL
- Comment utiliser une fonction impure en VHDL
- Comment utiliser une fonction en VHDL
- Comment utiliser une procédure en VHDL
- Comment créer une minuterie en VHDL
- Comment utiliser l'instanciation de Port Map dans VHDL
- Comment installer un simulateur et un éditeur VHDL gratuitement
- Microcontrôleur PIC18 :qu'est-ce que c'est et comment l'utiliser
- Qu'est-ce qu'un désignateur de référence et comment l'utiliser dans l'assemblage ?