-
(1) Gebiet der Erfindung
-
Diese
Erfindung betrifft ein Verfahren und eine Vorrichtung zum Erzeugen
einer Prüfsequenz, um
einen Fehler in einer digitalen Schaltung zu prüfen.
-
(2) Beschreibung verwandter
Technik
-
Die
derzeitige Anwendung von LSI auf eine Digitalschaltung ist beachtlich
und wird in nahezu allen Bereichen genutzt. Eine Technik zum Prüfen eines
Fehlers in der LSI ist dem Fortschritt der LSIs entsprechend sehr
wichtig, da die Signale darin nicht direkt zu beobachten und zu
kontrollieren sind.
-
Zum
automatischen Erzeugen einer Prüfsequenz
zum Testen eines Fehlers in einer digitalen Schaltung wurden verschiedene
Verfahren vorgeschlagen. Im Allgemeinen wird das Vorhandensein eines
Fehlers geprüft,
indem zuerst eine adäquate Eingangsfrequenz
an einen Eingangsanschluss einer zu prüfenden Schaltung eingegeben
wird und anschließend
die sich daraus ergebenden Ausgänge
eines Ausgangsanschlusses der Schaltung mit einem erwarteten Ausgang
verglichen werden. Diese Eingangssequenz ist die Prüfsequenz,
die erzeugt wird, um jeden angenommenen Fehler zu detektieren.
-
Konventionelle
Prüfsequenzerzeugungsverfahren
werden beispielsweise in dem Kapitel 1 unter 1.4.2 Stuck at Fault
Testing eines Nachschlagewerks mit dem Titel FAULT TOLERANT COMPUTING: THEORY
AND TECHNIQUES Band I, herausgegeben von PRENTICE-HALL, Englewood
Cliff, New Jersey, und in HITEC: A TEST GENERATION PACKAGE FOR SEQUENTIAL
CIRCUITS von T. Niermann und J. H. Patel als ein Nachschlagewerk
der European Design Automation Conference 1991 offen gelegt. Weitere
Entwicklungen werden durch die folgenden Dokumente offen gelegt.
-
GB
1381 413 stellt ein Verfahren zum Prüfen eines Schaltwerks in der
Art, bei der in Reaktion auf einen vorgegebenen Eingang eine vorgegebene
Antwort gesucht wird, bereit. Ein signifikantes Problem beim Prüfen von
Schaltwerken besteht darin, die Schaltung in einen vorgegebenen
Zustand zu versetzen, so dass die Testmuster die Schaltung effektiv prüfen können. GB
1381 413 beschreibt, wie ein Homing-Sequenzmuster, das das asynchrone
Schaltwerk unabhängig
von dem Ausgangszustand der Schaltung während der Prüfung in
eine prüfbare
Bedingung versetzt, erzeugt werden kann, und erreicht dies durch
das Ableiten einer Gesamtzustandssequenz der Gesamtzustandsbedingungen
eines gesetzten Zustands, bei dem keine Zustandsvariablen vorhanden
sind, und durch das Verwenden eines primären Eingangsvektors der erzeugten
Sequenz in der Vorwärtsreihenfolge
(d. h. in der entgegengesetzten Reihenfolge zu der, in der sie erzeugt
wurde).
-
Als
Reaktion auf die geringe Effizienz und die hohe Fehlerrate der Begründungssuche
in Vorwärtsrichtung
wurde durch Karunaratne und Hill eine vektorbasierte Zustandsbegründungssuche
in der Rückwärtsrichtung
zur Prüfsequenzerzeugung
in Schaltwerken entwickelt (siehe Proceeding of the Annual International
Phoenix Conference on Computers and Communications, Scottsdale,
21.–23.
März 1990, CONF.
9, 21. März
1990, Seite 630–637).
Dieses Verfahren macht sich den Fakt, dass die Datenpfade und Verbindungen
zwischen Registern, Eingängen,
Ausgängen
und Bussen größtenteils
vektorisiert sind, zunutze, wobei die Zieldaten, während sie
durch die verschiedenen Datenpfade zurückgeschickt werden, in Vektorform
erhalten bleiben. Während
einer Suche in Rückwärtsrichtung
werden bekannte Datenvektoren an Primäreingängen erscheinen und bestimmen infolgedessen
die Eingangsvektorwerte bei verschiedenen Kontrollzuständen. Im
Gegensatz dazu muss eine Suche in der Vorwärtsrichtung bestimmte Werte für Eingangsvektoren,
ohne Kenntnis der Beziehung zwischen den transformierten Zielzustand-Datenvektoren
und den Eingängen,
bestimmen.
-
Im
Einzelnen läuft
ein konventionelles Prüfsequenzerzeugungsverfahren
wie folgt ab: Ein zu detektierender Fehler ist ein Haftfehler, welcher
ein vermuteter Modellfehler auf einer zu testenden Schaltung ist.
Ein solcher Fehler verursacht, dass ein Wert einer Signalleitung
in der Schaltung eingerichtet wird, um entweder eine logische 0
oder eine logische 1 zu sein, der jeweils als „0-Haftfehler" oder als „1-Haftfehler" bezeichnet wird.
Diese Haftfehler werden, basierend auf der Netzliste der Schaltung,
im Voraus auf einer Fehlertabelle, wie in der 1 gezeigt,
registriert. Die Tabelle enthält
fünf Spalten: „Signalleitungen", die alle Signalleitungen
in der Schaltung anzeigen, „Fehler", die entweder einen
0-Haftfehler (s-a-0) oder einen 1-Haftfehler (s-a-1) anzeigen, „Detektion" zeigt das erfolgreiche
Detektieren oder die Detektierbarkeit durch eine Prüfsequenz
für einen weiteren
Fehler mit einer 1 an, „Prozess" zeigt den Abschluss
eines Prüfsequenzerzeugungsprozesses durch
eine 1 an (es ist dabei unerheblich, ob der Prozess erfolgreich
oder nicht erfolgreich war) und „redundanter Fehler" zeigt die Redundanz,
d. h. die Nichtdetektierbarkeit eines Fehlers, durch eine 1 an.
Beispielsweise wurde durch den Prozess festgestellt, dass s-a-0
in der Signalleitung „a" kein redundanter Fehler
ist, und eine Prüfsequenz
wurde erfolgreich erzeugt. Andererseits wurde ermittelt, dass s-a-1
in der Signalleitung „c" kein redundanter
Fehler ist, und das Erzeugen einer Prüfsequenz ist fehlgeschlagen.
-
Dieses
konventionelle Prüfsequenzerzeugungsverfahren
in einem Schaltwerk ist in der 2 als Ablaufdiagramm
dargestellt.
-
Der
Prüfsequenzerzeugungsprozess
beginnt in dem Ablaufdiagramm bei Schritt 401. In dem Schritt 402 wird
festgestellt, ob Fehler vorhanden sind, ausgenommen redundante Fehler
(im Folgenden als nicht detektierte Fehler bezeichnet), für die noch
keine Prüfsequenz
erzeugt wurde und für
die ein Prüfsequenzerzeugungsprozess
noch nicht durchgeführt
wurde (im Folgenden als nicht weiterverarbeitete Fehler bezeichnet).
-
Falls
ein Fehler vorhanden ist, dann geht das System, das diesen Prozess
ausführt,
weiter zu dem Schritt 403, andernfalls geht das System
zu dem Schritt 408, um den Prozess zu beenden.
-
In
Schritt 403 wird unter nicht detektierten und nicht weiterverarbeiteten
Fehlern ein Fehler, für den
die Prüfsequenz
erzeugt ist (im Folgenden als Zielfehler bezeichnet), ausgewählt und
gleichzeitig wird die entsprechende Zeile in der Spalte „Prozess" auf 1 gesetzt.
-
In
dem Schritt 404 wird als Primärschritt für eine Prüfsequenzerzeugung ein Testmuster
für einen Zielfehler
erzeugt, dies nur, um für
die Verknüpfungsschaltung
zu prüfen,
ob der Fehler ein logisch nicht detektierbarer Fehler (im Folgenden
als redundanter Fehler bezeichnet) ist. Wenn festgestellt ist, dass
der Zielfehler ein redundanter Fehler ist oder mehr Zeit erfordert,
als für
das Erzeugen der Prüfsequenz
zugelassen ist, wird die entsprechende Zeile in der Spalte „redundanter
Fehler" auf 1 gesetzt
und das System geht zu dem Schritt 402 zurück. In dem Schritt 404 wird
vor dem Erzeugen der Prüfsequenz ein
solcher nicht detektierbarer Fehler ausgeschlossen.
-
In
dem Schritt 405 wird eine für den Zielfehler in Schritt 403 ausgewählte Prüfsequenz
erzeugt, um die Effekte des Zielfehlers von der Fehlerstelle zu
einem externen Ausgangsanschluss zu propagieren (im Folgenden als
Fehlerpropagierungsprozess bezeichnet). Wenn der Fehlerpropagierungsprozess
erfolgreich ist, dann geht das System weiter zu dem Schritt 406 und
andernfalls geht das System zu dem Schritt 402 zurück, um den
nächsten
Zielfehler zu verarbeiten.
-
In
dem Schritt 406 wird eine Prüfsequenz erzeugt, um den Anfangszustand
der Schaltung in einen Zustand, der eintritt, wenn der Fehlerpropagierungsprozess
gerade abgeschlossen wird, zu überführen (in
Folgenden als Zustandsinitialisierungsprozess bezeichnet).
-
Wenn
der Prozess erfolgreich ist, dann geht das System weiter zu dem
Schritt 407 und andernfalls geht das System zu dem Schritt 402 zurück, um den
nächsten
Zielfehler zu verarbeiten. Der Anfangszustand kann jeder Zustand
sein, jedoch kann im Allgemeinen, in welchem Zustand auch immer
sich die Schaltung befindet, solange alle Flip-Flops (im Folgenden
als FFs bezeichnet) in der zu prüfenden Schaltung
entweder in dem Don't-care-Zustand oder in
dem unbestimmten Zustand sind, eine Prüfsequenz, durch die eine Fehlerprüfung durchgeführt werden
kann, gewonnen werden. Tatsächlich
kann, wenn die Schaltung in einem Zustand ist, der eintritt, wenn
eine unmittelbar vorhergehende Fehlerprüfung gerade abgeschlossen wurde,
die für
die darauf folgenden Fehlerprüfungen
erforderliche Zeit verkürzt werden.
-
In
dem Schritt 407 wird mit der Prüfsequenz des in dem Schritt 403 ausgewählten Zielfehlers
eine Fehlersimulation durchgeführt
und die entsprechende Zeile in der Spalte „Detektion" wird auf 1 gesetzt. Es können mehrere
als ein Zielfehler detektiert werden, weil alle Fehler gleichzeitig
in dem gemeinsamen Pfad simuliert werden.
-
In
Schritt 408 endet der Prüfsequenzerzeugungsprozess.
-
Der
Fehlerpropagierungsprozess des Schrittes 405, der auf dem
Reverse Time Processing (RTP) (bei diesem Verfahren wird der Suchraum
einer Schaltung ((Raum der möglichen
Kombinationen der Knotenzustände))
rückwärts entlang
dem Taktverlauf durchsucht) basiert, wird im Ablauf in der 3 gezeigt.
Gemäß dem RTP
wird ein Schaltwerk, das logisch aus einer kombinatorischen Schaltung
und aus FFs besteht, als eine Reihe kombinatorischer Schaltungen
in Zeitsequenzen, die dem Schaltwerk noch immer logisch gleich sind,
iteriert. In der Reihe von Schaltungen wird ein Pfad, der sich von
einem das Ziel darstellenden externen Ausgang bis zu der Fehlerstelle
erstreckt, heuristisch bestimmt und rückwärts verfolgt und anschließend wird
durch den Fehlerpropagierungsprozess eine Eingangssequenz für das entlang
dem Pfad zu propagierende Fehlersignal ermittelt. Bei diesem Prozess
wird ein Eingang für das
Fehlersignal des zu propagierenden Zielfehlers an jeder iterierten
kombinatorischen Schaltung gefunden (im Folgenden als Zeitrahmen
bezeichnet), d. h., dass der Pfad aktiviert ist.
-
Genauer
gesagt, werden in jedem Zeitrahmen die folgenden, wie in 3 gezeigten,
Schritte ausgeführt:
-
Die
Fehlerpropagierungsweiterverarbeitung beginnt in dem Ablaufdiagramm
bei dem Schritt 601.
-
In
Schritt 602 wird festgestellt, ob ein Pfad, der einen Zielfehler
enthält,
sensitiviert wurde oder nicht. Wenn ja, dann wird der Fehlerpropagierungsprozess
als erfolgreich betrachtet. Das System geht zu dem Schritt 605 und
andernfalls geht es weiter zu dem Schritt 603.
-
In
dem Schritt 603 wird die Zielfehlerstelle oder einer der
Ausgänge
der FFs, entsprechend den Eingängen
der kombinatorischen Schaltung, als eine D-Grenze ausgewählt. Dann
wird der D-Grenze ein Fehlersignal zugewiesen und anschließend wird
das Fehlersignal durch das Zuweisen jeweils der Eingangswerte und
der Zustandswerte zu den externen Eingangsanschlüssen und den Ausgängen der
FFs entweder zu einem externen Anschluss oder zu dem Eingang der
D-Grenze, die in einem unmittelbar vorhergehenden Zeitrahmen (im
Folgenden als ein Ziel-PPO bezeichnet) ausgewählt wird, pro pagiert. Wenn
der Fehlerpropagierungsprozess erfolgreich ist, dann geht das System
zu dem Schritt 604 und andernfalls geht es zu dem Schritt 605.
-
In
dem Schritt 604 werden die Zustandswerte, die auf diese
Art und Weise, um den Fehlerpropagierungspfad zu sensitivieren,
den externen Eingangsanschlüssen
zugewiesenen wurden, als eine Prüfsequenz
abgespeichert und das System geht, mit dem Eingang eines FFs, dessen
Ausgang die D-Grenze als ein neues Ziel-PPO ist, zu dem Schritt 602.
-
Im
Schritt 605 endet der Fehlerpropagierungsprozess.
-
Der
Zustandsinitialisierungsprozess des Schrittes 406 wird
im Ablauf in der 4 dargestellt. Bei diesem Prozess
wird basierend auf den zugewiesenen Zustandswerten eine Eingangssequenz
erzeugt, so dass der Zustandsübergang
von einem Zustand, der eintritt, wenn der Fehlerpropagierungsprozess
gerade abgeschlossen wurde (im Folgenden als Fehlererregungszustand
bezeichnet), beginnt und entgegengesetzt zu dem Zustandsübergang
in einer tatsächlichen
Fehlerprüfung
rückwärts zu dem
Anfangszustand verläuft.
-
In
der 4 beginnt der Zustandsinitialisierungsprozess
bei dem Schritt 501.
-
In
Schritt 502 wird festgestellt, ob der aktuelle Zustand
der Schaltung mit ihrem Anfangszustand übereinstimmt oder nicht übereinstimmt.
Wenn Übereinstimmung
vorhanden ist, dann geht das System zu dem Schritt 505,
um den Prozess zu beenden, und andernfalls geht das System weiter
zu dem Schritt 503.
-
In
dem Schritt 503 wird der aktuelle Zustand durch das Zuweisen
der Zustandswerte zu den Ausgängen
der externen Anschlüsse
und zu den FFs begründet.
Wenn das Begründen
erfolgreich ist, geht das System anschließend zu dem Schritt 504,
andernfalls geht es zu dem Schritt 505, um den Prozess zu
beenden.
-
In
dem Schritt 504 werden die auf diese Art und Weise den
externen Ausgangsanschlüssen
zugewiesenen Zustandswerte als eine Prüfsequenz abgespeichert, wohingegen
die Zustandswerte, die den Ausgängen
der FFs zugewiesen wurden, d. h., die Zu standswerte, die den aktuellen
Zustand begründet haben,
als der aktuelle Zustand definiert werden. Dann geht das System
zurück
zu dem Schritt 502.
-
In
dem Schritt 505 endet der Zustandsinitialisierungsprozess.
-
Der
Vorgang der Prüfsequenzerzeugung
mit dem oben erwähnten
Aufbau wird wie folgt beschrieben:
-
Als
Erstes wird aus den nicht detektierten und nicht verarbeiteten Fehlern,
die in der Fehlertabelle in der 1 gezeigt
werden, ein Zielfehler ausgewählt
(Schritte 401–403).
-
Dann
wird ein Testmuster für
die kombinatorische Schaltung in einer zu prüfenden Schaltung erzeugt, um
zu prüfen,
ob der ausgewählte
Zielfehler ein redundanter Fehler ist oder für den Prozess zusätzliche
Zeit erforderlich macht.
-
Die
zu prüfende
Schaltung ist in der 5(a) dargestellt
und ihr vereinfachtes Diagramm wird in der 5(b) gezeigt.
Da die Schaltung logisch in eine kombinatorische Schaltung und in
FFs aufgeteilt werden kann, wird berücksichtigt, dass die Eingänge der
kombinatorischen Schaltung aus externen Anschlüssen, die Primäreingänge (im
Folgenden als PIs bezeichnet) sind, und aus Pseudo-Primäreingängen (im
Folgenden als PPIs bezeichnet), die von den FFs ausgegeben werden,
bestehen, wohingegen die Ausgänge
der kombinatorischen Schaltung aus den externen Ausgangsanschlüssen, die
primäre
Ausgänge
sind (im Folgenden als POs bezeichnet), und aus Pseudo-Primärausgängen (im
Folgenden als PPOs bezeichnet), die durch die FFs eingegeben werden,
bestehen.
-
Ein
Testmuster für
die kombinatorische Schaltung wird durch das Zuweisen jedes adäquaten Eingangswertes
unter Verwendung der PIs und der PPIs der Eingänge wie auch der POs und PPOs
der Ausgänge
der kombinatorische Schaltung erzeugt, so dass das Fehlersignal
eines Zielfehlers in dem Schritt 404 zu einem Ausgang propagiert
wird. Im Ergebnis geht das System, wenn die Testmustererzeugung
erfolgreich ist, weiter zu dem Schritt 405, wohingegen,
wenn der Zielfehler ein redundanter Fehler ist, eine 1 in die Spalte „redundanter
Fehler" in der Fehlertabelle
gesetzt wird und das System zu dem Schritt 402 zurückgeht,
um den nächsten
Zielfehler auszuwählen.
-
In
dem Schritt 405 wird ein Fehlerpropagierungsprozess ausgeführt, um
eine Prüfsequenz
für den
Zielfehler zu erzeugen, wie in der 6 gezeigt. Die
Zeichnung enthält
drei Zeitrahmen 701, 702 und 703 in dem
Schaltwerk, die jeweils als erster, zweiter und dritter verarbeitet
werden. Diese Zeitrahmen entsprechen der kombinatorischen Schaltung,
die entsprechend dem Zustandsübergang
der von der kombinatorischen Schaltung getrennten FFs erweitert
ist (als Referenz ist die Schaltung der 5(b) erweitert und
wird in der 7 gezeigt).
-
Obwohl
aus Gründen
der Vereinfachung in der 6 nur drei Zeitrahmen gezeigt
werden, sind stattdessen in einer tatsächlichen LSI zahlreiche Zeitrahmen
erforderlich. Es sollte beachtet werden, dass der Fehlerpropagierungsprozess
entgegen dem tatsächlichen
Betrieb eines Schaltwerks in umgekehrter Richtung von dem Zeitrahmen 701 bis
zu dem Zeitrahmen 703 fortschreitet. Die 6 enthält des Weiteren
einen externen Ausgangsanschluss 704 des Schaltwerks, einen
Propagierungspfad 705 eines Fehlersignals in dem Zeitrahmen 701,
einen weiteren Fehlerpropagierungspfad 706 in dem Zeitrahmen 702,
die in dem Zeitrahmen 702 verwendeten FFs 710–712 und
eine Fehlerstelle 713 für
den Zielfehler „a".
-
Der
im Ablauf in der 3 dargestellte Fehlerpropagierungsprozess
verläuft
unter Bezugnahme auf die 6 im Einzelnen wie folgt:
-
In
dem ersten Zeitrahmen 701 kann der Zielfehler 713 auf
Grund dessen, dass er unerreichbar für die kombinatorischen POs
ist, nicht sensitiviert werden (Schritt 602 in 3),
so dass der Ausgang des FF3 (709) heuristisch als eine
D-Grenze ausgewählt
wird. Der Fehlerpropagierungspfad 705 wird sensitiviert,
um FF3 (709) ein Fehlersignal zuzuweisen und dieses zu
dem externen Ausgangsanschluss 704 zu propagieren. Mit
anderen Worten werden den externen Ausgangsanschlüssen Zustandswerte
und die FFs zum Sensitivieren des Pfades, der von FF3 (709)
bis zu dem externen Ausgangsanschluss 704 führt, zugewiesen
(Schritt 603). Die erfolgreich zugewiesenen Zustandswerte
werden als eine Prüfsequenz
abgespeichert und der Eingang von FF3, dessen Eingang die D-Grenze
ist, wird als ein neuer Ziel-PPO eingerichtet.
-
In
dem nächsten
Zeitrahmen 703 wird der in dem Zeitrahmen 702 als
eine D-Grenze ausgewählte Ausgang
von FF2 (711) zu einem Ziel-PPO gemacht. Es wird vorausgesetzt,
dass ein Fehlersignal, welche D-Grenze auch immer ausgewählt wird,
nicht zu dem Eingang von FF2 (711) als dem Ziel-PPO propagiert werden
kann. Da infolgedessen der Fehlerpropagierungsprozess für den Fehler 713 nicht
erfolgreich ist, endet der Fehlerpropagierungsprozess (Schritt 604). Anschließend geht
das System zu dem Schritt 402 in der 2 zurück (Schritt 405),
um den nächsten
Zielfehler auszuwählen
und denselben Prozess zu wiederholen (Schritte 402–405).
-
Wenn
das Fehlersignal anderseits erfolgreich zu dem Zielfehler 713 in
dem Zeitrahmen 703 propagiert wird, werden die in jedem
Zeitrahmen den externen Anschlüssen
zugewiesenen Zustandswerte als eine Prüfsequenz erzeugt. Jedoch ist
der Zustand von jedem FF der Fehlererregungszustand (in dem Fall
oben entspricht dieser dem in dem Zeitrahmen 703 erfolgreich
zugewiesenen Zustandswert), so dass die auf diese Art und Weise
erzeugte Prüfsequenz
nur für
den Fehlererregungszustand effektiv ist. Deshalb ist das Finden
einer Sequenz zum Überführen des
Initialzustands der Schaltung in ihren Fehlererregungszustand erforderlich.
Dies ist der Zustandsinitialisierungsprozess.
-
Der
Verlauf des Zustandsinitialisierungsprozesses wird unter Bezugnahme
auf die 8 wie folgt beschrieben. In
der Zeichnung stellen die Zahlen 801–804 jeden Zustand
in der Schaltung dar, 801 stellt einen Fehlererregungszustand
dar, 804 stellt einen Anfangszustand dar. Die Zweige 805–808 stellen jeweils
die Möglichkeit
von Übergängen von
dem Zustand 803 zu dem Zustand 802, von dem Zustand 801 zu
dem Zustand 803 und von dem Zustand 804 zu dem
Zustand 803 dar.
-
An
dem Punkt der Vollendung des Fehlerpropagierungsprozesses ist der
aktuelle Zustand der Zustand 801 (S1), der nicht mit dem
Anfangszustand übereinstimmt
(Schritt 502 in 4).
-
Deshalb
ist der aktuelle Zustand begründet, d.
h., die Zustände
der externen Anschlüsse
der FFs sind zugewiesen, so dass der aktuelle Zustand transferiert
werden kann. Hierbei wird vorausgesetzt, dass die Zuweisung des
Zustands 802 (S2) zu den FFs begründet ist (Schritt 503).
Der begründete
Zustand wird als ein neuer aktueller Zustand behandelt (S2) (Schritt 504).
-
Der
aktuelle Zustand wird auf die gleiche Art und Weise begründet und
der Zustand S3 wird zu einem neuen aktuellen Zustand gemacht (Schritte 502–504).
Bei der Begründung
des aktuellen Zustands S3 kann der aktuelle Zustand S3 von einem der
Zustände
S1 oder S4 transferiert werden. Wenn der begründete Zustand der Zustand S4
ist, ist die Zustandsinitialisierung erfolgreich. In diesem Fall kann
eine Prüfsequenz
durch das Berechnen einer Eingangssequenz, die in dem vorhergehenden
Fehlerpropagierungsprozess gewonnen wurde, und einer weiteren Eingangssequenz,
die in dem Zustandsinitialisierungsprozess zugewiesen wurde, gewonnen
werden.
-
Wenn
der begründete
Zustand hingegen der Zustand S1 ist, wird die Zustandsinitialisierung
ohne Erfolg wiederholt und geht in eine Übergangsschleife, ohne jemals
den Initialzustand zu erreichen.
-
Nachdem
der Zustandsinitialisierungsprozess durchgeführt wurde, wird für den Zielfehler
unter Verwendung der gewonnenen Prüfsequenz eine Fehlersimulation
ausgeführt.
Nachdem bestätigt
wurde, dass der Zielfehler durch die externen Anschlüsse detektierbar
ist, wird die entsprechende Zeile in der Spalte „Detektion" auf 1 gesetzt (Schritt 407 in der 2).
Dann geht das System zu dem Schritt 402 zurück. Das
zuvor beschriebene Verhalten wird wiederholt, um für jeden
Zielfehler den Prüfsequenzerzeugungsprozess
auszuführen.
-
Zuletzt
wird der Prüfsequenzerzeugungsprozess
in der 7 wie folgt beschrieben. Die „X"-Markierungen auf den Signalleitungen
stellen Zielfehler dar.
-
Ein erster Zeitrahmen
in dem Propagierungsprozess
-
Es
wird vorausgesetzt, dass, da die Sensitivierung eines Pfades, der
einen Zielfehler mit „X"-Markierung enthält, nicht
abgeschlossen wurde (Schritt 602 in 6), ein
Ausgang Y2 von FF2 als D-Grenze ausgewählt wird (erste Hälfte des
Schrittes 603). Die Zustandswerte zur Sensitivierung des
Pfades zwischen einem Eingangssignal Y2 und einem externen Anschluss
0 werden in einer kombinatorischen Schaltung wie folgt zugewiesen:
-
Zwei
Eingänge
(I, Y2) eines UND-Gatters G2 müssen
(1, D) sein, damit ein Fehlersignal D zu dem externen Anschluss
0 ausgegeben werden kann. In diesem Fall kann ein Eingang y1 don't care sein. Demgemäß wird ein
Zustandswert (I, y1, y2) = (1, X, D) zugewiesen (zweite Hälfte des
Schrittes 603). Dieser Zustandswert (I, X, D) wird als ein Teil
der Prüfsequenz
abgespeichert und der Eingang y2 von FF2 wird zu einem neuen Ziel-PPO gemacht (Schritt 604).
-
Ein zweiter Zeitrahmen
in dem Propagierungsprozess
-
Es
wird vorausgesetzt, dass ein Zielfehler mit einer „X"-Markierung als eine
D-Grenze ausgewählt wurde
(Schritt 602 und die erste Hälfte des Schrittes 603).
-
Die
Zustandswerte zur Sensitivierung des Pfades zwischen dem Zielfehler
und Y2 des Ziel-PPOs werden in einer kombinatorischen Schaltung
wie folgt zugewiesen:
-
Zwei
Eingänge
eines ODER-Gatters G3 (der Ausgang von G1, y1) müssen (D, 0) sein, damit das Fehlersignal
D zu Y2 ausgegeben werden kann, und zusätzlich müssen zwei Eingänge des
UND-Gatters G1 (I, Zielfehler) (1, D) sein. Deshalb wird ein Zustandswert
(I, y1, y2) = (1, 0, 0) zugewiesen (die zweite Hälfte des Schrittes 603).
-
Dieser
Zustandswert (1, 0, 0) wird als ein Teil der Prüfsequenz abgespeichert und
ein Eingang von FF1 wird zu einem neuen Ziel-PPO gemacht (Schritt 604).
Da jedoch der Zielfehler sensitiviert wurde (Schritt 602),
endet der Propagierungsprozess (Schritt 605).
-
Zustandsinitialisierungsprozess
-
In
Reihenfolge wird ein Zustandsinitialisierungsprozess durchgeführt.
-
Wenn
vorausgesetzt wird, dass der Initialzustand (FF1, FF2) = (0, 0)
ist, dann endet der Zustandsinitialisierungsprozess sofort (Schritte 502 und 505 in
der 4).
-
Das
Folgende ist eine Beschreibung des Falles, bei dem der Initialzustand
(FF1, FF2) = (X, X), d. h. don't
care, ist. Da der Initialzustand (X, X) und der aktuelle Zustand
(0, 0) nicht miteinander übereinstimmen
(Schritt 502) wird ein Zustandswert zum Begründen des
aktuellen Zustands zugewiesen.
-
Um
FF1 (Y1 = 0) zu begründen,
sollten die zwei Eingänge
des UND-Gatters G1 (I, y2) (0, X) sein, und um FF2 (Y2 = 0) zu begründen, sollten
die Eingänge
des ODER-Gatters G3 (der Ausgang von G1, y1) (0, 0) sein. In diesem
Fall sollte y2 = X sein. Deshalb begründet das Zuweisen von I = 0
als der Eingangswert den Zustand (0, 0) (Schritt 503).
Dieser Eingangswert I = 0 wird als ein Teil der Prüfsequenz abgespeichert
und der begründete
Zustand (0, X) wird zum aktuellen Zustand gemacht (Schritt 504). Da
er nicht mit dem Initialzustand übereinstimmt (Schritt 502),
ist der aktuelle Zustand begründet.
Um FF1 (Y1 = 0) zu begründen,
sollten zwei Eingänge des
UND-Gatters G1 (I, y1) (0, X) sein, und um FF2 (Y2 = 0) zu begründen, sollten
die zwei Eingänge
des ODER-Gatters
G3 (der Ausgang von G1, y1) (0, X) sein. In diesem Fall sollte y1
= X sein, so dass die Zuweisung I = 0 als der Eingangswert den Zustand
(0, X) begründet
(Schritt 503).
-
Dieser
Eingangswert I = 0 wird als Teil der Prüfsequenz abgespeichert und
der begründete
Zustand wird zu dem aktuellen Zustand gemacht (Schritt 504).
Da er mit dem Initialzustand übereinstimmt
(Schritt 502), wird der Begründungsprozess beendet (Schritt 505).
-
Infolgedessen
ist eine Sequenz {0011} gewonnen, die in das Eingangssignal I eingegeben
werden soll.
-
Gemäß dem zuvor
beschriebenen Prüfsequenzerzeugungsverfahren
bleiben jedoch, wegen des Fehlens einer eingerichteten Strategie
für nicht erfolgreiche
Fehlerpropagierungsprozesse oder Zustandsinitialisierungsprozesse,
viele Fehler unerkannt.
-
Zusammenfassung
der Erfindung
-
In
Anbetracht der zuvor geschilderten Umstände ist es eine Aufgabe dieser
Erfindung, ein Verfahren und eine Vorrichtung zum Erzeugen einer Prüfsequenz
mit einem hohen Fehlerzustandserkennungsgrad durch das Verbessern
der Wahrscheinlichkeit eines erfolgreichen Zustandsinitialisierungsprozesses
bereitzustellen.
-
Gemäß einem
Aspekt der Erfindung wird ein Verfahren zum Generieren einer Prüfsequenz
durch einen Zustandsinitialisierungsprozess bereitgestellt, wobei
Eingangssignalwerte, die in die externen Eingangsanschlüsse eines
zu testenden Schaltwerks einzugeben sind, gefunden werden, um den
Zustand der Schaltung von ihrem Anfangszustand in einen Zustand,
der auftrat, wenn ein Fehlerpropagierungsprozess für einen
Haftfehler gerade abgeschlossen wurde, zu überführen, die folgenden Schritte
umfassend:
um den aktuellen Zustand des Schaltwerks zu begründen, Zuweisen
der Ausgänge
von Speicherelementen und der in die externen Eingangseinschlüsse einzugebenden
Eingangssignalwerte, wobei der Zuweisungsvorgang, um den Anfangszustand
des Schaltwerks zu erreichen, beginnend von einem Zustand, der auftrat,
wenn der Fehlerpropagierungsprozess gerade abgeschlossen wurde,
abgearbeitet wird, Feststellen, ob der auf diese Weise zugewiesene
mit einem Zustand, der auftrat, wenn der Fehlerpropagierungsprozess
gerade abgeschlossen wurde, und mit einem zuvor zugewiesenen Zustand übereinstimmt,
und Neubeginnen des Zuweisungsvorgangs, wenn die zwei Zustände als übereinstimmend
festgestellt wurden, während
wenigstens der letzte Zustand derer, die bisher zugewiesen wurden, aufgehoben
wird.
-
Der
Schritt des Neubeginnens kann den Zuweisungsvorgang von einem Zustand,
der auftrat, wenn der Fehlerpropagierungsprozess gerade abgeschlossen
wurde, beginnen.
-
Der
Schritt des Neubeginnens kann den Zuweisungsvorgang von einem Zustand
unmittelbar vor dem übereinstimmenden
Zustand beginnen.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung wird eine Vorrichtung
zum Generieren einer Prüfsequenz
durch einen Zustandsinitialisierungsprozess bereitgestellt, wobei
Eingangssignalwerte, die in die externen Eingangsanschlüsse eines
zu testenden Schaltwerks einzugeben sind, gefunden werden, um den
Zustand der Schaltung von ihrem Anfangszustand in einen Zustand,
der auftrat, wenn ein Fehlerpropagierungsprozess für einen Haftfehler
gerade abgeschlossen wurde, zu überführen, Folgendes
umfassend: Zuweisungsmittel zum, um den aktuellen Zustand des Schaltwerks
zu begründen,
Zuweisen der Ausgänge
von Speicherelementen und der in die externen Eingangseinschlüsse einzugebenden
Eingangssignalwerte, wobei der Zuweisungsvor gang, um den Anfangszustand
des Schaltwerks zu erreichen, beginnend von einem Zustand, der eintrat,
wenn der Fehlerpropagierungsprozess gerade abgeschlossen wurde,
abgearbeitet wird, Feststellungsmittel zum Feststellen, ob der auf diese
Weise zugewiesene mit einem Zustand, der auftrat, wenn der Fehlerpropagierungsprozess
gerade abgeschlossen wurde, und mit einem zuvor zugewiesenen Zustand übereinstimmt,
und Mittel zum Neubeginnen, zum Neubeginnen, wenn die zwei Zustände als übereinstimmend
festgestellt wurden, während
wenigstens der letzte Zustand derer, die bisher zugewiesen wurden,
aufgehoben wird.
-
Der
Schritt des Neubeginnens kann den Zuweisungsvorgang von einem Zustand,
der auftrat, wenn der Fehlerpropagierungsprozess gerade abgeschlossen
wurde, beginnen.
-
Der
Schritt des Neubeginnens kann den Zuweisungsvorgang von einem Zustand
unmittelbar vor dem übereinstimmenden
Zustand beginnen.
-
Gemäß der Vorrichtung
und dem Verfahren mit dem oben beschriebenen Aufbau wird detektiert, ob
ein Zustandsübergang
in dem Zustandsinitialisierungsprozess in eine Schleife geht (d.
h., dass zwei identische Zustände
vorhanden sind), und dann wird der Prozess durch das Definieren
des Zustands, der die Schleife verursacht, als einen unzulässigen Zustand,
neu begonnen.
-
Kurzbeschreibung
der Zeichnungen
-
Diese
und andere Aufgaben, Vorteile und Merkmale der Erfindung werden
aus der folgenden Beschreibung, die in Verbindung mit den begleitenden
Zeichnungen, die ein spezielles Ausführungsbeispiel der Erfindung
darstellen, dargelegt wird, offensichtlich. Wobei in den Zeichnungen
-
1 eine
Musterfehlertabelle für
eine zu prüfende
Schaltung ist,
-
2 ein
Ablaufdiagramm eines konventionellen Prüfsequenzerzeugungsverfahrens
für ein Schaltwerk
ist,
-
3 ein
Ablaufdiagramm des Fehlerpropagierungsprozesses bei dem Verfahren
der 2, basierend auf dem Reverse-Time-Processing-Verfahren
ist,
-
4 ein
Ablaufdiagramm des Zustandsinitialisierungsprozesses in dem Verfahren
der 2 ist,
-
5(a) eine kombinatorische Schaltung und
Flip-Flops in dem Schaltwerk zeigt und 5(b) das
vereinfachte Diagramm ist,
-
6 eine
Funktionsdarstellung des Fehlerpropagierungsprozesses in dem Verfahren
der 2 ist,
-
7 ein
Beispiel einer Prüffsquenzerzeugung
in der in der 5(b) gezeigten Schaltung
ist,
-
8 ein
Beispiel eines Zustandsübergangs in
dem Zustandsinitialisierungsprozess ist,
-
9 ein
Ablaufdiagramm eines a-Prüfsequenzerzeugungsverfahrens
für ein
Schaltwerk ist,
-
10 eine
Tabelle ist, die eine Gruppe nicht zulässiger D-Grenzen zeigt,
-
11 ein
Ablaufdiagramm des in der 9 gezeigten
Fehlerpropagierungsprozesses ist,
-
12 eine
Funktionsdarstellung des Fehlerpropagierungsprozesses der 11 ist,
-
13 ein
Ablaufdiagramm eines modifizierten Fehlerpropagierungsprozesses
ist,
-
14 eine
Tabelle ist, die eine Gruppe von nicht zulässigen Kombinationen in dem
gleichen Ausführungsbeispiel
zeigt,
-
15 eine
Funktionsdarstellung des Fehlerpropagierungsprozesses der 13 ist,
-
16 ein
Ablaufdiagramm des Zustandsinitialisierungsprozesses eines Ausführungsbeispiels dieser
Erfindung ist,
-
17 ein
Verlauf der Zustandsübergänge des
gleichen Ausführungsbeispiels
ist und
-
18 eine
Funktionsdarstellung des Zustandsinitialisierungsprozesses in dem
gleichen Ausführungsbeispiel
ist.
-
Beschreibung des bevorzugten
Ausführungsbeispiels
-
A Prüfsequenzerzeugungsverfahren
-
Die
Fehler, die unter Verwendung dieser Prüfsequenz zu prüfen sind,
sind dieselben, wie die, die in Zusammenhang mit der verwandten
Technik beschrieben wurden, und werden für jede Signalleitung basierend
auf der Netzliste der zu prüfenden
LSI im Voraus in einer wie in der 1 gezeigten
Fehlertabelle registriert.
-
In
der 9 beginnt der Prüfsequenzerzeugungsprozess bei
dem Schritt 101.
-
In
dem Schritt 102 wird die Höchstanzahl von Schleifen für den Prozess,
der für
die nicht detektierten Fehler auszuführen ist, auf der Fehlertabelle
eingesetzt. Die Anzahl wird unter Berücksichtigung der Komplexität oder der
Größe der zu
prüfenden
Schaltung oder einer für
den Prozess zugelassenen Zeit bestimmt. In den meisten Fällen ist
fünf Mal
angemessen.
-
In
dem Schritt 103 ist wird die Nummer des Prozesses initialisiert,
um null zu sein.
-
In
dem Schritt 104 wird festgestellt, ob der Prozess die in
dem Schritt 102 eingesetzte Höchstanzahl erreicht hat. Wenn
nicht, dann geht das System weiter zu dem Schritt 105 und
andernfalls geht das System zu dem Schritt 115.
-
In
dem Schritt 105 wird festgestellt, ob in der Fehlertabelle
ein nicht detektierter oder nicht verarbeiteter Fehler, ausgenommen
ein redundanter Fehler, vorhanden ist. Falls ja, geht das System
anschließend
zu dem Schritt 106 weiter und andernfalls geht es zu dem
Schritt 111.
-
In
dem Schritt 106 wird ein Zielfehler aus den nicht detektierten
und nicht verarbeiteten Fehlern ausgesucht.
-
In
dem Schritt 107 wird als ein vorbereitender Schritt für die Prüfsequenzerzeugung
ein Testmuster für
den ausgewählten
Fehler erzeugt, dies nur, um für die
kombinatorische Schaltung zu prüfen,
ob es ein nicht detektierter Fehler oder nicht ist. Die Schritte 106 und 107 entsprechen
jeweils den Schritten 403 und 404 in der 2,
die die verwandte Technik darstellt. In dem Schritt 108 wird
ein Fehlerpropagierungsprozess für
den ausgewählten
Zielfehler durchgeführt.
In den Schritten 109 und 110 werden jeweils ein
Zustandsinitialisierungsprozess und ein Fehlersimulationsprozess
durchgeführt.
Diese Schritte entsprechen den Schritten 406 und 407 in
der 2.
-
In
dem Schritt 111 wird festgestellt, ob der in dem Schritt 107 durchgeführte Fehlerpropagierungsprozess
erfolgreich oder nicht ist. Falls ja, dann geht das System zu dem
Schritt 105 zurück
und andernfalls geht das System weiter zu dem Schritt 112.
-
In
dem Schritt 112 wird eine D-Grenze in einem Zeitrahmen
ausgewählt,
wo die Effekte des Zielfehlers, propagiert zu jedem externen Anschluss,
in einer unzulässigen
D-Grenze-Gruppe,
die in der 10 gezeigt wird, registriert
werden. Die 10 enthält drei Spalten: „Signalleitungen", die die zu detektierenden
Zielfehlerstellen anzeigen, „Fehler", die die Fehlertypen
anzeigen, und „D-Grenzen", die die D-Grenzen,
die auszuwählen
unzulässig
ist, anzeigen. In diesem Ausführungsbeispiel
werden für
jeden Fehler die D-Grenzen registriert.
-
In
dem Schritt 113 werden nicht detektierte Fehler auf der
Fehlertabelle, ausgenommen redundante Fehler, als nicht verarbeitete
Fehler behandelt. Mit anderen Worten, Fehler, die „0" in der Spalte „Detektion" entsprechen und
in der Spalte „redundante Fehler" anders als „1" sind, werden in
der Spalte „Prozess" zu „0" gemacht. Demgemäß werden
Fehler, für
die eine Prüfsequenzerzeugung
nicht erfolgreich war, in dem Schritt 106 wieder ausgewählt.
-
In
dem Schritt 114 zählt
das System die Anzahl des Prüfsequenzerzeugungsprozesses
für nicht detektierte
Fehler mit 1 hoch.
-
In
dem Schritt 115 endet der Prüfsequenzerzeugungsprozess.
-
Der
Fehlerpropagierungsprozess des Schrittes 108 wird in dem
Ablaufdiagramm der 11 ausführlich dargestellt.
-
Das
Ablaufdiagramm enthält
die zusätzlichen
Schritte 1403–1405 nach
denen die Fehler, die in der nicht zulässigen D-Grenze-Gruppe registriert sind,
aus den Auswahlobjekten einer D-Grenze in dem Zeitrahmen Nr. k ausgeschlossen
werden. Demgemäß wird eine
D-Grenze, mit Ausnahme derer, die als zuvor nicht erfolgreich propagiert
detektiert wurden, in dem Zeitrahmen Nr. k nach dem zweiten Fehlerpropagierungsprozess
ausgewählt.
-
In
dem Schritt 1402 wird festgestellt, ob ein einen Zielfehler
enthaltender Pfad sensitiviert wurde oder nicht. Falls ja, dann
ist der Prozess erfolgreich und das System geht zu dem Schritt 1409,
um den Prozess zu beenden, und andernfalls geht das System weiter
zu dem Schritt 1403.
-
In
dem Schritt 1403 wird festgestellt, ob ein weiterzuverarbeitender
Zeitrahmen ein k-Zeitrahmen (=
erster in diesem Ausführungsbeispiel)
ist oder nicht ist. Falls ja, dann geht das System weiter zu dem
Schritt 1404 und andernfalls geht das System zu dem Schritt 1406.
-
In
dem Schritt 1404 wird die Zielfehlerstelle oder einer der
Ausgänge
der FFs (d. h. der Eingänge der
kombinatorischen Schaltung) als eine D-Grenze ausgewählt. Bei
der Auswahl wird auf die unzulässige
D-Grenze-Gruppe Bezug genommen, um so die Auswahl derer, die für den entsprechenden
Fehler als unzulässige
D-Grenzen registriert sind, zu vermeiden.
-
In
dem Schritt 1405 wird die ausgewählte D-Grenze vorläufig gespeichert.
-
In
dem Schritt 1406 wird in der gleichen Art und Weise wie
in dem Schritt 603 der 3 die Zielfehlerstelle
oder einer der Ausgänge
der FFs als eine D-Grenze ausgewählt.
-
In
dem Schritt 1407 wird der ausgewählten D-Grenze in einem zu
prüfenden
Zeitrahmen ein Fehlersignal zugewiesen, den externen Eingangsanschlüssen und
den Ausgängen
der FFs werden jeweils Eingangswerte und Zustandswerte zugewiesen,
um das Fehlersignal zu dem Ziel-PPO zu propagieren (d. h., um den
Fehlerpropagierungspfad zu sensitivieren). Wenn die Fehlerpropagierung
erfolgreich ist, dann geht das System weiter zu dem Schritt 1408 und
andernfalls geht es zu dem Schritt 1409, um den Prozess
zu beenden. Solch eine Sensitivierung des Pfades ist dieselbe, wie
die in der zweiten Hälfte
des Schrittes 602 in der 3.
-
In
dem Schritt 1408 werden die den externen Eingangsanschlüssen in
dem Schritt 1407 zugewiesenen Eingangswerte als ein Teil
der Prüfsequenz abgespeichert
und das System geht, mit dem Eingang der D-Grenze als einen neuen
Ziel-PPO, zu dem Schritt 1402 zurück.
-
Der
Vorgang der oben beschriebenen Prüfsequenzerzeugung dieses Ausführungsbeispiels wird
unter Bezugnahme auf die 12, in
der gleiche Komponenten in Bezug auf die 6 mit den
gleichen Referenzzahlen gekennzeichnet sind, wie folgt beschrieben.
Die Ziffer 1001 stellt die unzulässige D-Grenze-Gruppe für einen
Zielfehler 713 dar und 1002–1004 sind jeweils
Fehlerpropagierungspfade der Zeitrahmen 701–703 in
dem zweiten Fehlerpropagierungsprozess.
-
Zuerst
wird bei diesem Ausführungsbeispiel die
Höchstanzahl
des Fehlerpropagierungsprozesses auf fünf gesetzt (Schritt 102 in 9)
und eine Variable i zum Kontrollieren der Anzahl wird auf null initialisiert
(Schritt 103). Dann wird festgestellt, ob die Variable
i die Höchstanzahl
erreicht hat. Falls ja, dann geht das System zu dem Schritt 115,
um den Prozess zu beenden, und andernfalls geht es weiter zu dem
Schritt 105 (104).
-
Die
darauf folgenden Schritte 105–107 sind dieselben,
wie die Schritte 402–404 in
der 2, so dass die Beschreibung dieser ausgelassen
wird.
-
Wenn
in dem Schritt 107 ein Testmuster erfolgreich erzeugt wurde,
wird ein Fehlerpropagierungsprozess ausgeführt, um eine Prüfsequenz
für den
Zielfehler zu erzeugen (Schritt 108).
-
In
einem ersten (i = 0) Fehlerpropagierungsprozess wird vorausgesetzt,
dass der Prozess für den
Zielfehler 713, wie unter Bezugnahme auf die 6 beschrieben,
ausgeführt
wird. Es werden lediglich wie folgt die Unterschiede in dem Vorgang
erklärt:
-
In
dem ersten Zeitrahmen (Schritt 1403) wird eine D-Grenze,
die nicht in der unzulässigen
D-Grenze-Gruppe registriert wurde, ausgewählt. Jedoch ist in dem ersten
Zeitrahmen kein Fehler registriert, so dass, wie in dem Schritt 1404 der 11,
FF3 ausgewählt
wird. Die auf diese Art und Weise ausgewählte D-Grenze wird vorläufig gespeichert
(Schritt 1405).
-
Wenn
das System, genau wie bei der verwandten Technik, dabei versagt,
den Propagierungspfad in dem dritten Zeitrahmen zu sensitivieren,
wird die Fertigstellung des Fehlerpropagierungsprozesses geprüft (Schritt 111).
Wenn der Prozess nicht erfolgreich ist, wird die zeitweilig gespeicherte
D-Grenze 709 in der unzulässigen D-Grenze-Gruppe 1001 des
Zielfehlers 713 gespeichert (Schritt 112).
-
Danach
wird der oben beschriebenene Prozess für jeden nicht verarbeiteten
Fehler auf der Fehlertabelle ausgeführt (der Prozess von Schritt 105 zu entweder
dem Schritt 111 oder dem Schritt 112 wird wiederholt,
wobei eine D-Grenze in dem Zeitrahmen Nr. k ((= erster bei diesem
Vorgang)) als eine unzulässige
D-Grenze für
jeden Fehler, für
den der Propagierungsprozess nicht erfolgreich war, registriert wird).
-
Nach
dem Abschluss jeder Prüfsequenzerzeugung
für jeden
nicht verarbeiteten Fehler, wird festgestellt, dass kein nicht verarbeiteter
Fehler vorhanden ist (Schritt 105). Demgemäß werden
Fehler, die in der Spalte „Prozess" „0" entsprechen und in der Spalte „redundante
Fehler" anders als „1" sind, in der Spalte „Prozess" auf „0" gesetzt (Schritt 113),
wodurch ermöglicht
wird, dass Fehler, für
die der Prozess nicht erfolgreich war, erneut ausgewählt werden.
Die Variable i, die der Anzahl von bis dahin wiederholten Prüfsequenzerzeugungsprozessen
entspricht, wird um 1 aufwärts
gezählt
(Schritt 114) und das System geht zu dem Schritt 105 zurück.
-
In
einem zweiten (i = 2) Fehlerpropagierungsprozess wird der Fehler 713,
für den
der Prozess, wenn i = 1 nicht erfolgreich war, wieder als Zielfehler
ausgewählt
(Schritt 106) und der Prozess wird, nachdem das Testmuster
für die
kombinatorische Schaltung erzeugt wurde (Schritt 107),
wie folgt ausgeführt:
-
Bei
dem Prozess in dem Zeitrahmen 701, der der erste Zeitrahmen
ist (Schritt 1403), ermöglicht
die Bezugnahme auf die unzulässige
D-Grenze-Gruppe 1001, dass FF3 aus den Auswahlelementen
(709) eliminiert wird, und im Ergebnis wird FF1 (707)
heuristisch als eine D-Grenze (1404) ausgewählt und
zeitweilig gespeichert (Schritt 1405). Dies sensitiviert den
Fehlerpropagierungspfad 1002 bis zu dem externen Ausgangsanschluss 704 (Schritt 1407)
und verursacht, dass FF1 (707) der Ziel-PPO wird (Schritt 1408).
-
In
einem zweiten Zeitrahmen 702 wird FF3 (712) als
D-Grenze ausgewählt
(Schritte 1403 und 1406) und ein Fehlerpropagierungspfad 1003 wird sensitiviert
(Schritt 1407), um die Effekte des Fehlers zu FF1 (707)
des Ziel-PPOs zu propagieren, wodurch FF3 (712) zu dem
Ziel-PPO gemacht wird (Schritt 1408).
-
In
einem dritten Zeitrahmen 703 wird die Fehlerstelle 713 als
eine D-Grenze ausgewählt (Schritte 1403 und 1406)
und ein Fehlerpropagierungspfad 1004 wird sensitiviert
(Schritt 1407), um die Effekte des Fehlers von der Fehlerstelle 713 zu FF3
(712) des Ziel-PPOs zu propagieren. Da der Zielfehler sensitiviert
wurde (Schritt 1402), geht das System zu einem Zustandsinitialisierungsprozess, der
nicht beschrieben wird, weil er derselbe wie der der verwandten
Technik ist.
-
Wie
hierin bereits erklärt
wurde, wird, in dem Fall, dass ein Fehlerpropagierungsprozess bei
einer Prüfsequenz,
die zum Prüfen
eines Zielfehlers erzeugt wurde, nicht erfolgreich ist, eine in
dem Zeitrahmen k (= erster in diesem Ausführungsbeispiel) ausgewählte D-Grenze, die die Effekte
ihres Zielfehlers zu den externen Ausganganschlüssen propagiert, in der unzulässigen D-Grenze-Gruppe
registriert. Zusätzlich
wird eine nicht erfolgreich für
einen Zielfehler erzeugte Prüfsequenz
neu erzeugt. Infolgedessen kann ein Signal, das zu der unzulässigen D-Grenze-Gruppe
für den
Zielfehler gehört,
aus den Auswahlobjekten einer D-Grenze in einem Zeitrahmen, in dem
die Effekte des Zielfehlers zu den externen Ausgangsanschlüssen propagiert
werden, wenn die die Prüfsequenz
erzeugt wird, eliminiert werden. Infolgedessen wird ein Fehlerpropagierungspfad
flexibel geändert,
wodurch die Wahrscheinlichkeit eines Erfolgs beim Erzeugen einer
Prüfsequenz
für einen Zielfehler
erhöht
wird. Im Ergebnis kann für
einen Zielfehler eine Prüfsequenz
mit einem hohen Fehlerzustandserkennungsgrad erzeugt werden.
-
Ein
weiteres Prüfsequenzerzeugungsverfahren,
das im Wesentlichen dasselbe wie das der 2 für die verwandte
Technik ist, wird in der 13 im Ablauf
dargestellt. Der Unterschied besteht in dem Fehlerpropagierungsprozess.
Dementsprechend wird ausschließlich
der Fehlerpropagierungsprozess wie folgt beschrieben:
-
Der
Fehlerpropagierungsprozess in der 13 beginnt
bei dem Schritt 301.
-
In
dem Schritt 302 wird festgestellt, ob ein Zielfehler sensitiviert
wurde oder nicht sensitiviert wurde. Falls ja, dann geht das System
zu dem Schritt 308, um den Prozess zu beenden und andernfalls geht
das System weiter zu dem Schritt 303.
-
In
dem Schritt 303 wird entweder der Zielfehler oder einer
der Ausgänge
der FFs als eine D-Grenze ausgewählt.
Dann wird ein Testmuster, das ein Fehlersignal zu dem Ziel-PPO propagiert, erzeugt. Wenn
dieser Prozess nicht erfolgreich ist, dann geht das System zu dem
Schritt 306 und andernfalls geht es weiter zu dem Schritt 304.
Jedoch wer den ein Set einer D-Grenze, das zu der unzulässigen Setgruppe gehört, und
der Ziel-PPO aus
den Auswahlobjekten eliminiert.
-
In
dem Schritt 304 werden das Set des Ziel-PPOs und das Set
der D-Grenze zeitweilig gespeichert.
-
In
dem Schritt 305 wird, wenn die in dem Schritt 303 ausgewählte D-Grenze
der Eingang eines FFs ist, dessen Ausgang zu einem neuen PPO gemacht.
-
In
dem Schritt 606 werden das Set der in dem Schritt 304 ausgewählten D-Grenze
und der Ziel-PPO zu den unzulässigen
Setgruppen hinzugefügt.
Ein Beispiel einer derartigen unzulässigen Setgruppe wird in der 14 gezeigt.
-
In
dem Schritt 307 wird die bis dahin erzeugte Prüfsequenz
komplett gelöscht
und das System geht zu dem Schritt 302 zurück.
-
In
dem Schritt 308 wird die unzulässige Setgruppe gelöscht und
der Fehlerpropagierungsprozess endet.
-
Der
Vorgang der oben beschriebenen Prüfsequenzerzeugung wird unter
Bezugnahme auf die 15, in der gleiche Komponenten
durch die gleichen Referenzzahlen wie in der 6 bezeichnet werden,
wie folgt beschrieben:
-
In
der 15 stellt die Ziffer 1201 die in der 14 gezeigte
unzulässige
Setgruppe dar und die Leitungen 1202 und 1203 sind
jeweils Fehlerpropagierungspfade in jeweils den Zeitrahmen 702 und 703.
-
Bei
der Prüfsequenzerzeugung
für den
Zielfehler 713 werden, wenn vorausgesetzt ist, dass der Fehlerpropagierungsprozess
in dem Zeitrahmen 703 nicht erfolgreich ist, wie zuvor
beschrieben (Schritt 303 in 13), ein
Set einer D-Grenze, die der Ausgang von FF2 (711) in dem
Zeitrahmen 702, in dem der Prozess nicht erfolgreich ist,
unmittelbar vor dem Zeitrahmen 703 ist, und ein Ziel-PPO,
der der Eingang von FF3 (709) ist, in der unzulässigen Setgruppe 1201 registriert
(Schritt 306). Im Folgenden geht das System zu dem ersten
Zeitrahmen 701 zurück, um
den Prozess nach dem Löschen
aller Sequenzen, die bis dahin für
den Zielfehler 713 erzeugt wurden, erneut durchzuführen (Schritt 307),
und wählt
die D-Grenze 709 in dem Zeitrahmen 701 aus. Dann
wird der Fehlerpropagierungspfad 705 sensitiviert, um die Effekte
des Zielfehlers „b" (713) zu
den externen Ausgangsanschlüssen
zu propagieren und zeitweilig werden das Set der D-Grenze 709 und
der externe Ausgangsanschluss PO (Schritt 304), der den
Fehlerpropagierungspfad 705 anzeigt, gespeichert und der
Eingang eines FFs, dessen Ausgang die D-Grenze ist, wird zum nächsten Ziel-PPO
gemacht (Schritt 305).
-
In
dem Zeitrahmen 702 wird als Ergebnis der Referenz der Elemente
(D-Grenze 711 und Ziel-PPO 709) in der unzulässigen Setgruppe
festgestellt, dass die D-Grenze 709 der Ziel-PPO ist. Dementsprechend
wird FF2 (711) aus den Auswahlobjekten eliminiert und FF1
(710) wird als eine D-Grenze ausgewählt und der Fehlerpropagierungspfad 1202,
der sich zu dem FF3 (709) des Ziel-PPOs erstreckt, wird sensitiviert
(Schritte 302–305).
-
Dann
wird der Fehlerpropagierungsprozess in dem Zeitrahmen 703 ausgeführt und
die Fehlerstelle 713 wird als die D-Grenze ausgewählt. Der Fehlerpropagierungspfad 1203 wird
sensitiviert, um die Effekte des Fehlers von der Fehlerstelle 713 zu dem
FF1 (710) des Ziel-PPOs zu propagieren (Schritte 302–305).
Da der Zielfehler auf diese Art und Weise sensitiviert wurde, behandelt
das System den Fehlerpropagierungsprozess als Erfolg und geht weiter
zu dem Zustandsinitialisierungsprozess (Schritt 302).
-
Obwohl
in dem Schritt 307 oben die bis dahin erzeugte Prüfsequenz
gelöscht
wird und der Fehlerpropagierungsprozess von dem ersten Zeitrahmen an
neu begonnen wird, kann er von einem Rahmen vor dem Zeitrahmen,
in dem der Prozess nicht erfolgreich war, begonnen werden, weil
der Pfad in einem unmittelbar vorhergehenden Zeitrahmen zur Weiterverarbeitung
gesperrt ist.
-
Wie
hierin bereits beschrieben wurde, werden, in dem Fall, dass in einer
Prüfsequenz,
die zum Erzeugen eines Zielfehlers erzeugt wurde, ein Fehlerpropagierungsprozess
nicht erfolgreich durchgeführt
wurde, ein Set einer D-Grenze und ein Ziel-PPO, die in einem Zeitrahmen
unmittelbar vor dem Zeitrahmen, in dem der Prozess nicht erfolgreich
gewesen ist, ausgewählt
wurden, in der unzulässigen
Setgruppe registriert. Zusätzlich
wird die Prüfsequenz,
die bis dahin erzeugt wurde, zur Gänze oder teilweise gelöscht und
von Anfang an oder von der Mitte an neu erzeugt. Infolgedessen kann
ein jedes Set, das zu der unzulässigen
Setgruppe gehört, aus
den Auswahlobjekten einer D-Grenze
in einem Zeitrahmen eliminiert werden. Auf diese Art und Weise wird
ein Fehlerpropagierungspfad flexibel geändert, wodurch die Wahrscheinlichkeit
eines Erfolgs beim Erzeugen einer Prüfsequenz für einen Zielfehler erhöht wird.
Im Ergebnis kann für
einen Zielfehler eine Prüfsequenz
mit einem hohen Fehlerzustandserkennungsgrad erzeugt werden.
-
Ein Ausführungsbeispiel
der Erfindung
-
Das
Prüfsequenzerzeugungsverfahren
dieses Ausführungsbeispiels
wird im Ablauf in der 16 dargestellt und ist mit Ausnahme
des Zustandsinitialisierungsprozesses im Wesentlichen dasselbe wie
in der 2. Dementsprechend wird ausschließlich der
Zustandsinitialisierungsprozess wie folgt beschrieben:
-
In
der 16 beginnt der Zustandsinitialisierungsprozess
bei dem Schritt 201.
-
In
dem Schritt 202 wird festgestellt, ob der aktuelle Zustand
der Schaltung mit ihrem Initialzustand übereinstimmt oder nicht übereinstimmt.
Wenn die Zustände übereinstimmend
sind, dann geht das System zu dem Schritt 208 und andernfalls
geht das System weiter zu dem Schritt 203.
-
In
dem Schritt 203 wird der aktuelle Zustand durch das Zuweisen
der Werte zu den externen Ausgangsanschlüssen und zu den FFs begründet, um auf
diese Art und Weise nicht in den Zustand, der zu den unzulässigen Zustandsgruppen,
die in dem Schritt 206 registriert werden, gehört, zu gehen.
-
In
dem Schritt 204 wird der begründete Zustand der Historie
der Zustandsübergänge hinzugefügt. Ein
Beispiel einer solchen Historie wird in der 17, in
der jeder Zustand durch einen Zustandsnamen und einen Zustandswert
von jedem FF, der den Zustand bildet, dargestellt ist, gezeigt.
-
In
dem Schritt 205 wird festgestellt, ob mehr als ein in dem
Schritt 203 begründeter
Zustand in der Historie vorhanden ist. Falls ja, dann geht das System
zu dem Schritt 206 und andernfalls geht das System zu dem
Schritt 207.
-
In
dem Schritt 206 wird der begründete Zustand aus der Historie
gelöscht
und in der unzulässigen
Zustandsgruppe registriert. Wenn zwei identische Zustände in der
Historie vorhanden sind, bedeutet dies, dass eine Schleife eines
Zustandsübergangs
gebildet ist. Deshalb wird der später begründete Zustand als ein unzulässiger Zustand
definiert, wodurch der Zustandsinitialisierungsprozess daran gehindert
wird, in eine Schleife zu gehen.
-
In
dem Schritt 207 wird der begründete Zustand als der aktuelle
Zustand behandelt.
-
In
dem Schritt 208 wird die unzulässige Zustandsgruppe gelöscht.
-
In
dem Schritt 209 endet der Zustandsinitialisierungsprozess.
-
Der
Vorgang der Prüfsequenzerzeugung
dieses Ausführungsbeispiels
wird unter Bezugnahme auf die 18 wie
folgt beschrieben:
-
Die 18(a) zeigt eine Historie 1101 der Zustandsübergänge in einem
Fall, bei dem während des
Zustandsinitialisierungsprozesses für eine zu prüfende Schaltung
mit den in der 8 gezeigten Zustandsübergängen zwei
identische Zustände
vorhanden sind. Die 18(b) zeigt eine
Historie bei einem Fall, in dem von den zwei identischen Zuständen, der
später
zugewiesene Zustand aus der Historie 1101 eliminiert wurde.
Die 13(c) zeigt eine Historie 1103 in
einem Fall, bei dem der Zustandsinitialisierungsprozess der Schaltung
erfolgreich durchgeführt
wird.
-
Das
Folgende ist eine Beschreibung der Erzeugung einer Prüfsequenz,
die von dem Initialzustand 804 zu dem Fehlererregungszustand 801 in der 8 übergeht.
-
Zuerst
wird der Fehlererregungszustand 801 in der Historie der
Zustandsübergänge registriert (Schritt 201).
Dann wird der Fehlererregungszustand 801 begründet, um
den Zustand 802 zu erhalten (Schritt 203), der
in der Historie registriert wird (Schritt 204). Da der
Zustand 802 weder der Initialzustand ist, noch zwei identische
Zustände
in der Historie vorhanden sind (Schritt 205), wird der
begründete Zustand
als der aktuelle Zustand definiert (Schritt 207) und der
Zustand 802 ist begründet
(Schritte 202 und 203). Auf die gleiche Art und
Weise werden die Zustände 803 und 801 begründet und
in der Historie registriert.
-
Zu
diesem Zeitpunkt weist die Historie 1101 zwei der Zustände 801 auf
(Schritt 205, 18(a)), so
dass der später
registrierte Zustand 801 daraus gelöscht wird und in der unzulässigen Zustandsgruppe
registriert wird (Schritt 206, 18(b)).
-
Der
Zustand 804 wird durch das Begründen des Zustands 803 erhalten,
wieder, um zu vermeiden, in dem unzulässigen Zustand 801 zu
sein (Schritt 203), und wird in der Historie registriert (Schritt 204, 18(c)). Hierbei sind keine identischen
Zustände
in der Historie 1103 (Schritt 205) vorhanden.
-
Da
der Zustand 804 dem Initialzustand gleich ist (Schritt 201),
ist der Zustandsinitialisierungsprozess erfolgreich und wird beendet.
-
Gemäß diesem
Ausführungsbeispiel
wird die Historie der Zustandsübergänge abgespeichert, wenn
der Zustandsinitialisierungsprozess der Prüfsequenzerzeugung eines Zielfehlers
durchgeführt
wird. Wenn zwei identische Zustände
in der Historie vorhanden sind, wird der später zugewiesene Zustand daraus
gelöscht
und als ein unzulässiger
Zustand registriert, so dass er nicht in den unzulässigen Zustand
gehen wird. Infolgedessen ist die Wahrscheinlichkeit eines Erfolgs
bei einem Zustandinitialisierungsprozess erhöht und als Folge davon kann
eine Prüfsequenz
für einen
Zielfehler mit einem hohen Fehlerzustandserkennungsgrad erzeugt
werden.
-
Obwohl
die vorliegenden Erfindung unter Bezugnahme auf die begleitenden
Zeichnungen durch Beispiele vollständig beschrieben wurde, ist
festzustellen, dass verschiedene Änderungen und Modifikationen,
die für
einen Fachmann in dieser Technik offensichtlich sind, vorgenommen
werden können, ohne
von dem Geltungsbereich der Erfindung, wie in den angehängten Patentansprüchen definiert,
abzuweichen.