DE60001975T2 - Patterngenerator mit variabler länge für ein chipprüfsystem - Google Patents

Patterngenerator mit variabler länge für ein chipprüfsystem Download PDF

Info

Publication number
DE60001975T2
DE60001975T2 DE60001975T DE60001975T DE60001975T2 DE 60001975 T2 DE60001975 T2 DE 60001975T2 DE 60001975 T DE60001975 T DE 60001975T DE 60001975 T DE60001975 T DE 60001975T DE 60001975 T2 DE60001975 T2 DE 60001975T2
Authority
DE
Germany
Prior art keywords
chip
bit stream
storage device
program storage
word
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.)
Expired - Fee Related
Application number
DE60001975T
Other languages
English (en)
Other versions
DE60001975D1 (de
Inventor
Vernon James RHODES
David Robert CONKLIN
Allen Timothy BARR
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.)
Unisys Corp
Original Assignee
Unisys Corp
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 Unisys Corp filed Critical Unisys Corp
Application granted granted Critical
Publication of DE60001975D1 publication Critical patent/DE60001975D1/de
Publication of DE60001975T2 publication Critical patent/DE60001975T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • 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/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31919Storing and outputting test patterns

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)

Description

  • Dazugehörige Fälle
  • Die vorliegende Erfindung, wie sie durch das obige Aktenzeichen und den Titel gekennzeichnet ist, betrifft eine andere Erfindung, die hierin mit einer allgemeinen detaillierten Beschreibung beschrieben wird. Diese Anmeldung EP-A-1 212 629 (WO-A-01 16613) hat den Titel: "AN ELECTRONIC SYSTEM FOR TESTING CHIPS HAVING A SELECTABLE NUMBER OF PATTERN GENERATORS THAT CONCURRENTLY BROADCAST DIFFERENT BIT STREAMS TO SELECTABLE SETS OF CHIP DRIVER CIRCUITS."
  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung, wie in den Ansprüchen aufgeführt, deckt eine Programmspeichervorrichtung ab, die Befehle enthält, die durch unbenutzte Bits, die an Wortgrenzen enden, voneinander beabstandet werden und die Chip-Prüf-Bitströme jeder Länge erzeugen. Im Stand der Technik wird ein betreffendes elektronisches System zum Testen der Chips im US-Patent 5.390.129 offenbart. Dieses System aus dem Stand der Technik ist auf die Unisys Corporation übertragen, die auch die Inhaberin der vorliegenden Erfindung ist.
  • Ein vereinfachtes Blockdiagramm des Chiptestsystems aus dem Stand der Technik wird in der 2 des Patents '129 gezeigt. Dieses System schließt einen Computer 50 ein, der über einen Zeitmultiplex-Bus 52 mit einer Mehrzahl an Treiber-Platten 100 verbunden wird; und jede Treiber-Platte 100 wird mit einer jeweiligen Einbrenn-Platte 500 verbunden, die mehrere Chips von integrierten Schaltungen hält, die getestet werden sollen.
  • Während des Betriebs sendet der Computer 50 nacheinander jeder Treiber-Platte 100 einen separaten Satz von Testdatenmustern zu, die verwendet werden, um die Chips zu testen. Diese Testdatenmuster werden in einem großen SRAM, der in der 3 mit der Bezugsziffer 107 gezeigt und detaillierter in der 9 mit der Bezugsziffer 145 gezeigt wird, auf jeder Treiber-Platte gespeichert. Welche spezielle Treiber-Platte die Testdatenmuster zu irgendeinem Zeitpunkt empfängt und speichert, wird von einer Adressschaltung 100A bestimmt, die sich auf der Treiber-Platte befindet, wie im Blockdiagramm der 2 gezeigt.
  • Nachdem die Testdatenmuster im SRAM 145 auf allen Treiber-Platten 100 gespeichert sind, können daraufhin die Chips auf allen Einbrenn-Platten 500 parallel getestet werden. Um dies zu tun, werden die Prüfmuster gleichzeitig von allen SRAMs gelesen und, wie in der 14 gezeigt, mittels von jeweiligen Ausgabe-Treibermodulen 164 an die Chips auf allen Einbrenn-Platten 500 gesandt.
  • Ein besonderes Merkmal des Chiptestsystems im Patent '129 ist es, dass jede Einbrenn-Platte einen ID-Code einschließt, der die Chiparten identifiziert, die auf der Platte getestet werden müssen. Dieser ID-Code wird durch die Treiber-Platte 100 abgetastet und an den Computer 50 gesandt; und als Antwort werden die Testdatenmuster, die der Computer 50 an die Treiber-Platte sendet, auf den ID-Code zugeschnitten, der abgetastet wird.
  • Jedoch hat das Chiptestsystem im Patent '129 auch einige wesentliche Einschränkungen, die vom Aufbau der 2 auferlegt werden. Der Computer 50 ist z. B. die alleinige Quelle der Testdatenmuster für alle Treiber-Platten 100. Folglich ist die Betriebsgeschwindigkeit des Chiptestsystems begrenzt, da der Computer 50 die Testdatenmuster nur zu einem Zeitpunkt über den Bus 52 an eine einzige Treiber-Platte senden.
  • Eine weitere Beschränkung des Chiptestsystems im Patent '129 liegt darin, dass jede Treiber-Platte 100 immer alle Chips auf einer Einbrenn-Platte 500 gleichzeitig testet. Jedoch hat jede Einbrenn-Platte einen inhärenten Grenzwert in Bezug auf die gesamte Verlustleistung, die die Chips auf der Platte verbrauchen können. Um die gesamte Verlustleistung an jeder Einbrenn-Platte 500 unter einer bestimmten Grenze zu halten, muss die gesamte Anzahl der Chips auf jeder Einbrenn-Platte abnehmen, wenn die maximale Verlustleistung pro Chip steigt.
  • Noch eine weitere Beschränkung des Chiptestsystems im Patent '129 liegt darin, dass die gespeicherten Testdatenmuster im großen SRAM 145 auf jeder Treiber-Platte die SRAM-Speicher zellen sehr unwirksam verwenden. 9 des Patents '129 zeigt, dass jeder SRAM 145 neunzehn Adressbits und acht Datenausgabebits empfängt; und solchermaßen hat der SRAM 145 auf jeder Treiber-Schaltung 8 Millionen Speicherzellen. Allerdings werden bestimmte Chiparten getestet, indem ihnen Sequenzen von seriellen Bitströmen zugesandt werden, die mit der Zeit in der Zahl variieren. Wenn ein SRAM 145 während eines Zeitintervalls vier Bitströme sendet und während eines anderen Zeitintervalls nur zwei Bitströme sendet, dann wird solchermaßen die Hälfte des SRAM vergeudet, wenn die zwei Bitströme gesendet werden.
  • Im Stand der Technik offenbart das US-Patent 4.680.733 auch eine Vorrichtung für das Serialisieren/Entserialisieren der Bitkonfigurationen variabler Länge; US-Patent 5.657.443 offenbart ein verbessertes Testsystem für ein Anwendungs-spezifisches Speicherschema; und US-Patent 5.243.274 offenbart einen ASIC-Testgerät. Jedoch definieren diese Patente lediglich den allgemeinen Zustand des Standes der Technik und sind von keiner besonderen Bedeutung für die Aufgabe, wie die Beschränkungen des Patents '129 gelöst werden.
  • Entsprechend liegt eine Hauptaufgabe des Chiptestsystems, das hierin offenbart wird, darin, auf alle obigen Beschränkungen einzugehen und sie zu überwinden.
  • KURZE ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung, wie in den Ansprüche aufgeführt, deckt einen Aspekt des offenbarten Chiptestsystems ab, der auf die obige Beschränkung eingeht, die die ineffiziente Speicherung der Testdatenmuster betrifft. In Übereinstimmung mit der vorliegenden Erfindung setzt sich ein System zum Testen von Chips von integrierten Schaltungen aus einem Mustergenerator zusammen, der an einen Speicher gekoppelt ist, der die Befehle variable Länge speichert, die die Sätze der Bitströme zum Testen der Chips bestimmen. Jeder Befehl variabler Länge schließt einen Code ein, der die Anzahl der Bitströme im Satz anzeigt. Jeder Bitstrom im Satz besteht aus einer wählbaren Anzahl an Bits, die an einer Wortgrenze starten und in Inkrementen eines Bits variieren. Ein jeweiliger Satz von unbenutzten Bits startet unmittelbar nach jedem Bitstrom und endet an einer Wortgrenze.
  • Wenn der Code anzeigt, dass die Anzahl der Bitströme in einem Satz nur eins ist, dann wird dieser eine Bitstrom in aufeinanderfolgenden Worten des Speichers gespeichert. Wenn der Code anzeigt, dass die Anzahl der Bitströme in einer Reihe mehr als eins ist, dann werden diese mehreren Bitströme auf eine verschachtelteArt und Weise in aufeinanderfolgenden Worten im Speicher gespeichert. Folglich sind die einzigen Speicherzellen, die vergeudet werden, diejenigen, die die unbenutzten Bits nach jedem Bitstrom speichern. Jedoch bewirken diese unbenutzten Bits, dass der nächste Bitstrom an einer Wortgrenze startet; und dies vereinfacht die Schaltung, die der Mustergenerator verwendet, um jeden Bitstrom zu adressieren.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Blockdiagramm eines Chiptestsystems, das eine bevorzugte Ausführungsform der vorliegenden Erfindung bildet;
  • 2 zeigt, wie das Chiptestsystem aus der 1 physisch verpackt wird.
  • 3 zeigt drei verschiedene Arten an Befehlen variabler Länge, die vom System der 1 ausgeführt werden, um Chips von integrierten Schaltungen zu testen.
  • 4 zeigt ein Beispiel dafür, wie die Befehle der 3 in einer Sequenz angeordnet sind, um ein Testprogramm zu bilden.
  • 5 zeigt die inneren Details eines Mustergenerators, der in wählbaren Anteilen im System der 1 auftritt.
  • 6 zeigt die inneren Details einer Chip-Treiber-Schaltung, die in wählbaren Anteilen im System der 1 auftritt.
  • 7 zeigt, wie die Mustergeneratoren der 5 und die Chip-Treiber-Schaltungen der 6 im System der 1 zusammenwirken.
  • 8 zeigt eine zusätzliche Schaltung auf jeder Chip-Treiber-Schaltung, durch die Fehler in den getesteten Chips erfasst werden.
  • 9 zeigt eine zusätzliche Schaltung auf jeder Treiber- Schaltung, durch die mehrere Chips unter der Programmsteuerung in wählbaren Untergruppen gleichzeitig oder aufeinanderfolgend getestet werden.
  • 10 zeigt den Aufbau eines Steuerspeichers, der einen Abschnitt der Schaltung der 9 darstellt.
  • 11 zeigt drei zusätzliches Befehlsarten, die durch das Chiptestsystem der 1 ausgeführt werden.
  • 12 zeigt eine Modifikation, die an den drei Befehlen vorgenommen werden können, die in der 3 gezeigt werden.
  • DETAILLIERTE BESCHREIBUNG:
  • Nimmt man jetzt auf die 1 Bezug, wird eine Ausführungsform eines Systems beschrieben, die die Chips von integrierten Schaltungen in Übereinstimmung mit der vorliegenden Erfindung testet. Dieses System setzt sich aus fünf verschiedenen Arten an Modulen 10-14 zusammen; und eine Beschreibung von jedem Modul wird unten in Tabelle 1 abgegeben.
  • TABELLE 1
    Modul Beschreibung
    10 Jedes Modul 10 ist ein Chipaufbau, der mehrere Chips 10a von integrierten Schaltungen hält, während sie getestet werden. Im System der Fig. 1 ist die Gesamtzahl der Chipaufbauten 10 wählbar. Jeder Chipaufbau 10 schließt eine Leiterplatte 10b ein, an die mehrere Sockel 10c gelötet sind, und jede Buchse hält einen der Chips 10a. Die Anschlussteile 10d werden an einem Rand der Leiterplatte 10b angebracht, und elektrische Leiter 10e in der Leiterplatte tragen Testsignale zwischen den Anschlussteilen 10d und den Chips 10a.
    11 Jedes Modul 11 ist eine Chip-Treiber-Schaltung. Im System der Fig. 1 wird für jeden Chipaufbau eine separate Chip-Treiber-Schaltung 11 bereitgestellt. Jede Chip-Treiber-Schaltung
  • 11 schließt die ganye Schaltung ein, die in den Figuren 6, 8, 9 und 10 geyeigt wird. Durch diese Schaltung werden Testsignale als verschiedene Bit-Serien-Sequenzen, die programmierbar sind, an die Chips 10a gesandt und davon empfangen.
    12 Jeder Gegenstand 12 ist ein Mustergenerator. Im System der Fig. 1 wird jeder Mustergenerator über einen Bus 12a mit einer wählbaren Anzahl an Chip-Treiber-Schaltungen verbunden. Fig. 1 zeigt ein Beispiel, worin alle Chip-Treiber-Schaltungen 11 in Untergruppen aufgeteilt sind, und ein separater Mustergenerator 12 wird über einen separaten Bus 12a mit jeder Untergruppe verbunden. Alternativ können alle Chip-Treiber-Schaltungen 11 durch einen einzigen Bus 12a mit einem einzigen Mustergenerator verbunden werden; oder kann jede Chip-Treiber-Schaltung 11 durch einen separaten Bus 12a mit einem separaten Mustergenerator verbunden werden. Jeder Mustergenerator 12 schließt die gesamte Schaltung ein, die in den Figuren 5 und 6 gezeigt wird. Durch diese Schaltung führt jeder Mustergenerator 12 eine separate Sequenz von programmierbaren Befehlen aus, die bestimmte Bit-Serien-Sequenzen zum Testen der Chips 10c bestimmen. Beim Ausführen der Befehle teilt jeder Mustergenerator 12 die Bit-Serien-Sequenzen in Worte auf und überträgt die Worte an alle Chip-Treiber-Schaltungen 11, die mit seinem Bus 12a verbunden sind.
    13 Jeder Gegenstand 13 ist ein Direktzugriffs-Lese/Schreib-Speicher. Für jeden Mustergenerator 12 wird ein separater Speicher 13
  • bereitgestellt. Jeder Speicher 13 speichert separate Sequenzen an programmierbaren Befehlen, die vom entsprechenden Mustergenerator ausgeführt werden. Diese Befehle werden vom Mustergenerator 12 mithilfe eines Zugrifftors 13a aus dem Speicher 12 gelesen und über ein anderes Zugriffstor 13b in den Speicher geschrieben. Beide Zugriffstore arbeiten gleichzeitig; so können einige Befehle aus dem Tor 13a gelesen werden, während gleichzeitig andere Befehle in das Tor 13b geschrieben werden können.
    14 Modul 14 ist ein einziger Host-Computer, der den Betrieb des gesamten Systems aus der Fig. 1 lenkt. Der Host-Computer 14 wird über einen Bus 13c mit dem Tor 13b an allen Speichern 13 verbunden. Im Host-Computer 14 ist eine Platte 14a, eine Tastatur 14b und ein Bildschirm 14c eingeschlossen. Auf der Platte 14a sind mehrere Programme für die Mustergenerator 12 gespeichert; und jedes dieser Programme schließt eine andere Reihe programmierbarer Befehle ein, die die besonderen Bit-Serien-Sequenzen der Signale bestimmen, um die Chips 10c zu testen. Um eines der Programme auszuwählen und es an den Speicher 13 eines speziellen Mustergenerators zu senden, gibt ein Bediener (nicht gezeigt) mithilfe der Tastatur 14b verschiedene Befehle an den Host-Computer 14 ein. Danach werden die Ergebnisse, die vom Testen der Chips mit den ausgewählten Programmen erhalten werden, vom Mustergenerator im Speicher 13 gespeichert; und sie werden vom Host-Computer 14 auf dem Bildschirm 14c angezeigt.
  • Nimmt man als nächstes auf die 2 Bezug, wird gezeigt, wie alle Module 10-14 als ein System physisch zusammengepackt werden. Gegenstand 20 in der 2 ist ein mechanisches Gestell, das mehrere horizontale Schlitze 21-1, 21-2, usw. aufweist, die übereinander in einem Stapel angeordnet werden. Jeder Schlitz hält wahlweise entweder eine Treiber-Schaltung 11 plus einen Chipaufbau 10 oder hält einen Mustergenerator 12 plus einen Speicher 13.
  • 2 zeigt ein Beispiel, worin die Gesamtzahl der Schlitze im Gestell 20 vierzehn ist. Der obere Schlitz ist 21-1; der nächste Schlitz 21-2, usw. In der 2 werden die Schlitze 21-1 bis 21-14 wie folgt belegt.
  • Jeder der Schlitze 21-1 bis 21-7 hält eine Treiber-Schaltung 11 plus einen Chipaufbau 10; und der nächste Schlitz 21-8 hält einen Mustergenerator 12 plus seinen Speicher 13. Der Mustergenerator 12 im Schlitz 21-8 wird durch einen Bus 12a mit den sieben Treiber-Schaltungen in den Schlitzen 21-1 bis 21-7 verbunden. An diesem Bus überträgt der Mustergenerator im Schlitz 21-8 Bit-Serien-Testsignale an alle sieben Chip-Treiber-Schaltungen, die sich in den Schlitzen 21-1 bis 21-7 befinden.
  • Der Schlitz 21-9 hält eine Treiber-Schaltung 11 plus einen Chipaufbau 10; und der Schlitz 21-10 hält einen Mustergenerator 12 plus seinen Speicher 13. Der Mustergenerator im Schlitz 21-10 wird durch einen Bus 12a mit der Treiber-Schaltung im Schlitz 21-9 verbunden; und an diesem Bus sendet der Mustergenerator im Schlitz 21-10 Bit-Serien-Testsignale an gerade die eine Chip-Treiber-Schaltung im Schlitz 21-9.
  • Jeder der Schlitze 21-11 bis 21-13 hält eine Treiber-Schaltung 11 plus einen Chipaufbau 10; und der nächste Schlitz 21-14 hält einen Mustergenerator 12 plus seinen Speicher 13. Der Mustergenerator im Schlitz 21-14 wird durch einen Bus 12a mit den drei Treiber-Schaltungen in den Schlitzen 21-11 bis 21-14 verbunden; und an diesem Bus überträgt der Mustergenerator im Schlitz 21-14 Bit-Serien-Testsignale an alle drei Chip-Treiber-Schaltungen, die sich in den Schlitzen 21-11 bis 21-13 befinden.
  • Jeder der Speicher 13 in den Schlitzen 21-8, 21-10 und 21-14 speichert unterschiedliche Sequenzen mehrerer Befehlsarten, die die Bit-Serien-Testsignale bestimmen, die vom Mustergenerator 12 übertragen werden. Drei unterschiedliche Befehlsarten werden in der 3 gezeigt. Befehl 31 ist einer ersten Art, Befehl 32 einer zweiten Art und Befehl 33 einer dritten Art.
  • Jeder Befehl der ersten Art 31 schließt ein Wort WO ein, das einen Operationscode OP, eine Wort-Zählung WCNT und eine Bit-Zählung BCNT enthält. Wenn der Operationscode einen besonderen Wert vom OP1 hat, veranlasst der Befehl 31, dass ein Bitstrom TDI in ein DATENREGISTER geschrieben wird, das sich im Chip 10a befindet, der getestet wird. Wenn der Operationscode einen anderen besonderen Wert vom OP2 hat, veranlasst der Befehl 31, dass der TDI-Bitstrom in ein BEFEHLSREGISTER geschrieben wird, das sich im Chip 10a befindet.
  • Für beide Operationscodes OP1 und OP2 wird der zu schreibende TDI-Bitstrom, wie in der 3 gezeigt, im Befehl 31 bestimmt. Dieser TDI-Bitstrom startet unmittelbar nach dem Wort WO und hat eine Länge, die in Inkrementen eines Bits variiert. Die gesamte Anzahl von Bits im TDI-Bitstrom ist (WCNT-1) (X) + BCNT, worin X die Anzahl der Bits pro Wort ist. Alle Bits im letzten Wort, die den TDI-Bitstrom nicht bestimmen, sind unbenutzt.
  • Jeder Befehl der zweiten Art 32 schließt ein Wort WO ein, das einen Operationscode, eine Wort-Zählung WCNT und eine Bit-Zählung BCNT enthält. Wenn der Operationscode einen besonderen Wert vom OP3 hat, veranlasst der Befehl 32, dass der Inhalt des DATENREGISTERS im Chip 10a gelesen und wahlweise mit einem Datenstrom im Befehl verglichen wird. Wenn der Operationscode einen anderen besonderen Wert vom OP4 hat, veranlasst der Befehl 32, dass der Inhalt des BEFEHLSREGISTERS im Chip 10a gelesen und wahlweise mit einem Datenstrom im Befehl verglichen wird.
  • Für beide Operationscodes OP3 und OP4 werden zwei Bitströme ETDO und MASK zur Verwendung im Vergleichsbetrieb innerhalb des Befehls 32 festgelegt. Diese zwei Bitströme beginnen unmittelbar nach dem Wort WO und werden, wie in der 3 gezeigt, Wort-für-Wort verschachtelt. Wenn das i-ste Bit im MASK-Bitstrom eine "1" ist, dann nimmt das i-ste Bit, das vom Chip gelesen wird, im Vergleichsbetrieb teil; und dieses besondere Bit vom Chip. wird mit dem i-sten Bit im ETDO-Bitstrom verglichen. Jeder der Bitströme ETDO und MASK ist in der Länge variabel, und die gesamte Anzahl der Bits in jedem dieser Bitströme ist (WCNT-1)(X) + BCNT. Alle Bits in den letzten zwei Worten, die die ETDO- und MASK-Bitströme nicht bestimmen, sind unbenutzt.
  • Jeder Befehl der dritten Art 33 schließt ein Wort WO ein, das einen Operationscode OP, eine Wort-Zählung WCNT und eine Bit-Zählung BCNT enthält. Wenn der Operationscode einen besonderen Wert vom OP5 hat, veranlasst der Befehl 33, dass der Bitstrom TDI in ein DATENREGISTER im Chip 10a geschrieben wird, und gleichzeitig veranlasst der Befehl 33, dass der Inhalt des DATENREGISTERS im Chip 10a gelesen und wahlweise mit einem Datenstrom im Befehl verglichen wird. Wenn der Operationscode einen anderen besonderen Wert vom OP6 hat, veranlasst der Befehl 33, dass der TDI-Bitstrom in das BEFEHLSREGISTER im Chip 10a geschrieben wird, und gleichzeitig veranlasst der Befehl 33, dass der Inhalt des BEFEHLSREGISTERS im Chip 10a gelesen und wahlweise mit einem Datenstrom im Befehl verglichen wird.
  • Für beide Operationscodes OP5 und OP6 wird der TDI-Bitstrom im Befehl 33 bestimmt; und zwei andere Bitströme ETDO und MASK werden zur Verwendung im Vergleichsbetrieb ebenfalls im Befehl bestimmt. Diese drei Bitströme beginnen unmittelbar nach dem Wort WO und sie werden, wie in der 3 gezeigt, Wort-für-Wort verschachtelt. Wenn das i-ste Bit im MASK-Bitstrom "1" ist, dann nimmt das i-ste Bit, das aus dem Chip gelesen wird, im Vergleichsbetrieb teil; und dieses besondere Bit vom Chip wird mit dem i-sten Bit im ETDO-Bitstrom verglichen. Jeder der Bitströme TDI, ETDO und MASK ist in der Länge variabel; und die gesamte Anzahl der Bits in jedem dieser Bitströme ist (WCNT-1)(X) + (BCNT). Alle Bits in den letzten drei Worten, die die TDI-, ETDO- und MASK-Bitströme nicht bestimmen, sind unbenutzt.
  • Wenn der Mustergenerator 12 jeden der Befehle 31, 32 und 33 ausführt, erzeugt er auch einen zusätzlichen Bitstrom, der im Befehl der 3 nicht deklariert wird. Dieser zusätzliche Bitstrom wird als Steuersignal, TMS genannt, verwendet, das den Chip 10a in besondere Zustände setzt, die wahlweise das DATENREGISTER lesen, das DATENREGISTER beschreiben, das BEFEHLSREGIS TER lesen oder das BEFEHLSREGISTER beschreiben. Jeder TMS-Bitstrom wird als Reaktion auf die Operationscodes OP1-OP6 erzeugt, die bestimmen, dass entweder das Befehlsregister oder das Datenregister verwendet werden sollte, und die WCNT- und BCNT-Zählungen bestimmen, die die Anzahl der Bits im TMS-Signal bestimmen.
  • 4 zeigt ein Beispiel dafür, wie die drei Befehlsarten 31, 32 und 33 in unterschiedlichen Sequenzen in jedem Speicher 13 für einen Mustergenerator 12 gespeichert werden. Im Beispiel der 4 ist die Sequenz der Befehle I(k), I(k + 1),... usw. Die Befehle I(k + 1) und I(k + 3) sind der ersten Art 31, die Befehle I(k) und I(k + 4) sind der zweiten Art 32 und die Befehle I(k + 2) und I(k + 5) sind der dritten Art 33.
  • Jeder Befehl der ersten Art 31 wird durch einen Operationscode von OP1 oder OP2 identifiziert und bestimmt einen einzigen Bitstrom TDI variabler Länge. Jeder Befehl 32 der zweiten Art wird durch einen Operationscode von OP3 oder OP4 identifiziert und bestimmt zwei Bitströme ETDO und MASK variabler Länge. Jeder Befehl 33 der dritten Art wird durch einen Operationscode von OP5 oder OP6 identifiziert und bestimmt drei Bitströme TDI, ETDO und MASK variabler Länge. Eine jeweilige Serie an Bits, die nicht verwendet werden (NU), startet unmittelbar nach jedem seriellen Bitstrom und endet an einer Wortgrenze; und dies ermöglicht es dem nächsten Befehl in der Sequenz, immer an einer Wortgrenze anzufangen.
  • Wendet man sich jetzt der 5 zu, werden die Details der Schaltung beschrieben, die sich in jedem Mustergenerator 12 befindet. Diese Schlatung schließt eine sequentielle Zustandsmaschine 40, einen Zähler 41, eine Reihe von sieben Registern 42-48, einen Multiplexer 49 und einen Oszillator 50 ein. All diese Komponenten 40-50 werden wie gezeigt miteinander verbunden.
  • Der Zähler 41 hat, wie jeder der Register 42-48, einen Satz an Dateneingaben D und eine Takteingabe C. Um die Daten an den Eingängen D im Zähler oder in einem besonderen Register zu speichern, sendet die Zustandsmaschine 40 einen Taktpuls an die Takteingabe C. Der Zähler 42 hat auch eine Abwärtszähl-Eingabe CD; und der Zähler senkt seine gespeicherte Zahl um 1, wenn ein Puls an der CD-Eingabe empfangen wird.
  • Im Betrieb wird jede der Komponenten 41-48 von der Zustandsmaschine 40 verwendet, um die folgende Information zu speichern. Das Register 42 speichert den Operationscode OP, der im ersten Wort WO der Befehle 31, 32 und 33 aus der 3 auftritt. Der Zähler 41 speichert die Wort-Zählung WCNT, und das Register 43 speichert die Bit-Zählung BCNT, die im ersten Wort WO eines jeden Befehls aus der 3 erfolgt.
  • Das Register 44 speichert ein Wort des Bitstroms TDI, das in den Befehlen 31 und 33 der 3 auftritt. Das Register 45 speichert ein Wort des Bitstroms ETSO, das in den Befehlen 32 und 33 der 3 auftritt. Und Register 46 speichert ein Wort des Bitstroms MASK, das in den Befehlen 32 und 33 der 3 auftritt.
  • Das Register 47 speichert ein Wort des zusätzlichen Bitstroms TMS, das während der Ausführung der Befehle aus der 3 intern vom Mustergenerator 12 erzeugt wird. Das Register 48 ist ein Allzweckregister, das verschiedene Steuerbits speichert, die sowohl vom Mustergenerator 12 als auch von Chip-Treiber-Schaltungen 11 auf eine Weise, die kurz beschrieben sein wird, intern verwendet werden.
  • Zu Beginn der Ausführung von einem Befehl der 3 liest der Mustergenerator 12 das erste Wort WO des Befehls aus dem Speicher 13. Um diesen Lesebetrieb durchzuführen, sendet die Zustandsmaschine 40 eine Speicheradresse MADDR an eine Reihe von Adressleitungen 40a, die an das Tor 13a des Speichers 13 gehen, der in 1 gezeigt wird. Als Reaktion darauf sendet das Tor 13a des Speichers 13 das adressierte Wort als Speicherdaten MDATA auf einem Satz an Datenleitungen 40b zurück zur Zustandsmaschine 40. Dann sendet die Zustandsmaschine 40 eine Taktpuls an drei Taktleitungen 40c-40e, um den OP-Code im Register 42 zu speichern, die Wort-Zählung WCNT im Zähler 41 zu speichern und um die Bit-Zählung BCNT im Register 43 zu speichern.
  • Danach untersucht die Zustandsmaschine 40 den OP-Code, der sich im Register 42 befindet. Wenn der OP-Code im Register 42 anzeigt, dass der Befehl einer Art ist, die einen TDI-Datenstrom einschließt, dann wird das erste Wort dieses Datenstroms aus dem Speicher 13 gelesen und im Register 44 gespeichert. Wenn der OP- Code im Register anzeigt, dass der Befehl der Art ist, die einen ETDO-Datenstrom einschließt, dann wird das erste Wort dieses Datenstroms aus dem Speicher 13 gelesen und im Register 45 gespeichert. Wenn der OP-Code im Register 42 anzeigt, dass der Befehl der Art ist, die einen MASK-Datenstrom einschließt, dann wird das erste Wort des MASK-Datenstroms aus dem Speicher 13 gelesen und im Register 46 gespeichert.
  • Die obigen Datenstromworte werden eines nach dem anderen mithilfe der Mustergenerator-Zustandsmaschine 40 erhalten, indem sequentiell eine Speicheradresse auf den Adressleitungen 40a gesendet und das adressierte Wort vom Speicher 13 zurück auf den Datenleitungen 40b empfangen wird. Jedes empfangene Wort aus dem Speicher 13 wird im passenden Register 44, 45 oder 46 gespeichert, indem ein Taktpuls auf einer der Taktleitungen 40f, 40g oder 40h gesendet wird.
  • Im Anschluss an den obigen Betrieb erzeugt die Zustands maschine 40 intern ein Wort des zusätzlichen Bitstroms TMS, das zuvor beschrieben wurde. Dieses intern erzeugte Wort des TMS-Bitstroms wird auf einem Satz an Signalleitungen 40i übertragen und von einem Taktpuls auf einer Taktleitung 40j in das TMS-Register 47 geladen.
  • Danach verwendet die Zustandvorrichtung 40 den Multiplexer 49, um sequentiell die Ausgabe der Register 44-47, die zuvor geladen wurden, auf einem Satz an Datenleitungen 55 weiterzuleiten, die die JDATA genannten Datensignale mit sich führen. Um die Ausgabe eines besonderen Registers mittels des Multiplexers 49 weiterzuleiten, erzeugt die Zustandsmaschine 40 SEL(i) genannte Steuersignale auf einem Satz von Steuerleitungen 40k, die an den Multiplexer 49 gehen.
  • Während die Ausgabe eines Registers auf den JDATA-Leitungen 55 übertragen wird, erzeugt die Zustandsmaschine 40 auch JRDDR genannte Adresssignale auf einem Satz an Adressleitungen 56; und diese Adresssignale bestimmen den Bestimmungsort für die JDATA-Signale. Um anzuzeigen, wann die JDATA-Signale und JADDR-Signale übertragen werden, sendet die Zustandsmaschine 40 einen JSTROBE genannten Puls auf einer Taktleitung 57. Die Zustandsmaschine 40 sendet auch einen BUSCK genannten frei laufenden Takt auf einer Taktleitung 58. Alle Leitungen 55-58 zusammen bilden den Bus 12a, der in den 1 und 2 gezeigt wird, die den Mustergenerator 12 mit einer wählbaren Anzahl an Chip-Treiber-Schaltungen 11 verbinden.
  • Als nächstes werden mit Bezug auf die 6 die Details der Schaltung beschrieben, die sich in jeder der Chip-Treiber-Schaltungen 11 befindet. Diese Schaltung schließt einen Adress-Decoder 60, einen Satz an fünf Registern 61-65, einen Satz an vier Parallel-zu-Seriell-Schieberegistern 66-69, eine Schiebe-Steuerschaltung 70 und einer Leitung 71 mit variabler Verzögerung ein. Alle Komponenten 60-71 werden, wie in der 6 gezeigt, miteinander verbunden.
  • Jedes der Register 61-65 hat einen Satz an Dateneingaben D und eine Freigabeeingabe E und eine Takteingabe C. Die Dateneingaben D empfangen die Datensignale JDATA vom Mustergenerator der 5, und die Takteingabe C empfängt den JSTROBE-Taktpuls aus dem Mustergenerator. Um die JDATA-Signale in einem besonderen Register 61-65 zu speichern, wird ein separates Freigabesignal E1-E6 an die Freigabeeingabe E dieses Registers übertragen.
  • Alle Freigabesignale E1-E5 für die Register 61-65 werden durch die Adress-Decodierschaltung 60 auf einem Satz an Signalleitungen 60a-60e erzeugt. Das Freigabesignal E1 wird an das Register 61 übertragen; das Freigabesignal E2 wird an das Register 62 übertragen; usw. Diese Freigabesignale E1-E5 werden im Adress-Decoder 60 erzeugt, indem besondere Adressen auf den JADDR-Adressleitungen 56 decodiert werden.
  • Im Betrieb sendet die Mustergenerator-Zustandsmaschine 40 der 5 die JADDR-, JDATA- und JSTROBE-Signale derart, dass die Register 62-65 die folgende Information speichert. Ein Wort des MASK-Bitstroms wird im Register 62 gespeichert; und dieses Wort wird mittels des Multiplexers 50 vom Register 47 der 5 übertragen. Ein Wort des TDI-Bitstroms wird im Register 63 gespeichert; und 'dieses Wort wird mittels des Multiplexers 50 aus dem Register 44 der 5 übertragen. Ein Wort des ETDO-Bitstroms wird im Register 64 gespeichert; und dieses Wort wird mittels des Multiplexers 50 aus dem Register 45 der 5 übertragen. Ein Wort des TMS-Bitstroms wird im Register 65 gespeichert; und dieses Wort wird mittels des Multiplexers 50 aus dem Register 47 der 5 übertragen.
  • Jedes Register 62-65 wird jeweils mit einer Dateneingabe D auf einer der Parallel-zu-Seriell-Schieberegister 66-69 verbunden. Diese Parallel-zu-Seriell-Schieberegister haben auch eine LADE-Eingabe L und eine TAKT-Eingabe C. Ist das LOAD-(LADE)-Signal auf der Eingabe L in einem "1"-Zustand, wenn die Takteingabe C die ansteigende Flanke des SERIALCK-Taktsignals empfängt, dann werden alle Dateneingabesignale in den Parallel-zu-Seriell-Schieberegistern 66-69 gespeichert. Befindet sich das LOAD-Signal in einem "0"-Zustand, wenn die ansteigende Flanke des SERIALLCK-Taktsignals erfolgt, dann werden andererseits alle Register 66-69 um ein Bit der Daten, die sie speichern, ausgeschoben.
  • Sowohl das LOAD-Signal als auch das SERIALCK-Taktsignal werden durch die Schiebe-Steuerschaltung 70 erzeugt; und sie arbeitet als Reaktion auf das Freigabesignal E5, die ermöglicht, dass ein Wort des TMS-Bitstroms in das Register 65 geladen wird. Nachdem das Freigabesignal E5 veranlasst, dass das TMS-Register geladen wird, beginnt die Schiebe-Steuerschaltung 70 damit, das SERIALCK-Taktsignal auf der Leitung 70a zu erzeugen. Dies wird getan, indem das Bus-Taktsignal BUSCK von der Taktleitung 58 zur Taktleitung 70a angesteuert.
  • Für den ersten Zyklus des SERIALCK-Taktsignals sendet die Schiebe-Steuerschaltung 70 das LOAD-Signal als eine "1" an alle Seriell-Parallel-Register 66-69; und dies bewirkt, dass die Register 66-69 ein Wort des Bitstroms speichern, das in den Registern 62-65 gehalten wird. Dann erzeugt die Schiebe-Steuerschaltung 70 das LOAD-Signal als eine "0", was jeden der Parallel-zu-Seriell-Register 66-69 veranlasst, das Wort der Bitströme, das sie gespeichert haben, auszuschieben.
  • Jedes Bit aus den Registern 66-69 wird synchron mit dem SERIALCK-Takt verschoben. Der MASK-Bitstrom wird auf der Signalleitung 66a verschoben; der TDI-Bitstrom wird auf der Signalleiltung 67a verschoben; der ETDO-Bitstrom wird auf der Signalleitung 68a verschoben; und der TMS-Bitstrom wird auf der Signalleitung 69a verschoben. Diese Verschiebung setzt sich als Reaktion auf den "0"-Zustand des LOAD-Signals fort, bis jedes der Schieberegister 66-69 geleert wird.
  • Wenn sich irgendeiner der Bitströme MASK, TDI, ETDO und TMS in ein zweites Wort erstreckt, werden diese Worte aus dem Speicher 13 gelesen und von der Mustergenerator-Zustandsmaschine 40 in die Register 62-65 geladen, während die obige Verschiebung stattfindet. In diesem Fall wird sich die Schiebe-Steuerschaltung 70 daran erinnern, dass das Freigabesignal E5 erneut ein zweitesmal an das TMS-Register 65 übertragen wurde.
  • Wenn später das Schieberegister 66-69 leer wird, wird die Schiebe-Steuerschaltung 70 testen, um zu sehen, ob das zweite Freigabesignal E5 übertragen wurde. Wenn es wurde, wird die Schiebe-Steuerschaltung 70 das LOAD-Signal als eine "1" erneut an alle Seriell-Parallel-Register 66-69 senden; und dies wird die Register 66-69 veranlassen, das zweite Wort der Bitströme zu speichern, die in den Registern 62-65 gehalten werden. Dann wird die Schiebe-Steuerschaltung 70 das LOAD-Signal als eine "0" erzeugen, bis jeder der Parallel-zu-Seriell-Register 66-69 das zweite Wort des Bitstroms, das sie gespeichert haben werden, ausschiebt.
  • Das obige Laden und Verschieben wird fortgesetzt, bis das Ende des seriellen Bitstroms für einen Befehl im Speicher 13 erreicht wird. Wenn das letzte Bit der Bitströme aus den Registern 66-69 verschoben wird, stoppt die Schiebe-Steuerschaltung 70 das Erzeugen des Taktsignals SERIALCK auf der Taktleitung 70a.
  • Zusätzlich zu allen oben beschriebenen Betrieben erzeugt die Chip-Treiber-Schaltung der 6 auch ein Taktsignal TCK. auf einer Taktleitung 71a. Dieses TCK-Taktsignal ist eine verzögerte Kopie des BUSCK-Signals auf der Leitung 53; und es wird von der Schaltung 71 mit variabler Verzögerung erzeugt. Die Größe der Verzögerung durch die Schaltung mit variabler Verzögerung wird von den Steuersignalen auf den Signalleitungen 61a ausgewählt, die im Register 61 gespeichert werden.
  • Nimmt man als nächstes auf die 7 Bezug, wird die Gesamtsequenz dargestellt, in der jeder Befehl in der 3 vom Mustergenerator der 5 und der Chip-Treiber-Schaltung der
  • 6 ausgeführt wird. Anfänglich befindet sich die Mustergenerator-Zustandsmaschine 40 in einem Zustand S1; worin sie das erste Wort WO eines Befehls aus ihrem Speicher 13 liest. Danach untersucht die Zustandsmaschine 40 im Zustand S2 den Operationscode im Register 42, um die Art des Befehls zu bestimmen, den sie ausführt.
  • Wenn der Befehl der einer ersten Art 31 oder einer dritten Art 33 ist, dann liest die Zustandsmaschine 40 ein Wort des TDI-Bitstroms; und dies erfolgt im Zustand S3. Dieses Wort wird von der Zustandsmaschine 40 im Register 44 gespeichert.
  • Wenn der Befehl der einer zweiten Art 32 oder einer dritten Art 33 ist, dann liest die Zustandsmaschine 40 ein Wort des ETDO-Bitstroms; und dies erfolgt im Zustand S4. Dieses Wort des ETDO-Bitstroms wird von der Zustandsmaschine 40 im Register 45 gespeichert.
  • Wenn der Befehl auch der einer zweiten Art 32 oder einer dritten Art ist, dann liest die Zustandsmaschine 40 ein Wort des MASK-Bitstroms; und dies erfolgt im Zustand S5. Dieses Wort des MASK-Bitstroms wird von der Zustandsmaschine 40 im Register 46 gespeichert.
  • Danach erzeugt die Zustandsmaschine 40 intern ein Wort des TMS-Bitstroms; und dies erfolgt im Zustand S6. Dieses Wort des TMS-Bitstroms wird von der Zustandsmaschine 40 im Register 47 gespeichert.
  • Im Zustand S7 überträgt die Zustandsmaschine 40 als nächstes ein Wort des TDI-Bitstroms, wenn es einen Befehl der ersten oder zweiten Art 31 oder 33 ausführt. Dieses Wort des TDI-Bitstroms wird vom Register 44 durch den Multiplexer 49 und in das Register 63 einer jeden Chip-Treiber-Schaltung übertragen, die mit dem Mustergenerator verbunden ist.
  • Im Zustand S8 überträgt die Zustandsmaschine 40 als nächstes ein Wort des ETDO-Bitstroms, wenn sie einen Befehl der zweiten oder dritten Art 31 oder 33 ausführt. Dieses Wort des ETDO-Bitstroms wird vom Register 45 durch den Multiplexer 49 und in das Register 64 einer jeden Chip-Treiber-Schaltung übertragen, die mit dem Mustergenerator verbunden wird.
  • Im Zustand S9 überträgt die Zustandsmaschine 40 als nächs tes ein Wort des MASK-Bitstroms, wenn sie einen Befehl der zweiten oder dritten Art 32 oder 33 ausführt. Dieses Wort des MASK-Bitstroms wird vom Register 46 durch den Multiplexer 49 und in das Register 62 einer jeden Chip-Treiber-Schaltung übertragen, die mit dem Mustergenerator verbunden ist.
  • Im Zustand S10 überträgt die Zustandsmaschine 40 als nächstes ein Wort des TMS-Bitstroms. Dieses Wort des TMS-Bitstroms wird aus dem Register 47 durch den Multiplexer 49 und in das Register 65 einer jeden Chip-Treiber-Schaltung übertragen, die mit dem Mustergenerator verbunden ist.
  • Im Zustand S11 dekrementiert die Zustandsmaschine 40 dann die Wort-Zählung WCNT im Zähler 41 um 1 und testet, um zu sehen, ob das Ergebnis 0 ist. Wenn das Ergebnis nicht 0 ist, werden alle Betriebe in den Zuständen S3-S10 wiederholt. Wenn andererseits das Ergebnis 0 ist, beginnt die Zustandsmaschine 40 mit der Ausführung des nächstes Befehls mittels der Eingabe des Zustands S1.
  • Jedesmal, wenn die Zustandsmaschine 40 ein Wort des TMS-Bitstroms im Zustand S10 überträgt, erinnert sich die Schiebe-Steuerschaltung 70 in jeder Chip-Treiber-Schaltung, die mit dem Mustergenerator verbunden ist, an dieses Ereignis. Wenn die Parallel-zu-Seriell-Schieberegister 66-69 leer sind, werden sie dann mit dem Inhalt des Halte-Registers 62-65 geladen. Dies geschieht, wenn sich die Chip-Treiber-Schaltungen in einem Zustand S21 befinden.
  • Danach wird der Inhalt der Parallel-zu-Seriell-Schieberegister 66-69 auf der Signalleitung 66a-69a verschoben. Dies erfolgt, wenn sich die Chip-Treiber-Schaltungen in einem Zustand S22 befinden. Wenn das letzte Bit in den Schieberegistern 66-69 ausgeschoben wird, testet daraufhin die Schiebe-Steuerschaltung 70, um zu sehen, ob das Register 65 mit einem anderen Wort des TMS-Bitstroms geladen wurde. Wenn es wurde, werden die Lade- und Schiebebetriebe der Zustände S21 und S22 wiederholt.
  • Wenn die Bitströme von TDI, ETDO, MASK und TMS mehrere Worte lang sind, dann erfolgen die Zustände S21 und S22 in den Chip-Treiber-Schaltungen 11 gleichzeitig mit den Zuständen S3-S11 im Mustergenerator 12. Infolge dieses gleichzeitigen Be triebs wirken die Chip-Treiber-Schaltungen 11 und der Mustergenerator 12 als Mehrstufen-Pipeline, in der die Chip-Treiber-Schaltungen die Bits von einem Wort der Bitströme verschieben, während der Mustergenerator das nächste Wort der Bitströme liest und überträgt.
  • Wenn die Mustergenerator-Zustandsmaschine 40 mit der Ausführung des nächsten Befehls beginnt, fahren die Chip-Treiber-Schaltungen 11 im Zustand S22 ebenfalls damit fort, irgendwelche Bits, die in den Parallel-zu-Seriell-Schieberegistern 66-69 bleiben, zu verschieben. Infolge dieses gleichzeitigen Betriebs wirken die Chip-Treiber-Schaltungen 11 und der Mustergenerator 12 erneut als eine Mehrstufen-Pipeline, in der die Chip-Treiber-Schaltungen die Bits in den Bitströmen eines Befehls verschieben, während der Mustergenerator das Wort WO des nächsten Befehls liest und decodiert.
  • Wendet man sich jetzt der 8 zu, werden zusätzliche Details darüber gezeigt, wie jede Chip-Treiber-Schaltung mit den Chips von integrierten Schaltungen, die getestet werden, verbunden wird. In der 8 bezeichnet die Bezugsziffer 10 denselben Chipaufbau, der in den 1 und 2 gezeigt wird; und die Bezugsziffer 10a kennzeichnet die Chips im Aufbau 10, die getestet werden sollen.
  • Für jeden Chip 10a, der im Aufbau 10 getestet werden soll, wird in der Chip-Treiber-Schaltung 11 einen separaten Satz von vier Sendern 81-84 plus ein Empfänger 85 bereitgestellt. Jeder Sender 81 sendet das Taktsignal TCK von der Leitung 71a an einen separaten Chip 10a. Jeder Sender 82 sendet den Bitstrom TDI von der Leitung 67a an einen separaten Chip 10a. Jeder Sender 83 sendet den Bitstrom TMS von der Leitung 69a an einen separaten Chip 10a. Und jeder Sender 84 sendet einen jeweiligen Hochfrequenz-Takt HFCK(i), der später in Verbindung mit den 9 und 10 beschrieben werden wird, an einen separaten Chip 10a.
  • Als Reaktion auf die Signale, die von den Sendern 81-84 empfangen werden, erzeugt jeder Chip 10a im Aufbau einen separaten Ausgabebitstrom, der TDO genannt wird. Dieser TDO-Bitstrom von jedem Chip 10a wird an einen separaten Empfänger 85 auf der Chip-Treiber-Schaltung gesandt. Von den Empfängern 85 werden alle TDO-Bitströme von den verbliebenen Komponenten 90-98 der Chip-Treiber-Schaltung, die in der 8 gezeigt werden, parallel-verarbeitet.
  • Die Komponente 90 in 8 ist ein EXKLUSIV-ODER-Gatter; die Komponente 91 ist ein UND-Gatter; und die Komponente 92 ist ein Flip-Flop. Ein separater Satz von Komponenten 90-92 wird für jeden der Empfänger 85 bereitgestellt. Die Komponente 93 in der 8 ist ein Multiplexer; die Komponente 94 ist eine Decoderschaltung; die Komponente 95 ist eine Schlatung mit variabler Verzögerung; die Komponente 96 ist ein Register; die Komponente 97 ist eine Decoderschaltung; die Komponente 98 ist ein Register; und die Komponente 99 ist ein Decoderschaltung.
  • Im Betrieb werden die Bitströme ETDO, MASK und TCK mittels der Schaltung 95 mit variabler Verzögerung übertragen, um dadurch drei entsprechende verzögerte Bitströme zu erzeugen, die jeweils DETDO, DMASK und DTCK genannt werden. Die Größe der Verzögerung durch die Schaltung 95 mit variabler Verzögerung wird durch die Ausgabe des Registers 96 ausgewählt; und diese Verzögerung kompensiert eine Verzögerung, die innerhalb eines jeden Chips 10a erfolgt, der den TDO-Bitstrom erzeugt. Um eine besondere Verzögerung auszuwählen, wird das Register 96 mit den JDATA-Signalen geladen, wenn die Decoderschaltung 97 eine vorbestimmte JADR-Adresse erfasst.
  • Aus der Verzögerungsschaltung 95 wird der verzögerte Bitstrom DETDO an alle EXKLUSIV-ODER-Gatter 90 übertragen, wo er mit den TDO-Bitströmen verglichen wird, die von allen Empfängern 85 kommen. Wenn zwischen irgendeinem Bit im DETDO-Bitstrom und dem entsprechenden Bit im TDO(i)-Bitstrom ein Fehlvergleich auftritt, dann wird das EXKLUSIV-ODER-Gatter 90, wo der Fehlvergleich auftritt, ein Ausgabesignal ERA(i) in einem "1"-Zustand erzeugen.
  • Jedes der Fehlersignale ERA(i) aus den EXKLUSIV-ODER-Gatter 90 wird an ein separates der UND-Gatter 91 übertragen; und diese UND-Gatter empfangen auch zwei weitere Eingabesignale. Ein solches Eingabesignal ist der verzögerte Bitstrom DMASK, und das andere Eingabesignal ist ein separates Freigabesignal EN(i) vom Register 98. Wenn das Fehlersignal ERA(i) eine "1" für ein be sonderes Bit im TDO(i)-Bitstrom ist und das entsprechende Bit im DMRSK-Signal auch eine "1" ist und das Freigabesignal EN(i) auch eine "1" ist, dann ist das Ausgabesignal ERB (i) vom i-sten UND-Gatter eine "1".
  • Um einen Fehlvergleich in irgendeinem besonderen Bit im Bitstrom TDO(i) zu ignorieren, wird das entsprechende Bit im DMASK-Bitstrom auf eine "0" gesetzt. Ein gesamter Bitstrom TDO(i) kann auch ignoriert werden, indem das entsprechende Freigabesignal EN(i) auf eine "0" gesetzt.
  • Wenn das Fehlersignal ERB (i) von irgendeinem der UND-Gatter 91 eine "1" wird, wird dies bewirken, dass das entsprechende Flip-Flop 92 gesetzt wird. Jedes Flip-Flop 92, das gesetzt wird, wird danach gesetzt bleiben, bis es gelesen und vom Mustergenerator 12 rückgesetzt wird.
  • Um die Fehler-Flip-Flops 92 zu lesen, sendet der Mustergenerator 12 eine besondere JADR-Adresse an die Decoderschaltung 94; und als Reaktion darauf erzeugt die Decoderschaltung 94 ein Signal am Ausgang 94a, der die Fehlersignale von allen Flip-Flops 92 durch den Multiplexer 93 auf den JDATA-Leitungen 50 weiterleitet. Dann sendet der Mustergenerator 12 eine andere FADR-Adresse, die die Decoderschaltung 94 veranlasst, ein Signal am Ausgang 94b zu erzeugen, das alle Flip-Flops 92 rücksetzt.
  • Als nächstes werden mit Bezug auf die 9 mehrere zusätzlichen Schaltkomponenten 100-109, die innerhalb einer jeden der Chip-Treiber-Schaltungen 11 eingeschlossen sind, beschrieben. All diese Komponenten 100-109 wirken zusammen, um ein separates Hochfrequenz-Taktsignal HFCK(i) für jeden Chip 10a zu erzeugen, der getestet wird.
  • In der 9 ist die Komponente 100 ein freilaufender Hochfrequenz-Oszillator; die Komponente 101 ist eine Decoderschaltung; die Komponente 102 ist ein Register; und die Komponente 103 ist eine Teilerschaltung, die um die wählbare Ganzzahl N teilt. Die Komponente 104 ist eine sequentielle Zustandsmaschine; die Komponente 105 ist eine Zählerschaltung, die eine Zählung für die Zustandsmaschine 104 hält; und die Komponente 106 ist ein Speicher, der die Steuersignale für die Zustandsmaschine 104 hält. Die Komponente 107 ist ein Flip-Flop; die Komponente 108 ist ein ODER-Gatter; und die Komponente 109 ist ein Sender. Ein separater Satz 110(i) der Komponenten 107-109 wird für jedes Hochfrequenz-Taktsignal HFCK(i) bereitgestellt, das erzeugt wird.
  • Im Betrieb erzeugt der Oszillator 100 einen freilaufenden Takt FRCK1 an einer einzigen Hochfrequenz. Dieses Taktsignal FRCK1 wird an die Teilerschaltung 103 übertragen, wo es durch eine wählbare Ganzzahl N in der Frequenz reduziert wird. Dann wird der Ausgabetakt FRCK2, vom Teiler 103 an jeden Satz 110(i) der Schaltungen 107-109 übertragen.
  • Jeder Satz von Schaltungen 110(i) erzeugt ein Hochfrequenz-Taktsignal HFCK(i), indem wählbare Zyklen eines freilaufenden Takts FRCK2 durchgegeben werden. Diese Zyklen, die durchgegeben werden, werden von zwei Steuersignalen START (i) und STOP(i) ausgesucht; und sie werden von der sequentiellen Zustandsmaschine 104 erzeugt.
  • Wenn das Signal StOP(i) als eine "1" erzeugt wird, wird das Flip-Flop 107 synchron mit dem dem freilaufenden Taktsignal FRCK2 gesetzt. Dieser Setzzustand des Flip-Flops 107 bewirkt, dass die Ausgabe des ODER-Gatters 108 konstant eine "1" erzeugt; und solchermaßen wird das Hochfrequenz-Taktsignal HFCK(i) in einem "1"-Zustand gestoppt.
  • Um das Flip-Flop 107 rückzusetzen, erzeugt die Zustandsmaschine 104 das StOP(i)-Signal als eine "0" und erzeugt das START(i)-Signal als eine "1". Dieser Rücksetzzustand des Flip-Flops 107 bewirkt, dass das ODER-Gatter 108 das Taktsignal FRCK2 durchgibt; und von der Ausgabe des ODER-Gatters 108 passiert der Hochfrequenz-Takt FRCK2 durch den Sender 109, wo er das Taktsignal HFCK(i) wird.
  • Um die Steuersignale STOP(i) und START (i) für jeden Satz von Schaltungen 110 (i) zu erzeugen, liest die Zustandsmaschine 104 verschiedene Steuerbits, die im Steuerspeicher 106 gespeichert werden. Ein Beispiel für diese Steuerbits wird von den "1"en und "0"en in der 10 gezeigt. Um einen Satz von Steuerbits zu lesen, sendet die Zustandsmaschine 104 eine Adresse auf den Adressleitungen 104a an den Speicher 106; und als Reaktion darauf sendet der Speicher den adressierten Satz von Steuerbits auf den Signalleitungen 104b zurück an die Zustandsmaschine 104.
  • 10 zeigt ein Beispiel, worin sich jeder Satz von Steuerbits aus sechzehn Bits zusammensetzt, die als Bits B1-B16 bezeichnet werden. Jedes der ersten vierzehn Bits B1-B14 steuert den Betrieb einer besonderen Schaltung der Schaltungen 110(i). Bit B1 steuert die Schaltung 110(1); Bit B2 steuert die Schaltung 110(2); usw. Die übrigen Bits B15 und B16 sind Modus-Steuerbits, die veranlassen, dass die Zustandsmaschine 104 entweder in einem Sequenzmodus oder in einem freilaufenden Modus arbeitet.
  • Wenn der Zustandsmaschine 104 zusammen mit einer besonderen Speicheradresse auf den JDATA-Leitungen ein START-Befehl vom Decoder 101 gesendet wird, wird sie an dieser Adresse den Satz von Steuerbits aus dem Speicher 106 lesen. Wenn die Zustandsmaschine 104 einen Satz von Steuerbits liest, in dem Bit B15 eine "1" ist, dann arbeitet die Zustandsmaschine im Sequenzmodus. In diesem Modus inkrementiert die Zustandsmaschine 104 sequentiell die Adresse, die sie an den Speicher 106 sendet; und als Reaktion darauf empfängt die Zustandsmaschine den adressierten Satz von Steuersignalen. Dieser Sequenzmodus des Betriebs wird fortgesetzt, bis ein Satz von Steuerbits gelesen wird, in dem Bit B16 eine "1" ist; und daraufhin stoppt der Sequenzmodus des Betriebs.
  • Für jeden Satz von Steuersignalen, der im Sequenzmodus gelesen wird, untersucht die Zustandsmaschine 104 die Steuerbits B1-B14. Jedes der Bits B1-B14, das eine "1" ist, veranlasst, dass die Zustandsmaschine 104 die STOP(i)- und START(I)-Signale derart erzeugt, dass die Schaltung 110(1) den Takt FRCK2 für die Zahl an Zyklen durchgibt, die vom Zähler 105 bestimmt wird.
  • In der 10 hat der Satz von Steuerbits, der von der Adresse "A" gelesen wird, die Bits B1-B4 auf "1" eingestellt. Als Reaktion auf diesen Satz von Steuerbits wird die Zustandsmaschine 104 solchermaßen veranlassen, dass jede der Schaltungen 110(i) bis 114(4) das Taktsignal FRCK2 für die Zyklenanzahl, die vom Zähler 105 bestimmt wird, durchgibt.
  • Als nächstes hat der Satz von Steuerbits, der von der Adresse "A + 1" gelesen wird, die Bits B5-B7 auf eine "1" gesetzt. Als Reaktion auf diesen Satz von Steuerbits wird solchermaßen die Zustandsmaschine 104 bewirken, dass jede der Schaltungen 110(5) bis 110(7) das Taktsignal FRCK2 für die Anzahl von Zyklen durchgibt, die vom Zähler 105 bestimmt wird.
  • Als nächstes hat der Satz von Steuerbits, der von der Adresse "A + 2" gelesen wird, die Bits B8-B11 auf eine "1" gesetzt. Als Reaktion auf diesen Satz von Steuerbits wird solchermaßen die Zustandsmaschine 104 bewirken, dass jede der Schaltungen 110(8) bis 110(11) das Taktsignal FRCK2 für die Anzahl von Zyklen durchgibt, die vom Zähler 105 bestimmt wird.
  • Als letztes hat der Satz von Steuerbits, der von der Adresse "A + 3" gelesen wird, die Bits B12-B14 auf eine "1" gesetzt. Als Reaktion auf diesen Satz von Steuerbits wird solchermaßen die Zustandsmaschine 104 bewirken, dass jede der Schaltungen 110(12) bis 110(14) das Taktsignal FRCK2 für die Anzahl von Zyklen durchgibt, die vom Zähler 105 bestimmt wird.
  • Wenn zum Vergleich die Zustandsmaschine 104 ein Satz von Steuerbits liest, in dem Bit B15 eine "0" ist, dann arbeitet die Zustandsmaschine vergleichsweise im freilaufenden Modus. In diesem Modus inkrementiert die Zustandsmaschine 104 nicht die Adresse, die sie an den Speicher 106 sendet; sondern stattdessen arbeitet die Zustandsmaschine kontinuierlich, und zwar bloß mit dem einen Satz von Steuersignalen, die sie liest.
  • Indem dieser einzige Satz von Steuersignalen verwendet wird, untersucht die Zustandsmaschine 104 erneut die Steuerbits B1-B14. Jedes der Bits B1-B14, das eine "1" ist, veranlasst die Zustandsmaschine 104, die STOP(i)- und START (i)-Signale derart zu erzeugen, dass die Schaltung 110 (i) den Takt FRCK2 kontinuierlich durchgibt. Um diesen freilaufenden Betriebsmodus zu beenden, muss der Zustandsmaschine 104 vom Decoder 101 ein Stopp-Signal zugesandt werden; und dieser Befehl wird übertragen, wenn der Decoder 101 eine besondere JADR-Adresse empfängt.
  • In der 10 hat der Satz von Steuerbits, der von der Adresse "A + 4" gelesen wird, Bit B15 auf "0" gesetzt; und dies wird die Zustandsmaschine 104 in den freilaufenden Modus versetzen. Auch werden im Satz von Steuerbits an der Adresse "A + 4" alle Bits B1-B14 auf eine "1" gesetzt; und als Reaktion darauf wird die Zustandsmaschine 104 jede der Schaltungen 110(i) bis 110(4) veranlassen, das Taktsignal FRCK2 kontinuierlich passieren zu lassen, bis ein STOPP-Befehl empfangen wird.
  • Auf eine ähnliche Weise hat in der 10 der Satz von Steuerbits, der von der Adresse "A + 5" gelesen wird, B15 ebenfalls auf eine "0" gesetzt; und dies wird die Zustandsmaschine 104 in den freilaufenden Modus setzen. Jedoch wird im Satz von Steuerbits an der Adresse "A + 5" nur Bit B2 auf eine "1" gesetzt; und so wird die Zustandsmaschine 104 als Reaktion darauf veranlassen, dass nur die Schaltung 110(2) das Taktsignal FRCK2 durchgibt.
  • Ein besonderes Merkmal, das in Zusammenhang mit der Schaltung der 9 und 10 erreicht wird, liegt darin, dass ermöglicht wird, dass die Chips 10a im Chipaufbau 10 gleichzeitig als ein Satz oder sequentiell in wählbaren Untersätzen getestet werden. Dieses Merkmal ist wünschenswert, wenn die Chips 10a, die getestet werden, der Art sind, die eine große Verlustleistung haben, wenn sie das Hochfrequenz-Taktsignal HFCK(i) empfängt, jedoch eine im wesentlichen geringere Verlustleistung haben, wenn sie das Hochfrequenz-Taktsignal nicht empfängt. Solche Chips schließen beispielsweise CMOS-Mikroprozessorchips und CMOS-Speicherchips ein. Durch das Begrenzen der Anzahl an Chips 10a, die gleichzeitig das Hochfrequenz-Taktsignal HFCK(i) empfangen, kann die gesamte Verlustleistung, die in allen Chips 10a verbreitet wird, unter irgendeiner vorbestimmten Leistungsgrenze gehalten werden, die anderenfalls überschritten würde, wenn alle Chips das Hochfrequenz-Taktsignal empfangen würden.
  • Ein weiteres Merkmal, das in Zusammenhang mit der Schaltung der 9 und 10 erreicht wird, liegt darin, dass es ermöglicht wird, einen eindeutigen Strom an Bits getrennt in jeden der Chips 10a zu schreiben. Das wird erreicht, indem Steuerbits im Speicher 106 gespeichert werden, die veranlassen, dass das Hochfrequenz-Taktsignal HFCK(i) der Reihe nach an jeden der Chips 10a übertragen wird. Wenn dann ein besonderer Chip das Hochfrequenz-Taktsignal HFCK(i) empfängt, werden die Daten, die in diesen Chip geschrieben werden sollen, als ein TDI-Bitstrom an alle Chips 10a übertragen. Dieses Merkmal ist wünschenswert, wenn eine bestimmte eindeutige Information wie beispielsweise eine Seriennummer in jeden Chip 10a, der getestet wird, geschrieben werden soll.
  • Wendet man sich jetzt der 11 zu, werden drei zusätzlichen Befehle 34, 35 und 36 gezeigt, die zusammen mit dem zuvor beschriebenen Befehl 31, 32, 33 der 3 in einem Chiptestprogramm im Speicher 13 eingeschlossen sein können. Der Befehl 34 ist ein interner Steuerbefehl, der nur aus einem einzigen Wort WO, das einen Operationscode OP7 einschließt, einem JADR-Feld 34a und einem FDATA-Feld 34b besteht. Wenn der Befehl 34 vom Mustergenerator 12 ausgeführt wird, sendet die Zustandsmaschine 40 das JADR-Feld 34a auf den JADR-Signalleitungen 56 und sendet das JDATA-Feld 34b auf den JDATA-Signalleitungen 55.
  • Der Befehl 34 kann verwendet werden, um das Register 61 in der 6 zu laden, die Register 96 und 98 in der 10 zu laden und das Register 102 in der 9 zu laden. Auch der Befehl 34 kann verwendet werden, um eine Adresse dem Decoder 94 in der 8 zuzusenden, eine Zählung des Zählers 105 in 9 zuzusenden und um jeden Satz von Steuerbits in den Steuerspeicher 106 zu schreiben. Auch der Befehl 34 kann verwendet werden, um START- und STOPP-Befehle vom Decoder 101 an die Zustandsmaschine 104 zu senden.
  • Der Befehl 35 ist ein Abzweigbefehl, der ebenfalls nur aus einem einzigen Wort WO besteht. Der Befehl 35 schließt einen Operationscode OP8, ein Testbedingungsfeld 35a und ein Verzweigungsadressfeld 35b ein. Wenn der Befehl 35 vom Mustergenerator 12 ausgeführt wird, testet die Zustandsmaschine 40 eine Bedingung, die vom Testbedingungsfeld 35a bestimmt wird. Wenn diese getestete Bedingung wahr ist, dann erfolgt der nächste Befehl, der vom Speicher 13 ausgeführt wird, an der Adresse des Abzweigbefehls 35 minus die Verzweigungsadresse im Feld 35b.
  • Der Befehl 36 ist ein Schreib-Speicherbefehl, der ebenfalls aus einem einzigen Wort WO besteht. Der Befehl 36 schließt einen Operationscode OP9 ein, der ihn als den Schreib-Speicherbefehl identifiziert, und schließt ein Speicheradressfeld 36a ein. Wenn der Befehl 36 vom Mustergenerator 12 ausgeführt wird, werden die Fehlersignale aus dem Multiplexer 93 in der 8 gelesen und am Speicheradressfeld 36a in den Speicher 13 geschrieben.
  • Eine bevorzugte Ausführungsform eines Systems wurde jetzt detailliert beschrieben, das in Übereinstimmung mit der vorliegenden Erfindung Chips von integrierten Schaltungen testet. Zusätzlich können jedoch an den Details dieser Ausführungsform verschiedene Änderungen und Modifikationen vorgenommen werden, ohne sich vom Geist und vom Schutzumfang der Erfindung zu lösen.
  • 2 veranschaulicht z. B. nur ein Beispiel, worin das Chiptestsystem in einem Gestell 20 untergebracht wird, das eine Gesamtzahl von vierzehn Schlitzen hat. Jedoch kann das Gestell 20 modifiziert irgendeine andere Anzahl an Schlitzen haben; und es kann mehrere Gestelle geben. Auch können die Schlitze in jedem Gestell mit irgendeiner Kombination aus dem Chipaufbau 10, der Treiber-Schaltung 11 und dem Mustergenerator 12 mit seinem jeweiligen Speicher 13 gefüllt sein.
  • Ruf eine ähnliche Weise zeigt die 1 bloß ein Beispiel, worin jeder Chipaufbau 10 nur vier der Chips 10a von integrierten Schaltungen hält, die getestet werden sollen. Jedoch kann jeder Chipaufbau 10 als Modifikation irgendeine gewünschte Anzahl an Chips 10a von integrierten Schaltungen halten.
  • Als weitere Modifikation kann jedes der Module 11, 12, 13 und 14, die in der 1 gezeigt werden, aus irgendeinem Schaltungstyp aufgebaut sein. Z. B. kann die gesamte Schaltung in der Chip-Treiber-Schaltung 11 und die gesamte Schlatung im Mustergenerator 12 (wie detailliert in den 5, 6, 8, 9 und 10 gezeigt) aus TTL-Schaltungen, ECL-Schaltungen, MOS-Schaltungen und CMOS-Schaltungen aufgebaut sein. Auf eine ähnliche Weise kann jedes Speichermodul 13 aus der 1 aus Speicherelementen irgendeines Typs aufgebaut sein, wie beispielsweise jene, die Datenbits in Flip-Flops oder in einem Kondensator oder auf einem magnetischen Speichermedium oder einem optischen Speichermedium speichert.
  • Auf eine ähnliche Weise kann jede der sequentiellen Steuer schaltungen, die im Chiptestsystem dargestellt sind, irgendeinen internen Aufbau haben. Diese sequentiellen Steuerschaltungen schließen die Mustergenerator-Zustandsmaschine 40 in der 5, die Schiebe-Steuerschaltung 70 der 6 und die Taktsequenz-Zustandsmaschine 104 der 9 ein. Jeder interne Aufbau für die Mustergenerator-Zustandsmaschine 40 ist solange geeignet, wie er in Übereinstimmung mit den Zuständen Sl-S11 der 7 arbeitet. Jeder interne Aufbau für den Chipsteuerstromkreis 70 ist solange geeignet, wie er in Übereinstimmung mit den Zuständen S21-S23 der 7 arbeitet. Und jeder interne Aufbau für die Taktsequenz-Zustandsmaschine 104 der 9 ist solange geeignet, bis er in einem Sequenzmodus und einem freilaufenden Modus arbeitet, wie in Verbindung mit der 10 beschrieben wird.
  • Als weitere Modifikation kann auch die Anzahl an Bits, die als ein Wort aus jedem Speichermodul 13 gelesen werden, irgendeine vorbestimmte Anzahl sein. 3 zeigt, dass jedes Wort im Speichermodul 13 aus "X" Bits besteht. Geeigneter weise ist X eine Ganzzahl von Bytes wie beispielsweise 16 Bits, 32 Bits, 48 Bits, 64 Bits, usw.
  • Weiterhin kann als weitere Modifikation jeder TMS-Bitstrom, der erzeugt wird, um die Chips 10a, die getestet werden, in einen besonderen Zustand zu setzen, irgendeine vorbestimmte Serie an Bits haben. Was jeder Bitstrom sein muss, wird vom internen Aufbau der Chips 10a bestimmt. Als ein spezifisches Beispiel können die TMS-Bitströme, wie unten in der Tabelle 2 gezeigt, vorbestimmt und erzeugt werden.
  • TABELLE 2
    TMS-Kopfzeile Zustand des Chips 10a als Reaktion auf Kopfzeile
    010000 Lese BEFEHLSREGISTERS
    011000 Schreibe BEFEHLSREGISTERS
    011100 Lese DATENREGISTER
    011110 Schreibe DATENREGISTER
  • Jede TMS-Kopfzeile in TABELLE 2 wird von Serien von "1"- Bits gefolgt, was mit der Anzahl an TDO-Bits gleich ist, die aus dem BEFEHLS/DATEN-REGISTER gelesen werden, oder mit der Anzahl an TDI-Bits gleich ist, die in diese Register geschrieben werden. Diese Serie an "1"-Bits wird von einer Serie an "0"-Bits gefolgt, die sich fortsetzt, bis die nächste TMS-Kopfzeile startet.
  • Als weiteres Beispiel kann jeder TMS-Bitstrom in Übereinstimmung mit irgendeinem gewünschten Standard vorbestimmt und erzeugt werden. Ein solcher Standard ist der IEEE 1149.1 Bonndry Scan Standard, der durch Bezugnahme hierin eingeschlossen ist.
  • Zusätzlich zeigt die 12 noch eine weitere Modifikation, wodurch alle vier Bitströme TDI, ETDO, MASK und TMS, die vom Mustergenerator gesendet werden, eigens innerhalb eines Befehls 37 bestimmt werden. Dieser Befehl 37 wird von einem Operationscode vom OP10 im ersten Wort WO identifiziert. Der Befehl 37 schließt ein neues TMS-Feld ein, das den TMS-Bitstrom bestimmt, der übertragen werden soll. Alle anderen Felder BCNT, wCNT, TDI, ETDO und MASK sind dieselben wie die entsprechenden Felder, die zuvor für den Befehl 33 der 3 beschrieben wurden.
  • Indem er in der Lage ist, die TMS-Bitströme innerhalb eines Befehls 37 eigens zu bestimmen, kann ein einziger Mustergenerator 12 sequentiell verschiedene Chiparten testen, die unterschiedliche TMS-Bitströme benötigen, um in den selben Zustand versetzt zu werden. Wenn die Chips, die getestet werden, sämtlich dieselben TMS-Signalsequenzen verwenden, dann wird der Befehl 33 gegenüber dem Befehl 37 vorgezogen, da der Befehl 33 25% weniger Speicherplatz besetzt.
  • Als weitere Modifikation kann irgendeiner der Bitströme TDI, ETDO und MASK im Befehl 37 aus diesem Befehl entfernt werden. Wenn der TDI-Bitstrom beseitigt ist, dann ähnelt das Ergebnis dem zuvor beschriebenen Befehl 32 aus der 3, wenn man davon absieht, dass der TMS-Bitstrom wie erwünscht bestimmt werden kann. Wenn die EDTO- und MASK-Bitströme aus dem Befehl 37 entfernt werden, dann ähnelt das Ergebnis dem zuvor erwähnten Befehl 31 der 3, wenn man davon absieht, dass der TMS-Bitstrom erneut wie erwünscht festgelegt werden kann.
  • Entsprechend ist es verständlich, dass die vorliegende Erfindung nicht auf die Details von irgendeiner besonderen Ausführungsform oder Modifikation eingeschränkt ist, sondern durch die anliegenden Ansprüche bestimmt wird.

