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

Wait-For-Statements in VHDL: Ausführung gezielt verzögern

In unserem vorherigen Tutorial verglichen wir einen VHDL-Prozess mit einem Programm-Thread und führten das wait;-Statement ein, das einen Prozess unendlich anhält. Was aber, wenn ein Prozess für eine bestimmte Dauer pausieren soll?

Entfernt man das wait; vollständig, meldet der Compiler einen Fehler, da jeder VHDL-Prozess eine Endlosschleife ist, die mindestens ein wait-Statement enthalten muss. Die Schleife läuft kontinuierlich zwischen begin und end process;.

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

Während wait; die Ausführung für immer stoppt, erlaubt das wait for-Konstrukt, einen Prozess für ein beliebiges Zeitintervall zu verzögern.

Die Syntax von wait for lautet:

wait for <zeitwert> <zeiteinheit>;

wobei <zeitwert> ein numerisches Literal und <zeiteinheit> eine der folgenden sein kann:

fsFemtosekunden
psPikosekunden
nsNanosekunden
usMikrosekunden
msMillisekunden
secSekunden
minMinuten
hrStunden

Übung

Sehen Sie das Tutorial-Video, um wait for in Aktion zu erleben, wie es einen Prozess für einen benutzerdefinierten Zeitraum anhält.

Der konstruierte VHDL-Beispielcode:

entity T02_WaitForTb is end entity;
architecture sim of T02_WaitForTb is
begin
  process is
  begin
    -- Prozess-"Thread" startet hier
    report "Peekaboo!";
    wait for 10 ns; -- Zurück zum Anfang
  end process;
end architecture;

Die Ausführung in ModelSim liefert folgende Konsolenausgabe:

VSIM 2> run
# ** Note: Peekaboo!
# Time: 0 ns Iteration: 0 Instance: /t02_waitfortb
# ** Note: Peekaboo!
# Time: 10 ns Iteration: 0 Instance: /t02_waitfortb
# ** Note: Peekaboo!
# Time: 20 ns Iteration: 0 Instance: /t02_waitfortb ...

Analyse

In diesem Beispiel entspricht die 10 ns-Verzögerung typischer Logik im MHz-Bereich, wo Nanosekunden-Granularität mit Taktraten übereinstimmt.

Während der Simulation verbrauchen die report-Anweisung und die Schleifensteuerung null Zeit; nur das wait for-Statement lässt die Simulationszeit voranschreiten.

Wait-For-Statements in VHDL: Ausführung gezielt verzögern

Zusammenfassung

Weiter zum nächsten Tutorial →


VHDL

  1. Zeit bis zum Erreichen einer Zielspannung in RC- und RL-Schaltungen berechnen
  2. String-Listen in VHDL erstellen: Best Practices & Beispiel
  3. Tcl-gesteuerter Testbench für ein VHDL Code-Lock-Modul erstellen
  4. In-Prozess-Prozeduren für saubere VHDL-FSM-Entwürfe nutzen
  5. Kostenloser VHDL-Simulator & Editor: Ein Leitfaden für Studierende
  6. Detailtiefe und Effizienz in der Wartungsarbeitsplanung ausbalancieren
  7. Wann Kranbremsen-Wartung planen: Wichtige Indikatoren
  8. Roboterschweiß-Training beschleunigen: Zeit sparen, Effizienz steigern
  9. Erste Kfz-Versicherung: Schritt-für-Schritt zum günstigen Schutz
  10. Genaue Lieferzeit-Schätzungen bei Metallfertigungs-Outsourcing