DE10210264B4 - Ein Testvektorkomprimierungsverfahren - Google Patents

Ein Testvektorkomprimierungsverfahren Download PDF

Info

Publication number
DE10210264B4
DE10210264B4 DE10210264A DE10210264A DE10210264B4 DE 10210264 B4 DE10210264 B4 DE 10210264B4 DE 10210264 A DE10210264 A DE 10210264A DE 10210264 A DE10210264 A DE 10210264A DE 10210264 B4 DE10210264 B4 DE 10210264B4
Authority
DE
Germany
Prior art keywords
test vector
elements
random sequence
segment
sequence
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 - Fee Related
Application number
DE10210264A
Other languages
English (en)
Other versions
DE10210264A1 (de
Inventor
Ajay Cupertino Khoche
Jochen Sunnyvale Rivoir
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
Publication of DE10210264A1 publication Critical patent/DE10210264A1/de
Application granted granted Critical
Publication of DE10210264B4 publication Critical patent/DE10210264B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318335Test pattern compression or decompression

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Verfahren (100) zum Komprimieren eines Testvektors, das folgende Schritte umfaßt:
Erzeugen (102) des Testvektors, wobei der Testvektor eine Sequenz von Elementen aufweist, wobei zumindest ein Element einen „Frei"-Wert umfaßt, der einen „Don't-Care"-Zustand anzeigt;
Erzeugen (104) einer Zufallssequenz von Elementen mit einer gleichen Anzahl von Elementen wie der Testvektor;
sequentielles Segmentieren (106) des Testvektors in Segmente der Testvektorelemente;
gleichartiges Segmentieren (106) der Zufallssequenz in Segmente der Zufallssequenzelemente, die den Testvektorsegmenten entsprechen;
Vergleichen (108) jedes Segments des Testvektors mit einem entsprechenden Segment der Zufallssequenz;
wiederholtes Betrachten (110a) jedes Segments des Testvektors mit einem entsprechenden Segment der Zufallssequenz auf Übereinstimmung oder Nichtübereinstimmung und
– bei Übereinstimmung sequentielles Einfügen (110b) eines ersten Flagwerts anstelle der Elemente des übereinstimmenden Segments in einer ersten Sequenz oder
– bei Nichtübereinstimmung sequentielles Einfügen (110b) eines zweiten Flagwerts und nachfolgendes Einfügen der Elemente des nicht übereinstimmenden Testvektorsegments in die erste Sequenz,...

Description

  • Die Erfindung bezieht sich auf automatische Prüfeinrichtungen zum Testen komplexer Systeme und integrierter Schaltungen. Insbesondere bezieht sich die Erfindung auf die Erzeugung und Speicherung von Testvektoren, die bei automatischen Prüfeinrichtungen verwendet werden.
  • Systeme und die integrierten Schaltungen (ICs; ICs = integrated circuits), oder Halbleiter, die diese Systeme jeweils bilden, entwickeln sich laufend weiter und werden immer komplexer. Die Zunahme an Komplexität, die in der Vergangenheit bezeugt wurde und in der Zukunft erwartet wird, hat zu der ausgedehnten und weit verbreiteten Verwendung von automatischen Prüfeinrichtungen (ATE = Automated Test Equipment) zum Testen dieser Systeme und ihrer Bestandteilschaltungen geführt. In der Tat hat sich die Systemkomplexität in einigen Fällen in einem solchen Maß weiter entwickelt, daß genaues und vollständiges manuelles Testen entweder unpraktisch oder sogar unmöglich ist. Zusätzlich dazu, daß es im Fall von komplexen Systemen für genaues und relativ vollständiges Testen praktisch ist, kann automatisches Testen unter Verwendung von ATEs die Kosten des Erzeugens eines Systems und/oder dessen Bestandteile wesentlich reduzieren und tut dies auch. Eine Tendenz zum Verwenden von ATEs zum Testen auch von einfachen Systemen und ICs ist seit einiger Zeit offensichtlich. Heutzutage ist es angemessen zu sagen, daß buchstäblich alle großen System- und großen IC-Fertigungslinien irgendeine Form von ATE verwenden.
  • Wie es in 1A als Blockdiagramm dargestellt ist, umfaßt eine typische ATE 10 eine zentrale Verarbeitungseinheit (CPU = Central Processing Unit) 14, einen Speicher 12, eine Eingabe/Ausgabe (I/O = Input/Output) 16 -Hardware und normalerweise eine Form von Betreiberschnittstelle 18. Die CPU 14 steuert den Betrieb der ATE 10 unter Verwendung eines Testvektors, der in dem Speicher 12 gespeichert ist. Der Testvektor, der oft durch eine externe Quelle 20 erzeugt wird, wird zu der ATE übertragen und unter Verwendung der I/O-Hardware 16 in den Speicher 12 geladen. Während des automatischen Tests liest die CPU 14 den Testvektor von dem Speicher und steuert die I/O-Hardware 16, um einen Test des zu testenden Geräts 30 (DUT = Device Under Test) zu bewirken. Der Betreiber tritt durch die Betreiberschnittstelle 18 mit der ATE in Wechselwirkung. Der Einfachheit halber wird das System oder die integrierte Schaltung, die getestet wird, hierin nachfolgend als das DUT bezeichnet.
  • Wie hierin oben angemerkt wurde, umfaßt ein typischer automatischer Test durch eine ATE einen Testvektor. Ein Testvektor ist eine Sequenz von Testoperationen, die durchgeführt werden sollen, und/oder von Testwerten, die durch die ATE an das zu testende System oder die zu testende integrierte Schaltung angelegt werden sollen. Bei den meisten modernen ATEs ist der Testvektor eine binäre Sequenz, aufgrund der überwältigenden Verwendung von digitalen Computern und Speichern in ATEs und der Tendenz, daß die meisten komplexen Systeme digital sind. Jeder Testvektor, der durch die ATE verwendet wird, wird normalerweise erzeugt, indem zuerst eine Entwurfsdatenbank oder Spezifikation berücksichtigt wird, die die Funktionalität des zu testenden Systems oder der zu testenden integrierten Schaltung identifiziert. Ein Testvektor für ein bestimmtes DUT wird durch „Abbilden" oder Übersetzen des gewünschten DUT-Funktionalitätstestens in die Funktionalitätstestfähigkeit der ATE erzeugt. Der Testvektor wird dann typischerweise zu der ATE übertragen und in dem ATE-Speicher gespeichert. Der Testvektor steuert nachfolgend den Test des DUT durch die ATE.
  • 1B stellt ein Flußdiagramm der Schritte bei dem herkömmlichen Verfahren zum Durchführen eines automatischen Tests eines DUT unter Verwendung einer ATE 10 dar. Das Verfahren des automatischen Testens umfaßt den Schritt des Be rücksichtigens 40 von Entwurfsspezifikationen. Die Entwurfsspezifikation definiert die Leistungsfähigkeit des DUT und trägt dazu bei, die Tests zu bestimmen, die während des automatischen Testens durchgeführt werden sollten. Das Verfahren des automatischen Testens umfaßt ferner den Schritt des Erzeugens 42 eines Testvektors. Typischerweise verwendet der Schritt des Erzeugens eines Testvektors eine Vorrichtung oder ein Computerprogramm, das als automatischer Teststrukturgenerator (ATPG; ATPG = automated test pattern. generator) bezeichnet wird, der Informationen von der Entwurfsspezifikation verwendet, um Testvektoren zu erzeugen, die das DUT angemessen testen. Bei dem herkömmlichen Verfahren des automatischen Testens folgt dem Schritt des Erzeugens eines Testvektors 42 der Schritt des Erzeugens 44 eines vollständig spezifizierten Testvektors. Der Testvektor, der durch den Schritt des Erzeugens 42 erzeugt wurde, weist typischerweise eine Anzahl, oft eine große Anzahl von sogenannten „Don't-Care-Zuständen" bzw. Zustände ohne spezielle Bedeutung oder „Frei"-Zuständen auf. Der Schritt des Erzeugens 44 eines vollständig spezifizierten Testvektors weist den „Frei"-Zuständen in dem Testvektor eindeutige Werte zu. Diese Zuweisung wird häufig durch Verwenden einer Zufallssequenz durchgeführt, die durch einen Schritt des Erzeugens 43 einer Zufallssequenz erzeugt wird.
  • Nach dem Schritt des Erzeugens 44 des vollständig spezifizierten Testvektors des herkömmlichen Verfahrens des automatischen Testens folgt manchmal ein optionaler Schritt des Komprimierens 46 des vollständig spezifizierten Testvektors, um die Größe des Testvektors zu reduzieren. Das Verfahren des automatischen Testens umfaßt ferner den Schritt des Übertragens und Speicherns 48 des vollständig spezifizierten und möglicherweise komprimierten Testvektors in dem Speicher 12 der ATE 10. Die ATE 10 verwendet den gespeicherten vollständig spezifizierten Testvektor in dem Schritt des Testens 52, um das Verfahren des automatischen Testens abzuschließen. Falls der vollständig spezifizierte Testvektor komprimiert wurde, muß er in einem Schritt des Dekomprimierens 50 des vollständig spezifizierten Testvektors dekomprimiert werden. Die optionalen Schritte des Komprimierens 46 und Dekomprimierens 50 sind in 1B durch Kästchen mit gestrichelten Linien dargestellt.
  • Wie oben erwähnt wurde, ist der Testvektor eine binäre Sequenz. Ein Großteil der folgenden Erörterung nimmt an, daß das Testen von digitalen Geräten mit einem binären Testvektor keinen Verlust der Allgemeingültigkeit bedeutet. Ein Fachmann auf diesem Gebiet könnte die hierin nachfolgend dargelegten Konzepte leicht auf eine digitale Testsituation ausdehnen. Die Testfunktionalität der ATE überschreitet normalerweise das erforderliche Funktionalitätstesten für ein bestimmtes DUT. Außerdem müssen nicht alle möglichen Kombinationen von Eingängen und Ausgängen bei einem typischen DUT getestet werden, um zu verifizieren, daß dasselbe betriebsfähig ist, und/oder um Fehler zu lokalisieren. Das Ergebnis ist, daß die Testvektoren, zusätzlich zu spezifizierten Zuständen (d.h. denjenigen mit eindeutig spezifizierten Werten) stets eine große Anzahl von unspezifizierten oder „Frei"-Zuständen umfassen. In den meisten Situationen gibt es bei einem bestimmten Testvektor viel mehr „Frei"-Zustände als spezifizierte Zustände.
  • Wie er hierin verwendet wird, ist ein spezifizierter Zustand ein Element des Testvektors, dem als Folge des Abbildens der DUT-Testfunktionalität in die ATE-Testfunktionalität ein spezifischer Wert zugewiesen ist. Ein „Frei"-Zustand ist ein Element in dem Testvektor, das nicht durch die DUT-zu-ATE-Funktionalitätsabbildung spezifiziert ist, und daher jeden Wert annehmen kann, nur begrenzt durch die Beschränkungen, die einem Element in dem Testvektor auferliegen. In dem Fall eines binären Testvektors ist der spezifizierte Zustand beispielsweise entweder eine „1" oder eine „0", wie es durch die Abbildung spezifiziert ist. Der „Frei"-Zustand kann entweder ein „1" oder eine „0" sein und ist durch die Abbildung nicht spezifiziert.
  • Wie hierin oben erörtert wurde, wird der Testvektor normalerweise unter Verwendung einer Vorrichtung oder eines Computerprogramms, das als ein ATPG bekannt ist, aufgebaut oder erzeugt. Für einen digitalen Fall erzeugt der ATPG den Testvektor typischerweise auf der Basis der DUT-Testspezifikation unter Verwendung einer Dreipegellogik, die aus {1, 0, X} besteht, wobei X ein „Frei"-Wert ist, der einen „Frei"-Zustand anzeigt. Somit ist der Testvektor anfänglich mit einer Sequenz von „1"ern, „0"en und „X" gefüllt. Das Verfahren, das definiert, wie der ATPG entscheidet, einen Testvektor aufzubauen, geht über den Umfang dieser Erörterung hinaus. Im allgemeinen versucht der ATPG jedoch, einen Testvektor aufzubauen, der die Wahrscheinlichkeit des Findens aller potentieller Fehler maximiert, während er gleichzeitig die Testzeit für ein bestimmtes DUT minimiert.
  • Wenn der Testvektor zu dem ATE-Speicher übertragen und dort gespeichert wird, muß derselbe einen eindeutigen Wert aufweisen. Daher muß der ATPG allen „Frei"-Zuständen einen bestimmenden Wert zuweisen. Typischerweise wird die Zuweisung eines Werts zu einem „Frei"-Zustand durch den ATPG unter Verwendung eines Zufallssequenzgenerators erreicht. Der Zufallssequenzgenerator „füllt" die „Frei"-Zustände des Testvektors mit Zufallswerten. In dem Fall eines binären Testvektors, beispielsweise, wird den spezifizierten Zuständen der geeignete Wert zugewiesen, entweder „1" oder „0", und dann wird ein Zufallssequenzgenerator berücksichtigt, der eine zufallsbinäre Zeichenfolge erzeugt, um die „Frei"-Zustände zu füllen.
  • 2 stellt ein Beispiel eines typischen Testvektors dar, wie er durch den ATPG erzeugt wird, und den Prozeß des Füllens der „Frei"-Zustände unter Verwendung einer Zufallssequenz, um einen herkömmlichen, vollständig spezifizierten Testvektor zu erzeugen. In der ersten Zeile 81 von 2 ist eine Sequenz, die durch den ATPG erzeugt wird, ein schließlich „Frei"-Zuständen dargestellt. In der nächsten Zeile 82 ist eine binäre Zufallssequenz, wie sie durch den Zufallssequenzgenerator erzeugt werden kann, gezeigt. Schließlich ist in der letzten Zeile 83 von 2 der vollständig spezifizierte Testvektor dargestellt, wie er nach dem Ersetzen der „Frei"-Zustände mit entsprechenden Bits von der Zufallssequenz existiert. Es ist die letzte Sequenz der letzten Zeile 83 von 2, die herkömmlicherweise zu dem Speicher der ATE übertragen und dort gespeichert wird. Der gefüllte Testvektor wird hierin als ein „vollständig spezifizierter" Testvektor bezeichnet, um ihn von dem Testvektor zu unterscheiden, der „Frei"-Zustände umfaßt.
  • Herkömmlicherweise wird der vollständig spezifizierte Testvektor zu dem Speicher der ATE übertragen und in demselben gespeichert. Testvektoren können sehr groß sein und können eine beträchtliche Menge an Speicher in der ATE besetzen. In vielen Fällen kann der Speicher, der notwendig ist, um die Testvektoren in der ATE zu speichern, bis zu 50 % der Kosten der ATE ausmachen. Selbst wenn die ATE-Speicherkosten kein wesentlicher Faktor sind, kann darüber hinaus, die Zeit im Zusammenhang mit dem Übertragen des Testvektors zu dem ATE-Speicher beträchtlich sein. Zusätzlich kann ein Gerät mehr Speicher zum Speichern von Testvektoren erfordern, als in einer bestimmten ATE verfügbar ist. Daher ist es vorteilhaft, Lösungsansätze zu bedenken, um den Testvektor zu komprimieren, um die Menge an Speicher zu minimieren, die für einen bestimmten Testvektor benötigt wird.
  • Herkömmliche Testvektorkomprimierungslösungsansätze umfassen (i) das Verwenden einer Form von Codierung auf dem Testvektor und in (ii) Aufteilen des Testvektors in ein Paar von Vektoren, einen für Datenbits und einen anderen zum Enthalten eines Steuerprogramms. Der erste dieser beiden Lösungsansätze lehnt sich an eine herkömmliche Komprimierungstechnologie an, die in Technologiebereichen, wie z.B. Plattenlaufwerken und Digitalkommunikation, verwendet wird. Ein Komprimierungsalgorithmus wird an den vollständig spezifizierten Testvektor angelegt. Der Komprimierungsalgorithmus reduziert die Größe des vollständig spezifizierten Testvektors durch Entfernen von Redundanz, typischerweise unter Verwendung einer Komprimierungstechnik. Der komprimierte Testvektor wird dann zu dem ATE-Speicher übertragen und in demselben gespeichert. Während der Ausführung des Tests durch die ATE wird der komprimierte Testvektor unter Verwendung einer Umkehrung des Komprimierungsalgorithmus, der für die Komprimierung verwendet wurde, dekomprimiert. Durch diesen Lösungsansatz wird häufig eine Komprimierung binärer Testvektoren von bis zu 50 % erreicht. Ein Fachmann auf diesem Gebiet würde ohne weiteres eine Anzahl von anwendbaren Komprimierungsalgorithmen zum Komprimieren von vollständig spezifizierten Testvektoren identifizieren.
  • Der zweite Lösungsansatz für die Testvektorkomprimierung verwendet einen Algorithmus zum Unterteilen des vollständig spezifizierten Testvektors, der durch den ATPG erzeugt wurde, in zwei oder mehr kleinere Vektoren, die, wenn sie zusammengenommen werden, kleiner sind als der ursprüngliche vollständig spezifizierte Testvektor. Diese beiden kleineren Vektoren werden im allgemeinen dadurch unterschieden, daß der eine sogenannte „Daten" enthält, während der andere „Befehle" enthält. Der Befehlsvektor, der in Verbindung mit dem Datenvektor verwendet wird, ermöglicht die Rekonstruktion eines vollständig spezifizierten Testvektors, der äquivalent ist zu demjenigen, der ursprünglich durch den ATPG erzeugt wurde. Um diesen Lösungsansatz zum Komprimieren eines vollständig spezifizierten Testvektors zu verwenden, muß die ATE selbstverständlich in der Lage sein, die „Befehle auszuführen". Das Aktivieren der ATE, um die Befehle auszuführen, unterscheidet sich nicht wesentlich von dem Ausführen eines Dekomprimierungsalgorithmus, der durch den ersten Lösungsansatz der Komprimierung erforderlich ist. G. Lesmeister, U.S.-Patent Nr. 5,696,772 offenbart ein Beispiel dieser Komprimierungsform.
  • Typischerweise liefern ATEs eine Fähigkeit zum Ausführen von relativ allgemeinen Softwareprogrammen in der zentralen Verarbeitungseinheit (CPU; CPU = central processing unit) der ATE. Daher sind die Anforderungen für die Dekomprimierung, die der ATE durch die oben beschriebenen Komprimierungslösungsansätze auferlegt werden, keine wesentliche Beschränkung. Es sollte angemerkt werden, daß bei beiden Fällen der hierin oben beschriebenen Testvektorkomprimierung die ATPG-erzeugten Testvektoren, die durch die Komprimierungsalgorithmen verarbeitet werden, vollständig spezifizierte Testvektoren sind.
  • Dementsprechend wäre es vorteilhaft, ein Verfahren zum Erzeugen und Speichern eines Testvektors für die Verwendung bei einer ATE zu haben, das die Menge an Speicher, die zum Speichern der Struktur erforderlich ist, wesentlich reduziert. Zusätzlich wäre es wünschenswert, daß ein solches Verfahren die „Frei"-Zustände ausnützt, die typischerweise vor der vollständigen Spezifizierung in dem Testvektor gefunden werden, um die Komprimierung des Testvektors zu ermöglichen. Ein solches Verfahren würde die Durchschnittseffizienz der Komprimierung wesentlich verbessern, und dadurch einen seit langem bestehenden Bedarf nach einer Testvektorspeicherreduzierung auf dem Gebiet des ATE-Testens erfüllen.
  • Die DE 19858757 A1 offenbart ein Verfahren zum Komprimieren und Entkomprimieren von Musterdaten für ein Halbleiterprüfsystem. Dabei werden die Musterdaten nach Häufigkeit ihres Vorkommens in drei Gruppen klassifiziert. Anschließend wird eine Übersetzungstabelle oder ein sogenanntes Wörterbuch erstellt, um die häufigsten Musterdaten der ersten Gruppe durch Kurzcodes und die weniger häufigen Musterdaten der zweiten Gruppe durch Langcodes zu ersetzen. Die am wenigsten häufigen Musterdaten der dritten Gruppe werden durch einen Escape-Code und Anhängen des Musterdatums selbst er setzt. Dadurch wird eine Kompression der Musterdaten erreicht.
  • Beim Dekomprimieren werden die Kurz- und Langcodes entsprechend dem Wörterbuch wieder durch die zugehörigen Musterdaten der ersten und zweiten Gruppe ersetzt oder das dem Escape-Code nachfolgende Muster direkt übernommen.
  • Die DE 19855488 A1 beschreibt einen Testmustergenerator mit verbesserter Testsequenzverdichtung, wobei wie in der Anmeldung auch, davon ausgegangen wird, dass die Testmuster an vielen Bitpositionen einen unbeachtlichen Wert „X" (= „Frei"-Wert) aufweisen. Ein Testmustergenerator erzeugt einen zusätzlichen neuen Testvektor. Dieser neue Testvektor wird mit einem ersten Vektor des bestehenden Satzes von Testvektoren verglichen, um zu bestimmen, ob diese zwei Vektoren zu einem Vektor verdichtet werden können. Unterscheiden sich diese zwei Vektoren nur an Bitpositionen, an denen einer der Vektoren einen unbeachtlichen Bitwert „X" hat, so können diese zwei Testvektoren zu einem einzigen Vektor verdichtet werden, indem an der jeweiligen Bitposition der „1"-Wert oder der „0"-Wert des anderen Testvektors übernommen wird. Dieser neue verdichtete Testvektor ersetzt den bisherigen Vektor aus dem bestehenden Satz der Testvektoren und das Verfahren wird mit einem weiteren neuen Testvektor aus dem Testmustergenerator fortgesetzt. Falls jedoch mit diesem Vektor aus dem bestehenden Satz von Testvektoren keine Verdichtung möglich ist, wird der neue Testvektor mit dem nächsten Vektor des bestehenden Satzes von Testvektoren wie oben beschrieben verglichen. Falls der neue Testvektor mit keinem Vektor des bestehenden Satzes von Testvektoren verdichtet werden kann, wird er zusätzlich in den Satz der Testvektoren aufgenommen, und das Verfahren wird mit einem weiteren neuen Testvektor aus dem Testmustergenerator fortgesetzt.
  • Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein verbessertes Verfahren zum Komprimieren eines Testvektors sowie ein verbessertes Verfahren zum Komprimieren und Dekomprimieren eines Testvektors für die Verwendung bei automatischen Prüfeinrichtungen zu schaffen.
  • Diese Aufgabe wird durch ein Verfahren gemäß den Ansprüchen 1, 11 und 17 gelöst.
  • Die vorliegende Erfindung liefert ein neuartiges Testvektorkomprimierungsverfahren. Das Testvektorkomprimierungsverfahren erzeugt einen komprimierten Testvektor für die Verwendung in Verbindung mit einer automatischen Prüfeinrichtung (ATE).
  • Bei einem Aspekt der vorliegenden Erfindung ist ein Verfahren zum Komprimieren eines Testvektors vorgesehen. Das Verfahren zum Komprimieren umfaßt die Schritte des Erzeugens des Testvektors mit einer Sequenz von Elementen, und das Erzeugen einer Zufallssequenz von Elementen mit zumindest der gleichen Anzahl von Elementen wie der Testvektor. Zumindest ein Element des Testvektors umfaßt einen „Frei"-Wert, der einen „Frei"-Zustand anzeigt. Das Komprimierungsverfahren umfaßt ferner die Schritte des sequentiellen Segmentierens des Testvektors in Segmente der Testvektorelemente, und gleichartig dazu das Segmentieren der Zufallssequenz in entsprechende Segmente der Zufallssequenzelemente. Jedes Segment des Testvektors wird mit einem entsprechenden Segment der Zufallssequenz verglichen, um zu bestimmen, ob die entsprechenden Segmente übereinstimmen oder nicht. Wenn eine Übereinstimmung gefunden wurde, wird ein erster Flagwert sequentiell in eine erste Sequenz eingefügt. Wenn eine Nichtübereinstimmung gefunden wird, wird ein zweiter Flagwert sequentiell in die erste Sequenz eingefügt, und auch die Elemente des nicht übereinstimmenden Testvektorsegments. Der komprimierte Testvektor wird aus der ersten Sequenz erzeugt, wenn alle Segmente verglichen wurden.
  • Der komprimierte Testvektor, der durch das Verfahren der vorliegenden Erfindung erzeugt wird, kann in den ATE- Speicher übertragen werden und in demselben gespeichert werden. Ferner eliminiert das Verfahren des Komprimierens gemäß der Erfindung den Schritt des Spezifizierens der „Frei"-Zustände vor dem Komprimierungsschritt. Vorteilhafterweise sind die Speicheranforderungen des komprimierten Testvektors, der durch das Verfahren der vorliegenden Erfindung erzeugt wird, viel kleiner als diejenigen eines vollständig spezifizierten Testvektors, der herkömmlicherweise in einer ATE verwendet wird.
  • Bei einem Ausführungsbeispiel umfaßt das Verfahren des Komprimierens eines Testvektors ferner den Schritt des Dekomprimierens des komprimierten Testvektors, um einen dekomprimierten Testvektor zu erzeugen, der gleich ist wie der vollständig spezifizierte Testvektor, der herkömmlicherweise durch eine ATE verwendet wird. Die ATE kann für eine Dekomprimierung gemäß dem Verfahren der Erfindung angepaßt werden. Die Dekomprimierung umfaßt die Schritte des Untersuchens des komprimierten Testvektors sequentiell nach dem ersten Flagwert und dem zweiten Flagwert. Wenn ein erster Flagwert gefunden wird, werden die Elemente der entsprechenden Zufallssequenz in eine zweite Sequenz eingefügt. Wenn ein zweiter Flagwert gefunden wird, werden die Elemente des komprimierten Testvektors, die dem zweiten Flagwert folgen, in die zweite Sequenz eingefügt. Der dekomprimierte Testvektor wird aus der zweiten Sequenz erzeugt, nachdem der gesamte komprimierte Testvektor untersucht wurde. Der dekomprimierte Testvektor ist ein vollständig spezifizierter Testvektor, wie z.B. derjenige, der herkömmlicherweise bei ATE verwendet wird.
  • Bei einem anderen Aspekt der vorliegenden Erfindung ist ein Verfahren zum Komprimieren und Dekomprimieren eines Testvektors, der eine Sequenz von Elementen aufweist, vorgesehen. Das Verfahren umfaßt den Schritt des Erzeugens einer Zufallssequenz von Elementen mit zumindest der gleichen Anzahl von Elementen wie der Testvektor. Das Verfahren umfaßt ferner die Schritte des sequentiellen Segmentierens des Testvektors in Segmente der Testvektorelemente, wobei zumindest ein Element des Testvektors einen „Frei"-Wert umfaßt, und gleichartig dazu Segmentieren der Zufallssequenz in entsprechende Segmente der Zufallssequenzelemente. Das Verfahren umfaßt ferner den Schritt des Vergleichens jedes Segments des Testvektors mit entsprechenden Segmenten der Zufallssequenz, um zu bestimmen, ob die entsprechenden Segmente übereinstimmen. Der Testvektor wird durch Einfügen eines Flagwerts für die übereinstimmenden entsprechenden Segmente und einen anderen unterschiedlichen Flagwert für die entsprechenden Segmente, die nicht übereinstimmen (fehlangepaßt sind), komprimiert. Der komprimierte Testvektor wird dann auf der Basis der unterschiedlichen Flagwerte in einen vollständig spezifizierten Testvektor dekomprimiert.
  • Bei einem Ausführungsbeispiel des Verfahrens zum Komprimieren und Dekomprimieren eines Testvektors umfaßt der Schritt des Komprimierens den Schritt des sequentiellen Einfügens eines ersten Flagwerts in eine erste Sequenz für jedes Segment des Testvektors, das mit einem entsprechenden Segment der Zufallssequenz übereinstimmt. Die Komprimierung umfaßt ferner die Schritte des sequentiellen Einfügens eines zweiten Flagwerts in die erste Sequenz für jedes Segment des Testvektors, das nicht mit einem entsprechenden Segment der Zufallssequenz übereinstimmt, gefolgt von dem Einfügen der Elemente der fehlangepaßten Testvektorsegmente in die erste Sequenz. Der komprimierte Testvektor wird aus der ersten Sequenz erzeugt, wenn alle Segmente berücksichtigt wurden.
  • Bei einem anderen Ausführungsbeispiel des Verfahrens zum Komprimieren und Dekomprimieren eines Testvektors umfaßt der Schritt des Dekomprimierens die Schritte des Erzeugens einer anderen Zufallssequenz von Elementen, die gleich ist wie die Zufallssequenz, die in dem Schritt des Erzeugens erzeugt wurde; des sequentiellen Einfügens der entsprechenden Elemente der anderen Zufallssequenz in eine zweite Sequenz für jeden Flagwert, der eine Übereinstimmung anzeigt; und des sequentiellen Einfügens der Elemente des komprimierten Testvektors, die jedem Flagwert folgen, der eine Nichtübereinstimmung in der zweiten Sequenz anzeigt. Der dekomprimierte Testvektor wird aus der zweiten Sequenz erzeugt, wenn der gesamte komprimierte Testvektor betrachtet wurde. Der dekomprimierte Testvektor ist ein vollständig spezifizierter Testvektor.
  • Gemäß der Erfindung stimmen entsprechende Segmente überein, wenn jedes Element des Testvektorsegments mit dem entspre chenden Element des entsprechenden Zufallssequenzsegments übereinstimmt. Ferner stimmt ein Element des Testvektorsegments mit einem entsprechenden Element des Zufallssequenzsegments überein, wenn das entsprechende Element den gleichen Wert aufweist, oder wenn das Element des Testvektorsegments den „Frei"-Wert aufweist. Der komprimierte Testvektor wird zu dem Speicher der ATE übertragen und in demselben gespeichert. Aufgrund der Anzahl von „Frei"-Zuständen, die typischerweise bei durch ATPG erzeugten Testvektoren gefunden werden, erfordert der komprimierte Testvektor vorteilhafterweise zum Teil wesentlich weniger Speicherplatz in dem Speicher im Vergleich zu einem vollständig spezifizierten Testvektor, der von dem Testvektor unter Verwendung von herkömmlichen Verfahren erzeugt worden wäre. Herkömmliche ATEs können den Schritt der Dekomprimierung durchführen, vorausgesetzt, daß die ATE modifiziert ist, um die Dekomprimierungsschritte der Erfindung zu unterstützen.
  • Die verschiedenen Merkmale und Vorteile der vorliegenden Erfindung werden mit Bezugnahme auf die folgende detaillierte Beschreibung in Verbindung mit den beiliegenden Zeichnungen, bei denen gleiche Bezugszeichen gleiche strukturelle Elemente bezeichnen, leichter verständlich werden.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1A ein Blockdiagramm eines typischen ATE-Systems, das einen ATPG zum Erzeugen eines Testvektors umfaßt;
  • 1B ein Flußdiagramm der Hauptschritte des Erzeugens und Verwenden eines Testvektors in der ATE von 1A;
  • 2 ein Beispiel eines Testvektors, einer Zufallssequenz und eines entsprechenden vollständig spezifizierten Testvektors;
  • 3 ein Flußdiagramm eines Verfahrens zum Komprimieren eines Testvektors für die Verwendung mit einer automatischen Prüfeinrichtung (ATE) gemäß der vorliegenden Erfindung;
  • 4 ein Beispiel zum Verwenden des Verfahrens zum Komprimieren eines Testvektors der vorliegenden Erfindung, um einen komprimierten Testvektor zu erzeugen; und
  • 5 ein Beispiel zum Dekomprimieren des komprimierten Testvektors bei dem Beispiel von 4 gemäß dem Verfahren der vorliegenden Erfindung.
  • Die vorliegende Erfindung ist ein neuartiges Verfahren zum Komprimieren und Dekomprimieren eines Testvektors, der in Verbindung mit einer automatischen Prüfeinrichtung (ATE) verwendet wird. Das Verfahren der vorliegenden Erfindung erzeugt einen komprimierten Testvektor von einem Testvektor, der durch einen automatischen Teststrukturgenerator (ATPG) erzeugt wurde. Der komprimierte Testvektor, der durch das Verfahren der vorliegenden Erfindung erzeugt wird, kann zu dem ATE-Speicher übertragen werden und in demselben gespeichert werden. Vorteilhafterweise sind die Speicheranforderungen des komprimierten Testvektors viel kleiner als diejenigen des vollständig spezifizierten Testvektors, der herkömmlicherweise bei ATEs verwendet wird. Darüber hinaus kann die ATE gemäß der vorliegenden Erfindung den komprimierten Testvektor während des ATE-Betriebs dekomprimieren, um den vollständig spezifizierten Testvektor für die Verwendung bei einem automatischen Test zu erzeugen.
  • 3 stellt ein Flußdiagramm eines Verfahrens 100 zum Komprimieren und Dekomprimieren eines Testvektors für die Verwendung mit einer automatischen Prüfeinrichtung (ATE) gemäß der vorliegenden Erfindung dar. Das Verfahren 100 zum Komprimieren und Dekomprimieren der vorliegenden Erfindung umfaßt ein Verfahren 100a zum Komprimieren und ein Verfahren 100b zum Dekomprimieren. Das Verfahren 100a zum Komprimieren erzeugt einen komprimierten Testvektor, während das Verfahren 100b den komprimierten Testvektor dekomprimiert und einen vollständig spezifizierten Testvektor erzeugt.
  • Das Verfahren 100a zum Komprimieren umfaßt den Schritt des Erzeugens 102 eines Testvektors, vorzugsweise mit einem automatischen Teststrukturgenerator (ATPG) oder mit einer anderen geeigneten Einrichtung, so daß der Testvektor spezifizierte Zustände und „Frei"-Zustände umfaßt. Der Schritt des Erzeugens 102 kann jedes herkömmliche Verfahren zum Erzeugen eines Testvektors für die ATE verwenden. Dementsprechend könnte der Schritt des Erzeugens 102 eines binären Testvektors beispielsweise zu einem Testvektor führen, der aus den Elementen des Satzes {0, 1, X} besteht, wobei „X" einen „Frei"-Zustand oder -Wert anzeigt. Ein solcher Testvektor wird beispielshaft in der ersten Zeile 121 der Spalte 1 von 4 dargestellt. Ferner kann das Verfahren 100 der vorliegenden Erfindung an zumindest einen Testvektor und vorzugsweise alle Testvektoren für ein DUT angelegt werden.
  • Wie es in 3 dargestellt ist, umfaßt das Verfahren 100a ferner den Schritt des Erzeugens 104 einer Zufallssequenz unter Verwendung eines Zufallssequenzgenerators. Mit Bezugnahme auf 4 stellt die zweite Zeile 122 von Spalte 1 ein Beispiel einer Zufallssequenz dar, wie sie sich von dem Schritt des Erzeugens 104 der Zufallssequenz ergeben kann. Die Zufallssequenz kann mit jedem von mehreren gut bekannten Algorithmen zum Erzeugen von Zufallsse quenzen erzeugt werden. Die einzige Anforderung ist, daß die somit erzeugte Zufallssequenz reproduzierbar ist. Dies ist eine gebräuchliche Eigenschaft von Zufallssequenzgeneratoren, die bei Digitalcomputern verwendet werden, wobei ein bestimmter „Keim"- oder Anfangswert eine spezielle Zufallssequenz erzeugt. Der gleiche Keimwert erzeugt immer die gleiche Zufallssequenz, oder genauer gesagt, Pseudozufallssequenz. Ein Fachmann auf diesem Gebiet würde ohne weiteres geeignete Zufallssequenzgeneratoren identifizieren, ohne übertriebene Experimente
  • Mit erneuter Bezugnahme auf 3 umfaßt das Verfahren 100a ferner das Segmentieren 106 des Testvektors und der Zufallssequenz in Testvektorsegmente und Zufallssequenzsegmente. Die Segmente können entweder eine feste Länge oder eine variable Länge aufweisen. Falls beispielsweise eine Segmentlänge von vier verwendet wird, umfaßt der Schritt zum Segmentieren 106 das sequentielle Auswählen 106a von Sätzen von vier Elementen von sowohl dem Testvektor als auch der Zufallssequenz, und das Zuweisen dieser Elemente zu nachfolgenden Testvektorsegmenten und Zufallssequenzsegmenten. Mit erneuter Bezugnahme auf das in 4 dargestellte Beispiel sind die Ergebnisse des Schritts des Segmentierens 106 in der ersten und zweiten Zeile 131, 132 von Spalte 2 dargestellt. Für das in 4 dargestellte Beispiel ist die Segmentgröße fest und gleich vier. Die Segmentgröße von vier und der feste Zustand sind nur als Beispiel gedacht und sollen den Schutzbereich der vorliegenden Erfindung nicht begrenzen. Die erste Zeile 131 der Spalte 2 entspricht dem segmentierten Testvektor, wahrend die zweite Zeile 132 der Spalte 2 der segmentierten Zufallssequenz entspricht.
  • Das Verfahren 100a umfaßt ferner den Schritt des Vergleichens 108 der Segmente des segmentierten Testvektors mit den entsprechenden Segmenten der segmentierten Zufallsse quenz, wie es in 3 näher dargestellt ist. Bei dem Schritt des Vergleichens 108 werden die Elemente in jedem Segment des segmentierten Testvektors mit den entsprechenden Elementen in dem entsprechenden Segment der segmentierten Zufallssequenz verglichen. Falls alle Elemente eines bestimmten Testvektorsegments mit entsprechenden Elementen eines entsprechenden Zufallssequenzsegments übereinstimmen, werden die Segmente als übereinstimmend betrachtet. Für jedes Segment führt der Vergleich entweder zu einer „Übereinstimmung" oder einer „Nichtübereinstimmung".
  • Ein Paar von Elementen von dem Testvektorsegment und dem Zufallssequenzsegment stimmen überein, falls die Elemente des Paars „zusammenpassen". Beispielsweise paßt eine „0" in einer bestimmten Position in einem Testvektorsegment mit einer „0" in einer entsprechenden Position in einem Zufallssequenzsegment zusammen. Die Tabelle 1 erweitert dieses Konzept und definiert, ob für alle möglichen Zustände der Elemente eines Testvektorsegments und eines Zufallssequenzsegments eine Übereinstimmung vorliegt. Die Spalte mit dem Titel „Testvektorbit" entspricht Elementen von einem Testvektorsegment, während die Spalte mit dem Titel „Zufallssequenzbit" Elementen von einem Zufallssequenzsegment entspricht. Das in Tabelle 1 dargestellte Beispiel nimmt eine Dreipegellogik an, die aus Elementen besteht, die von dem Satz {0, 1, X} genommen sind, wobei „X" einen „Frei"-Zustand darstellt. Somit stimmt eine „1" in dem Testvektorsegment mit einer „1" in dem Zufallssequenzsegment überein, eine „0" stimmt mit einer „0" überein, und ein „X" stimmt entweder mit einer „1" oder einer „0" überein.
  • Figure 00180001
  • Figure 00190001
    Tabelle 1: Definition von Elementübereinstimmung für den Schritt des Vergleichens 108.
  • Mit erneuter Bezugnahme auf 3 umfaßt das Verfahren 100a ferner den Schritt des Erzeugens 110a eines komprimierten Testvektors durch sequentielles Einfügen einer „1" in eine erste oder komprimierte Sequenz für jedes Segment, das übereinstimmt, und/oder Einfügen einer „0", gefolgt von den Elementen des Testvektorsegments in der komprimierten Sequenz für jedes Segment, das nicht übereinstimmt. Wenn dies abgeschlossen ist, ist die komprimierte Sequenz der komprimierte Testvektor. Der Schritt des Erzeugens 110 eines komprimierten Testvektors umfaßt den Schritt des Betrachtens 110a eines Paars von Segmenten, und dann den Schritt des Einfügens 110b von entweder einer „1" oder einer „0", gefolgt von dem Element des Segments, das betrachtet wird, abhängig davon, ob das Segmentpaar in dem Schritt des Vergleichens 108 übereinstimmte oder nicht, wie es nachfolgend näher beschrieben wird.
  • Im wesentlichen beginnt der Schritt des Erzeugens 110 mit dem Betrachten 110a eines ersten Paars von Segmenten. Falls das erste Segmentpaar übereinstimmt oder zusammenpaßt, wie es in dem Schritt des Vergleichens 108 bestimmt wird, wird eine „1" als ein erstes Element der ersten oder komprimierten Sequenz eingefügt 110b. Falls das erste Segmentpaar nicht übereinstimmt, wird eine „0", als das erste Element der komprimierten Sequenz eingefügt 110b, und die nächsten S Elemente, die in die komprimierte Sequenz eingefügt werden 110b, sind Elemente, die von dem ersten Segment des Testvektors kopiert werden, wobei S die Segmentgröße ist (d.h. die Anzahl von Elementen in einem Segment). Ein nächstes Paar von Segmenten wird dann betrachtet 110a, und eine „1" wird als ein nächstes Element der komprimierten Sequenz eingefügt 110b, falls das nächste Segmentpaar übereinstimmt. Oder, wie vorher, falls das nächste Segmentpaar nicht übereinstimmt, sind die nächsten Elemente in der komprimierten Sequenz eine „0", gefolgt von den Elementen des Testvektorsegments. Falls ein Paar von Segmenten nicht übereinstimmt und das Testvektorsegment eines oder mehrere „Frei"-Elemente umfaßt, werden die entsprechenden Elemente des Zufallsvektorsegments in die komprimierte Sequenz kopiert. Der Schritt des Erzeugens 110, der die Schritte des Betrachtens 110a und Einfügens 110b umfaßt, wiederholt sich sequentiell für jedes aufeinanderfolgende Paar von Segmenten, bis alle Segmente des Testvektors verarbeitet sind.
  • Mit erneuter Bezugnahme auf das in 4 dargestellte Beispiel entspricht die dritte Zeile 133 von Spalte 2 dem komprimierten Testvektor, der sich nach den Schritten des Vergleichens 108 und Erzeugens 110 des Verfahrens 100, 100a der vorliegenden Erfindung aus der ersten Sequenz ergibt. Wie bei dem in 4 dargestellten Beispiel ersichtlich ist, stimmt das erste Segmentpaar nicht überein, wie es durch das „x" durch die vertikale Linie unterhalb des letzten Elements der Sequenz dargestellt ist. Daher ist das erste Element des komprimierten Testvektors „0". Die nächsten vier (S = 4) Elemente des komprimierten Testvektors werden von dem Testvektor in den komprimierten Testvektor kopiert, da alle diese Elemente in dem ersten Segment spezifiziert wurden. Das nächste Segmentpaar des Beispiels stimmt überein, da dieses Testvektorsegment nur aus „Frei"- oder „X"- Elementen besteht. Daher ist das nächste Element (Element 6, gezählt in der Zeile 133 von links) des komprimierten Testvektors in der Zeile 133 „1". Gleichartig dazu stimmen das dritte, vierte, fünfte und sechste Paar alle überein, so daß für jedes dieser Segmentpaare (Elemente 7 bis 10 von Zeile 133) eine „1" in den komprimierten Testvektor von Zeile 133 eingefügt wird 110b. Das siebte Paar stimmt nicht überein, wie es durch das „x" durch die vertikale Zeile unterhalb des ersten Elements des letzten Segments angezeigt ist. Darüber hinaus sind bei dem siebten Segment des Testvektors die letzten beiden Elemente „Xs", die „Frei"-Zustände anzeigen. Eine „0" wird als ein „Flagwert" in den komprimierten Testvektor eingefügt, was eine Nichtübereinstimmung zwischen diesen beiden Segmenten anzeigt, wie es oben für die erste Segmentnichtübereinstimmung beschrieben wurde. Dann werden die spezifizierten Elemente, diejenigen, die einen Wert von entweder „1" oder „0" des Testvektors aufweisen, kopiert und in die entsprechenden Elementpositionen des komprimierten Testvektors eingefügt. Ferner werden die Werte für die Elemente mit einem „Frei"-Zustand in dem Testvektor von den entsprechenden Positionen in dem Zufallsvektorsegment kopiert, und in den komprimierten Testvektor in Zeile 133 eingefügt.
  • Der komprimierte Testvektor, der durch das Verfahren 100a der vorliegenden Erfindung erzeugt wird, besteht aus einer Reihe von „Flags" oder Indikatorwerten, wobei ein Flag eine Übereinstimmung zwischen Segmentpaaren anzeigt, und das andere eine Nichtübereinstimmung anzeigt. Nach dem Flag, das eine Nichtübereinstimmung anzeigt, folgen in dem komprimierten Testvektor die spezifizierten Elemente des Originaltestvektorsegments, das der Flag zugeordnet ist, zusammen mit Elementen von der Zufallssequenz für die „Frei"-Zustände. Wie hierin oben beschrieben ist, wurde zu Darstellungszwecken eine Dreipegellogik mit Werten von dem Satz {0, 1, X} verwendet. Ein Fachmann auf diesem Gebiet könnte das beschriebene Verfahren 100a leicht auf eine m-Pegellogik oder ein m-faches Alphabet ausdehnen, wobei m > 3 ist. Außerdem würde ein Fachmann auf diesem Gebiet ohne weiteres erkennen, daß andere Werte für das Flag, die sich von „1" zum Anzeigen einer Übereinstimmung und/oder „0" zum Anzeigen einer Nichtübereinstimmung unterscheiden, eingesetzt werden könnten, ohne die wesentliche Natur der Komprimierung zu ändern, die durch das Verfahren 100a erzeugt wird. Alle solchen m-fachen Alphabete und alternativen Flagwerte liegen innerhalb des Schutzbereiches der vorliegenden Erfindung.
  • Der komprimierte Testvektor wird zu dem Speicher der ATE übertragen und in demselben gespeichert. Aufgrund der Anzahl von „Frei"-Zuständen, die typischerweise bei ATPG – erzeugten Testvektoren gefunden wurden, erfordert der komprimierte Testvektor im Vergleich zu einem vollständig spezifizierten Testvektor, der von dem Testvektor unter Verwendung von herkömmlichen Verfahren erzeugt werden würde, vorteilhafterweise zum Teil wesentlich weniger Speicherplatz in dem Speicher. Die Anzahl von Bits, die für die Speicherung eines binären komprimierten Testvektors erforderlich ist, der durch das Verfahren 100a der vorliegenden Erfindung erzeugt wurde, ist durch die Gleichung (1) angezeigt.
    Figure 00220001
    wobei S die Segmentgröße ist, Nj die Anzahl von Segmenten in dem Testvektor, die j spezifizierte Bits aufweisen (das heißt entweder einen „1"- oder eine „0"-Wert aufweisen), p die Wahrscheinlichkeit, daß ein spezifiziertes Bit in einem Segment mit einem entsprechenden Bit in dem entsprechenden Zufallssegment übereinstimmt, und wobei
    Figure 00220002
  • Ferner kann die Segmentgröße S, die in Verbindung mit dem Verfahren 100a der vorliegenden Erfindung verwendet wird, variiert werden, um die Effektivität des Komprimierungsprozesses zu optimieren.
  • Während des automatischen Tests, der durch die ATE durchgeführt wird, wird der komprimierte Testvektor dekomprimiert, um einen vollständig spezifizierten Testvektor zu erzeugen. Um das Dekomprimieren des komprimierten Testvektors zu er möglichen, ist ein Zufallssequenzgenerator erforderlich, der eine Zufallssequenz erzeugt, die identisch ist mit der Zufallssequenz, die in dem Schritt 104 des Verfahrens 100a zum Komprimieren erzeugt wurde. Der Zufallssequenzgenerator, der bei der Dekomprimierung verwendet wird, kann der gleiche sein, der während des Schritts des Erzeugens 104 einer Zufallssequenz verwendet wurde. Vorzugsweise wird während der Dekomprimierung ein anderer Zufallssequenzgenerator, der die identische Zufallssequenz erzeugt, verwendet. Es sei daran erinnert, daß ein Flagwert von „1" bei dem komprimierten Testvektor für den Fall der Dreipegellogik, die hierin oben beschrieben wurde, eine Übereinstimmung anzeigt. Während der Dekomprimierung des komprimierten Testvektors zeigt ein Flagwert von „1" die „Verwendung der entsprechenden Werte von der Zufallssequenz" an. Gleichartig dazu zeigt ein Flagwert von „0" die „Verwendung der folgenden S Werte des komprimierten Testvektors für den vollständig spezifizierten Testvektor" an. Daher ist während der Komprimierung und der Dekomprimierung gemäß der Erfindung die gleiche Zufallssequenz notwendig.
  • Das Verfahren 100b zum Dekomprimieren der vorliegenden Erfindung wirkt auf dem komprimierten Testvektor, um einen dekomprimierten Testvektor zu erzeugen, wobei der dekomprimierte Testvektor dem vollständig spezifizierten Testvektor entspricht, der durch die ATE verwendet wird. Das Verfahren 100b zum Dekomprimieren umfaßt den Schritt des Untersuchens 112 eines Flagwerts des komprimierten Testvektors und den Schritt des Einfügens 114 von Werten in den dekomprimierten Testvektor, wie es nachfolgend näher beschrieben ist.
  • Das Verfahren 100b zum Dekomprimieren beginnt mit dem Untersuchen 112 eines ersten Elements in dem komprimierten Testvektor. Das erste Element eines komprimierten Testvektors ist per Definition ein erster Flagwert. Falls der erste Flagwert eine Nichtübereinstimmung anzeigt, beispielsweise eine „0" bei dem hierin oben beschriebenen Dreipegellogik-Fall, werden die nächsten S Elemente des komprimier ten Testvektors in die ersten S Positionen in einer zweiten oder dekomprimierten Sequenz kopiert und eingefügt 114. Ein nächster Flagwert ist das nächste Element in dem komprimierten Testvektor, das den S Elementen, die kopiert werden, unmittelbar folgt. Wenn ein Flagwert, der eine Nichtübereinstimmung anzeigt, gefunden wird, werden die nächsten S Elemente der Zufallssequenz gelöscht.
  • Falls der erste Flagwert eine Übereinstimmung anzeigt, beispielsweise eine „1" in dem hierin oben beschriebenen Dreipegellogik-Fall, werden die ersten S Elemente der Zufallssequenz, die in dem Schritt des Erzeugens 116 durch den Zufallssequenzgenerator erzeugt werden, in die dekomprimierte Sequenz eingefügt 114. Der nächste Flagwert ist das nächste Element in dem komprimierten Testvektor, wenn ein Flagwert anzeigt, daß eine Übereinstimmung gefunden ist. Gemäß dem Verfahren 100b der Erfindung werden die Schritte des Untersuchens 112 und des Einfügens 114 für jedes Element wiederholt, das einem Flagwert in dem komprimierten Testvektor entspricht.
  • Um diese Beschreibung des Verfahrens 100b zum Dekomprimieren deutlicher zu machen, wird erneut auf das Beispiel von 4 Bezug genommen. Bei dem in 4 dargestellten Beispiel sei daran erinnert, daß der komprimierte Testvektor binär war und die Flagwerte entweder „1", was eine Übereinstimmung anzeigt, oder „0", was eine Nichtübereinstimmung anzeigt, waren, und die Segmentgröße S vier war. 5 stellt ein Beispiel zum Dekomprimieren des komprimierten Testvektors dar, der in dem in 4 dargestellten Beispiel erzeugt wird.
  • Mit Bezugnahme auf 5 entspricht die erste Zeile 141 dem komprimierten Testvektor von Zeile 133 in 4. Die zweite Zeile 142 entspricht der Zufallssequenz von dem Schritt des Erzeugens 116. Es ist anzumerken, daß die Zufallssequenz die gleiche Zufallssequenz in der Zeile 122 und 132 von 4 ist, die während des Verfahrens 100a der Komprimierung erzeugt wurde Schritt.
  • Da das erste Element des komprimierten Testvektors „0" ist, was eine Nichtübereinstimmung anzeigt, werden die nächsten vier Elemente des komprimierten Testvektors in die dekomprimierte Sequenz als die ersten vier Elemente kopiert oder eingefügt 114, wie es in der dritten Zeile 143 von 5 dargestellt ist. Die ersten vier Elemente der Zufallssequenz, die in Zeile 142 von 5 dargestellt sind, werden gelöscht. Der nächste Flagwert in dem komprimierten Testvektor von Zeile 141 ist an der Position 6 positioniert (in Zeile 141 von links gezählt) und ist eine „1", die eine Übereinstimmung während der Komprimierung anzeigt. Als Folge werden die nächsten vier Elemente der Zufallssequenz in Zeile 142, das fünfte, das sechste, siebte und achte Element, in die fünfte, sechste, siebte und achte Elementposition in der dekomprimierten Sequenz in Zeile 143 kopiert. Dieser Prozeß wiederholt sich auf jedem der Flagwerte, bis von der zweiten oder dekomprimierten Sequenz ein vollständiger dekomprimierter Testvektor erzeugt ist. Ein schneller Vergleich zwischen dem dekomprimierten Testvektor in Zeile 143 von 5 und dem Testvektor in Zeile 121 von 4 offenbart, daß der dekomprimierte Testvektor der Testvektor mit den „Frei"-Zuständen („X") ist, die durch entsprechende Werte von Zufallssequenz ersetzt wurden.
  • Vorteilhafterweise erzeugt das Verfahren 100b zum Dekomprimieren des komprimierten Testvektors einen dekomprimierten Testvektor, der mit dem vollständig spezifizierten Testvektor identisch ist, der unter Verwendung von herkömmlichen Verfahren erzeugt und zu dem ATE-Speicher übertragen und in demselben gespeichert werden würde. Daher kann die ATE den dekomprimierten Testvektor der vorliegenden Erfindung auf gleiche Weise verwenden wie der herkömmliche, vollständig spezifizierte Testvektor, aber erfordert vorteilhafterweise weniger Speicher zum Speichern des komprimierten Testvektors. Die einzige Modifikation an dem herkömmlichen ATE, die für das Verfahren 100 zum Komprimieren und Dekomprimieren des Testvektors gemäß der Erfindung erforderlich ist, ist es, die Fähigkeit zu liefern, die gleiche oder identische Zufallssequenz zu erzeugen 104, 116, und die Fähigkeit, die Dekomprimierungsschritte des Verfahrens 100b durchzuführen.
  • Das Verfahren 100b der Dekomprimierung kann gemäß der Erfindung in Hardware oder Software implementiert werden. Bei einer Hardwareimplementierung kann das Verfahren 100b der Dekomprimierung als eine mikroelektronische Schaltung auf einem Chip implementiert werden. Bei einer Softwareimplementierung kann die zentrale Verarbeitungseinheit CPU des ATE angepaßt werden, um Software zu enthalten, um die Dekomprimierungsschritte auszuführen. Wie in dem Fall von anderen herkömmlichen Komprimierungsmethoden begrenzt die Anforderung für Dekomprimierung 100b-Verarbeitung gemäß der Erfindung in dem ATE die Anwendbarkeit der vorliegenden Erfindung nicht wesentlich.
  • Darüber hinaus kann das Verfahren 100 zum Komprimieren und Dekomprimieren eines Testvektors der vorliegenden Erfindung vorteilhafterweise in Verbindung mit herkömmlichen Komprimierungsmethoden verwendet werden, um eine noch größere Komprimierung zu erreichen. Beispielsweise kann ein herkömmlicher Komprimierungsalgorithmus an den komprimierten Testvektor angelegt werden, der durch das Verfahren 100a der vorliegenden Erfindung erzeugt wird. In dem ATE wird vor dem Beginnen des Verfahrens 100b der Dekomprimierung die Umkehrung des herkömmlichen Komprimierungsalgorithmus angelegt, um den ursprünglichen komprimierten Testvektor zu erzeugen. Vorausgesetzt, daß es in dem komprimierten Testvektor, der durch das Verfahren 100a erzeugt wurde, höchstwahrscheinlich lange Sequenzen von „1"en gibt, sollte sogar etwas so einfaches wie ein Lauflängenkodieralgorithmus eine zusätzliche Komprimierung ergeben, über diejenige hinaus, die durch das Verfahren 100 erreicht wird.

