[go: up one dir, main page]

DE10210264A1 - Ein Testvektorkomprimierungsverfahren - Google Patents

Ein Testvektorkomprimierungsverfahren

Info

Publication number
DE10210264A1
DE10210264A1 DE10210264A DE10210264A DE10210264A1 DE 10210264 A1 DE10210264 A1 DE 10210264A1 DE 10210264 A DE10210264 A DE 10210264A DE 10210264 A DE10210264 A DE 10210264A DE 10210264 A1 DE10210264 A1 DE 10210264A1
Authority
DE
Germany
Prior art keywords
test vector
elements
sequence
random sequence
test
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE10210264A
Other languages
English (en)
Other versions
DE10210264B4 (de
Inventor
Ajay Khoche
Jochen 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

Ein Verfahren zum Komprimieren eines Testvektors erzeugt einen komprimierten Testvektor für die Verwendung in Verbindung mit einer automatischen Prüfeinrichtung (ATE). Das Verfahren umfaßt das Erzeugen eines Testvektors mit einer Sequenz von Elementen, von denen zumindest ein Element einen "Frei"-Wert umfaßt. Eine Zufallssequenz von Elementen wird ebenfalls erzeugt. Der Testvektor und die Zufallssequenz werden segmentiert. Jedes Segment des Testvektors wird mit einem entsprechenden Segment der Zufallssequenz verglichen, um zu bestimmen, ob die entsprechenden Segmente übereinstimmen. Wenn eine Übereinstimmung gefunden wird, wird ein erster Flagwert sequentiell in einen Komprimierungstestvektor eingefügt. Wenn eine Nichtübereinstimmung gefunden wird, wird ein zweiter Flagwert sequentiell in den Komprimierungsvektor eingefügt, und auch die Elemente des nicht übereinstimmenden Testvektorsegments. Der komprimierte Testvektor kann unter Verwendung der Flagwerte gemäß der Erfindung direkt in einen vollständig spezifizierten Testvektor dekomprimiert werden.

Description

Die Erfindung bezieht sich auf automatische Prüfeinrichtun­ gen zum Testen komplexer Systeme und integrierter Schaltun­ gen. Insbesondere bezieht sich die Erfindung auf die Erzeu­ gung und Speicherung von Testvektoren, die bei automati­ schen Prüfeinrichtungen verwendet werden.
Systeme und die integrierten Schaltungen (ICs; ICs = inte­ grated circuits), oder Halbleiter, die diese Systeme je­ weils bilden entwickeln sich laufend weiter und werden im­ mer komplexer. Die Zunahme an Komplexität, die in der Ver­ gangenheit 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 Bestandteil­ schaltungen geführt. In der Tat hat sich die Systemkomple­ xität in einigen Fällen in einem solchen Maß weiter entwic­ kelt, daß genaues und vollständiges manuelles Testen entwe­ der unpraktisch oder sogar unmöglich ist. Zusätzlich dazu, daß es im Fall von komplexen Systemen für genaues und rela­ tiv vollständiges Testen praktisch ist, kann automatisches Testen unter Verwendung von ATEs die Kosten des Erzeugens eines Systems und/oder dessen Bestandteile wesentlich redu­ zieren 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 ange­ messen zu sagen, daß buchstäblich alle großen System- und großen IC-Fertigungslinien irgendeine Form von ATE verwen­ den.
Wie es in Fig. 1A als Blockdiagramm dargestellt ist, um­ faßt eine typische ATE 10 eine zentrale Verarbeitungsein­ heit (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 ei­ nes Testvektors, der in dem Speicher 12 gespeichert ist. Der Testvektor, der oft durch eine externe Quelle 20 er­ zeugt wird, wird zu der ATE übertragen und unter Verwendung der I/O-Hardware 16 in den Speicher 12 geladen. Während dem automatischen Test 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 bewir­ ken. Der Betreiber tritt durch die Betreiberschnittstelle 18 mit der ATE in Wechselwirkung. Der Einfachheit halber wird das System oder die integrierte Schaltung, die gete­ stet wird, hierin nachfolgend als das DUT bezeichnet.
Wie hierin oben angemerkt wurde, umfaßt ein typischer auto­ matischer Test durch eine ATE einen Testvektor. Ein Test­ vektor ist eine Sequenz von Testoperationen, die durchge­ führt werden sollen, und/oder von Testwerten, die durch die ATE an das zu testende System oder die zu testende inte­ grierte Schaltung angelegt werden sollen. Bei den meisten modernen ATEs ist der Testvektor eine binäre Sequenz, auf­ grund der überwältigenden Verwendung von digitalen Compu­ tern 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ück­ sichtigt wird, die die Funktionalität des ist, identifi­ ziert. 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.
Fig. 1B stellt ein Flußdiagramm der Schritte bei dem her­ kömmlichen Verfahren zum Durchführen eines automatischen Tests eines DUT unter Verwendung einer ATE 10 dar. Das Ver­ fahren des automatischen Testens umfaßt den Schritt des Be­ rücksichtigens 40 von Entwurfsspezifikationen. Die Ent­ wurfsspezifikation definiert die Leistungsfähigkeit des DUT und trägt dazu bei, die Tests zu bestimmen, die während dem automatischen Testen durchgeführt werden sollten. Das Ver­ fahren des automatischen Testens umfaßt ferner den Schritt des Erzeugens 42 eines Testvektors. Typischerweise verwen­ det der Schritt des Erzeugens eines Testvektors eine Vor­ richtung oder ein Computerprogramm, das als automatischer Teststrukturgenerator (ATPG; ATPG = automated test pattern generator) bezeichnet wird, der Informationen von der Ent­ wurfsspezifikation verwendet, um Testvektoren zu erzeugen, die das DUT angemessen testen. Bei dem herkömmlichen Ver­ fahren des automatischen Testens folgt dem Schritt des Er­ zeugens eines Testvektors 42 der Schritt des Erzeugens 44 eines vollständig spezifizierten Testvektors. Der Testvek­ tor, 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 spe­ zielle 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 spezifi­ zierten Testvektors des herkömmlichen Verfahrens des auto­ matischen Testens folgt manchmal ein optionaler Schritt des Komprimierens 46 des vollständig spezifizierten Testvek­ tors, um die Größe des Testvektors zu reduzieren. Das Ver­ fahren des automatischen Testens umfaßt ferner den Schritt des Übertragens und Speicherns 48 des vollständig spezifi­ zierten und möglicherweise komprimierten Testvektors in dem Speicher 12 der ATE 10. Die ATE 10 verwendet den gespei­ cherten 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 Testvek­ tors dekomprimiert werden. Die optionalen Schritte des Kom­ primierens 46 und Dekomprimierens 50 sind in Fig. 1B durch Kästchen mit gestrichelten Linien dargestellt.
Wie oben erwähnt wurde, ist der Testvektor eine binäre Se­ quenz. Ein Großteil der folgenden Erörterung nimmt an, daß das Testen von digitalen Geräten mit einem binären Testvek­ tor 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 typi­ schen 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 spezifi­ zierten Zuständen (d. h. denjenigen mit eindeutig spezifi­ zierten Werten) stets eine große Anzahl von unspezifizier­ ten oder "Frei"-Zuständen umfassen. In den meisten Situa­ tionen gibt es bei einem bestimmten Testvektor viel mehr "Frei"-Zustände als spezifizierte Zustände.
Wie er hierin verwendet wird, ist ein spezifizierter Zu­ stand ein Element des Testvektors, dem als Folge des Abbil­ dens 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 spezi­ fiziert ist, und daher jeden Wert annehmen kann, nur be­ grenzt durch die Beschränkungen, die einem Element in dem Testvektor auferliegen. In dem Fall eines binären Testvek­ tors ist der spezifizierte Zustand beispielsweise entweder eine "1" oder eine "0", wie es durch die Abbildung spezifi­ ziert ist. Der "Frei"-Zustand kann entweder ein "1" oder eine "0" sein und ist durch die Abbildung nicht spezifi­ ziert.
Wie hierin oben erörtert wurde, wird der Testvektor norma­ lerweise unter Verwendung einer Vorrichtung oder eines Com­ puterprogramms, 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 an­ fänglich mit einer Sequenz von "1"ern, "0"en und "X" ge­ füllt. Das Verfahren, das definiert, wie der ATPG entschei­ det, einen Testvektor aufzubauen, geht über den Umfang die­ ser Erörterung hinaus. Im allgemeinen versucht der ATPG je­ doch, einen Testvektor aufzubauen, der die Wahrscheinlich­ keit des Findens aller potentieller Fehler maximiert, wäh­ rend 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 auf­ weisen. Daher muß der ATPG allen "Frei"-Zuständen einen be­ stimmenden Wert zuweisen. Typischerweise wird die Zuweisung eines Werts zu einem "Frei"-Zustand durch den ATPG unter Verwendung eines Zufallssequenzgenerators erreicht. Der Zu­ fallssequenzgenerator "füllt" die "Frei"-Zustände des Test­ vektors mit Zufallswerten. In dem Fall eines binären Test­ vektors, 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.
Fig. 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 Zufalls­ sequenz, um einen herkömmlichen, vollständig spezifizierten Testvektor zu erzeugen. In der ersten Zeile 81 von Fig. 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 Fig. 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 Fig. 2, die herkömmlich­ erweise zu dem Speicher der ATE übertragen und dort gespei­ chert 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 Test­ vektor 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ätz­ lich kann ein Gerät mehr Speicher zum Speichern von Test­ vektoren 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 umfas­ sen (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 bei­ den Lösungsansätze lehnt sich an eine herkömmliche Kompri­ mierungstechnologie an, die in Technologiebereichen, wie z. B. Plattenlaufwerken und Digitalkommunikation, verwendet wird. Ein Komprimierungsalgorithmus wird an den vollständig spezifizierten Testvektor angelegt. Der Komprimierungsalgo­ rithmus reduziert die Größe des vollständig spezifizierten Testvektors durch Entfernen von Redundanz, typischerweise unter Verwendung einer Komprimierungstechnik. Der kompri­ mierte 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 an­ wendbaren 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 wur­ de, in zwei oder mehr kleinere Vektoren, die, wenn sie zu­ sammengenommen werden, kleiner sind als der ursprüngliche vollständig spezifizierte Testvektor. Diese beiden kleine­ ren 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 Rekonstruk­ tion eines vollständig spezifizierten Testvektors, der äquivalent ist zu demjenigen, der ursprünglich durch den ATPG erzeugt wurde. Um diesen Lösungsansatz zum Komprimie­ ren eines vollständig spezifizierten Testvektors zu verwen­ den, muß die ATE selbstverständlich in der Lage sein, die "Befehle auszuführen". Das Aktivieren der ATE, um die Be­ fehle 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 Dekomprimie­ rung, die der ATE durch die oben beschriebenen Komprimie­ rungslösungsansätze auferlegt werden, keine wesentliche Be­ schränkung. Es sollte angemerkt werden, daß bei beiden Fäl­ len der hierin oben beschriebenen Testvektorkomprimierung die ATPG erzeugten Testvektoren, die durch die Komprimie­ rungsalgorithmen verarbeitet werden, vollständig spezifi­ zierte Testvektoren sind.
Dementsprechend wäre es vorteilhaft, ein Verfahren zum Er­ zeugen 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 redu­ ziert. 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 ge­ funden werden, um die Komprimierung des Testvektors zu er­ möglichen. Ein solches Verfahren würde die Durchschnittsef­ fizienz der Komprimierung wesentlich verbessern, und da­ durch einen seit langem bestehenden Bedarf nach einer Test­ vektorspeicherreduzierung auf dem Gebiet des ATE-Testens erfüllen.
Es ist die Aufgabe der vorliegenden Erfindung, ein verbes­ sertes Verfahren zum Komprimieren und Dekomprimieren eines Testvektors für die Verwendung bei automatischen Prüfein­ richtungen zu schaffen.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1, 13 oder 20 gelöst.
Die vorliegende Erfindung liefert ein neuartiges Testvek­ torkomprimierungsverfahren. Das Testvektorkomprimierungs­ verfahren erzeugt einen komprimierten Testvektor für die Verwendung in Verbindung mit einer automatischen Prüfein­ richtung (ATE).
Bei einem Aspekt der vorliegenden Erfindung ist ein Verfah­ ren zum Komprimieren eines Testvektors vorgesehen. Das Ver­ fahren 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. Zu­ mindest ein Element des Testvektors umfaßt einen "Frei"- Wert, der einen "Frei"-Zustand anzeigt. Das Komprimierungs­ verfahren umfaßt ferner die Schritte des sequentiellen Seg­ mentierens des Testvektors in Segmente der Testvektorele­ mente, und gleichartig dazu das Segmentieren der Zufallsse­ quenz 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 Flag­ wert sequentiell in eine erste Sequenz eingefügt. Wenn eine Nichtübereinstimmung gefunden wird, wird ein zweiter Flag­ wert sequentiell in die erste Sequenz eingefügt, und auch die Elemente des nicht übereinstimmenden Testvektorseg­ ments. Der komprimierte Testvektor wird aus der ersten Se­ quenz 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. Vorteilhaft­ erweise sind die Speicheranforderungen des komprimierten Testvektors, der durch das Verfahren der vorliegenden Er­ findung erzeugt wird, viel kleiner als diejenigen eines vollständig spezifizierten Testvektors, der herkömmlicher­ weise in einer ATE verwendet wird.
Bei einem Ausführungsbeispiel umfaßt das Verfahren des Kom­ primierens eines Testvektors ferner den Schritt des Dekom­ primierens des komprimierten Testvektors, um einen dekom­ primierten Testvektor zu erzeugen, der gleich ist wie der vollständig spezifizierte Testvektor, der herkömmlicherwei­ se durch eine ATE verwendet wird. Die ATE kann für eine De­ komprimierung gemäß dem Verfahren der Erfindung angepaßt werden. Die Dekomprimierung umfaßt die Schritte des Unter­ suchens des komprimierten Testvektors sequentiell nach dem ersten Flagwert und dem zweiten Flagwert. Wenn ein erster Flagwert gefunden wird, werden die Elemente der entspre­ chenden Zufallssequenz in eine zweite Sequenz eingefügt. Wenn ein zweiter Flagwert gefunden wird, werden die Elemen­ te 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 spezifizier­ ter 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 Test­ vektors, der eine Sequenz von Elementen aufweist, vorgese­ hen. Das Verfahren umfaßt den Schritt des Erzeugens einer Zufallssequenz von Elementen mit zumindest der gleichen An­ zahl von Elementen wie der Testvektor. Das Verfahren umfaßt ferner die Schritte des sequentiellen Segmentierens des Testvektors in Segmente der Testvektorelemente, wobei zu­ mindest ein Element des Testvektors einen "Frei"-Wert um­ faß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 Seg­ mente ü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 Testvek­ tor wird dann auf der Basis der unterschiedlichen Flagwerte in einen vollständig spezifizierten Testvektor dekompri­ miert.
Bei einem Ausführungsbeispiel des Verfahrens zum Komprimie­ ren 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 Seg­ ment des Testvektors, das mit einem entsprechenden Segment der Zufallssequenz übereinstimmt. Die Komprimierung umfaßt ferner die Schritte des sequentiellen Einfügens eines zwei­ ten 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 entsprechen­ den Elemente der anderen Zufallssequenz in eine zweite Se­ quenz für jeden Flagwert, der eine Übereinstimmung anzeigt; und des sequentiellen Einfügens der Elemente des kompri­ mierten Testvektors, die jedem Flagwert folgen, der eine Nichtübereinstimmung in der zweiten Sequenz anzeigt. Der dekomprimierte Testvektor wird aus der zweiten Sequenz er­ zeugt, 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 Testvektorseg­ ments mit einem entsprechenden Element des Zufallssequenz­ segments überein, wenn das entsprechende Element den glei­ chen Wert aufweist, oder wenn das Element des Testvektor­ segments den "Frei"-Wert aufweist. Der komprimierte Test­ vektor wird zu dem Speicher der ATE übertragen und in dem­ selben 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 voll­ stä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 Dekomprimie­ rung durchführen, vorausgesetzt, daß die ATE modifiziert ist, um die Dekomprimierungsschritte der Erfindung zu un­ terstützen.
Die verschiedenen Merkmale und Vorteile der vorliegenden Erfindung werden mit Bezugnahme auf die folgende detail­ lierte Beschreibung in Verbindung mit den beiliegenden Zeichnungen, bei denen gleiche Bezugszeichen gleiche struk­ turelle Elemente bezeichnen, leichter verständlich werden.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeich­ nungen näher erläutert. Es zeigen:
Fig. 1A ein Blockdiagramm eines typischen ATE-Systems, das einen ATPG zum Erzeugen eines Testvektors um­ faßt;
Fig. 1B ein Flußdiagramm der Hauptschritte des Erzeugens und Verwenden eines Testvektors in der ATE von Fig. 1A;
Fig. 2 ein Beispiel eines Testvektors, einer Zufallsse­ quenz und eines entsprechenden vollständig spezi­ fizierten Testvektors;
Fig. 3 ein Flußdiagramm eines Verfahrens zum Komprimie­ ren eines Testvektors für die Verwendung mit ei­ ner automatischen Prüfeinrichtung (ATE) gemäß der vorliegenden Erfindung;
Fig. 4 ein Beispiel zum Verwenden des Verfahrens zum Komprimieren eines Testvektors der vorliegenden Erfindung, um einen komprimierten Testvektor zu erzeugen; und
Fig. 5 ein Beispiel zum Dekomprimieren des komprimierten Testvektors bei dem Beispiel von Fig. 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 Testvek­ tor, 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 Test­ vektors, der herkömmlicherweise bei ATEs verwendet wird. Darüber hinaus kann die ATE gemäß der vorliegenden Erfin­ dung den komprimierten Testvektor während dem ATE-Betrieb dekomprimieren, um den vollständig spezifizierten Testvek­ tor für die Verwendung bei einem automatischen Test zu er­ zeugen.
Fig. 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 Verfah­ ren 100b zum Dekomprimieren. Das Verfahren 100a zum Kompri­ mieren 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 au­ tomatischen Teststrukturgenerator (ATPG) oder mit einer an­ deren geeigneten Einrichtung, so daß der Testvektor spezi­ fizierte Zustände und "Frei"-Zustände umfaßt. Der Schritt des Erzeugens 102 kann jedes herkömmliche Verfahren zum Er­ zeugen eines Testvektors für die ATE verwenden. Dementspre­ chend 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" ei­ nen "Frei"-Zustand oder -Wert anzeigt. Ein solcher Testvek­ tor wird beispielshaft in der ersten Zeile 121 der Spalte 1 von Fig. 4 dargestellt. Alle herkömmlichen Verfahren zum Erzeugen eines Testvektors, der "Frei"-Zustände erzeugt, liegen innerhalb des Schutzbereichs der vorliegenden Erfin­ dung. Ferner kann das Verfahren 100 der vorliegenden Erfin­ dung an zumindest einen Testvektor und vorzugsweise alle Testvektoren für ein DUT angelegt werden.
Wie es in Fig. 3 dargestellt ist, umfaßt das Verfahren 100a ferner den Schritt des Erzeugens 104 einer Zufallsse­ quenz unter Verwendung eines Zufallssequenzgenerators. Mit Bezugnahme auf Fig. 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 mehre­ ren 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 Zufallssequenzgene­ ratoren, die bei Digitalcomputern verwendet werden, wobei ein bestimmter "Keim"- oder Anfangswert eine spezielle Zu­ fallssequenz erzeugt. Der gleiche Keimwert erzeugt immer die gleiche Zufallssequenz, oder genauer gesagt, Pseudozu­ fallssequenz. Ein Fachmann auf diesem Gebiet würde ohne weiteres geeignete Zufallssequenzgeneratoren identifizie­ ren, ohne übertriebene Experimente durchzuführen. Alle sol­ che Zufallssequenzgeneratoren oder Algorithmen liegen in dem Schutzbereich der vorliegenden Erfindung.
Mit erneuter Bezugnahme auf Fig. 3 umfaßt das Verfahren 100a ferner das Segmentieren 106 des Testvektors und der Zufallssequenz in Testvektorsegmente und Zufallssequenzseg­ mente. 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 Zufallssequenzseg­ menten. Mit erneuter Bezugnahme auf das in Fig. 4 darge­ stellte Beispiel sind die Ergebnisse des Schritts des Seg­ mentierens 106 in der ersten und zweiten Zeile 138, 132 von Spalte 2 dargestellt. Für das in Fig. 4 dargestellte Bei­ spiel ist die Segmentgröße fest und gleich vier. Die Seg­ mentgröße von vier und der feste Zustand sind nur als Bei­ spiel 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 Verglei­ chens 108 der Segmente des segmentierten Testvektors mit den entsprechenden Segmenten der segmentierten Zufallsse­ quenz, wie es in Fig. 3 näher dargestellt ist. Bei dem Schritt des Vergleichens 108 werden die Elemente in jedem Segment des segmentierten Testvektors mit den entsprechen­ den Elementen in dem entsprechenden Segment der segmentier­ ten Zufallssequenz verglichen. Falls alle Elemente eines bestimmten Testvektorsegments mit entsprechenden Elementen eines entsprechenden Zufallssequenzsegments übereinstimmen, werden die Segmente als übereinstimmend betrachtet. Für je­ des Segment führt der Vergleich entweder zu einer "Überein­ stimmung" 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 Zu­ fallssequenzsegment zusammen. Die Tabelle 1 erweitert die­ ses Konzept und definiert, ob für alle möglichen Zustände der Elemente eines Testvektorsegments und eines Zufallsse­ quenzsegments eine Übereinstimmung vorliegt. Die Spalte mit dem Titel "Testvektorbit" entspricht Elementen von einem Testvektorsegment, während die Spalte mit dem Titel "Zu­ fallssequenzbit" 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 Testvektor­ segment 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.
Tabelle 1: Definition von Elementübereinstimmung für den Schritt des Vergleichens 108.
Mit erneuter Bezugnahme auf Fig. 3 umfaßt das Verfahren 100a ferner den Schritt des Erzeugens 110a eines kompri­ mierten 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 ei­ nes komprimierten Testvektors umfaßt den Schritt des Be­ trachtens 110a eines Paars von Segmenten, und dann den Schritt des Einfügens 110b von entweder einer "1" oder ei­ ner "0", gefolgt von dem Element des Segments, das betrach­ tet 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 komprimier­ ten 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 wer­ den 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äch­ stes 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 überein­ stimmt. Oder, wie vorher, falls das nächste Segmentpaar nicht übereinstimmt, sind die nächsten Elemente in der kom­ primierten 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 ko­ piert. Der Schritt des Erzeugens 110, der die Schritte des Betrachtens 110a und Einfügens 210b umfaßt, wiederholt sich sequentiell für jedes aufeinanderfolgende Paar von Segmen­ ten, bis alle Segmente des Testvektors verarbeitet sind.
Mit erneuter Bezugnahme auf das in Fig. 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 Fig. 4 dargestellten Beispiel ersichtlich ist, stimmt das erste Segmentpaar nicht überein, wie es durch das "x" durch die vertikale Linie unterhalb des letz­ ten Elements der Sequenz dargestellt ist. Daher ist das er­ ste 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 über­ ein, 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 un­ terhalb des ersten Elements des letzten Segments angezeigt ist. Darüber hinaus sind bei dem siebten Segment des Test­ vektors 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überein­ stimmung 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 Elementposi­ tionen des komprimierten Testvektors eingefügt. Ferner wer­ den die Werte für die Elemente mit einem "Frei"-Zustand in dem Testvektor von den entsprechenden Positionen in dem Zu­ fallsvektorsegment kopiert, und in den komprimierten Test­ vektor 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 an­ dere eine Nichtübereinstimmung anzeigt. Nach dem Flag, das eine Nichtübereinstimmung anzeigt, folgen in dem kompri­ mierten Testvektor die spezifizierten Elemente des Origi­ naltestvektorsegments, das der Flag zugeordnet ist, zusam­ men mit Elementen von der Zufallssequenz für die "Frei"- Zustände. Wie hierin oben beschrieben ist, wurde zu Dar­ stellungszwecken 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, einge­ setzt werden könnten, ohne die wesentliche Natur der Kom­ primierung zu ändern, die durch das Verfahren 100a erzeugt wird. Alle solchen m-faches Alphabete und alternative Flag­ werte liegen innerhalb des Schutzbereiches der vorliegenden Erfindung.
Der komprimierte Testvektor wird zu dem Speicher der ATE übertragen und in demselben gespeichert. Aufgrund der An­ zahl von "Frei"-Zuständen, die typischerweise bei ATPG- erzeugten Testvektoren gefunden wurden, erfordert der kom­ primierte Testvektor im Vergleich zu einem vollständig spe­ zifizierten Testvektor, der von dem Testvektor unter Ver­ wendung von herkömmlichen Verfahren erzeugt werden würde, vorteilhafterweise zum Teil wesentlich weniger Speicher­ platz in dem Speicher. Die Anzahl von Bits, die für die Speicherung eines binären komprimierten Testvektors erfor­ derlich ist, der durch das Verfahren 100a der vorliegenden Erfindung erzeugt wurde, ist durch die Gleichung (1) ange­ zeigt.
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
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 Komprimierungspro­ zesses zu optimieren.
Während dem automatischen Test, der durch die ATE durchge­ fü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 Zufallssequenzgenera­ tor, der bei der Dekomprimierung verwendet wird, kann der gleiche sein, der währenddem Schritt des Erzeugens 104 ei­ ner Zufallssequenz verwendet wurde. Vorzugsweise wird wäh­ rend der Dekomprimierung ein anderer Zufallssequenzgenera­ tor, 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 an­ zeigt. Während der Dekomprimierung des komprimierten Test­ vektors zeigt ein Flagwert von "1" die "Verwendung der ent­ sprechenden Werte von der Zufallssequenz" an. Gleichartig dazu zeigt ein Flagwert von "0" die "Verwendung der folgen­ den S Werte des komprimierten Testvektors für den vollstän­ dig 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 Er­ findung wirkt auf dem komprimierten Testvektor, um einen dekomprimierten Testvektor zu erzeugen, wobei der dekompri­ mierte 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 Un­ tersuchen 112 eines ersten Elements in dem komprimierten Testvektor. Das erste Element eines komprimierten Testvek­ tors ist per Definition ein erster Flagwert. Falls der er­ ste Flagwert eine Nichtübereinstimmung anzeigt, beispiels­ weise eine "0" bei dem hierin oben beschriebenen Dreipegel­ logik-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 kompri­ mierten Testvektor, das den S Elementen, die kopiert wer­ den, 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, bei­ spielsweise eine "1" in dem hierin oben beschriebenen Drei­ pegellogik-Fall, werden die ersten S Elemente der Zufalls­ sequenz, die in dem Schritt des Erzeugens 116 durch den Zu­ fallssequenzgenerator 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 Unter­ suchens 112 und des Einfügens 114 für jedes Element wieder­ holt, das einem Flagwert in dem komprimierten Testvektor entspricht.
Um diese Beschreibung des Verfahrens 100b zum Dekomprimie­ ren deutlicher zu machen, wird erneut auf das Beispiel von Fig. 4 Bezug genommen. Bei dem in Fig. 4 dargestellten Beispiel sei daran erinnert, daß der komprimierte Testvek­ tor binär war und die Flagwerte entweder "1", was eine Übereinstimmung anzeigt, oder "0", was eine Nichtüberein­ stimmung anzeigt, waren, und die Segmentgröße S vier war. Fig. 5 stellt ein Beispiel zum Dekomprimieren des kompri­ mierten Testvektors dar, der in dem in Fig. 4 dargestell­ ten Beispiel erzeugt wird.
Mit Bezugnahme auf Fig. 5 entspricht die erste Zeile 141 dem komprimierten Testvektor von Zeile 133 in Fig. 4. Die zweite Zeile 142 entspricht der Zufallssequenz von dem Schritt des Erzeugens 116. Es ist anzumerken, daß die Zu­ fallssequenz die gleiche Zufallssequenz in der Zeile 122 und 132 von Fig. 4 ist, die während dem Verfahren 100a der Komprimierung erzeugt wurde 104.
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 dekom­ primierte Sequenz als die ersten vier Elemente kopiert oder eingefügt 114, wie es in der dritten Zeile 143 von Fig. 5 dargestellt ist. Die ersten vier Elemente der Zufallsse­ quenz, die in Zeile 142 von Fig. 5 dargestellt sind, wer­ den 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 Fol­ ge werden die nächsten vier Elemente der Zufallssequenz in Zeile 142, das fünfte, das sechste, siebte und achte Ele­ ment, in die fünfte, sechste, siebte und achte Elementposi­ tion 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än­ diger dekomprimierter Testvektor erzeugt ist. Ein schneller Vergleich zwischen dem dekomprimierten Testvektor in Zeile 143 von Fig. 5 und dem Testvektor in Zeile 121 von Fig. 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 Dekompri­ mieren des komprimierten Testvektors einen dekomprimierten Testvektor, der mit dem vollständig spezifizierten Testvek­ tor 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 Testvek­ tors. Die einzige Modifikation an dem herkömmlichen ATE, die für das Verfahren 100 zum Komprimieren und Dekomprimie­ ren des Testvektors gemäß der Erfindung erforderlich ist, ist es, die Fähigkeit zu liefern, die gleiche oder identi­ sche Zufallssequenz zu erzeugen 104, 116, und die Fähig­ keit, die Dekomprimierungsschritte des Verfahrens 100b durchzuführen.
Das Verfahren 104b der Dekomprimierung kann gemäß der Er­ findung 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 Softwareimple­ mentierung kann die zentrale Verarbeitungseinheit CPU des ATE angepaßt werden, um Software zu enthalten, um die De­ komprimierungsschritte auszuführen. Wie in dem Fall von an­ deren herkömmlichen Komprimierungsmethoden begrenzt die An­ forderung für Dekomprimierung 100b-Verarbeitung gemäß der Erfindung in dem ATE die Anwendbarkeit der vorliegenden Er­ findung nicht wesentlich.
Darüber hinaus kann das Verfahren 100 zum Komprimieren und Dekomprimieren eines Testvektors der vorliegenden Erfindung vorteilhafterweise in Verbindung mit herkömmlichen Kompri­ mierungsmethoden verwendet werden, um eine noch größere Komprimierung zu erreichen. Beispielsweise kann ein her­ kö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 Test­ vektor, der durch das Verfahren 100a erzeugt wurde, höchst­ wahrscheinlich 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 (42)

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 "Frei"-Zustand anzeigt;
Erzeugen (104) einer Zufallssequenz von Elementen mit einer gleichen Anzahl von Elementen wie der Testvek­ tor;
sequentielles Segmentieren (106) des Testvektors in Segmente der Testvektorelemente;
gleichartiges Segmentieren (106) der Zufallssequenz in Segmente der Zufallssequenzelemente, die den Testvek­ torsegmenten entsprechen;
Vergleichen (108) jedes Segments des Testvektors mit einem entsprechenden Segment der Zufallssequenz; und
Erzeugen eines komprimierten Testvektors aus dem Ver­ gleich.
2. Verfahren zum Komprimieren gemäß Anspruch 1, bei dem der Schritt des Erzeugens eines komprimierten Testvek­ tors folgende Schritte umfaßt:
  • a) Betrachten (110a), ob die entsprechenden Segmente übereinstimmen oder nicht übereinstimmen;
  • b) sequentielles Einfügen (110b) eines ersten Flag­ werts für eine Übereinstimmung in einer ersten Sequenz; und
  • c) sequentielles Einfügen (110b) eines zweiten Flag­ werts für eine Nichtübereinstimmung in der ersten Sequenz und Einfügen der Elemente des nicht über­ einstimmenden Testvektorsegments in die erste Se­ quenz nach dem zweiten Flagwert.
