DE19950838C2 - Verfahren und Vorrichtung zur Fehleranalyse digitaler Logikschaltungen - Google Patents

Verfahren und Vorrichtung zur Fehleranalyse digitaler Logikschaltungen

Info

Publication number
DE19950838C2
DE19950838C2 DE1999150838 DE19950838A DE19950838C2 DE 19950838 C2 DE19950838 C2 DE 19950838C2 DE 1999150838 DE1999150838 DE 1999150838 DE 19950838 A DE19950838 A DE 19950838A DE 19950838 C2 DE19950838 C2 DE 19950838C2
Authority
DE
Germany
Prior art keywords
circuit
register
shadow
states
internal
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.)
Expired - Fee Related
Application number
DE1999150838
Other languages
English (en)
Other versions
DE19950838A1 (de
Inventor
Juergen Haufe
Peter Schwarz
Christoph Fritsch
Volker Lueck
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.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Robert Bosch GmbH
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Robert Bosch GmbH
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 Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV, Robert Bosch GmbH filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority to DE1999150838 priority Critical patent/DE19950838C2/de
Priority to CH18542000A priority patent/CH694927A5/de
Priority to ITMI20002236 priority patent/IT1319009B1/it
Priority to FR0013441A priority patent/FR2800169B1/fr
Publication of DE19950838A1 publication Critical patent/DE19950838A1/de
Application granted granted Critical
Publication of DE19950838C2 publication Critical patent/DE19950838C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zur Fehleranalyse digitaler Logikschaltun­ gen, und insbesondere auf solche Verfahren und Vorrichtun­ gen, die eine Hardware-Fehlersuche (Hardware-Debugging) ver­ wenden, um eine Fehler-Erfassung und -Analyse einer digita­ len Logikschaltung in Echtzeit zu ermöglichen.
Auf dem Gebiet der Technik ist eine Reihe von Verfahren zum Hardware-Debugging, die auf unterschiedlichen Lösungsansät­ zen basieren, bekannt. Bei einem bekannten Verfahren wird das Hardware-Verhalten einer integrierten Schaltung unter Verwendung von Logikanalysatoren oder Oszilloskopen, die mit realen Anschlußstiften der integrierten Schaltung verbunden sind, beobachtet. Dabei sind die Anschlußstifte unbenutzte Anschlußstifte, die lediglich zu Fehleranalysezwecken mit internen Knoten der integrierten Schaltung verbunden sind. Aufgrund der begrenzten Anzahl von nicht als Nutzanschluß­ stifte verwendeten Anschlußstiften kann durch diese Technik nur ein kleiner Satz von Signalen, die von internen Knoten stammen, beobachtet werden. Um die Anzahl von möglichen Son­ den zu erhöhen, ist es bekannt, die Anschlußstifte zu multi­ plexen oder virtuelle Sonden zu verwenden, wobei dies jedoch üblicherweise eine Echtzeit-Fehlerdiagnose verhindert.
Andere Lösungsansätze verwenden eine Umgebung, die die Hard­ ware mit einer Software statt des Logikanalysators oder des Oszilloskops verbindet, um das DUT (DUT = Device under Test = Element unter Prüfung) zu beobachten. Die Softwareumge­ bung, die auf einem Computer abläuft, ist über eine Compu­ terschnittstelle mit dem DUT verbunden, wobei aufgrund der ziemlich langsamen Computerschnittstelle eine Echtzeit-Feh­ leranalyse üblicherweise nicht möglich ist.
Ein weiteres bekanntes Verfahren ist eine Fehleranalyse unter Verwendung von speziellen Ein/Ausgabezellen einer ASIC (Boundary Scan Cells), mit denen FPGAs (FPGA = Field programmable Gate Array = vom Benutzer programmierbare Logikschaltung) ausgestattet sein können. Auf diese Zellen kann üblicherweise mittels eines JTAG-Protokolls zugegriffen werden, wobei jedoch auf Signale an schaltungsinternen Kno­ ten nicht zugegriffen werden kann.
Ein weiteres klassisches Testverfahren ist die Verwendung eines sogenannten Scan-Pfads (Scan Path), der ein Setzen und Auslesen aller Register, die schaltungsintern in einem se­ riellen Pfad zusammengeschaltet sind, ermöglicht. Auch hier kann das JTAG-Protokoll Anwendung finden, wobei durch den seriellen JTAG-Zugriff ein Abtasten dieser Register in Echt­ zeit nicht realisierbar ist, ohne daß dafür der Betrieb des DUT angehalten werden muß.
Ein neuartiger Lösungsansatz zum Hardware-Debugging ist aus dem US-Patent 5,764,079 bekannt, das ein PLD (PLD = Program­ mable Logic Device = Programmierbarer Logikbaustein) lehrt, das die Fähigkeit liefert, innere Knoten zu beobachten, in­ dem interne Knoten mit Schattenelementen versehen sind, die ein Auslesen der Zustände der inneren Knoten bzw. ein Laden derselben mit bestimmten Zuständen ermöglichen. Beim Ausle­ sen der inneren Knoten werden dieselben in die Schattenele­ mente gekoppelt und über Schieberegister an Eingangs/Aus­ gangs-Anschlüssen verfügbar gemacht.
Das US-Patent 5,870,410 lehrt ein Schnittstellensystem bei­ spielsweise für PLDs, wie sie in dem US-Patent 5,764,079 be­ schrieben sind. Das Schnittstellensystem soll dazu dienen, nicht nur die Zustände innerer Knoten zu beobachten, sondern ferner zu ermöglichen, die inneren Knoten mit Testvektoren zur Fehlerbeobachtung zu beaufschlagen.
Die oben genannten US-Patente liefern zwar die Möglichkeit, die internen Schaltungszustände eines PLDs auszulesen und somit mögliche Fehlerzustände zu erfassen, erlauben jedoch bei Erfassen eines Fehlers nicht die Zurückverfolgung, um die Ursache des Fehlers zu ermitteln. Um eine solche Ermittlung von Fehlerursachen zu ermöglichen, bestand die einzige Möglichkeit bisher darin, eine aufwendige Rechnersimulation ausgehend von einem Anfangszustand des Betriebs der Schal­ tung, d. h. sozusagen einem Zeitpunkt Null, durchzuführen. Bei solchen Simulationen liegt ein Modell der zu testenden integrierten Schaltung beispielsweise als Gatternetzliste vor, wobei das Verhalten der Schaltung dann softwaremäßig simuliert wird, indem definierte Eingangssignale zur Simula­ tion verwendet werden. Eine Simulation ist jedoch extrem zeitaufwendig, insbesondere wenn über einen sehr langen Zeitraum simuliert werden soll.
Aus der US 5680583 A sind Verfahren und Vorrichtungen zur Durchführung einer Emulation, d. h. Fehleranalyse, eines di­ gitalen Systems bekannt. Eingangssignale werden an die zu emulierende Schaltung angelegt und mit jedem Zyklus in einem Puffer gespeichert. Daneben werden auch die internen Zustän­ de gespeichert. Dieser Vorgang wird fortgesetzt, bis ein Fehlerzustand erfaßt wird, woraufhin der Betrieb der Logik­ schaltung eingestellt wird, um es einem Benutzer zu ermögli­ chen, die aufgezeichneten Signale und internen Zustände zur Fehleranalyse zu untersuchen.
In der US 5383167 A sind Vorrichtungen und Verfahren zur Software-Simulation von digitalen Schaltungen beschrieben, um Schaltkreisentwürfe zu überprüfen, bevor ein Prototyp hergestellt wird.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren und eine Vorrichtung zu schaffen, die eine zeit­ sparende Möglichkeit liefern, bestimmte in einer digitalen Logikschaltung auftretende Schaltungszustände hinsichtlich ihrer Ursachen zu analysieren.
Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 sowie einer Vorrichtung nach Anspruch 9 gelöst.
Die vorliegende Erfindung schafft ein Verfahren zur Fehler­ analyse digitaler Logikschaltungen, die eine Mehrzahl inter­ ner Schaltungsknoten mit zugeordneten Nutzregistern, in de­ nen Schaltungszustände der internen Schaltungsknoten, die von Eingangssignalen abhängen, gespeichert sind, aufweisen, wobei jedem Nutzregister ein Schattenregister, über das der Schaltungszustand des Nutzregisters ausgelesen werden kann, zugeordnet ist. Die Logikschaltung wird unter Anlegen von Eingangssignalen an dieselbe betrieben, wobei die angelegten Eingangssignale protokolliert werden. Während des Betriebs der Logikschaltung werden die Schaltungszustände der inter­ nen Schaltungsknoten über die Schattenregister zyklisch aus­ gelesen, wobei die Schaltungszustände der internen Schal­ tungsknoten der Logikschaltung für jeden Zyklus gespeichert werden, um eine Schaltungszustandshistorie zu erzeugen. Beim Auftreten eines vorbestimmten Ereignisses wird der Betrieb der Logikschaltung angehalten, woraufhin ein Rücksprung in der Schaltungszustandshistorie um eine vorbestimmte Anzahl von Zyklen stattfindet. Basierend auf den für den Zyklus, zu dem zurückgesprungen wurde, gespeicherten Schaltungszustän­ den sowie den protokollierten Eingangssignalen wird nachfol­ gend eine Softwaresimulation des Betriebs der Logikschaltung durchgeführt.
Die vorliegende Erfindung basiert somit auf der Erkenntnis, daß es möglich ist, eine zeitsparende Fehlerursachenfor­ schung zu realisieren, indem zyklisch sämtliche Schaltungs­ zustände interner Schaltungsknoten einer digitalen Logik­ schaltung ausgelesen werden. Tritt ein vorbestimmtes Ereig­ nis, vorzugsweise ein Fehlerzustand der digitalen Logik­ schaltung auf, wird der Betrieb der Logikschaltung angehal­ ten und in der Schaltungszustandshistorie vorzugsweise so­ weit zurückgesprungen, daß die für den Zyklus, zu dem zu­ rückgesprungen wurde, gespeicherten Schaltungszustände einen korrekten Betrieb der digitalen Logikschaltung anzeigen. So­ mit ist es möglich, eine Softwaresimulation unter Verwendung des für diesen Zyklus gespeicherten Schaltungsdiagramms, wo­ bei der Ausdruck Schaltungsdiagramm die für einen Zyklus ge­ speicherten Schaltungszustände sämtlicher interner Schal­ tungsknoten bezeichnen soll, und der protokollierten Ein­ gangssignale zu beginnen, so daß die Softwaresimulation nicht quasi zu einem Zeitpunkt Null, d. h., von einem Beginn eines Schaltungsbetriebs der Logikschaltung an, begonnen werden muß.
Die Softwaresimulation wird ab dem Zyklus, zu dem zurückge­ sprungen wurde, auf der Grundlage der für diesen Zustand ge­ speicherten internen Schaltungszustände und der nach diesem Zyklus angelegten protokollierten Eingangssignalen durchge­ führt. Somit ist es erfindungsgemäß möglich, einen Hardwa­ re-Debugger mit einer Softwaresimulation zu verknüpfen, um zeitsparend eine Fehlerursachenforschung zu betreiben.
Eine Vorrichtung zum Durchführen des erfindungsgemäßen Ver­ fahrens umfaßt ein Schattenregister für jeden einer Mehrzahl interner Schaltungsknoten einer digitalen Logikschaltung, wobei jeder interne Schaltungsknoten ein Nutzregister auf­ weist, dessen Schaltungszustand, der von Eingangssignalen abhängt, über das zugeordnete Schattenregister ausgelesen werden kann. Ein Speicher zum Speichern einer Mehrzahl von Schaltungszustandsdiagrammen sowie zum Speichern der ange­ legten Eingangssignale ist vorgesehen. Ferner umfaßt die Vorrichtung eine Steuerung, die mit dem Schattenregister und dem Speicher verbunden ist, um zyklisch Schaltungszustands­ diagramme in dem Speicher zu speichern. Schließlich ist eine Schnittstelle vorgesehen, um zumindest ein Schaltungszu­ standsdiagramm zu einem Softwaresimulationsrechner zu über­ tragen.
Die protokollierten Eingangssignale können über spezifisch dafür vorgesehene Hardwarestrukturen erfaßt, ebenfalls in dem Speicher gespeichert und durch die Steuerung zu dem Softwaresimulationsrechner übertragen werden. Alternativ können die protokollierten Eingangssignale beispielsweise über einen Logikanalysator oder dergleichen erfaßt und durch denselben direkt zu dem Softwaresimulationsrechner über­ tragen werden.
Erfindungsgemäß können die Schaltungszustände für jeden Zy­ klus vorzugsweise in einem Speicher (RAM) gespeichert wer­ den, der wiederum bevorzugt als ein Ringspeicher ausgestal­ tet ist. Bei bevorzugten Ausführungsbeispielen der vorlie­ genden Erfindung sind die Schattenregister ferner durch FIFO-Speicher (FIFO = zuerst hinein, zuerst heraus) gebil­ det, so daß zu jedem Auslesetakt des Schattenregisters ein Wert aus den Nutzregistern der digitalen Logikschaltung aus­ gelesen und der Steuerung zur Verfügung gestellt werden kann, so daß eine lückenlose Beobachtung der Schaltung mög­ lich ist.
Die vorliegende Erfindung schafft einen Hardware-Debugger, der zyklisch die Schaltungszustände sämtlicher interner Kno­ ten einer digitalen Logikschaltung ausliest, um bei Erfassen eines Fehlers der digitalen Logikschaltung, bei der es sich um eine beliebige digitale Logikschaltung, beispielsweise ein PLD oder ein FPGA oder dergleichen handeln kann, einem Simulationsrechner geeignete Daten zur Verfügung stellen zu können, die die Bestimmung des Grunds für den Fehler bzw. den Ausfall ermöglichen. Der Hardware-Debugger erlaubt dabei eine Echtzeitverarbeitung, d. h., daß die Erfassung der Schaltungszustände der internen Schaltungsknoten sowie eine Unterbrechung durchgeführt werden kann, während die inte­ grierte Schaltung, d. h. die digitale Logikschaltung, und die Systemumgebung derselben in Echtzeit arbeiten. Um diese Echtzeitanforderungen zu erfüllen, ist es notwendig, daß ein Hardware-Debugger vorgesehen ist.
Der bei der vorliegenden Erfindung verwendete Hardware-De­ bugger ist vorzugsweise in der Lage, drei unterschiedliche Modi durchzuführen, einen Verfolgungsmodus, einen Unterbre­ chungsmodus und einen Aktualisierungsmodus. Der Verfolgungs­ modus ermöglicht, das vom Betrieb der digitalen Logikschal­ tung unabhängige Abtasten und Speichern aller Schaltungszu­ stände der internen Schaltungsknoten sowie das kontinuierli­ che Verfolgen und Speichern aller Eingangs/Ausgangs-Signale. Die abgetasteten Schaltungszustände beschreiben das interne Verhalten eines DUT, beispielsweise während eines Prototyp­ erstellungs-Prozesses oder während eines In-System-Tests. Die Eingangs/Ausgangssignale beschreiben die korrespondie­ renden Umgebungsdaten. Die erfaßten Schaltungszustands- und Eingangssignal-Daten dienen dann, wie oben erläutert wurde, der späteren Analyse der Schaltungsfunktionalität, insbeson­ dere der Rekonstruktion von Hardware-internen Zuständen des DUT in einer Simulationsumgebung. Rekonstruktion heißt da­ bei, daß das Simulationsmodell des DUT mit dem abgetasteten Schaltungszustand eines ausgewählten Zeitpunkts initiali­ siert wird. Als Stimuli für die Simulation dienen dann die abgetasteten Eingangssignaldaten. Somit ist es, wie oben er­ läutert wurde, für einen Benutzer nicht notwendig, sein Si­ mulationsmodell langwierig an den zu betrachtenden Zeitpunkt "heranzusimulieren". Lediglich die für die Analyse notwendi­ gen Zeitintervalle müssen detailliert simuliert werden. Der Effekt ist eine drastische Reduktion der benötigten Simula­ tionszeit.
Der Unterbrechungsmodus wird bei Auftreten bestimmter Unter­ brechungsbedingungen, die frei spezifizierbare Zustände des DUT sind, betreten. Dabei existieren zum einen interne Un­ terbrechungsbedingungen, die einen internen Schaltungszustand darstellen, der eine korrespondierende Aktion auslöst, beispielsweise einen internen Arithmetiküberlauf, und somit einen Fehlerzustand darstellt. Daneben können externe Unter­ brechungsbedingungen vorgegeben sein, bei denen außerhalb des DUT ein Zustand erreicht wird, der eine korrespondieren­ de Aktion auslöst, wobei dieser Zustand beispielsweise durch fehlerhafte Ausgangswerte bedingt sein kann. Interne und ex­ terne Unterbrechungsbedingungen werden im allgemeinen durch eine Zusatzhardware generiert. Daneben kann eine weitere Un­ terbrechung des Hardware-Debuggings durch eine Benutzerin­ tervention bewirkt werden, beispielsweise eine Beendigung des Hardware-Debuggings. Die beim Auftreten einer Unterbre­ chung durchgeführten Aktionen hängen vom Typ der Unterbre­ chung ab, wobei im allgemeinen das DUT gestoppt und der Schaltungszustand gespeichert wird. In Abhängigkeit von der Schwere der aufgetretenen Unterbrechung kann nachfolgend der Betrieb fortgesetzt oder ein Rücksetzen durchgeführt werden. Der Unterbrechungsmodus kann parallel zum Verfolgungsmodus aktiviert werden.
Der Aktualisierungsmodus schließlich ermöglicht es einem Be­ nutzer, definierte interne Schaltungszustände in dem DUT zu erzeugen. Somit können Betriebszustände der Hardware provo­ ziert werden, ohne daß die Hardware durch Eingangssignale in diesen Zustand gebracht werden muß. Dieser Modus kann dazu dienen, Grenzfälle von Betriebszuständen effektiv zu testen oder um nicht wieder oder nur schwer rekonstruierbare Hard­ ware-Zustände für Testzwecke einstellen zu können.
Ein Hardware-Debugger, der die obigen Betriebsmodi ermög­ licht, besteht bei bevorzugten Ausführungsbeispielen der vorliegenden Erfindung aus einem Schattenregister für jeden internen Schaltungsknoten des DUT, aus einem Speicher zum Speichern einer Mehrzahl von Schaltungszustandsdiagrammen, die jeweils bestimmten Zeitpunkten zugeordnet sind, sowie einer Steuerung, die das zyklische Speichern der Schaltungs­ zustandsdiagramme und das Auslesen derselben zu einem Simu­ lationsrechner ermöglicht. Ein solcher Hardware-Debugger er­ möglicht eine Echtzeit-Verfolgung der internen Schaltungszu­ stände ohne eine unbeabsichtigte Rückwirkung auf das DUT.
Ferner ist der Hardware-Debugger ohne Berücksichtigung tech­ nologiespezifischer Schaltungsvarianten auf alle üblichen Schaltkreistechnologien anwendbar. Der Hardware-Debugger ist vorzugsweise über einen Rechner steuerbar, wobei in dem Rechner die Aufbereitung der Verfolgungs- und Aktualisie­ rungs-Daten sowie die Beschreibung der Unterbrechungsbedin­ gungen erfolgt.
Die nach dem Auftreten einer Unterbrechungsbedingung auf der Grundlage der im Verfolgungsmodus erfaßten Schaltungszustän­ de und Eingangsdaten durchgeführte Simulation erfolgt vor­ zugsweise auf der Grundlage eines Schaltungsmodells, das als Gatternetzliste vorliegt. Somit entfällt die Notwendigkeit, die durch das Hardware-Debugging gewonnenen Daten aus der Gatterebene in die Register-Transfer-Ebene zu transformie­ ren.
Die vorliegende Erfindung ermöglicht somit eine zeitsparende Fehleranalyse, um die Ursache von in digitalen Logikschal­ tungen auftretenden Fehlern herauszufinden. Die vorliegende Erfindung ermöglicht das Herausfinden von Fehlerursachen auch dann, wenn die Systemumgebung unterschiedliche Stimuli für jede Wiederholung eines Hardware-Fehleranalyseverfahrens liefert. Gemäß der vorliegenden Erfindung muß der Benutzer nämlich nicht inkremental eine Fehleranalyse wiederholen, um die Fehlerursache einzukreisen, sondern kann die Fehlerursa­ chenforschung durch das zyklische Abtasten und Speichern al­ ler relevanten Daten, während der ersten Ausführung, bei der der Fehler auftritt, mittels einer Softwaresimulation, die nicht vom Zeitpunkt Null aus erfolgen muß, realisieren. Die Grenzen dieses Verfahrens des zyklischen Abtastens der rele­ vanten Daten bestehen lediglich in der begrenzten Abtastra­ te, die technologieabhängig ist, sowie in einem möglicher­ weise nach oben begrenzten Speicherraum für die große Anzahl von Signalen bei großen Logikschaltungsentwürfen bzw. langen Echtzeitläufen. In diesem Fall ermöglicht es die vorliegende Erfindung, die Ursache eines auch nur einmal auftretenden Fehlers herauszufinden, indem eine Softwaresimulation basie­ rend auf einem gespeicherten Schaltungszustandsdiagramm, das zu einem Zeitpunkt aufgenommen wurde, der dem Auftreten des Fehlers unmittelbar zeitlich vorhergeht, durchgeführt wird. Somit muß der Benutzer nicht auf ein nochmaliges Auftreten des Fehlers hoffen, was in vielen Fällen aufgrund der feh­ lenden Reproduzierbarkeit der Fehler erfolglos ist.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend, bezugnehmend auf die beiliegenden Zeich­ nungen näher erläutert. Es zeigen:
Fig. 1 ein schematisches Diagramm zur Erläuterung der vor­ liegenden Erfindung;
Fig. 2a bis 2d schematische Darstellungen unterschiedlicher Ausführungsbeispiele von Vorrichtungen zur Durchfüh­ rung des erfindungsgemäßen Verfahrens;
Fig. 3 eine schematische Darstellung einer Nutzregisterzel­ le;
Fig. 4 eine schematische Darstellung eines Schaltungsknoten aus einer mit einem Schattenregister versehenen Nutzregisterzelle gemäß der vorliegenden Erfindung;
Fig. 5 eine Tabelle zur Veranschaulichung des Betriebs des in Fig. 4 gezeigten Schaltungsknotens;
Fig. 6 eine schematische Darstellung zur Veranschaulichung von in einer Abtastkette oder einem Abtastweg ver­ schalteten Schattenregistern;
Fig. 7 eine schematische Darstellung zur Veranschaulichung eines Ausführungsbeispiels eines Schaltungsab­ schnitts zur Erzeugung einer Unterbrechungsbedin­ gung;
Fig. 8 eine schematische Darstellung zur Veranschaulichung eines bevorzugten Ausführungsbeispiels zum Schieben und Auslesen einer Abtastkette; und
Fig. 9 eine schematische Darstellung eines Schaltungsknotens, bei dem ein Nutzregister mit einem Schattenre­ gister, das durch einen FIFO-Speicher realisiert ist, versehen ist.
Bezugnehmend auf Fig. 1 wird nun ein bevorzugtes Ausfüh­ rungsbeispiel des erfindungsgemäßen Verfahrens zur Fehler­ analyse näher erläutert. Die obere in Fig. 1 dargestellten Achse ist eine Echtzeitachse, während die untere Achse eine virtuelle Simulationszeit darstellt. Erfindungsgemäß wird ein DUT 2 in Echtzeit unter Anlegen von Eingangssignalen 4, die den Einfluß einer Systemumgebung auf das DUT 2 darstel­ len können, betrieben. Während des Betriebs des DUT 2, das beispielsweise ein FPGA oder ein PLD sein kann, werden er­ findungsgemäß die Schaltungszustände aller internen Schal­ tungsknoten des DUT 2 zyklisch durch einen Hardware-Debugger 6 ausgelesen, was durch einen Pfeil 8 in Fig. 1 angedeutet ist. Der Hardware-Debugger 6 ist über eine Debugger-Schnitt­ stelle 9 mit dem DUT 2 verbunden. Obwohl der Hardware-Debug­ ger 6 und das DUT 2 in Fig. 1 als durch eine Schnittstelle 9 getrennt dargestellt sind, ist ein Teil des Hardware-Debug­ gers 6, nämlich zumindest jeweilige Schattenregister dessel­ ben, in der integrierten Schaltung, die das DUT 2 darstellt, enthalten. Das Betreiben der Logikschaltung, beispielsweise zum Durchführen eines Prototyp-Testens oder eines In-Sy­ stem-Testens wird während des Hardware-Debuggens fortge­ setzt, bis zu einem Zeitpunkt t1 ein Fehlerzustand 10 in dem DUT 2 auftritt. Dieser Fehlerzustand 10 stellt eine Unter­ brechungsbedingung dar.
Beim Auftreten einer solchen Unterbrechungsbedingung 10 wird, basierend auf den durch den Hardware-Debugger 6 zyk­ lisch ausgelesenen Schaltungszuständen sowie auf den, an das DUT 2 angelegten, Eingangssignalen 4 eine Softwaresimulation durchgeführt, um die dem Fehlerzustand 10 zugrundeliegende Ursache zu erforschen. Die Übergabe der oben genannten Daten ist in Fig. 1 schematisch durch einen Pfeil 12 dargestellt. An dieser Stelle sei angemerkt, daß die in Fig. 1 oberhalb des Pfeils 12 dargestellten Verfahrensabläufe als eine Echt­ zeitumgebung zu betrachten sind, während die unterhalb des Pfeils 12 dargestellte Zeitachse eine virtuelle Simulationszeit darstellt.
Wie in Fig. 1 zu erkennen ist, wird zur Simulation, um die Fehlerursache herauszufinden, von dem Zeitpunkt t1 zu einem Zeitpunkt t2 zurückgesprungen, um zu diesem Zeitpunkt t2 die Simulation zu beginnen. Das Rücksprungintervall wird vor­ zugsweise derart gewählt, daß das zum Zeitpunkt t2 gespei­ cherte Schaltungszustandsdiagramm einen ordnungsgemäßen Be­ trieb des DUT anzeigt. Dadurch ergibt sich ein Softwaresimu­ lationsintervall 14 zur Fehlerursachenanalyse, das zum Zeit­ punkt t2 beginnt. Somit kann erfindungsgemäß der Zeitver­ brauch für das Fehlerursachenanalyseverfahren, das beginnt, nachdem ein Fehlerzustand 10 erfaßt wurde, erheblich ver­ kürzt werden. Wie durch den Pfeil 12 schematisch dargestellt ist, werden die zyklisch ausgelesenen Daten für eine folgen­ de Analyse des Schaltungsverhaltens verwendet, wobei die Hardware-internen Zustände das interne Verhalten des DUT 2 beschreiben, während die Eingangssignale 4 die entsprechen­ den Umgebungsdaten darstellen, die zu dem beobachteten Ver­ halten führen.
An dieser Stelle sei angemerkt, daß das Rücksprungintervall von dem Zeitpunkt t1 zu dem Zeitpunkt t2 vorzugsweise derart gewählt ist, daß mit Sicherheit davon ausgegangen werden kann, daß die Schaltung bis zum Zeitpunkt t2 korrekt gear­ beitet hat. Um dies zu verifizieren, kann eine Überprüfung durchgeführt werden. Sollte diese ergeben, daß zum Rück­ sprungzeitpunkt die Schaltung nicht mehr korrekt gearbeitet hat, kann nach dem Rücksprung auf den Zeitpunkt t2 ein wei­ terer zeitlicher Rücksprung erfolgen, um sicherzustellen, daß zu Beginn der Softwaresimulation das DUT ordnungsgemäß gearbeitet hat. Die Softwaresimulation, die die Fehlerursa­ chenanalyse liefert, wird vorzugsweise unter Verwendung ei­ ner Simulationsumgebung für das Gatter-Modell erreicht, so daß das Simulationsmodell des DUT ohne weiteres mit einem Satz von Daten, die ein abgetastetes Schaltungszustandsdia­ gramm darstellen, initialisiert werden kann. Dieses abgeta­ stete Schaltungszustandsdiagramm ist dem Zeitpunkt t2 zuge­ ordnet. Somit muß erfindungsgemäß die Simulation nicht zum Zeitpunkt 0 beginnen. Vielmehr beginnt die Simulation zum Zeitpunkt t2, indem das Simulationsmodell mit dem zu diesem Zeitpunkt ausgelesenen Schaltungszustandsdiagramm initiali­ siert wird, und indem die abgetasteten Eingangssignale als Stimuli für die Gatterebenen-Simulation verwendet werden. Somit muß erfindungsgemäß nurmehr das Intervall zwischen dem Initialisierungszeitpunkt t2 und dem Fehlerzeitpunkt t1 si­ muliert werden, was eine drastische Zeiteinsparung gegenüber bekannten Simulationsverfahren liefert.
Überdies ist es erfindungsgemäß bevorzugt, daß der Zustand des DUT 2 über den Hardware-Debugger 6 voreingestellt werden kann, ohne hierzu eine Sequenz von externen Stimuli zu benö­ tigen. Dies kann durch die gemäß der vorliegenden Erfindung verwendeten Schattenregister realisiert werden, insbesondere um extreme Betriebsbedingungen wirksam zu testen oder um DUT-Zustände zu Testzwecken einzustellen, die durch externe Stimuli schwer erreicht werden können, beispielsweise um die Fähigkeit von Zustandsmaschinen zu überprüfen, aus uner­ laubten Zuständen heraus in endlicher Zeit erlaubte Zustände zu erreichen.
Nachdem nunmehr allgemein das erfindungsgemäße Verfahren er­ läutert wurde, werden im folgenden Ausführungsbeispiele für Vorrichtungen zum Durchführen des erfindungsgemäßen Verfah­ rens beschrieben.
In Fig. 2 ist ein erstes Ausführungsbeispiel einer erfin­ dungsgemäßen Vorrichtung gezeigt, wobei ein DUT 2 darge­ stellt ist, das Komponenten 20 des Hardware-Debuggers der erfindungsgemäßen Vorrichtung enthält. Die Komponenten 20 beziehen sich auf die Komponenten des Hardware-Debuggers, die in der integrierten Schaltung der DUT 2 angeordnet sind, nämlich Schattenregister und optional Einrichtungen zum Er­ fassen der Eingabesignale 4 von einer Systemumgebung 22 so­ wie Einrichtungen zum Erfassen der Ausgangssignale von dem DUT 2, beispielsweise um basierend darauf Unterbrechungsbe­ dingungen zu bestimmen. Die DUT-internen Elemente 20 des Hardware-Debuggers sind über eine Schnittstelle 24 mit einer Hardware-Debugger-Steuerung 26 verbunden, die den Betrieb des Hardware-Debuggers steuert und ausgelesene und erfaßte Daten in einem Speicher 28, vorzugsweise einem RAM, spei­ chert. Die Hardware-Debugger-Steuerung ist ferner über eine Schnittstelle 30 mit einem Computer 32 verbunden, auf dem die Softwaresimulation auf der Grundlage der von der Steue­ rung 26 gelieferten Daten durchgeführt wird, wobei diese Da­ ten über die Schnittstelle 30 zu dem Computer 32 geliefert werden. Bei dem in Fig. 2a dargestellten Ausführungsbeispiel stellt die Verbindung zwischen DUT-internem Anteil 20 des Debuggers und der Steuerung 26, nämlich die Schnittstelle 24, die zeitkritische Verbindung dar.
Bei dem in Fig. 2b dargestellten Ausführungsbeispiel ist die Hardware-Debugger-Steuerung in zwei Teile unterteilt, ein in der integrierten Schaltung 34 des DUT 2 befindliches Kern­ element 36 und ein außerhalb befindliches Steuerelement 26'. Bei diesem Ausführungsbeispiel befindet sich der Kern 36 der Funktionalität der Debugger-Steuerung in der Schaltung 34, in der auch das DUT 2 realisiert ist, so daß die zeitkriti­ sche Verbindung, in Fig. 2b mit dem Bezugszeichen 38 be­ zeichnet, hier kürzer realisiert sein kann, so daß sich kür­ zere Signallaufzeiten ergeben, was höhere Abtastfrequenzen ermöglicht.
Das dargestellte Hardware-Debugger-Kernelement 36 ist eine DUT-unabhängige Zustandsmaschine, um die Kommunikation zwi­ schen der Debugger-Steuerung 26' und den DUT-internen Debug­ ger-Komponenten 20 zu steuern. Dabei muß das Debugger-Kern­ element das Übertragen von Daten zu den Schattenelementen, die Unterbrechungserfassung und eine mögliche Benutzerinter­ vention über die Debugger-Schnittstelle 24' zu der Debug­ ger-Steuerung 26' steuern. Das Lesen der Schattenregister ist zeitkritisch, wobei das Kernelement 36 den Schiebetakt für als Schiebekette verschaltete Schattenelemente liefert und ein oder mehrere Schiebeketten auslesen muß. Die Zeit, die für diese Aktion benötigt wird, bestimmt im wesentlichen die Abtastperiode. Daher ist das Auslesen von Schattenregi­ sterketten und das Beschreiben des RAM 28 vorzugsweise als eine Pipelinestruktur so parallel wie möglich organisiert. Im Gegensatz dazu ist das Beschreiben der Schattenregister während des Debugger-Aktualisierungsmodus weniger zeitkritisch, da in diesem Modus das DUT üblicherweise in einem Wartezustand ist. Ein weiterer Vorteil dessen, das Kernele­ ment 36 in der integrierten Schaltung des DUT anzuordnen, liegt darin, daß es ermöglicht, interne Unterbrechungen schnellstmöglich zu erfassen. Alternativ zu dem in Fig. 2a dargestellten Ausführungsbeispiel kann das Kernelement 36 der Debugger-Steuerung auch über eine direkte Schnittstelle mit dem externen RAM 28 verbunden sein.
Das in Fig. 2c gezeigte Ausführungsbeispiel unterscheidet sich von dem in Fig. 2b gezeigten dadurch, daß nunmehr die gesamte Debugger-Steuerung 26 zusammen mit dem RAM 28 in der integrierten Schaltung 34 des DUT 2 eingebettet ist. Dieses Ausführungsbeispiel stellt somit eine kompakte Lösung für einen In-System-Test mit maximaler Abtastfrequenz dar. Nach­ teilig ist jedoch der erhebliche zusätzliche Schaltungsauf­ wand und die für den RAM verbrauchte Chipfläche für das DUT. Ferner ist hierbei anzumerken, daß der On-Chip-RAM 28, wie er in Fig. 2c gezeigt ist, üblicherweise eine geringere Speicherkapazität besitzt als ein externer RAM.
In Fig. 2d ist schematisch eine Möglichkeit dargestellt, um den Eingabevektor zu dem DUT 2, d. h. die Eingangssignale 4 zu denselben, kontinuierlich zu überwachen, um diese Ein­ gangssignale einem Rechner zur Verwendung als Stimuli für die Simulation zur Verfügung zu stellen. Zu veranschauli­ chenden Zwecken erfolgt gemäß Fig. 2d die Erfassung der Ein­ gangssignale 4 über einen Logikanalysator 40, der mit den Eingangsanschlüssen des DUT 2 sowie dem Rechner 32 verbunden ist. Es sei jedoch angemerkt, daß die Eingangssignale zu dem DUT 2 auch auf andere Art und Weise erfaßt werden können, beispielsweise durch entsprechende Hardwarekomponenten in der integrierten Schaltung des DUT, so daß die Eingangssi­ gnale durch die Debugger-Steuerung erfaßt werden können.
Bezugnehmend auf die Fig. 3 bis 5 erfolgt nun eine Beschrei­ bung bevorzugter Ausführungsbeispiele der Komponenten des Hardware-Debuggers, die in der integrierten Schaltung des DUT angeordnet sind.
In Fig. 3 ist ein Nutzregister 50 gezeigt, das in einer di­ gitalen Logikschaltung dazu dient, einen Schaltungszustand eines internen Schaltungsknotens zu definieren. Das Nutzre­ gister 50 ist bei dem dargestellten Ausführungsbeispiel ein D-Flip-Flop mit einem Dateneingang 1D, einem Aktivierungs­ eingang 1E und einem Takteingang C1. An dem Dateneingang 1D liegt ein Datensignal d an, an dem Aktivierungseingang 1E liegt ein Aktivierungssignal en an, während an dem Taktein­ gang C1 ein Nutztakt clk anliegt. Das Flip-Flop 50 besitzt einen Datenausgang q und einen invertierten Datenausgang qb.
Fig. 4 zeigt einen internen Systemknoten einer digitalen Lo­ gikschaltung, bei dem dem internen Nutzregister 50 ein Schattenregister 60, das vorzugsweise den gleichen Aufbau wie das Nutz- oder Daten-Register 50 aufweist, zugeordnet ist. Das Nutzregister 50 und das Schattenregister 60 sind über zwei Demultiplexer 62 und 64, ein UND-Gatter 66 und ein ODER-Gatter 68 derart verschaltet, daß eine normale Funktion des Nutzregisters 50, ein Abtasten des Schattenregisters 60, ein Aktualisieren des Inhalts des Nutzregisters 50 über das Schattenregister oder eine Übernahme des Inhalts des Nutzre­ gisters 50 in das Schattenregister 60 möglich ist.
Zu diesem Zweck ist ein Steuersignal upd, das einen Aktuali­ sierungsmodus anzeigt, mit einem Eingang des ODER-Gatters 68 und dem Steuereingang des Demultiplexers 62 verbunden. Der Ausgang des Demultiplexers 62 ist mit dem Dateneingang 1D des Nutzregisters verbunden. An einem Eingang des Demulti­ plexers 62 liegt das Dateneingangssignal d an, während der andere Eingang des Demultiplexers 62 mit dem Ausgang des Schattenregisters 60 verbunden ist. Der zweite Eingang des ODER-Gatters 68 ist mit dem Ausgang des UND-Gatters 66 ver­ bunden, an dessen Eingängen das Datenregisteraktivierungssi­ gnal en und ein Datenregister-Chip-Aktivierungssignal ce an­ liegen. An dem Takteingang C1 des Nutzregisters 50 liegt der Nutztakt clk an. Der Ausgang des Nutzregisters 50 ist mit einem Eingang des Demultiplexers 64 verbunden, während der andere Eingang des Demultiplexers 64 mit einem Schattenregi­ ster-Scan-Pfad-Eingang si verbunden ist. Der Demultiplexer 64 wird durch ein Auslesemodussignal cpt gesteuert, wobei der Ausgang des Demultiplexers 64 mit dem Dateneingang 1D des Schattenregisters 60 verbunden ist. Am Aktivierungsein­ gang 1E des Schattenregisters 60 liegt ein Schattenregi­ ster-Aktivierungssignal se an, während an dem Takteingang C1 desselben ein Schattenregister-Taktsignal sclk anliegt. Der Ausgang des Schattenregisters 60 bildet den Schattenregi­ sterabtastausgang, so daß das Schattenregister über den Ein­ gang si und den Ausgang so in einen Scan-Pfad geschaltet werden kann.
Hinsichtlich der Betriebsweise der in Fig. 4 dargestellten Schaltung sei auf die in Fig. 5 gezeigte Tabelle verwiesen, in der die jeweilige Belegung der Eingänge und der Ausgänge in den jeweiligen Betriebsmodi dargelegt ist.
Lediglich erläuternd sei erwähnt, daß während des normalen Betriebs des Nutzregisters 50 das Aktualisierungssignal upd inaktiv, d. h. 0 ist, so daß über den Demultiplexer 62 das Datensignal d am Dateneingang 1D des Nutzregisters 50 an­ liegt. Während des Abtastmodus ist aus Auslesesignal cpt de­ aktiv, d. h. 0, so daß das Signal am Schattenregister-Scan- Pfadeingang si an den Dateneingang 1D des Schattenregisters 60 angelegt ist. Im Aktualisierungsmodus ist das Aktualisie­ rungssignal upd aktiv, d. h. 1, so daß über den Demultiplexer 62 das Ausgangssignal des Schattenregisters 60 an den Daten­ eingang 1D des Nutzregisters 50 angelegt wird, so daß der Inhalt des Schattenregisters 60 in das Nutzregister 50 über­ nommen werden kann. Im Auslesemodus ist das Auslesesignal cpt aktiv, d. h. 1, so daß über den Demultiplexer 64 der In­ halt des Nutzregisters 50 in das Schattenregister 60 über­ nommen werden kann.
Obwohl oben bezugnehmend auf Fig. 4 ein spezifisches Ausfüh­ rungsbeispiel für die Verschaltung von Nutzregister und Schattenregister dargestellt ist, ist es klar, daß Nutz- und Schattenregister in einer unterschiedlichen Weise verschal­ tet sein können, um die erläuterte Funktionalität zu lie­ fern. In gleicher Weise muß das Schattenregister nicht durch ein zu dem Datenregister identisches Element gebildet sein, sondern kann ein in abweichender Weise ausgestaltetes Registerelement sein.
In Fig. 6 ist die Verschaltung einer Mehrzahl von in Fig. 4 gezeigten Schattenregistern in einen Abtastweg zum Bilden einer Schiebekette dargestellt. Die Bezugszeichen 100, 102, 104 und 106 bezeichnen dabei jeweils eine Schaltungsstruk­ tur, die einen internen Schaltungsknoten einer digitalen Lo­ gikschaltung darstellt. Dabei sind in den Fig. 4 und 6 glei­ che Signale gleich bezeichnet, wobei in Fig. 6 lediglich der äußerste linke Schaltungsknoten mit den Bezugszeichen von Fig. 4 bezeichnet ist. Wie in Fig. 6 zu erkennen ist, ist jeweils der Scan-Pfad-Eingang si eines jeweiligen Schatten­ registers mit dem Scan-Pfad-Ausgang so eines vorhergehenden Schattenregisters verbunden, so daß die Schattenregister in Form einer Schiebekette ausgelesen werden können. Die Signa­ le clk, upd, ce, cpt, se und sclk sind in der dargestellten Weise über gemeinsame Leitungen anlegbar, um eine Abtastket­ te zu realisieren.
Wie oben bezugnehmend auf Fig. 1 erläutert wurde, findet er­ findungsgemäß eine Softwaresimulation bei Auftreten einer Unterbrechungsbedingung statt. Unterbrechungen können dabei auf unterschiedliche Arten erfaßt werden. Zum einen können komplexe Unterbrechungsbedingungen existieren, bei denen beispielsweise ein erfaßtes Schaltungszustandsdiagramm mit einem erwarteten vorgegebenen Schaltungszustandsdiagramm verglichen wird, wobei bei fehlender Übereinstimmung beur­ teilt wird, daß eine Unterbrechungsbedingungen vorliegt. Da­ neben können Unterbrechungsbedingungen auf Gatterebene vor­ gesehen sein, welche vorbestimmte Zellen sind, die automa­ tisch in die DUT-Gatterebenenbeschreibung eingebracht wer­ den. Hierbei werden nur einzelne Knoten oder Vektoren über­ wacht, wobei eine beispielhafte Unterbrechungszelle für eine solche Überwachung in Fig. 7 dargestellt ist. Eine Leitung 80 stellt dabei einen zu überwachenden Knoten dar und ist mit einem Eingang eines Komparators 82 verbunden. Ein zwei­ ter Eingang des Komparators 82 ist mit einer Einrichtung 84, die einen Vergleichswert liefert, verbunden. Der Referenz- oder Vergleichs-Wert für den Komparator 82 kann über einen getrennten Unterbrechungszellen-Scan-Pfad 86 eingestellt werden. Dabei ist ein Vergleichswert immer nur dann gültig, wenn ein einzelnes Freigabebit "enable" (Fig. 7) gesetzt ist. Somit kann der Benutzer die Funktionalität des Kompara­ tors ein- und ausschalten. Der Ausgang des Komparators 82 kann beispielsweise das Datenregister-Chip-Aktivierungssi­ gnal ce sein, so daß der Normalbetrieb des DUT eingestellt wird, falls der Vergleich in dem Komparator 82 keine Über­ einstimmung ergibt und somit eine Unterbrechungsbedingung bestimmt wird.
Wie oben angeführt wurde, erfolgt die Speicherung der im Verfolgungsmodus aufgenommenen Daten, d. h. der Schaltungs­ zustandsdiagramme oder optional zusätzlich der Eingangssi­ gnale, üblicherweise in externen oder internen RAM-Berei­ chen. Die Größe der eingesetzten RAM-Bereiche bestimmt die Anzahl der speicherbaren Zustandsvektoren, d. h. die Histo­ ry-Tiefe der erzeugten Schaltungszustandshistorie. Bei prak­ tisch relevanten Schaltungen, d. h. mehreren tausend Flip- Flops und einem Echtzeit-Debugging im Sekundenbereich, ist es technisch unmöglich, alle aufgetretenen Zustandsvektoren zwischenzuspeichern. Bei bevorzugten Ausführungsbeispielen der vorliegenden Erfindung wird daher der RAM-Speicher als ein Ringpuffer organisiert, bei dem immer die letzten n Zu­ standsvektoren für eine Auswertung zur Verfügung stehen, so daß sich eine History-Tiefe von n ergibt.
Im Gegensatz zum Auslesen der Schattenregister ist das Ini­ tialisieren des DUT mit Aktualisierungsdaten nicht zeitkri­ tisch, so daß die Aktualisierungsvektoren auf dem Host-Com­ puter gehalten werden können. Der jeweils aktuelle Vektor kann dann beispielsweise über eine JTAG-Schnittstelle direkt in das DUT oder zweckmäßigerweise in den RAM geladen werden, wobei nachfolgend in Umkehrung zu dem Verfolgungsmodus die RAM-Bereiche in die korrespondierenden Register kopiert wer­ den. Die RAM-Größe ist hierbei unkritisch, da jeweils nur ein Aktualisierungsvektor zwischengespeichert werden muß.
Bezüglich der Takte, mit denen die Nutzregister und die Schattenregister betrieben werden (siehe clk und sclk in Fig. 4) ist anzumerken, daß diese mit identischem oder unterschiedlichem Takt betrieben werden können. Werden die Schattenregister mit einem höherfrequenten Takt betrieben als die Datenregister, ist es notwendig, daß der Takt sclk der Schattenregister eine mindestens dreifach höhere Fre­ quenz aufweist, als der Takt clk der Datenregister. Die Verwendung eines solchen höheren Schattenregistertakts ist vorteilhaft, wenn lange Schiebeketten verwendet werden. Alternativ können sowohl Nutzregister als auch Schattenre­ gister taktsynchron zueinander betrieben werden, was vor­ zugsweise bei hohen DUT-Frequenzen realisiert wird. Dabei ist anzumerken, daß geringe Schiebefrequenzen durch eine Parallelisierung der Abtastwege kompensiert werden können.
Die Abtastfrequenz für die Zustandsvektoren im Verfolgungs­ modus wird durch die Länge des Zustandsvektors und die Länge des Schreibzyklusses für den Verfolgungs-RAM begrenzt. Für eine maximale Abtastfrequenz sollte das Schieben der Schat­ tenregister im Sinne einer Pipelineverarbeitung im Schatten des Write-Zyklus erfolgen, wie es in Fig. 8 dargestellt ist, so daß jeweils während des Schiebens eines nachfolgenden Zy­ klusses n + 1 die Daten für den vorhergehenden Zyklus n ge­ schrieben werden. Somit entsteht kein weiterer Zeitverlust. Um ein genügend schnelles Schieben zu sichern, muß entweder die Schiebefrequenz entsprechend hoch sein oder die Schat­ tenregister müssen in mehrere Abtastgruppen gruppiert wer­ den. Alternativ ist es möglich, die Schattenregister durch FIFO-Speicher zu realisieren, so daß zwischen zwei Abtast­ punkten jeweils nur ein Taktabstand vorliegen muß. Mit ande­ ren Worten heißt das, daß zu jedem Schattenregistertakt sclk ein Wert aus der Schaltung ausgelesen und der Hardware-De­ bugger-Steuerung zur Verfügung gestellt werden kann, so daß eine lückenlose Beobachtung der Schaltung möglich ist.
Ein Ausführungsbeispiel einer derartigen Realisierung ist in Fig. 9 gezeigt, in der gleiche Elemente wie in Fig. 4 mit gleichen Bezugszeichen versehen sind. Hier sind, um eine FIFO-Tiefe von drei zu realisieren, zwei FIFO-Register 200 und 202, die durch clk getaktet werden, zwischen den Daten­ ausgang q des Nutzregisters 50 und den einen Eingang des De­ multiplexers 64 geschaltet. Die FIFO-Register 200 und 202 werden über ein Signal FIFO-cpt gesteuert, d. h. aktiviert. Durch die FIFO-Register 200 und 202 ist es möglich, parallel zum Auslesen der Schiebekette bereits neue Abtastwerte aus dem Nutzregister zwischenzuspeichern. Diese Abtastwerte kön­ nen auch zusammenhängend sein, wobei die maximale Anzahl zu­ sammenhängender Abtastwerte die FIFO-Tiefe, im dargestellten Ausführungsbeispiel drei, nicht überschreiten darf. Dies kann durch ein Steuerwerk im Hardware-Debugger, d. h. bei­ spielsweise die Steuerung 26 in Fig. 2a, sichergestellt wer­ den. Dadurch kann ein FIFO-Überlauf verhindert werden, der immer dann auftreten würde, wenn mehr Abtastwerte in die FIFO hineingeschrieben werden, als über die Schiebekette aus Schattenregistern herausgelesen werden können.
Wie bereits oben erwähnt wurde, ist für eine nachgelagerte Analyse des DUT-Verhaltens beim Hardware-Test die Aufzeich­ nung aller Eingangsdaten notwendig. Diese Eingangsdaten kön­ nen beispielsweise durch herkömmliche Logikanalysatoren oder durch Spezialhardware aufgezeichnet werden, wobei die jewei­ lige Realisierung von solchen Faktoren wie z. B. der benötig­ ten Abtastrate, der Breite des Eingangssignalvektors und der History-Tiefe sowie der zur Verfügung stehenden kommerziel­ len Hardware abhängen wird.

Claims (11)

1. Verfahren zur Beschleunigung der Fehleranalyse digitaler Logikschaltungen (2), die eine Mehrzahl interner Schal­ tungsknoten (100, 102, 104, 106) mit zugeordneten Nutz­ registern (50), in denen Schaltungszustände der internen Schaltungsknoten (100-106), die von Eingangssignalen (4) abhängen, gespeichert sind, aufweisen, wobei jedem Nutz­ register (50) ein Schattenregister (60), über das der Schaltungszustand des Nutzregisters (50) ausgelesen wer­ den kann, zugeordnet ist, mit folgenden Schritten:
  • a) Betreiben der Logikschaltung (2) unter Anlegen von Eingangssignalen (4) an dieselbe, und Protokollieren der angelegten Eingangssignale (4);
  • b) zyklisches Auslesen der Schaltungszustände der inter­ nen Schaltungsknoten (102-106) über die Schattenregi­ ster (60) während des Betriebs der Logikschaltung (2) und Speichern der Schaltungszustände der internen Schaltungsknoten (100-106) der Logikschaltung (2) für jeden Zyklus zum Erzeugen einer Schaltungszustandshi­ storie;
  • c) beim Auftreten einer vorbestimmten Unterbrechungsbe­ dingung, Anhalten des Betriebs der Logikschaltung (2), Zurückspringen in der Schaltungszustandshistorie zu einem vorhergehenden Zyklus, und Durchführen einer Softwaresimulation (14) des Betriebs der Logikschal­ tung (2) unter Verwendung der protokollierten Ein­ gangssignale und der für den Zyklus, zu dem zurückge­ sprungen wurde, gespeicherten Schaltungszustände.
2. Verfahren nach Anspruch 1, bei dem die vorbestimmmte Un­ terbrechungsbedingung durch vorbestimmte Schaltungszu­ stände der internen Schaltungsknoten (100-106), die einen inkorrekten Betrieb der Logikschaltung (2) anzei­ gen, definiert ist.
3. Verfahren nach Anspruch 2, bei dem in Schritt c) um eine solche Anzahl von Zyklen in der Schaltungszustandshisto­ rie zurückgesprungen wird, daß die Schaltungszustände, die für den Zyklus, zu dem zurückgesprungen wird, ge­ speichert wurden, einen korrekten Betrieb der Logik­ schaltung (2) anzeigen.
4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem die Schaltungszustände für jeden Zyklus in einem Ringpuffer (28) gespeichert werden.
5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem vor dem Betreiben der Logikschaltung (2) die Logikschaltung über die Schattenregister (60) auf einen vorbestimmten Anfangszustand initialisiert wird.
6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem je­ weils eine Mehrzahl von Schattenregistern (60) zu einer Schiebekette verschaltet ist, die im Schritt b) zyk­ lisch ausgelesen wird.
7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem das zyklische Auslesen im Schritt b) mit einer Frequenz (sclk) erfolgt, die unabhängig von der Taktfrequenz (clk), mit der die Logikschaltung betrieben wird, ist.
8. Verfahren nach einem der Ansprüche 1 bis 7, bei dem die Schattenregister (60) durch FIFO-Speicher gebildet sind.
9. Vorrichtung zum Durchführen eines Verfahrens nach einem der Ansprüche 1 bis 8, mit folgenden Merkmalen:
einem Schattenregister (60) für jeden einer Mehrzahl in­ terner Schaltungsknoten (100, 102, 104, 106) einer digi­ talen Logikschaltung (2), wobei jeder interne Schal­ tungsknoten (100-106) ein Nutzregister (50) aufweist, dessen Schaltungszustand, der von Eingangssignalen (4) abhängt, über das zugeordnete Schattenregister (60) aus­ gelesen werden kann;
einem Speicher (28) zum Speichern einer Mehrzahl von Schaltungszustandsdiagrammen, wobei jedes Schaltungszu­ standsdiagramm die Schaltungszustände der internen Schaltungsknoten (100-106) zu einem vorbestimmten Zeit­ punkt darstellt;
einer Steuerung (26; 26', 36), die mit den Schattenregi­ stern (60) und dem Speicher (28) verbunden ist, um zyk­ lisch Schaltungszustandsdiagramme in dem Speicher (28) zu speichern; und
einer Schnittstelle zum Übertragen zumindest eines Schaltungszustandsdiagramms zu einem Softwaresimula­ tionsrechner.
10. Vorrichtung nach Anspruch 9, bei der die Schattenregi­ ster durch FIFO-Register gebildet sind.
11. Vorrichtung nach Anspruch 9 oder 10, bei der jeweils ei­ ne Mehrzahl von Schattenregistern (60) zu einer Schiebe­ kette verschaltet sind, die durch die Steuerung (26; 26', 36) zyklisch auslesbar ist.
DE1999150838 1999-10-21 1999-10-21 Verfahren und Vorrichtung zur Fehleranalyse digitaler Logikschaltungen Expired - Fee Related DE19950838C2 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE1999150838 DE19950838C2 (de) 1999-10-21 1999-10-21 Verfahren und Vorrichtung zur Fehleranalyse digitaler Logikschaltungen
CH18542000A CH694927A5 (de) 1999-10-21 2000-09-21 Verfahren und Vorrichtung zur Fehleranalyse digitaler Logikschatungen..
ITMI20002236 IT1319009B1 (it) 1999-10-21 2000-10-17 Procedimento e dipositivo per l'analisi degli errori di circuitilogici digitali
FR0013441A FR2800169B1 (fr) 1999-10-21 2000-10-20 Procede et dispositif d'analyse de defauts dans des circuits logiques numeriques

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE1999150838 DE19950838C2 (de) 1999-10-21 1999-10-21 Verfahren und Vorrichtung zur Fehleranalyse digitaler Logikschaltungen

Publications (2)

Publication Number Publication Date
DE19950838A1 DE19950838A1 (de) 2001-06-07
DE19950838C2 true DE19950838C2 (de) 2001-09-27

Family

ID=7926479

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1999150838 Expired - Fee Related DE19950838C2 (de) 1999-10-21 1999-10-21 Verfahren und Vorrichtung zur Fehleranalyse digitaler Logikschaltungen

Country Status (4)

Country Link
CH (1) CH694927A5 (de)
DE (1) DE19950838C2 (de)
FR (1) FR2800169B1 (de)
IT (1) IT1319009B1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004040196B3 (de) * 2004-08-19 2006-04-06 Siemens Ag Verfahren zum simultanen Verarbeiten von funktionalen Daten und Testdaten

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10119170A1 (de) * 2001-01-08 2005-04-07 Universität Leipzig Verfahren zur schnellen Fehleranalyse digitaler Schaltungen und Schaltungsanordnung zur Durchführung des Verfahrens
DE10136703C1 (de) 2001-07-27 2003-04-17 Infineon Technologies Ag Logikvorrichtung zum Testen einer integrierten Schaltung
EP1980964B1 (de) 2007-04-13 2016-03-23 Yogitech Spa Verfahren und Computerprogramm zur Durchführung Fehlermöglichkeits-und Einflussanalyse für integrierte Schaltungen
CN111413584B (zh) * 2020-03-19 2023-08-25 国网湖北省电力有限公司荆门供电公司 一种基于故障方向的配电网故障定位线性规划方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5383167A (en) * 1991-10-16 1995-01-17 Nextwave Design Automation Method and apparatus for histogram based digital circuit simulator
US5680583A (en) * 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
US5764079A (en) * 1996-03-11 1998-06-09 Altera Corporation Sample and load scheme for observability of internal nodes in a PLD
US5870410A (en) * 1996-04-29 1999-02-09 Altera Corporation Diagnostic interface system for programmable logic system development

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5568380A (en) * 1993-08-30 1996-10-22 International Business Machines Corporation Shadow register file for instruction rollback
US5822564A (en) * 1996-06-03 1998-10-13 Quickturn Design Systems, Inc. Checkpointing in an emulation system
US5771240A (en) * 1996-11-14 1998-06-23 Hewlett-Packard Company Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5383167A (en) * 1991-10-16 1995-01-17 Nextwave Design Automation Method and apparatus for histogram based digital circuit simulator
US5680583A (en) * 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
US5764079A (en) * 1996-03-11 1998-06-09 Altera Corporation Sample and load scheme for observability of internal nodes in a PLD
US5870410A (en) * 1996-04-29 1999-02-09 Altera Corporation Diagnostic interface system for programmable logic system development

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004040196B3 (de) * 2004-08-19 2006-04-06 Siemens Ag Verfahren zum simultanen Verarbeiten von funktionalen Daten und Testdaten

Also Published As

Publication number Publication date
FR2800169A1 (fr) 2001-04-27
FR2800169B1 (fr) 2003-08-29
ITMI20002236A1 (it) 2002-04-17
IT1319009B1 (it) 2003-09-19
DE19950838A1 (de) 2001-06-07
CH694927A5 (de) 2005-09-15

Similar Documents

Publication Publication Date Title
DE68928613T2 (de) Bidirektionale-Boundary-Scan-Testzelle
DE69031362T2 (de) Verzögerungsfehler-Testvorrichtung
DE69834892T2 (de) Eingebetteter Logikanalysator
DE3882266T2 (de) Abfrageprüfgerät für digitale Systeme mit dynamischem Direktzugriffspeicher.
DE69019402T2 (de) Prüfverfahren und -gerät für integrierte Schaltungen.
DE60211659T2 (de) Verfahren und vorrichtung zur diagnose von ausfällen in einer integrierten schaltung unter verwendung von techniken des typs design-for-debug (dfd)
DE69107463T2 (de) Integrierte Schaltung, System und Verfahren zur Fehlererzeugung.
DE60023882T2 (de) System auf einem Chip mit reprogrammierbarem Testgerät, Fehlerbeseitiger und Busüberwachung
DE3903835A1 (de) Verfahren und vorrichtung zum pruefen von mikroprozessorsystemen unter verwendung von speicheremulationstechniken
DE19937232B4 (de) Entwicklungs- und Bewertungssystem für integrierte Halbleiterschaltungen
DE69217524T2 (de) Testschaltung, vorgesehen in digitalen logischen Schaltungen
DE68923086T2 (de) Verfahren zum Testen von hierarchisch organisierten integrierten Schaltungen und integrierte Schaltungen, geeignet für einen solchen Test.
DE102004009693A1 (de) Technik zum Kombinieren eines Abtasttests und eines eingebauten Speicherselbsttests
DE112008000542T5 (de) Verfahren und Vorrichtungen zum Schätzen einer Position eines Hängenbleibe-Defekts in einer Abtastkette eines Testobjekts
DE4434927C2 (de) Verfahren zum Testen einer Schaltungsplatine
DE3702408C2 (de)
EP1720100A1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
DE3341766A1 (de) Verfahren und vorrichtung zum zeitlichen koordinieren von daten
DE102013114512B4 (de) Globales Einfangschema mit niedriger Leistung für Kerne
DE19814415A1 (de) Logikanalyse-Untersystem in einem Zeitscheibenemulator
EP1565825A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen
DE19950838C2 (de) Verfahren und Vorrichtung zur Fehleranalyse digitaler Logikschaltungen
DE69215090T2 (de) Verfahren und System zum Testen eines integrierten Schaltkreises mit Abfragedesign
EP1430320B1 (de) Elektronischer baustein und verfahren zu dessen qualifizierungsmessung
DE68910461T2 (de) GERäT ZUR RECHNERGESTÜTZEN ERZEUGUNG VON PRÜFPROGRAMMEN FÜR DIGITALE SCHALTUNGEN.

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20130501