DE10210264A1 - Ein Testvektorkomprimierungsverfahren - Google Patents
Ein TestvektorkomprimierungsverfahrenInfo
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 394
- 239000013598 vector Substances 0.000 title claims abstract description 334
- 238000000034 method Methods 0.000 title claims abstract description 115
- 238000007906 compression Methods 0.000 title claims abstract description 66
- 230000006835 compression Effects 0.000 title claims abstract description 65
- 230000006837 decompression Effects 0.000 claims abstract description 30
- 230000011218 segmentation Effects 0.000 claims description 13
- 238000003780 insertion Methods 0.000 claims description 11
- 230000037431 insertion Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 8
- 238000004377 microelectronic Methods 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000007796 conventional method Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000037452 priming Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005461 lubrication Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012956 testing procedure Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318335—Test 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.
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).
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.
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.
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.
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.
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.
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.
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)
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)
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 |
-
2001
- 2001-03-09 US US09/802,440 patent/US6732312B2/en not_active Expired - Lifetime
-
2002
- 2002-03-08 DE DE10210264A patent/DE10210264B4/de not_active Expired - Fee Related
- 2002-03-08 JP JP2002063298A patent/JP4194785B2/ja not_active Expired - Lifetime
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 |