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üllens

Info

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
Application number
DE10125331A
Other languages
English (en)
Inventor
John G Rohrbaugh
Jeff Rearick
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Agilent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of DE10125331A1 publication Critical patent/DE10125331A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318371Methodologies therefor, e.g. algorithms, procedures
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation 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.
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.
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.
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.
DE10125331A 2000-06-07 2001-05-23 Vorrichtung und Verfahren zum Erzeugen eines Satzes von Testsequenzen unter Verwendung eines systematischen Füllens Withdrawn DE10125331A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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