Hardware Reference
In-Depth Information
real:=real'low/
10.0
; wmax:real:=real'high/
10.0
);
-- (2)
procedure
read(promt:string; w:
out tTyp
);
-- (3)
(1,2) Einlesen von Zahlenwerten mit einstellbarer Wertebereichsbeschrän-
kung.
(3) Einlesen der Werte für Datenobjekte vom Typ boolean, std_ulogic
(Basistyp von std_logic), bit, bit_vector und std_logic_vector.
Die folgende Prozedur hält die Simulation bis zum Betätigen der Eingabetaste
an:
procedure
read;
Die Prozedur
procedure
CheckExit(pstr:
inout
tPString);
dient zum kontrollierten Simulationsabbruch bei einer Dialogeingabe. Wenn
sie am Anfang des Lesebands eines der Symbole »exit«, »Exit«, »stop«,
»Stop«, »halt« oder »Halt« findet, ruft sie die Funktion »StopSim« aus dem
Package »Tuc.StopSim_pack« auf, die das Flag für die Simulationsbeendi-
gung setzt und den Prozess, der »StopSim« aufruft, schlafen legt.
A.2.4 Arithmetische Operationen (Tuc.Numeric_Sim und
Tuc.Numeric_Synth)
Beide Packages definieren die Datentypen
type
tUnsigned
is array
(natural
range
<>)
of
std_logic;
type
tSigned
is array
(natural
range
<>)
of
std_logic;
und überladen für diese die arithmetischen und logischen Operatoren. Für die
Simulation werden die arithmetischen und logischen Operatoren so überladen,
dass für ungültige Eingabewerte der Ergebniswert »ungültig« zurückgegeben
wird. Sonst wird über die standardisierten Konvertierungsfunktionen dieselbe
Operatorfunktion wie für den Typ unsigned bzw. signed aus dem standar-
disierten Package ieee.numeric_bit aufgerufen und das zurückkonvertierte
Ergebnis zurückgegeben. In der Package-Version für die Synthese fehlen die
Sonderbehandlungen für ungültige Operanden und Ergebnisse, weil diese in
einer Synthesebeschreibung nicht zulässig sind. Beim Übergang von einer Si-
mulationsbeschreibung mit ungültigen Werten zu einer Synthesebeschreibung
ist das Package auszutauschen.
• Konvertierungsfunktionen nach und von integer:
function
int(x: tUnsigned)
return
integer;
function
int(x: tSigned)
return
integer;
function
to_tUnsigned(x:integer; n:natural)
return
tUnsigned;
function
to_tSigned(x:integer; n:natural)
return
tSigned;
(
n - Bitanzahl des Rückgabewertes)