Hardware Reference
In-Depth Information
Auch wenn VHDL eine Hardware-Beschreibungssprache ist, lassen
sich die imperativen Beschreibungselemente genau wie in einer nor-
malen imperativen Sprache mit Hilfe von Ein- und Ausgaben testen.
In den nachfolgenden Beispielen werden wie auch bisher nur die Vereinbarun-
gen und die zu testenden Anweisungen beschrieben. Die kompletten Testrah-
men befinden sich jeweils auf der Projekt-Web-Seite [27].
3.1.1 Operatoren, Ausdrücke und Zuweisungen
Wie in jeder imperativen Programmiersprache gibt es in VHDL Operatoren,
Ausdrücke und Zuweisungen. Eine Variablenzuweisung weist der Variablen
auf der linken Seite des Zuweisungsoperators den Wert des Ausdrucks auf der
rechten Seite zu:
Variablenname := Ausdruck ;
Signalzuweisungen sind eine Hardware-spezifische Besonderheit. Bei ihnen
steht auf der rechten Zuweisungsseite ein Signalverlauf, beschrieben durch
ein oder mehrere Wert-Verzögerungszeit-Tupel:
W
W
Signalname <= [Verzögerungsmodell]
[after t d ]{ ,
after t d } ;
Die Werte W und die Verzögerungszeiten t d werden dabei durch Ausdrücke
beschrieben (vgl. Abschnitt 1.2.3).
Ein Ausdruck ist eine Berechnungsvorschrift für einen Wert. Er kann eine
Konstante, der Wert einer Variablen, der aktuelle Wert eines Signals oder eine
Operatorfunktion mit einem oder zwei Ausdrücken als Operanden sein (vgl.
Abb. 1.19 a). Durch die rekursive Definition, dass die Operanden selbst Aus-
drücke sein dürfen, kann ein Ausdruck beliebig viele Operationen zusammen-
fassen. Die Ausführungsreihenfolge der Operationen wird durch Klammern
oder die Abarbeitungspriorität der Operatoren festgelegt. Tabelle 3.1 zeigt
die im Buch benutzten Operatoren in der Reihenfolge ihrer Priorität. Klam-
mern haben immer Vorrang. Ohne Klammern hat das Potenzieren Vorrang
vor allen anderen Operationen. Die zweistelligen logischen Operationen ha-
ben die niedrigste Priorität und werden in einem ungeklammerten Ausdruck
immer zuletzt ausgeführt.
Ein Ausdruck ist so zu beschreiben, dass er die Abarbeitungsreihenfol-
ge entweder eindeutig festlegt oder dass die Abarbeitungsreihenfolge keinen
Einfluss auf das Ergebnis hat. Mehrdeutige Ausdrücke gelten als Beschrei-
bungsfehler. Der Ausdruck »a nand b nand c« ist z.B. unzulässig, weil nicht
festgelegt ist, welcher der beiden Operatoren zuerst auszuführen ist, und weil
sich die Ausdrücke für die beiden möglichen Ausführungsreihenfolgen unter-
scheiden:
(a nand b) nand c 6
=
a nand (b nand c)
Search WWH ::




Custom Search