DE19924242A1 - Vektorrestauration mit beschleunigter Validation und Verfeinerung - Google Patents

Vektorrestauration mit beschleunigter Validation und Verfeinerung

Info

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
Application number
DE19924242A
Other languages
English (en)
Other versions
DE19924242C2 (de
Inventor
Surenda K Bommu
Srimat T Chakradhar
Kiran B Doreswamy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of DE19924242A1 publication Critical patent/DE19924242A1/de
Application granted granted Critical
Publication of DE19924242C2 publication Critical patent/DE19924242C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318371Methodologies therefor, e.g. algorithms, procedures
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318392Generation 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

BESCHREIBUNG DER ERFINDUNG
Die vorliegende Erfindung beansprucht die Priorität der parallelen anhängigen US- Provisional-Patentanmeldung Ser. Nr. 60/086,758 vom 27. Mai 1998.
BEREICH DER ERFINDUNG
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.
HINTERGRUND DER ERFINDUNG
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.
Anwendung von Vektorrestauration
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.
ZUSAMMENFASSUNG DER ERFINDUNG
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.
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.
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.
KURZE BESCHREIBUNG DER ZEICHNUNGEN
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.
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
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.
Zweiphasen-Vektorrestauration
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.
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.
Validation
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.
Verfeinerung
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.
Vergleich mit der linearen Vektorrestauration
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 V bei dem Zweiphasenverfahren ist, dann gilt
VLVR = 1000.(# Aufrufe Fehlersimulator) + 100.(100 + 1)/2 = 1000.100 + 5050 = 105,050
V = 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.
Beschleunigte Zweiphasen-Restauration
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.
Überlappte Validation
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.
Segmentexistenzprüfung
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.
Überlappte Verfeinerung
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.
BEISPIEL
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.
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.
Versuchsergebnisse
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.
RESUMÉ
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.
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.
DE19924242A 1998-05-27 1999-05-27 Vektorrestauration mit beschleunigter Validation und Verfeinerung Expired - Fee Related DE19924242C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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