SignalTap* II Zustandsbasierter Auslösen-Fluss

author-image

Von

Der zustandsbasierte Auslösen-Flow ermöglicht es Ihnen, einen benutzerdefinierten Triggering-Flow zu definieren, um Ihre Auslösensbedingungen zu organisieren. Diese Beispiele zeigen Vorlagen für gängige Triggering-Flow-Szenarien und veranschaulichen verschiedene Szenarien, bei denen der zustandsbasierte auslösende Fluss nützlich ist. Für alle diese Beispiele können Sie die Flussbeschreibung direkt in das Register SignalTap II State-Based Trigger Flow einfügen, indem Sie den Display-Modus Alle Status in einem Fenster verwenden und die Beschreibung entsprechend Ihrem Debugging-Szenario ändern.

Auslösen eines Ereignisses, das über 5 Taktzyklen hinausläuft

Setup for Trigger Condition

Eine grundlegende Auslösebedingung wird in der Setup-Registerkarte mit dem gewünschten Wert definiert. TrigCond1 in der folgenden Abbildung ist ein Alias für den Wert AA setup using a Mnemonic table setup.

Zustandsbasierte Auslösende Flussbeschreibung

Stellen Sie sicher, dass die Bedingung mit der Auslösen-Aktion zuerst ist,

da bedingte Anweisungen prioritätsbasiert sind.

wenn (c1 >= 5)

Auslöser;

else if (! bedingung1)

Erhöhung c1;

else if (Bedingung1 && c1 < 5)

c1 zurücksetzen;

Datenanalyseergebnis

Auslöser für Event-Allee mit weniger als 5 Taktzyklen

Setup for Trigger Condition

Eine grundlegende Auslösebedingung wird in der Setup-Registerkarte mit dem gewünschten Wert definiert. TrigCond1 in der folgenden Abbildung ist ein Alias für den Wert AA setup using a Mnemonic table setup.

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

if (Bedingung1 && c1 > 0 && c1 < 5)

Auslöser;

else if ( ! condition1 && & c1 < 6)

Erhöhung c1;

else if (Bedingung1 && c1 > 5)

c1 zurücksetzen;

Im Falle einer langen Sequenz, bei der Bedingung1 nicht auftritt, wurde die "Warnbedingung" c1 <6 in der zweiten else wenn Bedingungsaussage hinzugefügt, um zu verhindern, dass der Zähler nicht verwendet wird.

Datenanalyseergebnis

Auslöser beim 5. Auftreten eines Gruppenwertes

Setup for Trigger Condition

Eine grundlegende Auslösebedingung wird in der Setup-Registerkarte mit dem gewünschten Wert definiert. In der folgenden Abbildung ist TrigCond1 ein Alias für den Wert AA setup unter Verwendung einer Mnemonic Table Setup

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

wenn (c1 >= 5)

Auslöser;

else if (Bedingung1)

Erhöhung c1;

Datenanalyseergebnis

Auslöser beim 5. Übergang eines Gruppenwertes

Methode 1: Einsatz eines edge-sensitiven Triggers

Setup for Trigger Condition

In diesem Fall können wir eine edge-sensitive Trigger-Bedingung definieren, um alle Busübergänge zum gewünschten Gruppenwert zu erkennen. Wir benötigen eine Edge-Erkennung für jedes Bit auf unserem Datenbus, das logischerweise ANDed ist, mit einem Vergleich zu unserem gewünschten Gruppenwert. In diesem Fall ist eine erweiterte Auslösebedingung erforderlich. Die Einrichtung über den erweiterten Trigger-Bedingungseditor wird unten angezeigt.

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

wenn (c1 >= 5)

Auslöser;

else if (Bedingung1)

Erhöhung c1;

Datenanalyseergebnis

Methode 2: Verwendung eines einfachen Auslösers und des zustandsbasierten Auslösensflusses

Setup for Trigger Condition

Da die Einrichtung einer erweiterten Triggerbedingung für einen großen Buswert umständlich sein kann, verwendet diese alternative Methode einen grundlegenden Auslöser und verwendet den zustandsbasierten auslösenden Fluss, um den Übergang des Bus zum gewünschten Gruppenwert zu erkennen.

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

if (Bedingung1)

Beginnen

Erhöhung c1;

goto ST2;

Ende

Zustand ST2:

wenn (c1 >= 5)

Auslöser;

