Hardware Reference
In-Depth Information
shared variable
StopSimulation:boolean;
das über den Aufruf der Prozedur
procedure
StopSim(msg:string:=
""
);
gesetzt und über die Prozedur
procedure
CheckStopSim(msg:string:=
""
)
abgefragt werden kann. Die Prozedur »CheckStopSim(...)« legt sich, wenn das
Flag gesetzt ist, dauerhaft schlafen und beendet auf diese Weise den aufru-
fenden Prozess. Der im Aufrufparameter »msg« übergebene Text dient als
Debug-Ausgabe. Zusätzlich enthält das Package eine Prozedur zur Nachbil-
dung eines Taktgenerators mit einstellbarer Periodendauer
procedure
TaktGen(
signal
T:
out
std_logic; tP:delay_length);
die im Testrahmen nebenläufig aufzurufen ist und die sich, wenn das Flag
»StopSimulation« gesetzt wird, automatisch dauerhaft schlafen legt.
A.2.3 Texteingabe (Package Tuc.Eingabe)
Der Grunddatentyp für die Texteingabe ist
type tPString is record
str: string(
1
to zeilenlaenge);
--
Zeichenkette
pta, pte: positive;
--
Anfangs- und Endzeiger
Status: tLesestatus;
--
Status der letzen Operation
err_pos: positive;
--
Fehlerposition
err_msg: tString;
--
Fehlermeldung
end record;
Er modelliert ein abräumbares Zeichenband (vgl. Abschnitt 3.3.3). Der Status
ist ein Aufzählungstyp:
type tLesestatus is (X, ok, trunc, err);
(X - ungültig; ok - kein Fehler bei der letzte Operation; truc - abgeschnit-
ten, gelesene Dateizeile war länger als die Zeichenkettenvariable des Zeichen-
bandobjekts; err - Fehler beim Abräumen). Bei einem Abräumfehler wird in
»err_pos« die Textposition, bei der er aufgetreten ist, und in »err_msg« ein
Ausgabetext für die Fehlermeldung, in dem steht, welche Zeichen an dieser
Textposition erwartet wurden, eingetragen. Für ein Zeichenbandobjekt sind
folgende Bearbeitungsmethoden und Funktionen definiert:
procedure
read(
file
f:text; pstr:
out
tPString);
-- (1)
procedure
append(pstr:
inout
tPString; s:string);
-- (2)
procedure
clear(pstr:
inout
tPString);
-- (3)
procedure
assign(pstr:
inout
tPString; s:string);
-- (4)
function
str(pstr: tPString)
return
string;
-- (5)