4 AusdruckeUm Ausdrucke zu bilden, hat man in <strong>VHDL</strong> die in der Tabelle aufgefuhrten Operatorenzur Verfugung, die Operatorprioritaten steigen an. Gegebenenfalls mu die Reihenfolge derAuswertung durch explizite Klammerung festgelegt werden:Operator Funktion Operanden Typ1 -Typ2logische Operatorenand a ^ b bit, bit vector, boolean -=or a _ b bit, bit vector, boolean -=nand :(a ^ b) bit, bit vector, boolean -=nor :(a _ b) bit, bit vector, boolean -=xor a 6= b bit, bit vector, boolean -=relationale Operatoren= a = b gleicher Typ/= a 6= b gleicher Typ< ab gleicher Typ>= a b gleicher Typarithmetische Operatoren - additiv+ a + b integer, real -=- a , b integer, real -=& a&b bit, bit vector, character, string - passendarithmetische Operatoren - vorzeichen+ +a integer, real- ,a integer, realarithmetische Operatoren - multiplikativ* a b integer, real -=/ a=b integer, real -=mod a div b integer -=rem a mod b integer -=weitere Operatoren** a b integer, real -integerabs j a j integer, realnot :a bit, bit vector, boolean21
Da <strong>VHDL</strong> streng typisiert ist, mussen zum Teil explizite Angaben des Typs, sowie Typkonvertierungenvorgenommen werden.Qualizierungen : erlauben die explizite Angabe eines Typs, dies ist beispielsweise notwendig,wenn keine eindeutige Zuordnung moglich ist.Syntax:type'(expression)Beispiel:type MONTH is (APRIL, MAY, JUNE);type NAMES is (APRIL, JUNE, JUDY);... MONTH'(JUNE) ... fur Monat... NAMES'(JUNE) ... fur NamenKonvertierungen : sind auf Grund der Typbindungen teilweise notwendig. Fur die Standardtypensind Konvertierungsfunktionen vordeniert, bei eigenen Typen mussen siebei Bedarf durch den Benutzer angegeben werden. 5Beispiel: type FOURVAL is ('X', 'L,', 'H', 'Z'); vierwertige Logik, die erstetype VALUE4 is ('X', '0,', '1', 'Z'); :::, die zweite...function CONVERT4VAL (S: FOURVAL) return VALUE4 isbeginKonvertierungsfunktioncase S iswhen 'X' => return 'X';when 'L' => return '0';when 'H' => return '1';when 'Z' => return 'Z';end case;end COVERT4VAL;...process (ABC):::benutzt die Konvertierungsfunktionvariable ABC: FOURVAL;variable XYZ: VALUE4;...XYZ := CONVERT4VAL (ABC);...5 Funktionen sind in Abschnitt 5.2, Seite 29 beschrieben.22
- Seite 1 und 2: VHDL KurzbeschreibungA. MaderUniver
- Seite 3 und 4: 10.1.2 VHDL-Prozesse : : : : : : :
- Seite 5 und 6: 1.2 Design-ParadigmenDer eigentlich
- Seite 7 und 8: Syntax:entity entity name is[generi
- Seite 9 und 10: DatenuBei dieser Beschreibung wird
- Seite 11 und 12: Ublicherweise wird fur die Simulati
- Seite 13 und 14: Integer : Zahlen sind moglichvon ,2
- Seite 15 und 16: Nachfolgend werden einige Eigenscha
- Seite 17 und 18: Es lassen sich auch Arrays von Arra
- Seite 19 und 20: Zugristypen : Wie Zeiger in Program
- Seite 21 und 22: Bereichefunction VEC2INT (INVEC: bi
- Seite 23: Bei der Deklaration konnen die Wert
- Seite 27 und 28: 5 Sequentielle BeschreibungenDie ze
- Seite 29 und 30: Moglichkeiten fur choicesvalue => s
- Seite 31 und 32: Wait : kontrolliert dynamisch die A
- Seite 33 und 34: In dem folgenden Beispiel wird ein
- Seite 35 und 36: Beispiel: function DECR (X: integer
- Seite 37 und 38: 6 SignaleWahrend die VHDL-Elemente
- Seite 39 und 40: Aktivierung der Zuweisung :Obwohl S
- Seite 41 und 42: Untertyp mit Auosungsfunktionsubtyp
- Seite 43 und 44: Beispiel: entity DFLOP is D-Type FF
- Seite 45 und 46: Beispiel: process (A, B) sensitivit
- Seite 47 und 48: | ist aquivalent zu|architecture ..
- Seite 49 und 50: SETRESET---ABABU1! d CXXXXXXXX-! d
- Seite 51 und 52: Beispiel:architecture S of COMPARE
- Seite 53 und 54: Beispiel: configuration ONE of XR2
- Seite 55 und 56: Generische Werte werden bei der Dek
- Seite 57 und 58: 9 Libraries und PackagesEin package
- Seite 59 und 60: Zusatzliche Libraries und Packages
- Seite 61 und 62: { Schranken fur die Flache (area){
- Seite 63 und 64: 10.1.1 Behandlung von Beschreibungs
- Seite 65 und 66: 10.1.2 VHDL-ProzesseDas entscheiden
- Seite 67 und 68: Variablen : Als Zwischenspeicher be
- Seite 69 und 70: Latch mit asynchronem Setprocess (S
- Seite 71 und 72: nur einen Takt : die Benutzung mehr
- Seite 73 und 74: SYNCH: processProze fur synchrone E
- Seite 75 und 76:
ASyntaxbeschreibungAnmerkung:Der An
- Seite 77 und 78:
A.2 Bibliothekseinheitenentity decl
- Seite 79 und 80:
package declarationpackage identier
- Seite 81 und 82:
conguration declarationconfiguratio
- Seite 83 und 84:
port declarationport (identier list
- Seite 85 und 86:
subtype declarationsubtype identier
- Seite 87 und 88:
constant declarationconstant identi
- Seite 89 und 90:
le declarationfile identier : type
- Seite 91 und 92:
subprogram declarationprocedure sub
- Seite 93 und 94:
attribute declarationattribute iden
- Seite 95 und 96:
A.4 Spezikationenattribute specicat
- Seite 97 und 98:
disconnection specicationdisconnect
- Seite 99 und 100:
use clauseuse selected name f, sele
- Seite 101 und 102:
assertion statementassert condition
- Seite 103 und 104:
variable assignment statementtarget
- Seite 105 und 106:
if statementif condition thensequen
- Seite 107 und 108:
loop statement[loop label:][while c
- Seite 109 und 110:
exit statementexit [loop label][whe
- Seite 111 und 112:
null statementnull;C CCCCCCCCCCCCCC
- Seite 113 und 114:
process statement[label:] process [
- Seite 115 und 116:
concurrent assertion statement[labe
- Seite 117 und 118:
component instantiation statementla
- Seite 119 und 120:
A.8 Vordenierte AttributeAttribut P
- Seite 121 und 122:
A.9 Reservierte Bezeichnerabs eleme
- Seite 123:
Index:=, 79, 80, 84, 85, 87, 100, 1