Wartezustand; Bleiben Sie in diesem Zustand, bis Bedingung 1 falsch ist, um sie zu ignorieren

alle Vorkommnisse von Condition1, die keine Busübergänge sind

else if (! bedingung1)

Beginnen

goto ST1;

Ende

Datenanalyseergebnis

Beachten Sie, dass im Vergleich zur ersten Methode ein geringfügiger Unterschied bei der Erfassung von Daten besteht. In diesem Fall wird ein level sensitiver Trigger für die Triggerbedingung verwendet. Wenn der Buswert zu Beginn der Datenanalyse mit dem gewünschten Gruppenwert ge parkt wird, schließt diese Methode den Gruppenwert in die Anzahl ein. Da bei der ersten Methode nur ein Bus-Übergang zum gewünschten Gruppenwert zählt, würde die erste Methode das erste Auftreten des Gruppenwertes ignorieren, wenn der Gruppenwert bereits zu Beginn der Übernahme auf dem Bus ge parkt ist.

Trigger After Condition1 folgt auf Bedingung 2

Setup for Trigger Condition

Drei grundlegende Auslösebedingungen werden in der Setup-Registerkarte auf die gewünschten Werte festgelegt. Die ersten beiden Auslösebedingungen sind auf die gewünschten Gruppenwerte eingestellt. Die dritte Auslösebedingung ist dafür gedacht, eine Art von Leerlauftransaktion im Bus zwischen der ersten und zweiten Bedingung zu erfassen. Sie können diese Auslösebedingung als "egal" setzen, wenn es besser ist. Beachten Sie die Verwendung von Mnemonics für TrigCond1, TrigCond2 und IDLE.

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

if (Bedingung1)

goto ST2;

Zustand ST2:

if (Bedingung1 || Bedingung3)

goto ST2;

else if (Bedingung2)

goto ST3;

else if (! bedingung2)

goto ST1;

Zustand ST3:

Auslöser;

Datenanalyseergebnis

Trigger on Condition1 unmittelbar gefolgt von Bedingung2

Setup for Trigger Condition

Zwei grundlegende Auslösebedingungen sind für die gewünschten Gruppenwerte definiert. Beachten Sie erneut die Verwendung von Mnemonics für TrigCond1 und TrigCond2.

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

if (Bedingung1)

goto ST2;

Zustand ST2:

if (Bedingung1)

goto ST2;

else if (Bedingung2)

Auslöser;

oder

goto ST1;

Datenanalyseergebnis

Auslöser unter Bedingung2, die nicht zwischen Bedingung1 und Bedingung3 auftritt

Setup for Trigger Condition

Drei grundlegende Auslösebedingungen sind auf die gewünschten Gruppenwerte definiert. Beachten Sie noch einmal die Verwendung von Mnemonics.

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

if (Bedingung1)

goto ST2;

Zustand ST2:

if (Bedingung3)

goto ST4;

else if (! bedingung2)

goto ST3;

oder

goto ST1;

Zustand ST3:

if (Bedingung3)

goto ST4;

Zustand ST4:

Auslöser;

Datenanalyseergebnis

Auslöser beim 5. auftreten von Zustand1

Setup for Trigger Condition

Eine grundlegende Auslösebedingung wird in der Setup-Registerkarte mit dem gewünschten Wert definiert. TrigCond1 in der folgenden Abbildung ist ein Alias für den Wert AA setup using a Mnemonic table setup.

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

wenn (c1 >= 5)

Auslöser;

else if (Bedingung1)

Erhöhung c1;

else if (! bedingung1)

c1 zurücksetzen;

Datenanalyseergebnis

Auslöser nach Sequenzverletzung: Bedingung1-> Condition2-> Condition3-> Bedingung4

Setup for Trigger Condition

Vier grundlegende Auslösebedingungen sind auf die gewünschten Sequenzwerte eingestellt. Mnemonics wird für alle vier angezeigten Auslösebedingungen verwendet.

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

if (Bedingung1)

goto ST3;

else if (Bedingung2)

goto ST4;

else if (Bedingung3)

goto ST5;

else if (Bedingung4)

goto ST2;

oder

Auslöser;

Zustand ST2:

if (Bedingung4)

goto ST2;

else if (Bedingung1)

goto ST3;

oder

Auslöser;

Zustand ST3:

if (Bedingung1)

goto ST3;

else if (Bedingung2)

