VHDL Kompakt - CES
VHDL Kompakt - CES
VHDL Kompakt - CES
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
2. Datentypen<br />
behandelt.<br />
Beispiel<br />
type WORD is array (0 to 3) of bit; 4 bit Zeile<br />
type MEMORY is array (0 to 7) of WORD; 8 × 4 bit Array<br />
...<br />
constant ROM: MEMORY := ((’0’,’0’,’0’,’0’),<br />
(’0’,’0’,’0’,’1’),<br />
...<br />
(’0’,’1’,’1’,’1’));<br />
variable DATA : WORD;<br />
variable DATA_BIT : bit;<br />
variable ADDR, INDEX : integer;<br />
...<br />
DATA := ROM(ADDR);<br />
DATA_BIT := ROM(ADDR)(INDEX);<br />
Array Untertypen lassen sich zu bestehenden Arrays, bzw. zu unbegrenzten Arrays<br />
definieren.<br />
Beispiel<br />
subtype BYTE is bit_vector (7 downto 0); unbegrenzter Typ bit_vector<br />
Record Elemente verschiedener Typen (Skalare oder zusammengesetzte Typen) können mit<br />
Hilfe von Records zusammengefasst werden, um abstrakte Datenmodelle zu bilden.<br />
Die einzelnen Felder des Records werden über die Namen dereferenziert.<br />
16<br />
Syntax<br />
type 〈typeId〉 is record<br />
{〈fieldId〉 : 〈typeId〉;}<br />
end record [ 〈typeId〉 ];<br />
Beispiel<br />
type TWO_DIGIT is record Zahlen von −99 bis +99<br />
SIGN : bit;<br />
MSD : integer range 0 to 9;<br />
LSD : integer range 0 to 9;<br />
end record TWO_DIGIT;<br />
...<br />
process ...<br />
variable ACNT, BCNT: TWO_DIGIT;<br />
begin<br />
ACNT.SIGN := ’1’; Zugriff auf Felder<br />
ACNT.MSD := 1;<br />
ACNT.LSD := ACNT.MSD;<br />
...<br />
BCNTR := TWO_DIGIT’(’0’,3,6); Aggregat, Typ-qualifiziert<br />
...