3. Verfahren zum Komprimieren gemäß Anspruch 2, das fer­ ner den Schritt des Wiederholens des Schritts (a) des Betrachtens (110a) und der Schritte (b) und (c) des sequentiellen Einfügens (110b) umfaßt, bis alle der Segmente des Testvektors betrachtet sind, wodurch aus der ersten Sequenz der komprimierte Testvektor erzeugt wird (110a).
4. Verfahren zum Komprimieren gemäß Anspruch 2 oder 3, bei dem in dem Schritt (a) des Betrachtens (110a) ent­ sprechende Segmente übereinstimmen, wenn jedes Element des Testvektorsegments mit einem entsprechenden Ele­ ment des entsprechenden Zufallssequenzsegments über­ einstimmt.
5. Verfahren zum Komprimieren gemäß Anspruch 4, bei dem während des Schritts (a) des Betrachtens (110a) ein Element des Testvektorsegments mit einem entsprechen­ den Element des Zufallssequenzsegments übereinstimmt, wenn das jeweilige Element den gleichen Wert aufweist, oder wenn das Element des Testvektorsegments den "Frei"-Wert aufweist.
6. Verfahren zum Komprimieren gemäß einem der Ansprüche 1 bis 5, bei dem in den Schritten des sequentiellen Seg­ mentierens und gleichartigen Segmentierens (106) die Anzahl von Elementen in jedem entsprechenden Paar von Testvektoren und Zufallssequenzsegmenten gleich ist.
7. Verfahren zum Komprimieren gemäß einem der Ansprüche 1 bis 6, bei dem sich in den Schritten des sequentiellen Segmentierens und gleichartigen Segmentierens (106) die Anzahl von Elementen in zumindest einem entspre­ chenden Paar von Testvektor- und Zufallssequenzsegmen­ ten von der Anzahl von Elementen in einem anderen Paar von entsprechenden Segmenten unterscheidet.
8. Verfahren zum Komprimieren gemäß einem der Ansprüche 2 bis 7, das ferner den Schritt des Dekomprimierens (100b) des komprimierten Testvektors umfaßt, um einen dekomprimierten Testvektor zu erzeugen.
9. Verfahren zum Komprimieren gemäß Anspruch 8, bei dem der Schritt des Dekomprimierens folgende Schritte um­ faßt:
  • a) Untersuchen (112) des komprimierten Testvektors sequentiell nach dem ersten Flagwert und dem zweiten Flagwert;
  • b) sequentielles Einfügen (114) entsprechender Ele­ mente der Zufallssequenz in eine zweite Sequenz, wenn der erste Flagwert gefunden ist; und
  • c) sequentielles Einfügen (114) der Elemente des komprimierten Testvektors, die dem zweiten Flag­ wert folgen, in die zweite Sequenz, wenn der zweite Flagwert gefunden ist.
10. Verfahren zum Komprimieren gemäß Anspruch 9, bei dem der Schritt des Dekomprimierens ferner den Schritt des Wiederholens des Schritts (d) des Untersuchens (112) und der Schritte (e) und (f) 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.
11. Verfahren zum Komprimieren gemäß Anspruch 10, bei dem der dekomprimierte Testvektor ein vollständig spezifi­ zierter Testvektor ist.
12. Verfahren zum Komprimieren gemäß einem der Ansprüche 9 bis 11, bei dem vor dem Schritt (e) des sequentiellen Einfügens (110b) entsprechender Elemente der Schritt des Dekomprimierens (100b) ferner folgende Schritte umfaßt:
Erzeugen (104) einer weiteren Zufallssequenz von Ele­ menten, 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 (e) des sequentiellen Einfügens (110b).
13. Verfahren zum Komprimieren und Dekomprimieren 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;
gleichartiges Segmentieren (106) der Zufallssequenz in Segmente der Zufallssequenzelemente, die den Testvek­ torsegmenten entsprechen;
sequentielles Vergleichen (108) jedes Segments des Testvektors mit dem entsprechenden Segment der Zu­ fallssequenz, um zu bestimmen, ob entsprechende Paare von Testvektor- und Zufallssequenzsegmenten überein­ stimmen;
Komprimieren (100a) des Testvektors durch Einfügen un­ terschiedlicher Flagwerte für übereinstimmende Paare von entsprechenden Segmenten und für entsprechende Paare von Segmenten, die nicht übereinstimmen; und
Dekomprimieren (100b) des komprimierten Testvektors in einen vollständig spezifizierten Testvektor auf der Basis der unterschiedlichen Flagwerte.
14. Verfahren zum Komprimieren und Dekomprimieren eines Testvektors gemäß Anspruch 13, bei dem in dem Schritt des Komprimierens (100a) entsprechende Segmente über­ einstimmen, wenn jedes Element des Testvektorelements mit einem entsprechenden Element des entsprechenden Zufallssequenzsegments des Paars übereinstimmt.
15. Verfahren zum Komprimieren und Dekomprimieren eines Testvektors gemäß Anspruch 13 oder 14, bei dem während dem Schritt 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.
16. Verfahren zum Komprimieren und Dekomprimieren eines Testvektors gemäß einem der Ansprüche 13 bis 15, bei dem der Schritt des Komprimierens (100a) folgende Schritte umfaßt:
sequentielles Einfügen (110b) eines ersten Flagwertes in eine erste Sequenz für jedes Segment des Testvek­ tors, das mit dem entsprechenden Segment der Zufalls­ sequenz übereinstimmt; und
sequentielles Einfügen (110b) eines zweiten Flagwerts in die erste Sequenz für jedes Segment des Testvek­ tors, das nicht mit dem entsprechenden Segment der Zu­ fallssequenz übereinstimmt, gefolgt vom Einfügen der Elemente des nicht übereinstimmenden Testvektorseg­ ments in die erste Sequenz, um von der ersten Sequenz einen komprimierten Testvektor zu erzeugen.
17. Verfahren zum Komprimieren und Dekomprimieren eines Testvektors gemäß einem der Ansprüche 13 bis 16, bei dem der Schritt des Dekomprimierens (110b) folgende Schritte umfaßt:
Erzeugen (116) einer anderen Zufallssequenz von Ele­ menten, 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 kompri­ mierten Testvektors, die jedem Flagwert, der eine Nichtübereinstimmung anzeigt, in die zweite Sequenz nachfolgen, um den vollständig spezifizierten Testvek­ tor von der zweiten Sequenz zu erzeugen.
18. Verfahren zum Komprimieren und Dekomprimieren eines Testvektors gemäß einem der Ansprüche 13 bis 17, bei dem in den Schritten des sequentiellen Segmentierens (106) und des gleichartigen Segmentierens die Anzahl von Elementen in jedem entsprechenden Paar von Test­ vektoren und Zufallssequenzsegmenten gleich ist.
19. Verfahren zum Komprimieren und Dekomprimieren eines Testvektors gemäß einem der Ansprüche 13 bis 18, bei dem sich in den Schrittendes sequentiellen Segmentie­ rens 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.
20. Verfahren zum Komprimieren und Dekomprimieren eines Testvektors mit einer Sequenz von Elementen, das fol­ gende 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;
gleichartiges Segmentieren (106) der Zufallssequenz in Segmente der Zufallssequenzelemente, die den Testvek­ torsegmenten entsprechen;
Vergleichen (108) jedes Segments des Testvektors mit dem entsprechenden Segment der Zufallssequenz, um zu bestimmen, ob die entsprechenden Segmente übereinstim­ men;
sequentielles Einfügen (114) eines ersten Flagwertes in eine erste Sequenz für jedes Segment von dem Test­ vektor, das mit dem entsprechenden Segment der Zu­ fallssequenz übereinstimmt;
sequentielles Einfügen (114) eines zweiten Flagwerts in die erste Sequenz für jedes Segment des Testvek­ tors, das nicht mit dem entsprechenden Segment der Zu­ fallssequenz übereinstimmt, gefolgt von dem Einfügen der Elemente des nicht übereinstimmenden Testvektor­ segments in die erste Sequenz, um aus der ersten Se­ quenz einen komprimierten Testvektor zu erzeugen;
Untersuchen (112) des komprimierten Testvektors nach ersten Flagwerten und zweiten Flagwerten;
sequentielles Einfügen (114) der Elemente der Zufalls­ sequenz, die jedem der ersten Flagwerte entsprechen, in eine zweite Sequenz; und
sequentielles Einfügen (114) der Elemente des kompri­ mierten Testvektors, die jedem der zweiten Flagwerte nachfolgen, in die zweite Sequenz, um aus der zweiten Sequenz den dekomprimierten Testvektor zu erzeugen.
21. Verfahren zum Komprimieren und Dekomprimieren gemäß Anspruch 20, bei dem in dem Schritt des Vergleichens (108) entsprechende Segmente übereinstimmen, wenn je­ des Element des Testvektorsegments mit einem entspre­ chenden Element des entsprechenden Zufallssequenzseg­ ments übereinstimmt.
22. Verfahren zum Komprimieren und Dekomprimieren gemäß Anspruch 20 oder 21, bei dem während dem Schritt des Vergleichens (108) ein Element des Testvektorsegments mit einem entsprechenden Element des Zufallssequenz­ segments übereinstimmt, wenn das jeweilige Element den gleichen Wert aufweist, oder wenn das Element des Testvektorsegments den "Frei"-Wert aufweist.
23. Verfahren zum Komprimieren und Dekomprimieren gemäß einem der Ansprüche 20 bis 22, bei dem in den Schrit­ ten des sequentiellen Segmentierens und gleichartigen Segmentierens (106) die Anzahl von Elementen in jedem der entsprechenden Testvektor- und Zufallssequenzseg­ menten gleich ist.
24. Verfahren zum Komprimieren und Dekomprimieren gemäß einem der Ansprüche 20 bis 23, bei dem sich in den Schritten des sequentiellen Segmentierens und gleich­ artigen Segmentierens (106) die Anzahl von Elementen in zumindest einem Paar von entsprechenden Testvektor- und Zufallssequenzsegmenten von der Anzahl von Elemen­ ten bei einem anderen Paar von entsprechenden Segmen­ ten unterscheidet.
25. Verfahren zum Komprimieren und Dekomprimieren gemäß einem der Ansprüche 20 bis 24, bei dem der dekompri­ mierte Testvektor ein vollständig spezifizierter Test­ vektor ist.
26. Verfahren zum Komprimieren und Dekomprimieren gemäß einem der Ansprüche 20 bis 25, bei dem vor den Schrit­ ten des sequentiellen Einfügens (110b) der Elemente das Verfahren ferner folgende Schritte umfaßt:
Erzeugen (104) einer weiteren Zufallssequenz von Ele­ menten, 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.
27. Verfahren zum Komprimieren gemäß Anspruch 1, das an alle Testvektoren eines zu testenden Geräts (DUT) un­ ter Verwendung einer automatischen Prüfeinrichtung (ATE) angelegt wird.
28. Verfahren zum Komprimieren gemäß Anspruch 8, das an alle Testvektoren eines zu testenden Geräts unter Ver­ wendung einer automatischen Prüfeinrichtung angelegt wird.
29. Verfahren zum Komprimieren gemäß Anspruch 8, bei dem der Schritt des Dekomprimierens als Hardware in eine automatische Prüfeinrichtung implementiert ist.
30. Verfahren zum Komprimieren gemäß Anspruch 29, bei dem die Hardware ein mikroelektronischer Chip ist.
31. Verfahren zum Komprimieren gemäß Anspruch 8, bei dem der Schritt des Dekomprimierens als Software in eine automatische Prüfeinrichtung (ATE) implementiert ist.
32. Verfahren zum Komprimieren gemäß Anspruch 31, bei dem die Software in eine zentrale Verarbeitungseinheit (CPU) der automatischen Prüfeinrichtung eingebaut ist.
33. Verfahren zum Komprimieren und Dekomprimieren gemäß Anspruch 13, das unter Verwendung einer automatischen Prüfeinrichtung an alle Testvektoren eines zu testen­ den Geräts angelegt wird.
34. Verfahren zum Komprimieren und Dekomprimieren gemäß Anspruch 13, bei dem der Schritt des Dekomprimierens als Hardware in eine automatische Prüfeinrichtung im­ plementiert ist.
35. Verfahren zum Komprimieren und Dekomprimieren gemäß Anspruch 34, bei dem die Hardware ein mikroelektroni­ scher Chip ist.
36. Verfahren zum Komprimieren gemäß Anspruch 13, bei dem der Schritt des Dekomprimierens als Software in eine automatischen Prüfeinrichtung implementiert ist.
37. Verfahren zum Komprimieren gemäß Anspruch 36, bei dem die Software in eine zentrale Verarbeitungseinheit der automatischen Testeinrichtung eingebaut ist.
38. Verfahren zum Komprimieren und Dekomprimieren gemäß Anspruch 20, das unter Verwendung einer automatischen Prüfeinrichtung an alle Testvektoren eines zu testen­ den Geräts angelegt wird.
39. Verfahren zum Komprimieren und Dekomprimieren gemäß Anspruch 20, bei dem der Schritt des Untersuchens und die Schritte des sequentiellen Einfügens der Elemente als Hardware in eine automatische Prüfeinrichtung im­ plementiert sind.
40. Verfahren zum Komprimieren und Dekomprimieren gemäß Anspruch 39, bei dem die Hardware ein mikroelektroni­ scher Chip ist.
41. Verfahren zum Komprimieren und Dekomprimieren gemäß Anspruch 20, bei dem die Schritte des Untersuchens und des sequentiellen Einfügens der Elemente als Software in eine automatische Prüfeinrichtung implementiert sind.
42. Verfahren zum Komprimieren und Dekomprimieren gemäß Anspruch 41, 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 US6732312B2 (en) 2001-03-09 2001-03-09 Test vector compression method
US09/802,440 2001-03-09