goto ST4 ;

oder

Auslöser;

Zustand ST4:

if (Bedingung2)

goto ST4;

else if (Bedingung3)

goto ST5;

oder

Auslöser;

Zustand ST5:

if (Bedingung3)

goto ST5;

else if (Bedingung4)

goto ST2;

oder

Auslöser;

Datenanalyseergebnis

Auslöser bei einer Kantenfolge

Setup for Trigger Condition

Drei randempfindliche grundlegende Auslösebedingungen sind für die gewünschte Sequenz eingerichtet. Dieses Beispiel sucht nach einer ansteigenden Kante auf Kanal 1, einer herabfallenden Kante auf Kanal 2, gefolgt von einer ansteigenden Kante auf Kanal 3.

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

if (Bedingung1)

goto ST2;

Zustand ST2:

if (Bedingung2)

goto ST3;

Zustand ST3:

if (Bedingung3)

Auslöser;

oder

goto ST1;

Datenanalyseergebnis

Trigger on Condition1 gefolgt von Condition2 nach 5 Taktzyklen

Setup for Trigger Condition

Zwei grundlegende Auslösebedingungen sind für die gewünschten Gruppenwerte definiert. Beachten Sie erneut die Verwendung von Mnemonics für TrigCond1 und TrigCond2.

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

if (Bedingung1)

goto ST2;

Zustand ST2:

if (Bedingung1)

goto ST2;

else if (! bedingung2)

Erhöhung c1;

else if (bedingung2 && c1 >= 5)

Auslöser;

else if (Bedingung2 && c1 < 5)

goto ST1;

Datenanalyseergebnis

Trigger on Condition1 gefolgt von Condition2 innerhalb von 5 Proben

Setup for Trigger Condition

Zwei grundlegende Auslösebedingungen sind für die gewünschten Gruppenwerte definiert. Beachten Sie erneut die Verwendung von Mnemonics für TrigCond1 und TrigCond2.

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

if (Bedingung1)

goto ST2;

Zustand ST2:

if (Bedingung1)

goto ST2;

else if (! bedingung2)

Erhöhung c1;

else if (Bedingung2 && c1 <= 5)

Auslöser;

else if (Bedingung2 && c1 > 5)

goto ST1;

Datenanalyseergebnis

Trigger on Condition1 Nicht gefolgt von Condition2 innerhalb von 5 Proben

Setup for Trigger Condition

Zwei grundlegende Auslösebedingungen sind für die gewünschten Gruppenwerte definiert. Beachten Sie erneut die Verwendung von Mnemonics für TrigCond1 und TrigCond2.

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

if (Bedingung1)

goto ST2;

Zustand ST2:

wenn (c1 == 5)

Auslöser;

else if (Bedingung1)

goto ST2;

else if (! bedingung2)

Erhöhung c1;

Datenanalyseergebnis

Auslöser nach 5 Übergängen

Setup for Trigger Condition

Dieses Beispiel benötigt eine Auslösebedingung, um alle Wechselaktivitäten auf dem überwachten Bus zu erfassen. Da eine OR-Bedingung erforderlich ist, ist eine erweiterte Auslösebedingung erforderlich.

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

if (c1 == 5)

Auslöser;

else if (! bedingung1)

c1 zurücksetzen;

else if (Bedingung1)

Erhöhung c1;

Datenanalyseergebnis

Auslöser, wenn Bedingung1 weniger als 5-mal zwischen Bedingung2 und Bedingung3 auftritt

Setup for Trigger Condition

Dieses Beispiel erfordert drei edge-sensitive Trigger-Bedingungen mit jeder Trigger-Bedingung, die einen Vergleich zum gewünschten Gruppenwert enthält. Dies kann mit dem erweiterten Trigger-Bedingungseditor erfolgen. Die folgende Abbildung zeigt ein Beispiel für eine der drei randempfindlichen Auslösebedingungen.

Zustandsbasierte Auslösende Flussbeschreibung

Zustand ST1:

if (Bedingung2)

Beginnen

c1 zurücksetzen;

goto ST2;

Ende

Zustand ST2:

if (Bedingung3)

goto ST3;

else if (Bedingung2)

goto ST1;

else if (Bedingung1)

Erhöhung c1;

else if (Bedingung3 && (c1 >= 5))

goto ST1;

Zustand ST3:

Auslöser;

Datenanalyseergebnis

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.