Hardware Reference
In-Depth Information
Programmierung der Plausibilitätstests für eine Werte- und Zeitüberwachung
erheblich. Ein einfacher Workaround ist eine nebenläufige Signalvektorzuwei-
sung mit dem Standardverzögerungsmodell und der Verzögerungszeit t X vor
der Überwachung:
yy <= y after tX;
Diese Zuweisung löscht alle Impulse mit einer Länge t X und weist allen Bits
des verzögerten Signalvektors ihre Änderungen zeitgleich zu. Das so aufberei-
tete Auswertesignal ist für korrekte Testobjektausgaben frei von ungültigen
Zwischenwerten und dadurch deutlich einfacher zu überwachen.
Die nächste Aufgabe ist die Entwicklung der nebenläufigen Überwachungs-
prozedur. Eingabesignale sind das verzögerte Ausgabesignal der Steuerung
und das Tastensignal. Zusätzliche Eingabeparameter, die als Konstanten über-
geben werden, sind die Zeitparameter aus der Tabelle in Abb. 3.44. Die Über-
wachungsprozedur soll eine Endlosschleife enthalten, damit sie den Kontroll-
fluss während der Simulation nicht mehr abgibt und so Zwischenergebnisse in
lokalen Variablen speichern kann. In der Variablen t WA wird der letzte Zeit-
punkt gespeichert, zu dem die Autos grün hatten, in t WF die Zeit seit der
ersten Tastenbetätigung nach der letzten Phase »Fußgänger grün«, in t z der
Anfangszeitpunkt der aktuellen Ampelphase, in vgy der Vorgänger des aktu-
ellen Ausgabewertes und in Flag, ob seit der letzten Phase »Fußgänger grün«
die Taste bereits betätigt wurde oder nicht.
Die Anweisungsfolge innerhalb der Endlosschleife wird zum Simulations-
beginn und nach jeder Eingabesignaländerung erneut abgearbeitet. Nach einer
Änderung des verzögerten Ampelsignals y wird in einer ersten Fallunterschei-
dung die Dauer der vorherigen Phase auf Zulässigkeit überprüft. Die zweite
Fallunterscheidung kontrolliert für den aktuellen Ausgabewert, ob der vorheri-
ge Ausgabewert ein zulässiger Vorgänger war. Der aktuelle Ausgabewert wird
dabei automatisch mit auf Zulässigkeit überprüft. Beim Wechsel zur Ausgabe
»Autos grün« wird zusätzlich die Zeit seit der letzten Phase »Autos grün« und
bei einem Wechsel in die Phase »Fußgänger grün« die Zeit seit der ersten Tas-
tenbetätigung nach der letzten Phase »Fußgänger grün« auf Überschreitung
des zulässigen Maximalwertes hin getestet. Alle Spezifikationsverletzungen -
auch unzulässige Werte - werden als Textausgaben protokolliert.
I
procedure SpecTest_Ampel( signal y: tAusgabe;
signal Taste:std_logic; ta, tF, tmin,
tmax, twa_max, twf_max:delay_length) is
variable twa, twf, tz:delay_length;
variable vgy: tAusgabe; -- Vorgängerausgabe
variable Flag:boolean; -- Tastendruck erkannt
begin
vgy := y;
wait on y;
loop
if not Flag and rising_edge(Taste) then Flag:=true; twf:=now; end if ;
Ampel-
Auto
T
steuerung
Taste
SpecTest
Fußg.
Ampel(...)
Protokollierung
verletzterSpezifi-
kationsvorgaben
Search WWH ::




Custom Search