Hardware Reference
In-Depth Information
ifb 0
then
b 0
A 0
b 1
A 1
¯ b 0
b 0 b 1
¯ b 1
Anweisung { Anweisung }
{{ elsif
b i
then
Anweisung { Anweisung }}
A 0
A 1 A n
. . .
[[else
Anweisung { Anweisung } ]]
A n
b i
Bedingung(
Anweisungsfolge
BOOLEAN )
endif;
A i
Abb. 3.3. Verkettete binäre Fallunterscheidung
Eine Auswahlanweisung wertet einen Ausdruck aus. In Abhängigkeit von
seinem Wert werden unterschiedliche Anweisungsfolgen abgearbeitet. Aus-
wahlwerte, für die dieselben Anweisungen abzuarbeiten sind, können mit dem
Symbol »|« zusammengefasst werden. Der letzte Auswahlwert »others« steht
für alle anderen Werte, die der für die Auswahl ausgewertete Ausdruck an-
nehmen kann (Abb. 3.4).
s sonst
caseAusdruckis
when
s
Wert
{| Wert
} =>
w 0
w 0 w 1
...
...
Anweisung { Anweisung }
A 0
A 0 A 1
A n
{ when
Wert
{| Wert
} =>
w 1
A 1
. . .
Anweisung { Anweisung }}
[[whenothers
=>
s
w i Auswahlwert(e)i
Anweisungsfolgei
Auswahlausdruck
Anweisung { Anweisung } ]]
A n
endcase;
A i
Abb. 3.4. Auswahlanweisung
Auswahlanweisungen werden z.B. für die Nachbildung von Wertetabellen
genutzt. Abbildung 3.5 zeigt eine Wertetabelle und die zugehörige VHDL-
Beschreibung. Eingabewerte mit übereinstimmenden Ausgaben bilden jeweils
einen Auswahlfall. Der Sonst-Fall erfasst im Beispiel alle ungültigen Ein-
gaben und weist der Ausgabe den Wert »ungültig« zu. Damit der Typ
std_logic_vector genutzt werden kann, ist im Vorspann des Testrahmens
das Package ieee.std_logic_1164 zu importieren.
3.1.3 Schleifen
Eine Schleife arbeitet eine eingeschlossene Anweisungsfolge mehrfach ab.
VHDL unterstützt alle üblichen Schleifentypen — Wiederholschleifen, Ab-
bruchschleifen, Abweisschleifen, Endlosschleifen etc. Die Endlosschleife in
Abb. 3.6a arbeitet die eingeschlossenen Anweisungen solange immer wieder
ab, bis sich der Prozess dauerhaft schlafen legt oder die Simulation auf andere
Weise beendet wird. Alternativ kann der Schleifenkörper Abbruchanweisungen
Search WWH ::




Custom Search