VHDL Kompakt - CES
VHDL Kompakt - CES
VHDL Kompakt - CES
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Syntax<br />
type 〈typeId〉 is ( 〈enumLiteral〉 {,〈enumLiteral〉} );<br />
2.2 komplexe Typen<br />
Dabei können für 〈enumLiteral〉 beliebige Bezeichner (erstes Beispiel) aber auch Literale<br />
(character Literale im zweiten Beispiel) benutzt werden.<br />
Beispiel<br />
type AMPEL is (ROT, GELB, GRUEN); für Ampelsteuerung<br />
type FOURVAL is (’X’, ’0’, ’1’, ’Z’); vierwertige Logik für Simulation<br />
2.2 komplexe Typen<br />
Array Wie in Programmiersprachen bestehen Arrays aus durchnummerierten Elementen<br />
gleichen Typs. Zu den skalaren Standardtypen sind folgende Array-Typen vordefiniert:<br />
string Array Typ zu character — in standard<br />
type string is array (positive range ) of character;<br />
bit_vector Array Typ zu bit — in standard<br />
type bit_vector is array (natural range ) of bit;<br />
std logic vector / std ulogic vector als Array zu std_logic, bzw. std_ulogic<br />
type std_logic_vector is array ( natural range ) of std_logic;<br />
type std_ulogic_vector is array ( natural range ) of std_ulogic;<br />
signed / unsigned Mit den Bitvektoren (bit-, std_logic_vector) sind zwar logische<br />
Operationen möglich, aber Zahlendarstellung und Arithmetik sind nicht definiert.<br />
Dazu wird entweder das Package numeric_std oder numeric_bit benötigt!<br />
type signed is array (natural range ) of std_logic|bit;<br />
type unsigned is array (natural range ) of std_logic|bit;<br />
Zusammen mit den Typen werden die arithmetischen Operatoren für eine Zahlendarstellung<br />
als 2’Komplement- und als vorzeichenlose Zahl festgelegt. Die Operatoren<br />
sind auf Seite 27 beschrieben.<br />
Die Deklaration eigener Array Typen besteht dabei aus der Angabe des Arraytyp-<br />
Namens, der Beschreibung des Index (der Indices bei mehrdimensionalen Arrays)<br />
durch Index-Typ(en) und Index-Bereich(e) und der Angabe des Element-Typs.<br />
Syntax<br />
type 〈typeId〉 is array (〈index〉) of 〈element typeId〉;<br />
〈index〉 ::= 〈range〉 | integer Bereich<br />
〈typeId〉 | Aufzählungstyp<br />
〈typeId〉 range 〈range〉 | allgemeiner Bereich<br />
〈typeId〉 range unbegrenzt, Bereichs bei Obj.-Dekl.<br />
Nachfolgend werden einige Eigenschaften von Arrays anhand von Beispielen genauer<br />
erläutert.<br />
13