Publications (2)

Publication Number Publication Date
DE10210264A1 true DE10210264A1 (de) 2002-10-10
DE10210264B4 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 华为技术有限公司 一种生成压缩测试向量的方法和装置

Family Cites Families (10)

* 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
US5696772A (en) * 1994-05-06 1997-12-09 Credence Systems Corporation Test vector compression/decompression system for parallel processing integrated circuit tester
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
US5883906A (en) * 1997-08-15 1999-03-16 Advantest Corp. Pattern data compression and decompression for semiconductor test system
US6067651A (en) * 1998-02-20 2000-05-23 Hewlett-Packard Company Test pattern generator having improved test sequence compaction
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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE60116046T2 (de) Eingebaute Selbsttestschaltung mit einem Schieberegister mit linearer Rückkopplung
DE69114183T2 (de) System zur Reduzierung von Prüfdatenspeichern.
DE69831900T2 (de) Programmier-Modus-Auswahl mit JTAG Schaltungen
DE69209404T2 (de) Selbsttest integrierter Schaltungen mit hybriden Mustern
DE69011133T2 (de) Verfahren und gerät zur hochgenauigen erzeugung von gewichteten zufallsmustern.
DE2555439C2 (de) Monolithische hochintegrierte Halbleiterschaltung
DE60018101T2 (de) Testmuster-kompression für eine testumgebung von integrierten schaltungen
DE10210264A1 (de) Ein Testvektorkomprimierungsverfahren
DE69230477T2 (de) Prüfmustererzeugungseinrichtung für sequentielle Logikschaltung einer integrierten Schaltung und Verfahren dazu
DE602004009284T2 (de) Systeme und Verfahren um automatisch generiertes Testmuster zu verarbeiten
DE3687401T2 (de) Integrierter viterbi-dekoder und verfahren zur pruefung desselben.
DE2556822A1 (de) Monolithische hochintegrierte halbleiterschaltung
EP0144078A2 (de) Verfahren und Anordnung zum Prüfen einer Schaltung nach der Abfragepfad-Technik
DE2730328A1 (de) Adressierbarer assoziativ-speicher
DE69712113T2 (de) Speichertester mit datenkompression
DE2439577A1 (de) Verfahren und einrichtung zum pruefen von hochintegrierten schaltungen
DE60010614T2 (de) On-line Prüfung des programmierbaren Verbindungsnetzwerks in einer feldprogrammierbaren Gatteranordnung
DE2256135B2 (de) Verfahren und Anordnung zum Prüfen von monolithisch integrierten Halbleiterschaltungen
DE602004009784T2 (de) Datenkomprimierung
EP0580663A1 (de) Verfahren zur verifikation datenverarbeitender systeme.
DE3879007T2 (de) Steuerkreis fuer verarbeitungsimpulse.
DE4327660C2 (de) Vorrichtung zum Herstellen einer und Herstellungsverfahren für eine integrierte Halbleiterschaltungsvorrichtung und elektronische Schaltungsvorrichtung
DE10335809B4 (de) Integrierte Schaltung mit einem zu testenden elektronischen Schaltkreis und Testsystem-Anordnung zum Testen der integrierten Schaltung
DE4210109C2 (de) Sortiervorrichtung zum Sortieren von Daten und Sortierverfahren
DE10125331A1 (de) Vorrichtung und Verfahren zum Erzeugen eines Satzes von Testsequenzen unter Verwendung eines systematischen Füllens

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