Hardware Reference
In-Depth Information
3.1.2 Fallunterscheidungen
Wie bereits eingeführt, gibt es in VHDL Fallunterscheidungen und Auswahl-
anweisungen. Eine binäre Fallunterscheidung führt, wenn die Bedingung er-
füllt ist, die eine Anweisungsfolge und sonst optional eine andere Anweisungs-
folge aus (Abb. 3.2). Bedingungen sind Ausdrücke vom Typ boolean und
werden in der Regel durch Vergleiche mit den Operatoren »=«, »/=«, »>«
etc. gebildet (vgl. Tabelle 3.1).
¯ b
ifbthen
b
A 0 b
Anweisung { Anweisung }
[[else
A 1 A 0 A 1
Anweisung { Anweisung } ]]
bBedingung( BOOLEAN )
endif;
A i
Anweisungsfolge
Abb. 3.2. Binäre Fallunterscheidung
Ein Anwendungsbeispiel für eine binäre Fallunterscheidung ist die Betrags-
bildung:
-- Vereinbarungen im Testprozess
variable x:integer;
variable y:natural;
-- Anweisungsfolge im Testprozess
read( "Bitte INTEGER eingeben (Abbruch mit Exit):" , x);
if x<0 then y := -x;
else y := x;
end if ;
write( "Betrag(" & str(x)& ")=" & str(y));
) WEB-Projekt:P3.1/Betrag.vhdl
Ein gutes Simulationsmodell nutzt alle Möglichkeiten zur Fehlererkennung.
Der Typ eines Datenobjekts sollte so gewählt werden, dass die Zuweisung
unzulässiger Werte Fehlermeldungen verursachen. Deshalb wird im Beispiel
für den Wert des Betrags der Typ natural statt integer verwendet, der
keine negativen Werte darstellen kann.
In einer erweiterten Form werden mehrere Bedingungen verkettet. Wenn
eine Bedingung b 0 erfüllt ist, wird eine Anweisungsfolge A 0 abgearbeitet.
Wenn sie nicht erfüllt ist, können weitere Bedingungen b i i 2f1; 2;:::;n 1g
folgen, unter denen eine Anweisungsfolge A i abgearbeitet wird. Ist keine
der Bedingungen erfüllt, wird optional eine Anweisungsfolge A n abgearbei-
tet (Abb. 3.3). Ein Anwendungsbeispiel war die Beschreibungsschablone für
ein initialisierbares Register in Abb. 2.2, in der dem Signal für den Register-
zustand bei einem aktiven Initialisierungssignal der Anfangswert und sonst
bei einer aktiven Taktflanke der Eingabewert zugewiesen wird.
 
Search WWH ::




Custom Search