DE60204535T2 - Optimierungsverfahren einer Prüfsequenz für digitale integrierte Schaltungen - Google Patents

Optimierungsverfahren einer Prüfsequenz für digitale integrierte Schaltungen Download PDF

Info

Publication number
DE60204535T2
DE60204535T2 DE60204535T DE60204535T DE60204535T2 DE 60204535 T2 DE60204535 T2 DE 60204535T2 DE 60204535 T DE60204535 T DE 60204535T DE 60204535 T DE60204535 T DE 60204535T DE 60204535 T2 DE60204535 T2 DE 60204535T2
Authority
DE
Germany
Prior art keywords
vector
correlation
test
vectors
tests
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60204535T
Other languages
English (en)
Other versions
DE60204535D1 (de
Inventor
Kang Wu
Susan L. Stirrat
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.)
Verigy Singapore Pte Ltd
Original Assignee
Agilent Technologies Inc
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 Agilent Technologies Inc filed Critical Agilent Technologies Inc
Application granted granted Critical
Publication of DE60204535D1 publication Critical patent/DE60204535D1/de
Publication of DE60204535T2 publication Critical patent/DE60204535T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/31835Analysis of test coverage or failure detectability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Testing Or Measuring Of Semiconductors Or The Like (AREA)

Description

  • Diese Erfindung bezieht sich allgemein auf das Gebiet von Integrierte-Schaltung-Systemen und insbesondere auf die Erfassung von Fehlern bei digitalen integrierten Schaltungen.
  • Ein wichtiger Aspekt der Herstellung von integrierten Schaltungen (ICs) ist der Nachherstellungstestprozess. Das Ziel des Nachherstellungstestprozesses besteht darin, an eine Vorrichtung Testeingaben anzulegen und zu bestimmen, ob die Vorrichtung fehlerhaft ist. Bevorzugt findet dieser Fehlererfassungsprozess zu einem möglichst frühen Zeitpunkt statt, da eine weitere Integration von fehlerbehafteten Komponenten rasch sehr teuer wird. Man stelle sich z. B. vor zu versuchen, den Ort einer fehlerbehafteten IC in einem Personalcomputersystem zu bestimmen. Es gibt mehrere unterschiedliche Arten von Tests, die bei einem IC-Fehlertesten angewendet werden können. Erschöpfende Tests versuchen, jede mögliche Eingabe anzulegen, um zu bestimmen, ob Fehler in der IC vorhanden sind. Ein Funktionstesten testet die Funktionen, die an der IC vorhanden sind, auf eine korrekte Operation hin. Der Fehlermodelltest bestimmt jeden Fehlertyp, bei dem es wahrscheinlich ist, dass derselbe auftritt, und entwickelt Tests für diese gewöhnlichen Fehler. Der erschöpfende Test kann der zeitaufwändigste sein und kann auch teuer sein. Ein Funktionstesten ist dahingehend problematisch, dass der Testentwurf exakt sicherstellen muss, dass jede Funktionalität korrekt getestet wird. Ein Funktionalitätstesten erfordert anwendungsspezifisches Wissen, um sicherzustellen, dass jede enthaltene Funktionalität getestet wurde. Ein Fehlermodellieren erfasst die Fehler, die in dem Rahmen des Fehlermodells angenommen werden. Ein Beispiel des Fehlermodells ist das Blockiert-bei- (stuck-at) Fehlermodell. Dieses Modell nimmt eine begrenzte Anzahl von Fehlern an und nimmt an, dass die Fehler dauerhaft sind.
  • Ein gut konzipierter Testplan sollte eine möglichst geringe Anzahl von Testeingaben verwenden, um eine möglichst große Anzahl von Fehlern oder fehlerhaften Chips (DDs) abzudecken, und der Testplan sollte so konzipiert sein, dass eine Testsequenz auf eine effiziente Weise ausgeführt wird. Viele der erschöpfenden, Funktions- und Fehlermodelle basieren auf RTL und Schemata. Somit wird der Einfluss des physischen Entwurfs der IC und des Herstellungsprozesses (PLMP) auf die Fehlererzeugung bei IC-Schaltungen in der Teststrategie nicht ausgenutzt. Die mangelnde Beziehung zwischen der Testeingabedatenerzeugung und dem PLMP macht diese Verfahren anfällig dafür, redundante Tests aufzuweisen und einen Test ineffizient durchzuführen. Die Anzahl von redundanten Tests und ineffizienten Tests (RITs) ist ein wertvoller Parameter, der zu berücksichtigen ist, wenn Testpläne konzipiert werden, da ein großer Nutzen hinsichtlich eines Reduzierens der Testausführungszeit und der Testkomplexität daraus zu ziehen ist, wenn die Anzahl von RITs reduziert wird. Derzeitige Strategien, die die Anzahl von RITs reduzieren, versuchen, die Ausführung von redundanten Test bei dem IC-Testprozess unter Verwendung der gleichen erschöpfenden, Funktions- und Fehlermodellstrategien zu beseitigen, die bei einem IC-standardisierten IC-Testen verwendet werden.
  • Ein Beseitigen von redundanten Tests und ein Neuordnen von Tests, um die Testeffizienz zu erhöhen, hat sich zu einem wichtigen Forschungsbereich entwickelt, da der IC-Test zunehmend teuer wird. Beim IC-Testen werden Tests unter Verwendung von Simulationen und anderen Mitteln erzeugt. Ein Auswerten der Tests ist wichtig zur Steigerung der Testeffizienz und Reduzierung der Testzeit.
  • O. Coudert: „On Solving Covering Problems" Proceedings of the 33rd Design Automation Conference, Las Vegas, NV, USA, 3.–7. Juni 1996, erörtert das Satzabdeckungsproblem und das Minimalkostenzuweisungsproblem, die bei einem logischen Synthesefluss auftreten. Eine Untergrenzenberechnung zur Verwendung bei einem Verzweigungs- und Grenzalgorithmus (branch-and-bound algorithm) ist offenbart.
  • F. Fallah u. a.: „Solving Covering Problems Using LPR-Based Lower Bounds" IEEE Transactions in Very Large Scale Integration (VLSI) Systems, Bd. 8, Nr. 1, Feb. 2000 offenbart Unterbegrenzungstechniken, die auf einer Linearprogrammierrelaxation (LPR) basieren, für das Abdeckungsproblem.
  • O. Coudert: „Solving Graph Optimization Problems with ZBDDs" Proceedings of the European Design and Test Conference, Paris, Frankreich, 17–20. März 1997, offenbart einen auf einem null-unterdrückten Binärentscheidungsdiagramm (ZBDD) basierenden Rahmen, der eine Sammlung von Kurvenoptimierungsproblemen löst.
  • Die vorliegende Erfindung schafft ein verbessertes Testen von integrierten Schaltungen. Gemäß einem Aspekt der vorliegenden Erfindung wird ein Verfahren geliefert, wie es in Anspruch 1 spezifiziert ist. Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren geliefert, wie es in Anspruch 8 spezifiziert ist.
  • Die bevorzugten Ausführungsbeispiele können effiziente numerische Algorithmen zum Analysieren der Testredundanz und der Testsequenzeffizienz liefern, um den Bedarf an IC-Testzeitreduzierungstechniken zu erfüllen.
  • Dieselben können auch einen effizienten numerischen Algorithmus zum Analysieren einer gegebenen Testsequenzredundanz und -effizienz liefern.
  • Das bevorzugte Ausführungsbeispiel liefert einen N2-Algorithmus zum Optimieren von IC-Tests. Die Testoptimierung bezieht sich auf ein Minimieren der Zeitmenge, die für RITs verbraucht wird. Das Verfahren verwendet die IC-Simulationsdaten oder IC-Herstellungstestdaten. Die Simula tionsdaten enthalten die Beziehung zwischen Tests und Fehlern. Die IC-Herstellungsdaten reflektieren des PLMP und geben die Beziehung zwischen Tests und DDs an. Beide Daten können dann verarbeitet werden, um RITs bei IC-Tests zu erfassen. Die Testoptimierung kann unter Verwendung von IC-Simulationsdaten auf der Defekt- (Fehler-) Ebene und unter Verwendung von IC-Herstellungsdaten auf der DD-Ebene stattfinden. Der Optimierungsprozess ist für Defekte (Fehler) und DDs gleich, so dass hier nur ein Lösungsansatz beschrieben wird.
  • Das Testoptimierungsproblem kann wie folgt beschrieben werden: Wenn N Tests in einer Testsequenz und L DDs gegeben sind, erfasst jeder der N Tests zwischen einem und L der L DDs. Und jeder Test benötigt eine bestimmte Zeitmenge, um ausgeführt zu werden. Der erste Teil des Testoptimierungsproblems bestimmt den Satz von Tests, der die minimale Anzahl von Tests benötigt, um alle L DDs zu erfassen. Der zweite Teil des Testoptimierungsproblems bestimmt den Testsatz und die Ausführungssequenz der Tests, die die minimale Zeit benötigt, um alle DDs zu erfassen.
  • Beide Testoptimierungsprobleme können in Form eines Darstellens von N Tests als N Vektoren formuliert werden. Jeder der N Vektoren weist L Komponenten auf, die den L DDs entsprechen. Für jeden der N Tests wird ein Korrelationsvektor V erzeugt. Für Test i ergibt sich: V(i) = (v1(i), v2(i), ..., vL(i))wobei vj(i) gleich Null ist, falls Test i DD j nicht erfasst, und gleich Eins ist, falls Test i DD j erfasst. Nachdem jeder Test als ein Korrelationsvektor dargestellt worden ist, kann jeder Test als ein Ereignis in einem Korrelierte-Ereignisse-Problem behandelt werden. Die Ausführungszeit eines Tests kann als die Zeit behandelt werden, die für das entsprechende Ereignis benötigt wird. Die Liste von DDs, die ein Test erfasst, ist der Korrelations vektor für den Test. Deshalb ist das Testoptimierungsproblem gleich dem Minimalsatzoptimierungs- und dem Minimalzeitoptimierungsproblem von korrelierten Ereignissen.
  • Beide Teile des Testoptimierungsproblems können Operationen in der Größenordnung von N! benötigen, um den optimalen Satz zu bestimmen. Eine Vektorprojektionstechnik wird verwendet, um die Korrelation zwischen den N Korrelationsvektoren zu berechnen. Diese Projektionstechnik erfordert Operationen in der Größenordnung von N2, um das Korrelierte-Ereignisse-Problem zu optimieren.
  • Der folgende Algorithmus benötigt Operationen in der Größenordnung von N2, um den minimalen Satz zu bestimmen, bei dem jeder Test als ein Korrelationsvektor dargestellt ist:
    • a. Einen Korrelationsvektor bei den N Vektoren derart auswählen, dass der Korrelationsvektor die größte Anzahl von Nicht-Null-Komponenten enthält. Diesen Vektor einem Vektor W zuweisen. Diesen Vektor speichern.
    • b. Einen Korrelationsvektor der verbleibenden Korrelationsvektoren derart bestimmen, dass die Länge der Projektion der Multiplikation von W und dem Komplement des Vektors auf den Einheitsvektor am kleinsten ist.
    • c. Diesen Vektor speichern und W aktualisieren, um die Multiplikation von W und dem Komplement dieses Vektors zu sein. Den vorhergehenden Schritt b wiederholen, bis die Projektion von W auf den Einheitsvektor Null wird.
  • Der folgende Algorithmus benötigt Operationen in der Größenordnung von N2, um die minimale Zeit zu bestimmen:
  • Jeden Test als einen Korrelationsvektor darstellen.
    • a. Einen Korrelationsvektor bei den N Vektoren derart auswählen, dass der Vektor den größten Wert der Anzahl von Nicht-Null-Komponenten geteilt durch die Zeit, die dem Vektor zugeordnet ist, aufweist. Das Komplement dieses Vektors mit dem Einheitsvektor multiplizieren und einen Vektor W bilden. Diesen Vektor speichern.
    • b. Einen Korrelationsvektor der verbleibenden Korrelationsvektoren derart bestimmen, dass die Länge der Projektion des Vektors auf den Vektor W geteilt durch die Zeit, die dem Vektor zugeordnet ist, am größten ist.
    • c. Diesen Vektor speichern und W aktualisieren, um die Multiplikation von W und dem Komplement dieses Vektors zu sein. Den vorhergehenden Schritt b wiederholen, bis die Projektion von Vektor W auf den Einheitsvektor Null wird.
  • Ein Beispiel einer Vorrichtung, die eine Einrichtung umfasst, die wirksam ist, um die Funktionen der Verfahrensschritte der Verfahren durchzuführen, die in den angehängten Ansprüchen spezifiziert sind, ist ebenfalls beschrieben. Der Fachmann erkennt aus seinem/ihrem allgemeinen Wissen heraus ohne weiteres, welche Vorrichtungskomponenten eine derartige Einrichtung liefern könnten, ob als Hardwarekomponenten, Software oder eine Mischung der beiden.
  • Ausführungsbeispiele der vorliegenden Erfindung sind im Folgenden nur als ein Beispiel mit Bezugnahme auf die beliegenden Zeichnungen beschrieben. Es zeigen:
  • 1 ein Blockdiagramm eines Minimalsatzoptimierungsverfahrens gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • 2 ein Blockdiagramm eines Minimalzeitoptimierungsverfahrens gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • Obwohl diese Erfindung eine Ausführung in vielen unterschiedlichen Formen zulässt, werden spezifische Ausführungsbeispiele in den Zeichnungen gezeigt und hier im Detail beschrieben, wobei vorausgesetzt wird, dass die vorliegende Offenbarung als ein Beispiel der Prinzipien der Erfindung betrachtet werden soll und die Erfindung nicht auf die spezifischen gezeigten und beschriebenen Ausführungsbeispiele beschränken soll.
  • Der offenbarte Algorithmus zum Optimieren korrelierter Ereignisse wird bei dem Problem des Analysierens redundanter Tests und des Neuordnens von Tests angewendet. Somit ist, wie es im Folgenden gezeigt wird, das Problem des Analysierens von redundanten Tests und des Neuordnens von Tests äquivalent zu einem Analysieren korrelierter Ereignisse. Diese Beschreibung enthält drei Teile: Die Formulierung für korrelierte Ereignisse, den Algorithmus zum Optimieren des Korrelierte-Ereignisse-Problems und die Abbildung zwischen dem Korrelierte-Ereignisse-Optimierungsproblem und dem diesbezüglichen Testoptimierungsproblem.
  • Korrelierte Ereignisse
  • Es seien N Ereignisse betrachtet, die in einer beliebigen Sequenz auftreten können. Die N Ereignisse seien unter Verwendung von Ganzzahlen von 1 bis N nummeriert. Falls die N Ereignisse korreliert sind, hängt das Auftreten einiger der Ereignisse vom Auftreten anderer Ereignisse ab. Es sei z. B. N = 5 betrachtet. Die Korrelation der fünf Ereignisse untereinander kann die Folgende sein:
    • 1) Falls die Ereignisse 2, 4 und 5 vor den Ereignissen 1 und 3 stattfinden, dann treten die Ereignisse 1 und 3 nicht auf.
    • 2) Falls die Ereignisse 1 und 5 vor den Ereignissen 2, 3 und 5 stattfinden, dann treten die Ereignisse 2, 3 und 5 nicht auf.
  • Die Bedingungen 1) und 2) definieren die Korrelation der fünf Ereignisse in diesem Beispiel untereinander.
  • Bei den N korrelierten Ereignissen gibt es zumindest einen solchen Satz von Ereignissen, dass ihr Auftreten verhindert, dass andere Ereignisse auftreten. Allgemein gibt es mehr als einen derartigen Satz von Ereignissen. Ein derartiger Satz von Ereignissen wird ein Minimalsatz genannt. Das Problem, den Minimalsatz von Ereignissen zu finden, wird als ein Minimalsatzoptimierungsproblem bezeichnet. Bei dem oben genannten Beispiel sind die Ereignisse 1 und 5 der Minimalsatz. Das Finden des Minimalsatzes einer Sammlung von Ereignissen ist im Allgemeinen schwierig, weil die Korrelation von Ereignissen untereinander implizit definiert ist und der Wert von N oft groß ist. Deshalb ist die Komplexität der Berechnung zum Finden eines Minimalsatzes sehr hoch.
  • Um die Korrelation von N Ereignissen untereinander zu formulieren, wird jedes der N Ereignisse als ein Binärvektor in einem L-dimensionalen Korrelationsraum dargestellt. Jede der Komponenten eines Binärvektors ist (0,1)-wertig. Die Binärvektoren werden Korrelationsvektoren genannt. Es sei V(i) der Korrelationsvektor, der einem Ereignis i zugeordnet ist. Dann gilt: V(i) = (v1(i), v2(i), ..., vL(i))wobei vj(i) die j-te Komponente von Korrelationsvektor V(i) ist und (0,1)-wertig ist. Um die Korrelation der N Ereignisse untereinander zu beschreiben, müssen die Operationen der Multiplikation, Addition und des Komplements von Korrelationsvektoren definiert werden. Die Multiplikation der Korrelationsvektoren V(i) und V(j) sei definiert als: V(i)V(j) = (v1(i) & v1(i), v2(i) & v2(i), ..., vL(i) & vL(i)),wobei & der Boolesche UND-Operator ist. Die Addition der Korrelationsvektoren V(i) und V(j) sei definiert als V(i) + V(j) = (v1(i)|v1(i), v2(i)|v2(i), ..., vL(i)|vL(i)).wobei | der Boolesche ODER-Operator ist. Schließlich sei der Komplementärvektor des Korrelationsvektors V(i), V(i)', als das Komplement der einzelnen Komponenten definiert.
  • I sei der Einheitskorrelationsvektor. Alle Komponenten des Einheitskorrelationsvektors sind eins. Die Korrelation der N Ereignisse untereinander ist so definiert, dass das Auftreten der Ereignisse i1, i2, ..., ia das Auftreten der Ereignisse ia+1, ..., iL verhindert, falls
    Figure 00090001
    wobei 1 <= a <= L, 1 <= Ij <= N, ij I = ik und 1 <= j, k <= L. Diese Gleichung kann auch geschrieben werden als
  • Figure 00090002
  • Die Korrelationsvektoren bestimmen die Korrelation der N Ereignisse untereinander durch Gleichung (1) oder Gleichung (2). Die Minimalsatzoptimierung besteht darin, einen Satz von Ereignissen zu finden, so dass der Wert der Variable a in Gleichung (1) oder Gleichung (2) sein Minimum erreicht.
  • Bei einem allgemeineren Fall ist jedes Ereignis einer Zeit zugeordnet. Es sei t(i) die Zeit, die das Ereignis i benötigt. Dann beträgt die Gesamtzeit T, die die Ereignisse i1, i2, ..., ia benötigen,
  • Figure 00100001
  • Das Minimalzeitoptimierungsproblem besteht darin, einen Satz von Ereignissen zu finden, so dass die Gesamtzeit T ihr Minimum erreicht. Dieses Problem wird Minimalzeitoptimierung genannt. Falls alle t(i) gleich sind, dann verringert sich dieses Problem auf das Minimalsatzoptimierungsproblem.
  • Aus der obigen Formulierung von korrelierten Ereignissen ist ersichtlich, dass die Werte von N und L die Komplexität der Korrelation bestimmen. In der Praxis sind die Werte von N und L groß, so dass das Optimierungsproblem schwer zu handhaben sein kann.
  • Minimalsatzoptimierungsproblem
  • Falls eine erschöpfende Suche durchgeführt wird, benötigt die Berechnung über N Ereignisse O(N!) Operationen, so dass dieses Verfahren für große Werte von N nicht praktisch ist. Der folgende Minimalsatzoptimierungsalgorithmus ist O(N2).
  • PA(B) sei als das Quadrat der Länge der Projektion von Korrelationsvektor B auf Korrelationsvektor A definiert. Somit
  • Figure 00110001
  • W(i1, i2, ..., ik) sei definiert als
  • Figure 00110002
  • Mit dieser Definition gilt PI(W(i1, i2, ..., ia)) = PI(I') = 0. Per Definition gilt für ein gegebenes W PI(W) >= 0 und ist eine fallende Funktion von k in W. Das heißt, ein Addieren eines Korrelationsvektors zu W verringert PI(W). Bei dem Prozess des Suchens eines Minimalsatzes nähert sich, wenn der Wert von PI(W) so klein wie möglich gehalten wird, während Korrelationsvektoren zu W addiert werden, der Satz von Ereignissen in W einem Minimalsatz. Es sei angenommen, dass ein Satz von Korrelationsvektoren V(i1), V(i2), ..., V(ik)) bei den N Vektoren derart ausgewählt ist, dass PI(W) ein Minimum ist. Wenn zusätzliche Vektoren von den verbleibenden N – k Vektoren zu W addiert werden, während PI(W) bei dem Minimum gehalten wird, wird schließlich PI(W) = 0 erreicht. Dieser Satz von Vektoren in W stellt den Minimalsatz dar. Unter Bezugnahme auf 1 und den folgenden Pseudocode wird der Minimalzeitoptimierungsalgorithmus zusammengefasst:
  • Figure 00110003
  • Figure 00120001
  • Minimalzeitoptimierung
  • Bei diesem Problem ist es nötig, die Veränderungen bei PI(W) und die Veränderungen bei der Zeit T durch t(Ik + 1) einzuschließen, wenn der (k + 1)-te Korrelationsvektor zu W addiert wird. Es sei zunächst darauf hingewiesen, dass PA(B) = PB(A) (4)und PA(I) = PA(B + B') = PA(B) + PA(B') (5)
  • Unter Verwendung der Gleichungen (4) und (5) wird ohne weiteres erhalten: PW(i1,i2,...,ik)(V(ik+1)) = –[PI(W(i1, i2, ..., ik+1)) – PI(W(i1, i2, ..., ik))].
  • Aus dieser Gleichung ist ersichtlich, dass PW(i1,i2,...,ik) (V(ik+1)) ein Betrag des Dekrements von PI(W) nach dem Addieren eines (k + 1)-ten Korrelationsvektors zu W ist. Es ist möglich, den Wert von PW(i1,i2,...,ik)(V(ik+1)) als ein Maß einer Verschiebung von PI(W) zu 0 hin zu behandeln, nachdem eine Zeit t(ik+1) von einem Ereignis (ik+1) benötigt wurde. Dann ist die Größe PW(i1,i2,...,ik)(V(ik+1))/t(ik+1) das Maß der Geschwindigkeit von PI(W) zu 0, wenn der Ereignisvektor V(ik+1) zu W addiert wird. Wenn das (k + 1)-te Ereignis derart ausgewählt wird, dass der Wert von PW(i1,i2,...,ik)(V(ik+1))/t(ik+1) ein Maximum ist, dann bewirkt diese Auswahl, dass die Gesamtzeit T ein Minimum T(i1, i2, ..., ia) ist. Unter Bezugnahme auf 2 und den folgenden Pseudocode, wird der Minimalzeitoptimierungsalgorithmus zusammengefasst:
  • Figure 00130001
  • Der Minimalzeitalgorithmus und der Minimalsatzalgorithmus enthalten zwei Schleifen, die mit der Anzahl von Ereignissen N in Beziehung stehen. Die Anzahl von Operationen ist proportional zu N2, das viel kleiner als O(N!) ist. Es sei auch darauf hingewiesen, dass Bitmaps verwendet werden können, um die Korrelationsvektoren zu speichern, so dass weniger Speicher verwendet wird, und bitweise Operationen verwendet werden, um W zu berechnen. Die Verwendung von Bitmaps und bitweisen Operationen verringert auch die Zeitmenge, die benötigt wird, um die Algorithmen auszuführen.
  • Wenn die Ausführungszeit jedes Tests gleich ist, kann der Minimalsatzoptimierungsalgorithmus bei der Bestimmung angewendet werden, wie redundante Tests entfernt und Tests in einer effizienten Sequenz neu geordnet werden, derart, dass höhere effiziente Tests früher ausgeführt werden. Wenn die Ausführungszeit jedes Tests unterschiedlich ist, kann der Minimalzeitoptimierungsalgorithmus bei der Bestimmung, wie redundante Tests entfernt werden, und bei der effizienten Testausführungssequenz angewendet werden. Falls N der Anzahl von Tests bei einer gegebenen Testsequenz und L der Anzahl von DDs zugeordnet wird, dann können die N Tests als L-dimensionale Korrelationsvektoren dargestellt werden. Mit dieser Zuweisung wird es möglich, die Minimalsatzoptimierung und die Minimalzeitoptimierung bei RITs anzuwenden.
  • Obwohl die Minimalzeitoptimierung und die Minimalsatzoptimierung bei den RITs angewendet wurden, ist es für einen Fachmann ersichtlich, dass die Minimalzeitoptimierung und die Minimalsatzoptimierung bei anderen Optimierungsproblemen angewendet werden können. Beispiele anderer Optimierungsprobleme umfassen ein Bestimmen von DD.
  • Es ist für Fachleute ersichtlich, dass viele Alternativen, Modifizierungen, Permutationen und Variationen bezüglich der beschriebenen Ausführungsbeispiele innerhalb des Schutzbereichs der angehängten Ansprüche vorgenommen werden können.

Claims (9)

  1. Ein Verfahren zum Optimieren einer Sequenz von N Tests, die bei digitalen integrierten Schaltungen (ICs) verwendet werden, wenn die Ausführungszeit jedes Tests die gleiche ist, wobei das Verfahren folgende Schritte aufweist: für jeden Test der Sequenz von N Tests Kompilieren von L gewöhnlichen fehlerhaften Chips; Darstellen jedes Tests der Sequenz von N Tests als einen Korrelationsvektor unter Verwendung eines binärwertigen L-dimensionalen Vektors; Finden eines ersten Korrelationsvektors (120) der N Korrelationsvektoren, der die meisten Nicht-Null-Komponenten aufweist, und Initialisieren eines Vektors W, um das Komplement dieses ersten Korrelationsvektors zu sein, wobei ein Komplement eines Vektors alle „0"-Komponenten durch „1"en und alle „1"-Komponenten durch „0"en ersetzt; Definieren einer Multiplikation von zwei Korrelationsvektoren, um ein Vektor mit Komponenten zu sein, die aus der logischen UND-Operation der entsprechenden Komponenten der zwei Korrelationsvektoren berechnet sind; für jeden Korrelationsvektor der verbleibenden Korrelationsvektoren Berechnen eines Produktvektors des Komplements von jedem Korrelationsvektor und Vektor W unter Verwendung der Multiplikationsdefinition bei dem vorhergehenden Element; Berechnen einer Projektionslänge jedes Produktvektors auf den Einheitsvektor; Bestimmen des Korrelationsvektors (130), der den kleinsten Wert der Projektionslänge aufweist; Speichern dieses Korrelationsvektors (140) als einen der Korrelationsvektoren in einer optimierten Sequenz; Aktualisieren von Vektor W (150), um das Produkt des Vektors W und eines Komplements des Korrelationsvektors bei dem vorhergehenden Schritt zu sein; und Wiederholen der vorhergehenden fünf Schritte, bis die Länge der Projektion von Vektor W auf den Einheitsvektor Null ist.
  2. Ein Verfahren gemäß Anspruch 1, wobei das Verfahren folgenden nächsten Schritt umfasst: Zuweisen des Vektors W, um der Einheitsvektor zu sein, und Wiederholen der vorhergehenden sechs Schritte, bis es keine verbleibenden Vektoren mehr gibt.
  3. Ein Verfahren gemäß Anspruch 1 oder 2, bei dem das Bestimmen des Korrelationsvektors in der optimierten Sequenz ein Bestimmen des Vektors von den verbleibenden Vektoren mit einem kleinsten Wert des Quadrats der Länge der Projektion des Vektors W auf den Einheitsvektor umfasst.
  4. Ein Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem das Bestimmen des Korrelationsvektors der optimierten Sequenz ein Betrachten aller verbleibenden Vektoren der Sequenz von N Tests umfasst, wobei eine Null-Projektion auf den Vektor W Null Fehler darstellt.
  5. Ein Verfahren gemäß einem der vorhergehenden Ansprüche, wobei das Verfahren vor dem Kompilieren der N Tests den Schritt eines Ausführens der Sequenz von N Tests ohne ein Anhalten bei einem fehlschlagenden Test umfasst.
  6. Ein Verfahren gemäß einem der vorhergehenden Ansprüche, das den Schritt eines Analysierens der Korrelation der N Tests untereinander durch ein Darstellen jedes Tests der N Tests in einem L-dimensionalen Fehlerhafter-Chip-Raum unter Verwendung eines binärwertigen L-dimensionalen Vektors umfasst.
  7. Ein Verfahren gemäß einem der vorhergehenden Ansprüche, das ein Erhalten der optimierten Sequenz durch ein Sortieren der Längen der N Projektionsvektoren in einer absteigenden Reihenfolge umfasst.
  8. Ein Verfahren zum Optimieren einer Sequenz von N Tests, die bei digitalen integrierten Schaltungen (ICs) verwendet werden, wenn die Ausführungszeit jedes Tests unterschiedlich ist, wobei das Verfahren folgende Schritte aufweist: für jeden Test der Sequenz von N Tests Kompilieren von L gewöhnlichen fehlerhaften Chips und Speichern der Ausführungszeit der Sequenz von N Tests; Darstellen jedes Tests der Sequenz von N Tests als einen Korrelationsvektor unter Verwendung eines binärwertigen L-dimensionalen Vektors; Finden eines ersten Korrelationsvektors (220) der N Korrelationsvektoren, der den größten Wert der Anzahl von Nicht-Null-Komponenten geteilt durch die Ausführungszeit des entsprechenden Tests aufweist, und dann Initialisieren eines Vektors W, um ein Komplement dieses Vektors zu sein, wobei ein Komplement eines Vek tors alle „0"-Komponenten durch „1"en und alle „1"-Komponenten durch „0"en ersetzt; Definieren der Multiplikation von zwei Korrelationsvektoren, um ein Vektor mit Komponenten zu sein, die aus der logischen UND-Operation der entsprechenden Komponenten der zwei Korrelationsvektoren berechnet sind; für jeden Korrelationsvektor der verbleibenden Korrelationsvektoren Berechnen einer Länge einer Projektion des Korrelationsvektors auf den Vektor W; Berechnen eines Quotienten der berechneten Projektionslänge bei dem vorhergehenden Schritt und der Ausführungszeit des entsprechenden Tests; Bestimmen des Korrelationsvektors (230), der den größten Wert des Quotienten aufweist, der bei dem vorhergehenden Schritt berechnet wurde; Speichern dieses Korrelationsvektors (240) als einen der Korrelationsvektoren in einer optimierten Sequenz; Aktualisieren von Vektor W (250), um das Produkt des Vektors W und des Komplements des gespeicherten Korrelationsvektors bei dem vorhergehenden Schritt zu sein; und Wiederholen der vorhergehenden fünf Schritte, bis die Länge der Projektion von Vektor W auf den Einheitsvektor Null ist.
  9. Ein Verfahren gemäß Anspruch 8, wobei das Verfahren folgenden nächsten Schritt umfasst: Zuweisen des Vektors W, um der Einheitsvektor zu sein, und Wiederholen der vorhergehenden sechs Schritte, bis es keine verbleibenden Vektoren mehr gibt.
DE60204535T 2002-01-15 2002-11-26 Optimierungsverfahren einer Prüfsequenz für digitale integrierte Schaltungen Expired - Lifetime DE60204535T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/047,344 US6941497B2 (en) 2002-01-15 2002-01-15 N-squared algorithm for optimizing correlated events
US47344 2002-01-15

Publications (2)

Publication Number Publication Date
DE60204535D1 DE60204535D1 (de) 2005-07-14
DE60204535T2 true DE60204535T2 (de) 2006-04-27

Family

ID=21948424

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60204535T Expired - Lifetime DE60204535T2 (de) 2002-01-15 2002-11-26 Optimierungsverfahren einer Prüfsequenz für digitale integrierte Schaltungen

Country Status (5)

Country Link
US (1) US6941497B2 (de)
EP (1) EP1327890B1 (de)
JP (1) JP2003232838A (de)
KR (1) KR100966010B1 (de)
DE (1) DE60204535T2 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040006447A1 (en) * 2000-06-22 2004-01-08 Jacky Gorin Methods and apparatus for test process enhancement
US7395170B2 (en) * 2001-05-24 2008-07-01 Test Advantage, Inc. Methods and apparatus for data analysis
US7167811B2 (en) * 2001-05-24 2007-01-23 Test Advantage, Inc. Methods and apparatus for data analysis
US7225107B2 (en) * 2001-05-24 2007-05-29 Test Advantage, Inc. Methods and apparatus for data analysis
US7904279B2 (en) * 2004-04-02 2011-03-08 Test Advantage, Inc. Methods and apparatus for data analysis
JP4849798B2 (ja) * 2004-12-28 2012-01-11 富士通株式会社 電子機器、記録制御方法及びプログラム
TW200724949A (en) * 2005-08-19 2007-07-01 Koninkl Philips Electronics Nv Test sequence optimization method and design tool
US7596731B1 (en) * 2006-04-07 2009-09-29 Marvell International Ltd. Test time reduction algorithm
US8180142B2 (en) * 2008-12-02 2012-05-15 International Business Machines Corporation Test fail analysis on VLSI chips
US8484592B1 (en) 2012-02-29 2013-07-09 Umm Al-Qura University Timing verification method for circuits
US9401222B1 (en) 2015-11-23 2016-07-26 International Business Machines Corporation Determining categories for memory fail conditions
KR20210047127A (ko) 2019-10-21 2021-04-29 삼성전자주식회사 반도체 회로를 검증하기 위한 최적화된 검증 벡터를 생성하는 전자 장치 및 그 동작 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0536802A (ja) * 1991-07-31 1993-02-12 Hitachi Ltd 半導体集積回路補修診断方法
JP2785901B2 (ja) * 1992-03-27 1998-08-13 松下電器産業株式会社 検査系列生成方法および検査系列生成装置
DE69333806T2 (de) 1992-03-27 2005-10-06 Matsushita Electric Industrial Co., Ltd., Kadoma Verfahren und Gerät zur Prüfsequenzgenerierung
US5345450A (en) * 1993-03-26 1994-09-06 Vlsi Technology, Inc. Method of compressing and decompressing simulation data for generating a test program for testing a logic device
JPH06282462A (ja) * 1993-03-26 1994-10-07 Toshiba Corp 半導体試験装置制御プログラムデバッグ方式
US5935264A (en) * 1997-06-10 1999-08-10 Micron Technology, Inc. Method and apparatus for determining a set of tests for integrated circuit testing
US6070131A (en) * 1997-09-26 2000-05-30 Micron Technology, Inc. System for evaluating and reporting semiconductor test processes
KR100311013B1 (ko) * 1998-07-04 2001-11-22 윤종용 테스트시퀀스데이터의압축방법
US6810372B1 (en) * 1999-12-07 2004-10-26 Hewlett-Packard Development Company, L.P. Multimodal optimization technique in test generation
US6782501B2 (en) * 2001-01-23 2004-08-24 Cadence Design Systems, Inc. System for reducing test data volume in the testing of logic products

Also Published As

Publication number Publication date
KR20030061686A (ko) 2003-07-22
JP2003232838A (ja) 2003-08-22
US20030140287A1 (en) 2003-07-24
EP1327890A2 (de) 2003-07-16
KR100966010B1 (ko) 2010-06-24
EP1327890A3 (de) 2003-09-03
DE60204535D1 (de) 2005-07-14
EP1327890B1 (de) 2005-06-08
US6941497B2 (en) 2005-09-06

Similar Documents

Publication Publication Date Title
DE3787431T2 (de) Verfahren zur Generierung einer Kandidatenliste von fehlerhaften Schaltungselementen und Verfahren zur Isolierung von Fehlern in einer logischen Schaltung unter Verwendung dieser Kandidatenliste.
DE3689800T2 (de) Anlagen-Diagnosesystem.
DE3856079T2 (de) Verfahren für einen Blockdiagramm-Simulator
DE69831732T2 (de) Verfahren und gerät zum korrigieren von fehlern in einem rechnersystem
Hocking et al. Selection of the best subset in regression analysis
DE60005861T2 (de) Verfahren und system zur analyse von kontinuirlichen parameterdaten für diagnostik und reparaturen
DE60204535T2 (de) Optimierungsverfahren einer Prüfsequenz für digitale integrierte Schaltungen
DE102018128158A1 (de) Vorrichtung zur inspektion des erscheinungsbilds
US5629845A (en) Parallel computation of the response of a physical system
EP0580663B1 (de) Verfahren zur verifikation datenverarbeitender systeme
DE68920560T2 (de) Restprüfungsvorrichtung zur Fehlerkennung in Additions-, Substraktions-, Multiplikations-, Divisions- und Quadratwurzel-Operationen.
DE19536203A1 (de) Fehlerdiagnoseverfahren für eine sequentielle Schaltung
DE102018207399A1 (de) Sicherheitsindustriesteuerung für Diversität in einem einzelnen Mehrkernprozessor
EP1127323A1 (de) Verfahren und anordnung zum vergleich einer ersten eigenschaft mit vorgegebenen eigenschaften eines technischen systems
DE602004009784T2 (de) Datenkomprimierung
DE112008001590B4 (de) Prozessorbetriebsinspektionssystem und Betriebsinspektionsschaltung
DE112021003677T5 (de) Automatisierte unterstützte schaltkreisvalidierung
DE69830967T2 (de) Verfahren und System zur Prüfung einer integrierten Schaltung
DE60318795T2 (de) Prüfung von integrierten Schaltungen
US6334199B1 (en) Method of generating test patterns for a logic circuit, a system performing the method, and a computer readable medium instructing the system to perform the method
DE19930273A1 (de) Hochgeschwindigkeitsvorrichtung zur Prüfmusterbewertung
DE68910461T2 (de) GERäT ZUR RECHNERGESTÜTZEN ERZEUGUNG VON PRÜFPROGRAMMEN FÜR DIGITALE SCHALTUNGEN.
DE69127149T2 (de) Schaltungsprüf-Verfahren
DE10200833A1 (de) Gerät und Verfahren für eine Teststimuliverdichtung
DE69220152T2 (de) Prüfmustererzeugungsgerät

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: VERIGY (SINGAPORE) PTE. LTD., SINGAPORE, SG