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.
2.2 komplexe Typen<br />
Dateitypen Die Sprache <strong>VHDL</strong> erlaubt die Deklaration beliebiger Dateitypen und -Objekte,<br />
sowie den Lese- und Schreibzugriff auf diese Dateien. Die Handhabung des Dateizugriffs<br />
hat sich in den Standards ’87 [IEEE87] und ’93 [IEEE93a] allerdings geändert,<br />
außerdem ist die Implementation an den Simulator gebunden — die Dateien sind i.A.<br />
nicht portabel.<br />
Syntax<br />
type 〈typeId〉 is file of 〈base typeId〉;<br />
Deshalb sollte man Textdateien benutzen, für deren Handhabung das package TEXTIO<br />
vordefiniert ist. Dort sind die Datentypen text und line deklariert, sowie Funktionen<br />
die den (aus Programmiersprachen gewohnten) Zugriff auf Textdateien erlauben;<br />
so ist es beispielsweise möglich Testvektoren aus einer Datei einzulesen und in der<br />
Simulation zu benutzen.<br />
TEXTIO<br />
type line is access string; Typen<br />
type text is file of string;<br />
file input : text open read_mode is "STD_INPUT"; Dateien<br />
file output : text open write_mode is "STD_OUTPUT";<br />
read (〈lineVar〉, 〈vhdlObj〉 [,〈status〉 ]);<br />
readline (〈fileObj〉, 〈lineVar〉);<br />
write (〈lineVar〉, 〈vhdlObj〉 [, right|left, 〈width〉 ]); |<br />
write (〈lineVar〉, 〈realObj〉 [, right|left, 〈width〉, 〈digits〉 ]); |<br />
write (〈lineVar〉, 〈timeObj〉 [, right|left, 〈width〉, 〈unit〉 ]);<br />
writeline (〈fileObj〉, 〈lineVar〉);<br />
endfile (〈fileObj〉) : boolean<br />
zusätzlich in ieee.std_logic_textio<br />
read (〈lineVar〉, 〈vhdlObj〉 [,〈status〉 ]); bin.<br />
hread (〈lineVar〉, 〈vhdlObj〉 [,〈status〉 ]); hex.<br />
oread (〈lineVar〉, 〈vhdlObj〉 [,〈status〉 ]); oct.<br />
write (〈lineVar〉, 〈vhdlObj〉 [, right|left, 〈width〉 ]);<br />
hwrite (〈lineVar〉, 〈vhdlObj〉 [, right|left, 〈width〉 ]);<br />
owrite (〈lineVar〉, 〈vhdlObj〉 [, right|left, 〈width〉 ]);<br />
17