DE69524315T2 - Speicherarchitektur für eine automatische Testeinrichtung mit Vektormodultabelle - Google Patents
Speicherarchitektur für eine automatische Testeinrichtung mit VektormodultabelleInfo
- Publication number
- DE69524315T2 DE69524315T2 DE69524315T DE69524315T DE69524315T2 DE 69524315 T2 DE69524315 T2 DE 69524315T2 DE 69524315 T DE69524315 T DE 69524315T DE 69524315 T DE69524315 T DE 69524315T DE 69524315 T2 DE69524315 T2 DE 69524315T2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- address
- pattern
- module
- modules
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 297
- 239000013598 vector Substances 0.000 title claims abstract description 106
- 238000012360 testing method Methods 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 8
- 230000003213 activating effect Effects 0.000 claims 1
- 230000004913 activation Effects 0.000 claims 1
- 230000007704 transition Effects 0.000 claims 1
- 238000013459 approach Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000009172 bursting Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/319—Tester hardware, i.e. output processing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/36—Data generation devices, e.g. data inverters
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/319—Tester hardware, i.e. output processing circuits
- G01R31/31917—Stimuli generation or application of test patterns to the device under test [DUT]
- G01R31/31919—Storing and outputting test patterns
- G01R31/31921—Storing and outputting test patterns using compression techniques, e.g. patterns sequencer
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Description
- Diese Erfindung betrifft ein automatisches Testgerät und insbesondere die Speicherarchitektur für den Mustererzeugungsabschnitt eines automatischen Testgeräts.
- Ein automatisches Testgerät (welches einfach als "Tester") bezeichnet wird, wird verwendet, um elektronische Komponenten und Einrichtungen zu testen, wenn sie gerade hergestellt werden. Der Tester weist zahlreiche Signalleitungen (die als "Kanäle" bezeichnet werden) auf, die mit der sich unter einem Test befindlichen Einrichtung ("DUT") verbunden ist. Erregungssignale werden an diese Leitungen angelegt und die Antwort der DUT wird auf anderen Leitungen gemessen. Durch Vergleichen der Antwort, die von der DUT empfangen wird, mit einer erwarteten Antwort können Fehler in der DUT erfasst werden.
- Herkömmliche Testsysteme werden durch sehr schnelle Computer gesteuert, auf denen Programme laufen, die als "Muster" bezeichnet werden. Das Muster enthält Information über die Erregungssignale, die angelegt werden sollten, die Reihenfolge, in der diese Signale angelegt werden sollten, und die erwartete Antwort von der DUT. Diese Information für einen Zyklus des Testers wird als "Vektor" bezeichnet. Das Muster wird somit aus einer Reihe von Vektoren aufgebaut. Ein typisches Muster für einen Tester, der zum Testen von VLSI Komponenten ausgelegt ist, kann über eine Million Vektoren aufweisen.
- Tester müssen bei Geschwindigkeiten des Standes der Technik wegen mehrerer Gründe laufen. Zunächst ist es wünschenswert, dass jeder Test so schnell wie möglich abgeschlossen wird, da Hersteller wünschen, so viele Teile so schnell wie möglich herzustellen. Zweitens sind bestimmte Typen von Fehlern in Komponenten nicht detektierbar, außer wenn die Einrichtung bei ihrer beabsichtigen Betriebsgeschwindigkeit betrieben wird. Um zu ermöglichen, dass der Tester bei Geschwindigkeiten des Standes der Technik läuft, werden die Muster in sehr schnellen RAM Speichern gespeichert.
- Tester verwenden immense Mengen von RAM. Ein typischer Tester muss ungefähr 4 Millionen Vektoren speichern. Jeder Vektor enthält mehrere Datenbits für jeden Kanal in dem Tester. Bis zu 512 Kanäle ist eine typische Anzahl von Kanälen in einem Tester. Zusätzlich enthält jeder Vektor mehrere Bits von Steuerinformation. Das Nettoergebnis ist, dass ein Tester typischerweise in dem Bereich von 750 Mbytes von RAM enthält. Unter Verwendung nur des fortschrittlichsten RAM für all diesen Speicher würde zu einem Tester führen, der zu kostenaufwendig sein würde.
- Anstelle davon gibt es eine Geschwindigkeits-/Kosten-Flexibilitäts-Wechselwirkung im Zusammenhang mit der Auswahl eines RAM. Eine Flexibilität bezieht sich auf den Bereich von Speicheradressen, auf die in aufeinanderfolgenden Speicherzyklen zugegriffen werden kann. Eine maximale Flexibilität tritt auf, wenn auf irgendeine Adresse in irgendeinem Zyklus zugegriffen werden kann. Eine minimale Flexibilität tritt auf, wenn nur auf Adressen in einer Sequenz auf aufeinanderfolgenden Zyklen zugegriffen werden kann. Speicher mit höherer Geschwindigkeit für einen gegebenen Flexibilitätsgrad kosten mehr. Genauso kosten Speicher mit einem höheren Betriebsverhalten, die bei einer gegebenen Geschwindigkeit arbeiten, mehr.
- Typischerweise ist die Flexibilität geopfert worden, um bei vernünftigen Kosten eine gute Geschwindigkeit zu erreichen. In dem Tester werden Vektoren in exakt der Reihenfolge aufgeführt, in der sie in den Musterspeicher geschrieben worden sind. Benutzer von Testern würden bevorzugen, keine derartige Begrenzung zu haben. Es ist manchmal schwierig, ein volles Muster in exakt der Reihenfolge zu entwickeln, in der es ausgeführt werden soll. Testingenieure bevorzugen gewöhnlicher Weise das Problem zum Schreiben eines Testmusters dadurch anzugehen, dass die DUT in verschiedene funktionale Elemente segmentiert wird und ein Muster zum Testen jedes funktionalen Elements geschrieben wird. Die Anforderung einer sequentiellen Ausführung von Vektoren in einem Speicher impliziert auch, dass Steuerungskonstruktionen, wie eine Schleifenbildung und eine Abzweigung, in dem Muster nicht verwendet werden können. Ein weiterer Nachteil einer sequentiellen Ausführung tritt auf, weil einige Schritte, die zum Testen von verschiedenen funktionalen Elementen oder zum Ausführen von verschiedenen Tests für ein funktionales Element benötigt werden, oft die gleichen sein werden. Zum Beispiel wird es oft erforderlich sein, eine Initialisierungssequenz wiederholt für die DUT auszuführen, wenn sie vollständig getestet wird. Wenn ein Muster nur einmal in der Reihenfolge ausgeführt werden kann, in der es in den Speicher geschrieben ist, muss die Initialisierungssequenz in den Speicher jedes Mal dann geschrieben werden, wenn sie verwendet wird. Die Herstellung von mehreren Kopien des gleichen Satzes von Vektoren verschwendet Platz in dem Speicher und erschwert für den Testingenieur eine Änderung des Testmusters, weil jede Kopie geändert werden muss.
- Einige Flexibilität kann erhalten werden, weil der Tester gewöhnlicher Weise mit einer Computerarbeitsstation verbunden ist und durch diese gesteuert wird. Die Arbeitsstation enthält ein Massenspeicherungsmedium, beispielsweise eine Platte oder ein Magnetband, die größere Datenmengen kostengünstig speichern können. Verschiedene Muster können entwickelt und auf der Arbeitsstation gespeichert und dann in den Tester hineingeladen werden, wenn sie benötigt werden, um einen Test auszuführen.
- Um eine Herstellung von verschiedenen Mustern zu erleichtern, werden Vektoren gewöhnlicher Weise in Module gruppiert. Jedes Modul ist eine Sammlung von Vektoren, die eine oder mehrere Funktionen ausführt. Zum Beispiel könnte ein Modul Vektoren zum Initialisieren der DUT enthalten. Ein anderes Modul könnte Vektoren zum Testen von Registern innerhalb der DUT enthalten und noch ein anderes Modul könnte Vektoren zum Testen einer arithmetischen Logikschaltungsanordnung innerhalb der DUT enthalten. Um ein Muster zu bilden, könnten diese Module auf der Arbeitsstation zusammengehängt werden und dann in den Musterspeicher des Testers geladen werden.
- Die Verwendung von Modulen weist den weiteren Vorteil auf, dass ermöglicht wird, ein kompliziertes Muster in Stücke aufzubrechen, die einfacher entwickelt und debugged werden können. Jedoch löst dies nicht vollständig das Problem. Der Prozess zum Laden eines neuen Musters aus der Arbeitsstation kann viele Minuten benötigen. Da der Tester in einem Herstellungsbetrieb zum Testen von vielen Teilen so schnell wie möglich verwendet wird, würde eine Verzögerung von wenigen Minuten für jedes getestete Teil eine nicht akzeptierbare Verzögerung hinzufügen. Die Verwendung einer Arbeitsstation beseitigt ferner eine Speicherverschwendung, die durch Wiederholen von Sequenzen von Vektoren in dem Code verursacht wird, nicht. Sie ermöglicht auch nicht ein Abzweigen, eine Schleifenbildung und ähnliche nicht sequentielle Steuerkonstruktionen.
- Begrenzte nicht-sequentielle Steuerkonstruktionen sind in Tester eingebaut worden, indem nur diejenigen Steuerkonstruktionen erlaubt werden, bei denen die Adresse für den nächsten auszuführenden Vektor auf eine einer sehr kleinen Anzahl von Möglichkeiten begrenzt ist. Eine derartige Annäherung bestand darin, einem gegebenen Vektor von dem Musterspeicher zu ermöglichen, eine spezifizierte Anzahl von Malen ausgeführt zu werden, bevor der nächste Vektor in der Sequenz ausgeführt wird. Dieser Ansatz stellt ein nützliches Merkmal dahingehend bereit, dass er die Anzahl von Vektoren herabsetzt, die in einem Musterspeicher für gleiche Typen von Mustern gespeichert werden müssen. Er kompliziert auch die Testerschaltungsanordnung nicht in unzweckdienlicher Weise, weil die Speicheradresse für den nächsten auszuführenden Vektor nur einen von zwei Werten aufweisen kann: den gleichen wie die gegenwärtige Adresse oder eine Adresse höher. Dieser Ansatz ermöglicht dem Tester nicht, Gruppen von Vektoren wiederholt oder in irgendeiner Reihenfolge, die sich von der Reihenfolge unterscheidet, in der die in den Musterspeicher platziert worden sind, auszuführen.
- Ein anderer Ansatz zum Bereitstellen einer größeren Flexibilität, während noch die Anzahl von Auswahlen für die nächste Adresse begrenzt ist, besteht darin, mehrere Speicher zu verwenden. Einer der Speicher kann programmiert werden, um Gruppen von Vektoren zu enthalten, die in dem Testmuster wiederholt werden, ungefähr so wie bei einer Subroutine in der traditionellen Computerprogrammierung. Während einer Ausführung des Musters werden die Vektoren in dem ersten Speicher in einer Sequenz ausgeführt, bis ein Vektor erreicht wird, der anzeigt, dass die "Subroutine" Vektoren aus einem anderen Speicher ausgeführt werden sollten. Eine Ausführung von Vektoren wird auf den zweiten Speicher umgeschaltet, bis ein Vektor erreicht wird, der anzeigt, dass eine Ausführung von Vektoren von dem ersten Speicher wiederaufgenommen werden sollte. Danach werden die Vektoren in dem ersten Speicher sequentiell ausgeführt. Es gibt keine Begrenzung für die Anzahl, wie oft die Vektoren in dem Subroutine- Speicher ausgeführt werden können, wodurch die Notwendigkeit zum Wiederholen dieser Vektoren an mehreren Stellen in dem Muster herabgesetzt wird.
- Variationen dieses Ansatzes sind möglich. Das US-Patent 4,502,120 von Garcia beschreibt eine Variation, bei der Vektoren entwickelt werden können, indem Daten sowohl von dem großen Speicher als auch von dem Subroutine-Speicher gleichzeitig genommen werden. Die japanische Patentveröffentlichung 52-144125 beschreibt eine Variation, bei der eine "Subroutine" in einem anderen Bereich des gleichen Speichers wie das Hauptmuster implementiert ist. Alle diese Ansätze verringern die Speichermenge, die zum Speichern eines Musters benötigt wird.
- Die Notwendigkeit zum Bereitstellen einer größeren Flexibilität in der Reihenfolge zur Ausführung von Vektoren kann auch durch Verwendung von mehreren Speichern adressiert werden. In einigen kommerziellen Systemen ist ein Speicher sehr groß und inflexibel. Ein zweiter Speicher ist viel flexibler und ermöglicht eine Abzweigung und eine Schleifenbildung, ist aber sehr klein.
- Verschiedene Implementierungen dieses grundlegenden Ansatzes sind möglich. Das US-Patent 4,451,918 von Gillette beschreibt einen Tester mit zwei Speicherbänken. Eine Bank ist ein dynamisches RAM, welches eine große Anzahl von Vektoren speichert. Die andere ist ein statisches RAM, welches eine kleinere Anzahl von Vektoren speichert. Vektoren werden von dem kleineren statischen RAM ausgeführt. Um ein großes Muster ablaufen zu lassen, werden Vektoren in das statische RAM in Blöcke geladen. Um Verzögerungen zu verhindern, die durch ein erneutes Laden des statischen RAM verursacht werden, enthält die statische RAM Bank zwei Speicher und einer wird gerade erneut geladen, während Vektoren gerade von der anderen ausgeführt werden. Jedoch ist dieser Ansatz dahingehend begrenzt, dass dann, wenn Vektoren in einer nicht-sequentiellen Reihenfolge ausgeführt werden sollen, der nächste Vektor, der ausgeführt werden soll, in dem statischen RAM eingebaut werden muss, welches gerade verwendet wird, um Vektoren auszuführen.
- Das US-Patent 4,875,210 von Russo et al. beschreibt ein Testersystem, welches ebenfalls ein großes dynamisches RAM, das Vektoren in einer sequentiellen Reihenfolge ausführen muss, und ein kleineres statisches RAM, dass Vektoren enthält, die nicht in einer sequentiellen Reihenfolge ausgeführt werden müssen, enthält. In diesem Patent wird das Testmuster in sequentielle und nicht-sequentielle Blöcke von Vektoren aufgeteilt, bevor diese in den Tester geladen werden.
- Die Verwendung von verschiedenen Typen von Speichern ermöglicht eine Wechselwirkung zwischen einer Flexibilität und den Kosten. Die flexiblen Speicher sind sehr kostenintensiv und müssen sparsam eingesetzt werden. Infolgedessen ist die Größe der flexiblen Speicher gewöhnlicher Weise begrenzt. Ein typischer Tester wird einen flexiblen Speicher aufweisen, der nur 1000 Vektoren speichert. Diese begrenzte Speichermenge ist oft nicht ausreichend.
- Obwohl viele von diesen Techniken gleichzeitig in kommerziellen Testern entwickelt worden sind, besteht noch eine Notwendigkeit für einen Tester, der flexibel programmiert werden kann und dennoch mit kommerziell verfügbaren Speichern mit relativ geringen Kosten implementiert werden kann.
- Die US 5 337 045 beschreibt einen Mustergenerator, der eine Steuereinheit umfasst, die Adresseninformation an eine Adressenerzeugungseinheit liefert, die diese Information verarbeitet und sie an eine Datenspeichereinheit liefert, die Musterdaten speichert. Diese Einrichtung erfordert jedoch einen schnellen Speicher mit großer Kapazität und weist die voranstehend erwähnten Probleme auf.
- Unter Berücksichtigung des vorangehenden Hintergrunds ist es eine Aufgabe der Erfindung, einen Tester bereitzustellen, der bei hohen Geschwindigkeiten arbeitet, während ermöglicht wird, dass große Module von Vektoren mehrere Male während eines Musters ausgeführt werden, ohne diese Vektoren innerhalb des Musters zu wiederholen.
- Es ist auch eine Aufgabe einen Tester bereitzustellen, der bei hohen Geschwindigkeiten arbeitet und ermöglicht, dass große Module von Vektoren wiederholt in einer Schleife ausgeführt werden.
- Es ist eine weitere Aufgabe einen Tester bereitzustellen, der schnell neu programmiert werden kann, um die Reihenfolge einer Ausführung von großen Modulen von Vektoren zu ändern.
- Es ist noch eine andere Aufgabe die vorangehenden Aufgaben bei tragbaren Kosten zu lösen.
- Die Erfindung wird in den Ansprüchen 1, 12 und 15 aufgeführt.
- Die vorangehenden und anderen Aufgaben werden in einem Tester mit einem großen Speicher gelöst, der in eine Vielzahl von Modulen segmentiert ist. Der Tester umfasst ferner Speicherstellen, die die Stelle jedes Moduls in dem großen Speicher speichern, und ferner Speicherstellen, die die Reihenfolge anzeigen, in der die Speichermodule in dem großen Speicher ausgeführt werden sollten. Eine Ausführung eines Musters wird durch Lesen der Reihenfolge erreicht, in der die Module von dem Speicher ausgeführt werden sollten, und dann durch Verwenden der Information, die in dem Speicher gespeichert ist, über die Stelle jedes Moduls, um in dem großen Speicher die Adresse der nächsten auszuführenden Vektoren zu bestimmen.
- Die Erfindung lässt sich besser durch Bezugnahme auf die folgende ausführliche Beschreibung und die beiliegenden Zeichnungen verstehen. In den Zeichnungen zeigen:
- Fig. 1 ein Blockdiagramm eines Testersystems gemäß der Erfindung;
- Fig. 2 eine konzeptionelle Darstellung der Speicherarchitektur der Erfindung;
- Fig. 3 ein Blockdiagramm, das mit näheren Einzelheiten den Mustergenerator des Testers der Fig. 1 zeigt;
- Fig. 4 ein Blockdiagramm, das mit näheren Einzelheiten den Speicher und die Speichersteuerschaltungen des Mustergenerators der Fig. 3 zeigt; und
- Fig. 5 ein Blockdiagramm einer alternativen Implementierung der Vektormodultabelle der Erfindung.
- Fig. 1 zeigt einen Tester 100 gemäß der Erfindung. Im Betrieb ist der Tester 100 mit irgendeiner Einrichtung, die sich unter einem Test befindet (DUT) 102, verbunden. Die bevorzugte Ausführungsform, wie hier beschrieben, ist besonders nützlich zum Testen von VLSI Chips. Jedoch könnte die DUT 102 auch eine gedruckte Schaltungsplatine oder eine andere elektronische Komponente sein.
- Der Tester 100 wird von der Arbeitsstation 104 gesteuert. Die Arbeitsstation 104 enthält einen Computer, eine Benutzerschnittstelle, wie eine Tastatur und ein Videoanzeigeterminal, und einen Massenspeicher, wie eine Platte 106. Bei der Verwendung werden Muster auf der Arbeitsstation 104 entwickelt und dann in den Tester 100 geladen, um die DUT 102 zu testen.
- Der Tester 100 umfasst einen Mustergenerator 108. Der Mustergenerator 108 umfasst einen Musterspeicher 116, der in zwei Stücke aufgeteilt ist, einen Musterdatenspeicher 1 L6B und einen Mustersteuerspeicher 116A. Jeder Vektor, der in dem Musterspeicher 116 gespeichert ist, umfasst Datenbits und Steuerbits. Für die Einfachheit der Implementierung kann diese Information in einem oder mehreren Speichern gespeichert werden. Die Größe des Musterspeichers 116 ist nicht kritisch. Jedoch ist sie vorzugsweise in dem Bereich von 16M bis 64M Vektoren.
- Die Datenbits werden an einem Formatierer 110 bereitgestellt. Der Formatierer 110 ist eine herkömmliche Schaltung, die Daten akzeptiert, die in dem Musterdatenspeicher 116B gespeichert sind, und die geeigneten elektrischen Signale an die DUT 102 liefert. Der Formatierer 110 akzeptiert auch elektrische Signale von der DUT 102 und vergleicht diese mit Datenwerten, die in dem Musterdatenspeicher 116B gespeichert sind. Die Ergebnisse von diesen Vergleichsvorgängen werden an einem Ausfallprozessor 112 bereitgestellt.
- Der Ausfallprozessor 112 ist aus einer Schaltungsanordnung gebildet, die man herkömmlicher Weise in einem Tester findet. Er erkennt Fehler, wenn die erwarteten Signale von der DUT 102 mit den gemessenen Signalen nicht übereinstimmen und speichert Information über den Ausfall. Die Ausfallinformation wird dann an die Arbeitsstation 104 zurückgeleitet.
- Die Information in dem Mustersteuerspeicher 116A wird an der Mustergenerator- Steuerschaltungsanordnung 114 bereitgestellt. Die Information in dem Mustersteuerspeicher 116A zeigt an, welcher Vektor, der in dem Mustersteuerspeicher 116 gespeichert ist, als nächstes ausgeführt werden sollte. Die Mustersteuerungs-Schaltungsanordnung 114 verwendet die Information zum Berechnen der nächsten Adresse für den Mustersteuerspeicher 116. Zum Beispiel wird in einem Tester, der programmiert ist, um einen Vektor eine spezifizierte Anzahl von Malen zu wiederholen, der Mustersteuerspeicher 116A Information speichern, die anzeigt, dass der Vektor wiederholt werden soll und wie oft. Die Mustergenerator-Steuerschaltungsanordnung wird die gegenwärtige Adresse für die spezifizierte Anzahl von Malen wiederholen, bevor zu der nächsten Adresse inkrementiert wird.
- Der Mustergenerator 108 kann von der Arbeitsstation 104 gesteuert werden. Die Arbeitsstation 104 stellt Information für den Mustersteuerspeicher 116 über den Systembus 120 bereit. Die Steuerinformation kann auch über Steuerleitungen 122 geführt werden. Es lässt sich jedoch erkennen, dass Busse in Computersystemen verwendet werden können, um Steuerinformation sowie Daten zu führen, so dass Steuersignale auf dem Systembus 120 geführt werden könnten. Aufgrund der langen Zeit, die zum Laden des Mustersteuerspeichers 116 benötigt wird, ist beabsichtigt, dass sie über den Systembus 120 einmal geladen wird, bevor Tests für die DUT 102 ausgeführt werden. Im allgemeinen werden zahlreiche ähnliche Einrichtungen getestet werden, bevor die Inhalte des Mustersteuerspeichers 116 geändert werden.
- Die Arbeitsstation 104 stellt ebenfalls Steuerinformation an der Mustergenerator- Steuerschaltungsanordnung 114 über Steuerleitungen 112 bereit. Wie in einem herkömmlichen Tester initiiert diese Information ein Muster. Sobald ein Muster initiiert ist, befindet sich eine Ausführung des Musters unter der Steuerung der Mustergenerator-Steuerschaltungsanordnung 114 und nicht unter der von der Arbeitsstation 104. Wie mit näheren Einzelheiten nachstehend noch beschrieben wird, könnte die Information eine derartige Information umfassen, wie wo in dem Speicher eine Ausführung des Musters zu starten oder zu stoppen ist oder welches einer Vielzahl von Mustern auszuführen ist.
- Fig. 1 zeigt derartige Einzelheiten eines Testers wie Energieversorgungen und eine Zeitsteuerungserzeugung nicht. Jedoch sind derartige Einzelheiten in dem technischen Gebiet altbekannt und sind nicht explizit dargestellt.
- Bezugnehmend nun auf Fig. 2 ist die Speicherarchitektur des Testers 100 gezeigt. Diese Figur zeigt den Typ von Information, die in dem Speicher gespeichert ist. Die Information kann in den gleichen oder verschiedenen Speichereinrichtungen gespeichert werden. Eine Zuordnung der speziellen Information, die gezeigt ist, zu spezifischen Speichereinrichtungen, hängt von der Designauswahl ab, ist aber für die Erfindung nicht kritisch.
- Fig. 2 zeigt einen Mustersteuerspeicher 116, der auch als der große Vektorspeicher oder LVM bezeichnet wird. Der Mustersteuerspeicher 116 speichert eine Vielzahl von Vektormodulen. Hierbei sind zur Übersichtlichkeit nur drei Module gezeigt. Jedoch sei darauf hingewiesen, dass ein tatsächliches Muster zahlreiche Module enthalten könnte.
- Die Größe jedes Moduls ist für die Erfindung nicht kritisch. Jedes Modul weist typischerweise eine Länge von über 500 Vektoren und wahrscheinlich über 1000 Vektoren auf. Der Einfachheit halber kann es beim Implementieren der Steuerschaltungsanordnung wünschenswert sein, eine untere Grenze auf die Größe jedes Moduls aufzuerlegen. In der bevorzugten Ausführungsform muss jedes Modul eine Länge von wenigstens 256 Vektoren aufweisen. Vorzugsweise stellt ein Programm, das auf der Arbeitsstation 104 (Fig. 1) läuft, sicher, dass jedes Modul wenigstens 256 Vektoren lang ist.
- Der Ort bzw. die Stelle jedes Moduls in dem Mustersteuerspeicher 116 ist für die Erfindung nicht kritisch. In zweckdienlicher Weise kann ein Programm, das auf der Arbeitsstation 104 (Fig. 1) läuft, die Module in dem Speicher lokalisieren. Der spezifische Speicher, der zum Implementieren des Mustersteuerspeichers 116 verwendet wird, kann Beschränkungen für die Anordnung von Modulen in dem Mustersteuerspeicher 116 erzeugen. Für die Schaltung, die mit näheren Einzelheiten nachstehend beschrieben wird, geben die Speichereinrichtungen, die zum Implementieren des Mustersteuerspeichers 116 verwendet werden, Daten in Blöcken von 64 Vektoren aus und jeder Block muss immer an einer Adresse beginnen, die ein Vielfaches von 64 ist. Demzufolge können einige Vereinfachungen erhalten werden, wenn jedes Modul an einer Stelle beginnt, die eine Speicheradresse aufweist, die ein Vielfaches von 64 ist.
- Eine Modulstellentabelle (MLT) 204 speichert eine Beschreibung des Orts bzw. der Stelle jedes Moduls in dem Mustersteuerspeicher 116. Wie in Fig. 2 dargestellt, kann diese Beschreibung die Startadresse und die Länge des Moduls sein. Andere Beschreibungen könnten möglich sein, wie die Endadresse und die Länge oder die Startadresse und die Endadresse. Jede Stelle in der MLT 204 richtet einen Zeiger auf ein Modul in dem Mustersteuerspeicher 116 ein.
- Die Ausführungsreihenfolge der Module wird durch eine Information in der Vektormodultabelle (VMT) 206 gesteuert. Die aufeinanderfolgenden Stellen in der VMT 206 listen auszuführende Module in der Reihenfolge auf, in der sie ausgeführt werden sollen. Die Information in der VMT 206 zeigt an, welches Modul auszuführen ist, indem die Stelle in der MLT adressiert wird, die die Stelle dieses Moduls gibt. Diese Information wird von dem Tester verwendet, um auf das bezeichnete Modul zuzugreifen. Wenn das von der ersten Stelle bezeichnete Modul in der VMT 206 ausgeführt worden ist, wird auf das Modul, welches durch die nächste Stelle in der VMT 206 bezeichnet wird, zugegriffen und es wird ausgeführt. Die VMT Adressensteuerung 208 verfolgt, was die nächste Stelle zum Ausführen in der VMT 206 ist.
- Die VMT Adressensteuerschaltung könnte so einfach wie ein Zähler sein, der inkrementiert, wenn jedes Modul ausgeführt wird, und stoppt, wenn das abschließende Modul erreicht wird. Sie könnte jedoch eine Steuerlogik enthalten, die ihr ermöglicht, durch eine Gruppe von Stellen in der VMT 206 wiederholt schleifenartig zu gehen.
- Die MLT und die VMT werden auch mit Information geladen, die von der Arbeitsstation 104 bereitgestellt wird. Vorzugsweise verfolgen Softwaretools auf der Arbeitsstation 104 die Stellen in dem Mustersteuerspeicher 116, wo Module gespeichert worden sind, und können die Inhalte der MLT 204 automatisch erzeugen. Die Reihenfolge, in der die Module ausgeführt werden, wird von dem Benutzer vorgegeben, der das Testmuster erstellt. Vorzugsweise erzeugen diese Softwaretools auch die Information für die VMT 206, sobald ein Benutzer die Reihenfolge spezifiziert hat, in der die Module ausgeführt werden sollen.
- Zahlreiche Vorteile ergeben sich aus der in Fig. 2 gezeigten Speicherarchitektur. Ein Vorteil ist, dass es möglich ist, Module in einem Muster wiederzuverwenden, ohne sie in dem Mustersteuerspeicher 116 zu wiederholen. Das einzige, was benötigt wird, ist ein Eintrag in der VMT 206 jedes Mal, wenn das Modul ausgeführt werden soll. Dieser Vorteil ermöglicht dem Musterspeicher 116 kleiner zu sein, oder ermöglicht alternativ dem Tester 100 größere Muster mit der gleichen Speichermenge auszuführen. In dieser Weise ist es möglich, eine Funktion fast genauso wie eine Subroutine auszuführen, ohne die Notwendigkeit eines getrennten Subroutine-Speichers oder einer Steuer-Schaltungsanordnung, die normalerweise im Zusammenhang mit Subroutine-Aufrufen und Rücksprüngen stehen, wobei all diese im allgemeinen teuer zu implementieren ist.
- Die Architektur ermöglicht auch die Reihenfolge einer Ausführung von Modulen ohne ein erneutes Laden der Inhalte des Mustersteuerspeichers 116 zu ändern. Ein Ändern der Inhalte der VMT 206 ändert die Ausführungsreihenfolge von Modulen in dem Mustersteuerspeicher 116. Während der Mustersteuerspeicher 116 zu groß ist, um praktisch während eines Tests einer Einrichtung, die sich unter einem Test befindet, erneut zu laden, ist die VMT 206 viel kleiner und kann ausreichend schnell geladen werden, dass dies einen Testbetrieb nicht in einer signifikanten Weise verlangsamen würde. Eine derartige Fähigkeit würde besonders nützlich sein, wenn gewünscht wird, eine Einrichtung durch Ausführen von mehr als einem Muster zu testen. Sämtliche Module, die für beide Muster benötigt werden, könnten in einem Mustersteuerspeicher 116 geladen werden und dann könnte die VMT mit Information über die Ausführungsreihenfolge für das erste Muster geladen und dann mit der Ausführungsreihenfolge für das zweite Muster erneut geladen werden.
- Die voranstehend erwähnten Vorteile treten vorzugsweise dann auf, während ein Teil gerade getestet wird. Die Architektur der Fig. 2 stellt auch Vorteile bereit, wenn ein Testingenieur gerade ein Programm entwickelt. Während ein Muster entwickelt wird, wird ein Testingenieur das Muster ausführen, Fehler in dem Muster beobachten, ein oder mehrere Module ändern, das Muster neu laden und dann den Prozess wiederholen. Die Tatsache, dass nicht mehrere Kopien des gleichen Moduls in dem Muster vorhanden sind, beseitigt die Notwendigkeit, die gleiche Änderung mehrere Male auszuführen. Ferner ist es auch einfacher, Vektoren zu einem Modul hinzuzufügen, als dies vorher möglich gewesen ist. Weil die Ausführungsreihenfolge von Modulen durch die Inhalte der VMT 206 und nicht von ihrer Stelle in dem Mustersteuerspeicher 116 diktiert wird, kann das Modul an einen größeren Speicherblock ohne Störungen von irgendwelchen anderen Modulen bewegt werden, wenn Vektoren zu einem Modul hinzugefügt werden müssen. Ferner können spezifische Module für eine Ausführung lediglich durch Ändern der Inhalte der 206 isoliert werden. All diese Funktionen können ausgeführt werden, ohne das Muster erneut in den Musterspeicher 116 zu laden. Der Prozess für ein Debugging eines Musters kann deshalb stark beschleunigt werden.
- Bezugnehmend nun auf Fig. 3 wird der Mustergenerator 108 (Fig. 1) mit näheren Einzelheiten gezeigt. Fig. 3 zeigt, dass die VMT 206 (Fig. 2) als ein getrenntes VMT RAM 304 implementiert ist. Hier wird ein 80 ns RAM mit 256K Stellen verwendet. Das VMT RAM 304 ist mit einem Systembus 120 zum Laden von Information verbunden. Die Datenausgangsleitungen des VMT RAM 304 sind mit den Adressenleitungen des MLT RAM 306 verbunden.
- Die MLT 204 (Fig. 2) ist auch als ein getrenntes MLT RAM 306 implementiert. Hier wird ein 80 ns RAM mit einer Größe von 64 K Stellen verwendet. Die Datenausgangsleitungen des MLT RAM 306 werden in zwei Gruppen aufgeteilt. Eine Gruppe, die die Daten führt, die als die Startadresse der Module in der Fig. 2 angezeigt werden, stellt den Eingang zu einem frühen LVM Adressenzähler 310 bereit. Die zweite Gruppe, die die Daten führt, die die Länge jedes Moduls in Fig. 2 spezifizieren, stellt den Eingang an dem Modullängenzähler bereit.
- Hier wird ein Mustersteuerspeicher 116 in einen Mustersteuerspeicher 116A und in einen Musterdatenspeicher 116B aufgeteilt. Die zwei Teile des Musterspeichers 116 werden getrennt adressiert, um eine Pipelining zu ermöglichen. Ein Pipelining (Bilden einer röhrenförmigen Verarbeitung) ist eine bekannte Technik in digitalen Hochgeschwindigkeits-Computersystemen. Sie erfordert Pipeline-Register, die Daten an verschiedenen Stellen in einem Gesamtsystem synchronisieren, und auch synchronisierte Taktsignale zum Steuern des Betriebs von verschiedenen Teilen des Systems. Eine Schaltungsanordnung, die verwendet wird, um das System zu veranlassen, in einer Pipeline-Weise zu arbeiten, ist nicht explizit gezeigt, da sie in dem technischen Gebiet bekannt ist und für den Betrieb der Erfindung nicht kritisch ist.
- Der frühe (early) LVM Adressenzähler 310 ist ein Adressenzähler wie herkömmlicher Weise in einem Testersystem verwendet. Wie mit näheren Einzelheiten nachstehend beschrieben wird, werden Daten aus dem Speicher in Blöcken von 64 Bits ausgelesen. Der Speicher 310 erzeugt einen Ausgang, mit NEW 64 bezeichnet, der mit einer Speicherauffrischungs-Steuerschaltung 314 verbunden ist. Wenn dieses Signal festgestellt wird, zeigt es an, dass ein Zähler 310 auf eine Adresse vorgerückt ist, die erfordert, dass ein neuer Block von 64 Bits aus dem Speicher gelesen wird. Dieses Signal wird eingerichtet, wenn der Zähler eine x64 Grenze durchquert (d. h. auf eine Adresse inkrementiert, die ein Vielfaches von 64 ist, wie eine Inkrementierung von 63 auf 64 oder eine Inkrementierung von 127 auf 128 etc.). Das NEW 64 Signal wird auch eingerichtet, wenn eine neue Adresse, die den Start eines anderen Moduls anzeigt, in den Zähler 310 geladen wird.
- Wie auch nachstehend beschrieben, wird auf den Speicher 116 in Banken zugegriffen. Die Banken werden als die gerade und die ungerade Bank bezeichnet. Blöcke von Daten mit Adressen, die an einem geraden Vielfachen von 64 beginnen, sind in der geraden Bank (d. h. Blöcke, die an Adressen 0, 128, 256, etc. starten). Blöcke von Daten mit Adressen, die an einem ungeraden Vielfachen von 64 starten, sind in der ungeraden Bank (d. h. Blöcke, die bei 64, 192, 320 etc. starten). Der Zähler 310 erzeugt ebenfalls ein Signal, welches an die Speicherauffrischungssteuerung 314 läuft, anzeigend, ob seine gegenwärtige Adresse die ungerade oder gerade Speicherbank ist. Vorzugsweise wird der Zähler 310 als Teil eines Teilmaßgeschneiderten ASIC implementiert und die Signale, die an die Speicherwiederauffrischungs- Steuerschaltung 314 laufen, werden leicht aus dem Wert in dem Zähler abgeleitet.
- Mit dem Mustersteuerspeicher 116A ist eine lokale Speichersteuerschaltung 312A assoziiert. Wie nachstehend mit näheren Einzelheiten im Zusammenhang mit Fig. 4 beschrieben wird, wird der Musterdatenspeicher 116B mit Speicherchips mit Ausgangswerten in Bursts von 8, 8 Bit Wörtern (64 Bits pro Burst) implementiert. Die lokale Speichersteuerung 312A wandelt diese 64 Werte in 64 sequentielle Werte um. Wie nachstehend auch beschrieben wird, wird der Mustersteuerspeicher 116 mit DRAM Chips implementiert, die periodisch wiederaufgefrischt werden müssen.
- Der Ausgang des Mustersteuerspeichers 116A ist mit einer Mustergenerator-Steuereinrichtung 316 versehen. Die Mustergenerator-Steuereinrichtung 316 ist eine Steuereinrichtung des Typs, der gewöhnlicher Weise in Testern verwendet wird. Sie bestimmt, auf Grundlage der Information in dem Mustersteuerspeicher 116A, die nächste Adresse für den Musterdatenspeicher 116B. Um bei hohen Geschwindigkeiten zu laufen, ist die nächste Adresse vorzugsweise entweder auf die nächste Adresse in dem Vektorspeicher 116, die gleiche wie die gegenwärtige Adresse in dem Vektorspeicher 116 oder eine Adresse in einem zweiten Speicher 322, was nachstehend beschrieben wird, beschränkt. Die Mustergenerator-Steuereinrichtung 316 gibt ein INC Signal aus, wenn die nächste Adresse lediglich eine mehr als die gegenwärtige Adresse sein soll. Wenn die Ausführung nicht an den nächsten Vektor in der Sequenz weitergehen soll, wird das INC Signal nicht erzeugt. Wie sich der Fig. 3 entnehmen lässt, ist das INC Signal mit den Zählern verbunden, die die Adresse vorrücken.
- Es lässt sich ersehen, dass bei einem Übergang von der Ausführung von einem Modul in dem LVM 116 an das nächste die Adressen in dem Speicher, von denen Vektoren ausgeführt werden, nicht notwendigerweise konsekutiv sind. Jedoch kann der Tester 100 bei hoher Geschwindigkeit arbeiten, weil die erste Adresse in dem nächsten Modul vorher aus der Information, die in dem MLT RAM 306 gespeichert ist, berechnet werden kann. Eine derartige Anordnung stellt einen Vorteil gegenüber Programmsteuerungskonstruktionen, wie ein Sprungstatement, bei dem die nächste Adresse nicht berechnet werden kann, bis der gegenwärtige Befehl geholt und decodiert ist, bereit.
- Der Musterdatenspeicher 116B ist ähnlich wie der Mustersteuerspeicher 116A. Er weist eine ihm zugeordnete lokale Speichersteuerschaltung 312B auf, die ebenfalls Steuereingänge von der Speicherwiederauffrischungssteuerung 314 empfängt. Die Länge und die Zugriffsgeschwindigkeit des Musterdatenspeichers 116B und des Mustersteuerspeichers 116A sind vorzugsweise identisch. Jedoch kann der Musterdatenspeicher 116B mehr Bits pro jeder Adresse enthalten. Der Musterdatenspeicher 116B enthält so viele Bits pro Adresse wie notwendig sind, um die Daten zu spezifizieren, die an dem Formatierer 110 bereitgestellt werden (Fig. 1).
- Der Mustergenerator 108 umfasst optional einen sekundären Speicher 322. Der sekundäre Speicher 322 kann ein Subroutinen-Speicher sein, wie in dem technischen Gebiet bekannt. In diesem Fall könnte der Mustersteuerspeicher auch Steuerbefehle enthalten, die spezifizieren, dass der nächste auszuführende Vektor von einer Stelle in dem sekundären Speicher auszuführen ist. Wenn ein derartiger Befehl angetroffen wird, ändert die Mustergenerator-Steuereinrichtung 316 den Zustand der INC Leitungen zum Halten der Zähler, die Adressen für den Musterdatenspeicher 116B vorrücken. Wie herkömmlich umfasst der Umschaltbetrieb an dem zweiten Speicher 322 das Erzeugen von sukzessiven Adressen für den zweiten Speicher. Die Adressenerzeugungs-Schaltungsanordnung für den sekundären Speicher 322 ist nicht explizit gezeigt.
- Auf einen Abschluss der Ausführung von Vektoren von dem sekundären Speicher 322, was gewöhnlicher Weise durch die Ausführung eines RETURN (Rücksprung) Operationscodes von dem sekundären Speicher 322 signalisiert wird, wird das INC Signal wieder erzeugt, so dass eine sequentielle Ausführung der Vektoren von dem Musterdatenspeicher 116 wiederaufgenommen wird. Der Mux 324 steuert, ob Musterdaten von dem Musterspeicher 116B oder von dem sekundären Speicher 322 den Formatierer 110 erreichen (Fig. 1). Der Mux 324 wird durch eine Steuerleitung von der Mustergenerator- Steuereinrichtung 316 umgeschaltet.
- Im Betrieb wird der VMT Adressenzähler 302 mit einem Startwert von der Steuerschaltung 208 geladen. Die Steuerschaltung 208 ist mit der Arbeitsstation 104 (Fig. 1) über einen Systembus 120 verbunden und empfängt Information von der Arbeitsstation 104, die die Start- und Stoppstellen in dem VMT RAM 304 spezifiziert. Diese Werte werden in Registern in der Steuerschaltung 208 gespeichert. Am Start eines Musters wird die Startadresse in den VMT Adressenzähler 302 geladen. Wenn der VMT Adressenzähler 302 zählt, vergleicht die Steuerschaltung 208 den Wert in dem Zähler 302 mit der Endadresse, die er gespeichert hat. Wenn die Endadresse erreicht wird, wird der Zähler 302 nicht weiter inkrementiert und das Ende des Musters wird an der Arbeitsstation 104 angezeigt.
- Die Steuerschaltung 208 kann optional andere Register enthalten, die anzeigen, ob eine Schleife über einen gesetzten Bereich von Adressen wiederholt werden sollte. In einem derartigen Fall würde die Steuerschaltung 208 vorzugsweise Register enthalten, um die Startadresse in dem VMT RAM 304 der Schleife und die Endadresse in dem VMT RAM der Schleife anzuzeigen. Einer Ausführung der Endadresse der Schleife folgend würde die Startadresse der Schleife in den VMT Adressenzähler 302 hineingeladen werden. Diese Schleife könnte unendlich wiederholt werden. Alternativ könnte die Steuerschaltung 208 auch einen Zähler enthalten, der die Anzahl gezählt hat, wie oft die obere Adresse in den VMT Adressenzähler 302 geladen wurde, und der einen Schleifendurchlauf abgeschaltet hat, wenn der Wert in dem Zähler erreicht wurde.
- Da jede Stelle in dem VMT RAM 304 adressiert wird, werden die Inhalte der adressierten Stelle an dem MLT RAM 306 als eine Adresse bereitgestellt. Diese Adresse greift auf den Ort in dem MLT RAM 306 zu, die die Startadresse eines Moduls in dem Musterspeicher 116 und dessen Länge speichert. Die Startadresse wird in den Early LVM Adressenzähler 310 geladen und die Länge wird in den Modullängenzähler 308 geladen.
- Der Modullängenzähler 308 und der Early LVM Adressenzähler werden zusammen getaktet, so dass jedes Mal, wenn der Early LVM Adressenzähler 310 die Adresse in dem Musterspeicher 116 um einen Vektor vorrückt, der Modullängenzähler 308 zählt. Wenn die Adresse in dem Early LVM Adressenzähler auf das Ende eines Moduls vorgerückt ist, wird der Modullängenzähler auf Null heruntergezählt haben und gibt ein Modulenden-EOM-Signal aus.
- Das EOM Signal rückt die Adresse in dem VMT Adressenzähler 302 vor, was die Bereitstellung der Startadresse des nächsten Moduls an dem Early LVM Adressenzähler 310 und der Länge des nächsten Moduls an dem Modullängenzähler 308 triggert. Die Module in dem Musterspeicher 116 werden somit in der Reihenfolge ausgeführt, die in dem VMT RAM 304 spezifiziert ist, ohne Berücksichtigung von deren Anordnung in dem Musterspeicher 116.
- Es sei darauf hingewiesen, dass die Speicherarchitektur der Fig. 3 gut für die Verwendung im Zusammenhang mit Standard-Pipeline Designtechniken geeignet ist. Sobald ein EOM Signal empfangen wird, könnte der Ort des nächsten auszuführenden Moduls aus dem VMT RAM 304 und dem MLT RAM 306 berechnet werden. Wenn das nächste EOM Signal empfangen wird, würde in dieser Weise die Startadresse des nächsten Moduls bereits verfügbar sein und eine Ausführung von diesem Modul könnte sofort beginnen. Pipeline-gesteuerte Designs sind altbekannt und die Hardware und die Steuerschaltungsanordnung, die zum Implementieren eines Pipeline-Designs benötigt werden, sind nicht explizit gezeigt.
- Der Musterspeicher 116 ist vorzugsweise ein DRAM, wegen der geringen Kosten und der weiten Verfügbarkeit von großen DRAMs. Ein DRAM muss periodisch wiederaufgefrischt werden und im Betrieb sind Lese- und Wiederauffrischungszyklen gewöhnlicher Weise verschachtelt. Eine Speicherwiederauffrischungssteuerung 314 stellt eine Steuerinformation bereit, die einem Mustersteuerspeicher und einem Musterdatenspeicher ermöglichen, ausreichend oft wiederaufgefrischt zu werden, so dass keine Daten verloren gehen. Jedoch ist es nicht erforderlich, dass eine Wiederauffrischung nach jedem Lesebetrieb ausgeführt wird. Um den Tester zu veranlassen, sehr schnell zu arbeiten werden, wie nachstehend noch beschrieben wird, werden die Zeiten, zu denen Wiederauffrischungsoperationen ausgeführt werden, dynamisch auf Grundlage davon geändert, ob Daten vorhanden sind, die gelesen werden müssen. Wenn eine Steuerung von einem Modul auf ein anderes umschaltet, so dass Vektoren mit einer nicht-sequentiellen Adresse in dem Musterspeicher 116 ausgeführt werden, besteht eine größere Nachfrage nach Daten, die aus dem Musterspeicher 116 gelesen werden sollen. Durch dynamisches Ändern der Wiederauffrischungszeiten werden Daten vorübergehend aus den Speichern bei einer schnelleren Rate gelesen.
- Bezugnehmend nun auf Fig. 4 ist die Steuerschaltungsanordnung für den Musterspeicher 116 mit näheren Einzelheiten gezeigt. Die in Fig. 4 gezeigte Schaltung kann verwendet werden, um entweder einen Musterdatenspeicher 116B oder einen Mustersteuerspeicher 116A darzustellen.
- Der Musterspeicher 116 ist aus einer Vielzahl von Speicherchips 402 gebildet, mit einem Chip für jedes Bit in dem Vektor, der in dem Musterspeicher 116 gespeichert ist. Diese Speicher werden mit JEDEC SDRAM bezeichnet, was impliziert, dass die Speicher Spezifikationen erfüllen, die von JEDEC vorgegeben werden. Der Ausdruck SDRAM zeigt an, dass die Speicher synchrone dynamische RAMs sind. Synchrone Speicher erzeugen Ausgänge zu Zeiten, die zu einem Takt (nicht gezeigt) synchronisiert sind.
- Um einen 200 MHz Tester zu implementieren, werden 66 MHz Speicher, die bei 50 MHz getaktet werden, vorzugsweise verwendet. JEDEC SDRAMs sind in Blöcke organisiert. Jeder Block enthält acht Bytes von jeweils acht Bit. Somit weist ein Block 64 Bits auf Die Speicher sind dafür ausgelegt, um in einem "Burstmodus" zu arbeiten. Während eines Bursts wird ein Block von dem Speicher bei der Speicherausgaberate ausgegeben. Hierbei läuft der Speicher mit 50 MHz, so dass ein Byte bei jeweils 20 ns ausgegeben wird und acht Bytes in 160 ns ausgegeben werden. In einem Burstmode werden die Speicher dann Daten bei einer effektiven Rate von 400 MHz ausgegeben. Die Rate ist zweimal schneller wie ein Tester 100 die Daten verwendet, wenn er bei 200 MHz arbeitet. Zwei Dinge passieren, um zu verhindern, dass Daten verloren gehen, weil sie schneller ausgegeben werden, als sie verwendet werden. Zunächst wird in dem normalen Betrieb jeder zweite Speicherzyklus verwendet, um den Speicher wiederaufzufrischen, was effektiv die Datenrate halbiert. Zweitens wird der Ausgang des Speichers gepuffert.
- Der Ausgang jedes Speicherchips 402 wird an einen Puffer 408 bereitgestellt. Der Puffer 408 hält mehrere Datenblöcke. Da jeder Datenblock aus dem Speicherchip 402 gelesen wird, wird er in dem Speicher 408 gespeichert. In einer bevorzugten Ausführungsform hält der Puffer 408 vier Datenblöcke oder insgesamt 256 Bits. Diese Werte stellen 256 aufeinanderfolgende Werte von einem Bit in dem Musterspeicher 116 dar. Wie in Fig. 4 gezeigt, gibt es einen Speicherchip für jedes Datenbit, das in dem Musterspeicher 116 gespeichert ist.
- Der Puffer 408 wird von einem Zähler 418 adressiert. Da der Puffer 408 256 Stellen enthält, weist der Zähler 418 acht Bits auf. Wenn der Zähler 418 zählt, adressiert er sequentiell die Stellen in dem Puffer 408. Der Zähler 418 inkrementiert so lange wie die INC Leitung aktiviert ist. Wie voranstehend beschrieben, wird diese Leitung so lange aktiviert wie Vektoren sequentiell aus dem Musterspeicher 116 gelesen werden sollen.
- Die Information, die spezifiziert, welcher Block mit 64 Bits aus dem Speicher 116 ausgelesen wird, wird auf dem Adressenbus 410 bereitgestellt. Wenn Blöcke von 64 Bits gelesen werden, besteht keine Notwendigkeit, dass die sechs niedrigstwertigen Adressenbits an dem Speicher 116 bereitgestellt werden. Für ein System, welches auf 64M Vektoren zugreifen kann, werden 20 Adressenleitungen vorhanden sein, aber die exakte Anzahl ist für die Erfindung nicht kritisch. Diese Adressenleitungen werden von dem Early LVM Adressenzähler 310 (Fig. 3) abgeleitet. Jede sukzessive Blockauslesung aus dem Speicher wird an sukzessiven Stellen in dem Puffer 408 gespeichert. Der Puffer 408 "wickelt sich herum", so dass, nachdem jeder Block an dem Boden des Puffers geschrieben ist, der nächste Block oben an den Puffer geschrieben wird. Die Schaltungsanordnung zum Steuern dieses Schreibbetriebs ist nicht explizit gezeigt, da sie altbekannt ist.
- Der Zähler 418 weist einen Steuereingang auf, der mit dem Modulenden-EOM-Signal verbunden ist, welches im Zusammenhang mit Fig. 3 beschrieben wurde. Somit wird am Ende eines Moduls oder noch wichtiger durch den Beginn des nächsten Moduls der Zähler 418 gesetzt, um auf den Beginn des nächsten Datenblocks, der in dem Puffer 408 gespeichert ist, zuzugreifen. In der bevorzugten Ausführungsform greift der Zähler 418 auf den nächsten Block zu, indem er seine sechs niedrigstwertigen Bits auf Null setzt und seine höherwertigen Bits inkrementiert. Deshalb muss jedes Modul an Adressen mit sechs niedrigstwertigen Bits von Null (d. h. jedes Modul muss in den Speicher an einer Adresse geladen sein, die ein Vielfaches von 64 ist) starten. Es lässt sich jedoch erkennen, dass die Zahl 64 von der Anzahl von Bits abgeleitet ist, die der Speicherchip 402 in einem Burst ausgibt. Die Startadresse jedes Moduls ist vorzugsweise ein Vielfaches der Anzahl von Bits, die von den Speicherchips "per Burst" behandelt werden.
- Die Speicherchips 402 sind vorzugsweise dynamische RAMs, was bedeutet, dass sie wiederaufgefrischt werden müssen. Eine Wiederauffrischungs-Schaltungsanordnung ist in die JEDEC DRAM Chips eingebaut. In der bevorzugten Ausführungsform wird jedoch eine derartige Schaltungsanordnung nicht verwendet. Die Bereitstellung von getrennten Wiederauffrischungs- Schaltungsanordnungen ermöglicht, dass die Speicher Muster schneller ausführen.
- Die Speicherwiederauffrischungs-Steuerschaltung 314 umfasst zwei Wiederauffrischungs- Zeilenzähler, einen geraden Wiederauffrischungszähler 414 und einen ungeraden Wiederauffrischungszähler. Zwei Zähler werden verwendet, weil JEDEC SDRAM Chips zwei Banken aufweisen, die mit "Bank 0" und "Bank 1" oder "gerade Bank" und "ungerade Bank" bezeichnet werden. Der gerade Zeilenzähler 414 zeigt die nächste Adresse an, die in der geraden Bank wiederaufgefrischt werden soll. Genauso zeigt der ungerade Wiederauffrischungszähler 415 die nächste Adresse an, die in der ungeraden Bank wiederaufgefrischt werden soll. Weil Speicher in Blöcken von 64 Bits wiederaufgefrischt werden, zählen die Wiederauffrischungszähler 414 und 415 mit 64 (d. h. sie stellen die sechs niedrigstwertigen Bits der Adresse an dem Speicher 116 nicht bereit).
- Die Adressen in den Wiederauffrischungszählern 414 und 415 werden an den Eingängen des mux 412 bereitgestellt. Der Adressenbus 410 wird ebenfalls an einem Eingang zu dem mux 412 bereitgestellt. Somit wählt der mux 412 die Adresse von Daten, die aus dem Speicher gelesen und in dem Puffer 418 gespeichert werden sollen, die Adresse, die in der geraden Bank wiederaufgefrischt werden soll oder die Adresse, die in der ungeraden Bank wiederaufgefrischt werden soll. Wenn ein Wiederauffrischungsbetrieb immer dann ausgeführt wird, wenn Daten aus dem Speicher gelesen werden, werden sämtliche Adressen Leseadressen spezifizieren. Jedoch werden für einen Wiederauffrischungsbetrieb die Daten, die aus dem Speicher gelesen werden, nicht irgendwo gespeichert. Die Speicheradressen-Wählschaltung 422 steuert den mux 412 sowie den Puffer 408. Wenn die Adressenquellenwählschaltung 422 die Adresse des Adressenbusses 410 wählt, aktiviert sie auch den Puffer 408, so dass die Daten, die gelesen werden, gespeichert werden. Wenn die gewählte Adresse eine Wiederauffrischungsadresse ist, wird der Puffer jedoch deaktiviert und speichert Daten nicht.
- Die JEDEC Speicherchips 402 enthalten zwei Banken des Speichers 404 für eine hinzugefügte Betriebsgeschwindigkeit. Der Speicherchip 402 kann nur eine Zeile von Daten "bursten", wenn die Zeilenadresse der Daten vor dem Start des Bursts eingerichtet wurde. Um die Speicherchips 402 bei der schnellen Burstrate im Betrieb zu halten, wechseln Lesevorgänge von Speicherchips 402 zwischen den Banken 404. Während eine der Banken 404 Daten burstet, wird die nächste Zeilenadresse gerade auf der anderen der Banken 404 eingerichtet.
- Die JEDEC Speicherchips 402 enthalten eine interne Schaltungsanordnung, die diese Umschaltung zwischen den Banken ermöglicht. Diese Schaltungsanordnung ist in Fig. 4 mit dem mux 406 dargestellt und wählt Eingänge auf den Banken 404, die zugeführt werden sollen, durch komplementäre Logiksignale, die von der Zeilenadresse abgeleitet werden.
- Im Betrieb wird irgendein Mechanismus benötigt, um zu verfolgen, ob der nächste Betrieb für einen Zugriff auf die gerade Bank oder die ungerade Bank vorgesehen ist. Ein Taktgenerator 424 stellt einen Takt bereit, der einen geraden Speicherzyklus und einen ungeraden Speicherzyklus definiert. Für das hier verwendete Beispiel ist jeder Zyklus 160 ns lang. Der Ausgang des Taktgenerators 424 wird an der Adressenwählschaltung 422 bereitgestellt. Während des geraden Zyklus greift der Speicher 116 auf die gerade Bank zu und während des ungeraden Zyklus greift der Speicher 116 auf die ungerade Bank zu. Es sei darauf hingewiesen, dass die Speicheradressen selbst anzeigen, ob die Daten in der Geraden oder ungeraden Bank sind, so dass, sobald die Adresse gewählt ist, es nicht erforderlich ist, den Ausgang des Taktgenerators an andere Abschnitte des Speichers zu lenken.
- Die Adressenwählschaltung 422 arbeitet zum Wählen einer Adresse zum Zugreifen auf die geeignete Bank während jedes geraden und ungeraden Zyklus. Eine Adressenwählschaltung ist vorzugsweise als ein Abschnitt eines halb-maßgeschneiderten (Semi-Custom) ASIC implementiert, welches programmiert worden ist, um die folgenden Funktionen auszuführen: wenn ein NEW 64 Signal von dem Early LVM Adressenzähler 310 empfangen worden ist und das Bankanzeigesignal von dem Zähler 310 anzeigt, dass die Adresse von dem Zähler 310 aus der Bank in dem Speicher geholt werden soll, der für den gegenwärtigen Speicherzyklus geeignet ist, wird die Adresse auf den Bus 410 an den mux 412 gewählt und der Puffer 408 wird aktiviert, um Daten zu speichern. Wenn jedoch kein NEW 64 Signal von dem Zähler 310 vorhanden ist oder die Adresse von dem Zähler 310 in einer Bank ist, die für den gegenwärtigen Speicherzyklus nicht geeignet ist, wird ein Wiederauffrischungszyklus ausgeführt. Während eines geraden Speicherzyklus wird die Adresse von dem geraden Wiederauffrischungszähler 414 durch den mux 412 geleitet. Während eines ungeraden Zyklus wird die Adresse von dem geraden Wiederauffrischungszähler 415 durch den mux 412 geführt. Unabhängig davon, welcher Zähler gewählt wird, sendet dann die Adressenwählschaltung 422 ein Signal an diesen Zähler, um ihn zu inkrementieren. Immer dann, wenn eine Wiederauffrischungsadresse bereitgestellt wird, wird auch der Eingang an dem Puffer 408 deaktiviert, so dass keine Daten gespeichert werden.
- Es sei der Fall betrachtet, bei dem in einem normalen Betrieb ein Speicherzugriff bei einem geraden Zyklus mit einem Lesevorgang von der geraden Speicherbank beginnt. Wenn der Zähler 310 um 64 bei jedem 320 ns (200 MHz Datenrate) ansteigen soll, aber ein Speicherzyklus 160 ns lang ist, wird in dem nächsten ungeraden Speicherzyklus der Zähler 310 eine neue Adresse nicht erzeugt haben. Demzufolge wird eine ungerade Wiederauffrischung stattfinden. In dem folgenden geraden Speicherzyklus wird der Zähler 310 einen Lesevorgang von der ungeraden Bank erfordern und somit wird die ungerade Bank wiederaufgefrischt. Der nächste Zyklus wird ein ungerader Zyklus sein und der Zähler 310 wird einen Lesevorgang von der ungeraden Bank erfordern, was auftreten wird. So lange wie sequentielle Adressen aus dem Zähler 310 benötigt werden, wird dieser Zyklus sich wiederholen: Lesen aus der geraden Bank, Wiederauffrischen der ungeraden Bank, Wiederauffrischen der geraden Bank, Lesen aus der ungeraden Bank.
- Dieser Zyklus wird jedoch unterbrochen, wenn die Startadresse eines Moduls in den Early LVM Adressenzähler 310 geladen wird. Um sicherzustellen, dass ein geeigneter Wiederauffrischungsvorgang auftritt, muss jedes Modul lang genug sein, so dass wenigstens eine gerade Bankwiederauffrischung und eine ungerade Bankwiederauffrischung auftritt. Da ein Modul nach Ausführen nur eines Vektors in einem 64 Vektorblock enden kann, muss ausreichend Zeit ermöglicht werden, um zwei Wiederauffrischungsvorgänge durchzuführen und einen Block zu holen, der nur einen nützlichen Vektor bereitstellt. Dies bedeutet, dass wenigstens drei andere 64 Vektorblöcke geholt werden müssen. Demzufolge müssen wenigstens 192 Vektoren in jedem Modul vorhanden sein. Irgendeine Zahl größer als 192 kann gewählt werden. In der bevorzugten Ausführungsform wurde 256 gewählt.
- Die gleiche Schlussfolgerung würde sich unabhängig davon ergeben, ob die Module in geraden oder ungeraden Banken starten. Jedes Modul muss wenigstens 193 Vektoren enthalten, um sicherzustellen, dass beide Banken des Speichers in ausreichender Weise wiederaufgefrischt werden.
- Eine Schaltungsanordnung zum Erzeugen eines Speicherzyklustakts ist nicht explizit gezeigt. Es ist jedoch in dem technischen Gebiet altbekannt, dass digitale Schaltungen Zeitsteuerungsschaltungen verwenden und herkömmliche Designtechniken werden hier verwendet, um die benötigten Zeitsteuerungsschaltungen zu implementieren. Eine Schaltungsanordnung zum Laden von Daten in einen Musterspeicher 116 ist auch nicht explizit gezeigt. Speicherchips 402 können jedoch mit dem Systembus 120 verbunden werden und Daten können in die Speicher über den Bus geladen werden.
- Nachdem eine bevorzugte Ausführungsform der Erfindung beschrieben worden ist, könnten verschiedene alternative Ausführungsformen konstruiert werden. Es wurde beschrieben, dass die VMT und die MLT als getrennte Datenstrukturen in getrennten Speichern implementiert werden. Die Information von diesen beiden könnte in einen Speicher und in eine Datenstruktur hineinkombiniert werden. Die kombinierte Struktur könnte zum Beispiel eine Liste von Modulen sein, die den Ort jedes Moduls in dem Musterspeicher enthalten haben.
- Fig. 5 zeigt eine alternative Implementierung der VMT 206 und der MLT 204. In Fig. 5 werden zwei 512K · 8 Bit Speicher 504 und 506 verwendet, um die Information sowohl in der VMT als auch der MLT zu speichern. Die Adressleitungen der Speicher 504 und 506 werden zusammengebracht, sodass die Speicher zusammen adressiert werden. Sie weisen getrennte Ausgangsdatenleitungen auf, so dass sie effektiv 16 Bits von Daten ausgeben. Die oberen Adressen in dem Speicher werden verwendet, um die Information in der VMT zu speichern. Einige beliebige Adressen in den Speichern 504 und 506 sind definiert, um der Start der MLT zu sein. Die Adressen, die in dem VMT Abschnitt des Speichers gespeichert sind, stellen einen Versatz (Offset) von dieser Startadresse dar. Um eine Adresse von der VMT zu erhalten, liest die VMT Steuereinrichtung 502 eine Stelle aus den Speichern 504 und 506 aus Die VMT Steuereinrichtung 502 fügt dann die Startadresse der MLT zu dieser Adresse hinzu und liest die Inhalte der Speicher 504 und 506 an dieser Adresse. Weil die Information in der MLT 52 Bits lang in der bevorzugten Ausführungsform ist, werden drei weitere Leseoperationen dann von sukzessiven Adressen in den Speichern 504 und 506 ausgeführt. Sämtliche Information, die gelesen wird, wird durch die VMT Steuereinrichtung 502 an Zählern 308 und 310 bereitgestellt. Die VMT Steuereinrichtung 502 könnte als ein halb-maßgeschneidertes (semi-custom) ASIC implementiert werden, wie herkömmlicher Weise in dem technischen Gebiet verwendet. Es würde die Zähler, Register und die Steuerlogik, die voranstehend diskutiert wurden, umfassen.
- Als ein anderes Beispiel wurde beschrieben, dass das VMT RAM eine einzelne Liste von Modulen enthalten hat, die ein Muster bilden. Es würde möglich sein, mehrere Listen von Modulen in dem VMT RAM zu speichern, so dass mehrere Muster ohne erneutes Laden von irgendwelchen Speichern ausgeführt werden könnten. In diesem Fall würde die Steuerschaltung 208 den VMT Adressenzähler mit der Adresse des Musters, welches ausgeführt werden soll, laden. Eine andere Vorgehensweise zum Implementieren von mehreren Mustern würde darin bestehen, den VMT Adressenzähler 302 zu veranlassen, aufwärts oder abwärts zu zählen. Die Liste von Modulen für ein Muster könnte oben in dem VMT RAM 304 gespeichert werden und ein zweites Muster könnte unten in dem VMT RAM nach oben gehend gespeichert werden. Durch Heraufzählen von Null würde das erste Muster ausgeführt werden. Durch Herunterzählen von Null minus Eins (Einser-Komplement) würde das zweite Muster ausgeführt werden. Wenn Speicheradressen in dieser Weise gespeichert werden, kann der Aufwärtszähler leicht in einen Abwärtszähler gebracht werden, indem einfach die einzelnen Ausgabebits invertiert werden.
- Eine weitere Modifikation würde darin bestehen, Speicher-Offsets in die Speicherarchitektur einzubauen. Um ein Modul an einem anderen als dessen ersten Vektor zu starten, würde der Offset zu dem Startstellenwert, der in dem MLT RAM 306 gespeichert ist, vor Hineinladen in den Early LVM Adressenzähler 310 hinzugefügt werden. Der gleiche Offset würde von der Modullänge vor einem Laden in den Modullängenzähler 308 subtrahiert werden.
- Eine andere Variation würde darin bestehen, in die Steuerschaltungsanordnung 208 Hardware einzubauen, um zyklisch durch die Listen von Modulen in der VMT 206 mehrere Male zu gehen. Die Anzahl von Malen könnte ein programmierter Wert sein, der über dem Systembus 120 bereitgestellt wird. In dieser Weise kann die Anzahl, wie oft ein Muster wiederholt wird, von einem Benutzer programmiert werden. Alternativ könnte die VMT 206 ergänzt werden, um einen Wiederholungszählwert für jedes Modul zu enthalten. In dieser Weise kann die Anzahl, wie oft ein Modul wiederholt wird, programmiert werden.
- Als ein Beispiel einer weiteren Variation wurde beschrieben, dass die Reihenfolge einer Ausführung von Modulen von einem VMT RAM bereitgestellt wurde. Da ein neues auszuführendes Modul bei einer weitaus geringeren Rate als der nächste auszuführende Vektor gewählt wird, könnte Information über das nächste auszuführende Modul über dem Systembus 120 bereitgestellt werden, anstelle, dass sie aus einem RAM in dem Tester gelesen wird.
- Es sei auch darauf hingewiesen, dass die hier beschriebene Speicherarchitektur im Zusammenhang mit bekannten Techniken zum Bilden eines schnellen oder flexiblen Testers verwendet werden kann. Der sekundäre Speicher 322 könnte ein kleines SRAM sein, wie herkömmlicher Weise in Testern für einen Subroutine-Speicher verwendet. Zusätzlich können derartige Techniken, wie in dem US Patent 5,270,582 für einen High Speed Timing Generator von Brown et al. im Zusammenhang mit dieser Technik verwendet werden, um den Tester zu veranlassen, schneller zu laufen.
- Ferner sind zahlreiche Merkmale der bevorzugten Ausführungsform für die Erfindung nicht wesentlich. Zum Beispiel ist ein OP Code (Operationscode) LVM 116A als eine getrennte Datenstruktur von dem Daten-LVM 116B gezeigt. Eine derartige Differenz ist für die Erfindung nicht kritisch. Sowohl Daten- als auch Steuerinformation könnten in einem einzelnen Speicher gespeichert oder über mehrere Speicher verteilt werden.
- Die Erfindung ist nur durch den Umfang der beigefügten Ansprüche beschränkt.
Claims (23)
1. Testersystemvorrichtung, umfassend:
eine erste (LVM) Speichereinrichtung (116) zum Speichern eines Testmusters, das eine Reihe von
Testvektoren umfasst; und
eine Einrichtung (110), die mit dem ersten Speicher gekoppelt ist, um die Testvektoren an eine
Einrichtung, die sich unter einem Test befindet (102), auszugeben; dadurch gekennzeichnet, dass
das Muster in eine Vielzahl von Modulen von Testvektoren segmentiert ist; und dass die
Vorrichtung ferner umfasst:
einen zweiten Speicher (MLT 306) zum Speichern einer Beschreibung einer Stelle jedes Moduls in
dem ersten Speicher;
einen Adressenzähler (310), der einen mit Adressenleitungen der ersten Speichereinrichtung zum
Adressieren des ersten Speichers gekoppelten Ausgang aufweist und verbunden ist, um Modulstellendaten
von dem zweiten Speicher zu empfangen;
einen zweiten Zähler (308), der einen Eingang zum Empfangen von Modullängendaten von dem
zweiten Speicher aufweist und einen Ausgang zum Steuern eines Ladens der Adresse und von zweiten
Zählern im Ansprechen darauf, dass der Zähler einen vorgegebenen Wert erreicht, aufweist; und
eine Steuereinrichtung (302, 304), die Information enthält, die eine Reihenfolge anzeigt, in der die
Module ausgeführt werden sollten, zum Zugreifen auf Stellen in dem zweiten Speicher zum Laden der
Adresse und zweite Zähler zum Ausgeben von Testvektoren von Modulen, deren Stellen an den Stellen, auf
die in dem zweiten Speicher zugegriffen wird, beschrieben sind.
2. Vorrichtung nach Anspruch 1, wobei die Steuereinrichtung eine Einrichtung (304) zum
Bereitstellen von Adresseninformation an dem zweiten Speicher zu sukzessiven Intervallen umfasst, wobei
die Adresseninformation die Stelle in dem zweiten Speicher, auf die von der Steuereinrichtung zugegriffen
wird, darstellt.
3. Vorrichtung nach Anspruch 2, wobei die Einrichtung zum Bereitstellen von Adresseninformation
zu sukzessiven Intervallen eine geordnete Liste von Adresseninformation, die in einem Speicher gespeichert
ist, auf die sequentiell von der Steuereinrichtung zugegriffen wird, umfasst.
4. Vorrichtung nach Anspruch 3, wobei die Steuereinrichtung zusätzlich eine Speichereinrichtung
(208) zum Speichern einer Schleifenbeginnanzeige, die den Eintrag in der geordneten Liste anzeigt, der den
Beginn einer Schleife darstellt, und eine Schleifenendanzeige, die den Eintrag in der geordneten Liste
anzeigt, der das Ende der Schleife darstellt, umfasst und die Steuereinrichtung zusätzlich eine Einrichtung
(208) zum sequentiellen Zugreifen auf die geordnete Liste von Adresseninformation, bis sie das Ende der
Schleife erreicht, und danach zum sequentiellen Zugreifen auf die Einträge in der geordneten Liste von der
Schleifenbeginnanzeige, umfasst.
5. Vorrichtung nach Anspruch 2, wobei die Einrichtung zum Bereitstellen von Adresseninformation
zu sukzessiven Intervallen eine Adresseninformation im Ansprechen darauf, dass der zweite Zähler den
vorgegebenen Wert erreicht, bereitstellt.
6. Vorrichtung nach irgendeinem vorangehenden Anspruch, wobei die erste Speichereinrichtung eine
erste Bank (404) und eine zweite Bank (406) umfasst und dafür ausgelegt ist, um einen Block von Daten im
Ansprechen auf einen Lesebefehl auszugeben;
wobei der Adressenzähler einen Adressenausgang und Statusausgänge (NEW 64) aufweist, die
anzeigen, dass der Adressenausgang einen Wert angenommen hat, der den Start eines Blocks von Daten in
dem Speicher anzeigt, und ob der Block in der ersten oder zweiten Bank des Speichers ist;
und ferner umfassend:
einen ersten Wiederauffrischungsadressenzähler (414) mit einem Adressenausgang;
einem zweiten Wiederauffrischungsadressenzähler (415) mit einem Adressenausgang;
eine Einrichtung (424) zum Erzeugen eines Speicherzyklussignals, das zwischen einem ersten
Zustand, das anzeigt, dass auf die erste Bank des Speichers zugegriffen werden soll, und einem zweiten
Zustand, der anzeigt, dass auf die zweite Bank des Speichers zugegriffen werden soll, wechselt; und
einer Adressenwähleinrichtung (412, 422), die auf die Adressenausgänge des Adressenzählers, des
ersten Wiederauffrischungsadressenzählers und des zweiten Wiederauffrischungsadressenzählers, der
Einrichtung zum Erzeugen eines Speicherzyklussignals und den Statusausgängen des Adressenzählers
anspricht, um eine gewählte Adresse an dem Speicher zu jedem Speicherzyklus anzulegen, wobei die
gewählte Adresse:
i) der Adressenausgang des Adressenzählers ist, wenn die Statusausgänge des
Adressenzählers anzeigen, dass der Adressenzähler einen Wert angenommen hat, der den Start eines Blocks
anzeigt und der Datenblock in der Bank ist, die von dem Speicherzyklussignal für einen Zugriff angezeigt
wird;
ii) der Adressenausgang des ersten Wiederauffrischungszählers ist, wenn das
Speicherzyklussignal anzeigt, dass auf die erste Bank zugegriffen werden soll und die Statusausgänge des
Adressenzählers nicht anzeigen, dass der Adressenzähler einen Wert angenommen hat, der den Start eines
Blocks anzeigt und der Datenblock in der Bank ist, die von dem Speicherzyklussignal für einen Zugriff
angezeigt wird; und
iii) der Adressenausgang des zweiten Wiederauffrischungszählers ist, wenn das
Speicherzyklussignal anzeigt, dass auf die zweite Bank zugegriffen werden soll und die Statusausgänge des
Adressenzählers nicht anzeigen, dass der Adressenzähler einen Wert angenommen hat, der den Start eines
Blocks anzeigt und der Datenblock in der Bank ist, die von dem Speicherzyklussignal für einen Zugriff
angezeigt wird.
7. Vorrichtung nach Anspruch 6, zusätzlich umfassend einen Puffer (408), der dafür ausgelegt ist, um
wenigstens einen Datenblock, der mit dem Speicher gekoppelt ist, zu empfangen, wobei der Puffer einen
Aktivierungseingang, der mit der Adressenwähleinrichtung gekoppelt ist, aufweist und wobei die
Adressenwähleinrichtung zusätzlich eine Einrichtung umfasst, um den Puffer zu aktivieren, wenn der
Adressenausgang des Adressenzählers die gewählte Adresse ist, und um den Ausgangspuffer zu
deaktivieren, wenn der Adressenausgang der ersten und zweiten Wiederauffrischungszähler die gewählte
Adresse ist.
8. Vorrichtung nach Anspruch 7, wobei der dynamische Speicher mehr als 1 Gigabyte eines
dynamischen Speichers umfasst.
9. Vorrichtung nach Anspruch 8, wobei der dynamische Speicher eine Vielzahl von JEDEC SDRAM
Chips umfasst.
10. Vorrichtung nach Anspruch 9, wobei jeder Speicherchip getaktet wird, um eine maximale
Burstdatenrate bereitzustellen und der Tester Vektoren bei einer vorgegebenen maximalen Rate gleich zu
einer Hälfte der maximalen Burstrate ausführt.
11. Vorrichtung nach Anspruch 10, wobei jeder Speicherchip getaktet wird, um ein Datenbyte
wenigstens bei der Rate von 50 MHz auszugeben.
12. Testersystemvorrichtung, umfassend:
einen ersten Speicher (LVM 116) zum Speichern eines Testmusters, das eine Reihe von
Testvektoren umfasst;
eine Einrichtung (110), die mit dem ersten Speicher zum Ausgeben der Testvektoren an eine
Einrichtung, die sich unter einem Test befindet (102), gekoppelt ist;
dadurch gekennzeichnet, dass das Muster in eine Vielzahl von Modulen von Testvektoren
segmentiert ist und dass die Vorrichtung ferner umfasst:
einen zweiten Speicher (MLT 306) zum Speichern einer Beschreibung einer Stelle jedes Moduls in
dem ersten Speicher;
einem dritten Speicher (VMT 304) zum Speichern von Information, die eine Reihenfolge anzeigt,
in der die Module ausgeführt werden sollten, wobei der dritte Speicher mit dem zweiten Speicher gekoppelt
ist;
einen Adressenzähler (310), der verbunden ist, um Daten von dem zweiten Speicher zu
empfangen, und der einen Ausgang aufweist, der mit Adressenleitungen des ersten Speichers gekoppelt ist;
eine Adressensteuereinrichtung (302) zum Steuern eines Lesevorgangs aus dem dritten Speicher
mit der Reihenfolge, in der die Module ausgeführt werden sollten, zum Zugreifen auf den zweiten Speicher,
um die Modulstellen zurückzuholen; und
eine Einrichtung (308) zum Laden des Adresszählers mit einer Modulstelle, um eine Adresse an
dem ersten Speicher eines Testvektors in dem Modul, der ausgeführt werden soll, bereitzustellen,
wobei die Ausführungstestreihenfolge von Modulen in dem Testmuster von der Information in
dem dritten Speicher gesteuert wird.
13. Vorrichtung nach Anspruch 12, wobei die Einrichtung zum Laden des Adressenzählers einen
zweiten Zähler (308) umfasst, der verbunden ist, um Daten von dem zweiten Speicher zu empfangen, und
wobei der Adressenzähler im Ansprechen darauf, dass der zweite Zähler einen vorgegebenen Wert erreicht,
geladen wird.
14. Vorrichtung nach Anspruch 13, ferner umfassend eine Adressensteuerschaltung (208) für den
dritten Speicher, umfassend eine Steuerlogik, um wiederholt durch eine Gruppe von Stellen in dem dritten
Speicher zu gehen.
15. Verfahren zum Betreiben eines Testers, umfassend die folgenden Schritte:
a) Laden einer Vielzahl von Mustermodulen, die jeweils eine Reihe von Testvektoren
umfassen, in einen Speicher (LVM 116);
b) Speichern einer geordneten Liste, die Information enthält, die eine Reihenfolge, in der
Mustermodule ausgeführt werden sollten, und die Stelle jedes Mustermoduls in dem Speicher anzeigt;
c) Lesen der Identität eines ersten auszuführenden Mustermoduls aus der Liste; und
d) Erzeugen von Adressen an dem Speicher durch:
i) Verwenden der gespeicherten Stelle des Mustermoduls in der geordneten Liste,
um eine anfängliche Adresse zu erzeugen;
ii) Zurückholen und Ausgeben eines Testvektors, der an der Adresse gespeichert
ist;
iii) Vorrücken der Adresse, bis das Ende des Mustermoduls erreicht wird; und
iv) Lesen der Identität eines nächsten auszuführenden Mustermoduls aus der Liste;
und
e) Wiederholen der Schritte (i), (ii), (iii) und (iv) von (d) für sukzessive Mustermodule in der
geordneten Liste.
16. Verfahren nach Anspruch 15, wobei der Schritt zum Speichern einer geordneten Liste und einer
Stelle von Mustermodulen ein getrenntes Speichern einer geordneten Liste von Modulen und der Stelle
jedes Moduls in dem Speicher umfasst.
17. Verfahren nach Anspruch 16, wobei der Schritt zum Speichern einer geordneten Liste von
Mustermodulen das Speichern einer geordneten Liste von Mustermodulen umfasst, wobei wenigstens ein
Mustermodul an mehreren Stellen in der geordneten Liste erscheint.
18. Verfahren nach Anspruch 16, wobei der Schritt zum Speichern der Stelle jedes Moduls ein
Speichern einer einzelnen Aufzeichnung für jedes Modul einschließlich der Startadresse und der Länge des
Moduls in einem zweiten Speicher (MLT 306) umfasst und der Schritt zum Speichern einer geordneten
Liste ein Speichern der Adresse in dem zweiten Modul einer Aufzeichnung umfasst.
19. Verfahren nach Anspruch 18, zusätzlich umfassend die Schritte zum Speichern einer
unterschiedlichen geordneten Listen von Modulen, nach dem Schritt zum Erzeugen von Adressen an dem
Speicher.
20. Verfahren nach Anspruch 19, wobei der Schritt zum Speichern einer unterschiedlichen geordneten
Liste von Modulen das Speichern einer unterschiedlichen geordneten Liste ohne Ändern eines Abschnitts
der Vielzahl von Modulen, die in dem Speicher gespeichert sind, umfasst.
21. Verfahren nach Anspruch 15, wobei der Schritt zum Erzeugen von Adressen an dem Speicher
umfasst:
a) Erfassen, wenn ein vorgegebenes Mustermodul in der geordneten Liste ausgeführt
worden ist; und
b) Wiederholen einer Ausführung von Mustermodulen in der geordneten Liste beginnend an
einer zweiten vorgegebenen Stelle in der geordneten Liste.
22. Verfahren nach Anspruch 21, wobei der Schritt zum Wiederholen einer Ausführung von
Mustermodulen umfasst, dass eine Ausführung des vorgegebenen Mustermoduls eine vorgegebene Anzahl
von Malen wiederholt wird.
23. Verfahren zum Betreiben eines Testers wie in irgendeinem der Ansprüche 15 bis 22 beansprucht,
wobei die Mustermodule in nicht-sequentielle Stellen in einen dynamischen RAM Speicher
geladen werden und wobei die zurückgeholten Vektoren bei einer Ausführungsrate ausgegeben werden;
und
ferner umfassend ein Wiederauffrischen des dynamischen RAM Speichers bei einer ersten
Wiederauffrischungsrate, während Vektoren in einer sequentiellen Reihenfolge zurückgewonnen werden;
Zurückgewinnen von Vektoren aus einem zweiten Mustermodul und Ausführen der zurückgewonnenen
Vektoren bei der Ausführungsrate, so dass Vektoren kontinuierlich bei der Ausführungsrate während eines
Übergangs von dem ersten auf das zweite Modul ausgeführt werden; und
Wiederauffrischen des dynamischen RAM bei einer zweiten Wiederauffrischungsrate, die
langsamer als die erste Wiederauffrischungsrate ist, während anfänglich Vektoren aus dem zweiten
Mustermodul zurückgewonnen werden; und Wiederauffrischen des dynamischen RAM bei der ersten
Wiederauffrischungsrate nach Wiederauffrischen des dynamischen RAM bei der zweiten
Wiederauffrischungsrate.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/299,753 US6286120B1 (en) | 1994-09-01 | 1994-09-01 | Memory architecture for automatic test equipment using vector module table |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69524315D1 DE69524315D1 (de) | 2002-01-17 |
DE69524315T2 true DE69524315T2 (de) | 2002-08-08 |
Family
ID=23156144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69524315T Expired - Fee Related DE69524315T2 (de) | 1994-09-01 | 1995-09-01 | Speicherarchitektur für eine automatische Testeinrichtung mit Vektormodultabelle |
Country Status (4)
Country | Link |
---|---|
US (1) | US6286120B1 (de) |
EP (1) | EP0699999B1 (de) |
KR (1) | KR100351768B1 (de) |
DE (1) | DE69524315T2 (de) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014764A (en) * | 1997-05-20 | 2000-01-11 | Schlumberger Technologies Inc. | Providing test vectors with pattern chaining definition |
US6389525B1 (en) * | 1999-01-08 | 2002-05-14 | Teradyne, Inc. | Pattern generator for a packet-based memory tester |
US6651203B1 (en) | 1999-05-17 | 2003-11-18 | Infineon Technologies Ag | On chip programmable data pattern generator for semiconductor memories |
JP2002131395A (ja) * | 2000-10-18 | 2002-05-09 | Ando Electric Co Ltd | 半導体試験装置及びその制御方法 |
US6836868B1 (en) * | 2000-10-31 | 2004-12-28 | Credence Systems Corporation | High-speed algorithmic pattern generator |
US7039841B2 (en) * | 2002-05-08 | 2006-05-02 | Credence Systems Corporation | Tester system having multiple instruction memories |
AU2003249631A1 (en) * | 2002-05-08 | 2003-11-11 | Nptest, Inc. | Tester system having a multi-purpose memory |
US7117410B2 (en) | 2002-12-20 | 2006-10-03 | Teradyne, Inc. | Distributed failure analysis memory for automatic test equipment |
KR20040101660A (ko) * | 2003-05-26 | 2004-12-03 | 삼성전자주식회사 | 테스트용 신호 패스를 가지는 출력 버퍼 회로 및 이에대한 테스트 방법 |
CN105092992B (zh) * | 2014-04-15 | 2020-01-07 | 爱德万测试公司 | 用于在ate上进行向量控制的测试的方法和设备 |
JP6386434B2 (ja) * | 2015-10-08 | 2018-09-05 | 株式会社アドバンテスト | 試験装置、試験信号供給装置、試験方法、およびプログラム |
US10438682B2 (en) | 2017-12-21 | 2019-10-08 | International Business Machines Corporation | List insertion in test segments with non-naturally aligned data boundaries |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS52144125A (en) | 1976-05-26 | 1977-12-01 | Japan National Railway | Tunnel |
JPS5476041A (en) | 1977-11-30 | 1979-06-18 | Nec Corp | Test pattern generator for logic circuit |
US4313200A (en) * | 1978-08-28 | 1982-01-26 | Takeda Riken Kogyo Kabushikikaisha | Logic test system permitting test pattern changes without dummy cycles |
US4451918A (en) | 1981-10-09 | 1984-05-29 | Teradyne, Inc. | Test signal reloader |
US4502127A (en) | 1982-05-17 | 1985-02-26 | Fairchild Camera And Instrument Corporation | Test system memory architecture for passing parameters and testing dynamic components |
US4994732A (en) | 1985-12-18 | 1991-02-19 | Schlumberger Technologies, Inc. | Automatic test system having a "true tester-per-pin" architecture |
US4875210A (en) | 1988-01-06 | 1989-10-17 | Teradyne, Inc. | Automatic circuit tester control system |
US5179667A (en) * | 1988-09-14 | 1993-01-12 | Silicon Graphics, Inc. | Synchronized DRAM control apparatus using two different clock rates |
EP0429673B1 (de) | 1989-06-16 | 1996-11-13 | Advantest Corporation | Prüfmustergenerator |
US5122988A (en) | 1989-09-21 | 1992-06-16 | Schlumberger Tecnologies, Inc. | Data stream smoothing using a FIFO memory |
US5151903A (en) | 1989-09-28 | 1992-09-29 | Texas Instruments Incorporated | High efficiency pattern sequence controller for automatic test equipment |
US5270582A (en) | 1989-10-11 | 1993-12-14 | Teradyne, Inc. | High speed timing generator |
JP3225531B2 (ja) * | 1990-05-15 | 2001-11-05 | セイコーエプソン株式会社 | メモリカード |
JP2602997B2 (ja) | 1991-01-18 | 1997-04-23 | 株式会社東芝 | パターン発生器 |
US5379400A (en) * | 1992-08-07 | 1995-01-03 | International Business Machines Corp. | Method and system for determining memory refresh rate |
-
1994
- 1994-09-01 US US08/299,753 patent/US6286120B1/en not_active Expired - Lifetime
-
1995
- 1995-09-01 DE DE69524315T patent/DE69524315T2/de not_active Expired - Fee Related
- 1995-09-01 KR KR1019950028595A patent/KR100351768B1/ko not_active IP Right Cessation
- 1995-09-01 EP EP95306133A patent/EP0699999B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6286120B1 (en) | 2001-09-04 |
EP0699999B1 (de) | 2001-12-05 |
KR100351768B1 (ko) | 2002-12-31 |
DE69524315D1 (de) | 2002-01-17 |
KR960011442A (ko) | 1996-04-20 |
EP0699999A3 (de) | 1996-11-27 |
EP0699999A2 (de) | 1996-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4305442C2 (de) | Verfahren und Vorrichtung zum Erzeugen eines Testvektors | |
DE69904320T2 (de) | On-chip schaltung und verfahren zur speicherschaltungs-prüfung | |
DE69125438T2 (de) | Ablaufsteuerung für automatische Testeinrichtung | |
DE3882266T2 (de) | Abfrageprüfgerät für digitale Systeme mit dynamischem Direktzugriffspeicher. | |
DE68921269T2 (de) | Integrierte Prüfschaltung. | |
DE69124170T2 (de) | Automatisches Prüfausrüstungssystem, das eine Stiftscheibenarchitektur verwendet | |
DE69217761T2 (de) | Lese- und Schreibschaltung für einen Speicher | |
DE69229118T2 (de) | Generatorarchitektur für Einzeltor RAM mit Hochleistungsfähigkeit | |
DE3886038T2 (de) | Speichergerät, das einen zur Ausführung einer Selbstprüfung adaptierten statischen RAM-Speicher enthält und integrierte Schaltung, die als eingebauten statischen RAM-Speicher ein solches Gerät enthält. | |
DE68922941T2 (de) | Bedingungsschreib-RAM. | |
DE69729771T2 (de) | Integrierte Schaltung mit einer eingebauten Selbsttestanordnung | |
DE68922975T2 (de) | Speichereinheit mit zwei Toren. | |
DE69221045T2 (de) | Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen | |
DE69426733T2 (de) | Halbleiterspeichergerät mit Register zum Halten eines Prüfergebnissignals | |
DE68918469T2 (de) | Serieller Lesezugriff von seriellen Speichern mit einer durch den Benutzer definierten Startadresse. | |
DE3752280T2 (de) | Mustergenerator | |
DE69808132T2 (de) | Verfahren und system zu verarbeitung von befehlen in nach dem fliessbandprinzip arbeitenden speicheranlagen | |
DE69524315T2 (de) | Speicherarchitektur für eine automatische Testeinrichtung mit Vektormodultabelle | |
DE10150321A1 (de) | Verfahren und Vorrichtung zum Testen von integrierten Schaltungen | |
DE19713421A1 (de) | Halbleiterspeicher-Testvorrichtung | |
DE2312707A1 (de) | Pruefanordnung fuer einen computer | |
DE2729053A1 (de) | Verfahren zur stufenempfindlichen pruefung einer einseitig verzoegerungsabhaengigen logischen einheit | |
DE3689414T2 (de) | Automatisches Prüfsystem mit "wahrem Prüfer-per-Anschluss" -Architektur. | |
DE69724742T2 (de) | Speicherfeldprüfschaltung mit Fehlermeldung | |
DE19722414A1 (de) | Verfahren und Vorrichtung zum Testen eines Halbleiterspeichers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |