116
2 Spezifikation und Modellierung
Initialisierungsphase, danach folgt die wiederholte Ausführung von Prozessen,
die in der Beschreibung des Modells enthalten sind. Jede solche Wiederholung heißt
Simulationszyklus. In jedem Zyklus werden die Werte aller Signale in der ProzessBeschreibung berechnet. Falls aufgrund dieser Ergebnisse ein Ereignis auf einem
bestimmten Signal stattfindet, so werden Prozesse, die auf dieses Signal sensitiv
sind, aufgeweckt und innerhalb desselben Simulationszyklus ausgeführt.”
Die Initialisierungsphase berücksichtigt die angegebenen Initialisierungswerte
für Signale und Variablen und führt jeden Prozess einmal aus. Sie wird im Standard
wie folgt beschrieben20:
• „Der treibende Wert und der effektive Wert jedes explizit deklarierten Signals
werden berechnet und der aktuelle Wert des Signals wird auf den effektiven
Wert gesetzt. Es wird angenommen, dass das Signal diesen Wert bereits für eine
unendlich lange Zeit vor dem Start der Simulation hatte. ...
• Jeder ... Prozess des Modells wird ausgeführt, bis er suspendiert wird. ...
• Die Zeit des nächsten Simulationszyklus T n (der in diesem Fall der erste Simulationszyklus ist) wird anhand der Regeln von Schritt e des Simulationszyklus
(s.u.) berechnet.”
Jeder Simulationszyklus beginnt damit, dass die aktuelle Zeit auf denjenigen
nächsten Zeitpunkt gesetzt wird, an dem Änderungen berücksichtigt werden müssen.
Diese Zeit T n wurde entweder während der Initialisierungsphase oder während der
letzten Ausführung eines Simulationszyklus berechnet. Die Simulation wird beendet,
wenn die aktuelle Zeit den Maximalwert T I M E ′ HIGH erreicht. Im Originaldokument wird der Simulationszyklus wie folgt beschrieben: „Ein Simulationszyklus
besteht aus den folgenden Schritten:
a) Die aktuelle Zeit T c wird auf T n gesetzt. Die Simulation ist beendet, wenn T =
T I M E ′ HIGH ist und wenn es keine aktuellen Treiber oder aufgeweckte Prozesse
zur Zeit T n gibt.
b) Jedes aktive explizite Signal im Modell wird aktualisiert. (Daraus können sich
Ereignisse ergeben)” ...
Im vorhergehenden Zyklus wurden neue zukünftige Werte für einige der Signale
berechnet. Wenn T c dem Zeitpunkt entspricht, an dem diese Werte gültig werden, werden sie jetzt zugewiesen. Man beachte, dass neue Werte für Signale
niemals sofort innerhalb des Simulationszyklus zugewiesen werden. Sie werden
frühestens vor dem nächsten Simulationszyklus zugewiesen. Signale, die ihren
Wert verändern, verursachen sogenannte Ereignisse, die ihrerseits wiederum die
Ausführung von Prozessen anstoßen können, die auf diese Signale sensitiv sind.
c) „Jeder Prozess P, der gerade auf ein Signal S sensitiv ist, wird aufgeweckt, wenn
in diesem Simulationszyklus ein Ereignis auf dem Signal S stattgefunden hat.”
d) „Jeder ... Prozess, der im aktuellen Simulationszyklus aufgeweckt wurde, wird
solange ausgeführt, bis er suspendiert wird.”
20 Implizit deklarierte Signale und sogenannte „ postponed processes“, die in der 1997er-Version
von VHDL eingeführt wurden, werden hier nicht betrachtet.
2 Spezifikation und Modellierung
Initialisierungsphase, danach folgt die wiederholte Ausführung von Prozessen,
die in der Beschreibung des Modells enthalten sind. Jede solche Wiederholung heißt
Simulationszyklus. In jedem Zyklus werden die Werte aller Signale in der ProzessBeschreibung berechnet. Falls aufgrund dieser Ergebnisse ein Ereignis auf einem
bestimmten Signal stattfindet, so werden Prozesse, die auf dieses Signal sensitiv
sind, aufgeweckt und innerhalb desselben Simulationszyklus ausgeführt.”
Die Initialisierungsphase berücksichtigt die angegebenen Initialisierungswerte
für Signale und Variablen und führt jeden Prozess einmal aus. Sie wird im Standard
wie folgt beschrieben20:
• „Der treibende Wert und der effektive Wert jedes explizit deklarierten Signals
werden berechnet und der aktuelle Wert des Signals wird auf den effektiven
Wert gesetzt. Es wird angenommen, dass das Signal diesen Wert bereits für eine
unendlich lange Zeit vor dem Start der Simulation hatte. ...
• Jeder ... Prozess des Modells wird ausgeführt, bis er suspendiert wird. ...
• Die Zeit des nächsten Simulationszyklus T n (der in diesem Fall der erste Simulationszyklus ist) wird anhand der Regeln von Schritt e des Simulationszyklus
(s.u.) berechnet.”
Jeder Simulationszyklus beginnt damit, dass die aktuelle Zeit auf denjenigen
nächsten Zeitpunkt gesetzt wird, an dem Änderungen berücksichtigt werden müssen.
Diese Zeit T n wurde entweder während der Initialisierungsphase oder während der
letzten Ausführung eines Simulationszyklus berechnet. Die Simulation wird beendet,
wenn die aktuelle Zeit den Maximalwert T I M E ′ HIGH erreicht. Im Originaldokument wird der Simulationszyklus wie folgt beschrieben: „Ein Simulationszyklus
besteht aus den folgenden Schritten:
a) Die aktuelle Zeit T c wird auf T n gesetzt. Die Simulation ist beendet, wenn T =
T I M E ′ HIGH ist und wenn es keine aktuellen Treiber oder aufgeweckte Prozesse
zur Zeit T n gibt.
b) Jedes aktive explizite Signal im Modell wird aktualisiert. (Daraus können sich
Ereignisse ergeben)” ...
Im vorhergehenden Zyklus wurden neue zukünftige Werte für einige der Signale
berechnet. Wenn T c dem Zeitpunkt entspricht, an dem diese Werte gültig werden, werden sie jetzt zugewiesen. Man beachte, dass neue Werte für Signale
niemals sofort innerhalb des Simulationszyklus zugewiesen werden. Sie werden
frühestens vor dem nächsten Simulationszyklus zugewiesen. Signale, die ihren
Wert verändern, verursachen sogenannte Ereignisse, die ihrerseits wiederum die
Ausführung von Prozessen anstoßen können, die auf diese Signale sensitiv sind.
c) „Jeder Prozess P, der gerade auf ein Signal S sensitiv ist, wird aufgeweckt, wenn
in diesem Simulationszyklus ein Ereignis auf dem Signal S stattgefunden hat.”
d) „Jeder ... Prozess, der im aktuellen Simulationszyklus aufgeweckt wurde, wird
solange ausgeführt, bis er suspendiert wird.”
20 Implizit deklarierte Signale und sogenannte „ postponed processes“, die in der 1997er-Version
von VHDL eingeführt wurden, werden hier nicht betrachtet.
