-
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.
-
-
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.
wobei
S die Segmentgröße ist,
N
j 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 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.