Claims (14)

  1. Ein Programmspeichergerät (13), das durch einen Mustergenerator (12) auslesbar ist, das Anweisungen (31, 32, 33, 37) variabler Länge speichert, die den Mustergenerator dazu veranlassen, einen Chip einer integrierten Schaltung durch einen Test-Anschluss auf dem Chip zu testen; wobei jede Anweisung variabler Länge einen Satz von mindestens einem seriellen Bitstrom (TDI, ETDO, MASK, TMS) zur Verwendung im Test und einen Code (OP1-OP6, OP10) einschließt, der die Anzahl von Bitströmen im Satz anzeigt; wobei jeder serielle Bitstrom im Satz aus einer auswählbaren Anzahl von Bits (WCNT, BCNT) besteht, die an einer Wortgrenze starten und in Inkrementen von einem Bit von einem vorbestimmten Minimum zu einem vorbestimmten Maximum reichen; und eine jeweilige Serie von nicht verwendeten Bits (N4), die unmittelbar nach jedem seriellen Bitstrom starten und an einer Wortgrenze enden.
  2. Ein Programmspeichergerät (13) gemäß Anspruch 1, worin die Anweisungen (31, 32, 33) variabler Länge den Mustergenerator (12) dazu veranlassen, intern einen zusätzlichen Steuerbitstrom (TMS) zu erzeugen, um den Chip in besondere Zustände zu versetzen.
  3. Ein Programmspeichergerät (13) gemäß Anspruch 2, worin der Satz aus einem einzigen Bitstrom (TDI) besteht, um in den Chip zu schreiben, und worin der Steuerbitstrom (TMS) den Chip in einen Zustand versetzt, im dem das Schreiben auftritt.
  4. Ein Programmspeichergerät (13) gemäß Anspruch 2, worin der Satz aus zwei Bitströmen (ETDO, MASK) besteht, um Ausgabedaten vom Chip auszuwählen und zu vergleichen, und worin der Steuerbitstrom (TMS) den Chip in einen Zustand versetzt, im dem das Auswählen und Vergleichen auftreten.
  5. Ein Programmspeichergerät (13) gemäß Anspruch 2, worin der Satz aus drei Bitströmen (TDI, ETDO, MRSK) besteht, um jeweils in den Chip zu schreiben, und um Ausgabedaten vom Chip auszuwählen und zu vergleichen, und worin der Steuerbitstrom (TMS) den Chip in einen Zustand versetzt, im dem das Schreiben, Auswählen und Vergleichen auftreten.
  6. Ein Programmspeichergerät (13) gemäß Anspruch 1, worin der Satz einen Steuerbitstrom (TMS) einschließt, der den Chip in die besonderen Zustände versetzt.
  7. Ein Programmspeichergerät (13) gemäß Anspruch 6, worin der Satz weiterhin einen Datenbitstrom (TDI) einschließt, um in den Chip zu schreiben, während sich der Chip in den besonderen Zuständen befindet.
  8. Ein Programmspeichergerät (13) gemäß Anspruch 6, worin der Satz weiterhin zwei Datenbitströme (ETDO, MASK) einschließt, um Ausgabedaten vom Chip auszuwählen und zu vergleichen, während sich der Chip in den besonderen Zuständen befindet.
  9. Ein Programmspeichergerät (13) gemäß Anspruch 6, worin der Satz weiterhin drei Datenbitströme (TDI, ETDO, MASK) einschließt, um jeweils in den Chip zu schreiben, und um Ausgabedaten vom Chip auszuwählen und zu vergleichen, während sich der Chip in den besonderen Zuständen befindet.
  10. Ein Programmspeichergerät (13) gemäß Anspruch 1, worin der Satz mehrere serielle Bitströme (ETDO, MASK) einschließt, die Wort für Wort (WI-2(WCNT)) im Speichergerät verschachtelt sind.
  11. Ein Programmspeichergerät (13) gemäß Anspruch 1, worin die Länge eines jeden seriellen Bitstroms mindestens eintausend Bit beträgt.
  12. Ein Programmspeichergerät (13) gemäß Anspruch 1, worin jedes Wort eine ganzzählige Vielzahl von acht Bit eines seriellen Bitstroms enthält.
  13. Ein Programmspeichergerät (13) gemäß Anspruch 1, worin das Programmspeichergerät ein Speicher einer integrierten Schaltung ist.
  14. Ein Programmspeichergerät (13) gemäß Anspruch 1, worin das Programmspeichergerät ein magnetisches Speichermedium ist.
DE60001975T 1999-08-31 2000-08-23 Patterngenerator mit variabler länge für ein chipprüfsystem Expired - Fee Related DE60001975T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US387197 1999-08-31
US09/387,197 US6405150B1 (en) 1999-08-31 1999-08-31 Program storage device containing instructions that are spaced apart by unused bits that end on word boundaries and which generate chip testing bit streams of any length
PCT/US2000/023061 WO2001016612A1 (en) 1999-08-31 2000-08-23 Variable length pattern generator for chip tester system

Publications (2)

Publication Number Publication Date
DE60001975D1 DE60001975D1 (de) 2003-05-08
DE60001975T2 true DE60001975T2 (de) 2004-02-05

Family

ID=23528893

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60001975T Expired - Fee Related DE60001975T2 (de) 1999-08-31 2000-08-23 Patterngenerator mit variabler länge für ein chipprüfsystem

Country Status (5)

Country Link
US (1) US6405150B1 (de)
EP (1) EP1212628B1 (de)
JP (1) JP3581688B2 (de)
DE (1) DE60001975T2 (de)
WO (1) WO2001016612A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102076858B1 (ko) * 2013-12-24 2020-02-12 에스케이하이닉스 주식회사 반도체장치 및 이를 포함하는 반도체시스템

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3373730D1 (en) * 1983-12-15 1987-10-22 Ibm Series-parallel/parallel-series device for variable bit length configuration
US5581778A (en) * 1992-08-05 1996-12-03 David Sarnoff Researach Center Advanced massively parallel computer using a field of the instruction to selectively enable the profiling counter to increase its value in response to the system clock
US5243274A (en) * 1992-08-07 1993-09-07 Westinghouse Electric Corp. Asic tester
US5657443A (en) * 1995-05-16 1997-08-12 Hewlett-Packard Company Enhanced test system for an application-specific memory scheme
JP3700797B2 (ja) * 1996-08-09 2005-09-28 株式会社アドバンテスト メモリ試験装置
JP3867862B2 (ja) * 1997-04-16 2007-01-17 株式会社ルネサステクノロジ 半導体集積回路およびメモリの検査方法
JP3357577B2 (ja) * 1997-07-24 2002-12-16 富士通株式会社 故障シミュレーション方法および装置並びに故障シミュレーションプログラムを格納した記憶媒体
JP3917734B2 (ja) * 1997-11-07 2007-05-23 富士通株式会社 半導体記憶装置

Also Published As

Publication number Publication date
JP3581688B2 (ja) 2004-10-27
EP1212628A1 (de) 2002-06-12
EP1212628B1 (de) 2003-04-02
US6405150B1 (en) 2002-06-11
JP2003519364A (ja) 2003-06-17
DE60001975D1 (de) 2003-05-08
WO2001016612A1 (en) 2001-03-08

Similar Documents

Publication Publication Date Title
DE60015991T2 (de) Prüfgerät zum gleichzeitigen testen mehrerer integrierter schaltkreise
DE69100204T2 (de) Einrichtung zur Erzeugung von Testsignalen.
DE69728559T2 (de) Verfahren und vorrichtung zur wahl von m-ansteuerungsleitungen unter n-ansteuerungsleitungen
DE3588042T2 (de) Dynamischer Halbleiterspeicher mit einer statischen Datenspeicherzelle.
DE19738569B4 (de) Testschaltkreis für integrierte Schaltkreise und Verfahren zum Testen
DE69031525T2 (de) Konfigurierbare Logikanordnung und zugehöriges Verfahren
DE10150321A1 (de) Verfahren und Vorrichtung zum Testen von integrierten Schaltungen
DE69120765T2 (de) Verfahren zum Datentransfer zu oder von Vorrichtungen über eine Boundary-Scan-Test-Schnittstelle
DE3490015T1 (de) Abfragbarer CMOS Schalter
DE3834759A1 (de) Halbleiterspeichereinrichtung mit ablage-speicher und betriebsverfahren
DE3928902A1 (de) Halbleiterspeicher und verfahren zum betreiben desselben
DE2926322C2 (de) Speicher-Subsystem
DE2825190C3 (de) Programmierbare logische Anordnung
DE69122520T2 (de) Vielfachbus-Systemspeicherarchitektur
DE69912545T2 (de) Schaltkreis mit einer einheit zum testen von verbindungen und ein verfahren zum testen von verbindungen zwischen einem ersten und zweiten elektronischen schaltkreis
DE3689414T2 (de) Automatisches Prüfsystem mit "wahrem Prüfer-per-Anschluss" -Architektur.
DE3434436A1 (de) Befehls-subsitutionssystem fuer eine pruefeinrichtung fuer ein datenverarbeitungssystem
EP1205938B1 (de) Integrierte Schaltung mit Testbetriebsart und Verfahren zum Testen einer Vielzahl solcher integrierter Schaltungen
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE3650508T2 (de) Speicheranordnung zur Simulation eines Schieberegisters
DE60001975T2 (de) Patterngenerator mit variabler länge für ein chipprüfsystem
DE69102770T2 (de) Hochgeschwindigkeitstester und Verfahren zur Erzeugung aufeinanderfolgender Schleifen von Datensignalen einer bestimmten Taktrate.
DE3317593A1 (de) Pruefspeicherarchitektur
WO2004025493A1 (de) Integrierter schaltkreis mit umschaltung durch multiplexer zwischen normalbetrieb und testbetrieb
EP1514277A1 (de) Ram-speicherschaltung mit mehreren bänken und einer hilfseinrichtung zum testen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee