Hardware Reference
In-Depth Information
Aufgabe 3.10
Schreiben Sie für den Aufzählungstyp
type
tZustand
is
(Idle, Start, Run, Ready);
eine Get-Prozedur und eine Str-Funktion. Nutzen Sie dazu die entsprechenden
Unterprogramme aus den Packages »Tuc.Eingabe« und »Tuc.Ausgabe« als
Vorbild oder als Bestandteile.
Aufgabe 3.11
Schreiben Sie für den Untertyp
subtype
tByte
is
tUnsigned(
7
downto
0
);
eine Funktion
function
str_hex(x: tByte)
return
string;
die für ungültige Werte die Zeichenkette »XX« und sonst eine Textdarstellung
durch zwei Hexadezimalziffern zurückgibt.
Aufgabe 3.12
Schreiben Sie eine nebenläufige Prozedur
procedure
Protokoll(
signal
x:std_logic_vector;
file
f:text);
die zum Simulationsbeginn und bei jeder Werteänderung von »x« den Ände-
rungszeitpunkt, gefolgt von einem Doppelpunkt und dem Wert von
x
in die
geöffnete Datei des Dateiobjekts »f« schreibt.
Aufgabe 3.13
Gegeben sei der Datentyp
type
tByteFeld
is array
(natural
range
<>)
of
std_logic_vector(
7
downto
0
);
a) Schreiben Sie eine Initialisierungsfunktion
function
Init(Dateiname:string; N:natural)
return
tByteFeld;
die aus einer Datei, in der in jeder Zeile eine Dezimalzahl im Bereich
von 0 bis 255 steht, die ersten N Werte einliest, in einen 8-Bit-Vektor
umwandelt, fortlaufend in ein Byte-Feld einträgt und zum Abschluss das
Byte-Feld zurückgibt.
b) Schreiben Sie eine Vereinbarung einer Konstanten »ROM« für ein 1024
Bytes großes Feld, das mit dem Inhalt einer Datei »Daten.txt« initialisiert
wird.