Claims (31)

  1. Verfahren (100) zum Komprimieren eines Testvektors, das folgende Schritte umfaßt: Erzeugen (102) des Testvektors, wobei der Testvektor eine Sequenz von Elementen aufweist, wobei zumindest ein Element einen „Frei"-Wert umfaßt, der einen „Don't-Care"-Zustand anzeigt; Erzeugen (104) einer Zufallssequenz von Elementen mit einer gleichen Anzahl von Elementen wie der Testvektor; sequentielles Segmentieren (106) des Testvektors in Segmente der Testvektorelemente; gleichartiges Segmentieren (106) der Zufallssequenz in Segmente der Zufallssequenzelemente, die den Testvektorsegmenten entsprechen; Vergleichen (108) jedes Segments des Testvektors mit einem entsprechenden Segment der Zufallssequenz; wiederholtes Betrachten (110a) jedes Segments des Testvektors mit einem entsprechenden Segment der Zufallssequenz auf Übereinstimmung oder Nichtübereinstimmung und – bei Übereinstimmung sequentielles Einfügen (110b) eines ersten Flagwerts anstelle der Elemente des übereinstimmenden Segments in einer ersten Sequenz oder – bei Nichtübereinstimmung sequentielles Einfügen (110b) eines zweiten Flagwerts und nachfolgendes Einfügen der Elemente des nicht übereinstimmenden Testvektorsegments in die erste Sequenz, bis alle der Segmente des Testvektors betrachtet sind, wodurch aus der ersten Sequenz der komprimierte Testvektor erzeugt wird (110a).
  2. Verfahren zum Komprimieren gemäß Anspruch 1, bei dem in dem Schritt des Betrachtens (110a) entsprechende Segmente übereinstimmen, wenn jedes Element des Testvektorsegments mit einem entsprechenden Element des entsprechenden Zufallssequenzsegments übereinstimmt.
  3. Verfahren zum Komprimieren gemäß Anspruch 2, bei dem während des Schritts des Betrachtens (110a) ein Element des Testvektorsegments mit einem entsprechenden Element des Zufallssequenzsegments übereinstimmt, wenn das jeweilige Element den gleichen Wert aufweist, oder wenn das Element des Testvektorsegments den „Frei"-Wert aufweist.
  4. Verfahren zum Komprimieren gemäß einem der Ansprüche 1 bis 3, bei dem in den Schritten des sequentiellen Segmentierens und gleichartigen Segmentierens (106) die Anzahl von Elementen in jedem entsprechenden Paar von Testvektoren und Zufallssequenzsegmenten gleich ist.
  5. Verfahren zum Komprimieren gemäß einem der Ansprüche 1 bis 4, bei dem sich in den Schritten des sequentiellen Segmentierens und gleichartigen Segmentierens (106) die Anzahl von Elementen in zumindest einem entsprechenden Paar von Testvektor- und Zufallssequenzsegmenten von der Anzahl von Elementen in einem anderen Paar von entsprechenden Segmenten unterscheidet.
  6. Verfahren zum Komprimieren gemäß einem der Ansprüche 1 bis 5, das ferner den Schritt des Dekomprimierens (100b) des komprimierten Testvektors umfaßt, um einen dekomprimierten Testvektor zu erzeugen.
  7. Verfahren zum Komprimieren gemäß Anspruch 6, bei dem der Schritt des Dekomprimierens folgende Schritte umfaßt: (d) Untersuchen (112) des komprimierten Testvektors sequentiell nach dem ersten Flagwert und dem zweiten Flagwert; (e) sequentielles Einfügen (114) entsprechender Elemente der Zufallssequenz in eine zweite Sequenz, wenn der erste Flagwert gefunden ist; und (f) sequentielles Einfügen (114) der Elemente des komprimierten Testvektors, die dem zweiten Flagwert folgen, in die zweite Sequenz, wenn der zweite Flagwert gefunden ist.
  8. Verfahren zum Komprimieren gemäß Anspruch 7, bei dem der Schritt des Dekomprimierens ferner den Schritt des Wiederholens des Schritts des Untersuchens (112) und der Schritte des sequentiellen Einfügens (114) umfaßt, bis alle Elemente des komprimierten Testvektors untersucht sind, wodurch von der zweiten Sequenz ein dekomprimierter Testvektor erzeugt wird.
  9. Verfahren zum Komprimieren gemäß Anspruch 8, bei dem der dekomprimierte Testvektor ein vollständig spezifizierter Testvektor ist.
  10. Verfahren zum Komprimieren gemäß einem der Ansprüche 7 bis 9, bei dem vor dem Schritt des sequentiellen Einfügens (110b) entsprechender Elemente der Schritt des Dekomprimierens (100b) ferner folgende Schritte umfaßt: Erzeugen (104) einer weiteren Zufallssequenz von Elementen, die gleich ist wie die Zufallssequenz, die in dem Schritt des Erzeugens erzeugt wurde; und Verwenden der entsprechenden Elemente von der anderen Zufallssequenz in dem Schritt des sequentiellen Einfügens (110b).
  11. Verfahren zum Komprimieren und De komprimieren eines Testvektors, der eine Sequenz von Elementen aufweist, wobei das Verfahren folgende Schritte umfaßt: Erzeugen (104) einer Zufallssequenz von Elementen mit zumindest der gleichen Anzahl von Elementen wie der Testvektor; sequentielles Segmentieren (106) des Testvektors in Segmente der Testvektorelemente, wobei zumindest ein Element des Testvektors einen „Frei"-Wert aufweist, der einen „Don't-Care"-Zustand anzeigt; gleichartiges Segmentieren (106) der Zufallssequenz in Segmente der Zufallssequenzelemente, die den Testvektorsegmenten entsprechen; wiederholtes sequentielles Vergleichen (108) jedes Segments des Testvektors mit dem entsprechenden Segment der Zufallssequenz, um zu bestimmen, ob entsprechende Paare von Testvektor- und Zufallssequenzsegmenten übereinstimmen und – bei Übereinstimmung sequentielles Einfügen (110b) eines ersten Flagwerts anstelle der Elemente des übereinstimmendes Segments in einer ersten Sequenz oder – bei Nichtübereinstimmung sequentielles Einfügen (110b) eines zweiten Flagwerts und nachfolgendes Einfügen der Elemente des nicht übereinstimmenden Testvektorsegments in die erste Sequenz, bis alle der Segmente des Testvektors verglichen sind, wodurch aus der ersten Sequenz der komprimierte Testvektor erzeugt wird (110a); Dekomprimieren (100b) des komprimierten Testvektors in einen vollständig spezifizierten Testvektor auf der Basis der unterschiedlichen Flagwerte, der gewählten Segmentierung und der im ersten Verfahrensschritt erzeugten Zufallssequenz.
  12. Verfahren zum Komprimieren und Dekomprimieren eines Testvektors gemäß Anspruch 11, bei dem in dem Schritt des Komprimierens (100a) entsprechende Segmente übereinstimmen, wenn jedes Element des Testvektorelements mit einem entsprechenden Element des entsprechenden Zufallssequenzsegments des Paars übereinstimmt.
  13. Verfahren zum Komprimieren und Dekomprimieren eines Testvektors gemäß Anspruch 11 oder 12, bei dem während des Schritts des Komprimierens (100a) ein Element des Testvektorsegments mit einem entsprechenden Element des Zufallssegments in einem Paar übereinstimmt, wenn das jeweilige Element den gleichen Wert aufweist, oder wenn das Element des Testvektorsegments den „Frei"-Wert aufweist.
  14. Verfahren zum Komprimieren und Dekomprimieren eines Testvektors gemäß einem der Ansprüche 11 bis 13, bei dem der Schritt des Dekomprimierens (110b) folgende Schritte umfaßt: Erzeugen (116) einer anderen Zufallssequenz von Elementen, die gleich ist wie die Zufallssequenz, die in dem Schritt des Erzeugens (104) erzeugt wird; sequentielles Einfügen (114) entsprechender Elemente der anderen Zufallssequenz in eine zweite Sequenz für jeden Flagwert, der eine Übereinstimmung anzeigt; und sequentielles Einfügen (114) der Elemente des komprimierten Testvektors, die jedem Flagwert, der eine Nichtübereinstimmung anzeigt, in die zweite Sequenz nachfolgen, um den vollständig spezifizierten Testvektor von der zweiten Sequenz zu erzeugen.
  15. Verfahren zum Komprimieren und Dekomprimieren eines Testvektors gemäß einem der Ansprüche 11 bis 14, bei dem in den Schritten des sequentiellen Segmentierens (106) und des gleichartigen Segmentierens die Anzahl von Elementen in jedem entsprechenden Paar von Testvektoren und Zufallssequenzsegmenten gleich ist.
  16. Verfahren zum Komprimieren und Dekomprimieren eines Testvektors gemäß einem der Ansprüche 11 bis 15, bei dem sich in den Schritten des sequentiellen Segmentierens und gleichartigen Segmentierens (106) die Anzahl von Elementen in zumindest einem entsprechenden Paar von Testvektor- und Zufallssequenzsegmenten von der Anzahl von Elementen in einem anderen entsprechenden Paar von Segmenten unterscheidet.
  17. Verfahren zum Komprimieren und Dekomprimieren eines Testvektors mit einer Sequenz von Elementen, das folgende Schritte umfaßt: Erzeugen einer Zufallssequenz (104) von Elementen mit zumindest einer gleichen Anzahl von Elementen wie der Testvektor; sequentielles Segmentieren (106) des Testvektors in Segmente der Testvektorelemente, wobei der Testvektor Elemente mit „Frei"-Werten aufweist, die einen „Don't-Care"-Zustand anzeigen; gleichartiges Segmentieren (106) der Zufallssequenz in Segmente der Zufallssequenzelemente, die den Testvektorsegmenten entsprechen; wiederholtes sequentielles Vergleichen (108) jedes Segments des Testvektors mit dem entsprechenden Segment der Zufallssequenz, um zu bestimmen, ob die entsprechenden Segmente übereinstimmen; – bei Übereinstimmung sequentielles Einfügen (110b) eines ersten Flagwerts anstelle der Elemente des übereinstimmenden Segments in einer ersten Sequenz oder – bei Nichtübereinstimmung sequentielles Einfügen (110b) eines zweiten Flagwerts und nachfolgendes Einfügen der Elemente des nicht übereinstimmenden Testvektorsegments in die erste Sequenz, bis alle Segmente des Testvektors verglichen sind, wodurch aus der ersten Sequenz der komprimierte Testvektor erzeugt wird (110a); Untersuchen (112) des komprimierten Testvektors nach ersten Flagwerten und zweiten Flagwerten und – bei jedem der ersten Flagwerte sequentielles Einfügen (114) der Elemente der zugehörigen Segmente der Zufallssequenz anstelle dieses ersten Flagwerts in eine zweite Sequenz oder – bei jedem der zweiten Flagwerte sequentielles Einfügen (114) der Elemente der zugehörigen Segmente des komprimierten Testvektors anstelle dieses zweiten Flagwerts in eine zweite Sequenz, um aus der zweiten Sequenz den dekomprimierten Testvektor zu erzeugen.
  18. Verfahren zum Komprimieren und Dekomprimieren gemäß Anspruch 17, bei dem in dem Schritt des Vergleichens (108) entsprechende Segmente übereinstimmen, wenn jedes Element des Testvektorsegments mit einem entsprechenden Element des entsprechenden Zufallssequenzsegments übereinstimmt.
  19. Verfahren zum Komprimieren und Dekomprimieren gemäß Anspruch 17 oder 18, bei dem während des Schritt des Vergleichens (108) ein Element des Testvektorsegments mit einem entsprechenden Element des Zufallssequenzsegments übereinstimmt, wenn das jeweilige Element den gleichen Wert aufweist, oder wenn das Element des Testvektorsegments den „Frei"-Wert aufweist.
  20. Verfahren zum Komprimieren und Dekomprimieren gemäß einem der Ansprüche 17 bis 19, bei dem in den Schritten des sequentiellen Segmentierens und gleichartigen Segmentierens (106) die Anzahl von Elementen in jedem der entsprechenden Testvektor- und Zufallssequenzsegmenten gleich ist.
  21. Verfahren zum Komprimieren und Dekomprimieren gemäß einem der Ansprüche 17 bis 20, bei dem sich in den Schritten des sequentiellen Segmentierens und gleichartigen Segmentierens (106) die Anzahl von Elementen in zumindest einem Paar von entsprechenden Testvektor- und Zufallssequenzsegmenten von der Anzahl von Elementen bei einem anderen Paar von entsprechenden Segmenten unterscheidet.
  22. Verfahren zum Komprimieren und Dekomprimieren gemäß einem der Ansprüche 17 bis 21, bei dem der dekomprimierte Testvektor ein vollständig spezifizierter Testvektor ist.
  23. Verfahren zum Komprimieren und Dekomprimieren gemäß einem der Ansprüche 17 bis 22, bei dem vor den Schritten des sequentiellen Einfügens (110b) der Elemente das Verfahren ferner folgende Schritte umfaßt: Erzeugen (104) einer weiteren Zufallssequenz von Elementen, die gleich ist wie die Zufallssequenz, die in dem Schritt des Erzeugens erzeugt wurde; und Verwenden von entsprechenden Elementen von der anderen Zufallssequenz in dem Schritt des sequentiellen Einfügens (110b) der Elemente der Zufallssequenz.
  24. Verfahren zum Komprimieren gemäß einem der Ansprüche 1 bis 10, das an alle Testvektoren eines zu testenden Geräts (DUT) unter Verwendung einer automatischen Prüfeinrichtung (ATE) angelegt wird.
  25. Verfahren zum Komprimieren gemäß einem der Ansprüche 6 bis 10, bei dem der Schritt des Dekomprimierens als Hardware in eine automatische Prüfeinrichtung implementiert ist.
  26. Verfahren zum Komprimieren gemäß Anspruch 25, bei dem die Hardware ein mikroelektronischer Chip ist.
  27. Verfahren zum Komprimieren gemäß einem der Ansprüche 6 bis 10 bei dem der Schritt des Dekomprimierens als Software in eine automatische Prüfeinrichtung (ATE) implementiert ist.
  28. Verfahren zum Komprimieren gemäß Anspruch 27, bei dem die Software in eine zentrale Verarbeitungseinheit (CPU) der automatischen Prüfeinrichtung eingebaut ist.
  29. Verfahren zum Komprimieren gemäß Anspruch 27, bei dem die Software in eine zentrale Verarbeitungseinheit der automatischen Testeinrichtung eingebaut ist.
  30. Verfahren zum Komprimieren und Dekomprimieren gemäß einem der Ansprüche 11 oder 17, bei dem die Schritte des Untersuchens und des sequentiellen Einfügens der Elemente als Software in eine automatische Prüfeinrichtung implementiert sind.
  31. Verfahren zum Komprimieren und Dekomprimieren gemäß Anspruch 30, bei dem die Software in eine zentrale Verarbeitungseinheit der automatischen Prüfeinrichtung eingebaut ist.
