Hardware Reference
In-Depth Information
Strenge Typen- und Wertebereichskontrolle
Ein durchschnittlicher Hardware-Fehler, der beim Entwurf entsteht und erst
im Einsatz bemerkt wird, ist wesentlich teurer als ein vergleichbarer Software-
Fehler. Deshalb ist in einer Hardware-Beschreibung jede Hilfe für das Aufspü-
ren von Fehlern willkommen, selbst wenn sie den Entwurfsaufwand vergrößert.
Ein wichtiges Mittel, um Entwurfsfehler zu erkennen, sind strenge Typen- und
Wertebereichskontrollen. In VHDL gelten folgende Regeln. Bei einer Wertzu-
weisung an eine Variable
Variablenname := Ausdruck ;
muss der Ausdruck auf der rechten Seite der Zuweisung denselben Typ wie die
Variable auf der linken Seite haben. Ein Ausdruck mit dem am Anfang des
Abschnitts definierten Typ »tWochentag« kann z.B. nicht an eine Variable
vom Typ »tBitnummer« zugewiesen werden. Bei einer Signalzuweisung
W
W
Signalname <= [Verzögerungsmodell]
[after t d ]{ ,
after t d } ;
müssen die Ausdrücke der zugewiesenen Werte W den Typ des Signals und
die Ausdrücke für die Verzögerung t d den Typ delay_length haben. Bei
einer Zuordnung, namensbasiert
BS => BZ{ , BS => BZ}
oder positionsbasiert
BZ{ , BZ}
(BS - Bezeichner, dem ein Objekt zugeordnet wird; BZ - Bezeichner des
zugeordneten Objekts), müssen die einander zugeordneten Objekte denselben
Typ haben (vgl. Abschnitt 1.2.5 und später Abschnitt 3.2.6). Eine Operation
ist nur mit bestimmten Operandentypen ausführbar und ein Unterprogramm
ist nur mit bestimmten Parametertypen aufrufbar.
Für alle Zahlentypen - auch für selbst definierte - sind implizit alle arith-
metischen Operationen und alle Vergleichsoperationen aus Tabelle 3.1 defi-
niert. Für die Operandentypen gelten dabei folgende Regeln. Der Exponent
bei der Potenzbildung muss ganzzahlig sein. Für alle anderen Operationen mit
zwei Operanden müssen die Operandentypen übereinstimmen. Der Rückgabe-
typ der arithmetischen Operationen ist der des ersten Operanden. Vergleichs-
operationen haben den Rückgabetyp boolean. Ein Operand mit dem zu
Beginn des Abschnitts definierten Typ »tWahrscheinlichkeit« kann z.B. nicht
mit einem Operanden vom Typ real multipliziert oder verglichen werden. Es
ist jedoch möglich, jede Operatorfunktion für beliebige Operanden, d.h. auch
für unterschiedliche Operandentypen, zu überladen (vgl. Abschnitt 3.1.6). Bei
Zahlenangaben wird nur unterschieden, ob sie Nachkommastellen haben oder
nicht. Der Wert »0.5« kann sowohl mit einem Operanden vom Typ real als
auch mit einem Operanden vom Typ »tWahrscheinlichkeit« verknüpft oder
Search WWH ::




Custom Search