05.07.2013 Aufrufe

VHDL Kompakt - CES

VHDL Kompakt - CES

VHDL Kompakt - CES

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!