DE19924242A1 - Vektorrestauration mit beschleunigter Validation und Verfeinerung - Google Patents
Vektorrestauration mit beschleunigter Validation und VerfeinerungInfo
- Publication number
- DE19924242A1 DE19924242A1 DE19924242A DE19924242A DE19924242A1 DE 19924242 A1 DE19924242 A1 DE 19924242A1 DE 19924242 A DE19924242 A DE 19924242A DE 19924242 A DE19924242 A DE 19924242A DE 19924242 A1 DE19924242 A1 DE 19924242A1
- Authority
- DE
- Germany
- Prior art keywords
- errors
- sequence
- error
- list
- target
- 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.)
- Granted
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/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318371—Methodologies therefor, e.g. algorithms, procedures
-
- 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/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318392—Generation of test inputs, e.g. test vectors, patterns or sequences for sequential circuits
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
Ein Zweiphasenvektorrestaurationsverfahren, das eine minimale Teilsequenz aus einer Sequenz extrahiert, die eine ausgewählte Menge von Fehlern detektiert. Das Vektorrestaurationsverfahren wird bei statischen Kompaktierungsverfahren von Testsequenzen und bei Fehlerdiagnoseverfahren verwendet. Eine beschleunigte Version des Zweiphasenvektorrestaurationsverfahrens bietet eine weitere Verbesserung. Die vorliegende Erfindung ist dem Stand der Technik deutlich überlegen; 1. eine Sequenz einer Länge n kann mit nur 0 (n log¶2¶n)-Simulationen simuliert werden, während herkömmliche Verfahren Simulationen von 0(n·2·)-Vektoren benötigen; 2. ein zweistufiges Restaurationsverfahren wird verwendet, so daß die Vektorrestauration auch auf große Designs anwendbar ist, und 3. das Restaurationsverfahren für mehrere Fehler wird überlappt und eine deutliche Beschleunigung der Vektorrestauration erzielt. Das erfindungsgemäße Vektorrestaurationsverfahren kann in ein statisches Testsequenzkompaktierungssystem integriert werden.
Description
Die vorliegende Erfindung beansprucht die Priorität der parallelen anhängigen US-
Provisional-Patentanmeldung Ser. Nr. 60/086,758 vom 27. Mai 1998.
Die vorliegende Erfindung betrifft ein Restaurationsverfahren von Testvektoren, die
zur Fehlerermittlung in großen industriellen Design-Systemen verwendet werden.
Die vorliegende Erfindung betrifft insbesondere ein Restaurationsverfahren einer
minimalen Teilsequenz von Vektoren, die eine gegebene Fehlermenge detektieren.
Ein Ausführungsbeispiel der vorliegenden Erfindung betrifft ein Verfahren einer
zweistufigen Vektorrestauration und ein Verfahren für eine beschleunigte
zweistufige Vektorrestauration, und verbessert die Laufzeiten von Fehlerdiagnosen
für große Designs.
Ein Vektor ist eine Menge von Eingaben in ein System. Eine Testmenge ist eine
Menge von Vektoren, die Fehler in dem System erkennen. Eine Zielfehlerliste ist
eine Liste einer Teilmenge von Fehlern, die von einer gegebenen Testmenge
identifiziert werden. Mit einer gegebenen Testmenge und einer Menge einer
Zielfehlerliste von der bekannt ist, daß sie von der Testmenge detektiert zu werden,
identifizieren Vektorrestaurationsverfahren eine minimale Teilsequenz, die alle
Fehler in der Zielfehlerliste erkennt. Siehe R. Guo, I. Pomeranz, und S. M. Reddy
"Procedures for static compaction of test Seguences for synchronous Sequential
circuits based on vector restoration", Technical Report 3.08.1997, Electrical and
Computer Engineering Department, University of lowa, 1997.
Restaurationsverfahren werden in statischen TestSequenz-
Kompaktierungsverfahren oder Fehlerdiagnoseverfahren verwendet Herkömmliche
statische TestSequenz-Kompaktierungsverfahren werden in der nachfolgenden
Literatur beschrieben: T. M. Niermann, R. K. Roy, J. H. Patel und J. A. Abraham "Test
compaction for Sequential circuits", IEEE Trans. Computer-Aided Design, Vol. 11,
Nr. 2, S. 260-267, Februar 1992; B. So "Time-efficient automatic test pattern
generation system", Ph. D. Thesis, EE Dept., Univ. of Wisconsin at Madison, 1994;
I. Pomeranz und S. M. Reddy "On static compaction of test Sequences for
snychronous Sequential circuits", Proc. Design Automation Conf., S. 215-220, Juni
1996; M. S. Hsiao, E. M. Rudnick und J. H. Patel "Fast algorithms for static
compaction of Sequential circuit test vectors", Proc. IEEE VLSI Test Symp.,
S. 188-195, April 1995; S. T. Chakradhar und M. S. Hsiao, "Partitioning and
Reordering Techniques for Static Test Sequence Compaction of Sequential
Circuits", Technical Report 1997, Computers & Communications Research Lab.,
NEC USA Inc.
Kompaktierungsverfahren auf der Grundlage von Vektorrestauration werden
beschrieben in I. Pomeranz und S. M. Reddy "Vector Restoration Based Static
Compaction of Test Sequences for Synchronous Sequential circuits". Proceedings
Int. Conf. on Computer Design, S. 360-365, 1997, University of lowa, August 1997;
und A. Raghunathan und S. T. Chakradhar "Acceleration techniques for dynamic
vector compaction", Proc. Int. Conf. Computer Aided Design, S. 310-317, August
1995.
Vektorrestauration, ein Überblick.
Eine Testmenge ist eine Sequenz von Vektoren v1, . . . , vn mit vorgegebener
Reihenfolge. Die Testmenge detektiert Fehler f1, . . . fz, die eine Fehlermenge F
bilden. Wenn ein Fehler f von einem Vektor vi der Testmenge erkannt wird, dann ist
die Detektionszeit D[f] des Fehlers gleich i. Die Detektionszeiten können auf
einfache Weise mittels einer vorgeschalteten Verarbeitungsphase ermittelt werden,
die eine Fehlersimulation durchführt. Eine derartige Fehlersimulation wird
herkömmlich mittels Fehlerabzweigung (fault dropping) durchgeführt.
Beispielsweise hat die in Fig. 1 dargestellte Testmenge 20 Vektoren v1, . . ., v20.
Diese Testmenge erkennt fünf Fehler f1, . . . f5. Der Fehler f5 wird von dem Vektor
v20 erkannt. Daher ist D[f5] = 20. Fig. 1 zeigt die Detektionszeiten von anderen
Fehlern. Für einen gegebenen Fehler f mit D[f] = t existiert eine Sequenz von
Vektoren vi, . . . , vt (1 ≦ i ≦ t), die den Fehler unter der Annahme eines unbekannten
ursprünglichen Zustandes erkennt. Beispielsweise wird f4 bei Vektor v16 erkannt,
und es existiert eine Teilsequenz v1, . . . , v16, die den Fehler erkennt. Es ist auch
möglich, daß eine kürzere Sequenz von Vektoren vi, . . . , vt (1 < i ≦ t) den Fehler
erkennt.
Ein herkömmliches lineares Vektorrestaurationsverfahren ermittelt die Teilsequenz,
indem zunächst nur der Vektor vt berücksichtigt wird. Wenn ein oder mehr Zielfehler
nicht erkannt werden, dann wird die Teilsequenz vt-1, vt vorgeschlagen. Wenn diese
Sequenz auch nicht alle Zielfehler erkennt, dann werden zusätzliche Vektoren
vt-2, . . . , v1 (in dieser Reihenfolge) berücksichtigt, bis alle Zielfehler erkannt sind. Ein
derartiges Verfahren ist sehr komplex. Nachstehend wird die Komplexität dieses
Verfahrens detaillierter beschrieben.
Fig. 1 zeigt ein Beispiel des linearen Vektorrestaurationsverfahrens mit
Teilsequenzrestauration für Fehler f4 und f5, die Zielfehler sind. Da f5 bei v20
erkannt wird, ist v20 die erste Teilsequenz, die von dem linearen
Vektorrestaurationsverfahren berücksichtigt wird. Der Fehler f5 wird von dieser
ersten Teilsequenz nicht erkannt. Daher wird die Teilsequenz aktualisiert und
geändert, so daß sie den Vektor v19 enthält. Die neue Teilsequenz ist v19, v20. Diese
Teilsequenz erkennt aber den Fehler f5 auch nicht. Daher werden zusätzliche
Vektoren restauriert, bis die restaurierte Teilsequenz v17 enthält. Diese Teilsequenz
erkennt den Fehler f5, wie in Fig. 1 dargestellt ist. Die Vektorrestauration für den
Fehler f5 ist damit abgeschlossen.
Der nächste Schritt ist die Überprüfung, ob f4 ebenso von der restaurierten
Vektormenge erkannt wird. Beispielsweise erkennt die Sequenz v17, . . ., v20 ebenso
f4. Das Restaurationsverfahren für die Zielfehler f4 und f5 ist damit abgeschlossen.
In einer US-Patentanmeldung von Bommu et al. ist ein statisches
Kompaktierungsverfahren unter Verwendung von Vektorrestauration detailliert
beschrieben.
Statische Kompaktierungsverfahren auf der Grundlage von Vektorrestauration
verwenden das in Fig. 2 skizzierte Verfahren. Bei einer gegebenen Testmenge,
einer gegebenen Fehlermenge und einer gegebenen Detektionszeit für jeden Fehler
stellen diese Verfahren eine kleinere Testmenge her, die wenigstens soviele Fehler
erkennt, wie die ursprüngliche Testmenge. Die eingegebenen Daten enthalten eine
Menge von Testvektoren, eine Liste mit zu detektierenden Fehlern, und die
Detektionszeiten für die Fehler, wie in Block 2.01 von Fig. 2 dargestellt ist. Zunächst
wird in Block 2.02 eine Fehlermenge als Zielfehler ausgewählt. Diese Fehler können
gleiche oder unterschiedliche Detektionszeiten haben.
Wenn die längste (latest) Detektionszeit eines Fehlers in der Zielliste t ist, dann
findet das Restaurationsverfahren von Block 2.05 eine Teilsequenz von vi . . . , vt,
(1 ≦ i ≦ t), die (1) alle Fehler in der Zielfehlerliste erkennt, und (2) falls die
Teilmenge der restaurierten Teilmenge für frühere Zielfehler vorsteht, dann werden
auch noch alle früheren Zielfehler detektiert. Die nächste Menge der Zielfehler wird
aus den Fehlern ausgewählt die von den restaurierten Vektoren in Block 2.02 nicht
erkannt werden. Dieses Verfahren wird in den Blöcken 2.03 und 2.04 wiederholt, bis
alle Zielfehler erkannt sind.
Anhand der Nachteile der in Fig. 1 dargestellten Kompaktierung einer Testmenge
kann das Vektorrestaurationsverfahren erläutert werden. Die Vektorrestauration für
Fehler f4 und f5 führt zu der restaurierten Sequenz v17, . . . , v20. Fehler f3 ist jedoch
noch nicht erkannt. Daher wird als nächstes Zielfehler f3 gewählt. Das Verfahren
wird mit der Restauration für den Fehler f3 fortgeführt. Die Detektionszeit für f3 ist
12. Daher beginnt die Restauration von f3 von dem Vektor v12 anstelle des Vektors
v17. Die erste für f3 vorgeschlagene Sequenz ist v12, v17, . . . , v20. Das kommt
daher, da es möglich ist, daß eine Sequenz, die mit v12 beginnt und mit irgendeinem
Vektor der schon restaurierten Vektoren v17, . . . , v20 endet, f3 erkennen könnte.
Daher werden bei der Restauration einer VektorSequenz für f3 auch die schon
restaurierten Vektoren v17, . . ., v20 simuliert. Das Restaurationsverfahren wird
fortgeführt, bis alle Fehler erkannt sind. Hier ist beispielsweise die kompaktierte
Vektormenge v1, . . ., v12, v17, . . ., v20.
Die herkömmlichen linearen Vektorrestaurationsverfahren haben einen
schwerwiegenden Nachteil, der ihre Verwendung einschränkt. Sie benötigen lange
Laufzeiten bei ihrem Einsatz für große industrielle Designs.
Es ist daher eine Aufgabe der vorliegenden Erfindung, ein verbessertes
Vektorrestaurationsverfahren bereitzustellen, das erheblich geringere Laufzeiten
benötigt, als herkömmliche Verfahren.
Es ist insbesondere eine Aufgabe der vorliegenden Erfindung, ein
Restaurationsverfahren für eine minimale Teilsequenz von Testvektoren
bereitzustellen, um ein System zu testen, das eine Fehlermenge hat, die von der
Sequenz der Testvektoren erkennbar ist.
Die vorstehenden Aufgaben werden mit den Merkmalen der Ansprüche gelöst. Die
vorstehenden Aufgaben werden insbesondere gelöst, indem ein
Restaurationsverfahren einer Sequenz von Testvektoren zur Prüfung eines Systems
bereitgestellt wird, wobei das System eine Fehlermenge hat, die von der Sequenz
der Testvektoren detektierbar ist, und wobei eine Teilmenge der Fehlermenge
Zielfehler genannt wird, und wobei das Verfahren eine Validationsphase und eine
Restaurationsphase hat, und wobei in der Validationsphase eine erste Teilsequenz
von Testvektoren erkannt wird, die die Zielfehler erkennen, und eine zweite
Teilsequenz identifiziert wird, die die Zielfehler nicht erkennen, und wobei die
Restaurationsphase die kürzeste Teilsequenz zwischen der ersten Teilsequenz und
der zweiten Teilsequenz identifiziert, die die Zielfehler erkennt.
Ein anderer Aspekt der vorliegenden Erfindung betrifft ein Restaurationsverfahren
einer Sequenz von Testvektoren mit den nachfolgenden Verfahrensschritten:
Zuordnung von Fehlern zu einer Fehlerliste;
Identifikation einer Detektionszeit für jeden der Fehler;
Initialisierung eines Restaurationssequenz-Listenendes (nil); Fehlerzuordnung aus der Fehlerliste mit höchsten Detektionszeiten zu einer Zielfehlerliste;
base wird auf das Minimum der höchsten Detektionszeiten gesetzt und auf eine Zeit, die einem ersten Vektor in der Restaurationssequenzliste entspricht;
Durchführung einer Validationsphase, wobei eine low-Teilsequenz der Testvektoren identifiziert wird, die alle Fehler der Zielfehlerliste erkennt, und eine high- Teilsequenz identifiziert wird, die keinen Fehler in der Zielfehlerliste erkennt;
Durchführung einer Verfeinerungsphase, wobei eine kürzeste Teilsequenz zwischen der low-Teilsequenz und der high-Teilsequenz identifiziert wird, wobei die kürzeste Teilsequenz alle Fehler in der Zielfehlerliste erkennt;
Entfernung der Fehler von der Fehlerliste, die auch in der Zielfehlerliste sind;
Aktualisierung der Restaurationssequenzliste mit der Vereinigung der Restaurationssequenzliste und der kürzesten identifizierten Teilsequenz in Schritt g; und
Wiederholung bis die Fehlerliste leer ist.
Zuordnung von Fehlern zu einer Fehlerliste;
Identifikation einer Detektionszeit für jeden der Fehler;
Initialisierung eines Restaurationssequenz-Listenendes (nil); Fehlerzuordnung aus der Fehlerliste mit höchsten Detektionszeiten zu einer Zielfehlerliste;
base wird auf das Minimum der höchsten Detektionszeiten gesetzt und auf eine Zeit, die einem ersten Vektor in der Restaurationssequenzliste entspricht;
Durchführung einer Validationsphase, wobei eine low-Teilsequenz der Testvektoren identifiziert wird, die alle Fehler der Zielfehlerliste erkennt, und eine high- Teilsequenz identifiziert wird, die keinen Fehler in der Zielfehlerliste erkennt;
Durchführung einer Verfeinerungsphase, wobei eine kürzeste Teilsequenz zwischen der low-Teilsequenz und der high-Teilsequenz identifiziert wird, wobei die kürzeste Teilsequenz alle Fehler in der Zielfehlerliste erkennt;
Entfernung der Fehler von der Fehlerliste, die auch in der Zielfehlerliste sind;
Aktualisierung der Restaurationssequenzliste mit der Vereinigung der Restaurationssequenzliste und der kürzesten identifizierten Teilsequenz in Schritt g; und
Wiederholung bis die Fehlerliste leer ist.
Eine vorteilhafte Ausführung umfaßt ein Verfahren, bei dem in der Validationsphase
zusätzlich Vektoren kontinuierlich zu der Restaurationssequenz hinzugefügt werden,
und eine Fehlersimulation durchgeführt wird, bis alle Fehler der Zielfehlerliste
erkannt sind.
Eine weitere vorteilhafte Ausführung umfaßt ein Verfahren zur Durchführung der
Validationsphase.
Eine weitere vorteilhafte Ausführung umfaßt ein Verfahren, bei dem die
Verfeinerungsphase der Restaurationssequenz durchgeführt wird, indem ein binärer
Suchvorgang durchgeführt wird, um eine kürzeste Teilsequenz zu erkennen, die alle
Fehler in der Zielfehlerliste erkennt.
Eine weitere vorteilhafte Ausführung umfaßt ein Verfahren zur Durchführung der
Verfeinerungsphase.
Ein weiterer Aspekt der vorliegenden Erfindung betrifft ein beschleunigtes
Restaurationsverfahren einer Sequenz von Testvektoren und umfaßt die
nachfolgenden Schritte:
Identifikation von Testvektoren, einer Fehlerliste mit Fehlern, die unter Verwendung der Testvektoren erkannt werden können, und von Detektionszeiten für die Fehler;
Auswahl von Fehlern, die der Zielfehlerliste zugeordnet werden, falls die Fehler existieren;
Durchführung einer überlappenden Validation, so daß wenn zwei Fehler in der Zielfehlerliste restaurierte Sequenzen haben, die sich überlappen, die beiden Fehler vermischt werden, so daß sie einen Zielfehler bilden;
Durchführung einer überlappenden Verfeinerung, falls ein Segment existiert, das den einen Zielfehler erkennt; und
Wiederholung solange Zielfehler existieren.
Identifikation von Testvektoren, einer Fehlerliste mit Fehlern, die unter Verwendung der Testvektoren erkannt werden können, und von Detektionszeiten für die Fehler;
Auswahl von Fehlern, die der Zielfehlerliste zugeordnet werden, falls die Fehler existieren;
Durchführung einer überlappenden Validation, so daß wenn zwei Fehler in der Zielfehlerliste restaurierte Sequenzen haben, die sich überlappen, die beiden Fehler vermischt werden, so daß sie einen Zielfehler bilden;
Durchführung einer überlappenden Verfeinerung, falls ein Segment existiert, das den einen Zielfehler erkennt; und
Wiederholung solange Zielfehler existieren.
Eine weitere vorteilhafte Ausführung der vorliegenden Erfindung umfaßt ein
Verfahren, bei dem während der Durchführung einer überlappenden Validation, falls
restaurierte Sequenzen von zwei Fehlern gemeinsame Vektoren haben, die
Restaurationsverfahren der beiden Vektoren überlappt werden.
Eine weitere vorteilhafte Ausführung der vorliegenden Erfindung umfaßt ein
Verfahren, bei dem solange wenigstens ein Fehler der Zielfehlerliste während dem
überlappenden Validationsverfahren unerkannt ist, neue Zielfehler, die nicht in der
Zielfehlerliste enthalten sind, zu der Zielfehlerliste hinzugefügt werden.
Eine weitere vorteilhafte Ausführung der vorliegenden Erfindung umfaßt ein
Verfahren, bei dem während der Durchführung einer überlappenden Verfeinerung
ein Segment zwischen einer low Sequenz, die alle Fehler in der Zielfehlerliste
identifiziert, und einer high Teilsequenz identifiziert, innerhalb der wenigstens ein
Fehler der Zielfehlerliste nicht identifiziert wird.
Eine weitere vorteilhafte Ausführung der vorliegenden Erfindung umfaßt ein
Verfahren, bei dem solange wenigstens ein Fehler der Zielfehler während der
überlappenden Verfeinerungsphase unerkannt ist, neue Fehler zu der Zielfehlerliste
hinzugefügt werden, falls neue Fehler, die nicht in der Zielfehlerliste sind, identifiziert
werden.
Weitere vorteilhafte Ausführungen der vorliegenden Erfindung umfassen ein
Verfahren zur Durchführung einer überlappenden Validation, einer überlappenden
Verfeinerung, und Aktualisierung von Zielfehlerlisten und den Werten HIGH und
LOW.
Die vorstehenden Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung
werden nachfolgend ohne jede Beschränkung anhand von Ausführungsbeispielen
detailliert beschrieben, die in schematischen Zeichnungen dargestellt sind. Hierzu
zeigt:
Fig. 1 ein Beispiel einer Testmenge und einer entsprechenden Fehler
menge;
Fig. 2 ein Blockdiagramm eines Kompaktierungsverfahrens mit Vektor
restauration;
Fig. 3 eine graphische Darstellung einer Ausführung eines Zweiphasen-
Vektorrestaurationsschemas;
Fig. 4 eine Pseudo-Code-Implementation für eine Ausführung eines
Zweiphasen-Vektorrestaurations-Verfahrens;
Fig. 5 einen Vergleich der herkömmlichen linearen Vektorrestauration
mit der Zweiphasen-Restauration;
Fig. 6 ein Blockdiagramm eines beschleunigten Zweiphasen-Vektor
restaurationsschemas;
Fig. 7 eine Pseudo-Code-Implementation einer Ausführung eines
beschleunigten Zweiphasen-Vektorrestaurations-Verfahrens;
Fig. 8 ein Blockdiagramm eines überlappenden Validationsschemas;
Fig. 9 eine Pseudo-Code-Implementation einer Ausführung des
überlappenden Validationsverfahrens;
Fig. 10 eine Pseudo-Code-Implementation einer Ausführung eines
Algorithmus, der Bereichsinformationen (range information)
(LOW und HIGH arrays) aktualisiert;
Fig. 11 eine Pseudo-Code-Implementation einer Ausführung eines
Verfahrens das die Zielfehlerliste aktualisiert;
Fig. 12 einen Pseudo-Code einer Ausführung eines Verfahrens, das
die Existenz von Segmenten überprüft;
Fig. 13 ein Blockdiagramm eines Verfahrens zur überlappenden Ver
feinerung;
Fig. 14 eine Pseudo-Code-Implementation einer Ausführung des über
lappenden Verfeinerungsverfahrens;
Fig. 15 ein Beispiel für eine beschleunigte Zweiphasen-Restauration;
Fig. 16 Tabelle 1 mit den Resultaten für ISCAS-Schaltkreise; und
Fig. 17 Tabelle 2 mit Resultaten für verschiedene industrielle Designs,
auf die die vorliegende Erfindung angewendet wurde.
Die vorliegende Erfindung stellt ein neues Verfahren zur Vektorrestauration bereit.
Ein neues Zweiphasen-Restaurationsschema wird nachfolgend detailliert
beschrieben, das für große Designs geeignet ist. Das erfindungsgemäße Verfahren
ist der herkömmlichen linearen Vektorrestauration weit überlegen. Die
nachstehenden Techniken können verwendet werden, um Laufzeiten von
Anwendungen wie statische Kompaktierung und Fehlerdiagnose zu verbessern.
Aus Experimenten geht hervor, daß mittels dem erfindungsgemäßen
Restaurationsverfahren eine statische TestSequenz-Kompaktierung große
industrielle Designs verarbeiten kann, die mit herkömmlichen linearen Vektor
restaurationsverfahren nicht bewältigt werden konnten. Herkömmliche lineare
Vektorrestaurationsverfahren sind in I. Pomeranz und S. M. Reddy "Vector
Restoration Based Static Compaction of Test Sequences for Synchronous
Sequential circuits", Proceedings Int. Conf. on Computer Design, S. 360-365, 1997,
University of lowa, August 1997, beschrieben.
Das erfindungsgemäße Restaurationsverfahren besteht aus zwei Phasen:
Validation und Verfeinerung. In der Validationsphase wird eine hinreichende Teilsequenz von Vektoren schnell identifiziert. Eine derartige Teilsequenz enthält in jedem Fall auch eine kürzere Teilsequenz von Vektoren, die alle Zielfehler erkennen. Diese Teilsequenz ist größer als nötig und wird als validiertes Segment (validated segment) bezeichnet.
Validation und Verfeinerung. In der Validationsphase wird eine hinreichende Teilsequenz von Vektoren schnell identifiziert. Eine derartige Teilsequenz enthält in jedem Fall auch eine kürzere Teilsequenz von Vektoren, die alle Zielfehler erkennen. Diese Teilsequenz ist größer als nötig und wird als validiertes Segment (validated segment) bezeichnet.
Die Verfeinerungsphase gleicht das validierte Segment ab und findet die kürzeste
Teilsequenz, die alle Zielfehler erkennt.
Das erfindungsgemäße Restaurationsverfahren ermöglicht es, daß Fehler von
nichtüberlappenden Teilsequenzen erkannt werden. Die Restauration von Fehlern
f3 und f5 in dem Beispiel von Fig. 1 zeigt einen derartigen Fall. Die vollständige
Testmenge kann als Teilsequenz vorgeschlagen werden, die benötigt wird, um die
Fehler f3 und f5 zu entdecken. Teilsequenzen, die die Fehler f3 und f5 erkennen,
haben jedoch keine gemeinsamen Vektoren. Wie vorstehend gesagt, erkennt
Teilsequenz v17, . . . , v20 den Fehler f5 und Teilsequenz v1, . . . , v12 erkennt den
Fehler f3. Diese Teilsequenzen haben keinen gemeinsamen Vektor.
Das erfindungsgemäße Restaurationsverfahren erzeugt anstelle einer einzigen
Teilsequenz zwei Teilsequenzen. Es ist klar, daß diese Teilsequenzen auf beliebige
Weise angeordnet sein können, um die Fehler f3 und f5 zu erkennen. Derartige
unabhängige Teilsequenzen werden als Segmente bezeichnet. Das
Restaurationsverfahren der vorliegenden Erfindung restauriert nichtüberlappende
Segmente, die beliebig angeordnet sein können, um alle Zielfehler zu erkennen.
Fig. 3 zeigt eine Ausführung eines erfindungsgemäßen Zweiphasen-
Restaurationsschemas anhand dessen ein dem erfindungsgemäßen Zweiphasen-
Restaurationsverfahren zugrundeliegendes Schlüsselkonzept erläutert werden
kann. Der aktuelle Zielfehler ist f. Seine Detektionszeit ist mit D[f] gekennzeichnet.
Die Label low, opt, high, base und last nehmen Werte zwischen 1 und n an
(ursprüngliche Testmenge besteht aus Vektoren v1, . . . , vn). Die Sequenz ResSeq
(vbase, . . ., vlast) ist restauriert für frühere Ziele und erkennt das aktuelle Zielfehler f
nicht.
Das Restaurationsverfahren für f beginnt bei Vektor vbase. Die Validationsphase
identifiziert eine Teilsequenz vlow, . . . , vlast, die den Zielfehler erkennt. Die
Restaurationsphase legt auch fest, daß die Teilsequenz Vhigh, . . . , vlast den Zielfehler
nicht erkennt. Wesentlich ist, daß die kürzeste Teilsequenz, die das Ziel erkennt, bei
einem Vektor zwischen vlow und vhigh beginnt.
Die Verfeinerungsphase identifiziert die Teilsequenz vopt, . . . , vbase als die kürzeste
Teilsequenz, die zu der restaurierten Teilsequenz ResSeq hinzugefügt ist. Hier gilt,
low ≦ opt ≦ high.
Eine erfindungsgemäße Ausführung eines Zweiphasen-Restaurationsverfahrens ist
von dem in Fig. 4 dargestellten Pseudo-Code beschrieben. Das
Restaurationsverfahren wiederholt Validations- und Verfeinerungsphasen bis alle
Fehler in der Eingangsfehlerliste Fu von der restaurierten Sequenz ResSeq erkannt
sind. Während jeder Iteration werden nur Fehler berücksichtigt, die von der aktuell
restaurierten Sequenz ResSeq nicht erkannt werden. Von diesen unerkannten
Fehlern werden die Fehler als Zielfehler ausgewählt, die die höchsten
Detektionszeiten haben. Diese Fehler werden in die Zielfehlerliste FT geschrieben.
Die nächsten beiden Abschnitte beschreiben die Validations- und
Verfeinerungsphasen.
Bei einer gegebenen Zielfehlerliste FT bestimmt die Validationsphase die Werte der
Variablen low und high, die das validierte Segment begrenzen. Diese Phase kann
entweder eine aus früheren Restaurationsphasen restaurierte Sequenz ResSeq
übernommen haben, oder kann eine neue Sequenz beginnen. Eine Variable base
wird initialisiert, so daß sie das Minimum einer Detektionszeit eines Fehler in FT ist,
und daß sie der Index des ersten Vektors in der schon restaurierten Sequenz
ResSeq ist. Das Restaurationsverfahren dehnt sich auf ResSeq aus, um Fehler in
FT zu erkennen.
Die while-Schleife (Fig. 4, Zeile 6) ruft den Fehlersimulator (Fig. 4, Zeile 8)
mehrmals auf. Wenn ResSeq Vektoren hat, dann verifiziert der Fehlersimulator, ob
FT schon von ResSeq erkannt wurde. Falls ein oder mehrere Fehler von FT nicht
erkannt sind, dann werden zusätzliche Vektoren zu ResSeq hinzugefügt (Fig. 4,
Zeilen 10 und 11). Dieses Verfahren wird wiederholt, bis genügend Vektoren
hinzugefügt sind, um FT zu erkennen.
Es kann gezeigt werden, daß der Validationsschritt den Fehlersimulator meistens
O(log k) mal aufruft, wenn k Vektoren zu ResSeq hinzugefügt werden, um FT zu
erkennen. Im schlechtesten Fall simuliert die Validationsphase nur
2[lod2k]+1 Vektoren. Dabei ist die Simulation von Vektoren in ResSeq nicht enthalten.
Der Arbeitsablauf der Validationsphase kann anhand dem Beispiel von Fig. 1
aufgezeigt werden, indem betrachtet wird, wie eine Sequenz für den Fehler f5
restauriert wird. Da f5 der erste restaurierte Fehler ist, hat ResSeq keine Vektoren.
Daher werden dem Wert D[f5] = 20 base und low zugeordnet. Während der ersten
Iteration der while-Schleife (Fig. 4, Zeile 6) ermittelt der Fehlersimulator, daß f5 von
der Sequenz, die aus einem Vektor v20 besteht, nicht erkannt wird. Da f5 nicht
erkannt wird, wird die Variable low aktualisiert und erhält den Wert 20-2° = 19. In
der nächsten Iteration ermittelt der Fehlersimulator, daß f5 von der Sequenz v19, v20
nicht erkannt wird. Daher wird die Variable high aktualisiert und erhält den Wert 19.
Die Variable low wird ebenso aktualisiert und erhält den Wert 20-21 = 18.
Bei der Fortführung dieses Verfahrens wird f5 erkannt, wenn low = 20-22 = 16.
Das kommt daher, daß die Sequenz v16, . . ., v20 die Fehler von einem
unbekannten ursprünglichen Zustand detektiert. Das Hinzufügen des Vektors v16
kann die Erkennbarkeit des Fehlers nicht ändern. An diesem Punkt ist high = 18.
Dies markiert das Ende der Validationsphase. Es wurden vier Iterationen der while-
Schleife benötigt. Das validierte Segment besteht aus den Vektoren v16, . . . , v20.
Dieses Segment enthält mehr Vektoren als notwendig, um f5 zu erkennen.
Nach der Validationsphase werden alle Fehler in der Zielfehlermenge FT als
unerkannt markiert (Fig. 4, Zeile 13). Die Verfeinerungsphase identifiziert die
kürzeste Teilsequenz in dem validierten Segment, das FT erkennt.
Die while-Schleife (Fig. 4, Zeile 14) in der Verfeinerungsphase ruft auch einige Male
den Fehlersimulator auf (Fig. 4, Zeile 17). Eine einfache binäre Such-Prozedur wird
verwendet, um die kürzeste Teilsequenz, die alle Fehler in FT erkennt, zu
vergrößern. Der Fehlersimulator wird von der Verfeinerungsphase höchstens
O(log (high - low) mal aufgerufen. Falls die Länge der restaurierten Sequenz k ist,
dann werden schlechtestenfalls 0(log k) Aufrufe des Fehlersimulators benötigt.
Auch die Verfeinerungsphase kann schlechtestenfalls die Simulation von
2k.log k Vektoren benötigen. Hierin sind wiederum nicht die Vektorsimulationen in
ResSeq enthalten.
Die Verfeinerungsphase für f5 (Fig. 1) schließt eine binäre Suche zwischen
low = 16 und high = 18 nach der kürzesten Teilsequenz ein, die f5 erkennt. Die
erste Sequenz, die berücksichtigt wird, beginnt bei Vektor v17. Das kommt daher,
weil
(low + high)/2 = 17 ist. Die Sequenz v17, . . . , v20 erkennt f5. Daher wird low
aktualisiert und erhält den Wert 17. Da low = high + 1 ist schließt die while-Schleife
von Zeile 14 und beendet die Verfeinerungsphase. Die kürzeste bekannte
Teilsequenz ist v17, . . . , v20.
Zunächst wird die Komplexität des linearen Vektorrestaurations(LVR)-Verfahrens
analysiert. Bei der Vektorrestauration für Fehler f5, wird die erste Sequenz mit der
Länge 1 (v20) berücksichtigt, gefolgt von einer Sequenz mit der Länge 2 (v19, v20),
und dieses Verfahren wird bis zu der Sequenz v17, . . . ,v20 fortgeführt. Bei jeder
Iteration wird ein Vektor hinzugefügt. Demzufolge ist die Gesamtzahl der während
der Restauration simulierten Vektoren 1 + 2 + 3 + 4. Hier ist die Länge der
restaurierten Teilsequenz gleich 4 und vier Schritte werden benötigt, um die
Sequenz wiederzufinden. Die vorstehende Berechnung kann für eine restaurierte
Teilsequenz der Länge k verallgemeinert werden:
- - Anzahl von simulierten Vektoren während der Restauration = 1 + 2 + . . . + k = k(k + 1)/2.
- - Anzahl von Iterationen, um die Teilsequenz zu restaurieren = k (kennzeichnet auch die Anzahl der Aufrufe des Fehlersimulators).
Fig. 5 zeigt die verschiedenen Schritte innerhalb der LVR und der
Zweiphasenrestauration, während der Vektor f5 des Beispiels von Fig. 1 restauriert
wird.
Die letzte von LVR und 2ϕ restaurierte Sequenz sind identisch. Bei einer
restaurierten Sequenz mit der Länge k ergibt eine sorgfältige Analyse des
Verfahrens von Fig. 4:
- - Die Validationphase benötigt eine Simulation von 2[log2k]+1 Vektoren
- - Die Verfeinerungsphase könnte im schlechtesten Fall eine Simulation von 2k.log2k Vektoren benötigen.
- - Das Verfahren von Fig. 4 ruft den Fehlersimulator höchstens 2 log2k + 1 mal auf.
Die Signifikanz der obigen Analyse wird bei der Betrachtung einer typischen Anzahl
für k offensichtlich. Wenn die Sequenz ResSeq 1000 Vektoren hat, und das
Restaurationsverfahren für ein Ziel eine Addition von 100 Vektoren zu ResSeq
benötigt, dann ist der Wert von k gleich 100. Bei jeden Aufruf des Fehlersimulators
werden Vektoren aus ResSeq simuliert. Wenn die Anzahl der Vektoren, die
während der Restauration simuliert werden, VLVR bei der linearen Restauration und
V2ϕ bei dem Zweiphasenverfahren ist, dann gilt
VLVR = 1000.(# Aufrufe Fehlersimulator) + 100.(100 + 1)/2
= 1000.100 + 5050 = 105,050
V2ϕ = 1000.(# Aufrufe Fehlersimulator) + (256 + 2.100.7) = 1000.(2.7 + 1) + (256 + 2.100.7) = 16,656
V2ϕ = 1000.(# Aufrufe Fehlersimulator) + (256 + 2.100.7) = 1000.(2.7 + 1) + (256 + 2.100.7) = 16,656
Verglichen mit der linearen Restauration benötigt die Zweiphasen-Restauration fast
um eine Größenordnung weniger Simulationen. Demzufolge wird von der
Zweiphasen-Restauration erzielt eine deutliche Geschwindigkeitserhöhung.
Die im Zusammenhang mit Fig. 4 beschriebene Zweiphasen-Restauration
berücksichtigt ein neues Ziel nur nach der Restauration der kürzesten Sequenz für
ein aktuelles Ziel. Typischerweise überlappen sich restaurierte Sequenzen
aufeinanderfolgender Ziele. Es kann daher sein, daß es nicht nötig ist, die kürzeste
Sequenz für das aktuelle Ziel zu finden. In vielen Fällen ist es möglich, das nächste
Ziel zu identifizieren, selbst bevor die Vektorrestauration für das aktuelle Ziel
abgeschlossen ist.
Das beschleunigte Zweiphasen-Restaurationsverfahren ist ein weiterer Aspekt der
vorliegenden Erfindung. Bei diesem Verfahren werden neue Ziele entweder in der
Validationsphase oder der Verfeinerungsphase identifiziert. Wenn neue Ziele
identifiziert werden, wird das Restaurationsverfahren für das aktuelle Ziel mit dem
Restaurationsverfahren des neuen Ziels überlappt. Wie nachstehend dargelegt, wird
mit dem Überlappen der Vektorrestauration bei dem Zweiphasen-Verfahren eine
weitere deutliche Beschleunigung des Restaurations-Verfahrens erzielt. Bei dem
Zweiphasen-Verfahren und dem beschleunigten Zweiphasen-Verfahren sind die
restaurierten Segmente identisch.
Fig. 6 zeigt den Ablauf des beschleunigten Restaurationsverfahrens. Wie bei einem
grundlegenden Vektorrestaurationsverfahren wird eine Menge von Testvektoren
eingegeben, eine Liste von zu detektierenden Fehlern wird eingegeben, und eine
Liste von Detektionszeiten für die Fehler von 6.01 wird eingegeben. Anders als bei
dem grundlegenden Zweiphasen-Restaurationsverfahren, das vorstehend
beschrieben ist, wird bei dem beschleunigten Verfahren die Validation und
Verfeinerung einer Vielzahl von Zielfehlern überlappt. Der Restaurationsabschnitt
des beschleunigten Verfahrens besteht insbesondere aus drei Phasen: Überlappte
Validation 6.05, Segmentexistenzbedingung 6.06 und überlappte
Verfeinerungsphase 6.07.
Nachfolgend wird ein Schlüsselkonzept beschrieben, das dem beschleunigten
Verfahren zugrundeliegt. Falls eine Teilsequenz, die nach der Validationsphase
erhalten ist, kein Segment für Zielfehler enthält, dann ist eine Verfeinerungsphase
nicht notwendig. Die beschleunigte Version überlappt die Validation für eine Vielzahl
Fehler bis eine Teilsequenz identifiziert ist, die ein Segment enthält. Die
Verfeinerungsphase 6.07 extrahiert ein Segment für Zielfehler. Diese Phase
überlappt wiederum Verfeinerungsphasen mehrerer Zielfehler.
Fig. 7 zeigt die Schritte des beschleunigten Verfahrens. Das beschleunigte
Verfahren wiederholt ähnlich wie das grundlegende zweiphasige Verfahren auch
Validations- und Verfeinerungsphasen, bis alle Fehler in der Eingangsfehlerliste Fu
von der restaurierten Sequenz ResSeq erkannt sind. Das beschleunigte Verfahren
berechnet auch die Zielfehlerliste FT zu Beginn jeder Iteration. Es gibt jedoch einige
grundlegende Unterschiede zwischen den grundlegenden Restaurationsverfahren
und dessen beschleunigte Version:
- 1. Das beschleunigte Verfahren modifiziert die Zielfehlerliste in der Validations- oder Verfeinerungsphase,
- 2. das beschleunigte Verfahren führt eine Verfeinerung nur aus, nachdem die Validationsphase eine Sequenz erzeugt hat, die ein Segment für Zielfehler enthält, und
- 3. jede Verfeinerungsphase der while-Schleife (Fig. 6, Zeile 8) in dem beschleunigten Verfahren erzeugt genau ein Segment.
Das ist anders als bei dem grundlegenden Verfahren, bei dem mehrere
Verfeinerungsphasen benötigt werden können, um ein Segment zu erzeugen, das
Zielfehler detektiert.
Das beschleunigte Verfahren speichert auch mehr Informationen über den Bereich
von Vektoren, die ein Ziel erkennen oder nicht erkennen. Diese Information ist
während der Fehlersimulation einer Sequenz und Zielfehlern leicht erhältlich. Bei
dem Verfahren von Fig. 4 ermittelt die Validationsphase Werte von Variablen low
und high, die die folgenden Eigenschaften erfüllen: (1) Teilsequenz von vlow, . . . , vlast,
erkennt alle Zielfehler FT, aber (2) Teilsequenz vhigh, . . . , vlast erkennt nicht
wenigstens einen Fehler in FT.
Das beschleunigte Verfahren verwendet Arrays LOW und HIGH, um den
Informationsbereich jedes Fehlers aufzuzeichnen. Für einen Fehler f gilt unter der
Annahme eines Fehlers f mit LOW[f] = i und HIGH[f] = j, wobei die Werte i und j
jeweils die nachstehenden Eigenschaften erfüllen:
- 1. Sequenz vi, . . . , vlast, erkennt den Fehler, aber
- 2. Sequenz vj, . . . , vlast erkennt den Fehler nicht. Die Bereichsinformation jedes Fehlers wird während der überlappten Validation oder Verfeinerung kontinuierlich aktualisiert. Die überlappte Validation und Verfeinerung wird nachfolgend beschrieben.
Unter der Annahme, daß fx das aktuelle Ziel ist, detektiert bei der Validationsphase
des Zweiphasen-Restaurationsverfahrens von Fig. 4 eine zwischenliegende
Sequenz vlow, . . . , vlast (siehe Fig. 3) nicht fx, und diese Sequenz detektiert auch
keinen anderen Fehler fy, der eine Detektionszeit D[fy] ≧ low hat. In einem
derartigen Fall überlappen die restaurierten Sequenzen der Fehler fx und fy. Beide
Sequenzen enthalten insbesondere Vektoren vlow, . . . , vD[fy]. Daher kann die
Validation der Fehler fx und fy überlappt sein.
In dem Beispiel von Fig. 1 wird während der Validation für f3 die Sequenz v4, . . . , v12
als ein möglicher Kandidat berücksichtigt. Die falsche Simulation deckt auf, daß f2
und f3 nicht erkannt sind. Die Detektionszeit von f2 ist 5. Daher wird eine beliebige
restaurierte Sequenz, die f2 detektiert mit der restaurierten Sequenz für den Fehler
f3 wenigstens die Vektoren v4 und v5 teilen. Daher kann die für f3 restaurierte
Sequenz nicht alleine ein Segment bilden. Um die Segmentrestauration zu
beschleunigen, können beide Fehler als ein Ziel FT = (f2, f3) vermischt werden. Die
Validationsphase kann die Restauration für die Fehler f2 und f3 überlappen.
Der erfindungsgemäßen überlappten Validation liegt ein Schlüsselkonzept
zugrunde, das nachstehend beschrieben wird. Falls restaurierte Sequenzen zweier
Fehler gemeinsame Vektoren haben, kann das Restaurationsverfahren für die
beiden Fehler überlappt werden. Hierdurch wird ein bedeutender Rechenvorteil
erzielt.
Fig. 8 zeigt das überlappte Validationsverfahren. Zu Beginn des Verfahrens wird
eine Zielfehlerliste eingegeben und partielle Segmente von Testvektoren werden
eingegeben, und die Detektionszeiten von Fehlern werden in 8.01 eingegeben. In
8.02 werden Vektoren zu dem partiellen Segment hinzugefügt. In 8.03 wird ermittelt,
ob das Ziel detektiert ist. Wenn das Ziel erkannt ist, wird nachdem das validierte
Segment in 8.04 ausgegeben ist, der Algorithmus verlassen, anderenfalls wird die
Zielfehlerliste in 8.05 aktualisiert, und das Verfahren mit 8.02 fortgeführt.
Wenn der gestrichelte Block 8.05 von Fig. 8, der die Zielfehlerliste aktualisiert,
ignoriert wird, dann beschreibt das Flußdiagramm die Validationsphase des
grundlegenden Verfahrens. Bei der überlappten Validation wird ein zusätzlicher
Prozeß durchgeführt, wenn ein oder mehrere Fehler in der Zielfehlerliste FT nicht
erkannt sind. Dieser Prozeß ermittelt, ob neue Ziele identifiziert wurden. Falls ein
neues Ziel gefunden wird, dann wird die Validationsphase fortgeführt, indem neue
Ziele in die aktuelle Zielfehlerliste aufgenommen werden.
Fig. 9 zeigt den detaillierten Algorithmus für die überlappte Validationsphase.
Während jeder Iteration der while-Schleife (Fig. 9, Zeile 3) wird eine neue Sequenz
Seq vorgeschlagen (Fig. 9, Zeile 5). Es wird auch eine neue Fehlerliste Fs gebildet
(Fig. 9, Zeile 4). Diese Menge enthält alle unerkannten Fehler, die Detektionszeiten
entsprechend den Vektoren in Seq haben. Für die Aktualisierung des
Informationsbereichs für die Fehler in Fs wird eine falsche Simulation der Sequenz
Seq verwendet Man betrachtet beispielsweise einen Fehler F aus Fs, der von der
falschen Simulation erkannt wird. Der Index des ersten Vektors in Seq sei Index.
Falls LOW[f] < Index ist dann wird der Wert von LOW von [f] aktualisiert und LOW
erhält den Wert Index. Das wird durchgeführt, weil die Fehlersimulation festgelegt
hat, daß Fehler f von der Sequenz Seq erkannt wird. Falls die falsche Simulation
den Fehler f nicht erkannte, kann der Wert von HIGH[f] aktualisiert werden. Wenn
beispielsweise HIGH[f] < Index ist, dann wird der Wert von HIGH[f] aktualisiert und
erhält den Wert Index. Fig. 10 zeigt das Verfahren für die Aktualisierung der
Bereichsinformationen.
Wenn eine oder mehrere Fehler in Fr von der Seq nicht erkannt werden, können
neue Ziele identifiziert werden. Dieser Schritt existiert nicht in dem grundlegenden
Verfahren. Unter Verwendung des Verfahrens UPDATE_TARGETS, das in Fig. 11
dargestellt ist, werden neue Ziele identifiziert. Unter Verwendung der
Bereichsinformationen der Fehler in FT wird der Index high zuerst derart identifiziert,
daß die Teilsequenz vhigh, . . . , vlast nicht wenigstens einen Fehler in FT erkennt.
Unentdeckte Fehler, die nicht Teil der Zielfehlerliste FT sind, (Fig. 11, Zeile 3)
werden in Abhängigkeit ihrer Detektionszeiten in absteigender Reihenfolge
berücksichtigt. Man nehme an, fp sei ein derartiger unerkannter Fehler.
Unter Berücksichtigung des Vektors vD[fp], falls high ≦ D[fp] + 1 ist, wird die
restaurierte Sequenz für FT tatsächlich den Vektor vD[fp] enthalten. Wenn auch
HIGH[fp] ≦ D[fp] ist, dann wird die für fp restaurierte Sequenz auch den Vektor vD[fp]
enthalten. Das kommt daher, daß es bekannt ist, daß die Sequenz vHIGH[fp], . . . , vlast
fp nicht detektieren können. Falls der Vektor vD[fp] restaurierten Sequenzen für
Fehler in FT und der Fehler fp gemeinsam ist, können das Restaurationsverfahren
für diese Fehler überlappt werden, indem fp in FT enthalten ist.
Es kann sein, daß FT Fehler enthält, die von der Sequenz vhigh, . . . , vlast erkannt
werden. Man betrachte beispielsweise einen Fehler f aus FT. Wenn LOW[f] ≧ max
ist, dann definiert die Sequenz vhigh, . . . , vlast mit Sicherheit den Fehler f. Zeile 10 in
Fig. 11 identifiziert derartige Fehler. Diese Fehler können als erkannt
gekennzeichnet werden, und sie müssen nicht nochmals bei dem
Restaurationsverfahren berücksichtigt werden. Daher werden sie aus der Fehlerliste
Fu und der Zielliste FT entfernt. Falls fp als neues Ziel aufgenommen wird, dann wird
der Wert von high (Fig. 11, Zeile 4) neu errechnet. Das Aktualisierungsverfahren
hält bei dem ersten Fehler fp an, der kein neues Ziel ist. Es wird so verfahren, da
restaurierte Sequenzen für verbleibende, nicht erkannte Fehler nicht mit dem
Segment für die Zielfehler FT überlappen.
Die Sequenz, die nach der Validation erhalten ist, kann ein Segment enthalten oder
kann kein Segment enthalten. Falls kein Segment existiert, dann ist keine
Verfeinerungsphase nötig. Das Verfahren von Fig. 12 ermittelt, ob eine Sequenz ein
Segment enthält. Die Sequenz ResSeq erkennt keine Fehler in FT. Die
Bereichsinformation von Fehlern in FT wird verwendet, um den Vert der Variablen
low (Fig. 12, Zeile 2) zu ermitteln. Die Sequenz Seq = {vlow, . . . , vbase} U ResSeq
ermittelt alle Fehler in FT. Diese Prozedur nimmt an, daß eine Fehlersimulation für
Seq bereits durchgeführt wurde.
SEGMENT_FOUND ist eine Ausführung eines erfindungsgemäßen Verfahrens, das
ermittelt, ob eine Teilsequenz vlow, . . . , vbase ein Segment enthält, das FT erkennt. In
dieser Phase ist es nicht nötig, das exakte Segment für FT zu identifizieren. Es
genügt, die Existenz einer Teilsequenz in Seq festzulegen, die den nachstehenden
beiden Eigenschaften genügt:
- 1. Teilsequenz erkennt FT, und
- 2. kein unerkannter Fehler in Fu - FT hat eine Detektionszeit, die einem Vektor in der Teilsequenz entspricht.
Der erste Schritt ist die Berechnung von Fc. Diese Menge enthält alle unerkannten
Fehler mit Detektionszeiten, die Vektoren in Seq entsprechen. Falls Fc keine Fehler
hat, dann enthält Seq ein Segment (Fig. 12, Zeile 6). Andererseits müssen
Vektoren, die zu restaurierten Sequenzen für Fehler in Fc gehören, ausgeschlossen
werden. Man betrachte einen Fehler f aus Fc. Da HIGH[f] ≦ low ist, wird der Fehler
f von Seq nicht erkannt. Wichtiger ist, daß eine restaurierte Sequenz für den Fehler
f mit Seq überlappt. Die Überlappung kann die Vektoren vlow, . . . , vD[f] betreffen.
Falls daher ein Segment für FT existiert, dann muß es in der Teilsequenz von
vD[f]+1, . . . , vbase enthalten sein. Zeile 8 in Fig. 12 ermittelt den Index low des ersten
Vektors, der nicht zur restaurierten Sequenz für irgendeinen Fehler in Fc gehört.
Auf der Grundlage der Fehler in Fc wird eine kürzere Sequenz Seq (Fig. 12, Zeile 9)
vorgeschlagen. Die neue Sequenz Seq kann nicht alle Fehler in FT erkennen. Dies
wird von einer falschen Simulation ermittelt. Wenn dies der Fall ist (Fig. 12, Zeilen
16-17), dann enthält Seq nicht ein Segment für FT. Falls die Seq alle Fehler in FT
erkennt (Fig. 12, Zeile 14), dann ist nicht klar, ob ein Segment für FT existiert oder
nicht. Es gibt jedoch jetzt eine kürzere zu prüfende Sequenz als verglichen mit der
ursprünglichen Sequenz zu Beginn der while-Schleife (Fig. 12, Zeile 3). Das
Verfahren wird für die kürzere Sequenz wiederholt. Dieses Verfahren wird
nachstehend unter Verwendung eines Beispiels erläutert.
In dem Beispiel von Fig. 1 ist nach der Validationsphase des grundlegenden
Verfahrens (Fig. 4) für den Fehler f3 die Zielfehlerliste FT = (f3, f2), high = 4 und low
= 1. Auf der Basis dieser ursprünglichen Werte ist die erste Sequenz, die von dem
Fehlersimulator verarbeitet wird, v2, . . . , v12. Diese Sequenz erkennt beide Fehler in
FT. Der Fehler f1 wird jedoch nicht erkannt. Seine Detektionszeit D[f1] = 3 entspricht
dem Vektor v3, der bereits in der Sequenz v2, . . . , v12 enthalten ist. Daher enthält
die für f1 restaurierte Sequenz auch Vektoren v2 und v3 und eine weitere
Verfeinerung von v2, . . . , v12 ist nicht nötig. Verfeinerungsphasen von Fehler f1 und
Fehlern in FT sollten überlappt werden, um das Segment zu finden.
Ein grundlegendes Konzept der überlappten Verfeinerung ist ein Segment zu finden.
Wie bei der überlappten Validation werden neue Ziele identifiziert, falls ein oder
mehrere Fehler in FT nicht erkannt werden. Falls ein neues Ziel gefunden ist, wird
die Verfeinerungsphase fortgeführt, indem ein neues Ziel in FT eingefügt wird.
Anders als bei den grundlegenden Verfahren von Fig. 4, stellt die überlappte
Verfeinerungsphase
- 1. immer ein Segment her, und
- 2. null Fehler können zu FT während der Verfeinerungsphase hinzugefügt werden.
Eine erfindungsgemäße Ausführung des überlappten Verfeinerungsverfahrens ist in
Fig. 13 dargestellt. Zu Beginn des Verfahrens wird ein validiertes Segment und eine
Liste von Zielfehlern zusammen mit ihren Detektionszeiten eingegeben. Das
eingegebene validierte Segment wird in 13.02 beschnitten (pruned). In 13.03
ermittelt das Verfahren, ob das Ziel erkannt ist. Wenn das Ziel nicht erkannt ist, wird
die Fehlerliste in 13.06 aktualisiert, und die Beschneidung (pruning) des validierten
Segments in 1.302 wird fortgesetzt. Falls das Ziel erkannt ist, ermittelt Bedingung
13.04, ob weitere Verfeinerung möglich ist. Wenn die Antwort "yes" ist, wird die
Beschneidung (pruning) des validierten Segments in 13.02 fortgesetzt, anderenfalls
wird die Ausführung beendet und das gefundene Segment ausgegeben.
Falls der gestrichelte Block 13.06 weggelassen wird, dann zeigt das Flußdiagramm
die Verfeinerungsphase des grundlegenden Verfahrens.
Eine erfindungsgemäße Ausführung der detaillierten Schritte des Verfahrens für die
überlappte Verfeinerungsphase ist in Fig. 14 dargestellt. Ursprünglich enthält
ResSeq keine Fehler in FT. Die Bereichsinformation von Fehlern in FT wird erneut
benutzt, um den ersten Vektor vlow, der Sequenz zu finden, die Fehler in FT erkennt
(Fig. 14, Zeile 2). Alle Fehler in FT werden von der Teilsequenz vlow, . . . , vbase
erkannt. Die Bereichsinformation wird auch verwendet, um den Index high zu
identifizieren, so daß wenigstens ein Fehler in FT nicht erkannt wird. Diese Sequenz
ist vhigh, . . . , vbase. Ein Segment für FT beginnt irgendwo zwischen low und high. Die
überlappte Verfeinerung identifiziert dieses Segment. Dieses Segment erkennt alle
Fehler in FT, aber es kann auch andere Fehler erkennen. Die zusätzlichen in dem
Segment erkannten Fehler können neue Ziele werden, die in FT enthalten sind.
Während jeder Iteration der while-Schleife (Fig. 14, Zeile 4) wird eine neue Sequenz
Seq vorgeschlagen (Fig. 14, Zeile 6). Eine neue Fehlerliste Fs wird gebildet, die
unerkannte Fehler enthält, mit Detektionszeiten, die Vektoren in Seq entsprechen.
Fehlersimulation der Sequenz Seq wird verwendet, um die Bereichsinformation für
Fehler in Fs zu aktualisieren.
Wenn alle Fehler in FT erkannt sind (Fig. 14, Zeilen 11-15), dann wird unter
Verwendung einer anderen Prozedur als das standardbinäre Suchverfahren die
neue Sequenz gewählt. Dann wird die Menge Fc (Fig. 14, Zeile 11) berechnet.
Diese Menge enthält alle Fehler mit Detektionszeiten, die Vektoren in der Sequenz
Seq entsprechen, aber es ist bekannt, daß diese Fehler von der Sequenz Seq nicht
erkannt werden können. Die Vektoren, die zu restaurierten Sequenzen für Fehler in
Fc gehören, müssen erneut ausgeschlossen werden. Zeile 12 in Fig. 14 ermittelt
den Index start des ersten Vektors, der nicht zu restaurierten Sequenzen für
irgendeinen Fehler in Fc gehört. Die nächste Sequenz, die auf Zeile 6 gewählt wird,
ist {vstart, . . ., vbase} ResSeq. Das ist eine deutlich kürzere Sequenz.
Wenn schließlich ein Fehler in FT nicht erkannt wird, gibt es eine Möglichkeit neue
Ziele zu finden. UPDATE TARGETS ist eine erfindungsgemäße Ausführung des
Verfahrens, das neue Ziele findet. Da neue Ziele in FT eingebracht werden können,
werden die Grenzen low und high (Fig. 14, Zeilen 18-19) neu berechnet. Wichtiger
ist, daß die nächste Sequenz unter Verwendung des binären Suchverfahrens
gewählt wird. Eine Sequenz größer als Seq wird in der nächsten Iteration
berücksichtigt werden müssen.
Die erfindungsgemäße überlappende Validation und Verfeinerung verbessert
deutlich die Durchführung bei der Restauration eines Segments. Wie nachstehend
dargelegt wird, beschleunigen diese Verfahren die Kompaktierungsverfahren um
einen Faktor von 2 für ein großes Indstriedesign.
Anhand von Fig. 15 wird ein Beispiel der beschleunigten Version des
erfindungsgemäßen Verfahrens erläutert. Die Testmenge besteht aus dreißig
Vektoren v1, . . . , v30 und die Fehlerliste hat acht Fehler Fu = {f1, . . . , f8}. Das Beispiel
zeigt die Detektionszeit und alle Teilsequenzen, die einen Fehler unter der
Annahme eines unbekannten ursprünglichen Zustandes erkennen. Beispielsweise
Fehler f3 wird erkannt, nach der Anwendung des Vektors v19. Daher ist D[f3] = 19.
Nur die Teilsequenz v16, . . . , v19 erkennt diesen Fehler beim Start ausgehend von
einem unbekannten ursprünglichen Zustand. Jeder Fehler wird von genau einer
Teilsequenz erkannt, mit der Ausnahme von Fehler f3, wie in Fig. 15 dargestellt ist.
Dieser Fehler wird von zwei Teilsequenzen v1, . . . , v22 und v22, . . . , v28 erkannt.
Für dieses Beispiel benötigt das beschleunigte Verfahren zwei
Verfeinerungsphasen. Zwei Segmente werden gefunden: {v3, . . . , v14} und
{v17, . . . , v30}. Nachstehend wird das Verfahren beschrieben, das für das Auffinden
des ersten Segments verwendet wird. Das zweite Segment wird auf ähnliche Weise
gefunden.
Das erste Segment v17, . . . , v30 wird wie folgt hergeleitet. Zuerst wird das
2-ϕ*-Verfahren von Fig. 7 berücksichtigt. Da dies die erste Iteration ist, gibt es keine
Vektoren in ResSeq. Zeilen 2-4 sind Initialisierungsschritte, die benötigt werden,
bevor ein neues Segment hergeleitet wird. Die Variable base = 30, da die höchste
Detektionszeit für den Fehler f5 ist und D[f8] = 30 ist. Die Zielfehlerliste FT hat nur
einen Fehler f8. Die Prozedur RESET_LOW_HIGH initialisiert die Arrays LOW und
HIGH. Für irgendein f aus Fu gilt LOW[f] = 1 und HIGH[f] = 31.
Das Verfahren OVERLAPPED_VALIDATION: Ursprünglich ist FT = f8. Die Variable
start = 31, da HIGH[f8] = 31. Das Restaurationsverfahren berücksichtigt sieben
Sequenzen in der nachstehenden Reihenfolge.
- 1. Die erste für die Fehlersimulation berücksichtigte Sequenz ist v30, da in Zeile
4 low = 30 ist. Die Fehlermenge Fs = {f8}, da alle anderen Fehler in FT
Detektionszeiten haben, die kleiner als 30 sind. Eine falsche Simulation
eines Vektors v30 detektiert keine Fehler in Fs. Die Bereichsinformation wird
unter Verwendung der Prozedur UPDATE LOW HIGH wie folgt aktualisiert:
HIGH[f8] = 30. Die Prozedur UPDATE TARGETS erzeugt keine neuen Ziele. Der erste Fehler, der in diesem Verfahren berücksichtigt wird, ist fp = f7 (Fig. 11, Zeile 3). Die Variable high = HIGH[f8] = 30. Da D[fp] = 29, ist high < D[fp] und Fehler f7 ist kein neues Ziel. - 2. Die nächste für die Fehlersimulation berücksichtigte Sequenz ist Sep = {v29, v30}, da in Fig. 9, Zeile 4 low = 29 ist. Die Menge FT enthält immer noch nur einen Fehler f8. Da die Detektionszeiten von f7 und von f8 größer oder gleich als 29 sind, ist jedoch Fs = {f7, f8}. Eine Fehlersimulation von Seq erkennt auch keinen neuen Fehler FT. Die Bereichsinformation wird wie folgt aktualisiert: HIGH[f7] = HIGH[f8] = 29. Die Prozedur UPDATE_TARGETS stellt ein neues Ziel wie folgt bereit. Der erste in diesem Verfahren berücksichtigte Fehler ist fp = f7. Die Variable high = HIGH[f8] = 29. Da D[f7] = 29 ist, ist high ≦ D[f7] + 1. Außerdem ist HIGH[f7] ≦ D[f7]. Daher ist f7 ein neues Ziel und wird in die Zielfehlerliste FT eingefügt. Die Menge Fdet hat keine Fehler. Der zweite berücksichtigte Fehler ist fp = f6. Die Variable high = Minimum HIGH[f7], HIGH[f8] = 29. Da D[f6] = 26 ist, ist high < D[f6] + 1 und f6 ist kein neues Ziel.
- 3. Die nächste berücksichtigte Sequenz ist Seq = {v28, . . . , v30}. Für diesen Durchlauf ist FT = Fs = {f7, f8}. Die Fehlersimulation von Seq erkennt wiederum keinen Fehler in Fs. Die Bereichsinformation wird wie folgt aktualisiert: HIGH[f7] = HIGH[f8] = 28. Aus dem Verfahren UPDATE_TARGETS resultiert kein neues Ziel.
- 4. Die nächste berücksichtige Sequenz ist Seq = {v26, . . . , v30}. Die Menge FT
= {f7, f8} und Fs = {f6, f7, f8}. Der Fehler f6 wird in F8 berücksichtigt, da
D[f6] = 26 ≧ 26 und HIGH[f6] = 31 < 26 ist. Die Fehlersimulation führt zu der
Erkennung des Fehlers f8. Die Bereichsinformation wird wie folgt aktualisiert:
HIGH[f6] = HIGH[f7] = LOW[f8] = 26. Das Verfahren UPDATE_TARGETS (1) erzeugt ein neues Ziel f6 und (2) der Fehler f8 wird als erkannt gekennzeichnet, und aus FT und Fu entfernt. Der Fehler f6 ist ein neues Ziel, da die restaurierte Sequenz für f6 mit der Sequenz v26, . . . , v30 überlappen wird. - 5. Die nächste berücksichtigte Sequenz ist Seq = {v22, . . . , v30}. Die Menge
FT = {f6, f7} und Fs = {f5, f6, f7}. Fehler f5 ist wiederum in Fs enthalten, da
seine Detektionszeit 22 ist. Die Fehlersimulation von Seq führt zu der
Erkennung von f5. Die Bereichsinformation wird wie folgt aktualisiert:
HIGH[f6] = HIGH[f7] = LOW[f5] = 22. Das Verfahren UPDATE_TARGETS (1) erzeugt keine neuen Ziele, aber (2) der Fehler f5 wird als erkannt gekennzeichnet, und von FT und Fu entfernt. - 6. Die nächste berücksichtige Sequenz ist Seq = {v14, . . . , v30}. Die Menge FT =
{f6, f7} und Fs = {f1, f2, f3, f4, f6, f7}. Die Fehler f1, . . . , f4 sind in Fs
enthalten, da ihre Detektionszeiten größer oder gleich 14 sind. Die
Fehlersimulation von Seq führt zu der Erkennung von allen Fehlern in Fs mit
der Ausnahme von f1. Die Bereichsinformation wird wie folgt aktualisiert:
LOW[f2] = LOW[f3] = LOW[f4] = LOW[f6] = LOW[f7] = HIGH[f1] = 14. Das Verfahren UPDATE_TARGETS erzeugt keine neuen Ziele. Da alle Ziele in FT erkannt sind, wird die überlappte Validationsphase mit der Sequenz v14, . . . , v30 beendet.
Das Verfahren SEGMENT_FOUND: Ursprünglich ist FT = {f6, f7} und low = 14.
Daher erkennt die Sequenz v14, . . . , v30 alle Fehler in FT. Die Menge Fc wird wie
folgt berechnet. Alle Fehler in Fu = {f1, f2, f3, f4, f6, f7} haben Detektionszeiten
größer oder gleich 14. Nur ein Fehler f1 jedoch hat HIGH[f1] ≦ 14. Daher ist Fc =
{f1}. Die erste für die Fehlersimulation vorgeschlagene Sequenz ist Seq =
{v15, . . . , v30}. Die Menge Fs = {f2, f3, f4, f6, f7}. Die Fehlersimulation zeigt, daß alle
Fehler in Fs erkannt sind. Die Bereichsinformation wird wie folgt aktualisiert:
LOW[f2] = LOW[f3] = LOW[f4] = LOW[f6] = LOW[f7] = 15. Da alle Fehler in FT erkannt sind; kann ein Segment innerhalb des Segments Seq möglich sein. Alle Fehler in FT werden als unerkannt gekennzeichnet, und die kürzere Sequenz {v15, . . . , v30} wird als Segment geprüft. Die Menge Fc wird erneut neu berechnet und dabei erkannt, daß Fc keine Fehler hat. Daher hat die Sequenz {v15, . . . , v30} ein Segment.
LOW[f2] = LOW[f3] = LOW[f4] = LOW[f6] = LOW[f7] = 15. Da alle Fehler in FT erkannt sind; kann ein Segment innerhalb des Segments Seq möglich sein. Alle Fehler in FT werden als unerkannt gekennzeichnet, und die kürzere Sequenz {v15, . . . , v30} wird als Segment geprüft. Die Menge Fc wird erneut neu berechnet und dabei erkannt, daß Fc keine Fehler hat. Daher hat die Sequenz {v15, . . . , v30} ein Segment.
Das Verfahren OVERLAPPED_REFNEMENT: Diese Phase identifiziert das
Segment {v17, . . . , v30}. Zu Beginn der Verfeinerungsphase ist FT = {f6, f7}. Aus den
Zeilen 1 und 2 des Verfeinerungsverfahrens von Fig. 14 folgt, daß high = 22 und
low = 15 ist. Daher ist der erste Vektor des Segments irgendwo zwischen den
Vektoren v15 und v22. Das Verfeinerungsverfahren berücksichtigt fünf Sequenzen in
der nachfolgenden Reihenfolge:
- 1. Die erste berücksichtigte Sequenz ist Seq = {v18, . . . , v30} (Fig. 14, Zeile 6), da opf = [(low + high)/2] = 18 ist, wie bei dem binären Suchverfahren der Verfeinerungsphase des grundlegenden Verfahrens ermittelt wird. Die Mengen FT = {f6, f7} und Fs = {f2, f3, f4, f5, f7}. Die Fehlersimulation von Seq zeigt, daß die Fehler f4, f6 und f7 erkannt sind. Die Bereichsinformation wird wie folgt aktualisiert: LOW[f4] = LOW[f6] = LOW[f7] = HIGH[f2] = HIGH[f3] = 18. Da alle Fehler in FT erkannt sind, wird die Menge Fc berechnet und Fc = {f2, f3}. Da Fc Fehler hat, wird daher die nächste Sequenz nicht unter Verwendung des binären Standard-Suchverfahrens gewählt. Die Variable start = 1 + 19 = 20 und die Variable low = 18.
- 2. Die nächste berücksichtigte Sequenz ist Seq = {v20, . . . , v30}, da in Fig. 14, Zeile 5, opt = start = 20 ist. Zu dieser Zeit wird FT nicht verändert und Fs = {f4, f6, f7}. Die Fehlersimulation von Seq zeigt, daß die Fehler f6 und f7 erkannt werden, aber f4 nicht erkannt wird. Die Bereichsinformation wird wie folgt aktualisiert: LOW[f6] = LOW[f7] = HIGH[f4] = 20. Da alle Fehler in FT erkannt werden, wird die Menge Fc berechnet und Fc = {f4}. Da Fc Fehler hat, wird die nächste Sequenz nicht unter Verwendung des binären Standardsuchverfahrens gewählt. Die Variable start = 1 + 21 = 22 und die Variable low = 20.
- 3. Die nächste berücksichtigte Sequenz ist Seq = {v22, . . . , v30} (Fig. 14, Zeile 6) Wiederum bleibt FT = {f6, f7} unverändert. Jedoch ist Fs = {}, da Seq während der OVERLAPPED_VALIDATION-Phase bereits bei einer Fehlersimulation berücksichtigt wurde. Daher ist keine Fehlersimulation nötig. Die Fehler f6 und f7 können von Seq nicht erkannt werden. Die Bereichsinformation bleibt unverändert. HIGH[f6] = HIGH[f7] = 22. Nun werden unter Verwendung des Verfahrens UPDATE_TARGETS neue Ziele identifiziert.
Als nächstes wird das Verfahren UPDATE_TARGETS von Fig. 11 ausgeführt.
Ursprünglich ist FT = {f6, f7} und Fu = {f1, f2, f3, f4, f6, f7}.
- a) Der erste berücksichtigte Fehler ist fp = f4 (Fig. 11, Zeile 3). Bei der Berück sichtigung von allen Fehlern in FT wird ermittelt, daß high = 22 ist (Fig. 11, Zeile 4). Da high ≦ D[f4] + 1 ist und HIGH[f4] = 20 ≦ D[f4] ist, gibt es ein neues Ziel f4, das in FT aufgenommen wird. Die Menge Fdet wird berechnet und Fdet = 0 (Zeile 10), da LOW[f6] und LOW[f7] = 20 ist und high = 22.
- b) Der zweite berücksichtigte Fehler ist fp = f3. Da D[f3] = 19 ist und high = 20 ist, ist Fehler f3 ein neues Ziel. Erneut wird f3 zu FT hinzugefügt. Die Zielfehlerliste wird aktualisiert auf FT = {f3, f4}. Die Menge Fdet wird berechnet und Fdet = {f6, f7}, da LOW[f6] = LOW[f7] = 20 ≧ high. Diese beiden Fehler werden als erkannt gekennzeichnet. Sie werden aus FT und Fu entfernt. Jetzt ist FT = {f3, f4}.
- c) Der dritte berücksichtigte Fehler ist fp = f2. Da D[f2] = 18 ist und high = 18 ist, ist Fehler f2 ein neues Ziel. Wiederum wird f2 zu FT hinzugefügt. Die Zielfehlerliste wird aktualisiert auf FT = {f2, f3}. Die Menge Fdet wird bestimmt und Fdet = {f4}. Der Fehler f4 wird als erkannt gekennzeichnet. Dieser Fehler wird aus FT und Fu entfernt. Nun ist FT = {f2, f3}.
- d) Der letzte berücksichtigte Fehler ist fp = f1. Da D[f1] = 14 ist und high = 18 ist, ist Fehler f1 kein neues Ziel. Keine neuen Ziele sind möglich.
- 1. Daraufhin kehrt die Ausführung auf Zeile 18 des Verfahrens OVERLAPPED_REFINEMENT (Fig. 14) zurück. An diesem Punkt ist FT = {f2, f3}. Da sich FT verändert hat, werden die Grenzen neu berechnet und high = 18 und low = 15. Man beachte, daß die nächste Sequenz unter Verwendung des binären Suchverfahrens ausgewählt wird. Die nächste berücksichtigte Sequenz ist Seq = {v16, . . . , v30}, da aus Fig. 14, Zeile 5 folgt, daß opt = 16 ist. Die Menge Fs ist die gleiche wie FT. Die Fehlersimulation von Seq zeigt, daß beide Fehler f2 und f3 erkannt sind. Die Bereichsinformation wird wie folgt aktualisiert LOW[f2] = LOW[f3] = 16. Da alle Fehler in FT erkannt sind, ist es möglich, daß das Segment für FT kürzer als Seq sein kann. Die nächste Sequenz wird nicht unter Verwendung des binären Suchverfahrens ausgewählt. Die Variable statt = 1 + 16 = 17, und die Variable low = 16.
- 2. Die letzte berücksichtigte Sequenz ist Seq = {v17, v30}, da aus Zeile 16 von Fig. 14 hervorgeht, daß opt = 17 ist. Jetzt ist Fs = FT = {f2, f3}. Die Fehlersimulation von Seq zeigt, daß f2 erkannt wird, aber f3 nicht erkannt wird. Die Bereichsinformation wird wie folgt aktualisiert: LOW[f2] = HIGH[f3] = 17. Es gibt eine Gelegenheit ein neues Ziel zu finden. Das Verfahren UPDATE_TARGETS (1) findet kein neues Ziel, aber (2) es ermittelt, daß f2 erkannt wird. Dieser Fehler wird aus Fs und Fu entfernt. Die Werte von high und low werden neu berechnet und high = 17 und low = 16. Das verletzt die Bedingung der while-Schleife (Fig. 14, Zeile 4) und das Verfeinerungsverfahren wird beendet.
Die vorstehend beschriebenen erfindungsgemäßen Vektorrestaurationsverfahren
wurden als Teil eines statischen FestSequenz-Kompaktierungssystems
implementiert. Die Implementation wurde mit dem vorstehend beschriebenen
grundlegenden Verfahren und dem vorteilhaften Verfahren durchgeführt. Um einen
geeigneten Vergleich zu ermöglichen, wurde das lineare
Vektorrestaurationsverfahren ebenfalls implementiert. Die Standardnäherung führt
die Simulation eines einzigen Fehlers während des Vektorrestaurationsverfahrens
durch. I. Pomeranz und S. M. Reddy "Vector Restoration Based Static Compaction
of Test Sequences for Synchronous Sequential Circuits" Proceedings Int. Conf. on
Computer Design, S. 360-365, 1997, University of lowa, August 1997. Diese
Annäherung wurde erweitert, um eine Vielzahl von Fehlern während der
Vektorrestauration zu berücksichtigen. Bei dieser Implementation werden Fehler mit
gleichen Detektionszeiten simultan für die Restauration berücksichtigt. Daher hat
das Verfahren den Vorteil eines parallelen Fehlersimulators, der in der
Implementation verwendet wird. Diese Implementation des linearen
Vektorrestaurationsverfahrens wird als LVR* bezeichnet.
Für ISCAS Wertungsschaltkreise und einige industrielle Designs sind experimentelle
Resultate bekannt aus F. Brglez, D. Bryan und K. Kozminski "Combinational profiles
of Sequential benchmark circuits", Int. Symposium on Circuits and Systems, S.
1929-1934, Mai 1989. Die neuen Verfahren werden mit der LVR*-Annäherung
verglichen. Tabelle 1 von Fig. 16 zeigt die Resultate für ISCAS-Schaltkreise.
Tabellen 2 von Fig. 17 zeigt Resultate von verschiedenen industriellen Designs. Alle
Tabelle zeigen eine Anzahl von Vektoren in der ursprünglichen und kompaktierten
Vektormenge. Die Kompaktierungsqualität wird in Prozent der Reduktion des
ursprünglichen Vektortests angegeben. Die CPU-Sekunden sind für eine Sun
UltraSPARC work station angegeben. CPU-Sekunden werden plattformspezifisch
angegeben. Um eine Vorstellung von der Komplexität des Verfahrens zu geben, ist
auch die Zeit für eine falsche Simulation von allen Fehlern unter Verwendung der
ursprünglichen Vektormenge angegeben. Diese Zeiten werden angegeben, unter
der Spalte Initial Sim. time. Die Spalten LVR*, 2-ϕ und 2-ϕ* geben die CPU-
Sekunden an, die jeweils für die Kompaktierung unter Verwendung der linearen
Vektorrestauration, der Zweiphasenrestauration und der beschleunigten
Zweiphasenrestauration benötigt werden. Vektorrestauration auf der Grundlage von
Kompaktierungsannäherungen behalten den Fehlerumfang (fault coverage) der
ursprünglichen Vektormenge bei. Daher sind Fehlerumfangszahlen nicht
angegeben.
Die ursprüngliche Fehlermenge, die für ISCAS-Schaltkreise verwendet wurde,
wurde unter Verwendung des Testet-Generators HITEC erhalten, der beschrieben
ist in T. M. Niermann und J. H. Patel, "HITEC: A test generation package for
Sequential circuits" Proc. European Conf. Design Automation (EDAC), S. 214-218,
März 1991. Die Resultate für die Kompaktierung auf ISCAS-Schaltkreisen sind in
Tabelle 1 angegeben. Die Kompaktierung mit den vorgeschlagenen
erfindungsgemäßen Restaurationsverfahren ist für große ISCAS-Designs
bedeutend schneller. Für ISCAS-Designs ist die Kompaktierung unter Verwendung
der beschriebenen Verfahren ungefähr zweimal schneller für eine falsche Simulation
einer ursprünglichen Vektormenge.
Die Anzahl der GATES und Anzahl der FLIP FLOPS in dem betrachteten
industriellen Design der Experimente ist in Tabelle 2 angegeben. Industrielle
Designs haben einige nicht Bool'sche Primitive, sowie Tristatpuffer, bidirektionale
Puffer und Busse. Sie haben außerdem Setz/Rücksetz FLIP FLOPS und
Vielfachtakte.
Ursprüngliche Testmengen für diese Schaltkreise wurden mit einem auf dem Markt
erhältlichen Testgenerator erzeugt.
Auch Tabelle 2 zeigt Resultate, die unter Verwendung des erfindungsgemäßen
vorstehend beschriebenen Beschleunigungsverfahrens erzielt wurden. Resultate,
die unter Verwendung des grundlegenden Verfahrens von Fig. 4 erzielt wurden, sind
in Spalte 24 angezeigt. Resultate, die unter Verwendung der
Beschleunigungsverfahren erzielt wurden, sind in Spalte 2-ϕ* angezeigt. Aus der
Tabelle geht hervor, daß die Kompaktierungszeit ungefähr das 2- bis 10-fache der
ursprünglichen Fehlersimulationszeit beträgt. Die Kompaktierung mit der
beschleunigten Zweiphasenrestauration läuft 2- bis 5-fach schneller als die lineare
Vektorrestauration. Beispielsweise will für das industrielle Design p29 mit der
beschleunigten Zweiphasenrestauration die Kompaktierung in 12380 s fertiggestellt
werden. Für den gleichen Schaltkreis wurde für die Kompaktierung mit der
verbesserten linearen Vektorrestauration 41616 s benötigt. Unter Verwendung der
vorstehend beschriebenen erfindungsgemäßen Restaurationsverfahren war das
Kompaktierungssystem in der Lage, eine Kompaktierung auf großen Designs mit
ungefähr 200.000 Gates und 5000 Flip Flops fertigzustellen, während mit der LVR*
selbst nach 2 CPU-Tagen eine Kompaktierung nicht fertigstellen konnte. Die
überlappte Validation und die Verfeinerungsverfahren stellten sich als überaus
nützlich für große Designs heraus. Die Resultate für diese Verfahren sind in Spalte
2-ϕ* angezeigt. Die 2-ϕ*-Version ist besonders wirkungsvoll für Schaltkreise mit
großen Segmenten. In dem industriellen Design p306 gibt es beispielsweise ein
Segment mit 2666 Vektoren und die Verwendung des 2-ϕ*-Verfahrens führt zu
einer Verbesserung der CPU-Sekunden um mehr als einen Faktor 2.
Die experimentellen Resultate zeigen die Überlegenheit des neuen
Vektorrestaurationsverfahrens. Die erfindungsgemäßen Verfahren verbessern
deutlich die Laufzeiten einer Vektorrestauration auf der Grundlage von statischen
Kompaktierungsverfahren.
Die vorstehend beschriebenen erfindungsgemäßen Vektorrestaurationsverfahren
sind den herkömmlichen Verfahren deutlich überlegen. Die neuen Verfahren führen
eine Vektorrestauration durch, indem schrittweise zwei Phasen wiederholt werden:
Validation und Verfeinerung. Die erfindungsgemäßen Verfahren können Teilsequenzen restaurieren, die zusätzlichen Bedingungen entsprechen, wie: (1) Zielfehler werden unter der Annahme eines bekannten ursprünglichen Zustands vor der Anwendung der Teilsequenz erkannt, oder (2) eine restaurierte Teilsequenz bildet ein Segment. Teilsequenzen, die zusätzliche Eigenschaften haben, können in statischen Testsequenzkompaktierungsverfahren und Fehlerdiagnoseverfahren verwendet werden. Die vorliegende Erfindung betrifft außerdem Beschleunigungsverfahren für eine Vektorrestauration. Resultate aus Experimenten auf ISCAS-Designs und einigen großen industriellen Designs bestätigen die Anwendbarkeit der vorliegenden Verfahren.
Validation und Verfeinerung. Die erfindungsgemäßen Verfahren können Teilsequenzen restaurieren, die zusätzlichen Bedingungen entsprechen, wie: (1) Zielfehler werden unter der Annahme eines bekannten ursprünglichen Zustands vor der Anwendung der Teilsequenz erkannt, oder (2) eine restaurierte Teilsequenz bildet ein Segment. Teilsequenzen, die zusätzliche Eigenschaften haben, können in statischen Testsequenzkompaktierungsverfahren und Fehlerdiagnoseverfahren verwendet werden. Die vorliegende Erfindung betrifft außerdem Beschleunigungsverfahren für eine Vektorrestauration. Resultate aus Experimenten auf ISCAS-Designs und einigen großen industriellen Designs bestätigen die Anwendbarkeit der vorliegenden Verfahren.
Abwandlungen und Variationen der vorliegenden Erfindung sind für den Fachmann
aufgrund der vorstehenden technischen Lehre selbstverständlich. Obwohl daher nur
spezielle Ausführungen der Erfindung detailliert beschrieben wurden, ist klar, daß
die vorliegende Erfindung vielfach abgewandelt werden kann, ohne den Rahmen
der Erfindung zu verlassen.
Claims (16)
1. Verfahren zur Restauration einer Sequenz von Testvektoren zum Testen
eines Systems, wobei das System eine Fehlermenge hat, die von einer Sequenz
von Testvektoren erkennbar ist, und wobei eine Teilmenge der Fehlermenge
Zielfehler genannt ist, und wobei das Verfahren eine Validationsphase und eine
Restaurationsphase hat, und wobei die Validationsphase eine erste Teilsequenz der
Testvektoren identifiziert, die die Zielfehler erkennen, und eine zweite Teilsequenz
der Testvektoren identifiziert, die die Zielfehler nicht erkennen, und wobei die
Restaurationsphase die kürzeste Teilsequenz zwischen der ersten Teilsequenz und
der zweiten Teilsequenz identifiziert, die die Zielfehler erkennt.
2. Restaurationsverfahren für eine Sequenz von Testvektoren mit:
- a) Zuordnung von Fehlern zu einer Fehlerliste;
- b) Identifizierung einer Detektionszeit für jeden der Fehler;
- c) Initialisierung einer Restaurationssequenzliste zu Null (nil);
- d) Zuordnung von Fehlern aus der Fehlerliste mit hohen Detektionszeiten zu einer Zielfehlerliste;
- e) Zuweisung von base gleich dem Minimum der höchsten Detektionszeiten, und eine Zeit, die einem ersten Vektor in der Restaurationssequenzliste entspricht;
- f) Durchführung einer Validationsphase, die eine low Teilsequenz der Testvektoren identifiziert, die alle Fehler in der Zielfehlerliste erkennt, und eine high Teilsequenz identifiziert, die keinen Fehler in der Zielfehlerliste erkennt;
- g) Durchführung einer Verfeinerungsphase, die eine kürzeste Teilsequenz zwischen der low Teilsequenz und der high Teilsequenz identifiziert, wobei die kürzeste Teilsequenz alle Fehler in der Zielfehlerliste erkennt;
- h) Entfernung der Fehler aus der Fehlerliste, die auch in der Zielfehlerüste sind;
- i) Aktualisierung der Restaurationssequenzliste, so daß sie die Vereinigung der Restaurationssequenzliste und der kürzesten Teilsequenz ist, die in Schritt (g) identifiziert ist; und
- j) Wiederholung der Schritte (d) bis (i), bis die Fehlerliste leer ist.
3. Verfahren nach Anspruch 2, wobei in der Validationsphase zusätzliche
Vektoren kontinuierlich zu der Restaurations-Sequenz addiert werden, und eine
Fehlersimulation durchgeführt wird, bis alle Fehler in der Zielfehlerliste erkannt sind.
4. Verfahren nach Anspruch 2, wobei die Validationsphase von Schritt (f) die
nachstehenden Schritte umfaßt:
- 1. (f)(1) Zuordnung von low = base;
- 2. (f)(2) Erstellung einer Sequenzliste, die eine Vereinigung einer Vektor-Sequenz low zu base und der Restaurationssequenz ist;
- 3. (f)(3) Durchführung einer Simulation, um Fehler in der Zielfehlerliste unter Verwendung der Sequenzliste von Schritt (f)(2) zu simulieren;
- 4. (f)(4) Setzen der Werte high = low, low = base - K, wobei K ein vorbestimmter Wert ist; und
- 5. (f)(5) Wiederholung der Schritte (f)(2) bis (f)(4), bis alle Fehler in der Zielfehler- liste bekannt sind.
5. Verfahren nach Anspruch 2, wobei die Verfeinerungsphase mit der
Restaurationssequenz durchgeführt wird, indem eine binäre Suche durchgeführt
wird, um eine kürzeste Teilsequenz zu erkennen, die alle Fehler in der Zielfehlerliste
erkennt.
6. Verfahren nach Anspruch 2, wobei die Verfeinerungsphase von Schritt (g)
die folgenden Schritte umfaßt:
- 1. (g)(1) Zuordnung von opt gleich einem Mittelpunkt zwischen high und low;
- 2. (g)(2) Erstellung einer Sequenzliste, die eine Vereinigung einer VektorSequenz von opt bis base und der Restaurationssequenz ist;
- 3. (g)(3) Durchführung einer Simulation von Fehlern der Zielfehler unter Verwendung der Sequenzliste von Schritt (g)(2);
- 4. (g)(4) Wenn alle Fehler der Zielfehlerliste erkannt sind, wird low = opt zuge wiesen, und wenn alle Fehler der Zielfehler nicht erkannt werden, wird high = opt zugewiesen; und
- 5. (g)(5) Wiederholung der Schritte (g)(1) bis (g)(4) solange low < high = 1 ist.
7. Verfahren nach Anspruch 4, wobei K = xi, x < = 2 und i = 0 in der ersten
Wiederholung ist und i wird in Wiederholungen um einen konstanten Wert erhöht,
die von der ersten Wiederholung verschieden sind.
8. Beschleunigtes Restaurationsverfahren einer Sequenz von Testvektoren,
das die nachstehenden Schritte umfaßt
- a) Identifikation von Testvektoren, eine Fehlerliste mit Fehlern, die unter Verwendung dieser Testvektoren erkannt werden können, und Detektions zeiten für die Fehler;
- b) Selektion von Fehlern, die einer Zielfehlerliste zugeordnet werden, falls die Fehler existieren;
- c) Durchführung einer überlappten Validation, so daß, wenn zwei Fehler in der Zielfehlerliste Restaurationssequenzen haben, die überlappen, dann werden die beiden Fehler vermischt und bilden einen Zielfehler,
- d) Durchführung einer überlappten Verfeinerung, wenn ein Segment, das den einen Zielfehler erkennt, in Schritt (d) existiert; und
- e) Wiederholung der Schritte (b) bis (e) solange in Schritt (b) Zielfehler existieren.
9. Verfahren nach Anspruch 8, wobei während der Durchführung der
überlappten Validation das Restaurationsverfahren zweier Vektoren überlappt wird,
falls restaurierte Sequenzen von zwei Fehlern gemeinsame Vektoren haben.
10. Verfahren nach Anspruch 8, wobei neue Zielfehler, die nicht in der
Zielfehlerliste sind, zu der Zielfehlerliste hinzugefügt werden, solange wenigstens
ein Fehler der Zielfehler während dem überlappten Validationsschritt unerkannt ist.
11. Verfahren nach Anspruch 8, wobei während der Durchführung der
überlappten Verfeinerung ein Segment zwischen einer low Sequenz identifiziert
wird, die alle Fehler in der Zielfehlerliste identifiziert, und eine high Teilsequenz bei
der wenigstens ein Fehler in der Zielfehlerliste nicht identifiziert wird.
12. Verfahren nach Anspruch 8, wobei solange wenigstens ein Fehler der
Zielfehler während der überlappten Verfeinerung nicht erkannt wird, und falls neue
Fehler identifiziert werden, die nicht in der Zielfehlerliste sind, dann werden die
neuen Fehler zu der Zielfehlerliste hinzugefügt.
13. Verfahren nach Anspruch 8, wobei Schritt (d) die folgenden Schritte umfaßt:
- 1. (d)(1) Zuordnung von HIGH(f) und LOW(f) für jeden Fehler in der Fehlerliste, wobei eine Teilsequenz von HIGH(f) bis zu einem letzten Vektor einen Fehler f nicht erkennt, und eine Teilsequenz von LOW(f) bis zu einem letzten Vektor den Fehler erkennt;
- 2. (d)(2) Setzen von low = 0;
- 3. (d)(3) Setzen von statt gleich dem Minimum von HIGH(f) aller Fehler f;
- 4. (d)(4) Setzen von low gleich dem Maximum von start-L und low, wobei L ein vorbestimmter Wert ist;
- 5. (d)(6) Setzen einer Sequenz gleich der Vereinigung einer Teilsequenz von low bis base und der Restaurationssequenz;
- 6. (d)(7) Selektion von Fehlern für eine zweite Fehlerliste Fs, so daß D[f] ≧ low ist und HIGH[f] < low ist, für alle Fehler in der Fehlerliste;
- 7. (d)(8) Durchführung einer Simulation zur Überprüfung, ob Fehler in Fs von der Sequenz von Schritt (d)(6) erkannt werden;
- 8. (d)(9) Aktualisierung der Zielfehlerliste;
- 9. (d)(10) Aktualisierung von HIGH und LOW; und
- 10. (d)(11) Wiederholung der Schritte (d)(4) bis (d)(8), solange Fehler in der Zielfehler liste nicht erkannt sind.
14. Verfahren nach Anspruch 8, wobei Schritt (e) die folgenden Schritte umfaßt:
- 1. (e)(1) Zuordnung von high gleich dem Minimum von HIGH[f] für alle Fehler f;
- 2. (e)(2) Zuordnung von low gleich dem Minimum von LOW[f] für alle Fehler f und einer Binärsuche gleich Yes;
- 3. (e)(3) Setzen von opt = (low + high)/2, falls Binary-Search Yes ist und opt = start, falls Binary-Search gleich No ist;
- 4. (e)(4) Erstellen einer Sequenzliste, die eine Vereinigung einer Vektorsequenz von opt bis base und der Restaurationssequenz ist;
- 5. (e)(5) Zuordnung von Fehlern zu einer zweiten Fehlerliste Fs, so daß D[f] ≧ opt HIGH[f] < opt für alle Fehler in der Fehlerliste ist.
- 6. (e)(6) Durchführung einer Simulation, um zu sehen, ob Fehler in Fs unter Ver wendung der Sequenzliste erkannt werden;
- 7. (e)(7) Aktualisierung von low und high für Fehler in Fs;
- 8. (e)(8) Durchführung der folgenden Schritte, falls Fehler in der Zielfehlerliste erkannt
werden:
- 1. (e)(8)(i) Berechnung einer Fehlerliste Fc, die alle Fehler enthält, die von der Sequenz nicht erkennbar sind und mit Detektionszeiten, die der Sequenzliste entsprechen;
- 2. (e)(8)(ii) Setzen von start = Maximum D[f] + 1 für alle Fehler in Fc;
- 3. (e)(8)(iii) Setzen von low gleich opt; und
- 4. (e)(8)(iv) Binary-Search = Yes, falls Fc gleich Null (nil) ist, und
Binary-Search = No, falls Fc gleich Null (nil) ist;
- 9. (e)(9) Durchführung der folgenden Schritte, falls Fehler in der Zielfehlerliste nicht
erkannt werden:
- 1. (e)(9)(i) Aktualisierung der Zielfehlerliste;
- 2. (e)(9)(ii) Setzen von high auf Maximum von HIGH[f] für alle Fehler in der Zielfehlerliste;
- 3. (e)(9)(iii) Setzen von low auf das Maximum von LOW[f] für alle Fehler in der Zielfehlerliste; und
- 4. (e)(9)(iv) Setzen von Binary-Search = Yes; und
- 10. (10) Wiederholung von (e) (3) bis (e)(9) solange low < high - 1 ist.
15. Verfahren nach Anspruch 13, wobei Schritt (d)(10) die nachfolgenden
Schritte umfaßt:
- 1. (d)(10)(i) Setzen von LOW[f] gleich dem Maximum von LOW[J] und low, falls ein Fehler f erkannt wird;
- 2. (d)(10)(ii) Setzen von HIGH(f) auf das Minimum von HIGH(f) und low, falls ein Fehler f nicht erkannt wird; und
- 3. (d)(10)(iii) Wiederholung der Schritte (d)(10)(i) bis (d)(10)(ii) für alle Fehler
16. Verfahren nach Anspruch 13, wobei Schritt (d)(9) die folgenden Schritte
umfaßt:
- 1. (d)(9)(i) Selektion eines Fehlers fp mit der höchsten D[f], die noch unerkannt ist, und die nicht in der Zielfehlerliste ist;
- 2. (d)(9)(ii) Setzen von high auf das Minimum HIGH[f] für alle Fehler in der Zielfehlerliste;
- 3. (d)(9)(iii) Hinzufügen von fp zu der Zielfehlerliste, falls high ≦ D[fp] + 1 ist und HIGH[fp] ≦ D[fp] ist;
- 4. (d)(9)(iv) Selektion von Fehlern f aus der Zielfehlerliste mit LOW[f] high, und Entfernung der Fehler aus der Zielfehlerliste und aus der unerkannten Fehlerliste; und
- 5. (d)(9)(v) Wiederholung der Schritte (d)(9)(i) bis (d)(9)(iv), solange fp zu der Zielfehlerliste hinzugefügt wird.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8675898P | 1998-05-27 | 1998-05-27 | |
US09/112,945 US6223316B1 (en) | 1998-05-27 | 1998-07-10 | Vector restoration using accelerated validation and refinement |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19924242A1 true DE19924242A1 (de) | 1999-12-30 |
DE19924242C2 DE19924242C2 (de) | 2002-04-18 |
Family
ID=26775120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19924242A Expired - Fee Related DE19924242C2 (de) | 1998-05-27 | 1999-05-27 | Vektorrestauration mit beschleunigter Validation und Verfeinerung |
Country Status (3)
Country | Link |
---|---|
US (1) | US6223316B1 (de) |
JP (1) | JP3275309B2 (de) |
DE (1) | DE19924242C2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7260793B2 (en) | 2001-06-05 | 2007-08-21 | Fujitsu Limited | Apparatus and method for test-stimuli compaction |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6467058B1 (en) * | 1999-01-20 | 2002-10-15 | Nec Usa, Inc. | Segmented compaction with pruning and critical fault elimination |
JP3734392B2 (ja) * | 1999-10-29 | 2006-01-11 | 松下電器産業株式会社 | 半導体集積回路の故障検査方法及びレイアウト方法 |
US6732312B2 (en) * | 2001-03-09 | 2004-05-04 | Agilent Technologies, Inc. | Test vector compression method |
US8744830B2 (en) | 2011-08-31 | 2014-06-03 | General Electric Company | Systems and methods for electrical fault restoration |
US11067005B2 (en) | 2015-02-03 | 2021-07-20 | Raytheon Technologies Corporation | Fan drive gear system |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485471A (en) * | 1993-10-15 | 1996-01-16 | Mitsubishi Electric Research Laboratories, Inc. | System for testing of digital integrated circuits |
US5796752A (en) * | 1995-03-06 | 1998-08-18 | Motorola, Inc. | Method and apparatus for constructing verification test sequences by euler touring a test subsequence graph |
US5555270A (en) * | 1995-03-13 | 1996-09-10 | Motorola Inc. | Method and apparatus for constructing unique input/output sequence (UIO) sets utilizing transition distinctness measurements |
US5726996A (en) * | 1995-09-18 | 1998-03-10 | Nec Usa, Inc. | Process for dynamic composition and test cycles reduction |
US5983381A (en) * | 1997-12-31 | 1999-11-09 | Nec Usa Inc. | Partitioning and reordering methods for static test sequence compaction of sequential circuits |
-
1998
- 1998-07-10 US US09/112,945 patent/US6223316B1/en not_active Expired - Lifetime
-
1999
- 1999-05-26 JP JP14722699A patent/JP3275309B2/ja not_active Expired - Fee Related
- 1999-05-27 DE DE19924242A patent/DE19924242C2/de not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7260793B2 (en) | 2001-06-05 | 2007-08-21 | Fujitsu Limited | Apparatus and method for test-stimuli compaction |
Also Published As
Publication number | Publication date |
---|---|
JP2000057001A (ja) | 2000-02-25 |
DE19924242C2 (de) | 2002-04-18 |
JP3275309B2 (ja) | 2002-04-15 |
US6223316B1 (en) | 2001-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69017785T2 (de) | Verfahren zur Herstellung eines Expertensystems für Systemfehlerdiagnose. | |
DE19903633A1 (de) | Implementierung von Boolescher Erfüllbarkeit mit nichtchronologischer Rückwärtsverarbeitung in rekonfigurierbarer Hardware | |
EP0580663B1 (de) | Verfahren zur verifikation datenverarbeitender systeme | |
DE19950821A1 (de) | Bewertungssystem für integrierte Halbleiterschaltungen | |
EP1020815A2 (de) | Vorrichtung und Verfahren zur automatischen Diagnose eines technischen Systems mit effizienter Wiederverwendung von Informationen | |
DE112017007656T5 (de) | Verschobene aktualisierung von datenbank-hashcode in einer blockchain | |
DE4031136C2 (de) | ||
EP1127323A1 (de) | Verfahren und anordnung zum vergleich einer ersten eigenschaft mit vorgegebenen eigenschaften eines technischen systems | |
DE102019209540A1 (de) | Verfahren und Vorrichtung zur optimalen Aufteilung von Testfällen auf unterschiedliche Testplattformen | |
DE69934467T2 (de) | Verfahren und Vorrichtung zur Auswahl von selektierten Komponenten in einem Test mit begrenztem Zugang | |
DE3854636T2 (de) | Automatischer Prüfprozess für logische Geräte. | |
DE69333806T2 (de) | Verfahren und Gerät zur Prüfsequenzgenerierung | |
DE69219662T2 (de) | Verfahren zur On-Line-Modifizierung von komprimierten digitalen Prüfvektoren | |
DE19924242C2 (de) | Vektorrestauration mit beschleunigter Validation und Verfeinerung | |
DE19930273A1 (de) | Hochgeschwindigkeitsvorrichtung zur Prüfmusterbewertung | |
EP3812949A1 (de) | Konfigurierbarer digitaler zwilling | |
DE10150914C1 (de) | Verfahren zur strukturellen Analyse und Korrektur eines mittels einer Computersprache beschriebenen Differentialgleichungssystems | |
DE10200833A1 (de) | Gerät und Verfahren für eine Teststimuliverdichtung | |
DE3688437T2 (de) | Verfahren zur Umwandlung einer MOS-Schaltung von Schaltebenedarstellung in eine boolesche Darstellung und Verfahren zur Fehlersimulation in einer auf der Schaltebene dargestellten MOS-Schaltung durch das Verwenden seiner booleschen Darstellung. | |
DE112018006331B4 (de) | Testfallgenerierungsvorrichtung, Testfallgenerierungsverfahren und Testfallgenerierungsprogramm | |
DE3422287A1 (de) | Pruefanordnung fuer digitalschaltungen | |
DE4410731A1 (de) | Logiksimulator | |
EP1008075B1 (de) | Rechnergestütztes verfahren zur partitionierung einer elektrischen schaltung | |
EP1257904B1 (de) | Verfahren zum erzeugen einer folge von zufallszahlen eines 1/f-rauschens | |
DE60035644T2 (de) | Ablauffolgeplanung der nicht ganzzahligen Simulationszeit für mixed-signal Simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
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 |