Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> VHDL

Maîtriser les boucles For en VHDL : guide pratique

Dans le tutoriel précédent, nous avons exploré comment créer une boucle infinie en utilisant l'instruction loop et en sortir avec exit. Et si nous avons besoin que la boucle s'exécute un nombre spécifique de fois ? La boucle For est la solution la plus directe.

Une boucle For itère sur une plage fixe d'entiers ou d'éléments énumérés. La valeur d'itération courante est automatiquement disponible à l'intérieur de la boucle via une constante implicitement déclarée.

Cet article fait partie de la série Tutoriels VHDL de base.

Syntaxe

for <constant> in <range> loop -- corps de la boucle end loop;

Ici, <constant> est un nom défini par l'utilisateur pour le compteur de boucle, et <range> peut être une plage d'entiers (croissante ou décroissante) ou un ensemble de valeurs énumérées.

Plages d'entiers

Exemple de code

 entity T04_ForLoopTb is end entity; architecture sim of T04_ForLoopTb is begin process is begin for i in 1 to 10 loop report "i=" & integer'image(i); end loop; wait; end process; end architecture; 

Sortie de simulation (ModelSim)

VSIM 2> run # ** Note: i=1 # Time: 0 ns Iteration: 0 Instance: /t04_forlooptb # ** Note: i=2 # Time: 0 ns Iteration: 0 Instance: /t04_forlooptb # ** Note: i=3 # Time: 0 ns Iteration: 0 Instance: /t04_forlooptb # ** Note: i=4 # Time: 0 ns Iteration: 0 Instance: /t04_forlooptb # ** Note: i=5 # Time: 0 ns Iteration: 0 Instance: /t04_forlooptb # ** Note: i=6 # Time: 0 ns Iteration: 0 Instance: /t04_forlooptb # ** Note: i=7 # Time: 0 ns Iteration: 0 Instance: /t04_forlooptb # ** Note: i=8 # Time: 0 ns Iteration: 0 Instance: /t04_forlooptb # ** Note: i=9 # Time: 0 ns Iteration: 0 Instance: /t04_forlooptb # ** Note: i=10 # Time: 0 ns Iteration: 0 Instance: /t04_forlooptb

Analyse

La boucle For a exécuté exactement dix itérations, affichant la valeur du compteur au temps de simulation 0. Comme il n'y a pas de wait à l'intérieur de la boucle, la boucle entière se termine instantanément. Le wait; final place le processus en pause infinie, ce qui est courant dans les testbenches.

Nous avons également démontré deux opérations de chaîne essentielles :

Points clés à retenir

Passez au tutoriel suivant pour des concepts VHDL plus approfondis.

VHDL

  1. Comment le molybdène façonne l'industrie moderne : usages, avantages et dynamiques d'approvisionnement
  2. Créer des listes de chaînes en VHDL : Bonnes pratiques et exemple
  3. Terminer proprement une simulation de banc de test VHDL
  4. Implémenter un contrôleur PWM en VHDL : Conception, simulation et démo FPGA
  5. Générer des nombres aléatoires en VHDL : De l'uniforme à OSVVM
  6. Exploiter les procédures in-process pour un design FSM VHDL plus propre
  7. Utilisation des fonctions impures en VHDL : Améliorer la lisibilité et la maintenabilité des FSM
  8. Maîtriser les fonctions VHDL : Guide pratique pour un design efficace
  9. Maîtriser les techniques de la rectifieuse d'outils : guide pratique