DE10210264A 2001-03-09 2002-03-08 Ein Testvektorkomprimierungsverfahren Expired - Fee Related DE10210264B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/802,440 2001-03-09
US09/802,440 US6732312B2 (en) 2001-03-09 2001-03-09 Test vector compression method

Publications (2)

Publication Number Publication Date
DE10210264A1 DE10210264A1 (de) 2002-10-10
DE10210264B4 true DE10210264B4 (de) 2007-05-10

Family

ID=25183718

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10210264A Expired - Fee Related DE10210264B4 (de) 2001-03-09 2002-03-08 Ein Testvektorkomprimierungsverfahren

Country Status (3)

Country Link
US (1) US6732312B2 (de)
JP (1) JP4194785B2 (de)
DE (1) DE10210264B4 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7131046B2 (en) * 2002-12-03 2006-10-31 Verigy Ipco System and method for testing circuitry using an externally generated signature
EP1475644A1 (de) * 2003-04-29 2004-11-10 Koninklijke Philips Electronics N.V. Datenkompression
US7404109B2 (en) * 2003-06-12 2008-07-22 Verigy (Singapore) Pte. Ltd. Systems and methods for adaptively compressing test data
US8769361B2 (en) * 2003-10-07 2014-07-01 Advantest (Singapore) Pte Ltd Cost estimation for device testing
US7386777B2 (en) * 2004-04-05 2008-06-10 Verigy (Singapore) Pte. Ltd. Systems and methods for processing automatically generated test patterns
US7555690B1 (en) * 2004-12-23 2009-06-30 Xilinx, Inc. Device for and method of coupling test signals to a device under test
JP5017603B2 (ja) * 2005-11-30 2012-09-05 国立大学法人九州工業大学 変換装置、変換方法、変換方法をコンピュータに実行させることが可能なプログラム、及び、このプログラムを記録した記録媒体
US7692686B1 (en) * 2006-02-21 2010-04-06 Xfrm Incorporated Method and apparatus for coding format autodetection testing
TWI403746B (zh) * 2008-10-22 2013-08-01 國立臺灣大學 測試圖案最佳化的方法
US20110022907A1 (en) * 2009-06-23 2011-01-27 StarDFX Technologies, Inc. FPGA Test Configuration Minimization
US8718998B2 (en) * 2011-03-17 2014-05-06 Apple Inc. Identifying initial don't care memory elements for simulation
US9689922B2 (en) * 2013-12-20 2017-06-27 Advantest Corporation Online design validation for electronic devices
CN107562554A (zh) * 2017-08-25 2018-01-09 郑州云海信息技术有限公司 一种存储可靠性测试方法及服务器
CN113203938B (zh) * 2021-04-15 2022-08-19 杭州加速科技有限公司 测试向量的存储方法、压缩方法及设备、测试方法及设备
WO2024065693A1 (zh) * 2022-09-30 2024-04-04 华为技术有限公司 一种生成压缩测试向量的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696772A (en) * 1994-05-06 1997-12-09 Credence Systems Corporation Test vector compression/decompression system for parallel processing integrated circuit tester
DE19855488A1 (de) * 1998-02-20 1999-09-09 Hewlett Packard Co Testmustergenerator mit verbesserter Testsequenzverdichtung
DE19858757A1 (de) * 1997-08-15 2000-06-29 Advantest Corp Vorrichtung und Verfahren zum Komprimieren und Entkomprimieren von Musterdaten für ein Halbleiterprüfsystem

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5243603A (en) * 1991-03-26 1993-09-07 Hewlett-Packard Company Method for online modification of compressed digital test vectors
US5668745A (en) 1995-10-20 1997-09-16 Lsi Logic Corporation Method and apparatus for testing of semiconductor devices
US5991898A (en) * 1997-03-10 1999-11-23 Mentor Graphics Corporation Arithmetic built-in self test of multiple scan-based integrated circuits
US6223316B1 (en) * 1998-05-27 2001-04-24 Nec Usa, Inc. Vector restoration using accelerated validation and refinement
US6327687B1 (en) * 1999-11-23 2001-12-04 Janusz Rajski Test pattern compression for an integrated circuit test environment
US6421794B1 (en) * 2000-03-09 2002-07-16 John T. Chen Method and apparatus for diagnosing memory using self-testing circuits
US6615377B1 (en) * 2000-05-08 2003-09-02 Hewlett-Packard Development Company, L.P. Integrated circuit with signal-vector queue for normal and test modes of operation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696772A (en) * 1994-05-06 1997-12-09 Credence Systems Corporation Test vector compression/decompression system for parallel processing integrated circuit tester
DE19858757A1 (de) * 1997-08-15 2000-06-29 Advantest Corp Vorrichtung und Verfahren zum Komprimieren und Entkomprimieren von Musterdaten für ein Halbleiterprüfsystem
DE19855488A1 (de) * 1998-02-20 1999-09-09 Hewlett Packard Co Testmustergenerator mit verbesserter Testsequenzverdichtung

