So verwenden Sie Loop und Exit in VHDL
Im vorherigen Tutorial haben wir gelernt, wie man die Zeit mit wait for
verzögert Aussage. Wir haben auch etwas über die Prozessschleife gelernt. Wir wissen jetzt, dass der Prozess-„Thread“ für immer in einer Schleife innerhalb des Prozesses schleifen wird, wenn wir es zulassen.
Was aber, wenn wir etwas nur einmal am Anfang des Prozesses machen wollen? Und dann am Ende einen anderen Code durchlaufen? Die einfachste Art von Schleife in VHDL kann mit loop
erstellt werden Erklärung.
Dieser Blogpost ist Teil der Reihe Basic VHDL Tutorials.
Die Syntax für die einfache Schleife lautet:
loop
end loop;
Eine solche Schleife wird unbegrenzt oder bis zu einem exit;
fortgesetzt angetroffen wird. Die exit
-Anweisung kann zum Ausbrechen aus jeder Schleife verwendet werden.
Übung
Dieses Video-Tutorial zeigt Ihnen, wie Sie eine einfache Schleife erstellen und aus ihr ausbrechen können:
Der endgültige Code, den wir in diesem Tutorial erstellt haben:
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;
Die Ausgabe an die Simulatorkonsole, wenn wir in ModelSim die Run-Taste gedrückt haben:
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
Als wir den endgültigen Code im Simulator ausführten, sahen wir, dass das erste „Hallo!“ wurde auf die ModelSim-Konsole gedruckt. Dann, das "Peekaboo!" zwischen loop;
und end loop;
wurde gedruckt. In der nächsten Zeile traf das Programm die exit;
-Anweisung, wodurch das Programm aus der Schleife ausbricht. Endlich "Auf Wiedersehen!" wurde gedruckt. Danach passiert nichts mehr, da das Programm auf wait;
für immer angehalten wird Erklärung.
An den Zeitstempeln der Ausdrucke können wir erkennen, dass alles bei 0 ns Simulationszeit passiert ist. Wie wir aus dem vorherigen Tutorial gelernt haben, alles andere als wait
Anweisungen verbrauchen keine Zeit.
Imbiss
- Die
loop
-Anweisung implementiert eine Endlosschleife - Der
exit
-Anweisung wird aus irgendeinem ausbrechen Schleife
Weiter zum nächsten Tutorial »
VHDL
- So verwenden Sie eine Prozedur in einem Prozess in VHDL
- So verwenden Sie eine unreine Funktion in VHDL
- So verwenden Sie eine Funktion in VHDL
- So verwenden Sie eine Prozedur in VHDL
- So erstellen Sie einen Timer in VHDL
- So verwenden Sie Konstanten und generische Karten in VHDL
- So verwenden Sie die Port Map-Instanziierung in VHDL
- So installieren Sie kostenlos einen VHDL-Simulator und -Editor
- PIC18-Mikrocontroller:Was er ist und wie er verwendet wird
- Was ist ein Referenzdesignator und wie verwenden wir ihn in der Montage?