DE602004009284T2 - Systeme und Verfahren um automatisch generiertes Testmuster zu verarbeiten - Google Patents

Systeme und Verfahren um automatisch generiertes Testmuster zu verarbeiten Download PDF

Info

Publication number
DE602004009284T2
DE602004009284T2 DE602004009284T DE602004009284T DE602004009284T2 DE 602004009284 T2 DE602004009284 T2 DE 602004009284T2 DE 602004009284 T DE602004009284 T DE 602004009284T DE 602004009284 T DE602004009284 T DE 602004009284T DE 602004009284 T2 DE602004009284 T2 DE 602004009284T2
Authority
DE
Germany
Prior art keywords
test
lfsr
ate
patterns
bits
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.)
Active
Application number
DE602004009284T
Other languages
English (en)
Other versions
DE602004009284D1 (de
Inventor
Erik H. Volkerink
Klaus-Dieter Hilliges
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
Verigy Singapore Pte Ltd
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 Verigy Singapore Pte Ltd filed Critical Verigy Singapore Pte Ltd
Publication of DE602004009284D1 publication Critical patent/DE602004009284D1/de
Application granted granted Critical
Publication of DE602004009284T2 publication Critical patent/DE602004009284T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31919Storing and outputting test patterns
    • G01R31/31921Storing and outputting test patterns using compression techniques, e.g. patterns sequencer
    • 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/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf das Verarbeiten von Automatiktestmustererzeugungsdaten (ATPG-Daten; ATPG = automatic test Pattern generation) in Zuordnung zu einer automatischen Testausrüstung (ATE; automated test equipment).
  • Hintergrund
  • Die automatische Testmustererzeugung (ATPG) bezieht sich auf den Prozess, bei dem Logikmuster oder -Vektoren erzeugt werden. Die Testmuster können auf die Logik angewendet werden (wie z. B. einen Abschnitt einer integrierten Schaltung), um die Funktionalität der Logik unter Verwendung interner Abtastketten zu testen. Die ATPG tritt üblicherweise auf durch Untersuchen der Netzliste einer Schaltung und Erzeugen einer Fehlerliste. Eine Fehlerliste ist eine Beschreibung potentieller Fehler, die bei dem Entwurf auftreten können, und umfasst alle Knoten in der Schaltung. Unterschiedliche Fehlermodelle können verwendet werden, wie z. B. das Überbrückungsfehlermodell, das Übergangsfehlermodell und das Festsitzen-am-Fehler-Modell. Das Festsitzenam-Fehler-Modell ist das am meisten verwendete Modell. „Festsitzen-bei-1" bedeutet, dass ein bestimmter Knoten immer 1 ist. „Festsitzen-bei-0" bedeutet, dass ein bestimmter Knoten immer 0 ist. In dem Fall z. B., dass ein Festsitzen-bei-0-Fehler anvisiert wird, wird das Muster derart erzeugt, dass ein entsprechender Knoten auf 1 getrieben wird (auch genannt sensibilisieren) und zu einem beobachtbaren Ausgang weitergeleitet wird. Basierend auf dem beobachtbaren Ausgang wird bestimmt, ob der Knoten tatsächlich auf 1 getrieben ist oder nicht. Wenn nicht, ist ein Festsitzen-bei-0-Fehler vorhanden. Um einem Knoten zu ermögli chen, sensibilisiert und weitergeleitet zu werden, müssen nicht alle Bits eines Testmusters spezifiziert werden. Die spezifizierten Bits werden als „bedeutsame" Bits bezeichnet und die unspezifizierten Bits werden als „bedeutungslose" Bits bezeichnet.
  • Kürzlich wurde die Datenmenge, die erforderlich ist, um die Testmuster in ATPG darzustellen, aus einer Anzahl von Gründen wesentlich erhöht. Zum Beispiel hat die wachsende Komplexität neuer Fehlermodelle und die zunehmende Weiterentwicklung von Schaltungen, die getestet werden, die Datenmenge erhöht, die zum Darstellen von Testmustern erforderlich ist. Somit muss der Speicherbetrag der automatischen Testausrüstung (ATE), die verwendet wird, um Testmuster an Schaltungen anzuwenden, erhöht werden, um die Zunahme der Testmusterdaten zu kompensieren.
  • Die chipinterne Dekomprimierung von Testmustern und Komprimierung von Testergebnissen (z. B. durch Entwurf-für-Test-Produkte (DFT-Produkte; DFT = Design-for-Test)) wurde implementiert, um die Zunahme der Testmusterdaten zu adressieren. Die chipinterne Komprimierung und Dekomprimierung ist jedoch aus einer Anzahl von Gründen problematisch. Erstens erfordert die chipinterne Komprimierung und Dekomprimierung einen Grad an Mehraufwand, wodurch die Größe des Chips gesteigert wird und der Durchsatz reduziert wird. Ferner führt das Steigern der Chipgröße zu einer schnellen Reduzierung des Ertrags (d. h. ein größerer Chip ist wahrscheinlicher defekt). Zweitens muss die Funktionalität der chipinternen Komprimierung und Dekomprimierung in den Chip entworfen sein und geeignet verifiziert sein, auf dieselbe Weise wie jeder anderer Funktionsabschnitt des Chips. Dementsprechend fügt die Funktionalität der chipinternen Komprimierung und Dekomprimierung einen Grad an technischem Risiko für die Chipentwicklung hinzu, was nachteilhaft ist. Ferner beeinträchtigen viele der vorgeschlagenen chipinternen Komprimierungstechniken Diagnosefähigkeiten und können nicht sehr gut mit unbekannten Testantworten umgehen.
  • Die US 2002/093356 A1 offenbart ein Verfahren und eine Schaltung zum Testen einer integrierten Schaltungsvorrichtung unter Verwendung einer intelligenten Testvektorformatierung, die den Speicher reduziert, der für Testmuster erforderlich ist und ferner eine Verschlüsselung der Testmuster liefert. Ein erster Speicher speichert eine Testvektormasse, die eine Bitsequenz ist, um anzuzeigen, ob entsprechende Testvektordaten deterministisch oder zufällig sind. Die Testvektordaten enthalten einen Abschnitt, der deterministisch durch die automatische Testmustererzeugungssoftware erzeugt wird, und einen Abschnitt, der zufällig ist. Ein zweiter Speicher enthält eine Bitsequenz, die die deterministischen Testvektordaten darstellt. Ein Zufallszahlengenerator (z. B. Linearrückkopplungsschieberegister, LFSR; linear feed-back shift register) erzeugt eine reproduzierbare Sequenz aus Pseudozufallsbits, die auf einen Keimwert basiert. Eine Selektorschaltung wird verwendet, um Bits entweder aus dem zweiten Speicher oder aus dem Zufallszahlengenerator auszuwählen, basierend auf dem Wert des Maskenvektors. Die Ausgabe des Selektors liefert einen vollständig spezifizierten Testvektor zur Anwendung an die zu testende Vorrichtung (DUT; device under test). Das LFSR kann auf der DUT hergestellt sein. Die Ausgabe der DUT kann auf Stufen des LFSR rückgekoppelt sein. Die Bits des Maskenvektors können ohne weiteres komprimiert werden, wodurch Speicher gespart wird. Weder der erste noch der zweite Speicher müssen die Zufallsbits speichern, da diese Bits während des Betriebs durch das LFSR reproduziert werden, das als Lager für komprimierte Daten betrachtet wird. Das System liefert einen Verschlüsselungsschutz für die Testvektoren, da das LFSR den richtigen Keimwert benötigt, bevor die richtige Sequenz aus Pseudozufallsbits erzeugt wird.
  • Die US-A-5,499,248 offenbart eine Vorrichtung zum Testen einer elektronischen Vorrichtung, insbesondere einen Integrierte-Schaltung-Tester, der genauer gesagt zum Testen von Speichereinrichtungen oder Logik/Speicher-Kombinationen entworfen ist, und liefert eine Vielzahl von Stiftkanälen. Jeder Stiftkanal umfasst eine Sequenzsteuerung, die mit einer Dekomprimierungssteuereinheit kommuniziert. Diese Kombination ist extrem schnell und ermöglicht, die entsprechenden Stiftkanäle einer Adresse oder einem Datenstift eines Speichers oder einem Logikstift einer zu testenden Vorrichtung zuzuordnen. Eine zentrale Steuerung liefert die notwendigen Steueranweisungen zu Anweisungsspeichereinrichtungen der Sequenzsteuerungen. Alle Sequenzsteuerungen, die einem Logikstift zugeordnet sind, führen im Grunde dasselbe Programm aus, wobei eine Stiftanpassung durch einen Vektorspeicher ausgeführt wird. Im Gegensatz dazu führen Sequenzierer, die einen Adressstift zugewiesen sind, unterschiedliche, stiftspezifische Anweisungen aus. Die Architektur kann einfach an verschiedene Stiftdefinitionen angepasst werden und basiert auf dem „Pro-Stift-Ressource"-Lösungsansatz. Sie kann auch auf Platinentester und andere elektronische Testvorrichtungen angewendet werden.
  • Die US 6,684,358 B1 offenbart einen Dekomprimierer/PRPG auf einem Mikrochip, der sowohl eine Pseudozufallstestmustererzeugung als auch eine Dekomprimierung von deterministischen Testmustern für eine zu testende Schaltung auf dem Chip ausführt. Der Dekomprimierer/PRPG weist zwei Operationsphasen auf. In einer Pseudozufallsphase erzeugt der Dekomprimierer/PRPG Pseudozufallstestmuster, die auf Abtastketten innerhalb der zu testenden Schaltung angewendet werden. In einer deterministischen Phase werden komprimierte, deterministische Testmuster aus einem externen Tester auf den Dekomprimierer/PRPG angewendet. Die Muster werden dekomprimiert, wenn sie durch den Dekomprimierer/PRPG in die Abtastketten getaktet werden. Der Dekomprimierer/PRPG liefert somit eine viel bessere Fehlerabdeckung als ein einfacher PRPG, aber ohne die Kosten eines kompletten Satzes aus voll spezifizierten, deterministischen Testmustern.
  • Khoche u. a.: „Test Vector Compression Using EDA-ATE Synergies", 28. April 2002 (2002-04-28), Proceedings 20th IEEE VLSI Test Symposium (VTS 2002) IEEE COMPUT. SOC LOS ALAMITOS, CA, USA; SEITE(N) 97–102, beschreibt eine Testvektorkomprimierungstechnik, die Synergien zwischen Tools zur automatischen Testmustererzeugung (ATPG-Tools; ATPG = Automatic Test Pattern Generation), die durch Verkäufer einer EDA (Electronic Design Automation; elektronische Entwurfsautomatisierung) bereitgestellt werden, und einer automatischen Testausrüstung (ATE) verwendet. Der Ansatz ist, eine wesentliche Komprimierung zu erreichen durch eine Übereinkunft zwischen der. ATE und ATPG darüber, wie bedeutungslose Werte in den Testvektoren gefüllt werden, derart, dass diese Bits nicht auf der ATE gespeichert und möglicherweise nicht zu der DUT kommuniziert werden müssen, wenn eine Dekomprimierung an dem Chip ausgeführt wird. Die Technik ermöglicht eine feinkörnige Mischung auf Teilvektorebene von pseudozufällig erzeugten Bits und ATPG-erzeugten Bits.
  • Es ist die Aufgabe der vorliegenden Erfindung, verbesserte Systeme und Verfahren zum Komprimieren und/oder Dekomprimieren von ATPG-Mustern zu schaffen, um das Testen von Schaltungen unter Verwendung einer automatischen Testausrüstung (ATE) zu ermöglichen.
  • Diese Aufgabe wird durch eine automatisierte Testausrüstung gemäß Anspruch 1 und durch ein Verfahren gemäß Anspruch 8 gelöst.
  • Zusammenfassung
  • Repräsentative Ausführungsbeispiele richten sich auf Systeme und Verfahren zum Komprimieren und/oder Dekomprimieren von ATPG-Mustern, um ein Testen von Schaltungen unter Verwendung einer automatischen Testausrüstung (ATE) zu ermöglichen. Ferner verwenden repräsentative Ausführungsbeispiele Komprimierungs- und Dekomprimierungs-Algorithmen, die sich deutlich von Komprimierungs- und Dekomprimierungs-Algorithmen unterscheiden, die durch bekannte, chipinterne Techniken eingesetzt werden. Zum Beispiel dekomprimieren chipinterne Techniken Testdaten, die einen relativ niedrigen Verdichtungsgrad besitzen. Genauer gesagt ist die Dichte bedeutsamer Bits relativ gesehen minimal und somit wird die Wahrscheinlichkeit, dass eine lineare Abhängigkeit beim Finden von Linearrückkopplungsschieberegister-Keimwerten (LFSR-Keimwerten) auftritt auf einer relativ niedrigen Ebene gehalten. Zusätzlich dazu verwenden chipinterne Komprimierungstechniken die Daten, die durch ein ATPG-Tool erzeugt werden, d. h. die bedeutungslosen Bits sind unspezifiziert. Dadurch, dass die bedeutungslosen Bits unspezifiziert gehalten werden, wird die Anzahl von Mustern wesentlich erhöht (um zwei bis drei Mal wie üblicherweise für handelsüblich erhältliche Tools beobachtet wird). Jeder dieser Faktoren neigt dazu, die Testzeit zu erhöhen. Chipinterne Techniken basieren auf dem Ausfächern mehrerer Abtastketten, um zu verhindern, dass eine Zunahme der Testzeit auftritt. Das Ausfächern mehrerer Abtastketten ist jedoch nicht nützlich, wenn eine Dekomprimierung auf der ATE auftritt. Somit würde das Einsetzen bekannter Algorithmen zum Dekomprimieren von Testdaten auf einer ATE den Betrag an Testzeit inakzeptabel erhöhen, die für eine zu testende Schaltung erforderlich ist.
  • Bei einem darstellenden Ausführungsbeispiel liefert eine ATE-Architektur ausreichende Komprimierungs-/Dekomprimierungs-Ressourcen, um zu ermöglichen, dass eine Testmusterverarbeitung auf einer Pro-Stift-Basis auftritt. Genauer gesagt kann jeder zugehörige Stift der zu testenden Schaltung, der Testmuster empfängt oder Ergebnisdaten ausgibt, einer unabhängigen Komprimierungs-/Dekomprimierungs-Funktionalität zugeordnet sein. Dementsprechend kann die Dekomprimierung und Komprimierung in Echtzeit während des Testens der entsprechenden Schaltung auftreten.
  • Im Gegensatz zu chipinternen Komprimierungstechniken verwenden repräsentative Ausführungsbeispiele relativ gesehen größere LFSRs, da das LFSR auf der ATE implementiert ist. Im Gegensatz zu chipinternen Techniken verwenden repräsentative Ausführungsbeispiele eine Architektur für ein „übertaktendes" Linearrückkopplungsschieberegister (LFSR), das durch ein potentiell nichtprimitives Polynom gekennzeichnet ist. Die resultierende Freiheit beim Auswählen von Abgriffen und der Länge des LFSR werden verwendet, um die Linearabhängigkeitswahrscheinlichkeit wesentlich zu reduzieren. Dementsprechend ermöglichen repräsentative Ausführungsbeispiele, dass relativ hoch kompaktierte (verdichtete) Testdaten durch eine ATE in Echtzeit während der Operation der ATE dekomprimiert werden. Durch Ermöglichen, dass kompaktierte Testdaten verwendet werden, wird die Testzeit auf akzeptablen Pegeln gehalten. Zusätzlich dazu können hohe Komprimierungsverhältnisse erreicht werden, da das größere LFSR ermöglicht, dass der Mehraufwand, der den Zählbits zugeordnet ist, vernachlässigbar wird.
  • Bei einem anderen repräsentativen Ausführungsbeispiel werden die bedeutungslosen Bits von Stimulusmustern wiederholungsgefüllt, z. B. jedem aufeinanderfolgenden Bit in einem Lauf (eine Mehrzahl von aufeinander folgenden Vorkommnissen) von bedeutungslosen Bits wird der Wert des bedeutungsvollen Bits zugewiesen, das dem Lauf direkt folgt. Nach dem Wiederholungsfüllen werden die Stimulusmuster lauflängencodiert, z. B. unter Verwendung von Codewörtern variabler Länge, wie z. B. Fibonacci-Codes, um eine Hochgeschwindigkeitsdekomprimierung zu ermöglichen. Genauer gesagt wird eine Dekomprimierungsarchitektur eingesetzt, die eine Mehrzahl von Lauflängendecodierern verwendet, um eine Dekomprimierung parallel auszuführen, um die relativ anspruchsvollen Zeitgebungskriterien zu erfüllen, die der ATE zugeordnet sind.
  • Beschreibung der Zeichnungen
  • 1 zeigt ein Flussdiagramm zum Verarbeiten von Testdaten gemäß einem repräsentativen Ausführungsbeispiel.
  • 2 zeigt ein Linearrückkopplungsschieberegister.
  • 3 zeigt ein Flussdiagramm zum Codieren von Testdaten unter Verwendung von SEED-(Keim-) und COUNT-(Zählwert-) Parametern, gemäß einem repräsentativen Ausführungsbeispiel.
  • 4 zeigt ein anderes Flussdiagramm zum Codieren von Testdaten unter Verwendung von Keim- und Zählwert-Parametern gemäß einem repräsentativen Ausführungsbeispiel.
  • 5 zeigt ein Flussdiagramm zum Codieren von Testdaten unter Verwendung einer Lauflängencodierung gemäß einem repräsentativen Ausführungsbeispiel.
  • 6 zeigt wiederholungsgefüllte Testdaten.
  • 7 zeigt eine Lauflängencodierung der wiederholungsgefüllten Testdaten, gezeigt in 6, gemäß einem repräsentativen Ausführungsbeispiel.
  • 8 zeigt eine parallele Hardwarearchitektur zum Decodieren von lauflängencodierten Testdaten gemäß einem repräsentativen Ausführungsbeispiel.
  • 9 zeigt ein anderes Flussdiagramm zum Verarbeiten von Testmustern gemäß einem repräsentativen Ausführungsbeispiel.
  • 10 zeigt ein LFSR.
  • 11 zeigt ein „Zweimal-" Übertaktungs-LFSR, hergeleitet aus dem LFSR, das in 10 gezeigt ist.
  • 12 zeit eine Matrix, definiert durch das LFSR, das in 10 gezeigt ist.
  • 13 zeigt eine Matrix, die das LFSR charakterisiert, das in 11 gezeigt ist, die aus der Matrix hergeleitet ist, die in 12 gezeigt ist.
  • 14 zeigt ein Verbindungsnetz für ein LFSR, definiert durch die Matrix, die in 13 gezeigt ist.
  • 15 zeigt ein automatisches Testausrüstungssystem (ATE-System), das eine Echtzeitdekomprimierung von Testmusterdaten einsetzt.
  • 16 zeigt eine ATE, die das Herunterladen von Daten aus dem ATE-Speicher unter Verwendung einer „Drosselungs"-Fähigkeit steuert.
  • 17 zeigt eine ATE, die Lauflängencodes auf Adresse-auf-Chip-Testverzögerungen anwendet.
  • 18 zeigt ein ATE-Teilsystem, das eine Pro-Gruppe-Verarbeitung ausführt.
  • 19 zeigt ein ATE-Teilsystem, das eine Pro-Stift-Verarbeitung ausführt, die gemäß einem repräsentativen Ausführungsbeispiel auftreten soll.
  • Detaillierte Beschreibung
  • Ein repräsentatives Ausführungsbeispiel setzt eine „Übertaktungs-Architektur" für ein LFSR ein, die ermöglicht, dass relativ gesehen kompaktierte Testmuster für eine nachfolgende Dekomprimierung an einer ATE in Echtzeit während des Testens einer zu testenden Schaltung komprimiert werden. Ein Beispiel einer „Übertaktungs"-Architektur ist in 12 gezeigt, die nachfolgend detaillierter erörtert wird. Die Architektur unterscheidet sich von LFSR-Architekturen, die durch chipinterne Techniken verwendet werden, durch Verwenden eines relativ großen LFSR, das gekennzeichnet ist durch ein Polynom, das nicht notwendigerweise primitiv ist. Ferner können LFSRs gemäß einem repräsentativen Ausführungsbeispiel Vorwärtskopplungs- und Rückwärtskopplungsabgriffe umfassen. Die resultierende Freiheit beim Auswählen der Abgriffe wird verwendet, um die Linearabhängigkeitswahrscheinlichkeit zwischen LFSR-Zyklen wesentlich zu reduzieren, die dazu neigt, den erreichten Komprimierungsbetrag zu begrenzen. Durch Ermöglichen eines größeren Verdichtungsbetrags von Testmustern halten repräsentative Ausführungsbeispiele den Zeitbetrag innerhalb akzeptabler Pegel, der zum Testen einer Schaltung durch eine ATE erforderlich ist.
  • Bei einem anderen, repräsentativen Ausführungsbeispiel kann eine Komprimierung von Testdaten durch Wiederholungsfüllläufe von bedeutungslosen Bits in Stimulusmustern auftreten. Nachdem das Wiederholungsfüllen ausgeführt ist, wird das Lauflängencodieren ausgeführt. Ein repräsentatives Ausführungsbeispiel ersetzt Läufe aus Binärsymbolen durch modifizierte Fibonacci-Codes. Die modifizierten Fibonacci-Codes identifizieren den Anfang und das Ende jedes Codes, ohne zu erfordern, dass die individuellen Lauflängen decodiert werden. Ein repräsentatives Ausführungsbeispiel verwendet die Fähigkeit, jeden Code zu erfassen, um Testdaten parallel unter Verwendung einer Mehrzahl von Lauflängendecodierern zu dekomprimieren. Durch Serialisieren der Ausgangsbits aus jedem Lauflängendecodierer wird ein Datenstrom einer ausreichenden Bitrate erhalten, der eine Echtzeitdekomprimierung von Testdaten zur Anwendung an eine zu testende Schaltung durch eine ATE ermöglicht.
  • 1 zeigt ein Flussdiagramm, das die Integration einer LFSR-Komprimierung und einer Lauflängenkomprimierung in eine automatische Testmustererzeugung gemäß repräsentativen Ausführungsbeispielen darstellt. Bei Schritt 101 wird aus einer logischen oder einer anderen geeigneten Schaltungsbeschreibung (z. B. einer Schaltungsbeschreibung, die unter Verwendung eines geeigneten Entwurfstools erzeugt wird) eine Fehlerliste erzeugt. Aus Schritt 102 werden Testmuster definiert. Jedes Symbol in den Mustern ist durch einen der drei folgenden Zustände dargestellt: „0", „1" und „X". Wenn das Symbol den Zustand „0" reflektiert, muss das entsprechende Bit auf Null gesetzt sein, um den Fehler zu testen, der dem Stimulusmuster entspricht, aufgrund der Logik des Schaltungsentwurfs. Auf ähnliche Weise, wenn das Symbol den Zustand „1" reflektiert, muss das entsprechende Bit auf Eins gesetzt sein, um den Fehler zu testen, der dem Stimulusmuster entspricht. Bits, die den Zuständen „0" und „1" entsprechen, werden als bedeutsame Bits bezeichnet. Wenn das Symbol den Zustand „X" reflektiert, kann das entsprechende Bit entweder auf Null oder auf Eins gesetzt sein, um den Fehler zu testen, der dem Stimulusmuster entspricht. Bits, die dem Zustand „X" entsprechen, werden als bedeutungslose Bits bezeichnet. Bei Schritt 103 werden nicht in Konflikt stehende Stimulusmuster wiederholt kompaktiert. Genauer gesagt können Stimulusmuster, die keine bedeutsamen Bits besitzen, die in Konflikt stehende Werte aufweisen, in ein einzelnes, kompaktiertes Muster kombiniert werden. Die Schritte 101 bis 103 können unter Verwendung bekannter Algorithmen ausgeführt werden, wie z. B. jener, die durch bekannte ATPG-Softwaretools eingesetzt werden.
  • Bei Schritt 104 werden die kompaktierten Stimulusmuster gemäß repräsentativen Ausführungsbeispielen komprimiert. Bei einem repräsentativen Ausführungsbeispiel wird der Schritt 104 unter Verwendung eines LFSR-Algorithmus ausgeführt. Genauer gesagt definiert die Ausgabe eines LFSR für jeden Operationszyklus eine lineare Gleichung. Ein Satz aus linearen Gleichungen wird erzeugt, um entsprechenden Aus gangszyklen des LFSR zu entsprechen, die bedeutsamen Bits von Stimulusmustern zugeordnet sind, die komprimiert werden sollen. Der Satz aus linearen Gleichungen wird gegen die logischen Werte der bedeutsamen Bits gelöst, um den Anfangszustand des LFSR zu bestimmen, der verursacht, dass das LFSR die bedeutsamen Bits reproduziert.
  • Wie vorangehend erörtert wurde, setzt ein repräsentatives Ausführungsbeispiel ein LFSR ein, das eine relativ große Länge und ein nichtprimitives Polynom besitzt. Ferner kann das LFSR Vorwärtskopplungs- und Rückkopplungs-Abgriffe besitzen. Durch Bereitstellen eines Freiheitsgrades für die Auswahl der Abgriffe wird die Wahrscheinlichkeit des Auftretens mehrerer linearer Gleichungen in dem Satz, die linear abhängig sind, angemessen reduziert. Durch Reduzieren der Wahrscheinlichkeit kann eine größere Dichte von bedeutsamen Bits codiert werden, wodurch ermöglicht wird, dass hoch kompaktierte Testmuster komprimiert werden.
  • Die Komprimierung kann durch Teilen der Stimulusmuster in Blöcke auftreten. Für jeden Block wird ein „Keim"-Parameter und ein „Zählwert"-Parameter aus einem Satz von linearen Gleichungen hergeleitet, die durch das implementierte LFSR definiert sind. Die bedeutsamen Bits eines entsprechenden Blocks sind aus dem Keim-Parameter und dem Zählwert-Parameter reproduzierbar. Die bedeutungslosen Bits des entsprechenden Blocks sind Werten auf einer Pseudozufallsbasis zugewiesen, gemäß den Charakteristika des LFSR. Nachdem ein Keim-Parameter und ein Zählwert-Parameter für jeden Block bestimmt sind, werden die Stimulusmuster in Testmuster transformiert, die ausschließlich aus binären Symbolen bestehen, anstelle von ternären Symbolen (d. h. 0, 1 oder X). Die Details der Komprimierung und Dekomprimierung von Musterdaten gemäß einem LFSR-Algorithmus werden nachfolgend detaillierter erörtert. Ferner wird darauf hingewiesen, dass, da ein größeres LFSR auf der ATE implementiert sein kann, um die Dekomprimierung auszuführen, hohe Komprimierungsverhältnisse erreicht werden können, da die Daten, die den Zählwert-Parametern zugeordnet sind, vernachlässigbar werden. Ferner kann ein Speicher-„Drosseln” (wie nachfolgend erörtert wird) auftreten, um die Effektivität des Komprimierungsschemas zu erhöhen.
  • Bei einem anderen Ausführungsbeispiel wird Schritt 104 unter Verwendung einer Lauflängencodierung ausgeführt. Bei diesem Ausführungsbeispiel wird eine Wiederholungsfülloperation auf Stimulusmuster angewendet, um den bedeutungslosen Bits Werte zuzuweisen. Diese Zuweisung erzeugt Testmuster, die ausschließlich aus binären Symbolen bestehen. Bei einem Ausführungsbeispiel wird jedem bedeutungslosen Bit der Wert des direkt nachfolgenden bedeutsamen Bits zugewiesen. Nach dem Ausführen der Wiederholungsfülloperation werden die Muster unter Verwendung von Codewörtern variabler Länge lauflängencodiert, die den Anfang und das Ende jedes Codeworts identifizieren. Durch Identifizieren der Codewörter auf diese Weise können die komprimierten Daten parallel dekomprimiert werden, wie nachfolgend detaillierter erörtert wird. Zusätzlich dazu können Codes variabler Lauflänge eingesetzt werden. Die Codes variabler Länge ermöglichen verbesserte Komprimierungsverhältnisse im Vergleich zu Wiederhol-Zähl-Anweisungen. Ferner verbessert die Lauflängencodierung die Schnittstelle zwischen der ATE und der chipinternen DFT-Funktionalität weiter. Genauer gesagt, wenn die DFT-Funktionalität einen Bitsatz aus der ATE verarbeitet, werden üblicherweise Leerlaufzyklen durch die ATE eingesetzt. Unter Verwendung einer Lauflängencodierung müssen die Leerlaufzyklen nicht in dem ATE-Speicher gespeichert sein und können gleichzeitig zu der Verarbeitung durch die DFT-Funktionalität erzeugt werden.
  • Bei Schritt 105 wird eine Fehlersimulation unter Verwendung der kompaktierten Muster ausgeführt, die Werte aufweisen, die den bedeutungslosen Bits zugewiesen sind, wie durch Schritt 104 ausgeführt wird. Fehler, die durch die Muster adressiert werden, werden aus der Fehlerliste entfernt.
  • Nach dem Ausführen der Fehlersimulation werden erwartete Ergebnisse für jedes Muster simuliert (Schritt 106). Wenn ein Testmuster auf eine Schaltung angewendet wird, sind bestimmte resultierende Ausgaben oder Zustände von Logikelementen der Schaltung aufgrund von floatenden Bussen, Buskonkurrenz und/oder ähnlichem unbekannt. Zum Beispiel kann ein erwartetes Ergebnis die folgende Sequenz umfassen „01001XXX101XX", wobei „0" ein Bit definiert, das bei dem Ergebnis des Tests eine Null sein sollte, „1" ein Bit definiert, das bei dem Ergebnisdes Tests eine Eins sein sollte und „X" ein Bit darstellt, das in dem Ergebnis des Tests entweder auf eine Eins oder eine Null gesetzt sein könnte. Ein Maskendatenstrom kann definiert sein, um unbekannte Werte zu adressieren. Genauer gesagt kann der Maskendatenstrom verwendet werden, um zu verursachen, dass empfangene Testdaten, die den unbekannten Zuständen zugeordnet sind, auf einen bekannten Wert abgebildet werden (z. B. „0").
  • Bei Schritt 107 werden die erwarteten Ergebnisse und der Maskendatenstrom z. B. unter Verwendung einer Lauflängencodierung komprimiert. Ferner können Ergebnissignaturen durch Ansammeln erwarteter Ergebnisse über mehrere Zyklen eines festen Fensters aufgebaut werden. Dadurch können Ergebnissignaturen erzeugt und gegen ähnlich angesammelte (akkumulierte) Ergebnistestdaten nach der Anwendung des Maskendatenstroms verglichen werden. Der Vergleich kann auf ähnliche Weise zu zyklischen Redundanzcodes (CRC; cyclic redundancy code) oder Prüfsummen funktionieren, um zu bestimmen, ob ein bestimmtes Fenster besteht oder fehlschlägt. Zusätzliche Details im Hinblick auf Maskendatenströme und Ergebnissignaturen finden sich in dem U.S.-Patent 2004/0107395 A1 mit dem Titel „SYSTEM AND METHOD FOR TESTING CIRCUITRY USING AN EXTERNALLY GENERATED SIGNATURE", eingereicht am 3. Dezember 2002.
  • Bei Schritt 108 werden die komprimierten Muster, die komprimierten erwarteten Ergebnisse und die Ergebnissignaturen in einem geeigneten Format gespeichert, um ein nachfolgen des Testen von Schaltungen unter Verwendung der ATE zu ermöglichen.
  • Bekannte LFSRs sind üblicherweise in Hardware implementiert, unter Verwendung eines verbundenen Satzes 200 aus Flip-Flops, wie in 2 gezeigt ist. Während einer Operation des LFSR wird der Wert jedes Flip-Flops zu dem am nächsten benachbarten Flip-Flop geliefert, und eine XOR-Operation wird für jeden Rückkopplungsabgriff ausgeführt. Andere Implementierungen können eingesetzt werden, wie z. B. interne und externe LFSRs. Der Ausgangswert des LFSR ist üblicherweise der Wert des letzten Flip-Flops. Im Allgemeinen ist ein LFSR gekennzeichnet durch seine Länge „n" und durch den Polynomvektor der Größe „n", der die Rückkopplungsabgriffe und ihre Orte beschreibt. In Betrieb erzeugt ein LFSR einen Bitstrom, der durch seine Länge und sein kennzeichnendes Polynom definiert ist. Der Bitstrom ist zyklisch, d. h. ein einzelnes eindeutiges Muster wird durch kontinuierliches Betreiben des LFSR wiederholt. Die Länge des eindeutigen Musters (bezeichnet als Pseudozufallsmuster) wird durch Auswählen eines primitiven Polynoms (ein nicht faktorisierbares Polynom) als das charakterisierende Polynom maximiert. Ferner können die Flip-Flops wenn ein LFSR initialisiert wird auf entsprechende Logikzustände initiiert werden. Das Bitmuster, das zum Initialisieren der Logikzustände verwendet wird, wird als ein „Keim" bezeichnet.
  • Bekannte chipinterne Dekomprimierungstechniken haben LFSRs verwendet, um ein einzelnes Testmuster aus einem einzelnen Keim-Wert zur Anwendung auf Abtastketten zur Schaltungstestung zu erzeugen. Genauer gesagt ist es allgemein möglich, einen Keim-Wert zu finden, der, wenn er in das LFSR geladen wird, verursacht, dass das LFSR einen Bitstrom erzeugt, der die bedeutungsvollen Bits eines gegebenen Stimulusmuster reproduziert. Die Werte der bedeutungslosen Bits sind Werten gemäß dem pseudozufälligen Wesen des LFSR zugewiesen. Bekannte Implementierungen von LFSRs sind beschränkt, um sicherzustellen, dass alle Muster durch die LFSRs erzeugt werden können. Beispiele der Einschränkungen umfassen das Verwenden einer Anzahl von Mehraufwand-Bits, um lineare Abhängigkeiten zu verhindern und den Betrag einer Kompaktierung von Mustern einzuschränken, um das Verhältnis von bedeutsamen Bits zu bedeutungslosen Bits zu begrenzen. Aufgrund der Einschränkungen, die durch bekannte chipinterne Dekomprimierungs-LFSRs auferlegt sind, kann sich die Testzeit potentiell erhöhen. Für eine chipinterne Komprimierung wird diese potentielle Testzeiterhöhung durch Ausfächern an mehrere Abtastketten verhindert. Dieser Ansatz funktioniert jedoch nicht, wenn eine Komprimierung auf der ATE implementiert ist, wodurch ein neuer Problempunkt verursacht wird, der vorangehend nicht adressiert wurde.
  • Wie vorangehend erörtert wurde, reduziert die Verwendung einer Übertaktungsarchitektur für das LFSR die Wahrscheinlichkeit von linearen Abhängigkeiten wesentlich und erhöht somit den Komprimierungsbetrag. Ferner setzen repräsentative Ausführungsbeispiele einen LFSR-Komprimierungsalgorithmus ein, der sich wesentlich von bekannten LFSR-Algorithmen unterscheidet. Eine LFSR-Komprimierung gemäß einem repräsentativen Ausführungsbeispiel erzeugt Testdaten für linear abhängige Testzyklen ohne in Konflikt stehende Logikbitwerte und linear unabhängige Testzyklen, wodurch das Komprimierungsverhältnis erhöht wird.
  • 3 zeigt ein Flussdiagramm zum Komprimieren von Musterdaten zur Dekomprimierung durch ein LFSR gemäß repräsentativen Ausführungsbeispielen. Bei Schritt 301 wird eine Matrix erzeugt, durch Integrieren linearer Gleichungen in die Matrix, definiert durch das LFSR. Die Gleichungen, die in der Matrix verwendet werden, sind definiert durch die Ausgangszyklen des LFSR, die Positionen der bedeutsamen Bits der Musterdaten entsprechen. Bei Schritt 302 wird ein Versuch gemacht, die Matrix gegen die Werte der entsprechenden bedeutsamen Bits aufzulösen, um einen Keim-Parameter zu bestimmen, der die anfänglichen Werte der Flip-Flops des LFSR definiert, so dass die bedeutsamen Bits durch das LFSR reproduziert werden. Der Versuch, die Matrix aufzulösen, kann eine Gaußsche Eliminierung oder eine Gauß-Jordan-Eliminierung verwenden. Basierend auf dem Versuch, die Matrix aufzulösen, wird eine logische Bestimmung (Schritt 303) daran ausgeführt, ob die maximale Anzahl von bedeutsamen Bits, die unter Verwendung eines einzelnen Keim-Parameters codiert werden kann, bestimmt wurde. Die maximale Anzahl von bedeutsamen Bits wird bestimmt durch das Auftreten einer linearen Abhängigkeit in den linearen Gleichungen, die dem bedeutsamen Bit zugeordnet sind, das einen in Konflikt stehenden (widersprüchlichen) Logikwert besitzt. Wenn die maximale Anzahl von bedeutsamen Bits nicht bestimmt wurde, kehrt der Prozessfluss zu Schritt 301 zurück, wo eine Matrix unter Verwendung einer unterschiedlichen Anzahl von Gleichungen erzeugt wird, entsprechend einer unterschiedlichen Anzahl von bedeutsamen Bits. Wenn die maximale Anzahl von Bits identifiziert wurde, geht der Prozessfluss von Schritt 303 zu Schritt 304 über. Bei Schritt 304 wird ein Block aus Stimulusdaten, die der maximalen Anzahl von bedeutsamen Bits zugeordnet sind, durch den Keim-Parameter, der durch die Lösung der Matrix bestimmt wird, und einen Zählwert-Parameter, der die Länge des Blocks definiert, dargestellt. Zusätzlich dazu könnte der Suchprozess, der in 3 gezeigt ist, unter Verwendung einer binären Suche beschleunigt werden.
  • 4 zeigt ein anderes Flussdiagramm zum Komprimieren von Musterdaten zur Dekomprimierung durch ein LFSR, das keine Matrixinvertierung umfasst. Bei Schritt 401 wird der Zählwert-Parameter inkrementiert. Bei Schritt 402 wird das nächste Bit in einem Stimulusmuster oder einem Satz aus Stimulusmustern ausgewählt. Bei Schritt 403 wird eine logische Bestimmung ausgeführt, um zu bestimmen, ob das ausgewählte Bit ein bedeutsames Bit ist. Wenn nicht, kehrt der Prozess zu Schritt 401 zurück. Genauer gesagt, wenn das ausgewählte Bit ein bedeutungsloses Bit ist, kann das bedeutungslose Bit unter Verwendung des aktuellen Keim- Parameters codiert werden, einfach durch Erhöhen des Zählwert-Parameters.
  • Wenn das ausgewählte Bit ein bedeutsames Bit ist, geht der Prozessfluss von Schritt 403 zu Schritt 404 über. Bei Schritt 404 wird eine Gleichung für den entsprechenden LFSR-Zyklus erzeugt, wie durch das charakterisierende Polynom des LFSR definiert ist. Bei Schritt 405 wird eine logische Bestimmung ausgeführt, um zu bestimmen, ob die erzeugte Gleichung linear von vorangehend erzeugten Gleichungen abhängig ist (eine lineare Abhängigkeit bezieht sich auf das Auftreten einer erzeugten Gleichung, die von einer oder mehreren vorangehend erzeugten Gleichungen linear abhängig ist). Wenn die erzeugte Gleichung nicht von vorangehend erzeugten Gleichungen linear abhängig ist, geht der Prozessfluss von Schritt 405 und zu Schritt 406 über. Bei Schritt 406 wird der Keim-Parameter basierend auf der neu erzeugten Gleichung verfeinert. Genauer gesagt, wenn die erzeugte Gleichung linear unabhängig ist, ist bekannt, dass ein Keim-Parameter bestimmt werden kann, um das aktuell ausgewählte bedeutsame Bit und vorangehende bedeutsamen Bits zu erzeugen. Von Schritt 406 geht der Prozessfluss zu Schritt 401 zurück.
  • Wenn bestimmt wird, dass die erzeugte Gleichung linear abhängig ist, geht der Prozessfluss von Schritt 405 zu Schritt 407 über. Bei Schritt 407 wird eine logische Bestimmung ausgeführt, um zu bestimmen, ob das aktuelle bedeutsame Bit mit der Ausgabe des LFSR für den entsprechenden Zyklus in Konflikt steht, unter Verwendung des aktuellen Keim-Parameters, durch Inkrementieren des Zählwert-Parameters. Wenn das ausgewählte bedeutsame Bit nicht in Konflikt steht, kehrt der Prozessfluss zu Schritt 401 zurück. Durch Codieren linear abhängiger Testzyklen ohne in Konflikt stehende und unabhängige Testzyklen in ein einzelnes Paar aus Keim- und Zählwert-Parametern können mehrere Testmuster zur Anwendung auf eine Schaltung über mehrere Taktzyklen der Schaltung codiert werden. Wenn das ausge wählte bedeutsame Bit in Konflikt steht, geht der Prozessfluss von Schritt 407 auf Schritt 408 über. Genauer gesagt, da die erzeugte Gleichung linear abhängig ist und das entsprechende bedeutsame Bit in Konflikt steht, kann keine weitere Komprimierung erreicht werden. Somit wird der Abschnitt der Stimulusdaten bis zu dem aktuell ausgewählten bedeutsamen Bit unter Verwendung des aktuellen Keim- und Zählwert-Parameters codiert.
  • Der Prozessfluss von 4 erscheint vielleicht effizienter als der Prozessfluss aus 3. Genauer gesagt erfordern die Gaußsche Eliminierung und die Gauß-Jordan-Eliminierung das Invertieren einer Matrix, jedes Mal, wenn ein zusätzliches bedeutsames Bit angetroffen wird. Eine Matrix-Invertierung (Umkehrung) ist eine relativ prozessorintensive Aufgabe. Der Prozessfluss aus 4 erfordert jedoch das Bestimmen, ob die Gleichung für den aktuellen LFSR-Zyklus linear abhängig ist, was eine viel weniger prozessorintensive Aufgabe ist als eine Matrixinvertierung. Dementsprechend kann ein Satz aus Stimulusmustern, der mehrere Stunden zum Komprimieren unter Verwendung des Prozessflusses aus 3 erfordert, nur Minuten zum Komprimieren unter Verwendung des Prozessflusses aus 4 erfordern.
  • 5 zeigt ein Flussdiagramm zum Ausführen einer Musterkomprimierung unter Verwendung einer Lauflängencodierung gemäß repräsentativen Ausführungsbeispielen. Bei Schritt 501 wird ein Stimulusmuster empfangen, das eine Mehrzahl von bedeutsamen Bits und bedeutungslosen Bits umfasst. Da Stimulusmuster üblicherweise eine relativ niedrige Anzahl von bedeutsamen Bits relativ zu der Anzahl von bedeutungslosen Bits besitzen, enthalten solche Stimulusmuster häufig Läufe aus bedeutungslosen Bits. Ein Lauf ist die Sequenz aus aufeinander folgenden Vorkommnissen desselben Werts. Bei Schritt 502 wird jedem Bit in entsprechenden Läufen aus bedeutungslosen Bits derselbe Wert zugewiesen. Bei repräsentativen Ausführungsbeispielen wird jeder Lauf aus bedeutungslosen Bits durch denselben Wert ersetzt, wie z. B. den Wert des bedeutsamen Bits, der dem Lauf der bedeutungslosen Bits direkt vorausgeht. Ferner wird isolierten bedeutungslosen Bits (einzelne bedeutungslose Bits, denen entsprechende bedeutsame Bits vorangehen und folgen) der Wert des direkt vorangehenden bedeutsamen Bits zugewiesen. Zum Beispiel können die Stimulusmuster, gegeben durch „01001XXX0X0X01101", verarbeitet werden, um den binären Bitstrom „01001111000001101" zu erzeugen. Das Verarbeiten eines Stimulusmusters auf diese Weise wird als ein „Wiederholungsfüllen" bezeichnet und wird ausgeführt durch gegenwärtige bekannte EDA/ATPG-Softwaretools. Bekannte Softwaretools führen ein Wiederholungsfüllen aus, um die Anzahl von binären Übergängen in den Testmustern zu minimieren, zum Zweck des Minimierens der Leistungsabführung. Bei diesem Ausführungsbeispiel kann eine Komprimierung und Dekomprimierung von Testmustern auftreten, ohne eine Modifikation von bekannten EDA/ATPG-Softwaretools zu erfordern.
  • Bei Schritt 503 wird jeder Lauf aus Binärsymbolen in dem wiederholungsgefüllten, binären Strom lauflängencodiert, z. B. unter Verwendung von Wechselphasen- und Variable-Länge-Codewörtern. Ein binäres Lauflängencodieren bezieht sich auf das Codieren eines binären Stroms, wo Läufe aufeinander folgender Vorkommnisse desselben binären Werts durch ein Codewort ersetzt werden, das die Länge des Laufs darstellt. Zum Beispiel könnte ein Lauf von zwölf „Nullen" durch ein Codewort ersetzt werden, das eine Lauflänge von Zwölf darstellt. Bei einem binären Lauflängencodierungsschema ist es nicht notwendig, den spezifischen binären Wert (entweder „Null" oder „Eins") zu definieren, der in einem Lauf wiederholt wird. Genauer gesagt folgt jedem Lauf notwendigerweise der entgegengesetzte Wert, d. h. einem Lauf aus „Nullen" folgt immer zumindest eine „Eins" und einem Lauf von „Einsen" folgt immer zumindest eine „Null", wenn das Codierungsschema geeignet definiert ist. Somit werden durch Definieren des ersten Vorkommens eines binären Symbols in dem lauflängencodierten Testmuster alle Symbole der Lauflängencodes durch Wechseln zwischen „Null" und „Eins” in Bezug auf das erste binäre Symbol des Testmusters bestimmt. Bei repräsentativen Ausführungsbeispielen werden Codewörter variabler Länge verwendet, um wiederholungsgefüllte Testmuster einer Lauflängencodierung zu unterziehen.
  • Bei einem repräsentativen Ausführungsbeispiel werden Fibonacci-Codes eingesetzt, um eine Paralleldekomprimierungsarchitektur zu implementieren. Fibonacci-Codes basieren auf der Fibonacci-Reihe, wo jeder Wert die Summe der vorangehenden zwei Werte ist. Kein Fibonacci-Code enthält zwei aufeinander folgende binäre „Einsen". Ferner beginnt jeder Fibonacci-Code mit dem Wert „Eins". Der Anfang eines Bitstroms kann unter Verwendung von zwei „Einsen" initiiert werden. Ferner wird eine zusätzliche „Eins" zu dem höchstwertigen Bit (MSB; most significant bit) jedes Fibonacci-Codes in dem Bitstrom addiert. Unter Verwendung dieser Eigenschaften können der Anfang und das Ende jedes Fibonacci-Codes identifiziert werden, durch Erfassen des Vorkommens von zwei aufeinander folgenden „Einsen" in dem Fibonacci-codierten Bitstrom (d. h. ohne Decodieren des Codeworts). Ferner wird darauf hingewiesen, dass die Erfassung eines individuellen Fibonacci-Codes die Extraktion des dargestellten Werts nicht erfordert.
  • Um die Wechselphasen-Lauflängencodierung und Fibonacci-Codes darzustellen, wird Bezug auf 6 und 7 genommen. 6 zeigt einen Bitstrom 600, der eine Mehrzahl von Läufen aus Binärwerten enthält. Genauer gesagt umfasst der Bitstrom 600 einen Lauf aus zwei „Einsen", einen Lauf einer einzelnen „Null", einen Lauf aus vier „Nullen", einen Lauf aus sieben „Einsen" und einen Lauf aus drei „Einsen", einen Lauf aus 15 „Einsen" und einen Lauf aus sieben „Nullen". 7 zeigt einen Fibonacci-codierten Bitstrom 700, bei dem jede Lauflänge (zwei, eins, vier, sieben, drei, 15 und sieben) durch einen entsprechenden Fibonacci-Code dargestellt ist, der eine zusätzliche „Eins" angehängt an das MSB-Bit des Codes aufweist. Der Anfangs- und End-Punkt jedes Fibonacci-Codes kann Bezug nehmend auf die Symbole 701, 702, 703, 704, 705, 706 und 707 bestimmt werden, die jeweils dem Vorkommen von zwei aufeinander folgenden „Einsen" zugeordnet sind. Der Endpunkt jedes Fibonacci-Codes > 1 wird direkt erfasst durch das Vorhandensein von „011" (Symbole 701, 703, 704, 705, 706 und 707). Jeder Endpunkt des Fibonacci-Codes = 1 ist gegeben durch „11". Der Endpunkt dieses Fibonacci-Codes wird durch Verwenden des Endpunkts des direkt vorausgehenden Fibonacci-Codes > 1 erfasst. Durch Darstellen der komprimierten Testmuster auf diese Weise kann eine parallele Fibonacci-Decoder-Architektur 800 aus 8 eingesetzt werden, um komprimierte Testmuster parallel einer Lauflängendecodierung zu unterziehen, um die relativ anspruchsvollen Zeitgebungskriterien der ATE zu unterstützen.
  • Bei einem anderen darstellenden Ausführungsbeispiel werden die Zählwert-Parameter, erzeugt aus der LFSR-Komprimierung, unter Verwendung der Fibonacci-Codes variabler Länge codiert, wie oben Bezug nehmend auf 7 beschrieben ist. Genauer gesagt wird ein Zählwert-Parameter in einem normalen binären Format durch einen Fibonacci-Code ersetzt, der denselben Wert darstellt. Auf ähnliche Weise können die Ergebnismaskendaten parallel lauflängen-codiert und -decodiert werden, durch eine ATE, unter Verwendung der Fibonacci-Codes, wie oben Bezug nehmend auf 6 und 7 erörtert wurde. Obwohl Fibonacci-Codes für ein repräsentatives Ausführungsbeispiel beschrieben wurden, können Dekomprimierungshardwareimplementierungen auf anderen Codewörtern variabler Länge basieren, abhängig von den Frequenzanforderungen, die einer bestimmten Anwendung zugeordnet sind.
  • 9 zeigt ein Flussdiagramm zum Komprimieren von Testmusterdaten gemäß einem darstellenden Ausführungsbeispiel. Bei Schritt 901 wird eine gesetzte Anzahl von Mustern von einem ATPG-Tool empfangen, ohne Zuweisung der Werte zu den bedeutungslosen Bits. Bei Schritt 902 wird die gesetzte Anzahl von Mustern unter Verwendung einer LFSR- Komprimierung gemäß repräsentativen Ausführungsbeispielen komprimiert. Genauer gesagt werden ein Keim-Parameter und ein Zählwert-Parameter für Folgen aus Testdaten erzeugt, die keine linearen Abhängigkeiten mit widersprüchlichen Werten für bedeutsame Bits an dem Ort der linearen Abhängigkeiten besitzen. Bei Schritt 903 werden dann die komprimierten Muster unter Verwendung des entsprechenden LFSR dekomprimiert, um die Werte zu bestimmen, die den bedeutungslosen Bit zugewiesen sind, durch das LFSR, unter Verwendung der entsprechenden Keim- und Zählwert-Parameter. Bei Schritt 904 werden die dekomprimierten Muster zu einem Fehlersimulationstool geliefert. Bei Schritt 905 wird aus dem Fehlersimulationstool die Peripherabdeckung der dekomprimierten Muster bestimmt. Genauer gesagt werden Zustände, die durch die pseudozufällige Zuweisung von Werten zu den bedeutungslosen Bits stimuliert werden, identifiziert. Bei Schritt 906 kann die gesetzte Anzahl von Mustern nach Bedarf erhöht werden. Eine relativ niedrige Anzahl von Mustern (z. B. zehn Muster) kann während der Anfangsstufen komprimiert werden. Die gesetzte Anzahl von Mustern kann periodisch während des Prozessflusses erhöht werden, bis eine viel größere Anzahl von Mustern (z. B. 100) während einer einzelnen Verarbeitungsstufe komprimiert wird. Bei Schritt 907 wird eine logische Bestimmung ausgeführt, um zu bestimmen, ob alle Fehler unter Verwendung der komprimierten Muster stimuliert werden. Wenn nicht, kehrt der Prozessfluss zu Schritt 901 zurück, wo eine andere gesetzte Anzahl von Mustern von dem ATPG empfangen wird, unter Verwendung der erhöhten Anzahl von Mustern. Wenn alle Fehler stimuliert sind, geht der Prozessfluss zu Schritt 908 über. Bei Schritt 908 wird ein Versuch gemacht, Muster unter Verwendung einer Rückwärtsfehlersimulation und Musterneuordnung fallen zu lassen.
  • Durch Erhöhen der Anzahl von Mustern während des Komprimierungsprozesses liefern repräsentative Ausführungsbeispiele eine Anzahl von Vorteilen. Zum Beispiel können Fehler in „einfach erfassbare" Fehler und „schwierige" Fehler katego risiert werden. Einfach erfassbare Fehler können durch eine relativ große Anzahl von Mustern stimuliert werden. Dementsprechend, wenn eine Komprimierung von Testmustern gemäß repräsentativen Ausführungsbeispielen auftritt, ist eine Peripherabdeckung der dekomprimierten Muster für eine relativ kleine Anzahl von Mustern höchstwahrscheinlich. Nachdem jedoch eine Anzahl von Mustern verarbeitet wird, ist ein wesentlicher Abschnitt der einfach erfassbaren Fehler bereits abgedeckt und somit verringert sich der Betrag der Peripherabdeckung relativ zu der Anzahl von verarbeiteten Mustern. Somit können durch Erhöhen der gesetzten Anzahl von Mustern prozessorintensive Aufgaben von Komprimierung, Dekomprimierung und Fehlersimulation reduziert werden.
  • Wie vorangehend erörtert wurde, ist bei einem repräsentativen Ausführungsbeispiel die LFSR-Codierung unter Verwendung eines einzelnen Paares aus Keim- und Zählwert-Parametern durch das Vorkommen eines bedeutsamen Bits begrenzt, das einer LFSR-Gleichung zugeordnet ist, die linear abhängig ist von einer oder mehreren vorangehenden LFSR-Gleichung oder -Gleichungen, wo der Wert des bedeutsamen Bits in Konflikt zu dem Wert des oder der bedeutsamen Bits ist, das oder die der oder den vorangehenden Gleichungen zugeordnet ist/sind. Ein repräsentatives Ausführungsbeispiel adressiert diese Beschränkung durch Reduzieren der Wahrscheinlichkeit des Vorkommens von linearen Abhängigkeiten für bedeutsame Bits. Genauer gesagt wird eine Übertaktungsarchitektur verwendet, um die Wahrscheinlichkeit linearer Abhängigkeiten zu reduzieren.
  • 10 zeigt ein Vier-Bit-LFSR 1000 mit Rückkopplungsabgriffen und 11 zeigt ein Vier-Bit-LFSR 1100 mit „2-maliger" Übertaktung, das aus dem LFSR 1000 hergeleitet werden kann. Aufgrund der Übertaktungseigenschaft des LFSR 1100 umfasst das LFSR 1100 Vorwärtskopplungs- und Rückkopplungs-Abgriffe. Da das LFSR 1100 eine Übertaktung einsetzt, wird die Wahrscheinlichkeit von linearen Abhängigkeiten, die während der Komprimierung von Testdaten unter Verwendung einer LFSR-Keimwertneueinstellung auftreten, relativ zu dem LFSR 1000 reduziert.
  • Eine Methode der formalen Synthese kann eingesetzt werden, um eine Übertaktungsarchitektur aus einem beliebigen LFSR herzuleiten. Genauer gesagt wird das charakterisierende Polynom des LFSR bestimmt. Das charakterisierende Polynom ist „1100" für das LFSR 1000, wie in 10 ersichtlich ist. Eine Quadrat-Übergangs-Matrix wird unter Verwendung des charakterisierenden Polynoms definiert. Zum Beispiel ist die Quadrat-Übergangs-Matrix 1200 in 12 für das LFSR 1000 gezeigt. Die untere Reihe (gezeigt als Reihe 1201) der Quadrat-Übergangs-Matrix ist das charakterisierende Polynom des LFSR 1000. Die erste Spalte mit Ausnahme des letzten Werts (gezeigt als 1202) ist mit Nullen gefüllt. Die verbleibenden Werte (gezeigt als 1203) werden unter Verwendung einer Quadrat-Diagonal-Matrix gefüllt.
  • Die Quadrat-Übergangs-Matrix wird potenziert, wie durch den gewünschten Grad an Übertaktung definiert ist. Zum Beispiel zeigt 13 eine Matrix 1300, die durch Heben der Matrix 1200 in die zweite Potenz hergeleitet wird. Die Matrix 1300 definiert die Vorwärtskopplungs- und Rückkopplungsverbindungen. Genauer gesagt definiert jedes Element i, j der Matrix, ob eine Verbindung zwischen i-ten Flip-Flop des LFSR und dem j-ten Flip-Flop des LFSR eingesetzt wird. XOR-Gatter werden für Elemente eingesetzt, die mehrere Rückkopplungs- und/oder Vorwärtskopplungsverbindungen besitzen. Die Matrix 1300 resultiert in den Verbindungen, die in dem LFSR 1400 aus 14 gezeigt sind. Die Topologie des LFSR 1400 kann vereinfacht werden durch Neuordnen der Positionen der Flip-Flops, was zu dem LFSR 1100 führt, wie in 11 gezeigt ist.
  • Die Synthese-Methode zum Entwerfen von Übertaktungs-LFSR kann für LFSRs jeglicher Länge und für jeden Grad einer erwünschten Übertaktung eingesetzt werden, was Hardwarebeschränkungen unterliegt. Bei einem darstellenden Ausfüh rungsbeispiel werden LFSRs der Länge von 64 Bits und 128 Bits mit einer 10-maligen Übertaktung eingesetzt, um die Wahrscheinlichkeit zu reduzieren, dass lineare Abhängigkeiten während einer LFSR-basierten Komprimierung von Testmusterdaten auftreten.
  • 15 zeigt ein automatisches Testausrüstungssystem (ATE-System) 1500 gemäß einem repräsentativen Ausführungsbeispiel. Die ATE 1510 wendet Testmuster auf eine zu testende Schaltung 1507 in Echtzeit an, um die Funktionalität der Schaltung 1507 zu verifizieren. Die ATE 1510 kann kommunikativ mit der Arbeitsstation 1501 oder einem anderen geeigneten Computersystem verbunden sein. Die Arbeitsstation 1501 kann geeignet ausführbare Anweisungen oder Code umfassen, die eine automatische Testmusterverarbeitung gemäß repräsentativen Ausführungsbeispielen definieren (gezeigt als ATPG-Verarbeitungslogik 1511). Die Arbeitsstation 1501 kann komprimierte Testmusterdaten, komprimierte Maskendaten und erwartete Ergebnissignaturen, die durch die ATPG-Verarbeitungslogik 1511 erzeugt werden, auf den Speicher 1503 der ATE 1510 herunterladen. Die ATE 1510 kann Testergebnisdaten zu der Arbeitsstation 1601 kommunizieren, um eine Nachverarbeitung der Testdaten nach Wunsch zu ermöglichen.
  • Während der Operation der ATE 1510 kann die Steuerlogik 1502 geeignete, komprimierte Muster aus dem Speicher 1503 wiedergewinnen und die komprimierten Muster zu der Dekomprimierungs- und Zusammenfügungslogik 1505 liefern. Die Dekomprimierungs- und Musterzusammenführungslogik 1505 kann ein LFSR zum Dekomprimieren von Testmustern gemäß Keim- und Zählwert-Parametern umfassen. Das LFSR kann unter Verwendung einer relativen großen Anzahl von Flip-Flops implementiert sein, gekennzeichnet durch ein nichtprimitives Polynom. Ferner kann das LFSR Vorwärtskopplungs- und Rückkopplungsabgriffe umfassen. Durch derartiges Implementieren des LFSR können relativ hoch kompaktierte Testmuster auf die zu testende Schaltung 1507 angewendet werden.
  • Zusätzlich oder alternativ kann die Dekomprimierungs- und Musterzusammenfügungslogik 1505 eine Dekomprimierung gemäß einem Lauflängencodierungsschema ausführen. Zum Beispiel können Fibonacci-Codes segmentiert und dann parallel decodiert werden. Durch paralleles Decodieren der Codewörter kann eine ausreichend hohe Datenrate erreicht werden, um die Echtzeitanwendung von Testdaten auf die zu testende Schaltung 1507 zu unterstützen. Zum Beispiel kann die Serialisierung oder Zusammenfügung von Daten aus parallelen Fibonacci-Decodern der ATE 1510 ermöglichen, Testdaten bei einer Gigahertz- oder größeren Bitrate zu liefern, um zu ermöglichen, dass eine Schaltung in Echtzeit getestet wird.
  • Die dekomprimierten Testdaten werden von der Dekomprimierungs- und Musterzusammenfügungslogik 1505 zu der Musteranwendungslogik 1506 geliefert. Die Musteranwendungslogik 1506 liefert die Testdaten zu entsprechenden Stiften oder anderen Verbindungen der zu testenden Schaltung 1507. Die Musteranwendungslogik 1506 ruft ferner Ergebnisdaten aus der zu testenden Schaltung 1507 ab. Die Ergebnisdaten werden zu der Ergebnislogik 1504 geliefert. Die Ergebnislogik 1504 wendet eine Datenmaske auf die Ergebnisdaten an. Die Datenmaske kann dekomprimiert werden durch Ausführen einer parallelen Decodierung von Fibonacci-Codes. Die Ergebnislogik 1504 sammelt die maskierten Ergebnisdaten über ein Fenster aus Zyklen, um Ergebnissignaturen zu bilden. Die berechneten Ergebnissignaturen werden mit erwarteten Ergebnissignaturen verglichen. Wenn die Ergebnissignaturen nicht übereinstimmen, werden alle Ergebnisdaten für das fehlerhafte Fenster in dem Speicher 1503 zur Nachverarbeitung durch die Arbeitsstation 1501 gespeichert. Im Gegensatz dazu sind chipinterne Komprimierungstechniken nicht in der Lage, einen fehlerhaften Zyklus direkt zu identifizieren. Solche Techniken betreiben einen fehlerhaften Test erneut ohne Komprimierung, so dass alle Testantworten registriert werden können. Repräsentative Ausführungsbeispiele erfordern kein solches zusätzliches Testen und ermöglichen da durch, dass ein Schaltungstesten auf effizientere Weise auftritt als chipinterne Dekomprimierungstechniken. Chipinterne Ausgangskomprimierungstechniken basierend auf Kompaktierer-Bäumen zeigen diesen Punkt nicht.
  • 16 zeigt eine ATE 1600, die eine „Drosselungs"-Fähigkeit verwendet, um die Wiedergewinnung von Testdaten aus dem ATE-Speicher 1603 zu steuern, gemäß einem repräsentativen Ausführungsbeispiel. Genauer gesagt erhält der Testprozessor 1601 Testdaten 1604 aus dem ATE-Speicher 1603 zur Ausweitung und Kommunikation zu dem zu testenden Chip 1606. Die Drosselungslogik 1602 des Testprozessors 1601 verursacht, dass die Kommunikation der Testdaten 1604 zu geeigneten Zeiten temporär unterbrochen wird. Genauer gesagt wird ein Drosselsignal 1605 zu der ATE-Speichersteuerung kommuniziert, um die Kommunikation der Testdaten 1604 anzuhalten. Die Fähigkeit, das Herunterladen von Daten aus dem ATE-Speicher während der Operation der ATE 1600 einzustellen ist für eine Anzahl von Situationen vorteilhaft.
  • Genauer gesagt, wenn eine ATE in Kombination mit einer chipinternen Dekomprimierung verwendet wird, ist ein wiederholtes Problem die Tatsache, dass der Datenstrom aus der ATE während der Dekomprimierung eines Bitsatzes auf dem Chip nicht gestoppt wird. Daher, obwohl das theoretisch hohe Komprimierungsverhältnis auf dem Chip erreicht werden könnte, ist das Komprimierungsverhältnis in der Praxis begrenzt, da die ATE nicht gestoppt werden kann. Leerlaufzyklen könnten in dem ATE-Speicher 1606 gespeichert sein, um die Unfähigkeit zu adressieren, ATE-Operationen anzuhalten. Die Notwendigkeit, Leerlaufzyklen zu speichern, reduziert die Effektivität des Komprimierungsschemas. Zum Beispiel könnte eine einzelne Kombination eines Keim-Parameters und eines Zählwert-Parameters in 2048 Bits ausgedehnt werden (oder mehr, abhängig von der Implementierung des LFSR). Bei der chipinternen Dekomprimierung würde die Kombination dazu führen, dass eine große Anzahl von Leerlaufdatenbits aus dem Speicher wiedergewonnen wird. Im Gegensatz dazu können einige repräsentative Ausführungsbeispiele die „Drosselungs"-Fähigkeit während der LFSR-Expansion (-Erweiterung) einsetzen. Genauer gesagt stellen repräsentative Ausführungsbeispiele während Drosselungsoperationen das Wiedergewinnen von Testdaten aus dem Speicher ein, während andere Operationen auftreten. Dadurch wird die Datenmenge, die in dem ATE-Speicher 1603 gespeichert ist, reduziert.
  • Ferner kann die Drosselungsfähigkeit für andere Situationen verwendet werden. Zum Beispiel kann die eingebaute Selbsttest-(BIST-; built-in self-test)Schaltungsanordnung 1607, die in dem zu testenden Chip 1606 enthalten ist, Verzögerungen während einer Anzahl von Operationen verursachen. Während solcher Zeiten werden nützliche Testdaten nicht zwischen der ATE und dem zu testenden Chip 1606 kommuniziert. Wie vorangehend erwähnt wurde, ist es aufgrund des Entwurfs der ATEs nicht möglich, die Kommunikation von Bits zu dem zu testenden Chip 1606 zu stoppen. Genauer gesagt werden Bits weiter durch die Schnittstelle zu dem Chip kommuniziert, obwohl jene Bits nicht zu Testzwecken verwendet werden. Leerlaufbits könnten in dem ATE-Speicher gespeichert werden, um diese Situationen zu adressieren. Dies ist ein wiederholt auftretendes Problem bei dem Speichertest. Repräsentative Ausführungsbeispiele ermöglichen das Weglassen der Speicherung solcher Leerlaufbits in dem ATE-Speicher 1603 unter Verwendung der Drosselungsfähigkeit.
  • Es wird darauf hingewiesen, dass herkömmliche Wiederholungszählanweisungen (Anweisungen, die verursachen, dass ein Wert für mehrere Zyklen wiederholt wird) verwendet werden könnten, um die Anzahl von Leerlaufzyklen zu reduzieren, die in dem ATE-Speicher gespeichert sind. Lauflängenkomprimierungstechniken ermöglichen jedoch eine feinere Körnung von Lauflängen, weniger Mehraufwand pro Lauflänge und Erreichen daher höhere Komprimierungsverhältnisse.
  • 17 zeigt eine ATE 1700, die BIST-Verzögerungen und andere ähnliche Situationen gemäß einem repräsentativen Ausführungsbeispiel adressiert. Wie in 17 gezeigt ist, werden Testdaten 1701 von dem ATE-Speicher 1603 zu dem Testprozessor 1601 kommuniziert. Der Testprozessor 1601 expandiert die empfangenen Daten und kommuniziert die expandierten Daten zu dem zu testenden Chip 1606. Zum Zweck der Darstellung sei angenommen, dass der zu testende Chip 1606 eine BIST-Schaltungsanordnung 1607 einsetzt, die an vordefinierten Punkten eine Verzögerung von N Sekunden auferlegt. Testdaten 1701 werden Lauflängencodiert, um die Verzögerung zu adressieren. Genauer gesagt können ein oder mehrere Lauflängencodes in Testdaten 1701 platziert sein, um eine ausreichende Menge an dekomprimierten Daten zu erzeugen, die den N Sekunden Verzögerung entsprechen. Die Verwendung von Lauflängencodes, um solche Verzögerungen zu adressieren, ermöglicht ein besseres Komprimierungsverhalten als die Verwendung von Leerlaufzyklen.
  • 18 zeigt ein ATE-Teilsystem 1800, das eine wiederholte gruppenweise Verarbeitung einsetzt. Genauer gesagt werden Testdaten, die auf entsprechende Stifte angewendet werden sollen, durch eine Wiederholung-Pro-Gruppe-Logik 1801 empfangen. Die Wiederholung-Pro-Gruppe-Logik 1801 ist eine gemeinschaftlich verwendete Ressource, die verursacht, dass Testdaten über die mehreren Kanäle wiederholt werden. Zum Beispiel, wenn das Bitmuster „0001", das auf die Stifte angewendet werden soll, die den Kanälen 1, 2, 3 und 4 zugeordnet sind, mehrere Male wiederholt wird, könnte eine Zählwert-Wiederholen-Anweisung durch die Wiederholen-Pro-Gruppe-Logik 1801 angewendet werden, was verursacht, dass das erste Vorkommen des Bitmusters für mehrere Zyklen wiederholt wird. Die Schwierigkeit, die der gemeinschaftlich verwendeten Ressourcenarchitektur zugeordnet ist, ist die Abhängigkeit der Testdaten über mehrere Kanäle. Genauer gesagt, wenn ein Bitmuster von „1001" nach dem Bitmuster von „0001" auftritt, könnte aufgrund der Änderung bei einem einzelnen Bit die Zählwert-Wiederholen-Anweisung nicht verwendet werden.
  • 19 zeigt ein ATE-Teilsystem 1900, das ermöglicht, dass eine Pro-Stift-Verarbeitung gemäß einem repräsentativen Ausführungsbeispiel auftritt. Bei der Pro-Stift-Verarbeitung wird eine Dekomprimierungsfunktionalität für jeden relevanten Stift der zu testenden Schaltung eingesetzt, die Testdaten empfängt. Wie in 19 gezeigt ist, ist eine Mehrzahl von Dekomprimierungsmaschinen 1901-1 bis 1901-N bereitgestellt. Jede Dekomprimierungsmaschine 1901 empfängt unabhängig komprimierte Testmusterdaten und erzeugt dekomprimierte Testmusterdaten. Zum Beispiel kann jede der Maschinen 1901 ein LFSR und eine verwandte Schaltungsanordnung zum Erzeugen dekomprimierter Testdaten umfassen. Alternativ kann jede der Maschinen 1901 Parallellauflängendecodierer umfassen, um dekomprimierte Testdaten zu erzeugen. Die Testdaten können in Vektorpuffern 1902-1 bis 1902-N zwischengespeichert werden. Die Daten, die in den Vektorpuffer 1902-1 bis 1902-N gespeichert sind, können durch Kanäle 1903-1 bis 1903-N zu entsprechenden Stiften der zu testenden Schaltung unter der Steuerung einer geeigneten Testdatenanwendungslogik kommuniziert werden. Die Fähigkeit, eine Pro-Stift-Verarbeitung einzusetzen, ermöglicht einen größeren Grad an Flexibilität für die Komprimierungscodierung und somit einen größeren Grad einer Komprimierungsleistung.
  • Einige repräsentative Ausführungsbeispiele können eine Anzahl von Vorteilen liefern. Einige repräsentative Ausführungsbeispiele sind vorteilhaft im Vergleich zu chipinternen Komprimierungstechniken, da das Ausführen einer Dekomprimierung mit der ATE keine Modifikation an dem Entwurf einer zu testenden Schaltung erfordert. Dementsprechend erhöhen einige repräsentative Ausführungsbeispiele das Risiko nicht, das der Fertigstellung des Entwurfs der Schaltung zugeordnet ist. Ferner ermöglichen einige repräsentative Ausführungsbeispiele, dass hoch kompaktierte Testmus ter komprimiert werden, wodurch Testzeiten innerhalb angemessener Bereiche gehalten werden. Einige repräsentative Ausführungsbeispiele sind vorteilhaft, da das Codieren linear abhängiger Testdaten ohne in Konflikt stehender Werte zusätzlich zu linear unabhängigen Testdaten den erreichten Komprimierungsbetrag erhöht. Der größere Betrag an Komprimierung ermöglicht, dass hoch kompaktierte Testsätze codiert werden, wodurch der Betrag an Testzeit verringert wird. Zusätzlich dazu ermöglichen einige repräsentative Ausführungsbeispiele, dass eine Dekomprimierung in Echtzeit auftritt, gleichzeitig zu der Anwendung von Testdaten auf eine zu testende Schaltung durch eine ATE durch Verwenden eines geeignet implementierten LFSR und/oder paralleler Lauflängendecodierer. Genauer gesagt kann eine Bitstromrate von 400 MHz oder mehr unter Verwendung einiger repräsentativer Ausführungsbeispiele erreicht werden.

Claims (23)

  1. Eine Automatische-Testausrüstung-Vorrichtung (ATE-Vorrichtung) zum Testen einer Schaltung, die folgende Merkmale aufweist: einen Speicher (1503), der lauflängencodierte Testmuster speichert; eine Mehrzahl von Decodierern (800) zum parallelen Decodieren jeweiliger Codewörter, um Läufe von Bits zu erzeugen; eine Logik zum Segmentieren (1502) von Codewörtern in den lauflängencodierten Testmustern und zum Liefern von segmentierten Codewörtern zu der Mehrzahl von Decodierern; eine Logik zum Zusammenfügen (1505) von Läufen von der Mehrzahl von Decodierern, um Testmuster zu bilden; und eine Logik zum Anwenden (1506) der Testmuster auf die Schaltung.
  2. Die ATE-Vorrichtung gemäß Anspruch 1, bei der die Codewörter Codewörter mit variabler Länge sind.
  3. Die ATE-Vorrichtung gemäß Anspruch 2, bei der die Codewörter Fibonacci-Codewörter sind.
  4. Die ATE-Vorrichtung gemäß Anspruch 1, bei der der Speicher (1503) Testmuster in einem komprimierten Format speichert, das Keimparameter und entsprechende Zählwertparameter umfasst; die Mehrzahl von Decodierern ein Linearrückkopplungsschieberegister (LFSR) (200) zum Erzeugen eines Bitstroms bildet; und die Logik zum Segmentieren eine Logik zum Steuern des LFSR (1502) ist, wobei die Logik zum Steuern das LFSR mit Binärwerten gemäß einem jeweiligen Keimparameter lädt und das LFSR betreibt, um eine Anzahl von Bits zu erzeugen, die gleich einem entsprechenden Zählwertparameter ist, der dem jeweiligen Keimparameter zugeordnet ist.
  5. Die ATE-Vorrichtung gemäß Anspruch 4, bei der das LFSR durch ein nichtprimitives Polynom gekennzeichnet ist.
  6. Die ATE-Vorrichtung gemäß Anspruch 4, bei der das LFSR Rückkopplungs- und Vorwärts kopplungsverbindungen umfasst.
  7. Die ATE-Vorrichtung gemäß Anspruch 4, bei der die Testmuster, die in einem komprimierten Format gespeichert sind, zumindest einen Keimparameter und einen jeweiligen Zählwertparameter umfassen, die mehrere Testmuster codieren, die über mehrere Taktzyklen der Schaltung hinweg angewandt werden sollen.
  8. Ein Verfahren zum Betreiben einer automatischen Testausrüstung (ATE), das folgende Schritte aufweist: Speichern von lauflängencodierten Testmustern in einem Speicher der ATE (1500); Segmentieren von Codewörtern aus den lauflängencodierten Testmustern; Liefern der segmentierten Codewörter zu jeweiligen Lauflängendecodierern (800) der ATE, um parallel eine Mehrzahl von Läufen von Binärsymbolen zu erzeugen; Zusammenfügen der Mehrzahl von Läufen von Binärsymbolen, um einen Bitstrom zu bilden; Anwenden des Bitstroms auf eine zu testende Schaltung (1507).
  9. Das Verfahren gemäß Anspruch 8, bei dem die Codewörter Fibonacci-Codewörter sind.
  10. Das Verfahren gemäß Anspruch 8, bei dem ausgewählte lauflängencodierte Testmuster Lauflängencodes umfassen, die auferlegten Verzögerungen entsprechen, die einer Selbsttestschaltungsanordnung der zu testenden Schaltung zugeordnet sind.
  11. Das Verfahren gemäß Anspruch 8, das ferner folgende Schritte aufweist: Empfangen von Stimulusmustern für eine Schaltung von einem Automatisch-Testmuster-Generator (1511), wobei die Stimulusmuster bedeutsame Bits und bedeutungslose Bits umfassen; Erzeugen von linearen Gleichungen, die durch Positionen der bedeutsamen Bits relativ zu einem Betrieb eines Linearschieberückkopplungsregisters (LFSR) (200) definiert sind; und Bestimmen von Keimparametern und Zählwertparametern aus den linearen Gleichungen und den bedeutsamen Bits, wobei jeder Keimparameter einen Satz von Anfangszuständen definiert, der in das LFSR geladen werden soll, um zumindest einen Teilsatz der bedeutsamen Bits zu erzeugen, und jeder Zählwertparameter einer Position einer linearen Abhängigkeit in den linearen Gleichungen zugeordnet ist, die einem Konfliktwert eines bedeutsamen Bits entspricht.
  12. Das Verfahren gemäß Anspruch 11, das ferner folgende Schritte aufweist: Erzeugen von Binärtestdaten durch ein Anwenden zumindest eines der Keimparameter auf das LFSR, um eine Anzahl von Bits zu erzeugen, die durch einen jeweiligen Zählwertparameter definiert ist; Anwenden der Binärtestdaten auf einen Fehlersimulator; Identifizieren von Fehlern, die durch eine Peripherabdeckung der Binärtestdaten stimuliert werden; und Fallenlassen der Fehler, die durch die Peripherabdeckung stimuliert werden, aus einer Fehlerliste.
  13. Das Verfahren gemäß Anspruch 12, das ferner folgenden Schritt aufweist: wiederholtes Durchführen des Empfangens, Erzeugens linearer Gleichungen, Bestimmens, Erzeugens binärer Testdaten, Anwendens, Identifizierens und Fallenlassens unter Verwendung sich fortlaufend erhöhender Anzahlen von Stimulusmustern.
  14. Das Verfahren gemäß Anspruch 11, bei dem das Bestimmen ein Bestimmen umfasst, ob eine der linearen Gleichungen eine lineare Kombination von vorherigen der linearen Gleichungen ist.
  15. Das Verfahren gemäß Anspruch 14, das ferner folgenden Schritt aufweist: Bestimmen, ob die eine der linearen Gleichungen einem bedeutsamen Bit zugeordnet ist, das einen Wert besitzt, der mit einem Wert eines anderen bedeutsamen Bits in Konflikt steht, das den vorherigen der linearen Gleichungen zugeordnet ist.
  16. Das Verfahren gemäß Anspruch 15, das ferner folgenden Schritt aufweist: Setzen eines Werts von einem der Zählwertparameter gemäß einer Bestimmung, dass die eine der linearen Gleichungen einem bedeutsamen Bit zugeordnet ist, das einen Konfliktwert besitzt.
  17. Das Verfahren gemäß Anspruch 11, bei dem das LFSR ein nichtprimitives Polynom ist.
  18. Das Verfahren gemäß Anspruch 11, bei dem das LFSR Rückkopplungs- und Vorwärtskopplungsverbindungen aufweist.
  19. Das Verfahren gemäß Anspruch 11, bei dem das LFSR eine Länge von zumindest 64 Bits aufweist.
  20. Das Verfahren gemäß Anspruch 8, bei dem das Speichern von lauflängencodierten Testmustern ein Speichern komprimierter Testmuster in einem Speicher der ATE (1500) umfasst, wobei die komprimierten Testmuster Keimparameter und entsprechende Zählwertparameter aufweisen; und wobei das Verfahren ferner folgende Schritte aufweist: Wiedererlangen eines jeweiligen Keimparameters aus den komprimierten Testmustern; Initialisieren eines Linearrückkopplungsschieberegisters (LFSR) (200) in der ATE gemäß dem wiedererlangten Keimparameter; und Betreiben des LFSR eine Anzahl von Taktzyklen lang, die durch einen jeweiligen Zählwertparameter definiert ist, um einen Bitstrom zu erzeugen.
  21. Das Verfahren gemäß Anspruch 20, bei dem das Betreiben eine Mehrzahl von Testmustern für die zu testende Schaltung aus dem wiedererlangten Keimparameter und dem jeweiligen Zählwertparameter erzeugt.
  22. Das Verfahren gemäß Anspruch 20, das ferner folgenden Schritt aufweist: Bewirken, dass eine Wiedererlangung von Testdaten aus einem Speicher der ATE vorübergehend anhält.
  23. Das Verfahren gemäß Anspruch 22, bei dem das Bewirken, dass eine Wiedererlangung von Testdaten vorübergehend anhält, ansprechend auf eine Verzögerung auftritt, die einer Selbsttestschaltungsanordnung der zu testenden Schaltung zugeordnet ist.
DE602004009284T 2004-04-05 2004-11-18 Systeme und Verfahren um automatisch generiertes Testmuster zu verarbeiten Active DE602004009284T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US818101 2004-04-05
US10/818,101 US7386777B2 (en) 2004-04-05 2004-04-05 Systems and methods for processing automatically generated test patterns

Publications (2)

Publication Number Publication Date
DE602004009284D1 DE602004009284D1 (de) 2007-11-15
DE602004009284T2 true DE602004009284T2 (de) 2008-08-21

Family

ID=34912679

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004009284T Active DE602004009284T2 (de) 2004-04-05 2004-11-18 Systeme und Verfahren um automatisch generiertes Testmuster zu verarbeiten

Country Status (4)

Country Link
US (1) US7386777B2 (de)
EP (1) EP1584937B1 (de)
JP (1) JP2005292126A (de)
DE (1) DE602004009284T2 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2375695B (en) * 2001-05-19 2004-08-25 At & T Lab Cambridge Ltd Improved power efficency in microprocessors
AU2003255873A1 (en) * 2002-08-14 2004-03-03 Nokia Corporation Layered compression architecture for multi-hop header compression
JP4279751B2 (ja) * 2004-08-23 2009-06-17 株式会社アドバンテスト デバイスの試験装置及び試験方法
KR100708462B1 (ko) * 2005-05-27 2007-04-18 연세대학교 산학협력단 천이감시 윈도우를 이용한 lfsr 천이수 감소방법 및 그장치
US7412636B2 (en) * 2005-08-23 2008-08-12 Oc Applications Research Llc Scan string segmentation for digital test compression
GB2435334A (en) * 2006-02-20 2007-08-22 Graeme Roy Smith Compression and decompression of data stream using a linear feedback shift register
US7730373B2 (en) * 2006-09-12 2010-06-01 Nec Laboratories America, Inc. Test data compression method for system-on-chip using linear-feedback shift register reseeding
TWI312075B (en) * 2006-11-30 2009-07-11 Ind Tech Res Inst Scan test data compression method and decoding apparatus for multiple-scan-chain designs
SE533185C2 (sv) 2007-02-16 2010-07-13 Scalado Ab Metod för behandling av en digital bild samt bildrepresentationsformat
SE531398C2 (sv) * 2007-02-16 2009-03-24 Scalado Ab Generering av en dataström och identifiering av positioner inuti en dataström
US20080270848A1 (en) * 2007-04-26 2008-10-30 Carli Connally Method and Apparatus for Displaying Pin Result Data
US20100077211A1 (en) * 2008-09-24 2010-03-25 Apple Inc. Bit-error rate tester with pattern generation
TWI403746B (zh) * 2008-10-22 2013-08-01 國立臺灣大學 測試圖案最佳化的方法
US8214170B2 (en) * 2009-01-15 2012-07-03 International Business Machines Corporation Test pattern compression
KR20100099428A (ko) * 2009-03-03 2010-09-13 삼성전자주식회사 단말기 간 자동 동작 제어 방법 및 이를 지원하는 단말기
CN101692117B (zh) * 2009-09-16 2012-04-18 上海电力学院 一种低功耗激励产生系统
JP2011089833A (ja) * 2009-10-21 2011-05-06 Renesas Electronics Corp 半導体装置ならびに半導体装置のテストパターン生成方法
CN101762782B (zh) * 2010-01-13 2012-11-14 詹文法 系统芯片外建自测试数据的压缩方法及专用解码单元
US8077063B2 (en) 2010-01-18 2011-12-13 Freescale Semiconductor, Inc. Method and system for determining bit stream zone statistics
US8718998B2 (en) * 2011-03-17 2014-05-06 Apple Inc. Identifying initial don't care memory elements for simulation
EP2597573B1 (de) * 2011-11-28 2018-08-29 Tata Consultancy Services Limited Testdatenerzeugung
US9311201B2 (en) 2012-08-22 2016-04-12 International Business Machines Corporation Real-time rule engine for adaptive testing of integrated circuits
US8972806B2 (en) * 2012-10-18 2015-03-03 Applied Micro Circuits Corporation Self-test design for serializer / deserializer testing
US9274911B2 (en) 2013-02-21 2016-03-01 Advantest Corporation Using shared pins in a concurrent test execution environment
US9514844B2 (en) 2014-08-26 2016-12-06 Globalfoundries Inc. Fast auto shift of failing memory diagnostics data using pattern detection
CN113393892A (zh) * 2020-03-11 2021-09-14 长鑫存储技术有限公司 控制芯片的测试方法及相关设备
CN113391184A (zh) * 2020-03-11 2021-09-14 长鑫存储技术有限公司 控制芯片的测试方法及相关设备
US20230153422A1 (en) * 2021-11-18 2023-05-18 Rocksavage Technology, Inc. Method, System and Apparatus for Detecting Malicious Modifications to Semiconductor Devices

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4679094A (en) * 1986-10-14 1987-07-07 The Associated Press Method for compression and transmission of video information
EP0460352B1 (de) * 1990-06-07 1995-11-02 International Business Machines Corporation System zur Reduzierung von Prüfdatenspeichern
DE4305442C2 (de) 1993-02-23 1999-08-05 Hewlett Packard Gmbh Verfahren und Vorrichtung zum Erzeugen eines Testvektors
US5991909A (en) * 1996-10-15 1999-11-23 Mentor Graphics Corporation Parallel decompressor and related methods and apparatuses
US6661839B1 (en) * 1998-03-24 2003-12-09 Advantest Corporation Method and device for compressing and expanding data pattern
US6684358B1 (en) 1999-11-23 2004-01-27 Janusz Rajski Decompressor/PRPG for applying pseudo-random and deterministic test patterns
US6327687B1 (en) * 1999-11-23 2001-12-04 Janusz Rajski Test pattern compression for an integrated circuit test environment
US6757323B1 (en) * 2000-05-16 2004-06-29 Robert Alan Fleming Rapid signal acquisition by spread spectrum transceivers
US20020093356A1 (en) * 2000-11-30 2002-07-18 Williams Thomas W. Intelligent test vector formatting to reduce test vector size and allow encryption thereof for integrated circuit testing
US6732312B2 (en) * 2001-03-09 2004-05-04 Agilent Technologies, Inc. Test vector compression method
JP2002350516A (ja) * 2001-05-23 2002-12-04 Ando Electric Co Ltd Icテスタ、icテスト方法、icテストプログラムおよびicテストプログラムを記録した記録媒体
US6950974B1 (en) * 2001-09-07 2005-09-27 Synopsys Inc. Efficient compression and application of deterministic patterns in a logic BIST architecture
JP2003121499A (ja) * 2001-10-09 2003-04-23 Hitachi Ltd 組込みテスト機能付き半導体集積回路、テストコード生成プログラムから成る電子設計データを保存する記憶媒体、該半導体集積回路のテスト方法、テストコード生成自動化方法及びそのプログラム
JP2003296104A (ja) * 2002-04-05 2003-10-17 Hitachi Ltd プロセッサおよびアセンブラ/コンパイラ
JP4031954B2 (ja) * 2002-06-11 2008-01-09 富士通株式会社 集積回路の診断装置および診断方法
US7131046B2 (en) 2002-12-03 2006-10-31 Verigy Ipco System and method for testing circuitry using an externally generated signature
US7200784B2 (en) * 2003-01-24 2007-04-03 On-Chip Technologies, Inc. Accelerated scan circuitry and method for reducing scan test data volume and execution time

Also Published As

Publication number Publication date
US7386777B2 (en) 2008-06-10
US20050229062A1 (en) 2005-10-13
JP2005292126A (ja) 2005-10-20
EP1584937B1 (de) 2007-10-03
EP1584937A1 (de) 2005-10-12
DE602004009284D1 (de) 2007-11-15

Similar Documents

Publication Publication Date Title
DE602004009284T2 (de) Systeme und Verfahren um automatisch generiertes Testmuster zu verarbeiten
DE60018101T2 (de) Testmuster-kompression für eine testumgebung von integrierten schaltungen
DE10343227A1 (de) System und Verfahren zum Testen eines Schaltungsaufbaus unter Verwendung einer extern erzeugten Signatur
US5574733A (en) Scan-based built-in self test (BIST) with automatic reseeding of pattern generator
DE60116046T2 (de) Eingebaute Selbsttestschaltung mit einem Schieberegister mit linearer Rückkopplung
DE60030480T2 (de) Gerät und verfahren zum selektiven verdichten von testergebnissen
DE60220511T2 (de) Verfahren und system zur optimierung der testkosten und deaktivierungsdefekte für scan- und bist-speicher
DE60211659T2 (de) Verfahren und vorrichtung zur diagnose von ausfällen in einer integrierten schaltung unter verwendung von techniken des typs design-for-debug (dfd)
DE60025789T2 (de) Logische eingebaute Selbstprüfung (LBIST) Steuerschaltungen, Systeme und Verfahren mit automatischer Bestimmung der maximalen Abtastkettenlänge
DE19855488A1 (de) Testmustergenerator mit verbesserter Testsequenzverdichtung
DE602005003302T2 (de) Automatischer mit Geschwindigkeit ablaufender Test auf Fehler von Logikblöcken unter Verwendung von BIST-Logikschaltungen
DE19952272A1 (de) Verfahren und System zum Prüfen von auf eingebetteten Bausteinen basierenden integrierten Systemchip-Schaltungen
US8086925B2 (en) Method and system for LBIST testing of an electronic circuit
DE602004009329T2 (de) Verfahren und system zum selektiven maskieren von testantworten
Bayraktaroglu et al. Concurrent application of compaction and compression for test time and data volume reduction in scan designs
DE602004009784T2 (de) Datenkomprimierung
US8347159B2 (en) Compression based on deterministic vector clustering of incompatible test cubes
DE10210264B4 (de) Ein Testvektorkomprimierungsverfahren
US6789220B1 (en) Method and apparatus for vector processing
DE60306164T2 (de) Verfahren und kontrolllogik zum ansteuern von mehreren taps (test access ports) über einen einzigen tap
DE102015110144B4 (de) Chip und Verfahren zum Testen einer Verarbeitungskomponente eines Chips
DE102005046588B4 (de) Vorrichtung und Verfahren zum Test und zur Diagnose digitaler Schaltungen
DE10250875B4 (de) Vorrichtung und Verfahren zum Konfigurieren einer integrierten Schaltung mit eingebettetem Speicher
DE10335809B4 (de) Integrierte Schaltung mit einem zu testenden elektronischen Schaltkreis und Testsystem-Anordnung zum Testen der integrierten Schaltung
Vranken et al. ATPG padding and ATE vector repeat per port for reducing test data volume

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

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

8328 Change in the person/name/address of the agent

Representative=s name: SCHOPPE, ZIMMERMANN, STOECKELER & ZINKLER, 82049 P

8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1584937

Country of ref document: EP

Representative=s name: SCHOPPE, ZIMMERMANN, STOECKELER, ZINKLER & PARTNER