DE102009009171B4 - Vorrichtung und Verfahren zum Bereitstellen eines Triggers - Google Patents

Vorrichtung und Verfahren zum Bereitstellen eines Triggers Download PDF

Info

Publication number
DE102009009171B4
DE102009009171B4 DE102009009171.8A DE102009009171A DE102009009171B4 DE 102009009171 B4 DE102009009171 B4 DE 102009009171B4 DE 102009009171 A DE102009009171 A DE 102009009171A DE 102009009171 B4 DE102009009171 B4 DE 102009009171B4
Authority
DE
Germany
Prior art keywords
trigger
value
register
logic block
debug
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102009009171.8A
Other languages
English (en)
Other versions
DE102009009171A1 (de
Inventor
Harry Siebert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102009009171A1 publication Critical patent/DE102009009171A1/de
Application granted granted Critical
Publication of DE102009009171B4 publication Critical patent/DE102009009171B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3648Debugging of software using additional hardware
    • G06F11/3656Debugging of software using additional hardware using a specific debug interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Echtzeit-Debug-Trigger-Vorrichtung, die aufweist:einen Trigger-Logik-Block (220, 320), der so konfiguriert ist, dass er bei einer Trigger-Berechnung abhängig von einem durch den Trigger-Logik-Block (220, 320) berechneten Wert (A) und von einem aktuell in einem Referenzregister (216, 316) gespeicherten Wert (B) ein Debug-Trigger-Signal für eine Software-Debug-Operation ausgibt; undMittel zum Überschreiben des in dem Referenzregister (216, 316) gespeicherten Werts mit dem von dem Trigger-Logik-Block berechneten Wert (A) zur Verwendung bei einer auf die Trigger-Berechnung nachfolgenden weiteren Trigger-Berechnung.

Description

  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf Debug-Trigger-Vorrichtungen in Datenverarbeitungssystemen, und im Besonderen auf eine anpassungsfähige Debug-Trigger-Vorrichtung.
  • Gegenwärtig werden Debug-Operationen, beispielsweise das Anhalten der Programmausführung, das Umschalten eines Pins zur Messung, das Erzeugen von Ablaufverfolgungs-Nachrichten und ähnliches, im Ansprechen auf einen spezifischen Wert oder eine spezifische Variable initiiert, der / die in einem Register oder einem Speicher gespeichert ist. Alternativ kann die Debug-Operation im Ansprechen auf einen Wert oder eine Variable ausgelöst werden, der / die in einem besonderen Funktionsregister gespeichert ist, beispielsweise ein A/D-Wandlungs-Ergebnis.
  • Zusätzlich zum Auslösen von Debug-Operationen mit einer Variablen ist es möglich, die Debug-Operation im Ansprechen auf einen Wechsel zwischen aufeinander folgenden Abtastungen auszulösen. Zwei Herangehensweisen werden verwendet, um einen Wechsel in Echtzeit zum Debuggen von Hardware und Software zu berechnen, eine Herangehensweise mit Instrumentierung und eine Herangehensweise mit Pipeline-Analyse.
  • Mittels der Herangehensweise mit Instrumentierung, die sich im Allgemeinen auf das Modifizieren der Software auf der Zielmaschine bezieht, wird die ausgetestete Software modifiziert, um explizit einen Wechsel zu berechnen. Der Wechselwert wird dann als besondere oder virtuelle Variable gespeichert. Die besondere oder virtuelle Variable wird sodann durch die Trigger-Logik analysiert. Diese Herangehensweise kann nicht in Situationen angewandt werden, in denen der Code festgelegt ist, oder in denen Timing kritisch ist, beispielsweise, wenn die Speicherung in einem nicht flüchtigen Speicher oder in timing-kritischen Anwendungen stattfindet, z.B. DSP-basiertes Filtern. In diesen Fällen hat das System zu dem Zeitpunkt, an dem die Trigger-Berechnung abgeschlossen ist, den Punkt überschritten, an dem der Trigger hätte ausgegeben werden sollen.
  • Mittels einer Pipeline-Analyse wird eine Variable verfolgt, und der Wechsel wird außerhalb des Chips (off-chip) entweder quasi-parallel berechnet mittels eines Host-Computers für schnelles Debuggen oder als Post-Mortem-Analyse, nachdem der Triggerwert erreicht worden ist. Selbstverständlich kann die Post-Mortem-Analyse keine Debug-Daten in Echtzeit liefern. Die parallele oder Off-Chip Verarbeitung ist der oben genannten Herangehensweise mit Instrumentierung ähnlich, wobei zu dem Zeitpunkt, an dem die Triggerberechnung abgeschlossen ist, das System den Punkt, an dem der Trigger hätte ausgegeben werden sollen, überschritten hat.
  • 1 zeigt eine bekannte Debug-Trigger-Vorrichtung 100. Die Debug-Trigger-Vorrichtung 100 weist eine Registerdatei 10 und einen Komparatorblock 20 auf. Die Registerdatei 10, die die Parameter für den Komparatorblock 20 speichert, weist ein Vorzeichenregister 12, ein Maskenregister 14, ein Referenzregister 16 und ein Bereichsregister 18 auf. Der Komparatorblock 20 weist Berechnungsblöcke 22, 24, 26 und 28 auf. Der Komparatorblock 20 verwendet die in der Registerdatei 10 gespeicherten Parameter, um zu ermitteln, ob ein Debug-Trigger 40 ausgegeben werden sollte, durch Analysieren von über den Bus 30 empfangenen Daten. Typischerweise ist der Bus 30 ein 32-Bit Bus.
  • Im Betrieb führt der Komparatorblock 20 eine festgelegte Berechnung durch, um zu ermitteln, wann der Debug-Trigger auszugeben ist. Ein Datenwort wird von dem Bus 30 für den Berechnungsblock 22 bereitgestellt, der das ankommende Datenwort ausblendet, so dass nur die relevanten Daten übrig bleiben. Im Betrieb wird die Maske typischerweise mittels eines logischen UND implementiert. Die relevanten Daten werden dem Vorzeichenerweiterungs-Block 24 übermittelt, der das Vorzeichen-Bit für alle nicht relevanten Bits höherer Ordnung in dem Wort repliziert mittels des Vorzeichenwerts, der aus einer Bitposition, die in dem Vorzeichenregister 12 gespeichert ist, entnommen wurde. Dann subtrahiert der Berechnungsblock 26 einen Referenzwert X, der in dem Referenzregister 16 gespeichert ist, von dem verfolgten Wert, der der vorzeichenerweiterte Datenausgang aus Berechnungsblock 24 ist. Typischerweise ist der in dem Referenzregister 16 gespeicherte Wert die konstante Untergrenze des Bereichskomparators. Schließlich ermittelt der Berechnungsblock 28, ob die in dem Berechnungsblock 26 ermittelte Differenz innerhalb des Bereichs Y liegt, der in dem Bereichsregister 18 dargelegt ist. In Abhängigkeit von diesem Vergleich wird ein Triggersignal 40 ausgegeben. Es wird angemerkt, dass die in 1 gezeigte Schaltung in der Registerdatei 10 konstante Werte hält.
  • Im Betrieb hat die Schaltung von 1 die Gesamtgleichung trigger = ( 0 ( d ( t ) X ) Y )
    Figure DE102009009171B4_0001
  • Somit wird gemäß Gleichung 1 ein Trigger-Signal ausgegeben, wenn sich die Daten zum Zeitpunkt t minus dem Referenzbetrag X nicht innerhalb des Bereichs zwischen 0 und Y, der Obergrenze des Bereichs, befinden.
  • DE 10 2005 035 473 A1 beschreibt ein Verfahren und ein System zur digitalen Triggerung für Oszilloskope. Zur Bestimmung eines Triggerzeitpunkts wird jeweils zwischen zwei aufeinander folgenden Abtastwerten eines Referenz-Signals und eines Schwellwerts ein Pegelvergleich durchgeführt. Ferner wird zwischen zwei aufeinander folgenden Abtastwerten des Referenz-Signals mindestens ein zusätzlicher Abtastwert des Referenz-Signals mittels Interpolation ermittelt.
  • DE 39 36 932 A1 beschreibt einen Triggersignalerzeuger für Oszilloskope. Der Triggersignalerzeuger weist einen A/D-Wandler und einen Digitalvergleicher auf. Der Digitalvergleicher vergleicht den digitalisierten Wert des analogen Eingangssignals mit einem von einem Speicher gelieferten Digitalwert und leitet hieraus die Triggerbedingung ab.
  • Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine Vorrichtung bereitzustellen, welche Debug-Daten in einem kürzeren Zeitraum zur Verfügung stellt, als dies nach dem Stand der Technik der Fall ist.
  • Diese Aufgabe wird durch eine Echtzeit-Debug-Trigger-Vorrichtung gemäß Anspruch 1 gelöst.
  • Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
  • Gemäß einem Aspekt der Erfindung wird eine Echtzeit-Debug-Trigger-Vorrichtung bereitgestellt, die aufweist: einen Trigger-Logik-Block, der so konfiguriert ist, dass er bei einer Trigger-Berechnung abhängig von einem durch den Trigger-Logik-Block berechneten Wert und von einem aktuell in einem Referenzregister gespeicherten Wert ein Debug-Trigger-Signal für eine Software-Debug-Operation ausgibt; und Mittel zum Überschreiben des in dem Referenzregister gespeicherten Werts mit dem von dem Trigger-Logik-Block berechneten Wert zur Verwendung bei einer auf die Trigger-Berechnung nachfolgenden weiteren Trigger-Berechnung.
  • Figurenliste
    • 1 zeigt eine bekannte Debug-Trigger-Vorrichtung.
    • 2 zeigt eine Debug-Trigger-Vorrichtung gemäß einer Ausführungsform der Erfindung.
    • 3 zeigt eine Debug-Trigger-Vorrichtung gemäß einer Ausführungsform der Erfindung.
    • 4 ist ein Flussdiagramm, das ein Verfahren zum Ausgeben eines Debug-TriggerSignals zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG
  • 2 zeigt eine Echtzeit Debug-Trigger-Vorrichtung 200 gemäß einer Ausführungsform der vorliegenden Erfindung. Insbesondere ist die Debug-Trigger-Vorrichtung 200 eine Debug-Trigger-Vorrichtung auf einem Chip (on-chip), die die Berechnung einer Triggerfunktion von außen bereitstellt. Die Debug-Trigger-Vorrichtung 200 weist eine Registerdatei 210 und einen Trigger-Logik-Block 220 auf. Die Registerdatei 210 weist ein Vorzeichenregister 12, ein Maskenregister 14, ein Referenzregister 216, ein Modusregister 208, ein Bereichsregister 218 und einen Eingang 212 auf. Der Trigger-Logik-Block 220 weist verschiedene interne Funktionsblöcke auf, die so ausgelegt sind, dass sie eine vorgegebene Triggerfunktion implementieren.
  • Wie gezeigt ist, können die Daten in einem Referenzregister 216 mit einem verfolgten Wert überschrieben werden, der von dem Trigger-Logik-Block 220 bereitgestellt wird. Der aktuell gespeicherte Wert wird während der Trigger-Berechnung verwendet, um zu ermitteln, ob ein Trigger-Signal 240 ausgegeben werden sollte. Der Wert wird teilweise unter Steuerung des Modusregisters 208 über die Nachlade-Steuerleitung 214 überschrieben. Ein Steuersignal, das den Zeitpunkt angibt, zu dem der Wert überschrieben wird, basiert auf Informationen von dem umgebenden System, beispielsweise Gültigkeit des Eingangs, Adresskomparatoren und/oder dem Trigger-Signal 240 selbst, usw. Die neu gespeicherte Variable wird in Folgeberechnungen verwendet, um festzustellen, wann das Trigger-Signal 240 ausgegeben wird. Es wird angemerkt, dass der Trigger-Logik-Block so ausgelegt ist, dass er eine Differenz zwischen Variablen, den absoluten Wert einer Differenz, die Summe von Variablen oder eine beliebige andere mathematische Beziehung zwischen Variablen berechnet. Es wird angemerkt, dass die Berechnung ebenso ein nichtlineares Ergebnis, z.B. eine dB-Skala für Tondaten oder Sättigung ergeben kann.
  • Die Registerdatei 210 weist einen Eingang 212 auf, der Daten bereitstellt, um den Inhalt der Register in der Registerdatei 210 zu ändern. Der Eingang 212 stellt ein Aktualisierungssignal für das Modusregister 208 bereit, das anzeigt, wenn eine Aktualisierung des Referenzregisters 216 erforderlich ist. Dieses Aktualisierungssignal wird im Allgemeinen unter Systemsteuerung erzeugt. Bei einer Ausführungsform ist der Eingang 212 ein Bus ähnlich dem Bus 30. Bei einer Ausführungsform stellt das Referenzregister 216 und/oder die anderen Register in der Registerdatei 210 Werte für eine Vielzahl von Trigger-Logik-Blöcken bereit.
  • Zusätzlich dazu, dass der Eingang 212 als Programmierschnittstelle fungiert, ist der Eingang 212 bevorzugt so konfiguriert, dass er, wie oben erläutert, ein Steuersignal für das Modusregister 208 bereitstellt, das anzeigt, wann das Aktualisierungssignal erzeugt wird und über die Nachlade-Steuerleitung 214 an das Referenzregister 216 ausgegeben wird. Typische Daten, die für das Modusregister 208 bereitgestellt werden, die teilweise verwendet werden, um zu ermitteln, wann ein Aktualisierungssignal erzeugt wird, das über die Nachlade-Steuerleitung 214 bereitgestellt wird, umfassen neue Daten auf dem Bus 30, eine Adressen-Komparator-Anpassung, usw. Es wird angemerkt, dass, obwohl ein einziger Eingang 212 gezeigt ist, eine Vielzahl von Eingangsleitungen vorliegen können, die Daten an die Registerdatei 210 liefern, einschließlich Daten, die über den Bus 30 an die Registerdatei 210 geliefert werden.
  • 3 zeigt eine Debug-Trigger-Vorrichtung 300 gemäß einer weiteren Ausführungsform der vorliegenden Erfindung. Insbesondere zeigt 3 eine Debug-Trigger-Vorrichtung 300, die als Differenzkomparator oder Δ-Komparator implementiert ist. Die Debug-Trigger-Vorrichtung 300 weist eine Registerdatei 310 und einen Trigger-Logik-Block 320 auf. Die Registerdatei 310 weist ein Vorzeichenregister 12, ein Maskenregister 14, ein Referenzregister 316, ein Modusregister 308 und ein Bereichsregister 318 auf. Ein Eingangsbus 312 stellt Daten für die Registerdateien bereit. Der Trigger-Logik-Block 320 weist verschiedene interne Funktionsblöcke auf, die so ausgelegt sind, dass sie eine festgelegte Triggerfunktion implementieren. Insbesondere ist die Debug-Trigger-Vorrichtung 300 so ausgelegt, dass sie die folgenden Debug-Funktionen implementiert: trigger_rise = ( ( 0 ( d ( t ) d ( t 1 ) ) B ) 1 : 0 )
    Figure DE102009009171B4_0002
    trigger_fall = ( ( 0 ( d ( t 1 ) d ( t ) ) B ) 1 : 0 )
    Figure DE102009009171B4_0003
  • Bei der in 3 gezeigten Ausführungsform isoliert ein erster Berechnungsblock 22 die relevanten Datenbits von einem Datenwort. Insbesondere führt der erste Berechnungsblock 22 ein logisches UND durch mittels Eingangsdaten von dem Bus 30 und einer in dem Maskenregister 14 gespeicherten Maske. Dann repliziert der Vorzeichenerweiterungs-Block 24 das Vorzeichenbit von der in dem Vorzeichenregister 12 gespeicherten Position für alle nicht relevanten Bits höherer Ordnung in dem Datenwort. Der Subtraktionsblock 326 subtrahiert die Daten in dem Referenzregister 316 von dem relevanten Datenausgang aus dem Vorzeichenerweiterungs-Block 24, wie in Gleichung 2a oder 2b gefordert. Schließlich stellt der Berechnungsblock 28 fest, ob ein Debug-Trigger 340 ausgegeben werden sollte, basierend wenigstens teilweise auf einem in dem Bereichsregister 318 gespeicherten Wert, gemäß Gleichung 2a oder Gleichung 2b.
  • Es wird angemerkt, dass die Debug-Trigger-Vorrichtung 300 die Differenz in dem Subtraktionsblock 326 sowohl von einem positiven als auch von einem negativen Anstieg berechnen kann. Das Modusregister 308 stellt Daten für den Subtraktionsblock 326 über die Eingangsleitung 322 bereit, um zwischen einem positiven und einem negativen Anstieg zu unterscheiden. Zusätzlich wird der Datenausgang aus dem Vorzeichenerweiterungs-Block 24 an das Referenzregister 316 geliefert. Das Modusregister 308 enthält Daten, die zusätzlich dazu, dass sie ermitteln, wann die Subtraktionsfunktion zu negieren ist, um hinsichtlich eines positiven oder negativen Anstiegs zu korrigieren, auch ermitteln, wann die Referenzvariable in dem Referenzregister 316 aktualisiert werden sollte. Ein Aktualisierungssignal wird dem Referenzregister 316 von dem Modusregister 308 über die Nachlade-Steuerleitung 314 bereitgestellt. Der in dem Modusregister 308 gespeicherte Wert wird gemäß dem Debug-Programm bestimmt, das außerhalb des Umfangs der vorliegenden Offenbarung liegt.
  • Der Eingang 312 ist so konfiguriert, dass er Daten zum Aktualisieren eines oder mehrere der Register in der Registerdatei 310 bereitstellt. Gemäß dem Debug-Programm oder anderer Systemsteuerung wird das Aktualisierungssignal auf der Grundlage der Einstellung des Modusregisters 308 berechnet, das steuert, wann die Daten in dem Referenzregister 316 aktualisiert werden. Das Maskenregister 14 kann mit Daten geladen werden, um verschiedene Bits in dem Datenwort in dem Bus 30 zu isolieren. Das Bereichsregister 318 kann ebenso aktualisiert werden. Der Eingang 312 ist bevorzugt ein Bus ähnlich dem Bus 30. Bei einer anderen Ausführungsform liefert der Bus 30 die Aktualisierungsdaten an die Registerdatei 310.
  • Zusätzlich dazu, dass der Eingang 312 als Programmierschnittstelle fungiert, ist der Eingang 312 bevorzugt so konfiguriert, dass er, wie oben erläutert, ein Steuersignal für das Modusregister 308 bereitstellt, das anzeigt, wann das Aktualisierungssignal erzeugt wird und über die Nachlade-Steuerleitung 314 an das Referenzregister 316 ausgegeben wird. Typische Daten, die für das Modusregister 308 bereitgestellt werden, die teilweise verwendet werden, um zu ermitteln, wann ein Aktualisierungssignal erzeugt wird, das über die Nachlade-Steuerleitung 314 bereitgestellt wird, umfassen neue Daten auf dem Bus 30, eine Adressen-Komparator-Anpassung, usw. Es wird angemerkt, dass, obwohl ein einziger Eingang 312 gezeigt ist, eine Vielzahl von Eingangsleitungen vorliegen können, die Daten an die Registerdatei 310 liefern, einschließlich Daten, die über den Bus 30 an die Registerdatei 310 geliefert werden.
  • Obwohl der Trigger-Logik-Block 320 als Differenzblock erläutert worden ist, ist er nicht darauf beschränkt. Alternativ kann der Trigger-Logik-Block 320 eine andere Funktion aufweisen oder als andere Funktion implementiert sein, beispielsweise eine Summe, ein absoluter Wert, eine Logarithmusfunktion, oder ähnliches. Außerdem kann der Trigger-Logik-Block 320 so konfiguriert sein, dass er die Beziehung zwischen verschiedenen Bits in einem Wort analysiert. Mittels der in den 2 und 3 offenbarten Debug-Trigger-Vorrichtung können Berechnungen eines verfolgten Datenobjekts und die Verwendung des Ablaufverfolgungsdatenwerts zum Vergleich in Echtzeit durchgeführt werden.
  • Die offenbarte Trigger-Vorrichtung stellt einen flexibleren Trigger-Ausgang für eine Debug Operation bereit. Wenn beispielsweise die Daten, die in den Bus 30 eingegeben werden, der Ausgang eines Zählers sind, d.h. eines sequentiellen Zählers, der von 1 bis 10 läuft, isoliert die in dem Maskenregister 14 gespeicherte Maske die spezifischen Bits, die die Zählinformationen enthalten. Die isolierten Daten werden durch den Vorzeichenerweiterungs-Funktionsblock verarbeitet, so dass die Datenbits, anders als die spezifischen Zählbits, denselben Wert haben. Dieses Datenwort wird dann an das Referenzregister 316 geliefert, so dass es nach jedem Vergleich mit dem aktuellen Zählwert aktualisiert wird. Das Bereichsregister 318 speichert den Schrittwert, d.h. um 1 in dem vorliegenden Beispiel. Wenn der Zähler des vorliegenden Beispiels nicht sequentiell wäre, sondern stattdessen um 3 erhöht werden würde, d.h. 0, 3, 6, 9 ..., würde das Bereichsregister eine 3 enthalten. Somit wird der Trigger bei einer Differenz, die größer ist als der Bereich, z.B. wenn der Zähler einen Wert überspringt, aktiviert.
  • 4 ist ein Flussdiagramm 400, das ein Verfahren zum Ausgeben eines Debug-Trigger-Signals gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Wie gezeigt ist, wird ein Datenwort von der Vorrichtung (S100) empfangen. Wenigstens ein relevantes Datenbit wird von dem Datenwort isoliert (S110). Es können verschiedene Verfahren verwendet werden, um die wenigstens einen relevanten Daten zu isolieren, einschließlich des Durchführens eines logischen UND für ein Maskenwort und das Datenwort. Dann wird für alle der nicht relevanten Bits ein Vorzeichenbit repliziert, um einen verfolgten Wert zu erzeugen (S120). Das System berechnet ein Daten-Sample basierend teils auf dem verfolgten Wert und dem in dem Referenzregister gespeicherten Wert (S130). Der berechnete Samplewert wird dann mit einem Bereichswert verglichen (S140). Danach wird ermittelt, ob ein Debug-Trigger ausgegeben werden sollte (S150). Wenn das Sample innerhalb des akzeptierbaren Bereichs liegt, wird kein Debug-Trigger ausgegeben (S160). Alternativ wird, wenn das Sample nicht innerhalb des akzeptierbaren Bereichs liegt, ein Debug-Trigger ausgegeben (S170), und der Debug-Trigger initiiert dann eine Debug-Funktion. Das System ermittelt dann, ob der gespeicherte Referenzwert zu aktualisieren ist (S180). Diese Entscheidung kann auf der Ankunft eines neuen Werts in (S100) basieren, dem Einstellen eines Modusregisters, einer anderen Eignung von außerhalb des Umfangs dieser Trigger-Logik (z.B. einem Adressenkomparator), oder auch auf dem Trigger-Ausgang (S170) selbst. Wenn der Referenzwert zu aktualisieren ist, wird der verfolgte Wert in dem Referenzregister gespeichert (S190). Es wird angemerkt, dass, da der Debug-Trigger in Echtzeit ermittelt wird, die Debug-Funktion die relevantesten Daten erfasst. Obwohl sie in einer bestimmten Reihenfolge erläutert worden sind, wird angemerkt, dass die oben genannten Schritte nicht notwendigerweise in dieser Reihenfolge durchgeführt werden. Die Entscheidung, den Referenzwert zu aktualisieren (S180), kann beispielsweise jederzeit getroffen werden, nachdem die aktuell gespeicherten Daten verwendet werden, um das Sample zu berechnen (S130). Alternativ kann, wenn ein überarbeiteter Referenzwert zu verwenden ist, um das Muster zu berechnen (S130), der Referenzwert vor dieser Berechnung gespeichert werden.
  • Obwohl hier spezifische Ausführungsformen gezeigt und beschrieben worden sind, ist es für den Fachmann selbstverständlich, dass eine Vielzahl anderer und/oder äquivalenter Implementierungen die gezeigten und beschriebenen spezifischen Ausführungsformen ersetzen können, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Es ist beabsichtigt, dass die vorliegende Anmeldung alle Anpassungen oder Änderungen der hier erläuterten spezifischen Ausführungsformen mit umfasst. Es ist daher beabsichtigt, dass die vorliegende Erfindung nur durch die Patentansprüche und deren Äquivalente eingeschränkt wird.

Claims (7)

  1. Echtzeit-Debug-Trigger-Vorrichtung, die aufweist: einen Trigger-Logik-Block (220, 320), der so konfiguriert ist, dass er bei einer Trigger-Berechnung abhängig von einem durch den Trigger-Logik-Block (220, 320) berechneten Wert (A) und von einem aktuell in einem Referenzregister (216, 316) gespeicherten Wert (B) ein Debug-Trigger-Signal für eine Software-Debug-Operation ausgibt; und Mittel zum Überschreiben des in dem Referenzregister (216, 316) gespeicherten Werts mit dem von dem Trigger-Logik-Block berechneten Wert (A) zur Verwendung bei einer auf die Trigger-Berechnung nachfolgenden weiteren Trigger-Berechnung.
  2. Echtzeit-Debug-Trigger-Vorrichtung nach Anspruch 1, die des Weiteren ein Bereichsregister aufweist, das so konfiguriert ist, dass es den Trigger-Logik-Block mit einem Bereichswert versieht.
  3. Echtzeit-Debug-Trigger-Vorrichtung nach einem der vorhergehenden Ansprüche, die des Weiteren ein Maskenregister aufweist, das so konfiguriert ist, dass es einen Maskenwert an den Trigger-Logik-Block liefert, um relevante Bits aus einem in den Trigger-Logik-Block eingegebenen Datenwort zu extrahieren.
  4. Echtzeit-Debug-Trigger-Vorrichtung nach Anspruch 3, wobei der Trigger-Logik-Block eine Differenz zwischen aufeinander folgenden relevanten Bits berechnet.
  5. Echtzeit-Debug-Trigger-Vorrichtung nach einem der vorhergehenden Ansprüche, wobei der Trigger-Logik-Block zwei Variablen aus einem Datenwort vergleicht, das zu verschiedenen Zeitpunkten in den Trigger-Logik-Block eingegeben worden ist.
  6. Echtzeit-Debug-Trigger-Vorrichtung nach einem der vorhergehenden Ansprüche, wobei der Trigger-Logik-Block des Weiteren aufweist: einen Extrahierungsblock, der so konfiguriert ist, dass er relevante Bits aus einem Wort extrahiert, basierend wenigstens teilweise auf in einem Maskenregister gespeicherten Daten; einen Vorzeichen-Funktions-Block, der so konfiguriert ist, dass er ein Vorzeichen für alle Bits hoher Ordnung des Wortes außer den relevanten Bits repliziert; einen Funktions-Block, der so konfiguriert ist, dass er einen Wert berechnet, basierend wenigstens teilweise auf den relevanten Bits und einem in einem Referenzregister gespeicherten Wert; und einen Trigger-Logik-Block, der so konfiguriert ist, dass er den Ausgang des Funktions-Blocks mit einem Wert basierend wenigstens teilweise auf einem in einem Bereichsregister gespeicherten Wert vergleicht, wobei der Ausgang des Vorzeichen-Funktions-Blocks an das Referenzregister geliefert wird.
  7. Echtzeit-Debug-Trigger-Vorrichtung nach Anspruch 6, wobei der Funktions-Block eine Differenz zwischen dem relevanten Bit und dem in dem Referenzregister gespeicherten Wert berechnet.
DE102009009171.8A 2008-02-29 2009-02-16 Vorrichtung und Verfahren zum Bereitstellen eines Triggers Active DE102009009171B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/040,325 US20090222797A1 (en) 2008-02-29 2008-02-29 Apparatus and method for providing a trigger
US12/040,325 2008-02-29

Publications (2)

Publication Number Publication Date
DE102009009171A1 DE102009009171A1 (de) 2009-10-29
DE102009009171B4 true DE102009009171B4 (de) 2019-09-05

Family

ID=41014190

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009009171.8A Active DE102009009171B4 (de) 2008-02-29 2009-02-16 Vorrichtung und Verfahren zum Bereitstellen eines Triggers

Country Status (2)

Country Link
US (1) US20090222797A1 (de)
DE (1) DE102009009171B4 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3936932A1 (de) 1988-11-07 1990-05-10 Nicolet Instrument Corp Triggersignalerzeuger fuer oszilloskope
DE102005035473A1 (de) 2005-07-28 2007-02-01 Rohde & Schwarz Gmbh & Co. Kg Verfahren und System zur digitalen Triggerung für Oszilloskope

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3936923A1 (de) * 1989-11-06 1991-05-08 Windmoeller & Hoelscher Flachlege- und abzugsvorrichtung fuer eine im blasverfahren hergestellte kunststoffschlauchfolienbahn
US5124989A (en) * 1990-01-08 1992-06-23 Microsoft Corporation Method of debugging a computer program
US5896536A (en) * 1996-05-01 1999-04-20 International Business Machines Corp. Data triggered trace support for debugging object oriented programs
US5751735A (en) * 1996-11-14 1998-05-12 Hewlett-Packard Company Integrated debug trigger method and apparatus for an integrated circuit
US6618775B1 (en) * 1997-08-15 2003-09-09 Micron Technology, Inc. DSP bus monitoring apparatus and method
US6446221B1 (en) * 1999-05-19 2002-09-03 Arm Limited Debug mechanism for data processing systems
US6769076B1 (en) * 2000-02-07 2004-07-27 Freescale Semiconductor, Inc. Real-time processor debug system
US6556952B1 (en) * 2000-05-04 2003-04-29 Advanced Micro Devices, Inc. Performance monitoring and optimizing of controller parameters
US7093236B2 (en) * 2001-02-01 2006-08-15 Arm Limited Tracing out-of-order data
DE10139660B4 (de) * 2001-08-11 2007-07-05 Infineon Technologies Ag Programmgesteuerte Einheit mit Debug-Ressourcen
US7080289B2 (en) * 2001-10-10 2006-07-18 Arm Limited Tracing multiple data access instructions
GB2389432B (en) * 2002-06-07 2005-09-07 Advanced Risc Mach Ltd Instruction tracing in data processing systems
US7010672B2 (en) * 2002-12-11 2006-03-07 Infineon Technologies Ag Digital processor with programmable breakpoint/watchpoint trigger generation circuit
US7278073B2 (en) * 2003-04-17 2007-10-02 Arm Limited Diagnostic data capture within an integrated circuit
US7149926B2 (en) * 2003-05-22 2006-12-12 Infineon Technologies Ag Configurable real-time trace port for embedded processors
CA2433750A1 (en) * 2003-06-27 2004-12-27 Ibm Canada Limited - Ibm Canada Limitee Automatic collection of trace detail and history data
US7287245B2 (en) * 2003-09-17 2007-10-23 Faraday Technology Corp. Method for real-time instruction information tracing
US7249288B2 (en) * 2004-09-14 2007-07-24 Freescale Semiconductor, Inc. Method and apparatus for non-intrusive tracing
US20080126828A1 (en) * 2006-06-07 2008-05-29 Janice Marie Girouard Dynamic enablement and customization of tracing information in a data processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3936932A1 (de) 1988-11-07 1990-05-10 Nicolet Instrument Corp Triggersignalerzeuger fuer oszilloskope
DE102005035473A1 (de) 2005-07-28 2007-02-01 Rohde & Schwarz Gmbh & Co. Kg Verfahren und System zur digitalen Triggerung für Oszilloskope

Also Published As

Publication number Publication date
DE102009009171A1 (de) 2009-10-29
US20090222797A1 (en) 2009-09-03

Similar Documents

Publication Publication Date Title
DE60305601T2 (de) Verfahren zur zeitlichen Fehlerisolation und Identifizierung
AT512977B1 (de) Methode zur Ermittlung eines Modells einer Ausgangsgröße eines technischen Systems
EP0934567A1 (de) Verfahren zur klassifikation der statistischen abhängigkeit einer messbaren zeitreihe
AT511272A1 (de) Kopplungsmethodik für nicht-iterative co-simulation
DE102014102551A1 (de) Maschine und Verfahren zum Evaluieren von fehlschlagenden Softwareprogrammen
DE112019004928T5 (de) System zur verschlechterungserfassung
DE102017213510A1 (de) Verfahren und Vorrichtung zum Erzeugen eines maschinellen Lernsystems, und virtuelle Sensorvorrichtung
EP3844579B1 (de) Verfahren, vorrichtung und system zur ermittlung von messinformationen
DE112018006331B4 (de) Testfallgenerierungsvorrichtung, Testfallgenerierungsverfahren und Testfallgenerierungsprogramm
DE102019112550A1 (de) System zum Erzeugen von Lerndaten
EP3104278A1 (de) Verfahren zur realistischen abschätzung von funktionslaufzeiten in pil simulation
DE102009009171B4 (de) Vorrichtung und Verfahren zum Bereitstellen eines Triggers
DE102021210393A1 (de) Verfahren und Vorrichtung zum Betreiben eines technischen Systems
EP3942372B1 (de) Verfahren zur validierung von systemparametern eines energiesystems, verfahren zum betrieb eines energiesystems sowie energiemanagementsystem für ein energiesystem
DE102017000477A1 (de) Leiterprogrammanzeigevorrichtung mit automatischer Verfolgungsfunktion für eine Selbsthalteschaltung des Leiterprogramms
DE10222700A1 (de) Optimierungsverfahren mit validierten Approximationsmodellen
DE10325513B4 (de) Verfahren und Vorrichtung zum Erstellen eines Verhaltensaspekts einer Schaltung zur formalen Verifikation
DE112020006451T5 (de) Diagnosevorrichtung, diagnoseverfahren und programm
DE102019127426A1 (de) Entfernung von Wellenform-DC-Störung
DE112021001654T5 (de) Anomaliebestimmungsvorrichtung
DE102021200575A1 (de) Anomalieerkennungsvorrichtung, Anomalieerkennungsverfahren und Programm
WO2020216452A1 (de) Zustandsanalyse einer anlage
DE102019008515A1 (de) Informationsverarbeitungsvorrichtung
EP0941505A1 (de) Verfahren zur neuronalen modellierung der abhängigkeiten von einflussgrössen eines technischen systems
DE102017115579B4 (de) Betriebsmanagementsystem und Messsystem

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative