DE10125331A1 - Vorrichtung und Verfahren zum Erzeugen eines Satzes von Testsequenzen unter Verwendung eines systematischen Füllens - Google Patents
Vorrichtung und Verfahren zum Erzeugen eines Satzes von Testsequenzen unter Verwendung eines systematischen FüllensInfo
- Publication number
- DE10125331A1 DE10125331A1 DE10125331A DE10125331A DE10125331A1 DE 10125331 A1 DE10125331 A1 DE 10125331A1 DE 10125331 A DE10125331 A DE 10125331A DE 10125331 A DE10125331 A DE 10125331A DE 10125331 A1 DE10125331 A1 DE 10125331A1
- Authority
- DE
- Germany
- Prior art keywords
- test
- values
- errors
- unspecified
- bit positions
- 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.)
- Withdrawn
Links
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/318371—Methodologies therefor, e.g. algorithms, procedures
-
- 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/318342—Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
Abstract
Die vorliegende Erfindung bezieht sich im allgemeinen auf einen verbesserten automatischen Testmustergenerator zum Erzeugen von Testmustern, die von einer Testvorrichtung für eine integrierte Schaltung verwendet werden. Gemäß einem Aspekt der Erfindung wird ein Verfahren zum Erzeugen eines Satzes von Testsequenzen zum Testen einer integrierten Schaltung geschaffen, wobei jede Testsequenz des Satzes von Testsequenzen einer Mehrzahl von Bits aufweist, die Testeingaben für die integrierte Schaltung definieren. Das Verfahren umfaßt folgende Schritte: Definieren einer Liste von Fehlern für die integrierte Schaltung und Erzeugen von zumindest einer Testsequenz, die Werte für jene Eingabe definiert, die notwendig sind, um zumindest einen Zielfehler zu erfassen, der von der Liste von Fehlern ausgewählt wird, wobei die Werte nur einen Abschnitt der Bits der zumindest einen Testsequenz aufweisen, wobei ein Rest der Bits in der zumindest einen Testsequenz nicht spezifizierte Bitpositionen sind. Das Verfahren umfaßt ferner den Schritt des Setzens der Werte einer Mehrzahl der nicht spezifizierten Bitpositionen unter Verwendung einer systematischen ("nonrandom") Füllungsmethodik.
Description
Die vorliegende Erfindung bezieht sich im allgemeinen auf
Testvorrichtungen, und insbesondere auf einen verbesserten
Testmustergenerator zum Erzeugen von Testsequenzen in einem
automatischen Testmustergenerator.
Eine Vielfalt von automatischen Testvorrichtungen bzw.
Prüfautomaten (ATE) sind schon lange bekannt gewesen zum
Testen von elektronischen Schaltungen, Vorrichtung, und an
deren Halbleiter- und Elektronikprodukten. Im allgemeinen
werden automatische Testvorrichtungen in zwei weite Katego
rien eingeteilt, in analoge Testgeräte bzw. Prüfgeräte und
in digitale Testgeräte bzw. Prüfgeräte. Wie der Name impli
ziert, werden analoge Testgeräte im allgemeinen zum Testen
von analogen Schaltungsvorrichtungen ausgelegt, während di
gitale Testgeräte zum Testen von digitalen Schaltungsvor
richtungen ausgelegt werden. Digitale Testgeräte umfassen,
wie es bekannt ist, im allgemeinen eine Testvorrichtung,
die eine Anzahl von internen Schaltkarten oder Kanälen auf
weist, die programmierbar gesteuerte Testsignale zum Testen
und Auswerten eines Prüflings (DUT: Device Under Test = im
Test befindliche Vorrichtungen) erzeugen. Insbesondere sind
ATEs programmierbar gesteuert, um zum Testen einer Vielfalt
von Vorrichtungen auf verschiedene Arten und Weisen ange
paßt oder konfiguriert zu sein. Dies wird erreicht indem
ATE-Eingänge programmiert werden, um ein bestimmtes Signal
(oder einen Signalübergang) einzuspeisen, und indem ATE-
Ausgänge programmiert werden, um einen Wert mit einem be
stimmten Anschlußstift oder einer Signalleitung auf einer
DUT zu vergleichen. Diesbezüglich umfaßt ein digitales
Testgerät im allgemeinen einen Testkopf, durch den elektri
sche Signale in das Testgerät eingegeben und aus diesem
ausgegeben werden. Der Testkopf umfaßt einen Anzahl von
Verbindungen bzw. Anschlüssen, von denen jede einen Kanal
definiert, die über ein Kabel oder sonstwie mit einem Prüf
ling verbunden werden können. Die Elektronikeinrichtungen
innerhalb des digitalen Testgerätes können dann über den
Testkopf Signale in einen/aus einem Prüfling eingeben und
ausgeben.
Zum Zwecke einer extrem einfachen Veranschaulichung sei ein
digitales Testgerät angenommen, das konfiguriert ist, um
eine Baugruppe zu testen, die neben anderen Dingen, ein
UND-Gatter mit zwei Eingängen enthält. Das digitale Testge
rät kann konfiguriert sein, um eine logische Eins an den
zwei Signalleitungen anzulegen, die den Eingängen des UND-
Gatters entsprechen, und dann um das Signal an der Signal
leitung zu empfangen, das dem Ausgang entspricht, um si
cherzustellen, daß es im Ansprechen darauf zu einer logi
schen Eins getrieben wird. Das Testgerät kann dann konfigu
riert werden, um alternativ dazu logische Null-Signale an
jedem der zwei Signalleitungen anzulegen, die den Eingängen
des UND-Gatters entsprechen, um zu verifizieren, daß die
Ausgabe des UND-Gatters ansprechend darauf von einer logi
schen 1 zu einer logischen 0 übergeht. Wenn ein ordnungsge
mäßer (d. h. erwarteter) Betrieb nicht verwirklicht bzw.
durchgeführt wird, dann wird ein Fehler erfaßt.
Ein Testgerät für eine integrierte Schaltung umfaßt einen
Satz von Modulen oder "Knoten", wobei ein Knoten jedem An
schluß der DUT zugeordnet ist. Wenn die DUT ein Chip mit
integrierter Schaltung bzw. ein IC-Chip ist, dann ist jeder
Knoten jedem Anschlußstift des IC-Chips zugeordnet. Ein
Test ist in einem Satz von aufeinanderfolgenden Zeitsegmen
ten ("Testzyklen") aufgebaut. Während einem beliebigen ge
gebenen Testzyklus kann jeder Knoten entweder ein Testsi
gnal zu dem Anschlußstift übertragen, ein DUT-
Ausgangssignal bei dem zugeordneten Anschlußstift abtasten,
oder beides tun. Jeder Knoten hat seinen eigenen Speicher
zum Speichern einer Sequenz von diesen Übertragungs- oder
Abtast-Anweisungen ("Testvektoren").
Wie es den Fachleuten auf dem Gebiet bekannt ist, ist ein
Testgenerator unabhängig und verschieden von einem Testge
rät. Ein Testgenerator verwendet ein Modell einer Vorrich
tung, um einen Satz von Testvektoren zu formulieren, die
die getestete Vorrichtung wirksam testen und Fehler auf ihr
erfassen werden. Indessen ist ein Testgerät eine Vorrich
tung, die stromabwärts bezüglich des Testgenerators ange
ordnet ist. Sie verwendet den Satz von Testvektoren, der
von dem Testgenerator erzeugt wird, um die augenblickliche
Vorrichtung zu testen.
Der Testvektor oder das Testmuster, das von einem Testgene
rator erzeugt wird, ist eine Kette bzw. Folge von n logi
ischen Werten (0, 1, ignorierter bzw. beliebiger Wert - X),
die an die n entsprechenden Haupteingänge (PIs: primary in
puts) einer Schaltung bei dem gleichen Zeitrahmen angelegt
werden. Eine Testsequenz ist eine Reihe von Testvektoren,
die an eine seguentielle Schaltung bzw. Folgeschaltung in
einer spezifischen Reihenfolge angelegt werden, um einen
Zielfehler zu erfassen. Der erste Vektor in der Testsequenz
nimmt an, daß sich die Schaltung in einem vollständig unbe
kannten Zustand befindet. Ein Testsatz ist ein ungeordneter
Satz von Testsequenzen. Für Schaltnetze bzw. Kombinations-
schaltungen mit Kombinationsfehlern besteht kein Bedarf
nach Testsequenzen und der Testsatz besteht aus einem unge
ordneten Satz von Testvektoren. Die Testlänge bezieht sich
auf die Anzahl von Testvektoren in einem Testsatz.
Um die Länge eines Testsatzes zu verringern, ist der Test
satz oft komprimiert bzw. verdichtet. Herkömmlicherweise
wurde die Testsatzkomprimierung bzw. Testsatzverdichtung
statisch durchgeführt. Eine statische Verdichtung ist ein
Verfahren zum Verringern der Tiefe eines Testsatzes, nach-
dem alle Testvektoren erzeugt worden sind. Es kann eine
Schaltung, die getestet werden soll, modelliert bzw. nach
gebildet, und eine Fehlerliste für diese Schaltung erzeugt
werden. Ein "Fehler" ist einfach ein Ort, bei dem ein De
fekt erscheinen bzw. manifestiert werden kann. Somit ist
eine Fehlerliste eine Auflistung von vielen (möglicherweise
allen) Orten, bei denen Fehler auftreten können. Ein Test
vektor für jeden Fehler von der Fehlerliste kann erzeugt
werden, um den gegebenen bzw. bestimmten Fehler zu erzeu
gen. Auf diese Weise wird ein einzelner Testvektor geschaf
fen, um einen bestimmten Schaltungsfehler zu testen.
In frühen Systemen wurde ein Testsatz von Einzelfehlertest
vektoren statisch verdichtet. Diesbezüglich wurde ein Test
vektor für jeden und alle Fehler auf der Fehlerliste er
zeugt. Nachdem der Gesamttestsatz zusammengesetzt wurde,
wurde die Tiefe des Testsatzes durch einen algorithmischen
Vorgang verringert. Obwohl der spezifische Algorithmus von
System zu System variieren kann, war der allgemeine Vorgang
der gleiche. Beispielsweise arbeitete ein bekannter Algo
rithmus derart, daß er den ersten Testvektor auswertete,
und bestimmt, ob der zweite Testvektor mit diesem (dem er
sten Vektor) verdichtet werden könnte. Dann wurde der näch-
ste Testvektor analysiert, um zu bestimmen, ob er mit dem
ersten Testvektor verdichtet werden könnte, usw., die gan
zen Vektoren des Testsatzes hinunter, bis das Ende des Sat
zes erreicht war. Dann wurde das Verfahren für den zweiten
Testvektor wiederholt. Wurde einmal ein folgender Vektor zu
einem vorhergehenden Testvektor hinzu addiert (mit diesem
verdichtet), dann wurde der letztere Testvektor von dem
Testsatz entfernt, wodurch dessen Tiefe um 1 verringert
wurde. Dieses Verfahren wurde vervollständigt, bis ein
vollständig verdichteter Testsatz erhalten wurde.
Ein Dokument von Prabhakar Goel und Barry C. Rosales (von
der IBM-Corporation) mit dem Titel "Test Generation & Dyna
mic Compaction of Tests", das in der IEEE Test Conference
von 1979 veröffentlicht wurde (im folgenden als das "Goel-
Dokument" bezeichnet), beschrieb den Vorteil einer dynami
schen Verdichtung über eine statische Verdichtung, und ist
hierdurch durch Bezugnahme eingefügt. Kurz gesagt ist die
statische Verdichtung charakterisiert als ein "nachverar
beitender" Vorgang bzw. Prozeß, wodurch ein Satz von Test
vektoren zuerst erzeugt wird. Jeder Testvektor in der Liste
ist eindeutig definiert, um einen gegebenen bzw. bestimmten
Fehler in einer DUT zu testen. Ist einmal der Satz von
Testvektoren erzeugt, wird er verarbeitet (folglich ein
Nachverarbeiten), um die Anzahl der Vektoren in dem Satz
durch Verdichtungstechniken zu verringern.
Im Gegensatz dazu arbeitet die dynamische Verdichtung ("dy
namic compaction") derart, daß sie verdichtete Vektoren
einzeln erzeugt. Genauer gesagt wird ein erster Testvektor
erzeugt, um einen bestimmten Fehler in einer Liste von Feh
lern, die getestet werden sollen zu prüfen bzw. zu testen
(genau wie der erste Testvektor, der bei der statischen
Verdichtung erzeugt wird). Bevor jedoch ein zweiter Test
vektor erzeugt wird, wird ein Versuch gemacht, den ersten
Testvektor zu verwenden, um zusätzliche Fehler zu testen.
Diesbezüglich können die nicht spezifizierten Bitpositionen
(d. h. die ignorierten bzw. beliebigen Werte) auf entweder
"1"-en oder "0"-en gesetzt werden, oder bestehende Bitposi
tionen können derart verwendet werden, daß die Werte nicht
geändert werden brauchen. Obwohl der Ausdruck "dynamische
Verdichtung" ein wenig irreführend dahingehend sein kann,
daß das Verfahren nicht tatsächlich zwei bestehende Test
vektoren "verdichtet", so ist das Nettoergebnis ziemlich
das gleiche.
Ein vollständig verdichteter Testvektor ist einer, bei dem
(i) kein PI sich bei X (beliebiger Wert) befindet, oder bei
dem (ii) keine neuen Fehler erfaßt werden können, indem ein
beliebiger X-Wert zu einer 0 oder zu einer 1 gemacht wird.
Idealerweise arbeitet eine dynamische Verdichtung derart,
daß sie einen vollständig verdichteten Testvektor erzeugt,
bevor sie mit der Erzeugung des nächsten Testvektors fort
fährt. Jedoch ist dies in der Praxis gewöhnlicherweise
nicht das Ergebnis. Anstatt dessen erzeugen die meisten dy
namischen Verdichtungsalgorithmen etwas, das als "im we
sentlichen verdichtete" Testvektoren bezeichnet werden
kann. Wie es bekannt ist wird der Grad, zu dem ein Testvek
tor verdichtet werden kann, notwendigerweise von dem Modell
für den DUT abhängen, sowie von den speziellen Vektoren,
die notwendig sind, um die benötigten Fehlertests zu erzeu
gen. Nachdem ferner ein bestimmtes Niveau einer Verdichtung
erhalten worden ist, ist eine weitere Verdichtung extrem
berechnungsintensiv und somit zeitraubend. Ist einmal ein
gewisses Niveau an Verdichtung erhalten worden, so wird
deshalb der Vektor oft als im wesentlichen verdichtet er
achtet, und es wird keine weitere Verdichtung versucht. An
statt dessen werden die beliebigen Bitpositionen ohne Be
deutung ("dont care bit positions") des im wesentlichen
verdichteten Vektors statistisch bzw. zufällig gefüllt (mit
1-en und 0-en) und fehlermäßig simuliert, und es wird ein
neuer Testvektor erzeugt.
Ein Vorteil der dynamischen Verdichtung besteht, wie es im
allgemeinen erkannt wird, darin, daß sie gewöhnlicherweise
einen kleineren Satz von Testvektoren zur Folge hat, als
der, der durch statische Verdichtung erreicht wird. Eine
Verringerung des Satzes des Testvektoren verringert dement
sprechend die Zeit, die erforderlich ist, um diese zu er
zeugen. Jedoch wird die dynamische Verdichtung im allgemei
nen als berechnungsintensiv angesehen. In der Tat ist es
seit der Veröffentlichung des Goel-Dokuments im allgemeinen
in der maßgeblichen Industrie akzeptiert worden, daß die
dynamische Verdichtung bessere Ergebnisse als die statische
Verdichtung erreicht, indem die Gesamtzahl der Tests ver
ringert wird, die bei einem Testgerät auf eine gegebene DUT
angewendet bzw. an diese angelegt werden müssen. Nichtsde
stotrotz führen sogar dynamische Verdichtungstechniken, da
integrierte Schaltungen weiter in ihrer Größe und Komplexi
tät wachsen, zu Mängeln bzw. Knappheiten bezüglich des
Speichers und zu übermäßigen Berechnungsproblemen, und des
halb sind weitere Verbesserungen wünschenswert.
Die Aufgabe der vorliegenden Erfindung besteht nun darin,
eine Vorrichtung und ein Verfahren zum Erzeugen eines Sat
zes von Testsequenzen zum Testen einer Schaltung zu schaf
fen, durch die der Testvorgang bei effizienter Durchführung
beschleunigt werden kann.
Diese Aufgabe wird hinsichtlich der Vorrichtung durch die
Merkmale von Anspruch 1, und hinsichtlich des Verfahrens
durch die Merkmale von Anspruch 15 gelöst. Vorteilhafte
Ausgestaltungen der Erfindung sind Gegenstand der Unteran
sprüche.
Bestimmte Aufgaben, Vorteile und neue Merkmale der Erfin
dung werden teilweise in der folgenden Beschreibung darge
legt und werden teilweise den Fachleuten auf dem Gebiet
durch das Studium des Folgenden offensichtlich oder werden
bei der praktischen Ausführung der Erfindung erfahren. Die
Aufgaben und Vorteile der Erfindung können durch die Mittel
und Kombinationen realisiert und erhalten werden, die ins
besondere in den beigefügten Ansprüche dargelegt sind.
Um die Vorteile und neuen Merkmale zu erreichen, ist die
vorliegende Erfindung im allgemeinen auf einen verbesserten
automatischen Testmustergenerator zum Erzeugen von Testmu
stern gerichtet, die von einer Testvorrichtung für eine in
tegrierte Schaltung verwendet werden. Gemäß einem Aspekt
der Erfindung ist ein Verfahren zum Erzeugen eines Satzes
von Testsequenzen zum Testen einer integrierten Schaltung
geschaffen, wobei jede Testsequenz des Satzes von Testse
quenzen eine Mehrzahl von Bits enthält, die Testeingaben
bzw. Testeingangssignale für die integrierte Schaltung de
finieren. Das Verfahren umfaßt die Schritte des Definierens
einer Liste von Fehlern für die integrierte Schaltung, und
ein Erzeugen von zumindest einer Testsequenz, die Werte für
jene Eingaben bzw. Eingangssignale definiert, die notwendig
sind, um zumindest einen Zielfehler zu erfassen, der von
der Liste der Fehler ausgewählt wird, wobei die Werte nur
einen Abschnitt der Bits der zumindest einen Testsequenz
aufweisen, wobei ein Rest der Bits in der zumindest einen
Testsequenz nicht spezifizierte Bitpositionen sind. Das
Verfahren umfaßt ferner den Schritt eines Einstellens bzw.
Setzens der Werte einer Mehrzahl der nicht spezifizierten
Bitpositionen unter Verwendung einer nicht-zufälligen bzw.
systematischen Füllungs-Methodik ("non-random filling me
thodology").
Gemäß der Erfindung kann der Schritt des Setzens der Werte
einer Mehrzahl der nicht spezifizierten Bitpositionen auf
verschiedene Weise durchgeführt werden. Beispielsweise kann
der Schritt des Setzens der Werte der Mehrzahl der nicht
spezifizierten Bitpositionen durchgeführt werden, indem je
de der Mehrzahl der nicht spezifizierten Bitpositionen auf
eine Eins gesetzt wird. Entsprechend kann der Schritt des
Setzens der Werte der Mehrzahl der nicht spezifizierten
Bitpositionen durchgeführt werden, indem jede der Mehrzahl
der nicht spezifizierten Bitpositionen auf eine Null ge
setzt wird. Ferner kann der Schritt des Setzens der Werte
der Mehrzahl der nicht spezifizierten Bitpositionen durch
geführt werden, indem jede der Mehrzahl der nicht spezifi
zierten Bitpositionen auf ein sich wiederholendes oder pe
riodisches Muster von Einsen und Nullen gesetzt wird. Über
dies hinaus kann der Schritt des Setzens der nicht spezifi
zierten Bitpositionen durchgeführt werden, indem eine Mehr
zahl der nicht spezifizierten Bitpositionen gemäß einer zu
fälligen bzw. statistischen Füllungs-Methodik ("random fil
ling methodology") gesetzt wird, während eine andere Mehr
zahl der nicht spezifizierten Bitpositionen gemäß einer sy
stematischen Füllungs-Methodik gesetzt wird, wie entspre
chend einer der oben beschriebenen Methodiken. Zusätzlich
dazu können alle nicht spezifizierten Positionen auf den
letzten spezifizierten Wert in der Testsequenz gesetzt wer
den (d. h. Erstrecken des letzten spezifizierten Werts
überall in den nicht spezifizierten Bitpositionen).
Bevorzugte Ausführungsformen der vorliegenden Erfindung
werden nachfolgend bezugnehmend auf die beiliegenden Zeich
nungen näher erläutert. Es zeigen:
Fig. 1 ein Blockschaltbild einer automatischen Testvor
richtung zum Testen einer digitalen elektroni
schen Schaltungsanordnung;
Fig. 2 ein Blockschaltbild, das eine automatische Test
vorrichtung darstellt;
Fig. 3 ein Blockschaltbild, das konzeptionsmäßig grund
legende Komponenten eines Chips mit integrierter
Schaltung darstellt, der gemäß der vorliegenden
Erfindung getestet wird;
Fig. 4 zeigt eine schematische Abbildung, die Komponen
ten eines Chips mit integrierter Schaltung veran
schaulicht, der gemäß der vorliegenden Erfindung
getestet wird;
Fig. 5A-5C zeigen schematische Abbildungen, die Testverfah
ren für einen Chip mit integrierter Schaltung
darstellen, der gemäß der vorliegenden Erfindung
getestet wird;
Fig. 6A-6D zeigen Tabellen, die ein Testvektorverdichtungs
verfahren darstellen;
Fig. 7 zeigt ein Ablaufdiagramm, das den grundlegenden
funktionsmäßigen Betrieb eines Verdichtungsver
fahrens darstellt; und
Fig. 8A und 8B zeigen Blockschaltbilder, die grundlegende
Komponenten einer Vorrichtung zum Verdichten ei
nes Satzes von Testvektoren darstellen.
Nachdem verschiedene Aspekte der vorliegenden Erfindung zu
sammengefaßt worden sind, wird nun ausführlich Bezug auf
die Beschreibung der Erfindung genommen, wie sie durch die
Zeichnungen veranschaulicht ist. Während die Erfindung in
Verbindung mit diesen Zeichnungen beschrieben werden wird,
soll sie nicht auf die Ausführungsform oder Ausführungsfor
men beschränkt sein, die hierin offenbart werden. Im Gegen
teil, es ist beabsichtigt, daß alle Alternativen, Abwand
lungen und Äquivalente abgedeckt sind, die innerhalb des
Umfangs der Erfindung eingeschlossen sind, wie sie durch
die beigefügten Ansprüche definiert ist.
Es sei nun auf Fig. 1 verwiesen, in der ein Blockschaltbild
eines Testsystems und -verfahrens 100 gezeigt ist. Obwohl
die bevorzugte Ausführungsform der vorliegenden Erfindung
auf einen verbesserten Testmustergenerator 102 gerichtet
ist, zeigt Fig. 1 auch die Komponenten der umliegenden Um
gebung. Das System 100 umfaßt einen Testgenerator 102 und
eine ATE 104. Der Testgenerator 102 erzeugt Testmuster (in
einer Weise, die unten ausführlicher beschrieben werden
wird), die zu der ATE 104 übertragen werden, die danach da
zu verwendet wird, um einen Prüfling (DUT: device under
test = im Test befindliche Vorrichtung) 116 zu testen. In
Übereinstimmung mit der bevorzugten Ausführungsform ist die
DUT 116 ein integrierter Schaltungschip, der getestet wird,
indem Eingangssignale an einen oder mehrere Eingangsan
schlußstifte angelegt werden und Ausgangssignale, die an
einen oder mehrere Ausgangsanschlußstifte der DUT 116 ge
liefert werden, ausgewertet werden.
Wie es bekannt ist, umfaßt ein umfangreicher Testplan für
die DUT 116 eine Spezifikation der Anschlußstifte, Span
nungspegel, des Timings bzw. des Zeitablaufs, der Vektoren
und der Tests der DUT 116. Da die vorliegende Erfindung die
Erzeugung von Testmuster (Vektoren) betrifft, stellt die
veranschaulichte Ausführungsform jene Komponenten, die be
züglich dieses Aspekts relevant sind, dar.
Genauer gesagt enthält ein Vorrichtungsmodell bzw. eine
Vorrichtungsnachbildung 108 Daten bezüglich Logik und An
schlußmöglichkeit bzw. Anschlußfähigkeit, und stellt die
Daten bereit, die für den Testgenerator 102 erforderlich
sind, um Schaltungstests bzw. In-Circuit-Tests zu erzeugen.
Typischerweise stellt ein Vorrichtungsmodell 108 Informa
tionen bereit, die die Anschlußmöglichkeit und die Struktur
von einer oder mehreren Vorrichtungen betreffen. Zusätzlich
dazu spezifiziert sie implizierte Funktionen auf einem
niedrigen Niveau (wie beispielsweise UND, ODER und NICHT,
so wie vielleicht auch andere Grundelemente).
Der Testgenerator 102 verwendet die Daten, die von dem Vor
richtungsmodell 108 bereit gestellt werden, und erzeugt ei
nen verdichteten Satz von Testvektoren. Ist einmal der ver
dichtete Satz von Testvektoren erzeugt, wird er zu der ATE
104 übertragen, bei der der verdichtete Satz immer wieder
verwendet werden kann, um die DUTs 116 zu testen bzw. zu
prüfen.
Es sei nun auf Fig. 2 verwiesen, die eine Umgebung dar
stellt, in der das Testgerät 100 arbeiten kann. Ein Host-
Computer bzw. Hauptcomputer 202, auf dem ein Anwendungspro
gramm läuft, kann mit der Test-Hardware 208 gekoppelt wer
den. Bei einer Ausführungsform kann der Host-Computer 202
über ein lokales Netz (LAN: Local Area Network) 204 mit der
Test-Hardware 208 gekoppelt werden. Die Test-Hardware 208
umfaßt typischerweise einen Testkopf 205, der den Schnitt
stelleneingang und -ausgang zu einer DUT 116 bereit stellt.
Die Test-Hardware 208 kann Vorrichtungen umfassen, wie
Treiber und Empfänger, die verwendet werden können, um ein
Testen bzw. Prüfen bezüglich der DUT 116 durchzuführen. Ein
Anwendungsprogramm in dem Host-Computer 202 kann mit einem
Interpretierer in Verbindung treten bzw. kommunizieren, der
Aufrufe einer dynamischen Verbindungsbibliothek (DLL: Dyna
mic Link Libary) durchführt, die den abgesetzten bzw. ent
fernten Testkopf 205 anweist, eine spezielle Funktion
durchzuführen. Die Test-Hardware 208 kann Anweisungen von
dem Host-Computer 202 empfangen. Diese Anweisungen können
dann die verschiedenartigen Tests steuern, die bezüglich
dem DUT 116 durchgeführt werden.
Ein Testmustergenerator 200, der gemäß der vorliegenden Er
findung konstruiert bzw. aufgebaut ist, und der unten aus
führlicher beschrieben werden wird, stellt Testmusterdaten
bereit, die in den Computer 202 eingegeben werden. Wie es
zu erkennen ist, arbeitet der Testmustergenerator 200 der
art, um Eingangstestmuster zu erzeugen, bevor die eigentli
che Testausführung stattfindet. Tatsächlich kann ein ver
dichteter Satz von Testmustern erzeugt und auf dem Computer
202 für spätere Testausführungen gespeichert werden.
Es sei nun auf Fig. 3 verwiesen, in der ein Blockschaltbild
gezeigt ist, das eine Testumgebung der vorliegenden Erfin
dung darstellt. Genauer gesagt ist die bevorzugte Ausfüh
rungsform der vorliegenden Erfindung auf ein Verfahren und
eine Vorrichtung zum Erzeugen eines Satzes von Testvektoren
gerichtet, und ist insbesondere für eine Verwendung bei ei
nem Testen in der Ausführung eines Abtasttyps ("scan-type
testing") geeignet. Wie es bekannt ist funktioniert ein
breitseitiges Testen derart, daß Testsignale an die Ein
gangsanschlußstifte des Chips mit integrierter Schaltung
angelegt werden, und die Ausgabe, die an den Ausgangsan
schlußstiften des gleichen Chips erzeugt werden, überwacht
werden. Aufgrund der Dichte der funktionsmäßigen Schal
tungsanordnung, die jetzt auf Chips mit integrierter Schal
tung bereit gestellt wird, wird ein Testen in der Ausfüh
rung eines Abtasttyps verwendet. Um das Testen in der Aus
führung des Abtasttyps genauer zu beschreiben, kann dann,
wenn die Test-Hardware Zugriff auf nur die Eingangs- und
Ausgangsanschlußstifte eines Chips mit integrierter Schal
tung hat, der Betrieb der großen Mehrheit der Schaltungsan
ordnung von den meisten integrierten Schaltungschips prak
tisch nicht direkt getestet werden. Ein Testen in der Aus
führung des Scantyps wird erreicht, indem eine speziali
sierte Schaltungsanordnung bereitgestellt wird, die inner
halb des integrierten Schaltungschips, der getestet werden
soll, integriert ist, und die es ermöglicht, daß Testpulse
in den Chip zum Testen dessen funktionsmäßiger Logik über
tragen werden, und daß Testausgaben erfaßt werden.
Im Sinne der Terminologie werden Abtastketten oder Ab
tastregister in dieser Weise verwendet. Beispielsweise und
mit Bezug auf Fig. 3 umfaßt ein integrierter Schaltungschip
302 eine funktionsmäßige bzw. funktionelle Schaltungsanord
nung 304 (die sowohl eine sequentielle als auch eine kombi
nationsmäßige Logik aufweisen kann), die auf der Platte
("on board") des integrierten Schaltungschips 302 vorgese
hen ist. Ein Testvektor 306 enthält eine Mehrzahl von Bits,
die die Testeingaben und -ausgaben definieren. Wie es be
kannt ist, werden die Bits des Testvektors 306 im allgemei
nen auf Werte von entweder 1 oder 0 gesetzt, wobei jedoch
einige Werte beliebig (beispielsweise "X") sein können.
Oftmals ist der Testvektor 306 ziemlich lang und kann meh
rere hundert, oder sogar mehrere tausend, Bits aufweisen.
Diese Bitwerte werden dann seriell in den Chip mit inte
grierter Schaltung 302 verschoben, indem sie verwendet wer
den können, um die kombinationsmäßige Logik bzw. Kombinati
onslogik 308 und 310 zu testen, die tief innerhalb des in
tegrierten Schaltungschips 302 eingebettet sein kann. Dies
bezüglich werden die Bitpositionen des Testvektors 306 in
ein Abtastregister 312 verschoben. Das Abtastregister 312
ist in der Zeichnung als ein einzelnes Register darge
stellt. Jedoch kann, wie es bekannt ist, das Register eine
Mehrzahl von Abtastketten aufweisen, die individuelle bzw.
einzelne Register oder serielle Bitpositionen innerhalb des
Chips sind. Übereinstimmend mit der hierin verwendeten Ter
minologie umfaßt die Sammlung von all den Abtastketten ein
Abtastregister. Zum Zwecke der Einfachheit und Veranschau
lichung ist nur eine Abtastkette in Fig. 3 veranschaulicht
worden.
In einer ähnlichen Weise kann ein Ausgangsabtastregister
314 in Verbindung mit einem Ausgangsvektorregister 316 vor
gesehen sein. Beim Betrieb (konzeptionsmäßig) werden die
Bits des Testvektors 306 in das Abtastregister 312 verscho
ben. Die verschiedenen Bitpositionen des Abtastregisters
312 werden in die Kombinationslogikabschnitte 308 und 310
der integrierten Schaltung 302 eingegeben. Ist einmal der
gesamte Testvektor 306 in das Abtastregister 312 verschoben
worden, können die Ausgaben der Kombinationslogikabschnitte
308 und 310 durch das Ausgangsabtastregister 314 erfaßt
werden, und dann zu einem Ausgangsregister 316 hinaus ver
schoben werden, bei dem die Werte gegen vordefinierte er
wartete Datenwerte verglichen werden. Dieses Konzept ist
durch den "Vergleiche"-Pfeil graphisch veranschaulicht.
Es sei zu erkennen, daß das Eingangsabtastregister 312 und
das Ausgangsabtastregister 314 nur derart veranschaulicht
worden sind, um die Diskussion hierin zu vereinfachen. Bei
der praktischen Ausführung kann jede Bitposition einer Ab
tastkette sowohl eine Eingabe als auch eine Ausgabe sein.
Das bedeutet, daß ein Testvektor über eine Eingangsab
tastkette in den Chip getaktet werden kann. Wenn dann ein
mal der gesamte Testvektor in den Chip getaktet worden ist,
wird die funktionelle Schaltungsanordnung, die getestet
werden soll, getestet (durch den Vektor), und das Abtastre
gister kann wieder getaktet werden, um Ausgangswerte zu er
fassen. Zu diesem Zeitpunkt kann die gleiche Abtastket
te/das gleiche Abtastregister als ein Ausgangsabtastregi
ster 314 betrachtet werden, und sein Wert kann aus dem Chip
getaktet werden, wo er gegen einen erwarteten Wert für die
ses Register verglichen wird. Gestrichelte Linien, die die
zwei veranschaulichten Register 312 und 314 koppeln, stel
len dieses Konzept einer Registerkontinuität und Bidirek
tionalität dar.
Es sei zu erkennen, daß die Abbildung von Fig. 3 nur zum
Zweck der Veranschaulichung dargebracht worden ist, und es
wird im Licht der folgenden Diskussion in Verbindung mit
den Fig. 4 und 5 ein besseres Verständnis der bevorzugten
Ausführungsform erkannt werden. Was anhand von Fig. 3 er
kannt werden sollte, ist jedoch, daß durch Verwenden von
Abtastketten (oder einem Abtastregister) Bits eines Test
vektors in und aus einem Chip mit integrierter Schaltung
302 übertragen werden können, um ein direktes Testen von
einer funktionellen Logik zu ermöglichen, die tief inner
halb des integrierten Schaltungschips 302 eingebettet sein
kann, und die somit durch die Anschlußstifte des Chips mit
integrierter Schaltung 302 nicht direkt zugreifbar oder
testbar bzw. prüfbar ist.
Es sei nun auf Fig. 4 verwiesen, die eine praktischere Im
plementierung der Abtastketten und des Abtastregisters der
bevorzugten Ausführungsform darstellt. Diesbezüglich wird
anstatt ein separates Register vorzusehen, um das Abtastre
gister 312 aufzuweisen, typischerweise eine sequentielle
Logik bzw. ein Schaltwerk, das bereits innerhalb des Schal
tungschips eingebettet ist, verwendet. Beispielsweise und
wiederum zum Zwecke der Veranschaulichung sei es angenom
men, daß bistabile Kippschaltungen bzw. Flip-Flops (bei
spielsweise 420) in einem Chip mit integrierter Schaltung
vorgesehen sind, und funktionsmäßig derart konfiguriert
sind, um in einer bestimmten Art und Weise zu arbeiten.
Testvektorwerte können beispielsweise über Multiplexer 422
in diese Register verschoben werden. Diesbezüglich kann ein
Multiplexer 422 zwei Eingänge aufweisen: einen zum Empfan
gen einer Eingabe von der funktionellen Logik 424, die auf
dem Chip vorgesehen ist, und einen zum Empfangen von Ein
gangswerten von einem Abtasteingang 427, der in Verbindung
mit der Testkonfiguration des Chips vorgesehen ist. Eine
Abtastfreigabeleitung 426 kann als eine Multiplexerauswahl
vorgesehen sein, um auszuwählen, welcher der zwei Eingänge
durch den Multiplexer 422 zu dem Flip-Flop 420 geleitet
wird. Sind einmal die verschiedenen Bitwerte des Testvek
tors 306 in die Abtastkette 412 verschoben worden, so kann
die Abtastfreigabeleitung 426 derart gesetzt werden, daß
sie die geeigneten Bitwerte der Abtastkette 412 zu den ver
schiedenen sequentiellen Schaltungsvorrichtungen (bei
spielsweise 420) überträgt: Wie es verstanden werden wird,
kann eine Taktleitung (als ein Abtasttakt bezeichnet) 428
umgeschaltet bzw. hin- und hergeschaltet werden, um die
verschiedenen Bitwerte durch die jeweiligen sequentiellen
Schaltungskomponenten, die die Abtastkette (oder das Ab
tastregister) 412 aufweisen, einzutakten. Auf diese Weise
können die verschiedenen Ausgänge der sequentiellen Schal
tungskomponenten steuerbar gesetzt bzw. eingestellt werden,
um die Kombinationslogik 408 des Chips mit integrierter
Schaltung zu testen. Diesbezüglich wird angenommen, daß die
funktionelle Logik eines Chips mit integrierter Schaltung
eine Kombination einer sequentiellen Logik und einer Kombi
nationslogik aufweisen wird, die in verschiedenen Schichten
organisiert sein können (beispielsweise einer Schicht einer
sequentiellen Logik, dann einer Schicht einer Kombinations
logik, dann einer Schicht einer sequentiellen Logik, einer
weiteren Schicht einer Kombinationslogik, usw.). Eine gege
bene bzw. bestimmte "Schicht" einer Kombinationslogik kann
getestet werden, indem die Werte, die zu den Eingängen die
ser Kombinationslogik geleitet werden, in einer Weise ge
steuert werden, die oben beschrieben und in Verbindung mit
Fig. 4 veranschaulicht ist, und indem deren Ausgaben über
wacht bzw. beobachtet werden. Die Ausgaben der Kombinati
onslogikkomponenten können dann zu einer oder mehreren Aus
gangsabtastketten geleitet werden, die dann aus dem inte
grierten Schaltungschip zur Auswertung durch die Testvor
richtung seriell hinaus verschoben werden können. Diesbe
züglich und wie es in Fig. 3 veranschaulicht ist, kann ein
separates Ausgangsabtastregister innerhalb des Chips ausge
bildet sein, oder alternativ dazu verwendet die Ausgangsab
tastkette die gleichen sequentiellen Register wie die Ein
gangsabtastkette.
Zur Klarstellung und wie es verstanden werden wird, sind
die breiten Konzepte und Lehren der vorliegenden Erfindung
auf sequentielle Schaltungsanordnungen sowie auf eine Kom
binationslogik anwendbar. Genauer gesagt ist die Erzeugung
eines Satzes von Testvektoren auf beide Typen von Schal
tungsanordnungen anwendbar. Eine Ausführungsform der Erfin
dung ist, wie es hierin beschrieben wird, auf die Erzeugung
eines Satzes von Testvektoren zum Testen einer Kombinati
onslogik gerichtet. Jedoch kann das Verfahren der Erfindung
ebenso verwendet werden, um Testvektoren auch zum Testen
einer sequentiellen Schaltung zu erzeugen. Um die erfinde
rischen Konzepte zu vereinfachen, ist die Erfindung jedoch
nur mit Bezug auf die Testmustererzeugung einer Kombinati
onslogik veranschaulicht worden.
Kurz gesagt, eine Ausführungsform (kombinationsmäßige auto
matische Testmustererzeugung) erzeugt eine Liste von Test
vektoren, einen nach dem anderen, und verdichtet gleichzei
tig bzw. simultan diese Liste (einen nach dem anderen). Bei
einer alternativen Ausführungsform für eine sequentielle
Testmustererzeugungslogik würde eine Sequenz von Testvekto
ren anstelle jedes Testvektors der vorherigen Ausführungs
form erzeugt werden. Somit würde die Erfindung bezüglich
eines Satzes von Testvektorsequenzen arbeiten, die ver
schiedene Längen aufweisen können. Die Länge einer gegebe
nen Sequenz würde von der Anzahl von sequentiellen Logik
schichten abhängen, die von einem Testgenerator durchlaufen
werden.
Die Konzepte der vorliegenden Erfindung können auch auf ei
ne analoge Schaltungsanordnung in bestimmten Situationen
angewendet werden; beispielsweise, wenn die analoge Schal
tungsanordnung in einer logikartigen Weise (beispielsweise
Komparatoren) konfiguriert ist.
Es sei nun wieder zu den Zeichnungen zurückgekehrt, wobei
Bezug auf die Fig. 5A bis 5C genommen wird, die weiter das
Konzept des Testens und von Testvektoren in einer Zielumge
bung der bevorzugten Ausführungsform der vorliegenden Er
findung veranschaulichen. Diesbezüglich veranschaulicht
Fig. 5A ein Schichtsegment einer Kombinationslogik 534 mit
einer anderen funktionellen (sequentiellen oder kombinati
onsmäßigen) Logik 532. Bei der veranschaulichten Ausfüh
rungsform umfaßt das Segment der Kombinationslogik 534 UND-
Gatter 535, 536 und 537, und ein ODER-Gatter 538. Es ist
ferner eine Abtastkette oder ein Abtastregister 512 veran
schaulicht, das Bitwerte aufweist, die direkt mit den Si
gnalleitungen der verschiedenen Kombinationslogikschal
tungskomponenten verbunden sind. Obwohl, wie es in Fig. 4
beschrieben ist, die Abtastkette vorzugsweise aus einer se
quentiellen Schaltungsanordnung (wie D-Flip-Flops) gebildet
ist, ist sie jedoch in Fig. 5A in einer unterschiedlichen
Art und Weise veranschaulicht, einfach nur, um die Diskus
sion hierin zu vereinfachen. Bei der speziellen Veranschau
lichung von Fig. 5A ist jede Eingangsleitung und Ausgangs
leitung der verschiedenen Kombinationslogikkomponenten ei
ner Bitposition (beispielsweise einem Flip-Flop) in der Ab
tastkette 512 zugeordnet.
Es sei nun auf Fig. 5B verwiesen, in der, wenn der Ausgang
des UND-Gatters 538 bezüglich eines "Hängen bei"-"1"-
Fehlers getestet werden sollte, zumindest eine der Ein
gangsleitungen auf "0" gesetzt sein muß. Die zwei restli
chen Eingangsleitungen könnten auf beliebige Werte (bei
spielsweise "X") gesetzt werden. Diesbezüglich können die
drei Eingangsbits 540, 541 und 542 die Werte "OXX", "XOX"
oder "XXO" aufweisen, so lange ein beliebiger der drei Wer
te die "Hängen bei"-"1"-Bedingung bezüglich der Leitung 544
ordnungsgemäß testen würde. Eine Ausgabebitposition 546 ist
der Signalleitung 544 zugeordnet, um den Wert zu lesen und
zu testen, der von dem UND-Gatter 538 ausgegeben wird. So
mit sollte bei der Eingabe von "OXX", wie es in Fig. 5B
veranschaulicht ist, die Ausgabe der Bitposition 546 0
sein, wenn das UND-Gatter 538 ordnungsgemäß arbeitet. Wenn
es jedoch einen "Hängen bei"-"1"-Fehler bei der Ausgabe des
UND-Gatters 538 gibt, so würde die Bitposition 546 1 sein.
Es sei nun auf Fig. 5C verwiesen. Auf eine ähnliche Weise
kann ein "Hängen bei"-"0"-Fehler bei der Ausgabe des UND-
Gatters 538 getestet werden, indem die Bitpositionen 540,
541 und 542 alle auf "1" gesetzt werden. Die Ausgabebitpo
sition 546 kann dann überwacht werden, um zu bestimmen, ob
sie eine "1" oder "0" ist (ansprechend auf die "111"-
Eingaben). Eine "1" bezüglich der Bitposition 546 gibt ei
nen ordnungsgemäßen Betrieb des UND-Gatters 538 an. Jedoch
zeigt eine "0" einen "Hängen bei"-"0"-Fehler bezüglich der
Leitung 544 an.
In Anbetracht der vorangegangenen Diskussion sei es zu er
kennen, daß ähnliche Fehler für UND-Gatter 535 und 536 ge
testet werden können. Ferner wird es unmittelbar verifi
ziert bzw. bestätigt, daß jede der Fehlerbedingungen, die
für die UND-Gatter 535, 536 und 537 spezifiziert sind,
wechselseitig ausgeschlossen sind. Das bedeutet, es besteht
kein Überlappen bei entweder den Eingangsbits oder den Aus
gangsbits der Abtastkette 512 zum Testen von "Hängen bei
1"-Fehlern für ein beliebiges der drei UND-Gatter, oder zum
Testen von "Hängen bei 0"-Fehlern für ein beliebiges der
UND-Gatter. Somit können drei separate Testvektoren, die
beispielsweise zum Testen der drei einzelnen UND-Gatter
535, 536 und 537 erzeugt werden, in einen einzelnen Test
vektor verdichtet werden. Vorteilhafterweise verringert das
Ergebnis einer derartigen Verdichtung die Speichererforder
nisse des Testgeräts und beschleunigt ferner den Testvor
gang, indem ermöglicht wird, daß ein einzelner Testvektor
in die Abtastkette 512 verschoben wird, im Gegensatz dazu,
drei separate Testvektoren in diese Abtastkette verschieben
zu müssen; ein Verfahren, das offensichtlich bedeutend mehr
Zeit zum Durchführen benötigt.
Nachdem die Hauptkonzepte bezüglich eines Testens unter
Verwendung eines Testens in der Ausführung eines Abtasttyps
veranschaulicht worden sind, wird nun auf die Fig. 6A bis
6D verwiesen, die die Testsatzerzeugung veranschaulichen.
Anders als bei Systemen im Stand der Technik und jenen, die
auf dem heutigen Markt vorherrschend sind, die sogenannte
dynamische Verdichtungsverfahren verwenden, verwendet eine
Ausführungsform der Erfindung ein wahres dynamisches Ver
dichtungsverfahren. Diesbezüglich arbeiten Testgeneratoren,
die derart erachtet werden, daß sie eine dynamische Ver
dichtung durchführen, typischerweise derart, daß sie einen
Testvektor definieren, der einen gegebenen Fehler testen
wird. Dann wird dieser Testvektor erweitert (durch Definie
ren von mehr Bitpositionen), um einen zusätzlichen gegebe
nen Fehler zu testen. Dann wird dieser erweiterte Testvek
tor wiederum erweitert und wieder in dieser Weise, bis ein
vollständig verwendeter Testvektor erhalten wird. Dieses
Verfahren wird hierin als eine "sogenannte" dynamische Ver
dichtung bezeichnet, deshalb, weil es nicht wirklich zwei
einzelne bzw. verschiedene Vektoren verdichtet, sondern
vielmehr derart arbeitet, daß es einen gegebenen Vektor er
weitert, um einen zusätzlichen Fehler bzw. um zusätzliche
Fehler zu erfassen. Im Gegensatz dazu arbeitet ein "wahrer"
dynamischer Verdichtungsalgorithmus derart, daß er zwei
verschiedene Vektoren in einen einzelnen Vektor verdichtet.
Obwohl die meisten Testvektoren hunderte, wenn nicht tau
sende, von Bitpositionen aufweisen werden, ist zur Verein
fachung ein Testvektor von 14 Bits in den Fig. 6A-6D veran
schaulicht. Es sei angenommen, daß zum Zweck der Veran
schaulichung ein erster Vektor erzeugt wird, der den Wert
"X101XXXXXX1XXX" aufweist, (wiederum, wobei "X" eine belie
bige Bitposition bezeichnet) und ein zweiter Vektor erzeugt
wird, der den Wert "XXX100XXXXXXXX" aufweist. Es wird un
mittelbar verifiziert bzw. bestätigt, daß diese zwei Vekto
ren unmittelbar verdichtbar sind, um einen verdichteten
Testvektor von "X10100XXXX1XXX" zu erzeugen. Es sei nun auf
Fig. 6B verwiesen, bei der unter der Annahme, daß der ver
dichtete Satz von Fig. 6A nun einen ersten Vektor ein
schließt, und bei der unter der Annahme eines zweiten Test
vektors von "X00XXX1X01XXXX" es unmittelbar zu verifizieren
ist, daß jene zwei Vektoren nicht verdichtbar sind. Folg
lich wird der verdichtete Testsatz die zwei Vektoren umfas
sen.
Es sei nun auf Fig. 6C verwiesen, wobei als ein Startpunkt
der verdichtete Testsatz von Fig. 6B angenommen wird, und
ein zusätzlicher Vektor mit einem Wert von "010XXXXXXXXXXX"
erzeugt wird. Es ist zu erkennen, daß dieser zusätzliche
Vektor mit dem ersten Vektor des alten verdichteten Satzes
verdichtet werden kann, wodurch ein neuer verdichteter Satz
erzeugt wird, wie er durch das Bezugszeichen 610 bezeichnet
ist. Indem wiederum dieser kompakte Satz von zwei Vektoren
als ein Startpunkt verwendet wird und ein zusätzlicher
Testvektor von "1XX01X1X01XXXX" (Fig. 6D) erzeugt wird, so
kann der zusätzliche Vektor nicht mit dem ersten Vektor des
verdichteten Satzes verdichtet werden, er kann jedoch mit
dem zweiten Vektor des Vektorsatzes verdichtet werden, wo
durch ein verdichteter Satz von Testvektoren 610 erzeugt
wird. Dieses Verfahren des Erzeugens von zusätzlichen Test
vektoren und des Auswertens des bestehenden Satzes von ver
dichteten Testvektoren, einen nach dem anderen, um zu be
stimmen, ob die zusätzlich erzeugten Vektoren in einem be
liebigen der bestehenden Vektoren verdichtet werden können,
kann wiederholt werden, bis alle Testvektoren (entsprechend
einer Liste von Fehlern, die getestet werden sollen) er
zeugt und verdichtet worden sind. Der resultierende Satz
von Testvektoren schafft einen in hohem Maße kompakten bzw.
verdichteten und effizienten Satz von Testvektoren zum Te
sten einer Vorrichtung.
Es sei nun auf Fig. 7 verwiesen, die die grundlegenden
Schritte veranschaulicht, die bei dem Verfahren einer Aus
führungsform der vorliegenden Erfindung verwendet werden.
Diese Ausführungsform arbeitet zuerst derart, daß sie eine
Liste von Fehlern eines Chips mit integrierter Schaltung,
die getestet werden sollen, definiert (Schritt 702). Dieser
Schritt muß hierin nicht weiter diskutiert werden, da es
erkannt werden wird, daß ein gegebener bzw. bestimmter Feh
ler durch die Logik und das Chip-Layout der speziellen in
tegrierten Schaltung, die getestet werden soll, definiert
werden wird. Für jeden Fehler in der Liste von Fehlern wird
ein Testvektor erzeugt. Genauer gesagt werden bei dieser
Ausführungsform Testvektoren erzeugt, einer auf einmal für
jeden Fehler in der Liste von Fehlern (Schritt 704). In
Übereinstimmung mit dem Umfang und den Konzepten der Erfin
dung kann eine alternative Ausführungsform jedoch einen
Testvektor erzeugen, der mehr als einen Fehler in der Liste
von Fehlern erfaßt.
Bei Schritt 706 wertet die Ausführungsform den Testvektor
aus, um zu bestimmen, ob ein Testvektorsatz gegenwärtig be
steht. Wenn nicht, wird die Ausführungsform einen Satz er
zeugen, der einfach als der Testvektor, der zuvor erzeugt
wird, definiert werden wird (Schritt 708). Wenn ein Test
vektorsatz gegenwärtig besteht, wird die Ausführungsform
dann den neu erzeugten Testvektor mit jedem Vektor verglei
chen, der sich gegenwärtig in dem Satz befindet, um zu be
stimmen, ob der neu erzeugte Testvektor mit einem beliebi
gen Vektor in dem Testsatz verdichtet werden kann (Schritt
710). Wenn nicht, wird der neu erzeugte Vektor zu dem Satz
von Testvektoren (Schritt 714) hinzu addiert, und das Sy
stem kehrt zu Schritt 704 zurück, bei dem es den nächsten
Testvektor erzeugt (entsprechend dem nächsten Fehler in der
Fehlerliste). Wenn jedoch eine Verdichtung möglich ist,
dann wird der neu erzeugte Testvektor mit einem bestehenden
Vektor des Testsatzes bei Schritt 716 verdichtet und das
System kehrt zu Schritt 704 zurück, bei dem der nächste
Testvektor erzeugt wird.
Das Verfahren, das in Fig. 7 veranschaulicht ist, wird wie
derholt, bis ein Testvektor erzeugt wird, der jedem Fehler
in der Liste von Fehlern entspricht. Was folglich produ
ziert bzw. hervorgebracht wird, ist ein verdichteter Satz
von Testvektoren, der jeden Fehler in einer Liste von Feh
lern in einer effizienten bzw. wirksamen Weise testet.
Zusätzlich zu den in Fig. 7 veranschaulichten Hauptschrit
ten und in Übereinstimmung mit einer Ausführungsform der
Erfindung kann es wünschenswert sein, eine Fehlersimulation
mit einem weniger-als-vollständigen Satz von Testvektoren
durchzuführen. Wenn es beispielsweise herausgefunden wird,
daß ein gegebener Testvektor nicht nur einen definierten
Fehler angemessen testet (d. h. den Fehler, für den der
Fehlervektor konfiguriert war, zu testen), sondern auch ei
nen oder mehrere zusätzliche Fehler testet, dann kann die
Liste von Fehlern verringert werden, und deshalb kann die
Anzahl von Testvektoren, die erzeugt werden, entsprechend
verringert werden. Dies kann einen verdichteten Satz von
Testvektoren erzeugen, der sogar kompakter als der ist, der
sonst durch diese Ausführungsform der Erfindung erzeugt
werden würde. In Übereinstimmung mit noch einer weiteren
Ausführungsform der vorliegenden Erfindung kann die Erfin
dung, wenn einmal ein verdichteter Satz von Testvektoren
erzeugt ist, auf der Grundlage dieses verdichteten Satzes
arbeiten, indem jeder beliebige Bitwert mit einer "1" oder
"0" statistisch gefüllt wird.
Genauer gesagt kann ein willkürliches bzw. beliebiges Fül
len verwendet werden, um redundante Vektoren in dem Satz zu
entfernen. Beispielsweise können beliebige Werte des ersten
Vektors in dem Satz statistisch gefüllt werden. Dieser Vek
tor kann dann wiederum ausgewertet werden, um zu bestimmen,
ob er als Ergebnis der statistisch gefüllten Werte beliebi
ge zusätzliche Fehler erfaßt. Wenn dies so ist, können die
übrigen Vektoren in dem Satz ausgewertet werden. Wenn ir
gend ein Vektor bzw. irgendwelche Vektoren, die in dem
Testsatz nur für diesen zusätzlichen Fehler bzw. diese zu
sätzliche Fehler, die durch das statistische Füllen erfaßt
werden, verbleiben, so ist dieser verbleibende Vektor bzw.
sind diese verbleibenden Vektoren redundant und können aus
dem Satz entfernt werden. Alternativ dazu können alle Vek
toren willkürlich gefüllt werden (mit "1"-en und "0"-en),
und dann ausgewertet werden (als eine Gruppe), um redundan
te Vektoren zu entfernen.
Es sei nun auf die Fig. 8A und 8B verwiesen, die ein
Schaltbild höchster Ebene einer Vorrichtung darstellen, die
in Übereinstimmung mit der oben beschriebenen Ausführungs
form der Erfindung konstruiert ist. Diesbezüglich ist ein
Vorrichtungsmodell 802 ein Computermodell, das, wie der Na
me impliziert, den Betrieb einer zu testenden Vorrichtung
nachbildet. Eine Einrichtung zum Erzeugen einer Liste von
Fehlern 804 ist in Verbindung mit dem Vorrichtungsmodell
802 vorgesehen. Diese Einrichtung kann durch eine Software
implementiert sein, um das Vorrichtungsmodell 802 auszuwer
ten und eine Liste von Fehlern zu erzeugen, die getestet
werden sollen. In Kommunikationsverbindung mit der Einrich
tung 804 ist eine Einrichtung 806 zum Auswerten der Liste
von Fehlern und zum Erzeugen von Testvektoren zum Testen
von jedem Fehler in der Liste von Fehlern vorgesehen.
Schließlich ist eine Einrichtung 808 zum Verdichten der Li
ste von Testvektoren, die von der Einrichtung 806 erzeugt
werden, vorgesehen.
Es sei auf Fig. 8B verwiesen, in der die Vorrichtung von
Fig. 8A in einer Software ausgeführt sein kann. Diesbezüg
lich arbeitet eine CPU 810 in Verbindung mit. dem Speicher
812. Ein Abschnitt des Speichers 814 kann eine Mehrzahl von
Codesegmenten zum Implementieren von jeder der Komponenten
von Fig. 8A aufweisen. Beispielsweise kann ein erstes Code
segment zum Definieren einer Liste von Fehlern einer Kombi
nationslogik in einem Chip mit integrierter Schaltung vor
gesehen sein. Ein zweites Codesegment kann zum Erzeugen ei
nes nicht verdichteten Testvektorsatzes vorgesehen sein,
der einen oder mehrere Testvektoren zum Testen von Fehlern
in der Liste von Fehlern aufweisen kann. Ein drittes Code
segment kann zum Auswerten von neu erzeugten Testvektoren
und zum Verdichten jener neu erzeugter Testvektoren (auf
einer individuellen Basis) mit Testvektoren, die augen
blicklich in dem Satz bestehen, vorgesehen sein.
Nachdem bestimmte Umgebungen und Ausführungsformen der vor
liegenden Erfindung oben beschrieben worden sind, wird nun
auf eine bevorzugte Ausführungsform der Erfindung Bezug ge
nommen. Diesbezüglich bezieht sich eine bevorzugte Ausfüh
rungsform der vorliegenden Erfindung auf ein System und ein
Verfahren zum Durchführen einer systematischen ("non
random") Vektorfüllen während einer Testerzeugung.
Wie es oben beschrieben worden ist, kann ein "willkürli
ches" Füllen verwendet werden, um redundante Testvektoren
in einem Testsatz zu entfernen. Der Ausdruck "willkürlich"
wurde spezifischerweise gewählt, um sowohl statistische
bzw. zufällige ("random") und systematische ("non-random")
Füllungsmethodiken abzudecken. Wie es oben verwendet wurde,
bezog sich ein "willkürliches" Füllen auf das Füllen, das
nach dem Verdichten einer Testsequenz durchgeführt wurde.
Jedoch ist die vorliegende Erfindung unabhängig von dem
Verdichtungsalgorithmus, und sogar von der Verdichtung
selbst. Deshalb kann das Füllen, das durch die vorliegende
Erfindung durchgeführt wird, vor, während, nach (und tat
sächlich ohne) der Verdichtung durchgeführt werden. Die be
vorzugte Ausführungsform der vorliegenden Erfindung ist
insbesondere auf eine systematische Füllungsmethodik bezo
gen.
Im Zuge einer spezielleren Beschreibung ist es dem Fachmann
allgemein bekannt, daß Algorithmen und Methodiken, die zum
Erzeugen von Testvektoren verwendet werden, typischerweise
nur einen relativ kleinen Prozentsatz der Bits eines Test
vektors setzen. Die übrigen nicht gesetzten Bits können
dann als beliebige Werte belassen werden, oder können al
ternativ gesetzt werden. Wenn sie gesetzt sind, werden sie
entweder statistisch bzw. zufällig oder systematisch ge
füllt. Empirische Daten weisen darauf hin, daß ein Vorteil
bzw. Nutzen darin besteht, die nicht spezifizierten Bits
eines Testvektors zu füllen. Dieser Vorteil bzw. Nutzen
wird durch eine größere Abdeckung bezüglich der Fehler rea
lisiert (d. h. Tests für mehr Fehler, als wenn nicht spezi
fizierte Bits nicht gesetzt belassen werden).
Mit Bezug auf ein Füllen ist es möglich, Fehler in einer
Schaltung nur durch Setzen der Eingaben eines Vektors auf
willkürliche Werte zu erfassen. Für einen typischen Vektor
besteht eine starke Wechselbeziehung zwischen der Anzahl
von Fehlern, die durch den Vektor erfaßt werden, und der
Anzahl der Eingaben, die in einem Vektor gesetzt werden,
ungeachtet der Werte der Eingaben. Somit kann ein "Füllen"
eines Vektorsatzes zusätzliche Fehler erfassen, oder kann
bewirken, daß einige der Vektoren redundant werden, und es
ermöglicht wird, diese über eine Fehlersimulation zu ent
fernen. Ein zufälliges bzw. statistisches Füllen ist das
weit verbreitetste Verfahren, da es dazu neigt, die meisten
zusätzlichen Fehler zu erfassen, und die meisten Vektoren
über Redundanz zu entfernen.
Bezüglich eines zufälligen bzw. statistischen im Gegensatz
zu einem nicht-zufälligen bzw. systematischen Füllen, wird
angenommen, daß das statistische Füllen eine geringfügig
größere Fehlerabdeckung verwirklichen kann. Jedoch kann das
systematische Füllen andere Vorteile verwirklichen. Bei
spielsweise können Testsätze, die durch Verwenden von sy
stematischen Füllungsmethodiken erzeugt werden, effektiver
verdichtet werden, wodurch ein geringerer Speicher zum
Speichern erforderlich ist. Es sei darauf hingewiesen, daß
ein systematisches Füllen auf eine beliebige von mehreren
Arten und Weisen implementiert werden kann. Beispielsweise
können alle nicht spezifizierten Bitpositionen auf einen
Wert von Eins gesetzt werden. Entsprechend können alle
nicht spezifizierten Bitpositionen auf einen Wert von Null
gesetzt werden. Zusätzlich können alle nicht spezifizierten
Bitpositionen auf den letzten spezifizierten Wert in der
Testsequenz gesetzt werden (d. h. Erweitern des letzten
spezifizierten Werts auf alle nicht spezifizierten Bitposi
tionen). Beispielsweise würde der Vektor "0XX1X0XXX0X1XXX"
unter Verwendung einer "erweiterten" Füllungsmethodik zu
"000110000001111" werden.
Des weiteren können alle nicht spezifizierten Bitpositionen
gemäß einer bestimmten periodischen oder sich wiederholen
den Sequenz bzw. Abfolge gesetzt werden. Es können weitere
Muster oder Methodiken des systematischen Füllens, insbe
sondere Methodiken, die zum Verdichten dienlich sind, in
Übereinstimmung mit dem Umfang der vorliegenden Erfindung
implementiert werden.
Ferner sei darauf hingewiesen, daß gemäß der Erfindung ein
Abschnitt der nicht spezifizierten Bitpositionen stati
stisch gefüllt werden kann, während der verbleibende Ab
schnitt gemäß einer oder mehrerer der systematischen Fül
lungsmethodiken, die oben diskutiert wurden, gefüllt werden
können.
Die vorangegangene Beschreibung ist zum Zwecke der Veran
schaulichung und Beschreibung dargelegt worden. Sie soll
nicht erschöpfend sein oder die Erfindung auf die genauen
offenbarten Formen beschränken. Offensichtliche Abwandlun
gen und Variationen sind im Licht der oben erwähnten Lehren
möglich. Die Ausführungsform oder Ausführungsformen, die
diskutiert wurden, wurden ausgewählt und beschrieben, um
die beste Veranschaulichung der Prinzipien der Erfindung
und deren praktische Anwendung vorzusehen, um dadurch einen
Fachmann in die Lage zu versetzen, die Erfindung in ver
schiedenen Ausführungsformen und mit verschiedenen Abwand
lungen, die für die spezielle Verwendung beabsichtigt sind,
zu verwenden. Alle derartigen Abwandlungen und Variationen
liegen innerhalb des Umfangs der Erfindung, wie sie durch
die beigefügten Ansprüche bestimmt ist, wenn diese gemäß
der Breite interpretiert werden, die ihnen rechtmäßig zu
steht.
Die vorliegenden Erfindung bezieht sich im allgemeinen auf
einen verbesserten automatischen Testmustergenerator zum
Erzeugen von Testmustern, die von einer Testvorrichtung für
eine integrierte Schaltung verwendet werden. Gemäß einem
Aspekt der Erfindung wird ein Verfahren zum Erzeugen eines
Satzes von Testsequenzen zum Testen einer integrierten
Schaltung geschaffen, wobei jede Testsequenz des Satzes von
Testsequenzen eine Mehrzahl von Bits aufweist, die Testein
gaben für die integrierte Schaltung definieren. Das Verfah
ren umfaßt folgende Schritte: Definieren einer Liste von
Fehlern für die integrierte Schaltung, und Erzeugen von zu
mindest einer Testsequenz, die Werte für jene Eingabe defi
niert, die notwendig sind, um zumindest einen Zielfehler zu
erfassen, der von der Liste von Fehlern ausgewählt wird,
wobei die Werte nur einen Abschnitt der Bits der zumindest
einen Testsequenz aufweisen, wobei ein Rest der Bits in der
zumindest einen Testsequenz nicht spezifizierte Bitpositio
nen sind. Das Verfahren umfaßt ferner den Schritt des Set
zens der Werte einer Mehrzahl der nicht spezifizierten Bit
positionen unter Verwendung einer nicht-zufälligen bzw. sy
stematischen ("non-random") Füllungsmethodik.
Claims (20)
1. Verfahren (702-716) zum Erzeugen eines Satzes von
Testsequenzen zum Testen einer integrierten Schaltung,
wobei jede Testsequenz des Satzes von Testsequenzen
eine Mehrzahl von Bits aufweist, die Testeingangs
signale für die integrierte Schaltung definieren, wo
bei das Verfahren folgende Schritte aufweist:
Definieren einer Liste von Fehlern für die integrierte Schaltung (702);
Erzeugen von zumindest einer Testsequenz (704), die Werte für jene Eingangssignale definiert, die notwen dig sind, um zumindest einen Zielfehler zu erfassen, der von der Liste von Fehlern ausgewählt ist, wobei die Werte nur einen Abschnitt der Bits der zumindest einen Testsequenz aufweisen, wobei ein Rest der Bits in der zumindest einen Testsequenz nicht spezifizierte Bitpositionen sind; und
Einstellen der Werte einer Mehrzahl der nicht spezifi zierten Bitpositionen unter Verwendung einer systema tischen Füllungsmethodik.
Definieren einer Liste von Fehlern für die integrierte Schaltung (702);
Erzeugen von zumindest einer Testsequenz (704), die Werte für jene Eingangssignale definiert, die notwen dig sind, um zumindest einen Zielfehler zu erfassen, der von der Liste von Fehlern ausgewählt ist, wobei die Werte nur einen Abschnitt der Bits der zumindest einen Testsequenz aufweisen, wobei ein Rest der Bits in der zumindest einen Testsequenz nicht spezifizierte Bitpositionen sind; und
Einstellen der Werte einer Mehrzahl der nicht spezifi zierten Bitpositionen unter Verwendung einer systema tischen Füllungsmethodik.
2. Verfahren nach Anspruch 1, bei dem der Schritt des
Einstellens der Werte der nicht spezifizierten Bitpo
sitionen ein Einstellen von jeder der Mehrzahl der
nicht spezifizierten Bitpositionen auf einen Wert von
Eins umfaßt.
3. Verfahren nach Anspruch 1, bei dem der Schritt des
Einstellens der Werte der nicht spezifizierten Bitpo
sitionen ein Einstellen von jeder der Mehrzahl der
nicht spezifizierten Bitpositionen auf einen Wert von
Null umfaßt.
4. Verfahren nach Anspruch 1, bei dem der Schritt des
Einstellens der Werte der nicht spezifizierten Bitpo
sitionen ein Erweitern eines Werts einer letzten spe
zifizierten Bitposition aufweist, um eine Mehrzahl der
nicht spezifizierten Bitpositionen auf einen Wert ein
zustellen, der gleich der letzten spezifizierten Bit
position ist.
5. Verfahren nach Anspruch 1, bei dem der Schritt des
Einstellens der Werte der nicht spezifizierten Bitpo
sitionen ein Einstellen von jeder der Mehrzahl der
nicht spezifizierten Bitpositionen unter Verwendung
eines sich wiederholenden Musters von Einsen und Nul
len umfaßt.
6. Verfahren nach Anspruch 1, bei dem der Schritt des
Einstellens der Werte der nicht spezifizierten Bitpo
sitionen ein Einstellen von jeder der Mehrzahl der
nicht spezifizierten Bitpositionen unter Verwendung
eines Algorithmusses umfaßt, der zur Verdichtung
dient.
7. Verfahren nach Anspruch 1, das ferner den Schritt des
Einstellens einer Mehrzahl der nicht spezifizierten
Bitpositionen gemäß einer zufälligen Füllungsmethodik
umfaßt.
8. Verfahren nach einem der Ansprüche 1 bis 7, das ferner
folgende Schritte aufweist:
Hinzufügen einer ersten Testsequenz zu einer Liste von Testsequenzen (714) und Markieren des ausgewählten Fehlers, der erfaßt wird;
Erzeugen einer zusätzlichen Testsequenz, die Werte für jene Eingangssignale definiert, die notwendig sind, um einen Zielfehler zu erfassen, der von der Liste der Fehler ausgewählt wird, und ein anderer als ein mar kierter ist, der erfaßt wird;
Bestimmen, ob die zusätzliche Testsequenz mit einer beliebigen Testsequenz in der Liste der Testsequenzen verdichtet werden kann (710), und falls das so ist, Verdichten (716) der zusätzlichen Testsequenz mit ei ner Testsequenz in dem Satz von Testsequenzen, und falls das nicht so ist, Hinzufügen (714) der zusätzli chen Testsequenz zu dem Satz von Testsequenzen.
Hinzufügen einer ersten Testsequenz zu einer Liste von Testsequenzen (714) und Markieren des ausgewählten Fehlers, der erfaßt wird;
Erzeugen einer zusätzlichen Testsequenz, die Werte für jene Eingangssignale definiert, die notwendig sind, um einen Zielfehler zu erfassen, der von der Liste der Fehler ausgewählt wird, und ein anderer als ein mar kierter ist, der erfaßt wird;
Bestimmen, ob die zusätzliche Testsequenz mit einer beliebigen Testsequenz in der Liste der Testsequenzen verdichtet werden kann (710), und falls das so ist, Verdichten (716) der zusätzlichen Testsequenz mit ei ner Testsequenz in dem Satz von Testsequenzen, und falls das nicht so ist, Hinzufügen (714) der zusätzli chen Testsequenz zu dem Satz von Testsequenzen.
9. Verfahren nach einem der Ansprüche 1 bis 7, bei dem
eine erste Testsequenz der Mehrzahl von Testsequenzen
Werte für jene Eingangssignale definiert, die notwen
dig sind, um eine Mehrzahl von Zielfehlern zu erfas
sen, die von der Liste von Fehlern ausgewählt werden.
10. Verfahren nach einem der Ansprüche 1 bis 7, bei dem
zusätzliche Testsequenzen der Mehrzahl von Testsequen
zen Werte für jene Eingangssignale definieren, die
notwendig sind, um eine Mehrzahl von Zielfehlern zu
erfassen, die von der Liste von Fehlern ausgewählt
werden.
11. Verfahren nach einem der Ansprüche 1 bis 7, bei dem
eine erste Testsequenz der Mehrzahl von Testsequenzen
Werte für nur jene Eingangssignale definiert, die not
wendig sind, um einen Zielfehler zu erfassen, der von
der Liste von Fehlern ausgewählt wird.
12. Verfahren nach einem der Ansprüche 1 bis 7, das ferner
den Schritt eines Fehlersimulierens einer ersten Test
sequenz, die in dem Schritt des Erzeugens von zumin
dest einer Testsequenz (704) erzeugt wird, aufweist,
um zu bestimmen, ob die erste Testsequenz zusätzliche
Fehler erfaßt, und falls das so ist, Markieren der zu
sätzlichen Fehler, die erfaßt werden.
13. Verfahren nach einem der Ansprüche 1 bis 12, bei dem
die integrierte Schaltung ein Abschnitt einer größeren
integrierten Schaltung auf einem Chip ist.
14. Verfahren nach einem der Ansprüche 1 bis 13, bei dem
Ausgaben für die zumindest eine Testsequenz anspre
chend auf den verdichteten Zustand erzeugt werden.
15. Vorrichtung zum Erzeugen eines Satzes von Testsequen
zen, die folgende Merkmale aufweist:
eine erste Einrichtung (806) zum Auswerten eine Liste von Fehlern und zum Erzeugen von zumindest einer Test sequenz, die konfiguriert ist, um zumindest einen Feh ler auf der Liste von Fehlern zu testen, wobei die zu mindest eine Testsequenz Werte für jene Eingangssigna le definiert, die notwendig sind, um zumindest einen Zielfehler zu erfassen, der von der Liste von Fehlern ausgewählt ist, wobei die Werte nur einen Abschnitt der Bits der zumindest einen Testsequenz aufweisen, wobei ein Rest der Bits in der zumindest einen Testse quenz nicht spezifizierte Bitpositionen sind; und
eine zweite Einrichtung zum Einstellen einer Mehrzahl der Werte der nicht spezifizierten Bitpositionen unter Verwendung einer systematischen Füllungsmethodik.
eine erste Einrichtung (806) zum Auswerten eine Liste von Fehlern und zum Erzeugen von zumindest einer Test sequenz, die konfiguriert ist, um zumindest einen Feh ler auf der Liste von Fehlern zu testen, wobei die zu mindest eine Testsequenz Werte für jene Eingangssigna le definiert, die notwendig sind, um zumindest einen Zielfehler zu erfassen, der von der Liste von Fehlern ausgewählt ist, wobei die Werte nur einen Abschnitt der Bits der zumindest einen Testsequenz aufweisen, wobei ein Rest der Bits in der zumindest einen Testse quenz nicht spezifizierte Bitpositionen sind; und
eine zweite Einrichtung zum Einstellen einer Mehrzahl der Werte der nicht spezifizierten Bitpositionen unter Verwendung einer systematischen Füllungsmethodik.
16. Vorrichtung nach Anspruch 15, bei der die zweite Ein
richtung die Werte der nicht spezifizierten Bitposi
tionen einstellt, indem jede der nicht spezifizierten
Bitpositionen auf einen Wert von Eins eingestellt
wird.
17. Vorrichtung nach Anspruch 15, bei der die zweite Ein
richtung die Werte der nicht spezifizierten Bitposi
tionen einstellt, indem jede der nicht spezifizierten
Bitpositionen auf einen Wert von Null eingestellt
wird.
18. Vorrichtung nach Anspruch 15, bei der die zweite Ein
richtung die Werte der nicht spezifizierten Bitposi
tionen einstellt, indem jede der nicht spezifizierten
Bitpositionen bezüglich eines sich wiederholenden Mu
sters von Einsen und Nullen eingestellt wird.
19. Vorrichtung nach Anspruch 15, bei der der Schritt des
Einstellens der Werte der nicht spezifizierten Bitpo
sitionen ein Erweitern eines Werts einer letzten spe
zifizierten Bitposition umfaßt, um eine Mehrzahl der
nicht spezifizierten Bitpositionen auf einen Wert ein
zustellen, der gleich der letzten spezifizierten Bit
position ist.
20. Vorrichtung nach Anspruch 15, bei der der Schritt des
Einstellens der Werte der nicht spezifizierten Bitpo
sitionen ein Einstellen von jeder der Mehrzahl der
nicht spezifizierten Bitpositionen unter Verwendung
eines Algorithmusses umfaßt, der zur Verdichtung
dient.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/589,338 US6865706B1 (en) | 2000-06-07 | 2000-06-07 | Apparatus and method for generating a set of test vectors using nonrandom filling |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10125331A1 true DE10125331A1 (de) | 2002-01-17 |
Family
ID=24357605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10125331A Withdrawn DE10125331A1 (de) | 2000-06-07 | 2001-05-23 | Vorrichtung und Verfahren zum Erzeugen eines Satzes von Testsequenzen unter Verwendung eines systematischen Füllens |
Country Status (2)
Country | Link |
---|---|
US (1) | US6865706B1 (de) |
DE (1) | DE10125331A1 (de) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW583745B (en) * | 2003-03-07 | 2004-04-11 | Silicon Integrated Sys Corp | Methodology of locating faults of scan chains in logic integrated circuits |
US6960928B2 (en) * | 2003-11-21 | 2005-11-01 | International Business Machines Corporation | Electromagnetic coupling based motor plug detect system and method |
US8117513B2 (en) * | 2005-03-30 | 2012-02-14 | Lptex Corporation | Test method and test program of semiconductor logic circuit device |
US7970594B2 (en) * | 2005-06-30 | 2011-06-28 | The Mathworks, Inc. | System and method for using model analysis to generate directed test vectors |
KR101010504B1 (ko) * | 2005-07-26 | 2011-01-21 | 고쿠리츠 다이가쿠 호진 큐슈 코교 다이가쿠 | 반도체 논리회로장치의 테스트벡터 생성 방법 및테스트벡터 생성 프로그램 |
JP5201151B2 (ja) * | 2008-01-10 | 2013-06-05 | 富士通株式会社 | テストパターン生成方法、装置及びプログラム |
US8584073B2 (en) * | 2008-07-21 | 2013-11-12 | Synopsys, Inc. | Test design optimizer for configurable scan architectures |
US20110022907A1 (en) * | 2009-06-23 | 2011-01-27 | StarDFX Technologies, Inc. | FPGA Test Configuration Minimization |
US9953725B2 (en) * | 2012-02-29 | 2018-04-24 | Samsung Electronics Co., Ltd. | Semiconductor memory devices and methods of operating the same |
US9087613B2 (en) * | 2012-02-29 | 2015-07-21 | Samsung Electronics Co., Ltd. | Device and method for repairing memory cell and memory system including the device |
US20160363500A1 (en) * | 2015-01-23 | 2016-12-15 | Innovative Pressure Testing, Llc | System and method for improving pressure test efficiency |
US10372526B2 (en) | 2017-07-14 | 2019-08-06 | International Business Machines Corporation | Cleanup of unpredictable test results |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03201035A (ja) * | 1989-10-24 | 1991-09-02 | Matsushita Electric Ind Co Ltd | 検査系列生成方法 |
US5377197A (en) * | 1992-02-24 | 1994-12-27 | University Of Illinois | Method for automatically generating test vectors for digital integrated circuits |
EP0562886B1 (de) * | 1992-03-27 | 2004-05-12 | Matsushita Electric Industrial Co., Ltd. | Verfahren und Gerät zur Prüfsequenzgenerierung |
US5485471A (en) * | 1993-10-15 | 1996-01-16 | Mitsubishi Electric Research Laboratories, Inc. | System for testing of digital integrated circuits |
US5726996A (en) * | 1995-09-18 | 1998-03-10 | Nec Usa, Inc. | Process for dynamic composition and test cycles reduction |
DE69829593T2 (de) * | 1997-04-25 | 2005-09-01 | Matsushita Electric Industrial Co., Ltd., Kadoma | Verfahren einer prüfsequenz-erzeugung |
US6061818A (en) * | 1997-05-08 | 2000-05-09 | The Board Of Trustees Of The Leland Stanford Junior University | Altering bit sequences to contain predetermined patterns |
US6067651A (en) * | 1998-02-20 | 2000-05-23 | Hewlett-Packard Company | Test pattern generator having improved test sequence compaction |
US6662327B1 (en) * | 1998-05-13 | 2003-12-09 | Janusz Rajski | Method for clustered test pattern generation |
US6449743B1 (en) * | 1998-07-15 | 2002-09-10 | Matsushita Electric Industrial Co., Ltd. | Method of generating test sequences |
US6237117B1 (en) * | 1998-09-30 | 2001-05-22 | Sun Microsystems, Inc. | Method for testing circuit design using exhaustive test vector sequence |
US6327687B1 (en) * | 1999-11-23 | 2001-12-04 | Janusz Rajski | Test pattern compression for an integrated circuit test environment |
-
2000
- 2000-06-07 US US09/589,338 patent/US6865706B1/en not_active Expired - Fee Related
-
2001
- 2001-05-23 DE DE10125331A patent/DE10125331A1/de not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US6865706B1 (en) | 2005-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19855488A1 (de) | Testmustergenerator mit verbesserter Testsequenzverdichtung | |
DE60225898T2 (de) | Mehrfacherfassungs-dft-system zum detektieren oder auffinden von überschreitenden taktbereichsfehlern während der selbstprüfung oder scan-prüfung | |
DE60018101T2 (de) | Testmuster-kompression für eine testumgebung von integrierten schaltungen | |
DE602004009284T2 (de) | Systeme und Verfahren um automatisch generiertes Testmuster zu verarbeiten | |
DE19937232B4 (de) | Entwicklungs- und Bewertungssystem für integrierte Halbleiterschaltungen | |
DE602004009309T2 (de) | Automatische testmustererzeugung | |
DE19950821A1 (de) | Bewertungssystem für integrierte Halbleiterschaltungen | |
DE2349324A1 (de) | Verfahren und vorrichtung zum pruefen funktioneller logischer schaltungen | |
DE19700513C2 (de) | Mit CAD-Daten verknüpftes Halbleiterprüfsystem | |
DE4404445C2 (de) | Integrierte Halbleiterschaltung und Verfahren zum Testen derselben | |
DE10392497T5 (de) | Herstellungsverfahren und Herstellungsvorrichtung zum Vermeiden eines Prototypen-Aufschubs bei der ASIC/SOC-Herstellung | |
DE602004009329T2 (de) | Verfahren und system zum selektiven maskieren von testantworten | |
DE10127337A1 (de) | Verfahren und Vorrichtung zum Erzeugen von beim Testen von Halbleiter-ICs verwendeten Testmustern | |
EP0144078A2 (de) | Verfahren und Anordnung zum Prüfen einer Schaltung nach der Abfragepfad-Technik | |
DE4434927C2 (de) | Verfahren zum Testen einer Schaltungsplatine | |
DE10125331A1 (de) | Vorrichtung und Verfahren zum Erzeugen eines Satzes von Testsequenzen unter Verwendung eines systematischen Füllens | |
DE10296464T5 (de) | Verfahren und Gerät zur Validierung des Entwurfes einer komplexen integrierten Schaltungen | |
DE102015110144B4 (de) | Chip und Verfahren zum Testen einer Verarbeitungskomponente eines Chips | |
EP0580663A1 (de) | Verfahren zur verifikation datenverarbeitender systeme. | |
DE112004000601T5 (de) | Ereignisbasiertes Prüfverfahren zur Beseitigung taktbezogener Fehler in integrierten Schaltkreisen | |
DE19748016A1 (de) | Kostengünstiges Prüfverfahren für Registerübertragungspegelschaltungen | |
US7222277B2 (en) | Test output compaction using response shaper | |
DE19930273A1 (de) | Hochgeschwindigkeitsvorrichtung zur Prüfmusterbewertung | |
DE60208062T2 (de) | Digitales system und entsprechendes verfahren zur fehlererkennung | |
DE10052721B4 (de) | Integrierte Schaltung und Verfahren zum Testen einer integrierten Schaltung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: AVAGO TECHNOLOGIES GENERAL IP ( SINGAPORE) PTE. LT |
|
8128 | New person/name/address of the agent |
Representative=s name: DILG HAEUSLER SCHINDELMANN PATENTANWALTSGESELLSCHA |
|
8139 | Disposal/non-payment of the annual fee |