DE19950838C2 - Verfahren und Vorrichtung zur Fehleranalyse digitaler Logikschaltungen - Google Patents
Verfahren und Vorrichtung zur Fehleranalyse digitaler LogikschaltungenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3177—Testing 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.
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.
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)
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)
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)
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)
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 |
-
1999
- 1999-10-21 DE DE1999150838 patent/DE19950838C2/de not_active Expired - Fee Related
-
2000
- 2000-09-21 CH CH18542000A patent/CH694927A5/de not_active IP Right Cessation
- 2000-10-17 IT ITMI20002236 patent/IT1319009B1/it active
- 2000-10-20 FR FR0013441A patent/FR2800169B1/fr not_active Expired - Fee Related
Patent Citations (4)
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)
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 |