Aufrufe
vor 4 Jahren

Hardware-Entwurf mit VHDL

Hardware-Entwurf mit VHDL

Hardware-Entwurf mit VHDL Prof. Dr.-Ing. Stefan Wolter Elektrotechnik und Informatik 2.6 Operanden und Operatoren • Operanden: Als Operanden bezeichnet man Datenelemente oder Objekte, auf die bestimmte Operationen angewendet werden können. Das Ergebnis einer Operation kann wieder als Operand verwendet werden. Dabei ist Typenkompatibilität Voraussetzung. Arten von Operanden: 1. Explizite Größenangaben als Einzelzeichen, Zeichenketten oder als numerische Größen. 2. Bezeichner (identifier): Das sind die Namen, die Objekten zugewiesen werden, um Objekte unter diesem Namen zu referenzieren. Die Namen von Variablen und Funktionen gehören z.B. in diese Gruppe. 3. Attribute. 4. Aggregate. 5. Qualified Expressions. 6. Funktionen im Sinne ihres Aufrufs. Hierzu ist kein expliziter Operator nötig! 7. Typkonversionen. • VHDL-Operatoren und ihre Prioritäten: hoch Priorität niedrig Diverse Operatoren Arithmetische Operatoren Schiebe-/Rotationsoperatoren Vergleichsoperatoren Logische Operatoren Abbildung 2.6: VHDL-Operatoren und ihre Prioritäten - Die Prioritäten der Operatoren nehmen gemäß der obigen Darstellung von oben nach unten ab. Eine Ausnahme bildet der logische Operator NOT, der die gleiche Priorität hat wie die diversen Operatoren! VHDL-GRUNDLAGEN 43

Hardware-Entwurf mit VHDL Prof. Dr.-Ing. Stefan Wolter Elektrotechnik und Informatik • Logische Operatoren: Tabelle 2.5: Logische Operatoren - Die logischen Operatoren sind im Standard nur für die Typen BIT und BOOLEAN definiert. Das Ergebnis ist (bitweise) entweder ’1’ oder ’0’. Eine nachfolgende Auswertung kann z.B. in Form einer Abfrage auch über die Typdeklaration BOOLEAN auf „true“ bzw. „false“ vorgenommen werden. - Im Fall von Vektoren erfolgt die Verknüpfung bitweise, daher müssen in beiden Operanden gleiche Bitbreiten vorliegen. Das Ergebnis entspricht in Bezug auf den Typ und die Reihenfolge der Bitanordnung (Bit-Ordering) dem linken Operanden. - Bei der Anwendung der logischen Operatoren ist zu beachten, daß bei der Kombination mehrerer solcher Operatoren in einem Term keine Links- oder Rechtsassoziativität gegeben ist (wie bei einigen Programmiersprachen), so daß die Ausführungsreihenfolge undefiniert ist. - Wenn die Reihenfolge von Bedeutung ist, wie z.B. bei NAND oder NOR, müssen Klammern gesetzt werden. Beispiele: Operator Funktion NOT Negation (Priorität wie diverse Operatoren!) AND AND-Verknüpfung NAND negierte AND-Verknüpfung OR OR-Verknüpfung NOR negierte OR-Verknüpfung XOR exklusive OR-Verknüpfung XNOR negiertes XOR (ab IEEE Standard 1076-1993) y1 := a NAND b NAND c ; -- Undefiniertes Ergebnis! y2 := a AND b AND c ; -- okay: Reihenfolge unbedeutend x := a NOR (b NOR c) ; -- Klammern haben Vorrang! z := NOT (a AND b AND c) ; -- okay: NAND mit drei Eingängen VHDL-GRUNDLAGEN 44

Verification.pdf
VHDL Kompakt - CES
VHDL Einführung
Schaltungsdesign mit VHDL
VHDL Design Guidelines