Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> VHDL

For-Schleifen in VHDL meistern: Ein praktischer Leitfaden

Im vorherigen Tutorial untersuchten wir, wie man mit dem loop-Statement eine Endlosschleife erstellt und sie mit exit verlässt. Was aber, wenn die Schleife eine bestimmte Anzahl von Durchläufen ausführen soll? Die For-Schleife ist die einfachste Lösung.

Eine For-Schleife iteriert über einen festen Bereich von Ganzzahlen oder aufgezählten Werten. Der aktuelle Iterationswert steht innerhalb der Schleife über eine implizit deklarierte Konstante automatisch zur Verfügung.

Dieser Artikel gehört zur Serie „Basic VHDL Tutorials“.

Syntax

for <konstante> in <bereich> loop
  -- Schleifenkörper
end loop;

Hierbei ist <konstante> ein benutzerdefinierter Name für den Schleifenzähler, und <bereich> kann ein ganzzahliger Bereich (aufsteigend oder absteigend) oder eine Menge aufgezählter Werte sein.

Ganzzahlbereiche

Beispielcode

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;

Simulationsausgabe (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

Die For-Schleife führte exakt zehn Iterationen aus und gab den Zählerwert zur Simulationszeit 0 aus. Da sich kein wait innerhalb der Schleife befindet, wird die gesamte Schleife augenblicklich abgearbeitet. Das abschließende wait; versetzt den Prozess in eine endlose Pause, was in Testbenches üblich ist.

Wir demonstrierten zudem zwei wichtige String-Operationen:

Wichtigste Erkenntnisse

Weiter zum nächsten Tutorial für tiefere VHDL-Konzepte.

VHDL

  1. Wie Molybdän die moderne Industrie formt: Nutzung, Vorteile und Versorgungsdynamik
  2. String-Listen in VHDL erstellen: Best Practices & Beispiel
  3. VHDL-Testbench-Simulation sauber beenden
  4. PWM-Controller in VHDL implementieren: Design, Simulation & FPGA-Demo
  5. Zufallszahlen in VHDL generieren: Von Uniform zu OSVVM
  6. In-Prozess-Prozeduren für saubere VHDL-FSM-Entwürfe nutzen
  7. Impure Functions in VHDL nutzen: FSM-Lesbarkeit und Wartbarkeit steigern
  8. VHDL-Funktionen meistern: Praktischer Leitfaden für effizientes Design
  9. Endlicher Automat in VHDL entwerfen: Praktisches Ampel-Beispiel
  10. Schleiftechniken für Werkzeugschleifmaschinen meistern: Praktischer Leitfaden