Also Published As

Publication number Publication date
US6732312B2 (en) 2004-05-04
DE10210264A1 (de) 2002-10-10
JP4194785B2 (ja) 2008-12-10
JP2002311111A (ja) 2002-10-23
US20020162066A1 (en) 2002-10-31

Similar Documents

Publication Publication Date Title
DE10210264B4 (de) Ein Testvektorkomprimierungsverfahren
DE602004009284T2 (de) Systeme und Verfahren um automatisch generiertes Testmuster zu verarbeiten
DE60018101T2 (de) Testmuster-kompression für eine testumgebung von integrierten schaltungen
DE102006059158B4 (de) Integrierter Schaltkreischip mit zumindest zwei Schaltungskernen und zugehöriges Verfahren zum Testen
DE3606869C2 (de) Vorrichtung zur Datenkompression
DE102006059156B4 (de) Verfahren zum Testen eines integrierten Schaltkreischips mit zumindest zwei Schaltungskernen sowie integrierter Schaltkreischip und Testsystem
DE69114183T2 (de) System zur Reduzierung von Prüfdatenspeichern.
DE19858757B4 (de) Vorrichtung und Verfahren zum Komprimieren und Entkomprimieren von Musterdaten für ein Halbleiterprüfsystem
DE69230477T2 (de) Prüfmustererzeugungseinrichtung für sequentielle Logikschaltung einer integrierten Schaltung und Verfahren dazu
DE69700149T2 (de) Dekompressionsschaltkreis
DE3687401T2 (de) Integrierter viterbi-dekoder und verfahren zur pruefung desselben.
DE2515297A1 (de) Pruefsystem fuer logische netzwerke mit simulatororientiertem fehlerpruefgenerator
DE19855488A1 (de) Testmustergenerator mit verbesserter Testsequenzverdichtung
DE69802520T2 (de) Verfahren und vorrichtung zur verlustfreien datenkompression
EP0144078A2 (de) Verfahren und Anordnung zum Prüfen einer Schaltung nach der Abfragepfad-Technik
DE2730328A1 (de) Adressierbarer assoziativ-speicher
DE69712113T2 (de) Speichertester mit datenkompression
DE69714244T2 (de) Schnelles laden von prüfvektoren für eine automatische testeinrichtung
DE602004009784T2 (de) Datenkomprimierung
DE10335809B4 (de) Integrierte Schaltung mit einem zu testenden elektronischen Schaltkreis und Testsystem-Anordnung zum Testen der integrierten Schaltung
EP0479787B1 (de) Verfahren zur codierung einer elementfolge und einrichtung zur durchführung des verfahrens
DE10125331A1 (de) Vorrichtung und Verfahren zum Erzeugen eines Satzes von Testsequenzen unter Verwendung eines systematischen Füllens
DE68922341T2 (de) Anordnung zur Erleichterung des Testens einer logischen Schaltung.
DE69330539T2 (de) Steuerungseinrichtung zur Schnittstellensteuerung zwischen einer Testmaschine und einer elektronischen Mehrkanalschaltung, insbesondere nach dem "Boundary Test Standard"
DE3422287A1 (de) Pruefanordnung fuer digitalschaltungen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8327 Change in the person/name/address of the patent owner

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

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee