Referenz Timing-Diagramm-basierte Traceschrittvorlagen¶
Grundlegendes zu Timing-Diagrammen¶
Timing-Diagramme sind ein grafischer Spezifikationsformalismus und können zur Beschreibung und Überwachung von Signalmustern in Verbindung mit der Ermittlung quantitativer Kennwerte benutzt werden. Auf Timing-Diagrammen basierende Traceschrittvorlagen werden in trace.check mit einem grafischen Editor erstellt und bearbeitet.
Allgemeiner Aufbau von Timing-Diagrammen¶
Timing-Diagramme ermöglichen die Spezifikation komplexer Signalmuster als Abfolgen erlaubter Signalwerte und Signalwertänderungen. Ein Timing-Diagramm besitzt eine zweidimensionale Darstellung und besteht aus mindestens einem Signal. Die Zeit schreitet in positiver Richtung auf der Abszisse (x-Achse) voran. Die Ordinate (y-Achse) enthält die unterschiedlichen, für eine Analyse betrachteten, Signale.
Ein Signal besitzt (fünf- bzw. sechseckig dargestellte) Zustände, welche jeweils mit einem Ausdruck (fett gedruckt, erste Zeile innerhalb des Zustandes) und Sample-Grenzen (hellgrau, zweite Zeile innerhalb des Zustandes) beschriftet sind. Das erste Signal eines Timing-Diagramms wird als Trigger-Signal bezeichnet. Der erste Zustand (immer vorhanden, fünfeckig) des Trigger-Signals wird als Vorzustand bezeichnet, der zweite Zustand (ebenfalls immer vorhanden) dieses Signals heißt Startzustand. Weitere Signale des Diagramms besitzen einen optionalen Vorzustand.
Die durch ein Timing-Diagramm definierte zeitliche Abfolge erlaubter Zustandsübergänge bezieht sich nur auf jeweils ein Signal. Zeitliche Abhängigkeiten zwischen Zustandsübergängen unterschiedlicher Signale können über Zeitbeziehungen formuliert werden. Diese Zeitbeziehungen werden im Diagramm als Pfeile zwischen zwei Zuständen, beschriftet mit Zeitgrenzen in Intervallnotation [min, max], dargestellt.
Signale, Zustände und Zeitbeziehungen werden als Elemente des Diagramms bezeichnet. Alle Elemente und die Parameter besitzen eine optionale Beschreibung, welche jedoch nicht für die Auswertung verwendet wird.
Signale¶
Signale besitzen eindeutige Signalnamen und werden als Rechtecke dargestellt. Ein Signal kann einen Vorzustand (Fünfeck) und beliebig viele Zustände (Sechsecke) beinhalten.
Einen Sonderfall bildet das erste Signal eines Diagramms (Trigger-Signal, orange gefärbt). Dieses Signal ist immer vorhanden und kann nicht gelöscht oder verschoben werden. Es besitzt immer mindestens die zwei Zustände Vorzustand und Startzustand, welche ebenfalls nicht gelöscht oder verschoben werden können.
Info
Beinhaltet ein Signal keine Zustände (leeres Signal), so werden während der Analyseausführung keine Anforderungen an die Messwerte dieses Signals gestellt. Messwerte von leeren Signalen können jedoch innerhalb von Zustandsausdrücken anderer Signale oder innerhalb von Zuweisungsausdrücken angesprochen und für Berechnungen benutzt werden. Das erste Signal kann niemals leer sein.
Zustände¶
Zustände von Signalen werden, mit Ausnahme der fünfeckigen Vorzustände und der fünfeckigen Zustände, welche bis Signalende gelten sollen, als Sechsecke dargestellt. Jeder Zustand besitzt einen Ausdruck und Sample-Grenzen.
Zustandsausdrücke
Eine Anforderung, welche innerhalb eines Zustandes gelten muss, wird durch einen Python-Ausdruck spezifiziert. Als Bezeichner dürfen in dem Python-Ausdruck alle Signalnamen, Parameternamen sowie Namen von Zuweisungen verwendet werden, die für das Timing-Diagramm definiert sind. Falls ein im Ausdruck enthaltenes Signal an einer betrachteten Messstelle keinen Messwert besitzt, wird dort der letzte vor dieser Messstelle liegende Messwert dieses Signals verwendet (siehe Abschnitt Die Bedeutung von Zeitstempeln).
In einem Ausdruck erfolgt der Zugriff auf den aktuellen Signalwert über das Schlüsselwort VALUE bzw. über den Signalnamen (z. B. 100 < VALUE < 300 bzw. 100 < Signalname < 300 ). Das Schlüsselwort TIME bietet Zugriff auf den Zeitstempel des aktuellen Signalwertes.
Für einfache Signalwertvergleiche kann ein am Anfang des Ausdruckes stehendes Schlüsselwort VALUE weggelassen werden. Dadurch können beispielsweise die Ausdrücke „VALUE <= 3“ oder „VALUE == 1“ zu „<= 3“ bzw. „== 1“ vereinfacht werden (möglich für die Vergleichsoperatoren ‚==‘, ‚!=‘, ‚<=‘,‘>=‘, ‚<‘, ‚>‘).
Die zueinander äquivalenten Sonderausdrücke „VALUE == ANY“, „== ANY“ bzw. „ANY“ werden unabhängig vom aktuellen Messwert immer zu True ausgewertet. Dadurch können Zustände erstellt werden, welche keine konkreten Anforderungen spezifizieren und beliebige Signalwerte akzeptieren.
Eine Übersicht über die in Ausdrücken zugelassenen Schlüsselwörter und Bezeichner findet sich im Abschnitt Gültige Schlüsselwörter und Bezeichner.
Info
An Ausdrücke von Zuständen wird nur die Forderung gestellt, dass sie sich zum Zeitpunkt ihrer Auswertung auf „True“ oder „False“ abbilden lassen. Damit müssen sich die Ausdrücke nicht zwangsläufig auf den aktuellen Signalwert bzw. dessen Zeitstempel beziehen. Die Auswertung eines Ausdrucks erfolgt jedoch stets nur beim tatsächlichen Auftreten eines Messwertes des entsprechenden Signals.
Sample-Grenzen
Die Sample-Grenzen (min, max) eines Zustandes definieren, für wie viele aufeinanderfolgende Signalwerte der Zustand mindestens gelten muss und höchstens gelten darf. Für Werte von ‚min‘ und ‚max‘ sind nicht-negative, ganzzahlige Werte zugelassen, wobei für alle Zustände außer den Vorzuständen 1 <= min <= max gelten muss. Für den Vorzustand des Trigger-Signals dürfen ‚min‘ und ‚max‘ auch den Wert 0 annehmen, um auszudrücken, dass ein Diagramm direkt am Tracestart aktiviert werden soll (siehe Abschnitt Aktivierung von Diagrammen). Für alle anderen Vorzustände betragen die Sample-Grenzen immer (1, …). Um eine beliebig große, maximale Sample-Grenze auszudrücken, können rechtsseitig offene Intervalle in der Form (X, …) definiert werden. Weiterhin dürfen Parameternamen als minimale und maximale Sample-Grenzen verwendet werden.
Vorzustände
Vorzustände beschreiben das Signalverhalten unmittelbar vor der Aktivierung eines Timing-Diagramms. Der Vorzustand des Trigger-Signals spielt eine Sonderrolle, da er an der Aktivierung des Timing-Diagramms beteiligt ist. Daher lässt sich dieser nicht entfernen. Für alle anderen Signale ist der Vorzustand optional.
Bei Aktivierung des Diagramms werden für alle angegebenen Vorzustände (ohne den Vorzustand des Trigger-Signals) überprüft, ob diese vor der Aktivierung bereits galten. Ab dem Zeitpunkt der Aktivierung verhalten sich Vorzustände, wie alle normale Zustände. Das heißt, dass ein Signal in seinem Vorzustand bleiben wird, so lange dessen Zustandsausdruck erfüllt ist und der nächste Zustand nicht aktiviert werden kann bzw. kein nächster Zustand definiert wurde. Ein Vorzustand kann somit über den Zeitpunkt der Aktivierung des Timing-Diagramms hinaus aktiv bleiben. Wird für ein Signal kein Vorzustand angegeben, befindet es sich vor der Aktivierung seines ersten Zustandes. Die Aktivierung dieses Zustandes kann, nachfolgend oder zeitgleich mit der Diagrammaktivierung, nur anhand eines echten Messwertes erfolgen. Ein eventuell gehaltener Wert des Signals wird nicht berücksichtigt.
Letzter Zustand eines Signals
Für den letzten Zustand eines Signals kann zusätzlich gefordert werden, dass dessen Ausdruck unter Einhaltung der Sample-Grenzen bis zum Signalende (also bis zum letzten Sample des Signals) gelten muss.
Zeitbeziehungen¶
Zeitbeziehungen dienen der Formulierung zeitlicher Abhängigkeiten zwischen zwei Zuständen und werden im Diagramm als Pfeil vom Ursprungszustand zum Zielzustand dargestellt.
Für Zeitbeziehungen gilt:
Vorzustände und der Startzustand des Diagramms können nicht Ziel einer Zeitbeziehung sein. Vorzustände können außerdem nicht Ursprung einer Zeitbeziehung sein.
Durch die Definition mehrerer Zeitbeziehungen dürfen keine zyklischen Abhängigkeiten entstehen, da diese bei der Auswertung nicht aufgelöst werden können. Die Erstellung zyklischer Abhängigkeiten wird bereits durch den Diagrammeditor verhindert.
Ein Zustand kann nicht Ursprung und Ziel derselben Zeitbeziehung sein.
Innerhalb eines Signals können keine Zeitbeziehungen zu zurückliegenden Zuständen erstellt werden.
Zeitgrenzen
Die Zeitgrenzen [min, max] einer Zeitbeziehung definieren, wie viel Tracezeit minimal und maximal zwischen Ursprung und Ziel der Beziehung vergehen darf. Für ‚min‘ und ‚max‘ sind alle nicht-negativen Gleitkommawerte zugelassen, wobei 0 <= min <= max gelten muss. Eine Zeitbeziehung mit den Zeitgrenzen [0, 0] fordert gleichzeitige Zustandsübergänge und ist daher nur zwischen unterschiedlichen Signalen sinnvoll, da innerhalb eines Signals nicht zwei Zustände gleichzeitig gelten können. Um eine unendlich große maximale Zeitgrenze auszudrücken, können rechtsseitig offene Zeitintervalle in der Form [X, …] definiert werden. Alternativ können statt einer Zahl auch Python-Ausdrücke angegebenen werden. Diese können Berechnungen sowie Parameternamen beinhalten. Zu beachten ist, dass die Ausdrücke von Zeitgrenzen bereits vor der Auswertung des Diagramms einmalig evaluiert werden.
Zuweisungen¶
Für jeden Zustand, jede Zeitbeziehung und jedes Timing-Diagramm können Zuweisungen angelegt werden. Besitzt ein Zustand oder eine Zeitbeziehung eine Zuweisung, so wird dies am Ende der jeweiligen Beschriftung des Elements durch einen Stern (*) gekennzeichnet.
Eine Zuweisung besitzt einen Namen und einen Ausdruck und wird ausgewertet, sobald das die Zuweisung definierende Element erfüllt wird. Dies bedeutet im Einzelnen:
- Für die Zuweisung eines Zustandes:
Die Auswertung erfolgt bei Übergang zu diesem Zustand sowie bei allen nachfolgend eintreffenden Messwerten, welche die Aktivierung des Zustandes aufrechterhalten.
- Für die Zuweisung einer Zeitbeziehung:
Die Auswertung erfolgt bei Übergang in den Zielzustand der Zeitbeziehung (nur möglich, wenn die definierten Zeitgrenzen eingehalten werden).
- Für die Zuweisung eines Diagramms:
Die Auswertung erfolgt, wenn das gesamte Timing-Diagramm erfolgreich im Trace identifiziert wurde.
Die Auswertung einer Zuweisung erfolgt durch Auswertung ihres zugehörigen Ausdrucks. Das Ergebnis dieser Auswertung wird unter dem Namen der Zuweisung abgespeichert und kann nachfolgend in anderen Ausdrücken unter diesem Namen angesprochen und verwendet werden. Zusätzlich zur diagramminternen Verwendung können Zuweisungen als Ausgabesignale benutzt und so anderen Traceschritten einer Episode zur Verfügung gestellt werden (Checkbox Ausgabe bei der Zuweisungs-Definition im Editor).
Zuweisungsausdrücke
Der Ausdruck einer Zuweisung kann, analog zu Ausdrücken von Zuständen, ein beliebiger Python-Ausdruck sein. Als Bezeichner dürfen innerhalb des Ausdrucks alle Signalnamen, Parameternamen sowie Namen von Zuweisungen verwendet werden, die für das Timing-Diagramm definiert sind. Falls ein im Ausdruck enthaltenes Signal an einer betrachteten Messstelle keinen Messwert besitzt, wird dort der letzte vor dieser Messstelle liegende Messwert dieses Signals verwendet (siehe Abschnitt Die Bedeutung von Zeitstempeln).
In einem Ausdruck erfolgt der Zugriff auf den aktuellen Signalwert über das Schlüsselwort VALUE oder den Signalnamen. Das Schlüsselwort TIME bietet Zugriff auf den Zeitstempel des aktuellen Signalwertes. In Zuweisungsausdrücken von Zeitbeziehungen und Diagrammen steht zusätzlich das Schlüsselwort DURATION zur Verfügung, welches den Zugriff auf die tatsächlich gemessene Zeitdauer des definierenden Elementes ermöglicht. Eine Übersicht über die in Ausdrücken zugelassenen Schlüsselwörter und Bezeichner findet sich im nachfolgenden Abschnitt.
Parameter¶
Parameter können genutzt werden, um bestimmte Werte erst bei der Verwendung des Timing-Diagramms als Traceschritt zu setzen. Dadurch wird die Wiederverwendbarkeit erhöht. Die im Timing-Diagramm verwendeten Parameternamen müssen eindeutig sein. Die Änderung des Namens eines referenzierten Parameters (in Sample-Grenzen von Zuständen oder in Zeitgrenzen von Zeitbeziehungen) passt die Referenzen nach Abfrage an. Beim Entfernen eines referenzierten Parameters wird eine Fehlermeldung ausgegeben.
Es werden die Datentypen STRING, INTEGER, FLOAT, PYOBJECT, BOOLEAN unterstützt. Für Zustands-Sample-Grenzen ist INTEGER erforderlich, da es sich um die Anzahl der möglichen Wiederholungen eines Zustands handelt. Für Zeitbeziehungs-Zeitgrenzen sind INTEGER oder FLOAT erforderlich. Bei der Vergabe eines ungültigen Typs für referenzierte Parameter wird eine Fehlermeldung ausgegeben.
Gültige Schlüsselwörter und Bezeichner¶
Die nachfolgende Tabelle fasst die für Ausdrücke sowie Zeit- und Samplegrenzen verwendbaren Schlüsselwörter und Bezeichner zusammen und erklärt deren konkrete Ersetzungen bzw. Auswertungen.
Schlüsselwort / Bezeichner |
Möglich für |
Ersetzung / Auswertung |
Bemerkungen |
|---|---|---|---|
VALUE |
Zustandsausdruck,
Zuweisungsausdruck
|
Aktueller Signalwert |
Liefert immer echten Messwert des Signals |
TIME |
Zustandsausdruck,
Zuweisungsausdruck
|
Zeitstempel des aktuellen Signalwertes |
|
ANY |
Zustandsausdruck |
True |
Äquivalent zu „VALUE == ANY“ und „== ANY“
|
DURATION |
Zuweisungsausdruck von Diagramm und Zeitbeziehungen |
Zeitdauer des Elements |
Diagramm: Dauer zwischen Diagrammaktivierung
und erfolgreichem Diagrammende
Zeitbeziehung: Dauer zwischen Ursprungs-
und Zielzustand der Zeitbeziehung
|
Signalname |
Zustandsausdruck,
Zuweisungsausdruck
|
Wert des entsprechenden Signals |
Eigenes Signal: Immer echter Messwert
Fremdes Signal: Echter Messwert falls
Signalwert aktuell vorhanden, sonst gehaltener
Wert; None wenn noch kein Messwert vorlag
|
Parametername |
Zustand (Ausdruck und
Sample-Grenzen),
Zuweisungsausdruck,
Zeitgrenzen
|
Wert des entsprechenden Parameters |
Als Parameter-Datentypen sind:
|
Zuweisungsname |
Zustandsausdruck,
Zuweisungsausdruck
|
Wert der letzten Auswertung der Zuweisung mit diesem Namen |
Auswertung von Timing-Diagrammen¶
Während der Analyseausführung werden die durch ein Diagramm beschriebenen Signalverläufe gegen eintreffende Messwerte ausgewertet. Dabei wird versucht, das Diagramm anhand der Messwerte von links nach rechts zu durchlaufen, bis alle Signale ihren jeweils letzten Zustand erreicht und dessen Anforderungen erfüllt haben. Die Auswertung gliedert sich dabei im Wesentlichen in die Bestandteile Diagrammaktivierung, Diagrammverarbeitung sowie Diagrammbeendigung und Ergebnisrückmeldung.
Aktivierung von Diagrammen¶
Alle Timing-Diagramme besitzen eine definierte Aktivierungsbedingung, welche durch Vor- und Startzustand (erste zwei Zustände des Trigger-Signals) spezifiziert ist. Jede Messstelle innerhalb des zu analysierenden Traces, welche diese Bedingung erfüllt, aktiviert das Diagramm. Mithilfe der Sample-Grenzen des Vorzustandes lassen sich verschiedene Aktivierungsarten formulieren:
- Aktivierung nur am Traceanfang
Durch Angabe der Sample-Grenzen (0, 0) für den Vorzustand wird ein Diagramm ausschließlich direkt am Traceanfang aktiviert. Genauer: Der Ausdruck des Startzustandes wird genau zum Zeitpunkt des ersten Messwertes des ersten Signals ausgewertet. Ist der Ausdruck an dieser Stelle wahr, wird das Timing-Diagramm aktiviert. (Für diese Aktivierungsart hat der Ausdruck des Vorzustandes keine Bedeutung und wird daher automatisch ausgeblendet.)
- Aktivierung durch Übergang vom Vorzustand zum Startzustand
Sample-Grenzen der Form (min, max) mit min >= 1 für den Vorzustand ermöglichen die Aktivierung von Diagrammen anhand von Wahrheitswerten von Ausdrücken. Um das entsprechende Diagramm zu aktivieren, muss die durch (min, max) spezifizierte Anzahl von Signalwerten den Ausdruck des Vorzustandes erfüllt haben und der aktuelle Signalwert muss den Ausdruck des Startzustandes erfüllen. Ist dies der Fall, wird das Diagramm mit dem Übergang zum Startzustand aktiviert.
- Aktivierung am Traceanfang oder durch Übergang vom Vorzustand zum Startzustand
Die Sample-Grenzen (0, max) für den Vorzustand erlauben sowohl die Aktivierung des Diagrammes am Traceanfang ohne Auswertung des Vorzustandes als auch die Aktivierung durch Übergang vom Vorzustand zum Startzustand.
Bei jeder Aktivierung wird eine neue Diagramminstanz erzeugt und zur Menge der aktiven Diagramminstanzen hinzugefügt. Die erzeugte Diagramminstanz realisiert und protokolliert die Auswertung, beginnend an der entsprechenden Messstelle. Sie besitzt nach der Initialisierung folgenden Zustand:
Der aktive Zustand des ersten Signals ist der Startzustand.
Alle weiteren Signale befinden sich in ihrem Vorzustand (falls definiert) oder vor der Aktivierung ihres ersten Zustandes. Die Aktivierung dieses Zustandes kann, nachfolgend oder zeitgleich mit der Diagrammaktivierung, nur anhand eines echten Messwertes erfolgen. Ein eventuell gehaltener Wert des Signals wird nicht berücksichtigt.
Info
Durch eine sehr allgemeine Formulierung der Aktivierungsbedingung (sehr viele Messwertfolgen erfüllen den Übergang vom Vor- zum Startzustand) kann ein Timing-Diagramm unter Umständen an sehr vielen Messstellen und im ungünstigsten Fall an jeder Messstelle des Trace aktiviert werden. Dies kann in Abhängigkeit von der Größe des Trace zu einer schlechten Analyseperformance führen.
Durch den Parameter MaxParallelInstances kann die maximale Anzahl an gleichzeitig aktiven Instanzen des Diagramms begrenzt werden. Wird die maximale Anzahl überschritten, wird die Auswertung des Traceschrittes mit ERROR abgebrochen und eine Fehlermeldung ausgegeben. Wird für den Parameter der Wert 0 angegeben, liegt keine Begrenzung vor. In regelmäßigen Abständen wird jedoch gewarnt, falls die Anzahl an gleichzeitig aktiven Instanzen steigt. Wird für den Parameter der Wert None angegeben, wird bei mehr als einer gleichzeitig aktiven Diagramminstanz gewarnt, jedoch nicht abgebrochen.
Verarbeitung von Signalwerten in Diagramminstanzen¶
Im Zuge der Analyse nehmen die aktiven Diagramminstanzen die Messwerte jedes Signal-Events entgegen und verarbeiten diese. Dabei wird versucht, die Zustände jedes Signals schrittweise von links nach rechts zu durchlaufen, bis der letzte Zustand jedes Signals aktiviert und gegebenenfalls für die durch dessen Sample-Grenzen angegebene Anzahl von Messwerten gehalten wurde. Der aktive Zustand des Timing-Diagramms wird durch die Menge aller aktiven Zustände seiner Signale beschrieben.
Die Verarbeitung eines Signalwertes innerhalb einer Diagramminstanz wird in Abhängigkeit vom aktiven Zustand des Signals sowie dessen Folgezustand nach folgenden Regeln durchgeführt:
Die minimale Sample-Grenze des aktiven Signalzustandes ist noch nicht erreicht.
Wird der Ausdruck des aktiven Zustandes unter Beachtung des aktuellen Signalwertes erfüllt, bleibt der Zustand aktiv und sein Sample-Zähler wird um Eins inkrementiert. Eventuell vorhandene Zuweisungen des aktiven Zustandes werden erneut ausgewertet. Wird der Ausdruck des aktiven Zustandes nicht erfüllt, scheitert diese Diagramminstanz, da die minimale Sample-Grenze des aktiven Zustands nicht mehr erreicht werden kann.
Die minimale Sample-Grenze des aktiven Signalzustandes ist bereits erreicht und der Ausdruck sowie eventuell vorhandene Zeitbeziehungen des Folgezustandes werden mit dem aktuellen Signalwert erfüllt.
In diesem Fall erfolgt der Übergang vom derzeit aktiven Zustand zu dessen Folgezustand. Eventuell vorhandene Zuweisungen des Folgezustandes werden ausgewertet. Falls der Folgezustand Ursprung einer Zeitbeziehung ist, wird der Startzeitpunkt der Zeitbeziehung mit dem Zeitstempel des aktuellen Signalwertes initialisiert.
Mit dem Signalwert ist kein Übergang zum nächsten Zustand möglich, aber der aktive Zustand kann bezüglich Ausdruck und maximaler Sample-Grenze erfüllt werden.
Der gegenwärtige Zustand des Signals bleibt weiterhin aktiv und sein Sample-Zähler wird um Eins inkrementiert. Eventuell vorhandene Zuweisungen des aktiven Zustandes werden erneut ausgewertet.
Weder der aktive Zustand noch dessen Folgezustand können mit dem Eintreffen des Signalwertes erfüllt werden.
Die Auswertung der Diagramminstanz scheitert und wird abgebrochen, da die spezifizierte Zustandsfolge des Signals nicht durchlaufen werden kann.
Der aktive Zustand ist der letzte Zustand eines Signals.
Der letzte Zustand eines Signals muss nach seiner Aktivierung mindestens für die für seine untere Sample-Grenze angegebene Anzahl von Signalwerten erfüllt werden.
Ist dies der Fall, so ist die Erfüllung dieses Signals von der oberen Sample-Grenze dieses Zustandes sowie vom Vorhandensein der optionalen Eigenschaft „Letzter Zustand bis Signalende“ abhängig. Dabei werden vier Fälle unterschieden:
Obere Sample-Grenze gleich „…“
Obere Sample-Grenze ungleich „…“
Signal hat nicht Eigenschaft„Letzter Zustand bis Signalende“Das Signal wird bereits mit dem Erreichen der unteren Sample-Grenze erfüllt.
Das Signal wird erfüllt, wenn vor oder mit dem Erreichen der oberen Sample-Grenze das Signal endet (d. h., kein weiteres Sample des Signals vorliegt) oder der Ausdruck des Zustandes mit dem nächsten Messwert nicht mehr erfüllt wird.
Signal hat Eigenschaft„Letzter Zustand bis Signalende“Das Signal wird erfüllt, wenn der Ausdruck des Zustandes bis zum Signalende (d. h., bis zum letzten Sample des Signals) gilt.
Das Signal wird erfüllt, wenn vor oder mit dem Erreichen der oberen Sample-Grenze das Signal endet (d. h., kein weiteres Sample des Signals vorliegt).
Info
Erfüllt ein eintreffender Messwert sowohl den derzeit aktiven Zustand eines Signals als auch dessen Folgezustand, so wird immer der Übergang in den Folgezustand durchgeführt, auch wenn dadurch eventuell die spätere erfolgreiche Beendigung des Diagramms verhindert wird.
Beendigung von Diagramminstanzen¶
Die Auswertung einer Diagramminstanz endet erfolgreich, wenn alle Signale von links nach rechts entsprechend den Wert-, Zeit- und Sampleanzahlvorgaben durchlaufen wurden. Damit ist das zugrundeliegende Timing-Diagramm von dem Traceabschnitt zwischen Aktivierung und Beendigung der Diagramminstanz erfüllt. Eventuell vorhandene Zuweisungen auf Diagrammebene werden bei erfolgreicher Diagrammbeendigung ausgewertet.
Die Auswertung einer Diagramminstanz scheitert, wenn mindestens ein Vorzustand nicht erfüllt wird oder für mindestens ein Signal mit dem eintreffenden Messwert die vom aktuellen Diagrammzustand gestellten Wert- bzw. Zeitanforderungen verletzt werden. In diesem Fall wird die weitere Auswertung dieser Diagramminstanz abgebrochen. Zuweisungen auf Diagrammebene werden für gescheiterte Diagramme nicht ausgewertet.
Auswertung und Fehlerrückmeldung¶
Für Timing-Diagramme existieren zwei Parameter, welche die Bewertung des Ergebnisses und die Anzeige von Fundstellen im Report beeinflussen.
- MinMaxSuccessfulInstances
Gibt an, wie oft das Timing-Diagramm erfolgreich durchlaufen soll, d. h., wie viele erfolgreiche Instanzen erwartet werden (Anzahl „SUCCESSFUL instances“). Der Wert kann eine Zahl oder ein Bereich sein (zwei durch Komma getrennte Werte in Klammern). Weicht die tatsächliche Anzahl von der Erwartungshaltung ab, erhält der Traceschritt die Bewertung „FAILED“. Als Wert kann auch None angegeben werden. In diesem Fall wird die jeweilige Grenze nicht geprüft.
- AllowFailedInstances
Gibt an, ob das Timing-Diagramm fehlschlagen darf, d. h., ob die Anzahl der fehlgeschlagenen Instanzen („FAILED instances“) größer als 0 sein darf. Der Wert muss ein Wahrheitswert (True oder False) sein.
Die Bewertung des Traceschrittes in Abhängigkeit der Parameter ist in der folgenden Übersicht dargestellt.
Über die Optionen Maximale Anzahl und Mindestabstand in der Traceschrittkonfiguration kann angegeben werden, wie viele gefundene Instanzen zurückgemeldet werden sollen bzw. wie viel Zeit nach einer gemeldeten Instanz mindestens vergehen muss, bevor die nächste gefundene Instanz gemeldet wird. Instanzen, die innerhalb dieses Mindestabstands liegen, werden dennoch im Report angezeigt, falls sie eine schlechtere Bewertung haben als die bisher am schlechtesten bewertete, im Report angezeigte Instanz.
Detaillierte Ergebnisdatei¶
Zusätzlich zum internen Testreport erstellt trace.check eine detaillierte Ergebnisdatei im XML-Format im jeweiligen Reportverzeichnis (Datei mit Endung .xml im dortigen Unterverzeichnis). Die Ergebnisdatei enthält die konkret ermittelten Zeit- und Signalwerte sowie die Ergebnisse interner Wertzuweisungen für jedes identifizierte Diagramm und alle darin enthaltenen Diagrammelemente.