DE10217303A1 - Algorithmisch programmierbarer Speichertester mit Unterbrechungspunktauslöser, Fehlerblockierung und Oszilloskop-Modus, der Zielsequenzen speichert - Google Patents

Algorithmisch programmierbarer Speichertester mit Unterbrechungspunktauslöser, Fehlerblockierung und Oszilloskop-Modus, der Zielsequenzen speichert

Info

Publication number
DE10217303A1
DE10217303A1 DE10217303A DE10217303A DE10217303A1 DE 10217303 A1 DE10217303 A1 DE 10217303A1 DE 10217303 A DE10217303 A DE 10217303A DE 10217303 A DE10217303 A DE 10217303A DE 10217303 A1 DE10217303 A1 DE 10217303A1
Authority
DE
Germany
Prior art keywords
trigger
test
dut
register
test program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10217303A
Other languages
English (en)
Inventor
Alan S Krech Jr
Brad D Reak
Randy L Bailey
John M Freeseman
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.)
Verigy Singapore Pte Ltd
Original Assignee
Agilent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of DE10217303A1 publication Critical patent/DE10217303A1/de
Withdrawn 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
    • 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

Abstract

Ein Auslösesignal für einen Speichertester, der algorithmische Testprogramme aufweist, erfaßt das Auftreten einer Auslöserspezifikation, die hinsichtlich existierender Hardwarequantitäten ausgedrückt ist, die verwendet werden, um das DUT zu betreiben. Dies bildet einen rohen Hardware-(Unterbrechungspunkt-)Auslöser, der weiter gemäß dem Teil des Testprogramms qualifiziert werden kann, der ausgeführt wird. Der qualifizierte Unterbrechungspunktauslöser kann um null oder mehrere DUT-Zyklen verzögert werden, bevor er ein Systemauslösesignal wird, das verwendet werden kann, um einen Oszilloskop-Modus auszulösen, und um ein Fehlerflag auf einen ausgewählten Wert zu zwingen, um so einen bestimmten Pfad bei dem Testprogramm zu erzwingen. Ein Benutzer steht mit einem Prozeß, der nicht Teil des Testprogramms ist, in Wechselwirkung, um eine Auslösespezifikation aus Masken- und Vergleichsmechanismen zu definieren, die die rohe Auslösebedingung an dem Pegel der Hardwareregisterwerte erkennen. Dieser Prozeß informiert auch den Kompilierer darüber, welche Abschnitte des Testprogramms die rohe Auslöserspezifikation aktivieren sollen (durch ein Einstellen eines Bits in dem Anweisungswort durchgeführt).

Description

Diese Offenbarung bezieht sich auf Informationen, die in der US-Patentanmeldung mit der Seriennummer 09/665, 892 mit dem Titel ERROR CATCH RAM FOR MEMORY TESTER HAS SDRAM MEMO­ RY SETS CONFIGURABLE FOR SIZE AND SPEED, eingereicht am 20. September 2000, erscheinen, und dieselbe ist aus den nach­ folgenden Gründen hierin ausdrücklich durch Bezugnahme auf­ genommen. Der Gegenstand der vorliegenden Offenbarung be­ trifft einen Abschnitt des Betriebs eines ziemlich großen und komplexen Systems zum Testen von Halbleiterspeichern. Der beschriebene Speichertester enthält ein umfassendes Speicherteilsystem als eine Komponente in dem Gesamtpara­ digma zum Durchführen von Tests. Bestimmte Fähigkeiten die­ ses Speicherteilsystems sind hierin von Interesse, da die­ selben als die bevorzugte Basis für einige der neuartigen Gegenstände dienen, die offenbart werden. Aus Wirtschaft­ lichkeitsgründen bei dem Produkt und begünstigt durch den Wunsch, große Mengen an Speicher in dem Tester zur Verfü­ gung zu haben, wurde ein Weg entwickelt, um unaufwendigen Speicher (DRAM, der langsam ist, wenn direkt auf denselben zugegriffen wird) als Ersatz für aufwendigen SRAM zu ver­ wenden, der schnell ist, selbst wenn direkt auf denselben zugegriffen wird. Wenn das Ergebnis mit verschiedenen ande­ ren Speicherteilsystemmerkmalen kombiniert wird, ist das­ selbe eine sehr komplexe Angelegenheit, die das Multiplexen zwischen Gruppen und Verschachteln zwischen Bänken umfaßt, und auch das Implementieren von Dingen wie z. B. eine varia­ ble Wortbreite. Andererseits könnten die speziellen Merkma­ le, die hier offenbart werden sollen, in einem System im­ plementiert werden, das nur SRAM verwendet, mit einer we­ sentlichen Reduzierung der Komplexität. Dies würde jedoch einen wesentlichen ökonomischen Mehraufwand bedeuten, der wahrscheinlich bewirken würde, daß das fertige Produkt eher eine technische Rarität und keine brauchbare kommerzielle Technik wäre. Bei dieser Offenbarung wurde ein Mittelweg gewählt, wobei nicht vorgegeben wird, daß das System voll­ ständig aus SRAM hergestellt wird, obwohl dies sicherlich durchführbar wäre. Die DRAM-Technik ist selbstverständlich enthalten, aber viele der kleinen Details über den inneren Betrieb dieser DRAM-Technik wurden weggelassen, statt des­ sen wird eine gemäßigte Beschreibung cler Grundprinzipien derselben gegeben. Selbst ein flüchtiger Leser wird zu dem Schluß kommen, daß viel interessantes Material (z. B. die unterschiedlichen Verschachtelungs- und Adressierschemata und deren Verbindung zu den unterschiedlichen Betriebswei­ sen) weggelassen wurde. Jeder Leser wird jedoch bei der Re­ flexion erkennen, daß die Techniken und Merkmale, die of­ fenbart werden sollen, nicht fundamental von dem ausgelas­ senen Material abhängen, obwohl dieselben in einigen Fällen leicht davon beeinflußt werden können. Somit liegt hier ein Fall von mehreren Einzelheiten vor, die nur am Rand mit den Hauptthemen zu tun haben. Die oben erwähnte aufgenommene Offenbarung liefert eine große Menge an Details bezüglich der DRAM-Technik. Diejenigen, die den Eindruck haben, daß die vorliegende Offenbarung mehr Fragen über das Speicher­ teilsystem aufwirft, als sie beantwortet, können in der eingeschlossenen Offenbarung Antworten bekommen. Aus diesem Grund wurde die Existenz derselben bekannt gemacht, indem dieselbe hierin durch Bezugnahme aufgenommen wurde.
Allerdings gibt es eine Warnung für diejenigen, die die Lehren dieser zwei Offenbarungen kombinieren möchten. Die aufgenommene Offenbarung vertritt die Ansicht, daß die Ge­ samtheit des Speichers von Interesse als Fehlererfassungs- RAM (Error Catch RAM = ECR) bezeichnet wird, und daß der­ selbe in Speichersätze unterteilt ist. Diese Ansicht funk­ tioniert bei der aufgenommen Offenbarung ohne Schwierigkei­ ten, da bei dieser Offenbarung ein ECR beinahe die einzige Speicherfunktion von Interesse ist, auch wenn die Existenz anderer solcher Funktionen angedeutet wird. Bei der Refle­ xion während der Vorbereitung der vorliegenden Anmeldung wurde jedoch herausgefunden, daß es praktischer ist, die Gesamtheit des Speichers von Interesse mit der Verwendung des Begriffs "innerer Testspeicher" zu beschreiben, der wiederum aus vier getrennten und unabhängigen Speichersät­ zen zusammengesetzt ist, in denen die verschiedenen funk­ tionalen Speichermechanismen (einschließlich eines ECR) durch geeignete Konfiguration definiert werden könnten. Da­ her würde es so erscheinen, als wären die Speichersätze in der aufgenommenen Offenbarung in einem ECR enthalten, wäh­ rend es hierin umgekehrt ist. Trotzdem beziehen sich beide Offenbarungen auf Gegenstände, die in dem gleichen Gesamt­ system gefunden werden. Der Unterschied ist überwiegend ei­ ne Frage der Terminologie und jede scheinbare Inkonsistenz zwischen den beiden Offenbarungen verschwindet, wenn die Einzelheiten des Speicherteilsystembetriebs auf unterer Ebene betrachtet werden. Um dem interessierten Leser diese Einzelheiten verfügbar zu machen, wird auf die aufgenommene eingeschlossene Offenbarung hingewiesen.
Der Gegenstand dieser Offenbarung ist auch mit dem der U.S.-Patentanmeldung mit der Seriennummer 09/702,631, ein­ gereicht am 31. September 2000, mit dem Titel "MEMORY TE- STER WITH ENHANCED POST DECODE" verwandt. In dieser Offen­ barung haben wir einen wesentlichen Abschnitt der Fig. 5 derselben ausgeborgt, einen Teil derselben modifiziert, zu derselben hinzugefügt und dann als unsere Fig. 5 verwendet. Als eine Absicherung gegenüber der Möglichkeit, daß der ge­ meinsame Abschnitt hierin außerhalb des Zusammenhangs er­ scheinen kann, sowie zur Kürze haben wir uns folglich ent­ schlossen, MEMORY TESTER WITH ENHANCED POST DECODE hierin durch Bezugnahme aufzunehmen.
Im täglichen Leben sind elektronische Geräte und deren Lei­ stungsfähigkeiten mittlerweile weit verbreitet. Außer dem Personalcomputer zu Hause tragen viele Menschen mehr als ein Produktivitätsgerät für die verschiedensten Zwecke mit sich. Die meisten persönlichen elektronischen Produktivi­ tätsgeräte umfassen eine Form von nicht-flüchtigem Spei­ cher. Mobiltelephone verwenden nicht-flüchtige Speicher, um benutzerprogrammierte Telephonnummern und Konfigurationen zu speichern und zu erhalten, wenn die Leistung abgeschal­ tet ist. PCMCIA-Karten verwenden nicht-flüchtigen Speicher, um Informationen zu speichern und zu erhalten, selbst wenn die Karte von ihrem Schlitz in dem Computer entfernt ist. Viele andere weit verbreitete elektronische Geräte profi­ tieren ebenfalls von der Langzeitspeicherfähigkeit von nicht-flüchtigem Speicher in nicht-betriebenen Anordnungen.
Die Hersteller von nicht-flüchtigen Speichern, die an die Hersteller von elektronischer Ausrüstung verkaufen, erfor­ dern Tester, um den richtigen Betrieb der Speicher, die sie herstellen, auszuführen und zu verifizieren. Aufgrund der Menge an nicht-flüchtigen Speichern, die hergestellt werden und bei fortlaufend niedrigen Preisen verkauft werden, ist es sehr wichtig, die Zeit zu minimieren, die benötigt wird, um ein einzelnes Teil zu testen. Aufgrund der Kosteneinspa­ rungen im Zusammenhang mit der Praxis des Einbauens der Speicherelemente in teurere Anordnungen mit minimalem oder ohne Testen fordern die Käufer von nicht-flüchtigen Spei­ chern von den Speicherherstellern, daß dieselben hohe Ver­ sanderträge erzielen. Dementsprechend muß der Speichertest­ prozeß ausreichend effizient sein, um einen großen Prozent­ satz von fehlerhaften Teilen und vorzugsweise alle fehler­ haften Teile in einem einzigen Testprozeß zu identifizie­ ren.
Während nicht-flüchtige Speicher größer, dichter und kom­ plexer werden, müssen die Tester in der Lage sein, die er­ höhte Größe und Komplexität zu bearbeiten, ohne die Zeit wesentlich zu erhöhen, die benötigt wird, um dieselben zu testen. Die Speichertester laufen normale rweise ununterbro­ chen, und die Testzeit wird als Hauptfaktor bei den Kosten des Endteils angesehen. Während sich Speicher entwickeln und verbessern, muß der Tester in der Lage sein, sich leicht an die Änderungen anzupassen, die an dem Element durchgeführt wurden. Ein weiteres spezifisches Thema beim Testen nicht-flüchtiger Speicher ist, daß wiederholte Schreibvorgänge auf Zellen der Speicher die Gesamtlebens­ dauerleistungsfähigkeit des Teils verschlechtern können. Die Hersteller von nicht-flüchtigen Speichern haben auf viele der Testaufgaben durch Einbauen spezieller Testmodi in die Speicherelemente reagiert. Diese Testmodi werden von dem Käufer des Speichers überhaupt nicht verwendet, aber der Hersteller kann auf dieselben zugreifen, um alle oder wesentliche Abschnitte der Speicher in so kurzer Zeit wie möglich und so effizient wie möglich zu testen. Einige nicht-flüchtige Speicher können auch während dem Testprozeß repariert werden. Der Tester sollte daher in der Lage sein, folgendes zu identifizieren: eine benötigte Reparatur, eine Position der Reparatur, den Typ der benötigten Reparatur, und muß dann in der Lage sein, die geeignete Reparatur durchzuführen. Ein solcher Reparaturprozeß erfordert, daß ein Tester in der Lage ist, einen spezifischen fehlerhaften Abschnitt des Speichers zu erfassen und abzutrennen. Um die gesamten Vorteile der speziellen Testmodi als auch der Re­ paraturfunktionen zu erhalten, ist es für einen Tester von Vorteil, in der Lage zu sein, ein Testprogramm auszuführen, das eine bedingte Verzweigung auf der Basis einer erwarte­ ten Ansprache von dem Element unterstützt.
Von einer konzeptionellen Perspektive aus ist der Prozeß des Testens von Speichern ein algorithmischer Prozeß. Als Beispiel umfassen typische Tests das sequentielle Inkremen­ tieren oder Dekrementieren von Speicheradressen, während Nullen und Einsen in die Speicherzellen geschrieben werden. Es ist gebräuchlich, eine Ansammlung von Einsen und Nullen, die während einem Speicherzyklus geschrieben oder gelesen werden, als einen "Vektor" zu bezeichnen, während sich der Begriff "Muster" auf eine Sequenz von Vektoren bezieht. Es ist bei Tests gebräuchlich, Schreibmuster, wie z. B. Schachbretter, laufende Einsen und Schmetterlingsmuster in den Speicherplatz aufzunehmen. Ein Testentwickler kann mit der Hilfe von algorithmischen Elementen ein solches Pro­ gramm zum Erzeugen dieser Muster leichter und effizienter erzeugen. Ein Testmuster, das algorithmisch kohärent ist, ist außerdem bei der Fehlersuche einfacher, und ermöglicht die Verwendung logischer Verfahren zum Isolieren von Ab­ schnitten des Musters, die nicht wie erwartet funktionie­ ren. Ein Testmuster, das unter Verwendung von Anweisungen und Befehlen, die in Programmierschleifen wiederholt wer­ den, algorithmisch erzeugt wurde, verbraucht in dem Tester­ speicher weniger Platz. Dementsprechend ist es wünschens­ wert, in einem Speichertester eine algorithmische Testmu­ stererzeugungsfähigkeit zu haben.
Die genaue Signalflankenplazierung und -erfassung ist eben­ falls eine Erwägung bei der Effektivität eines nicht- flüchtigen Testers. Um Teile zu erfassen, die im allgemei­ nen einem Medianwert entsprechen, während sie nicht inner­ halb der spezifizierten Spanne entsprechen, muß ein nicht- flüchtiger Speichertester in der Lage sein, jede Signal­ flanke bezüglich der Zeit zu einer anderen Signalflanke präzise zu plazieren. Es ist außerdem wichtig, daß derselbe in der Lage ist, genau zu messen, zu welchem Zeitpunkt eine Signalflanke empfangen wird. Dementsprechend sollte ein nicht-flüchtiger Speichertester ausreichend Flexibilität aufweisen und Steuerung der Zeitgebung und Plazierung von Stimuli und Antworten von dem zu testenden Gerät (Spei­ cher).
Die Speichertester sollen "Sende"-Vektoren erzeugen, die an das DUT (device under test = zu testendes Gerät) angelegt werden (Stimulus) und "Empfangs"-Vektoren, die als Reaktion erwartet werden (Antwort). Die algorithmische Logik, die diese Vektoren erzeugt, kann dies im allgemeinen durchfüh­ ren, ohne sich damit zu befassen, wie ein spezielles Bit in einem Vektor von oder zu einer speziellen Signalanschluß­ stelle in dem DUT gelangt.
Speichertester weisen einen inneren Testspeicher auf, der verwendet wird, um den Testprozeß zu ermöglichen. Dieser innere Testspeicher kann für mehrere Zwacke verwendet wer­ den, unter anderem für das Speichern von Sendevektoren zeitlich im voraus, im Gegensatz zum Erzeugen derselben in Echtzeit, das Speichern von Empfangsvektoren und das Spei­ chern einer Vielzahl von Fehleranzeigen und anderer Infor­ mationen bezüglich des DUT-Verhaltens, die während des Te­ stens erhalten werden. (Es gibt außerdem organisatorische Zwecke in dem Betrieb des Speichertesters, die SRAM verwen­ den, und von denen es scheint, als ob sie in den Bereich des Begriffs "innerer Speicher" fallen. Diese gehören nur zu dem inneren Betrieb des Testes, sind auf der algorithmi­ schen Ebene meistens nicht sichtbar und sind mit inneren Steuerregistern vergleichbar. Dieser Speicher wird als "in­ nerer Steuerspeicher" beschrieben, und ist von dem ausge­ schlossen, was hierin mit dem Begriff "innerer Testspei­ cher" gemeint ist, der hierin verwendet wird, um einen Speicher zu beschreiben, der verwendet wird, um Bitmuster zu speichern, die direkt auf den Stimulus und die Antwort von dem DUT bezogen sind). Es ist offensichtlich, daß die­ ser innere Testspeicher mindestens so schnell arbeiten muß wie die Tests durchgeführt werden, es ist ein sehr ge­ bräuchliches Paradigma für den inneren Testspeicher (oder einen Abschnitt desselben) von der gleichen Adresse (oder einer Ableitung derselben) adressiert zu werden, die auch an das DUT angelegt wird. Was dann an dieser adressierten Position in dem inneren Testspeicher gespeichert ist, ist etwas, das das DUT-Verhalten während einem Testvorgang zeigt, der an dem DUT an dieser Adresse durchgeführt wird. Algorithmische Betrachtungen innerhalb des Testprogramms können bedeuten, daß die Sequenz von Adressen, die nachfol­ genden Sendevektoren zugeordnet ist, beliebig sein kann. Somit muß der innere Speicher die beiden Attribute von ho­ her Geschwindigkeit und Zufallsadressierbarkeit aufweisen. Mit SRAM wird unmittelbar verknüpft, daß derselbe schnell, leicht zu steuern und tolerant gegenüber einer vollständi­ gen Zufallsadressierung ist. In der Tat haben herkömmliche Speichertester SRAN als ihren inneren Testspeicher verwen­ det.
Leider ist SRAM ziemlich teuer, und dies hat die Menge an innerem Testspeicher begrenzt, mit denen Speichertester zu arbeiten hatten. Die Folge sind Begrenzungen der Speicher­ testerfunktionalität, die durch einen Mangel an Speicher auferlegt werden. Ein DRAM ist wesentlich kostengünstiger, kann aber keine Zufallsadressierung tolerieren und dennoch bei hoher Geschwindigkeit arbeiten.
Der DRAM kann den SRAM als inneren Testspeicher in einem Speichertester ersetzen. Wie es nachfolgend kurz in einer vereinfachten Übersicht beschrieben ist, kann das Problem des Erhöhens der Geschwindigkeit des DRAM-Betriebs für die Verwendung als innerer Testspeicher durch Erhöhen der ver­ wendeten Menge an DRAM gelöst werden, anstatt durch Erhöhen der Geschwindigkeit desselben. Die Anzahlen identischer DRAM-Bänke werden als Gruppen behandelt. Eine Kombination von verschachtelten Signalen für unterschiedliche Speicher­ bänke in einer Gruppe desselben und Multiplexen zwischen diesen Gruppen von Bänken verlangsamt clen Speicherverkehr für jede Bank auf eine Rate, die durch die Bank bearbeitet werden kann. (Für den Leser wird hierin eine kurze Zusam­ menfassung dieser Technik eingeschlossen, da viele archi­ tektonische Aspekte und die zugeordnete Terminologie für die folgende Erklärung des erfindungsmäßigen Gegenstands nützlich sind).
Ein Drei-Weg-Multiplexen zwischen drei Gruppen von jeweils vier Bänken, kombiniert mit einem flexiblen vierfachen Ver­ schachtelungsschema für Signalverkehr zu einer Gruppe er­ zeugt eine Erhöhung bei der Betriebsgeschwindigkeit, die einen Faktor von 12 erreicht, während nur drei Speicher­ busse erforderlich sind. Eine zyklische Suchstrategie (Round-Robin-Strategie) zum Auswählen der nächsten Gruppe für den Multiplexer ist einfach und stellt sicher, daß der Verschachtelungsmechanismus für jede Gruppe die Zeit hat, die derselbe benötigt, um die letzte zugewiesene Aufgabe zu beenden. Alle verschachtelten Zugriffe innerhalb einer Gruppe werden auf einer nächsten Bank (innerhalb dieser Gruppe) durchgeführt, die ebenfalls durch eine einfache Round-Robin-Auswahl ausgewählt wird. Bei dieser Konfigura­ tion stellt jede der 12 Bänke einen Duplikatfall des gesam­ ten verfügbaren Adreßplatzes dar, und jeder einzelne Schreibzyklus kann schließlich mit einem Zugriff auf eine der 12 Bänke enden. Eine Folgerung ist, daß beim Beenden des Testens alle 12 Bänke untersucht sein müssen, um zu er­ fassen, welche Störungen während des Testens des DUT aufge­ treten sind, da die Geschichte jeder Adresse oder jeder Sammlung von Adressen von Interesse sich über alle 12 Bänke ausbreiten wird. Somit wird ein spezieller Kanal durch 12 Bits dargestellt (ein Bit von jeder Bank, und dessen Bitpo­ sition innerhalb des Worts für diese Bank ist durch den Ka­ nal bestimmt).
Es wäre jedoch schwierig, alle 12 Bänke einzeln (manuell) abfragen zu müssen, um Störungsinformationen zu entdecken, daher ist ein Dienstmechanismus vorgesehen, um automatisch die Ergebnisse aller 12 Bänke während Einem Lesezyklus an einer Adresse in ein einheitliches Ergebnis (zusammenzuset­ zen) "zu mischen", das in einer oder allen 12 Bänken ge­ speichert werden kann. Dies ermöglicht, daß zusammengesetz­ te Daten später mit voller Geschwindigkeit gelesen werden können. Die volle Geschwindigkeit bei einem Ausführungsbei­ spiel ist eine 100 MHz-Rate für zufallsadressierte Spei­ chertransaktionen.
Falls 33 MHz schnell genug ist, kann ein Zufallszugriff nur durch das Verschachteln und ohne Multiplexen unterstützt werden, in diesem Fall sind der Zusammensetzungsmechanismus und das Speicheradressierschema passend eingestellt. Das Adressierschema ändert sich, um zusätzliche Gruppenauswahl­ bits zu umfassen, die es ermöglichen, daß die Tiefe des Speichers dreimal tiefer ist als für einen 100 MHz- Zufallsbetrieb. Diese beiden Betriebsweisen werden als R100 bzw. R33 bezeichnet. Es gibt außerdem einen L100-Modus von 100 MHz-Betrieb zu einzelnen Bänken, der sich darauf ver­ läßt, daß Adressen mit gutem Verhalten zu dem DRAM gesendet werden (ein absolutes Minimum an Zeilenadreßänderungen).
Auf der obersten Ebene der inneren Testspeicherorganisation gibt es vier Speichersätze, von denen jeder seinen eigenen getrennten und unabhängigen Adreßraum umfaßt und angefragte Speichertransaktionen durchführt. Zwei sind von dem oben beschriebenen DRAM, und zwei von dem SRAM. Jeder Speicher­ satz weist seine eigene Steuerung auf, an die Speicher­ transaktionen gerichtet werden. Bezüglich extern sichtbarer Betriebsfähigkeiten sind alle vier Speichersätze im wesent­ lichen identisch. Dieselben unterscheiden sich nur in ihrer Größe des Adreßraums, und wie dieselben intern implemen­ tiert sind: Die SRAM-Speichersätze verwenden kein Multiple­ xen und Verschachteln, da dieselben vor. Anfang an schnell genug sind. Trotz ihrer Unabhängigkeit können Speichersätze des gleichen Typs (von SRAM oder DRAM) "gestapelt" sein, d. h. als ein größerer Adreßraum behandelt werden. Dies wird auf der Steuerebene oberhalb der Speichersätze selbst durchgeführt, bei der algorithmischen Erzeugung der Adres­ sen und der Entscheidung, an welchen Speichersatz eine Speichertransaktion tatsächlich gesendet wird. Dies ist nicht so automatisch wie die Art und Weise, auf die die Speichersätze und die Steuerungen derselben Gruppen stapeln können, um den Adreßraum zu verdreifachen, wie zwischen den Betriebsweisen R100 und R33. Jede der Speichersatzsteuerun­ gen hat keine Ahnung, daß es so etwas wie einen weiteren Speichersatz mit einer weiteren Steuerung überhaupt gibt.
Daher ist es so, daß der innere Testspeicher des Testers in vier Speichersätze unterteilt ist, von denen zwei "interne" SRAM und zwei "externe" DRAM sind. Um es noch einmal zu be­ tonen, alle diese Speicher sind physikalisch innerhalb des Speichertestes, die Begriffe "intern" und "extern" beziehen sich mehr auf eine Ebene der Integration. Die SRAM sind Be­ standteile einer VLSI-(Höchstintegraticn-)Schaltung, die der zentralen Funktionsschaltungsanordnung des Testers zu­ geordnet ist, während die DRAM einzeln verpackte Teile sind, die benachbart zu den VLSI-Teilen befestigt sind. Die Menge an SRAM ist relativ klein (etwa 7. Megabit pro Spei­ chersatz), während die Menge an DRAM wesentlich und aus­ wählbar ist (etwa in dem Bereich von 128 bis 1024 Megabits pro Speichersatz). Die SRAM-Speichersätze liegen immer vor, und können für jeden geeigneten Zweck verwendet werden, wie z. B. Speichern des erwarteten Inhalts eines DUT, das ein ROM (Nur-Lese-Speicher) ist. Die DRAM-Speichersätze sind in der Tat optional und werden typischerweise zum Erzeugen ei­ ner Spur für eine nachfolgende Analyse verwendet, die zu einer Reparatur führt, obwohl es auch andere Verwendungen gibt. Der Tester macht keine Unterscheidung zwischen den SRAM- und DRAM-Speichersätzen bezüglich unterschiedlicher Zwecke, für die dieselben verwendet werden können. Diese Unterscheidungen ergeben sich überwiegend als eine Frage der Größe. Die SRAM-Speichersätze sind klein, während die DRAM-Speichersätze potentiell riesig sind. Die Person oder die Personen, die das Testprogramm erzeugen, treffen die Entscheidungen bezüglich dessen, wie die verschiedenen Speichersätze verwendet werden sollen.
Wir haben bereits erwähnt, daß eine algorithmische Fähig­ keit beim Entwickeln und Aufrechterhalten der Testprogramme wünschenswert war, die mit dem Speichertester ausgeführt werden sollen. Zusätzlich zu der Komplexität, die eine Pro­ grammierbarkeit erlaubt (Schleifen, die in Schleifen ver­ schachtelt sind, Verzweigung auf Testergebnisse), gibt es verschiedene spezielle Betriebsfähigkeiten, die in densel­ ben entworfen sind, um sowohl das automatisierte Testen von nicht-flüchtigen Speichern allgemein als auch von nicht- flüchtigen Speichern, die bestimmte, eigentümliche Eigen­ schaften aufweisen, zu ermöglichen. Die Bedeutung von all dem besteht darin, daß es eine entsprechende Komplexität geben kann, die den Entwicklungs- und Beibehaltungsaktivi­ täten für die Testprogramme gewährt wird. Kurz gesagt ist es häufig, daß ein Testprogramm selbst ein komplizierter Mechanismus ist.
Es sei dann die Situation einer Person betrachtet, die ein Testprogramm entwickelt. Es wird nicht unüblich sein, daß anfängliche Versionen nicht wie erwartet funktionieren. Sie tun Dinge, die sie nicht tun sollen, und tun Dinge, die sie tun sollen, nicht. Es gibt Situationen, in denen ein Unter­ suchen des Codes nicht hilft (unter der Annahme, daß er so korrekt ist, wie es ein gegenwärtiges Verständnis erlaubt), wobei das geeignetste Tool bzw. Werkzeug zum Herausfinden dessen, was vor sich geht, eine oszillographische Spur von Spannungssignalverläufen ist: eine Quelle zusätzlicher Da­ ten wird benötigt, um den Prozeß des Verstehens, was ge­ schieht, voranzutreiben, oder um eine Theorie zu verifizie­ ren, usw. Leider ist es nicht praktisch, einfach an den Testkopf heranzutreten und eine Sonde oder zwei für das je­ weilige Lieblingsoszilloskop zu befestigen. Selbst wenn man die tatsächlichen physischen Positionen identifizieren könnte, an denen dieselben befestigt wären (im Prinzip mög­ lich, in der Praxis jedoch oft sehr schwierig), gibt es üb­ licherweise weder genug Raum, um dies zu tun, noch ist die­ se physische Struktur stark genug, um eine Sonde und ihr Kabel zu tragen. Es besteht ebenfalls die Frage einer elek­ trischen Ladung oder anderer Störungen der erwünschten Mes­ sungen. Und selbst wenn all diese Probleme überwunden wä­ ren, gibt es noch immer das Problem, wie das Oszilloskop auszulösen ist, so daß die erfaßten Daten zu dem Problem von Interesse gehören.
Hinsichtlich der Schwierigkeit des Verbindens von Oszil­ loskop-Sonden bleiben wir bei dem, was wir gerade gesagt haben. Hinsichtlich des Problems der Daten, denen das Os­ zilloskop ausgesetzt ist und die es erfaßt, müssen noch mehr Hintergründe betrachtet werden, bevor das Problem richtig verstanden werden kann. Ein nützlicher Ausgangs­ punkt hierbei ist ein Typ von Speichertester, der als eine "Vektor"-Maschine bezeichnet wird, wie z. B. in der 83000- VLSI-Testserie von Agilent Technologies zu finden ist.
Ein vektorgetriebener Tester weist eine explizite Liste von Stimulusvektoren auf, die er der Reihe nach an das DUT an­ legt. Er legt dieselben einfach an und zeichnet auf, welche Empfangsvektoren auftraten. Es ist sehr stark ein Unmittel­ barer-Stimulus-/Unmittelbare-Antwort-Typ von System: dies wird eingegeben, das kommt heraus. Das Wesen einer Vektor­ maschine und seines DUT ist derart, daß die Ausführung der Liste zu jedem Zeitpunkt unterbrochen und eine Ausführung von einer vorausgewählten, passenden Position in der Liste von Sendevektoren neu gestartet werden kann. Ähnlich wie der algorithmisch getriebene, musterorientierte Speicherte­ ster, der später beschrieben wird, weist ein Vektortester (zur Erzeugung von Empfangsvektoren) variable Abtastschwel­ len und variable Abtastzeitgebungsversätze auf, die relativ zu einem bestimmten Taktsignal sind. Ein Gegenstand, der nicht vorhanden ist, ist ein Analog-zu-Digital-Konverter, der den analogen Spannungssignalverlauf eines zugeordneten Kanals digitalisiert. Trotzdem können die Ressourcen, die vorhanden sind, verwendet werden, um den Spannungssignal­ verlauf auf Kanälen von Interesse während ausgewählter Vek­ toren zu rekonstruieren. Es ist mühsam, aber es funktio­ niert (und es gibt keine praktische Alternative). Hier ist das Wie.
Während eines herkömmlichen (Nicht-Oszilloskop-Modus-)Be­ triebs werden ein bestimmtes Paar von Schwellenwerten und ein Abtastzeitgebungsversatz ausgewählt und Daten für die Sequenz aufgezeichnet. Die Schwellen sind VOH und VOL (VOH = Voltage Out High = Spannung-Aus-Hoch; VOL = Voltage Out Low = Spannung-Aus-Niedrig) und sind in Schritten von z. B. 10 mV einstellbar. Die VOH-Schwelle wird erfüllt, wenn zu dem Zeitpunkt, der durch den Abtastzeitgebungsversatz des Kanals spezifiziert ist, die Kanalspannung VOH überschrei­ tet, während die VOL-Schwelle erfüllt wird, wenn die Kanal­ spannung kleiner als VOL ist. Die Namen der Signale, die diese Bedingungen darstellen, sind YVOH bzw. YVOL. Was für den zugeordneten Kanal in dem Empfangsvektor aufgezeichnet wird, ist, ob die Kanalspannung jede der Schwellen zu dem Zeitpunkt, der durch den Abtastzeitgebungsversatz darge­ stellt wird, erfüllte.
Für den Oszilloskop-Modus besteht die zugrundeliegende Idee darin, für geeignet beabstandete Zeitpunkte entlang des Si­ gnalverlaufs herauszufinden, welche Schwellenwerte zu die­ sen Punkten auf einer der Seiten des Signalverlaufs sind. Um dies zu tun, muß eine Sequenz von Vektoren, die die Er­ eignisse von Interesse enthalten, wiederholt ausgeführt werden. Während einer derartigen wiederholten Ausführung wird die VOH-Spannungsschwelle leicht zwischen Wiederho­ lungsfällen verändert, wobei, wenn die Sequenz fortlaufend wiederholt wird, mehr und mehr Daten gespeichert werden. Dies könnte fortgesetzt werden, bis beide Extreme für den VOH-Schwellenwert verwendet wurden. Für jeden Vektor in der Sequenz können die aufgezeichneten Empfangsergebnisse in­ terpretiert werden, um einen Beitrag zu einer oszillogra­ phischen Spur zu erzeugen. (Wenn angenommen wird, daß aufeinanderfolgende Fälle von YVOH im Wert gleich wären (WAHR), würde sich bei einem bestimmten Fall der neue Wert von YVOH verändern (FALSCH), wonach aufeinanderfolgende Werte wieder gleich würden (beide FALSCH), jedoch mit einem Wert, der entgegengesetzt zu dem ist, den dieselben hatten, als sie früher gleich waren, und würden dann entgegenge­ setzt geschaltet bleiben. Dies würde einen stabilen Span­ nungswert für den Kanal zu dem Zeitpunkt anzeigen, zu dem sich der Wert von WAHR zu FALSCH veränderte, wobei dieser Zeitpunkt durch den (unveränderten) Abtastzeitgebungsver­ satz identifiziert wird, der für diese Progression von VOH- Werten in Verwendung ist. Der stabile Spannungswert befin­ det sich irgendwo zwischen diesen aufeinanderfolgenden Fäl­ len von VOH, für die YVOH den Wert veränderte. Es gibt auch andere Fälle bei dieser bekannten Technik des Stands der Technik, die hier aus Gründen der Kürze nicht erwähnt wer­ den.) Für jeden Vektor ist der zuvor genannte Beitrag nur für diesen Abtastzeitgebungsversatz.
Es ist zu erkennen, daß ein einfaches Inkrementieren von VOH von einem Extrem zu dem anderen nicht die einzig mögli­ che Weise ist, um ein Paar von VOH-Werten zu finden, die geeignet nahe beieinander sind und für die zugeordnete YVOH entgegengesetzte Werte aufweisen. Es kann z. B. wenig sinn­ voll sein, für einen 3-Volt-Teil über einen 5-Volt-Bereich durchzulaufen. Als nächstes kann es, mit einem bestimmten Ausgangspunkt, ausreichen, ein Inkrementieren zu stoppen, sobald der Übergang gefunden wurde, oder nachdem ein paar weitere Inkremente bestätigen, daß der Übergang tatsächlich in etwa an dieser Stelle war, und zwar selbst für ein etwas rauschbehaftetes Signal. (Ein Abtasten, das durch einen rauschbehafteten Übergang fortfährt, kann von einem Mitteln profitieren.) Schließlich könnte man sogar eine binäre oder eine andere Suchstrategie verwenden, einschließlich einer Vorhersage, um zu versuchen, die Zahl von Wiederholungen zu minimieren, die erforderlich sind, um die relevanten Werte von VOH zu entdecken, die dem erwünschten Übergang von YVOH zugeordnet sind. Dies ist für einen Benutzer von Interesse, da derartige Strategien die Zeitmenge wesentlich reduzieren können, die erforderlich ist, um den oder die erwünschten Signalverläufe zu erzeugen. Selbst dann kann es noch immer Minuten dauern, bis die gesamte Operation abgeschlossen ist.
Der nächste Schritt besteht darin, die gesamte Operation mit einem anderen Abtastzeitgebungsversatz zu wiederholen. Schließlich wird eine vollständige Beschreibung des Span­ nungsverhaltens des oder der Kanäle während der Vektoren von Interesse erzeugt, wobei dasselbe als ein Spannungssi­ gnalverlauf, genau wie bei einem digitalen Oszilloskop, an­ gezeigt werden kann. Die vertikale (Spannungsachse) Auflö­ sung ist die Schrittgröße zum Verändern von VOH, wobei die horizontale (Zeitachse) Auflösung die Schrittstufe zum Ver­ ändern des Abtastzeitgebungsversatzes ist. (der ganze 20 Pi­ cosekunden klein sein kann). Dies ist eine Technik des Stands der Technik, die bei Testern verwendet wurde, die vom Vektor-Maschine-Typ sind. Wir möchten sie in unserer algorithmisch gesteuerten Mustermaschine verwenden, es gibt jedoch einige ernstzunehmende Schwierigkeiten.
Während eine Vektormaschine ohne weiteres ihre Auslösungs­ funktion durch ein einfaches Identifizieren eines der Vek­ toren in der expliziten Liste derselben hinsichtlich des Zeitpunkts, zu dem ausgelöst werden soll, durchführt, wird darauf verwiesen, daß bei einer algorithmisch gesteuerten Maschine ein "Auslösen des Oszilloskops" (Identifizieren der bestimmten Empfangsvektoren, für die Daten gespeichert werden sollen) nicht trivial ist. Wie dies bei einer digi­ talen Umgebung üblich ist, ist ein einfacher analoger Aus­ lösepegel mit einer Flanke sehr wahrscheinlich nutzlos. Selbst ein Erfassen bestimmter Kombinationen von (gleich­ zeitigen) Signalwerten (einem parallelen Wort) ist an sich oft nicht ausreichend. Noch kann üblicherweise zu dem Code gegangen werden, der ausgeführt wird, um den Testalgorith­ mus durchzuführen und "Hier. Auslösen, wenn wir dieses An­ weisungswort ausführen." gesagt werden. Es kann Zeitpunkte geben, zu denen dies funktioniert, oft funktioniert es je­ doch nicht, da es erforderlich macht, daß in dem Code eine Anweisung ist, deren Ausführung eindeutig dem Ausfall zuge­ ordnet ist. Die algorithmischen Möglichkeiten sind oft viel zu kompliziert, wobei die Anweisung "irrtümlich" in einer Schleife erscheinen kann und Tausende oder Millionen von Malen perfekt arbeitet, bevor der Fehler auftritt.
Wir müssen auch daran denken, daß die exakte, gleiche Serie von Ereignissen viele Male (z. B. so oft wie das Produkt der Zahl von unterschiedlichen Werten vcn VOH und der Zahl von unterschiedlichen Werten für den Zeitgebungsversatz) auftreten muß, bevor es ausreichend erfaßte Daten gibt, um es zu ermöglichen, daß der oder die Signalverläufe als eine oszillographische Spur rekonstruiert werden. Es sei nun an­ genommen, daß das Testprogramm einen Zweig auf einem Feh­ lerflag umfaßt (ein Fehlerflag bedeutet, daß die Antwort des DUT nicht mit einer Erwartung übereinstimmte). Fehler­ flags verändern einen Testprogrammfluß. Aber während Wie­ derholungen für den Oszilloskop-Modus werden Fehlerflags häufiger auftreten als nicht und in jedem Vektor, der zu der Spur beizutragen hat. Warum? Aufgrund des Wobbelns der Schwelle und des Abtastzeitgebungsversatzes. Dieses Wobbeln erzeugt zwangsläufig "falsche Antworten", die das Fehler­ flag einstellen und den Programmfluß verändern, selbst wenn das DUT keine Fehlfunktion aufweist. Es ist fast sicher, daß ein veränderter Programmfluß die Signalverläufe auf ei­ ne entsprechende Weise verändern würde. Wenn jedoch die Ak­ tivität, die erforderlich ist, um eine Spur aus wiederhol­ ten, identischen Fällen einer Signalverlaufsaktivität zu rekonstruieren, die Signalverläufe verändert (als ein Er­ gebnis des Veränderns des Programmflusses), gibt es keinen stabilen Signalverlauf, wobei keine verständliche Spur re­ konstruiert werden kann. Ein Verzweigen auf Fehlerflags in einem Testprogramm ist jedoch eine leistungsfähige Vorrich­ tung und eine, die wir nicht aufgeben wollen. Dies bedeu­ tet, daß es wahrscheinlich notwendig ist, es erforderlich zu machen, daß Testprogramme auf eine eingeschränkte Weise geschrieben werden, um in dem Oszilloskop-Modus verwendbar zu sein. Außerdem möchten wir, daß ein Benutzer des Spei­ chertesters in der Lage ist, den Oszilloskop-Modus auf alle bereits existierenden Testprogramme anzuwenden, ohne die­ selben modifizieren zu müssen, um stabile Wiederholungen zu erzeugen. Außerdem wollen wir keine Quellencodemodifizie­ rungen von Testprogrammen durchführen, um Auslöseanweisun­ gen zu ermöglichen oder zu umfassen. Statt dessen wollen wir, daß der Speichertester selbst sich für uns dieser schwierigen Probleme annimmt, und zwar zusätzlich zu einem Rekonstruieren der Spur aus erfaßten Daten, die erhalten wurden, während die Schwellen und der Abtastzeitgebungsver­ satz gewobbelt wurden.
Zusätzlich sollten wir, sobald ein Auslösespezifikationsme­ chanismus vorgesehen ist, in der Lage sein, den resultie­ renden Auslöser zu verwenden, um eine Verzweigung des inne­ ren Testprogramms basierend auf Fehlerflags zu erzwingen, um einem bestimmten Pfad zu folgen, und zwar unabhängig von den tatsächlichen Werten der zugeordneten Fehlerflags. Ein Testprogramm kann z. B. viele Zweige enthalten, die be­ stimmten Typen von Ausfällen in dem DUT entsprechen. Der Programmierer würde gerne verifizieren, daß auf all diese verschiedenen Zweige zugegriffen werden kann, und daß die­ selben wie beabsichtigt durchgeführt werden können. Das Problem besteht darin, wie die verschiedenen Zweige aufge­ rufen werden können, ohne den Code bearbeiten zu müssen, und auch ohne eine Sammlung von speziellen DUT aufweisen zu müssen, die bekannt sind, um genau die richtigen Fehlfunk­ tionen aufzuweisen, um das erwünschte Ausführen des Test­ programms zu bewirken.
Es ist die Aufgabe der vorliegenden Erfindung, ein verbes­ sertes Verfahren zum Erzeugen eines Auslösesignals in einem Tester und ein verbessertes Verfahren zum Erzeugen einer Darstellung von Spannungssignalverläufen zu schaffen.
Diese Aufgabe wird durch ein Verfahren zum Erzeugen eines Auslösesignals gemäß Anspruch 1 oder ein Verfahren zum Er­ zeugen einer Darstellung von Spannungssignalverläufen gemäß Anspruch 8 gelöst.
Eine Lösung für das Problem des Lieferns eines Auslösesi­ gnals (Triggersignals) für den Oszilloskop-Modus eines Speichertesters, der einen algorithmischen Mustergenerator aufweist, der bei der Ausführung von Testprogrammen verwen­ det wird, die einen im wesentlichen algorithmischen Inhalt aufweisen, besteht darin, den algorithmischen Mustergenera­ tor mit Hardware auszurüsten, um das Auftreten einer Auslö­ serspezifikation, ausgedrückt hinsichtlich existierender Hardwaremengen, zu erfassen, die verwendet werden, um das DUT zu betreiben, wie z. B. Adresse unci Daten, sowie den Inhalt bestimmter existierender Hilfsrecister einzuschlie­ ßen, die vorgesehen sind, um das algorithmische Verhalten zu ermöglichen. Dies bildet einen rohen Hardware-(Unter­ brechungspunkt-)Auslöser, der weiter gemäß dem Teil des Testprogramms qualifiziert werden kann, der ausgeführt wird. (Die Sprache, die gegenwärtig verwendet wird, um Testprogramme zu erzeugen, erlaubt keine Erzeugung abstrak­ ter Variablen, die nur als Werte in einem willkürlichen Speicherort existieren, der keines der chen erwähnten Regi­ ster ist. Folglich sind ein Hardwaremaskieren und ein Durchführen einer UND-Verknüpfung, die bezüglich bestimmter Hardwareregister in dem algorithmischen Mustergenerator durchgeführt wird, ein angemessener Ausgangspunkt für eine Auslösererzeugung (Triggererzeugung).) Der qualifizierte Unterbrechungspunktauslöser kann um null oder mehr DUT- Zyklen verzögert werden, bevor er ein Systemauslösesignal wird, das verwendet werden kann, um den Oszilloskop-Modus auszulösen und ein Fehlerflag auf einen ausgewählten Wert zu blockieren (zu zwingen) (um so einen bestimmten Pfad bei dem Testprogramm zu erzwingen).
Das Testprogramm selbst ist in einer Sprache geschrieben, die einem Pseudocode ähnelt, jedoch mit einem eingeschränk­ ten Satz von Variablen, wie oben erwähnt wurde. Ein Kompi­ lierer wirkt auf diesen Quellencode, um ausführbare Anwei­ sungswörter zu erzeugen, die Bedingungen in dem Rest der Hardware in dem algorithmischen Mustergenerator sowohl steuern als auch auf dieselben ansprechen. Ein Benutzer­ schnittstellenaspekt des Oszilloskop-Modusverfahrens wird vorzugsweise in einer separaten Umgebung ausgeführt, wobei der Benutzer mit diesem Prozeß in Wechselwirkung steht, um eine Auslöserspezifikation zu definieren. Der Oszilloskop- Modusprozeß richtet die Masken und Vergleichsmechanismen ein, die die rohe Auslöserbedingung auf dem Pegel der Hard­ wareregisterwerte erkennen. Er informiert auch den Kompi­ lierer darüber, welche Abschnitte des Testprogramms als Ak­ tivierung der rohen Auslöserspezifikation betrachtet werden sollen. Dies wird in dem kompilierten Code erzielt, indem in den ausführbaren Anweisungswörtern für den algorithmi­ schen Programmgenerator ein Bit, das "die Auslösefunktion ist gegenwärtig aktiviert" bedeutet, geliefert wird. Die Überwachung von Werten für abstrakte Variablen, die nicht eng an die Testhardware gebunden sind, und ein echter Lo­ gikanalysator-Typ-Sequenzauslöser können an einem bestimm­ ten Punkt wünschenswert sein, sind jedoch nicht notwendig.
Eine Lösung für das Problem des Lieferns stabiler Signal­ verläufe für das Wobbeln der Spannungsschwellen und des Ab­ tastzeitgebungsversatzes besteht für den Speichertester darin, die Sequenz von Sendevektoren, die während eines an­ fänglichen Durchlaufens durch das Testprogramm nach dem Auftreten eines Auslösers ausgegeben werden, bis zu einer bestimmten geeigneten Zahl, z. B. 128 "festzuhalten" (d. h. aufzuzeichnen). Diese Sequenz sei "Zielsequenz" genannt. Sobald die Zielsequenz in dem Speicher gespeichert ("fest­ gehalten") ist, kann der Oszilloskop-Modus die erwünschten Informationen extrahieren, indem er das gesamte Testpro­ gramm neu startet (da unter Umständen bestimmte Anfangsbe­ dingungen festgelegt werden müssen), und indem er dasselbe genau wie vorher bis zu dem Auslöser laufen läßt. Wenn nun der Auslöser jedoch auftritt, werden weitere Sendevektoren von der gespeicherten Zielsequenz ausgegeben, wie sie vor­ lag und nicht von dem Live-Algorithmus (Lebend- Algorithmus), wobei eine Kombination von VOH und dem Ab­ tastzeitgebungsversatz in Position geschaltet wird. Diese Kombination stellt einen Schritt entlang des Erfassungswob­ belns ihrer Werte dar und wird behalten, bis das Ende der gespeicherten Zielsequenz erreicht ist. (Ein "Erfassungs­ wobbeln" darf nicht mit dem "horizontalen Wobbeln" einer oszillographischen Darstellung verwechselt werden.) Die entsprechende Sequenz von Empfangsvektoren wird automatisch gespeichert, wenn dieselben ankommen. An dem Ende der Ziel­ sequenz wird das Testprogramm wieder neu gestartet (jedoch mit normalen Schwellen und Abtastzeitgebungsversätzen). Zur rechten Zeit gibt es schließlich einen weiteren Auslöser, woraufhin die gespeicherte Zielsequenz wieder durch den Li­ ve-Algorithmus ersetzt wird, während die nächste Kombinati­ on in dem Schritt entlang des Erfassungswobbelns in Gang gesetzt wird, bis das Ende der Zielsequenz wieder erreicht ist. Wie vorher werden die Empfangsvektoren, die diesem Schritt bei dem Erfassungswobbeln zugeordnet sind, automa­ tisch gespeichert. Dieser Prozeß wird fortgesetzt, bis das gesamte Erfassungswobbeln durchgeführt wurde, wobei zu die­ sem Zeitpunkt die Signalverläufe für die Signale von Inter­ esse während der Zielsequenz durch eine geeignete Prüfung der entsprechenden Sammlung automatisch gespeicherter Emp­ fangsvektoren erzeugt werden können.
Die oben beschriebene Technik wird durch ein Ausrüsten des Speichertesters mit einem FIFO (oder einer anderen Spei­ cherstruktur) zum Speichern der Zielsequenz und auch mit einem Steuerungsmechanismus, um das Speichern und das nach­ folgende Schalten zum Ausführen der gespeicherten Zielse­ quenz auf das Auftreten des Auslösers hin zu überwachen er­ möglicht. Da das ausführbare Programmwort viel breiter (208 Bits breit) ist als die Adresse, die benötigt wird, um durch das Programm zu indexieren, ist es die Sequenz von Adressen für die Anweisungswörter in der Zielsequenz, die in dem FIFO gespeichert wird, und nicht die Anweisungswör­ ter selbst. Nachdem die Adressen für die Zielsequenz in dem FIFO gespeichert sind und bevor das Erfassungswobbeln be­ ginnt, werden diese Adressen verwendet, um die entsprechen­ de tatsächliche Sequenz von Anweisungswörtern abzurufen und zu speichern. Mögliche Verzweigungsaufbauten in der kopier­ ten Zielsequenz werden verändert, um auf das nächste Wort in der Sequenz zu zeigen (das das Wort sein wird, das so­ wieso während der anfänglichen Erfassung der Zielsequenz auftrat). Diese ausführbare Zielsequenz wird in einem re­ servierten Teil eines Programm-SRAM gespeichert, der die Anweisungswörter enthält, die das kompilierte Testprogramm sind. Wenn nachfolgende Systemauslöser auftreten, wird die Testprogrammausführung zeitweilig angehalten, um VOH und Abtastzeitgebungsversatzwerte für den nächsten Schritt bei dem Erfassungswobbeln in Gang zu setzen, wobei der Pro­ grammzähler, der den Programm-SRAM adressiert, auf den Start des reservierten Abschnitts eingestellt wird. So wird, sobald der nächste Schritt bei dem Erfassungswobbeln eingerichtet ist, die Testprogrammausführung mit einer Wie­ derholung der anfänglich erfaßten Zielsequenz fortfahren.
Die Ergebnisse (Empfangsvektoren) jedes Schritts bei dem Erfassungswobbeln werden zeitweise in einem ECR (Fehlerer­ fassungs-RAM) gespeichert (tatsächlich cash-gespeichert). Eine derartige Speicherung von Empfangsvektoren in einem ECR ist ein Normalbetrieb, der jedoch üblicherweise auf be­ stimmte Fehler von Interesse hin konditioniert wird. Hier wollen wir, daß dieselben unabhängig von Fehlern gespei­ chert werden, wobei ein einfacher Mechanismus vorgesehen ist, um dies zu erzielen.
Zusätzlich helfen spezielle Register bei der schnellen Ver­ änderung von Schwellen und einer Abtastzeitgebung von "nor­ mal" zu "gewobbelt", wenn die erfüllte Auslöserbedingung erfaßt wird. Die Technik wird weiter durch ein Anordnen für das Betriebssystem ermöglicht, das die Ausführung des Test­ programms überprüft (und das den Oszilloskop-Modus verwal­ tet), um einen privaten Bereich von Speicher zu haben, der verwendet wird, um die cash-gespeicherten Empfangsvektoren von dem ECR zu entladen, die automatisch während jedes Schritts des Erfassungswobbelns über die Zielsubstanz gespeichert wurden. Es ist dieser Bereich von Speicher, den der Oszilloskop-Modus dann verwendet, um die Signalverläufe für die Signale von Interesse anzusammeln und schließlich zu erzeugen und anzuzeigen.
Das Problem der Testprogrammverifizierung wird durch die Verwendung des Auslösers des Oszilloskop-Modus unterstützt (jedoch wahrscheinlich ohne den Oszilloskop-Betriebs- Modus), um ausgewählte Werte für ausgewählte Fehlerflags in der Umgebung des ausführenden Testprogramms zu blockieren. Dies erzwingt das Erscheinen des zugeordneten Fehlertyps, selbst wenn derselbe eigentlich nicht auftrat. Um sicherzu­ gehen sind die gleichen Fehlerflags geeignet, um an unter­ schiedlichen Positionen in dem Testprogramm unterschiedli­ che Dinge zu bedeuten. Ein Verzögern des Fehlerflags, bis ein bestimmter Teil des Programms erreicht ist, ist, wie der Auslöser verwendet wird. Es ist konfigurierbar, welche Fehlerflags der Auslöser "synthetisiert". Auf diese Weise können die verschiedenen fehlerbezogenen Zweige eines kom­ plizierten Programms durch ein "Gehen" des Auslösers durch das Programm ausgeübt werden, selbst wenn das verwendete DUT absolut gut ist.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beigefügten Zeich­ nungen näher erläutert. Es zeigen:
Fig. 1 ein vereinfachtes Blockdiagramm eines weitgehend rekonfigurierbaren und algorithmisch getriebenen Nicht-flüchtiger-Speicher-Testers, der gemäß der Erfindung aufgebaut ist;
Fig. 2 ein ausgedehntes, vereinfachtes Blockdiagramm des DUT-Testers 6 aus Fig. 1;
Fig. 3 eine Flußdiagrammübersicht der Oszilloskop- Modusaktivität;
Fig. 4 ein detaillierteres Blockdiagramm der Abschnitte des Blockdiagramms aus Fig. 2, die zu einem Aus­ lösen und zu der Erfassung und Ausführung der Zielsequenz gehören; und
Fig. 5 ein detaillierteres Blockdiagramm eines Ab­ schnitts des Blockdiagramms aus Fig. 2, der zum schrittweisen Durchlaufen der Werte von VOH und des Abtastzeitgebungsversatzes während der Durch­ führung eines Erfassungswobbelns gehört.
Mit Bezugnahme auf Fig. 1 ist ein vereinfachtes Blockdia­ gramm 1 eines nicht-flüchtigen Speichertestsystems gezeigt, das gemäß den Prinzipien der Erfindung aufgebaut ist. Ins­ besondere kann das gezeigte System gleichzeitig bis zu 36 einzelne DUTs (Devices Under Test = zu testende Geräte) mit jeweils bis zu 64 Testpunkten zu einem Zeitpunkt testen, mit Vorkehrungen für eine Rekonfiguration, um es Elementen einer Sammlung von Testressourcen zu ermöglichen, zusammen­ gebunden zu werden, um DUTs mit mehr als 64 Testpunkten zu testen. Diese Testpunkte können Positionen auf einem Ab­ schnitt eines integrierten Schaltungswafers sein, der noch nicht vereinzelt und verpackt wurde, oder sie können die Stifte des verpackten Teils sein. Der Begriff "Testpunkt" bezieht sich auf eine elektrische Position, an der ein Si­ gnal angelegt werden kann (z. B. heistungsversorgung, Uh­ ren, Dateneingänge), oder an der ein Signal gemessen werden kann (z. B. ein Datenausgang). In dieser Beschreibung wer­ den die Gebräuche der Industrie befolgt, die Testpunkte als "Kanäle" zu bezeichnen. Die "Sammlung Ton Testressourcen, die zusammengebunden werden sollen" auf die oben Bezug ge­ nommen wurde, können als bis zu 36 Testorte angesehen wer­ den, wobei jeder Testort eine Testortsteuerung (4), einen (64 Kanal-)DUT-Tester (6) und eine (64 Kanal-)Sammlung von Pinelektronik (9), die die tatsächliche elektrische Verbindung zu einem DUT (14) herstellt, umfaßt. In dem Fall, in dem das Testen des DUT 64 oder weniger Kanäle er­ fordert, reicht ein einzelner Testort aus, um Tests an die­ sem DUT durchzuführen, und hier wird beispielsweise ange­ nommen, daß der Testort Nr. 1 (wie er in Fig. 1 erscheint) eine "Einzelortteststation" bildet oder als eine solche wirkt. Wenn dagegen eine Form der vorher erwähnten Rekonfi­ guration wirksam ist, werden zwei (oder mehr) Testorte "verbunden", um als ein größerer äquivalenter Testort mit 128 Kanälen zu wirken. Dementsprechend und unter erneuter Bezugnahme auf ein in Fig. 1 gezeigtes Beispiel wird ange­ nommen, daß die Testorte Nr. 35 und Nr. 36 eine "Zwei-Ort- Teststation" bilden.
Um kurz den entgegengesetzten Fall zu bedenken, sollte nicht angenommen werden, daß ein gesamter Testort benötigt wird, um ein einziges DUT zu testen, oder daß ein einziger Testort nur ein einziges DUT testen kann. Angenommen, ein Wafer würde zwei, drei oder vier (möglicherweise aber nicht notwendigerweise benachbarte) Chips aufweisen, wobei die Summe der Testkanalanforderungen desselben 64 Kanäle oder weniger wäre. Solche DUTs (15a-d) können durch einen einzi­ gen Testort (z. B. Testort Nr. 2, wie in Fig. 2 gezeigt) gleichzeitig getestet werden. Dies wird durch die Univer­ salprogrammierbarkeit jedes Testorts ermöglicht, wie sie durch bestimmte Hardwaremerkmale, die bald an geeigneter Stelle beschrieben werden, verbessert wird. Im Prinzip kann ein Testprogramm, das durch den Testort ausgeführt wird, derart geschrieben werden, daß ein Teil der Ressourcen des Testorts verwendet wird, um eines der DUTs zu testen, wäh­ rend ein Teil verwendet wird, um das andere DUT zu testen. Wenn man schließlich annimmt, daß, falls ein drittes DUT vorliegt, dieses die logische Einheit der ersten beiden wä­ re, wäre man in der Lage, dieses dritte DUT mit einem ein­ zigen Testort zu testen, daher sollte man in der Lage sein, gleichermaßen die "Komponenten-DUTs" desselben zu testen. Ein großer Unterschied ist natürlich, individuell zu ver­ folgen, welches der beiden "Komponenten-DUTs" besteht oder versagt, im Gegensatz zu einer einfachen, einheitlichen Antwort für das "dritte" DUT. Das heißt, es gibt ein Pro­ blem bezüglich der Frage, welcher Abschnitt des "dritten" DUT versagt hat. Es gibt auch andere Anliegen, einschließ­ lich eines Entfernens oder Begrenzens der Treibersignale auf ein schlechtes DUT, eines Verzweigens innerhalb des Testprogramms auf der Basis dessen, welches DUT ein Versa­ gen anzeigt, während gleichzeitig verhindert wird, daß das Testprogramm hoffnungslos mehrfach-verkettet wird. Bestimm­ te einfache Aspekte dieser "Mehrfach-DUT-Teststation"- Fähigkeit bei einem einzigen Testort sind ziemlich einfach, während andere komplex sind. Ein Mehrfach-DUT-Testen sollte nicht mit der Idee des Verbindens von zwei oder mehreren Testorten verwechselt werden.
Abgesehen von diesem Gedanken der Testort-Rekonfiguration gäbe es keinen Unterschied zwischen einem Testort und einer Teststation, und einer dieser Begriffe könnte weggelassen werden. So wie es ist, wird jedoch offensichtlich, daß die Anzahl von Teststationen nicht gleich der Anzahl von Test­ orten sein muß. In der Vergangenheit konnten die Anzahlen unterschiedlich sein, weil die Testorte manchmal unterteilt wurden, um mehr Teststationen für einfaches Mehrfach-DUT- Testen zu erzeugen (DUTs, die nicht komplex genug sind, um einen gesamten Testort zu verbrauchen). Nun kann der Unter­ schied jedoch auch daran liegen, daß die Testorte zusammen verbunden wurden, um Mehrfachort-Test stationen zu bilden (DUTs, die zu komplex für einen einzigen Testort sind).
Nachfolgend wird dann eine Testsystemsteuerung 2 durch ei­ nen Systembus 3 mit bis zu 36 Testortsteuerungen verbunden, deren Namen mit dem Zusatz Nr. 1 bis 36 (4a bis 4z) enden. (Es stimmt, daß die Indexe a bis z nur von 1 bis 26 gehen, und nicht bis 36. Aber diese kleine Abweichung ist im Ver­ gleich zu numerischen Indexen hinter numerischen Bezugszei­ chen vorzuziehen, die wahrscheinlich sehr verwirrend wä­ ren.) Die Testsystemsteuerung 2 ist ein Computer (z. B. ein PC, auf dem NT läuft), der ein geeignetes Testsystemsteuer­ programm ausführt, das sich auf die Aufgabe des Testens nicht-flüchtiger Speicher bezieht. Das Testsystemsteuerpro­ gramm stellt die höchste Abstraktionsebene in einer hierar­ chischen Arbeitsteilung (und Komplexität) zum Ausführen des gewünschten Testens dar. Die Testsystemsteuerung bestimmt, welche Programme durch die unterschiedlichen Testorte aus­ geführt werden, und überwacht auch ein Robotersystem (nicht gezeigt), das die Testsonden und DUTs wie benötigt bewegt. Die Testsystemsteuerung 2 kann auf bestimmte Weisen wirken, die den Gedanken unterstützen, daß einige Testorte program­ miert sind, um als Einzelort-Teststationen zu arbeiten, an­ dere als Mehrfachort-DUT-Teststationen, während andere zu­ sammen verbunden sind, um Mehrfachort-Teststationen zu bil­ den. Selbstverständlich werden unter solchen Umständen un­ terschiedliche Teile getestet, und es ist sehr wünschens­ wert, daß für die unterschiedlichen Teile unterschiedliche Tests verwendet werden. Gleichartig dazu gibt es weder die Anforderung, daß alle Einzelort-Teststauionen die gleiche Art von Teilen testen, noch gibt es eine solche Anforderung für Mehrfachort-Teststationen. Dementsprechend ist die Testsystemsteuerung 2 programmiert, um die Befehle aus­ zugeben, um das benötigte Testort-Verbinden auszuführen und dann die geeigneten Testprogramme für die verschiedenen verwendeten Teststationen aufzurufen. Die Testsystemsteue­ rung 2 empfängt außerdem Informationen über Ergebnisse, die von den Tests erhalten werden, so daß dieselbe die geeigne­ ten Aktionen zum Entsorgen des schlechten Teils durchführen kann und daß dieselbe Protokolle für die verschiedenen Ana­ lysen erhalten kann, die verwendet werden können, um bei­ spielsweise Produktionsprozesse in einer Fabrikumgebung zu steuern.
Das Testsystem selbst ist ein relativ großes und komplexes System, und es ist gebräuchlich, daß dasselbe ein Roboter­ teilsystem verwendet, um Wafer auf eine Stufe zu laden, die dann nacheinanderfolgend eine oder mehrere zukünftige Chips unter Sonden positioniert, die mit der Pinelektronik 9 ver­ bunden sind, woraufhin diese zukünftigen Chips (der Wafer wurde noch nicht vereinzelt) getestet werden. Das Testsy­ stem kann ebenfalls verwendet werden, um verpackte Teile zu testen, die auf einem geeigneten Träger geladen wurden. Je­ der Teststation, die in Betrieb ist, wird zumindest eine Testortsteuerung zugeordnet sein (wie es nachfolgend er­ klärt wird), unabhängig davon, wie viele Testorte verwendet werden, um diese Teststation zu bilden, oder wie viele Teststationen sich an einem Testort befinden. Eine Testort­ steuerung ist ein eingebettetes System, das ein i960- Prozessor von Intel mit 36 bis 64 MB von kombiniertem Pro­ gramm- und Datenspeicher sein kann, der auf einem eigenen Betriebssystem namens VOS (VersaTest-Betriebssystem) läuft, das auch bei früheren Produkten zum Testen nicht-flüchtiger Speicher (z. B. Agilent V1300 oder V3300) verwendet wurde. Für den Moment wird nur die Situation für Einzelort- Teststationen betrachtet. Für den Zweck eines bestimmten Beispiels wird angenommen, daß der Testort Nr. 1 als Test­ station Nr. 1 wirkt, und daß derselbe das WHIZCO-Teil Nr. 0013 testen soll. Die Testbestimmungen umfassen etwa 100 unterschiedliche Typen von Tests (Variieren und Überwachen der Spannungspegel, Pulsbreiten, Flankenpositionen, Verzö­ gerungen, als auch eine große Menge an einfachem Speichern und anschließendem Wiedergewinnen von ausgewählten Informa­ tionsmustern), und jeder Typ von Test umfaßt viele Millio­ nen einzelner Speicherzyklen für das DUT. Auf der höchsten Ebene weisen die Betreiber des Testsystems die Testsy­ stemsteuerung 2 an, die Teststation Nr. 1 zu verwenden, um damit zu beginnen, die WHIZCO 0013 zu testen. Zu gegebener Zeit teilt die Testsystemsteuerung 2 der Testortsteuerung Nr. 1 (4a) (die ein eingebettetes (Computer)-System ist) mit, das zugeordnete Testprogramm, etwa TEST_WHIZ_13, ab­ laufen zu lassen. Falls das Programm innerhalb der Umgebung der Testortsteuerung Nr. 1 bereits verfügbar ist, wird es einfach ausgeführt. Falls nicht, wird es durch die Testsy­ stemsteuerung 2 geliefert.
Im Prinzip könnte nun das Programm TEST_WHIZ_13 vollständig unabhängig sein. Aber wenn es dies wäre, wäre es mit ziem­ licher Sicherheit sehr groß und es kann für den Prozessor des eingebetteten Systems innerhalb der Testortsteuerung 4a schwierig sein, schnell genug zu laufen, um die Tests mit der gewünschten Geschwindigkeit zu erzeugen, oder selbst mit einer Rate, die von einem DUT-Speicherzyklus zu dem nächsten einheitlich ist. Dementsprechend werden Unterrou­ tinetyp-Aktivitäten auf niedriger Ebene erzeugt, die Se­ quenzen von Adressen und zugeordneten Daten, die geschrie­ ben werden sollen oder von einer Leseoperation erwartet werden, nach Bedarf von einem programmierbaren algorithmi­ schen Mechanismus erzeugt, der in dem DUT-Tester 6 positio­ niert ist, der aber synchron mit dem Programm wirkt, das durch das eingebettete System in der Testortsteuerung 4 ausgeführt wird. Dies kann als Exportieren bestimmter un­ terroutineartiger Aktivitäten auf niedriger Ebene und der Aufgabe des Auslösens von DUT-Speicherzyklen zu einem Me­ chanismus (dem DUT-Tester), der näher bei der Hardwareumge­ bung des DUT 14 liegt, angesehen werden. Allgemein gesagt, jedesmal, wenn die Testsystemsteuerung 2 eine Testortsteue­ rung mit einem Testprogramm ausstattet, versorgt dieselbe dann außerdem den zugeordneten DUT-Tester mit geeigneten Implementierungsroutinen auf niedriger Ebene (vielleicht spezifisch für den getesteten Speicher), die benötigt wer­ den, um die Gesamtaktivität auszuführen, die von dem Pro­ grammieren für die Testortsteuerung beschrieben oder benö­ tigt wird. Die Implementierungsroutinen auf niedriger Ebene werden als "Muster" bezeichnet, und dieselben sind im all­ gemeinen mit einem Namen versehen (genauso wie Funktionen und Variablen in Programmsprachen hoher Bbene Namen aufwei­ sen).
Jede Testortsteuerung Nr. n(4) ist durch einen Orttestbus Nr. n(5) mit ihrem zugeordneten DUT-Tester Nr. n(6) gekop­ pelt. Die Testortsteuerung verwendet den Orttestbus 5, so­ wohl um den Betrieb des DUT-Testers zu szeuern, als auch um Informationen von demselben über Testergebnisse zu empfan­ gen. Der DUT-Tester 6 ist in der Lage, die verschiedenen DUT-Speicherzyklen, die in den Testvorschriften enthalten sind, mit hoher Geschwindigkeit zu erzeugen, und derselbe entscheidet, ob die Ergebnisse eines Lesespeicherzyklus so sind wie erwartet. Im wesentlichen spricht derselbe auf Be­ fehle oder Operationscodes ("mit Namen versehene Muster") an, die von der Testortsteuerung gesendet werden, durch Auslösen entsprechender nützlicher Sequenzen von Lese- und Schreib-DUT-Speicherzyklen (d. h. derselbe führt die ent­ sprechenden Muster aus). Konzeptionell ist das Ausgangssi­ gnal des DUT-Testers 6 eine Stimulusinformation, die an das DUT angelegt werden soll, und dasselbe akzeptiert auch An­ sprechinformationen von demselben. Diese Stimu­ lus-/Ansprechinformation 7a verläuft zwischen dem DUT-Tester 6a und einer Pinelektronik Nr. 1 Anordnung 9a. Die Pinelek­ tronikanordnung 9a unterstützt bis zu 64 Sonden, die an das DUT 14 angelegt werden können.
Die oben erwähnte Stimulusinformation ist lediglich eine Sequenz von parallelen Bitmuster (d. h. eine Sequenz von "Sendevektoren" und erwarteten "Empfangsvektoren"), die ge­ mäß den Spannungspegeln einer Familie von Logikelementen, die in dem DUT-Tester verwendet werden, ausgedrückt wird.
Es gibt ein konfigurierbares Abbilden zwischen Bitpositio­ nen in einem Stimulus/Antwort und den Sonden, die zu dem Chip gehen, und dieses Abbilden wird durch den DUT-Tester 6 verstanden. Die einzelnen Bits sind bezüglich ihrer Zeitge­ bung und Flankenplazierung korrekt, aber zusätzlich zu dem Abbilden können sie ebenfalls Spannungspegelumschalten be­ nötigen, bevor sie an das DUT angelegt werden können. Gleichartig dazu kann eine Antwort, die nachfolgend zu ei­ nem Stimulus in dem DUT auftritt, Puffern und "umgekehrtes" Pegelumschalten benötigen, bevor dieselbe als geeignet an­ gesehen werden kann, um zurück zu dem DUT-Tester geführt zu werden. Diese Pegelumschaltaufgaben sind das Gebiet der Pinelektronik 9a. Die Pinelektronikkonfiguration, die zum Testen eines WHIZCO 0013 benötigt wird, wird wahrscheinlich beim Testen eines Teils von der ACME Co. nicht funktionie­ ren, und vielleicht nicht einmal bei einem anderen WHIZCO- Teil. Daher ist offensichtlich, daß die Pinelektronikanord­ nung ebenfalls konfigurierbar sein muß, eine solche Konfi­ gurierbarkeit ist die Funktion der PE- Konfigurationsleitungen 8a.
Die obigen Ausführungen beenden einen kurzen architektoni­ schen Überblick darüber, wie ein einzelner Testort zum Te­ sten eines DUT strukturiert ist. Es folgen nun Themen, die sich ergeben, wenn es viele Testorte gibt, die betrieben werden müssen. Als Einleitung wird ein bevorzugtes Ausfüh­ rungsbeispiel zum Aufbauen eines Testsystems mit mehreren Testorten beschrieben. In vielerlei Hinsicht sind einige der Informationen, die beschrieben werden, eine Frage von Vorlieben auf der Basis von Marktstudien über Kundenvorlie­ ben und Kosten-Nutzen-Analysen. Wie dem auch sei, um eines dieser Dinge zu erstellen, muß man eine bestimmte Wahl treffen, und sobald dies getan ist, ergeben sich bestimmte Konsequenzen, die durch das gesamte System sichtbar sind. Es wird davon ausgegangen, daß es nützlich ist, zumindest auf allgemeine Weise die größeren Umrisse der Hardwareei­ genschaften des Testsystems zu beschreiben. Selbst wenn ei­ nige dieser Eigenschaften zufällig sind, wird die Kenntnis derselben trotzdem eine Anerkennung der verschiedenen Bei­ spiele unterstützen, die verwendet werden, um die Erfindung darzustellen.
Man betrachte zu Beginn vier eher große Kartenkäfige. Außer Leistungszufuhren und Wasserkühlung (Ventilatoren können in einer sauberen Raumumgebung eine Verschmutzungsquelle dar­ stellen) umfaßt jeder Kartenkäfig eine Hauptplatine, eine Vorderfläche und eine Rückfläche. In jeden Kartenkäfig kön­ nen bis zu 9 Anordnungen plaziert werden. Jede Anordnung umfaßt eine Testortsteuerung, einen DUT-Tester und eine Pinelektronik. Nachfolgend wird in groben Zügen darge­ stellt, wie Testortsteuerungen verbunden werden, was einige Busse umfassen wird, die verwendet werden, um Verkettungen (Daisy-Chains) zu erzeugen.
Ein kurzer Exkurs bezüglich des Begriffs "Verkettung" ist an dieser Stelle vielleicht angebracht. Man betrachte die Systemelemente A, B, C und D. Angenommen, dieselben sollen in dieser Reihenfolge verkettet werden. Man könnte sagen, daß es einen Informations- oder Steuerweg gibt, der A ver­ läßt und in D geht, daß B selektiv Verkehr weiterleiten kann, der dann B verläßt und in C geht, und daß C selektiv Verkehr weiterleiten kann, der dann in D geht. Diese glei­ che Art von Anordnungen können auch für Verkehr in der an­ deren Richtung existieren. Verkettungen werden oft verwen­ det, um Prioritätsschemata zu erzeugen, dieselben werden hier verwendet, um Master-/Slave-Beziehungen zwischen ver­ schiedenen Testortsteuerungen zu erzeugen. Diese verkette­ ten Kommunikationsanordnungen werden mit dem Zusatzwort "DSY" statt "BUS" bezeichnet. Somit kann statt auf einen Befehl/Datenbus auf einen Befehl/Daten-DSY Bezug genommen werden. Nun kann der Gedanke, daß Informationen "in B ein­ dringen und selektiv weitergeleitet werden", darauf hindeu­ ten, daß der Verkehr auf einen getrennten Satz von Leitern reproduziert wird, bevor er weitergeleitet wird. Es könnte so sein, aber aus Leistungsgründen ist es eher ein regulä­ rer Bus mit adressierbaren Einheiten. Durch eine program­ mierbare Adreßabbildungsanordnung und die Fähigkeit, stro­ mabwärtige Testortsteuerungen "stillzulegen", kann erreicht werden, daß der einzelne Bus so logisch als eine Mehrzahl von Verkettungen erscheint (d. h. so funktioniert). Schließlich ist offensichtlich, daß die Verkettungen Hoch­ leistungswege für Befehl und Steuerinformationen sind, und daß, wenn sie dies nicht wären, man nicht erwarten könnte, daß eine Master-/Slave-Kombination (Mehrfachort-Teststation) so schnell arbeitet wie ein einzelner Testort. Zugunsten der Verkettungsleistungsfähigkeit muß gesagt werden, daß die verschiedenen DSY ihre jeweiligen Kartenkäfige nicht verlassen. Der Effekt dieser Entscheidung ist, daß einige Beschränkungen auferlegt werden, welche Testorte (und somit auch wie viele) verbunden werden können. Im Prinzip gibt es keinen grundlegenden Bedarf für diese Beschränkung, noch gibt es einen allgemeinen Mangel an technischer Praktikabi­ lität (es könnte durchgeführt werden), es wird lediglich davon ausgegangen, daß das Erweitern der DSYs wesentliche Kosten für einen relativ geringen zusätzlichen Vorteil be­ wirken würde, da bereits 9 Testorte in einem Kartenkäfig bestehen.
Um die Erörterung von Fig. 1 wieder aufzunehmen, werden die verschiedenen Testortsteuerungen 4a-4z betrachtet, die die 4 Kartenkäfige besetzen können, jede mit 9 Testortsteuerun­ gen. Dieselben werden mit 4a-4f, 4g-4m, 4n-4t und 4u-4z be­ zeichnet. (Es macht nichts, daß dies nominal nur 26 Zusätze sind, wie vorher erklärt - der Leser ist eingeladen, sich vorzustellen, daß es irgendwo dort draußen weitere 10 Zu­ satzsymbole gibt.) Eine CMD/DAT DSY 17a (Befehls- und Da­ ten-Daisy-Chain = Befehls- und Datenverkettung) verbindet die Testortsteuerungen 4a-4f, die sich in einem Kartenkäfig befinden, während eine andere CMD/DAT DSY 17b die Testort­ steuerungen 4g-4m in einem anderen Kartenkäfig verbindet. Die gleiche Anordnung besteht für die verbleibenden Karten­ käfige und die Testortsteuerungen 4n-4t bzw. 4u-4z. Es wur­ de vorher angemerkt, daß die DSY die Kartenkäfige nicht verlassen, da das "Schwanzende" eines Busses, das tatsäch­ lich die DSY bildet, einen Kartenkäfig nicht verläßt und der Kopf des nächsten Segments in einem anderen Kartenkäfig wird. Statt dessen geht der Systembus 3 von der Testsy­ stemsteuerung 2 zu allen Testortsteuerungen, und jeder ist in der Lage, an dem Kopf eines DSY-Segments, das den Kar­ tenkäfig nicht verläßt, ein Master zu werden.
Die CMD/DAT DSY 17a-d, die erörtert wurden, existieren zwi­ schen den verschiedenen Testortsteuerungen 4a-4z. Es gibt eine ähnliche Anordnung für die SYNC/ERR DSY 18a-18d und die DUT-Tester 6a-6z. Die Synchronisations- und Fehlerin­ formationen, die durch die SYNC/ERR DSY 18 übertragen wer­ den, ermöglichen es den DUT-Testern, in Übereinstimmung zu funktionieren. Diese beiden Verkettungen (17 und 18) tragen leicht unterschiedliche Typen von Informationen, aber jede existiert als Teil des gleichen allgemeinen Mechanismus zum Verbinden eines oder mehrerer Testorte in eine Teststation.
Nun folgt eine Erörterung von Fig. 2, die eine vereinfachte Blockdiagrammerweiterung des DUT-Testers 6 von Fig. 1 ist, von dem bis zu 36 vorliegen können. Es ist hier ausrei­ chend, nur ein Beispiel derselben zu beschreiben. Ein Blick auf Fig. 2 zeigt, daß dieselbe ziemlich vollgestopft ist, insbesondere für ein "vereinfachtes" Blockdiagramm. Eini­ ges, was sich in dem DUT-Tester 6 befindet und in dem Blockdiagramm dargestellt ist, ist funktionell ziemlich kompliziert und nicht in dieser Form direkt erhältlich. Es ist hier angebracht, zwei Punkte darzulegen. Zunächst ist es der Hauptzweck der Aufnahme von Fig. 2, die Basiseigen­ schaften einer wichtigen Betriebsumgebung innerhalb des ge­ samten nicht-flüchtigen Speichertestsystems 1 zu beschrei­ ben. Die Erfindung(en), die vollständig in Verbindung mit Fig. 3 und nachfolgenden Figuren beschrieben ist, sind ent­ weder Erweiterungen der Mechanismen, die in der folgenden Beschreibung von Fig. 2 dargelegt sind, oder sie sind neue Mechanismen, deren Motivationsvoraussetzung in Fig. 2 zu finden ist. Jedenfalls ist, während dies geschrieben wird, nicht genau bekannt, was davon dem Leser vorliegt. Das der­ zeitige Ziel ist es, einen vereinfachten und doch informa­ tiven Ausgangspunkt für zahlreiche unterschiedliche detail­ lierte Beschreibungen von unterschiedlichen bevorzugten Ausführungsbeispielen zu liefern, so daß jede derselben so genau wie angemessen sein kann (im Gegensatz zu einer "Rie­ sen"-Spezifikation, die alles über jede unterschiedliche Erfindung offenbart). Der zweite Punkt ist, daß das ausge­ dehnte oder erweiterte Material, obwohl es im allgemeinen in Gesamtübereinstimmung mit Fig. 2 ist, Informationen ent­ halten kann, die nicht genau mit der vereinfachten Version übereinstimmen. Dies bedeutet nicht, daß ein Fehler vor­ liegt oder daß die Dinge entscheidend widersprüchlich sind, sondern dies tritt auf, weil es manchmal schwierig oder un­ möglich ist, etwas so zu vereinfachen, daß es das exakte Abbild in Miniatur ist. Die Situation ist eher so wie bei Landkarten. Eine Standardgrößenstraßenkarte von Colorado zeigt, daß man, wenn man auf der I-70 nach Osten fährt, auf der I-25 bei Denver nach Norden fahren kann. Dies sieht aus wie eine Linkskurve. Und obwohl es tatsächlich eine Links­ kurve war, ist es jetzt keine, und eine detaillierte Karte dieser Kreuzung wird eine Sequenz von Teilkurven und dazwi­ schenliegenden Straßenabschnitten zeigen. Aber niemand wür­ de sagen, daß die Standardgrößenstraßenkarte falsch ist, sie ist für ihre Abstraktionsebene korrekt. Gleichartig da­ zu und trotz der ziemlich überfüllten Erscheinung ist Fig. 2 tatsächlich eine Vereinfachung, die mit einer mittleren Abstraktionsebene funktioniert, aber einige anscheinende Linkskurven sind in Wirklichkeit einfach keine Linkskurven.
Wie es in Fig. 1 gezeigt ist, ist das Haupteingangssignal an dem DUT-Tester 6 ein Fall des Testortbusses 5, dessen Ursprung in der Testortsteuerung 4 liegt, die dem Fall des betreffenden DUT-Testers 6 zugeordnet ist. Der Testortbus 5 ist mit einer Mehrfachbus-Steuerung 88 gekoppelt, die einen Verkehr auf dem Testortbus in einen Verkehr auf einem Ring­ bus 85 oder einem VT-Bus 89 umwandelt. Der Ringbusverkehr kann auch in einen VT-Busverkehr umgewandelt werden, und umgekehrt. Fast alles in Fig. 2 ist Teil einer integrierten Schaltung eines großen Maßstabes; die (unten beschriebene) Zeitgebungs-/Formatierungs- & Vergleichsschaltung 52 ist in der Tat acht solche ICs, obwohl wir sie der Kürze halber als eine Entität zeigen. Bis auf die diversen Ext. DRAMs (von denen manche ebenfalls Teil des inneren Testspeichers 87 sind - siehe Fig. 3) ist der Großteil des Restes des Ma­ terials in Fig. 2 Teil einer weiteren großen IC, die als APG (automatischer Mustergenerator) bezeichnet wird. Der Ringbus 85 ist ein Mehrzweck-Zwischenmechanismus- Kommunikationspfad zum Konfigurieren der Hauptelemente in dem APG-Abschnitt des DUT-Testers 6, und zum Einstellen von Betriebsmodi usw. Zwischen diversen Elementen des APG lie­ gen ferner diverse zweckgebundene, sehr breite Hochge­ schwindigkeitspfade vor. Der VT-Bus 89 ist ein IC-Zu-IC-Bus zur Verwendung in dem DUT-Tester selbst.
Der Ringbus 85 ist der Mechanismus, durch den die Testort­ steuerung mit dem APG-Abschnitt des DUT-Testers 6 kommuni­ ziert. Der Ringbus 85 ist mit einem Mikrocontroller- Sequenzer 19 gekoppelt, der mit einem Spezialmikroprozessor verglichen werden kann. Unter Verwendung einer Adresse, die durch eine Nächste-Adresse-Berechnungseinrichtung 102 er­ zeugt wird, ruft dieselbe Anweisungen von einem Programm ab, das in einem Programmspeicher gespeichert ist, der ent­ weder in dem Mikrocontroller-Sequenzer 6 (PGM SRAM 20) ent­ halten sein kann oder außerhalb desselben sein kann (EXT. DRAM 21). Obwohl es so scheint, daß diese beiden Spei­ cher von einer im wesentlichen logischen gemeinsamen Adres­ se 63 adressiert werden, die als ein Programmzähler (oder eine Anweisungsabrufadresse) dient und beides kann eine Programmierquelle sein, die ausgeführt werden muß, ist fol­ gendes zu beachten: (1) nur einer der Speicher führt Anwei­ sungsabrufspeicherzyklen während jeder Zeitperiode durch, und (2) in der Tat werden sie durch elektrisch unterschied­ liche Signale adressiert. Der SRAM ist schnell und ermög­ licht einen wirklichen Direktzugriff, aber verbraucht in­ nerhalb des Mikrocontroller-Sequenzers 19 (der ein Teil der großen APG-IC ist) wertvollen Platz, daher ist seine Größe beschränkt. Der externe DRAM kann in einstellbaren Ausmaßen von beachtlicher Menge geliefert werden, ist jedoch nur schnell, wenn in aufeinanderfolgenden Blöcken auf denselben zugegriffen wird, die lineare Ausführung und keine Verzwei­ gung umfassen. Das Programmieren in dem SRAM 20 ist mei­ stens am intensivsten algorithmisch, während der EXT. DRAM 21 am besten für Material geeignet ist, das nicht leicht durch algorithmische Prozesse erzeugt werden kann, wie z. B. Initialisierungsroutinen und zufällige oder unregelmäßi­ ge Daten.
Die Nächste-Adresse-Berechnungseinrichtung 102 kann ein Ab­ zweigen in dem Testprogramm, das gerade ausgeführt wird, implementieren, als Antwort auf entweder unbedingte Sprung­ anweisungen oder bedingte Sprung- oder bedingte Unterrouti­ ne-Anweisungen, die durch diverse Programmsteuerflags (25), andere Flags (55), und bestimmte andere Signale bedingt sind, die der Deutlichkeit halber separat gezeigt sind (DFE 0 : 3 103 und DPE 0 : 3 104) und die für einen Mehrfach-DUT- Betrieb bereitgestellt werden.
Das Anweisungswort, das durch den Mikrocontroller-Sequenzer 19 ausgeführt wird, ist relativ breit: 208 Bits. Es besteht aus 13 16-Bit-Feldern. Diese Felder stellen oft abgerufene Anweisungsinformationen für Mechanismen dar, die außerhalb des ordnungsgemäßen Mikrocontroller-Sequenzers liegen. Sol­ che Felder sind für ihre zugeordneten Mechanismen reser­ viert. Ein Satz von ALU-Befehlen 22 ist an eine Sammlung von 8 16-Bit-ALUs 24 angelegt, während andere an verschie­ dene andere Mechanismen verteilt werden, die durch den DUT- Tester verteilt sind. Diese letztere Situation ist durch die Linien und die Bezeichnung "Verschiedene Steuerungswer­ te & Anweisungen" 42 dargestellt.
Die 8 16-Bit-ALUs (24) weisen jeweils ein herkömmliches Re­ pertoire an arithmetischen Anweisungen auf, die um zugeord­ nete 16-Bit-Ergebnisregister aufgebaut sind (jede ALU um­ faßt außerdem mehrere andere Register). Drei dieser Ergeb­ nisregister und deren zugeordnete ALUs sind zum Erzeugen von X, Y und Z Adreßkomponenten 27, die verschieden zu ei­ ner vollständigen Adresse kombiniert werden, die an das DUT geliefert wird. Zwei weitere der 8 ALU/Register (DH und DL) sind vorgesehen, um zu der algorithmischen Erzeugung von 32 Bit-Datenmustern 28 beizutragen, die zwischen einem höchstwertigen Abschnitt (DH) und einem niedrigstwertigen Abschnitt (DL) aufgeteilt sind. Die letzten drei ALU/Register (A, B, C) werden als Zähler verwendet und tra­ gen zu der Herstellung von verschiedenen Programmsteue­ rungsflags 25 bei, die zur Programmsteuerung und Verzwei­ gung bei der Vervollständigung einer programmatisch spezi­ fizierten Anzahl von Iterationen oder anderen numerischen Bedingungen beitragen. Diese Programmsteuerungsflags 25 werden zu dem Microcontroller-Sequenzer 19 zurückgesendet, wo sie den Wert der Anweisungsabrufadresse (die durch die Nächste-Adresse-Berechnungseinrichtung 102 erzeugt wurde) auf Arten und Weisen beeinflussen, die denjenigen vertraut sind, die etwas von mikroprogrammierten. Ausführungsmecha­ nismen verstehen. Es gibt außerdem verschiedene andere Flags 55, die ebenfalls verwendet werden können, um eine Programmverzweigung zu beeinflussen. Diese haben ihren Ur­ sprung zusammen mit verschiedenen anderen Mechanismen in dem DUT-Tester 6, die durch die unterschiedlichen Felder des abgerufenen Anweisungsworts gesteuert werden. Ein spe­ zifisches zusätzliches Flag ist ausdrücklich als ein ge­ trenntes Element gezeigt: PD_ERR 90. Es wird an PGM SRAM 20 geliefert, stammt von dem Nachdecodierungsmechanismus 60 und zeigt an, daß der Nachdecodierungsmechanismus 60 einen Fehler entdeckt hat. Ein weiteres derartiges Flag ist VEC_FIFO_FULL 26. Bei einer anderen, weniger detaillierten Zeichnung kann dasselbe mit den anderen Flags 55 zusammen­ gefaßt werden. Hier wurde es getrennt, um dazu beizutragen, einen Aspekt des Betriebs des Microcontroller-Sequenzers 19 zu erklären.
Das VEC_FIFO_FULL hält (temporär) die weitere Programmaus­ führung durch den Mikrocontroller-Sequenzer 19 an. Es lie­ gen viele Pipelinestufen zwischen den Anweisungen, die durch den Mikrocontroller-Sequenzer 19 abgerufen werden, und dem Mechanismus, der schließlich Testvektoren ausgibt, die an das DUT angelegt werden sollen. Außerdem sind ein Teil des Gepäcks, das einen Vektor begleitet, während der­ selbe sich in die Richtung bewegt, um das DUT angelegt zu werden, Informationen, die die Rate des eventuellen Anle­ gens des Vektors betreffen, oder die Dauer jedes Vektors. Somit muß die Rate des Anlegens des Vektors an das DUT nicht konstant sein und insbesondere kann eine Gruppe von Vektoren länger zum Anlegen benötigen als zum Erzeugen. Der Microcontroller-Sequenzer führt das Programmieren einfach mit seiner maximalen Rate aus. Aber selbstverständlich muß die Rate des "Vektorverbrauchs" im Durchschnitt gleich sein wie die Rate der "Vektorherstellung", sonst müßte die Pipe­ line unbegrenzt elastisch sein. Es gibt einen Vektor FIFO 45 an dem Ausgang des Adreßabbilders 29, der nachfolgend erörtert wird, und derselbe dient als eine elastische Kapa­ zität in der Pipeline. Das Signal VEC_FIFO_FULL wird ver­ wendet, um zu verhindern, daß die begrenzte Anzahl von Stu­ fen in der Pipeline überschritten wird, durch Bewirken ei­ nes temporären Stillstands bei der Herstellung von neuen Vektoren an dem Kopfende der Pipeline.
Nachfolgend werden die (3 × 16 = 48 Bits von) X, Y und Z Adreßkomponenten 27 an einen Adreßabbilder 29 angelegt, dessen Ausgangssignal eine im voraus ausgewählte beinahe beliebige Neuanordnung der Adreßwerte in dem sortierten 48- Bit-Adreßplatz ist. Als Ausgangspunkt zum Anerkennen des­ selben nehme man an, daß der Adreßabbilder 29 ein Speicher ist, der einen 48-Bit-Adreßplatz vollständig besetzt, und daß derselbe an jeder Adresse einen 48-Eit-Wert hält. (Vo­ rübergehend ist nicht zu beachten, daß ein solcher Speicher - zumindest heutzutage - die Größe eines großen Kühl­ schranks hätte.) Wenn man von einem solchen Speicher aus­ geht, könnte eine Nachschlagtabelle implementiert werden, die jede angelegte Adresse in einen anderen, beliebig aus­ gewählten 48-Bit-Wert abbilden könnte, der dann als eine Austauschadresse verwendet werden könne. Der Grund dafür, daß ein solches Adreßabbilden wünschenswert ist, ist, daß die X-, Y- und Z-Adreßkomponenten im allgemeinen eine nütz­ liche Bedeutung im Zusammenhang der internen Architektur eines speziellen DUT aufweisen, die höchstwahrscheinlich nicht mit einem großen linearen Decodierer implementiert ist. Die Gedanken von Zeilen, Spalten und Schichten, Blöc­ ken oder Seiten können für den Testingenieur sehr nützlich sein, und Fehler, die in Positionen auftreten, die physika­ lisch nahe beieinander liegen, können eine entsprechende Nähe ihrer X-, Y- und Z-Adressen aufweisen. Solche Muster in den Testergebnissen können wertvoll sein beim Erkennen dessen, was falsch ist, und bei dem Versuch, dies zu repa­ rieren, egal ob es auf der Entwicklungsebene oder einer Herstellungsebene zum Neuprogrammieren eines Teils ist, um den Betrieb eines defekten Abschnitts mit dem eines zusätz­ lichen Abschnitts zu überbrücken. Aus diesem Denken ergeben sich zwei Punkte. Der erste ist das Einschränken der 48 Bits zu der tatsächlichen Anzahl von Bits (etwa 32 oder vielleicht 16), die an das DUT angelegt werden sollen. Nachfolgend wird kurz erwähnt, wie das Einschränken durch­ geführt wird, und es wird im großen und ganzen durch Weg­ nehmen von soundsovielen Bits von X, soundsovielen von Y und den Rest von Z durchgeführt. Aber nicht ausschließlich, und dies ist der zweite Punkt, weil bestimmte Adressen in­ nerhalb einer Schaltungsanordnung liegen können, die ein Links-für-Rechts (oder Links-für-Rechts und Oben-für-Unten) Spiegelbild eines weiteren Abschnitts der Schaltungsanord­ nung ist. Dies hat den Effekt der Neuanordnung dessen, was die Bits bedeuten, abhängig davon, welche aufeinanderfol­ genden Adreßwerte innerhalb dieser Schaltungsanordnung in physikalischer Reihenfolge sind. Diese Chiplayouteigen­ schaft kann oft auftreten, und es kann gut der Fall sein, daß die Tatsache, wie eine Gruppe von Bits, beispielsweise y, interpretiert wird, von dem begleitenden Wert von ande­ ren, beispielsweise Z-Bits, abhängen kann. Der Adreßabbil­ der 29 ist vorgesehen, um es den rohen X-, Y- und Z- Adressen zu ermöglichen, "neu gepackt" zu werden, um dies zum Vorteil derer zu reflektieren, die Speicher mit solchen internen architektonischen Anordnungen testen würden. So wie es tatsächlich durchgeführt wird, ist der Adreßabbilder 29 aus einer relativ großen Anzahl von miteinander verbun­ denen Multiplexern aufgebaut. Derselbe kann das vollständig beliebige Nachschlagetabelle-Verhalten eines voll besetzten Speicherdecodierschemas implementieren, wie es oben zu Er­ klärungszwecken temporär angenommen wurde. Derselbe kann jedoch Teilfelder der X-, Y- und Z-Adreßkomponenten wie be­ nötigt neu anordnen, insbesondere, da es jetzt einen weite­ ren Mechanismus gibt, der das Einschränken von 48 Bits zu der tatsächlich benötigten Anzahl durchführt. Der Adreßab­ bilder 29 enthält außerdem drei 16-Bit(Adreß-)Nachschlage­ tabellen, die es demselben ermöglichen, beliebiges be­ schränktes Abbilden innerhalb lokaler Bereiche durchzufüh­ ren.
Das abgebildete Adreßausgangssignal 30 des Adreßabbilders 29 wird als eine Adresse an diverse Pufferspeicher und/oder Tag-RAMs 31A-B und an einen Fehlererfassungs-RAM 1/2 (32A/B) angelegt, welche, obwohl sie getrennte Funktionen aufweisen, trotzdem als auswählbare Teile in den vier Spei­ chersätzen, die kollektiv den inneren Testspeicher 37 bil­ den, implementiert sein können. Das abcrebildete Adreßaus­ gangssignal 30 wird ebenfalls als ein Eingangssignal an ei­ ne Adreßbitauswahlschaltung 37 angelegt, deren Multiplexie­ rungsfunktion nachfolgend beschrieben wird. Der innere Testspeicher kann konfiguriert sein, um viele Fälle diver­ ser RAM-basierter Speicherstrukturen, die für verschiedene Funktionen verwendet werden, zu enthalten. Dies wird be­ werkstelligt, indem erklärt wird, daß bestimmte Abschnitte der verschiedenen Speichersätze für die zugeordneten Zwecke verwendet werden sollen. In Fig. 2 ist eine solche Anord­ nung gezeigt; die Anordnungen können mit dem Fortschreiten des Testens geändert werden, und diese ganze Angelegenheit der Verwendung von Speichersätzen sollte als sehr dynamisch angesehen werden. Keiner der Bestandteile des inneren Test­ speichers (z. B. der Fehlerfassungs-RAMs 32A-B) sind dauer­ hafte, feste Hardwareeinrichtungen. Dauerhaft sind die vier Speichersätze. Welcher Teil welches Speichersatzes zu einem bestimmten Zeitpunkt ein Fehlererfassungs-RAM ist (wenn überhaupt einer definiert ist), hängt davon ab, welche Kon­ figuration eingerichtet wurde.
Nachfolgend werden die Pufferspeicher 31A und 31B betrach­ tet. Ihre Funktionen bestehen darin, Datenmuster 33 und Adressen 34 beizubehalten, die an das DUT angelegt werden können. Diese sind tatsächliche getrennte Ausgangssignale von ihren zugeordneten Pufferspeichern, obwohl diese Puf­ ferspeicher nicht "Dual-Port-Speicher" sind, sondern vorzugsweise aus Teilen zweier unterschiedlicher Speichersätze bestehen. Um dem zu entsprechen, ist es bevorzugt, daß gespeicherte Daten 33 in einem Speichersatz gespeichert werden, während gespeicherte Adressen 34 in einem anderen gespeichert werden. Außerdem wurde kein expliziter Mechanismus zum Schrezben auf einen Pufferspeicher gezeigt. Eine Art und Weise, wie dies bewerkstelligt werden kann, besteht aus einer adressierten Busoperation, die durch eine Testortsteuerung 4 auf Befehl des Programms, die dieselbe ausführt, ausgelöst wird. Es gibt einen darunterliegenden "Versorgungsdienstleistungs"- Bus, der als Ringbus 85 bezeichnet wird, der zu fast allem in Fig. 2 führt (bei dem die meisten Visitationen nicht gezeigt sind - da dies immense Unordnung in die Zeichnung bringen würde). Eine andere und schneller Art und Weise, Informationen in die Speichersätze zu schreiben, ist im Zusammenhang mit Fig. 3 beschrieben.
Die Fehlererfassungs-RAMs 32A-B werden durch die gleiche Adresse adressiert, die an die Pufferspeicher angelegt wird, und speichern Informationen über Fehler oder rufen diese ab, wobei diese Operationen in Verbindung mit einer Nachdecodierschaltung durchgeführt werden, die nachfolgend erörtert wird. Wie bei den Wegen 33 und 34 von den Puffer­ speichern 31A-B sind die Wege 62A-D (von dem Fehlererfas­ sungs-RAM1 32A) vorzugsweise multiplexierte Ausgänge von einem Teil eines Speichersatzes (der konfiguriert ist, um als ein Fehlererfassungs-RAM zu arbeiten), gemäß Konfigura­ tionsinformationen, die durch den Ringbus (nicht gezeigt) verteilt werden.
Es ist anzumerken, daß der Daten-MUX 35 als Eingangssignale die gespeicherten Datenausgangssignale 33 von dem Puffer­ speicher 31A umfaßt, und auch Daten 28 von den Registern DR und DL in der Sammlung 24 von ALUs. Der Daten-MUX 35 führt gemäß den Werten 36, die in dem PGM-SRAM 20 gespeichert sind, eine anfängliche Auswahl durch, welches dieser Ein­ gangssignale (28, 32) als sein Ausgangssignal 38 darge­ stellt wird, das, wenn es nicht modifiziert wird, wie als nächstes beschrieben wird, dann als eine der beiden Vektor­ komponenten an eine Sendevektorabbil­ der/Seriellumsetzer/Empfangsvektorvergleichsdatenschaltung 40 angelegt wird (die andere Komponente ist das Ausgangssi­ gnal 39 der Adreßbitauswahlschaltung 37.)
Die Schaltung 40 kann drei vektorbezogene Funktionen durch­ führen: Zusammensetzen von Vektorkomponenten (38, 39) in eine sortierte logische Darstellung eines gesamten Vektors, der an das DUT angelegt (übertragen) werden soll, Anlegen einer beliebigen dynamischen Korrespondenz (Abbilden) zwi­ schen den sortierten Bits der logischen Darstellung des Sendevektors und der tatsächlichen physikalischen Kanalan­ zahl der Pinelektronik (d. h. welche Sondenspitze) das DUT für dieses Signal (d. h. das Bit in dem Vektor) kontaktie­ ren wird, und Kooperieren mit dem Kompilierer bei der Un­ terteilung eines gesamten logischen Vektors in Stücke, die getrennt und in Reihenfolge (Seriellumsetzung) für DUTs an­ gelegt werden sollen, die so etwas zulassen. Welche dieser Funktionen durchgeführt wird, wird durch Steuersignale von einem SRAM 41 bestimmt, der außerdem gemäß einem Feld in der 208-Bit-Anweisung, die durch der Mikrocontroller- Sequenzen 19 abgerufen wird, adressiert wird.
Ebenfalls in 48965 00070 552 001000280000000200012000285914885400040 0002010217303 00004 48846 der Schaltung 40 enthalten ist ein Abschnitt einer DUT-Deaktivierungslogik 90. Ihr Zweck besteht darin, auf diverse Bedingungen zu reagieren, von denen manche sta­ tisch, manche von Testergebnissen abhängig sind, die jedoch alle programmatisch definiert sind, die anzeigen, welches DUT bzw. welche DUTs, von insgesamt vier Stück derselben, zu deaktivieren sind. Diese Angaben werden durch vier Si­ gnale DD 0 : 3 44b getragen (DUT-Deaktivierung für DUT Null für DUT Eins, usw.). Dies geschieht als Unterstützung eines Mehrfach-DUT-Testens an einem Testort. Das Ausgangssignal der Schaltung 40 ist ein bis zu 64-Bit-Vektor 44a, der zu­ sammen mit den DUT-Deaktivierungssignalen 44b an einen Vek­ tor FIFO 45 angelegt wird, der, wenn er voll ist, das Si­ gnal VEC_FIFO_FULL 26 erzeugt, dessen Bedeutung und Verwen­ dung oben erörtert wurde. Der Vektor an der Spitze des Vek­ tors FIFO 45 wird beim Empfang eines Signals VEC_FIFO_UNLOAD 47, das an einem Periodengenerator 49 (der nachfolgend erörtert wird) entsteht, von demselben ent­ fernt. Solche entfernten Vektoren (46) werden an eine Zeit­ gebungs-/Formatierungs- und Vergleichsschaltung 52 angelegt, die über den zugeordneten Fall der Pinelektronik 9 mit dem DUT verbunden ist. Das heißt, jeder Fall (der diversen Te­ storte) der Pinelektronik 9 empfängt gesendete und empfan­ gene Vektoren 7 und Pinelektronikkonfigurationsinformatio­ nen 8 von ihrer zugeordneten Zeitgebungs-/Formatierungs- und Vergleichsschaltung 52.
Die Zeitgebungs-/Formatierungs- und Vercrleichsschaltung 52 ist mit dem VT-Bus 89 gekoppelt, um Konfigurations- und Steuerinformationen zu empfangen. Man erinnere sich, daß die Zeitgebungs-/Formatierungs- und Vergleichsschaltung 52 tatsächlich acht ICs ist, die wir für unsere Zwecke als ei­ ne einzige Entität behandeln.
Die Zeitgebungs-/Formatierungs- und Vergleichsschaltung 52 umfaßt einen internen SRAM 54, der durch die gleiche Anwei­ sungsadresse ("A" in dem kleinen Kreis) adressiert wird wie der Programm-RAM 20 des Mikrocontroller-Sequenzers 19.
(Statt dem internen SRAM 54 kann ein externer DRAM 53 ver­ wendet werden, wird jedoch lokal durch einen inkrementier­ ten Zähler, der nicht gezeigt ist, adressiert.) Der interne SRAM 54 (oder externe DRAM 53) unterstützt die Herstellung von Treiber- und Vergleichszyklen, die zugeordnete Formate aufweisen. Die Treiberzyklen legen unter Verwendung eines vorgewählten Formats, das durch den RAM 54 oder 53 gelie­ fert wird, einen Sendevektor an das DUT an. Die Vergleichs­ zyklen empfangen einen Vektor, der von ciem DUT dargestellt wird und untersuchen denselben, ebenfalls gemäß einem vor­ gewählten, von einem RAM gelieferten Format, um zu bestim­ men, ob er mit vorher gesendeten Vergleichdaten überein­ stimmt. Sowohl die Treiber- als auch die Vergleichszyklen sind bezüglich ihrer Dauer einstellbar, und bezüglich des­ sen, ob eine Belastung angelegt ist oder nicht, wann diese angelegt ist und wann Daten zwischengespeichert oder abge­ tastet werden, ob ein Signal eine Rückkehr-Zu-Null dar­ stellt oder nicht, ob ein getriebenes Signal mit seinem Komplement zu umgeben ist, usw., entsprechend einstellbar. (Diese Optionen sind die diversen oben genannten Formate.)
Der durch die Zeitgebungs-/Formatierungs- und Vergleichs­ schaltung 52 erzeugte Vergleich umfaßt Informationen dar­ über, auf der Basis eines jeweiligen Kanals, ob ein Kanal versagte, weil ein logischer Wert falsch war (ein funktio­ naler Fehler) und/oder weil seine elektrischen Eigenschaf­ ten außerhalb annehmbarer Grenzen liegen (ein parametri­ scher Fehler). Es ist zudem bekannt, wenn ein Mehrfach-DUT- Testen durchgeführt wird, welche Kanäle welchen DUTs zuge­ ordnet sind. Dies ermöglicht die Erzeugung der vier Signale DFE 0 : 3 (DUT Nr. Funktionsfehler) 103 und der vier Signale DPE 0 : 3 (DUT Nr. Parameterfehler) 104.
Der durch die Zeitgebungs-/Formatierungs- und Vergleichs­ schaltung 52 durchgeführte Vergleich erzeugt ferner einen 64-Bit-Wert 56, der an einen Empfangsvektorumkehrabbil­ der-/Serien-Parallelumsetzer 57 angelegt wird, dessen Funk­ tion als die logische Umkehrung der Schaltung 40 betrachtet werden kann. (Der Betrieb der Schaltung 57 wird durch einen SRAM 58 gesteuert, der der Steuerung der Schaltung 40 durch den SRAM 41 entspricht.) Danach wird das Ausgangssignal 59 der Schaltung 57 an die Nachdecodierschaltung 60 und auch an den Fehlererfassungs-RAM1 32A angelegt. Derzeit reicht es aus, zu sagen, daß die Nachdecodierschaltung 60 über programmatische Kriterien sowohl ankommende Fehlerinforma­ tionen 59 und Fehlerinformationen, die zuvor in dem Fehle­ rerfassungs-RAM1 32A gespeichert wurden, untersuchen kann, um komprimierte und leichter interpretierbare Fehlerinfor­ mationen zu erzeugen, die dann über den Weg 61 zurück in den anderen Fehlererfassungs-RAM2 32B gespeichert werden können. Ein Beispiel wäre es, eine Zahl zu erzeugen, wie oft ein Fehler in einem speziellen Bereich von Adressen auftrat, wobei diese Informationen nützlich wären für die Entscheidung, wann durch Aktivieren von Ersatzschaltungen eine Reparatur auf dem Chip versucht werden soll.
Nachfolgend wird der Periodengenerator 49 und sein zugeord­ neter Zeitgebungs-SRAM 51 beschrieben. Diese sprechen auf ein 8-Bit-Signal T_SEL 43 an, das für jede 208-Bit- Anweisung, die durch den Mikrocontroller-Sequenzer 19 abge­ rufen wird, eine Dauer für den zugeordneten Betrieb der Zeitgebungs-/Formatierungs- und Vergleichsschaltung 52 be­ stimmt. T_SEL 43 ist ein Element der verschiedenen Steue­ rungswerte und Anweisungen 42, die durch die unterschiedli­ chen Felder in der abgerufenen Anweisung dargestellt sind. Als ein 8-Bit-Wert kann dieselbe 265 unterschiedliche Dinge darstellen oder codieren. In diesem Fall sind diese "Dinge" 28-Bit-Werte, die in dem Zeitgebungs-SRAN 51 gespeichert sind und durch T_SEL adressiert werden. Jeder adressierte 28-Bit-Wert (23) spezifiziert eine gewünschte Dauer mit ei­ ner 19,5 Pikosekunden-Auflösung. Die Sequenz von darauf zu­ gegriffenen 28-Bit-Dauerwerten (23) ist in einer Periode FIFO 50 gespeichert, so daß die einzelnen Elemente dieser Sequenz bei der Wiedergewinnung des beabsichtigten entspre­ chenden Vektors, der in dem Vektor FIFO 45 gespeichert ist, wiedergewonnen und synchron angelegt werden.
Ein grobes Zeitgebungswertfeld in dem ältesten Eintrag in dem FIFO 50 überträgt Dauerinformationen mit einer Auflö­ sung von 5 Nanosekunden und erzeugt davon ein Signal VEC_FIFO_UNLOAD 47, das den nächsten Sendevektor von dem Vektor FIFO 45 zu der Zeitgebungs-/Formatierungs- und Ver­ gleichsschaltung 52 überträgt. Ein Begleitsignal Zeitge­ bungsrest 48 wird ebenfalls an die Schaltung 52 angelegt. Dort wird die endgültige Auflösung auf 19,5 Pikosekunden durchgeführt.
Das Obige schließt eine einleitende Erläuterung der Gesamt­ natur des Speichertesters ab. Damit als Ausgangspunkt wen­ den wir unsere Aufmerksamkeit nun auf den Oszilloskop-Modus und seine verwandten Themen.
Es wird nun Bezug auf Fig. 3 genommen, die eine Übersicht, in einer Flußdiagrammform, der Hauptaktionen ist, die wäh­ rend des Betriebs in dem Oszilloskop-Modus unternommen wer­ den. Das Flußdiagramm 64 aus Fig. 3 weist zwei Hauptab­ schnitte auf: 65 und 66. Der erste Abschnitt 65 führt eine anfängliche Oszilloskop-Modus-Aktivität durch, während der zweite Abschnitt 66 eine Erfassungswobbelaktivität durch­ führt. Wir beginnen mit der anfänglichen Aktivität, die durch den Abschnitt 65 durchgeführt wird. Der Zweck dessel­ ben besteht darin, eine Auslöserspezifikation einzustellen, eine Zielsequenz zu erlangen und eine wiederholt ausführba­ re Version derselben zu erzeugen.
Eine Position 67 stellt den Eintritt in den Rest des Fluß­ diagramms 64 von einer anderen Aktivität dar, woraufhin ein Schritt 68 das Einrichten einer Auslöserspezifikation, ge­ folgt durch das Laufenlassen des Testprogramms, ist. Bei dem vorliegenden bevorzugten Ausführungsbeispiel umfaßt die Auslösespezifikation eine ALU-Komponente, die eine "UND"- Bedingung bezüglich des Inhalts der Register X, Y, Z, DH, DL, A, B und C ist. Jeder Teilsatz dieser Register, ein­ schließlich alle oder keiner derselben, kann in der ALU- Komponente der Auslöserspezifikation enthalten sein. Für jedes Register kann jeder Teilsatz seiner Bits, einschließ­ lich alle oder keiner derselben, bestimmt sein. Die ALU- Komponente der Auslöserspezifikation wird jedesmal erfüllt, wenn alle bestimmten Bits aller ausgewählten Register wie spezifiziert sind. Die Auslöserspezifikation kann auch eine Programmkomponente aufweisen, dahingehend, daß es möglich ist zu bestimmen, daß nur bestimmte Teile (oder alle) des Programms aktivieren, daß der Auslöser erfüllt ist. Die Auslöserspezifikation kann auch eine Verzögerung umfassen (vorzugsweise ausgedrückt in DUT-Zyklen, aber möglicherwei­ se auch als ein absolutes Zeitintervall), wobei dies bedeu­ tet, die Erfüllung der geeigneten Auslöserspezifikation und das Ausgeben eines Auslösesignals, um eine ausgelöste Akti­ vität zu beginnen, zu trennen.
Es gibt eine Vielzahl von Weisen, auf die sich die Auslö­ serspezifikationsaktivität bei dem Benutzerschnittstellen­ pegel manifestieren kann. Die bevorzugte Weise besteht für das Betriebssystem (läuft auf der Testsystemsteuerung 2) darin, ein Fenster zu liefern, in dem ein Oszilloskop- Modus-Steuerungsprozeß laufen soll, wobei der Benutzer die Testortsteuerung, das DUT und das Programm und ALU- Komponenten der Auslöserspezifikation, sowie die Kanäle, für die Signalverlaufanzeigen erzeugt werden sollen, spezi­ fizieren würde. Sobald all dies geschehen ist, wird das Testprogramm gestartet.
Bei einem Schritt 69 gibt es einen Wartepfad 70, der auf­ tritt, bis die Testprogrammaktivität bewirkt, daß die Aus­ löserspezifikation erfüllt ist (und bis eine spezifizierte Verzögerung ebenfalls erfüllt ist), woraufhin Schritt 69 zu einem Schritt 71 übergeht. An diesem Punkt bleibt die Schwellen-VOH ungestört, wobei es dem Programm ermöglicht wird, für 128 weitere DUT-Zyklen seinen natürlichen Lauf zu nehmen. Diese 128 DUT-Zyklen sind die Zielsequenz, für die die Signalverläufe erzeugt werden sollen. Während der an­ fänglichen Ausführung der Zielsequenz werden die nächsten 128 Adressen für Anweisungswörter, die von dem PGM-SRAM 20 abgerufen werden, in ein Oszilloskop-Modus-FIFO 130 (das in Verbindung mit Fig. 4 beschrieben wird) protokolliert. An diesem Punkt gibt es keine Einschränkung hinsichtlich des­ sen, was diese 128 Anweisungswörter sein können, wobei die­ selben Verzweigungsanweisungen umfassen können.
Am Ende der Ausführung der Zielsequenz wird die Ausführung des Testprogramms angehalten, wobei eine Überwachungsumge­ bung für den Oszilloskop-Modus die Aktivität durchführt, die in einem Schritt 72 des Flußdiagramms 64 gezeigt ist. Diese Aktivität soll die Adressen, die in dem Oszilloskop- Modus-FIFO 130 gespeichert sind, unter Verwendung des Ring­ busses 85 lesen, die Adressen verwenden, um aus dem PGM- SRAM 20 die entsprechenden Anweisungswörter zu extrahieren, Verzweigungsfelder in diesen Anweisungswörtern einstellen, um auf das nächste Wort in der Zielsequenz zu zeigen (dies ist ein Muß - die Zielsequenz kann nicht fortfahren, ihre eigene Bedingungsverzweigung durchzuführen, da dies die Si­ gnalverläufe unstabil machen würde), und dann dieselben se­ quentiell in einem reservierten Abschnitt des PGM-SRAM 20 speichern.
Nachfolgende Ausführungen des Testprogramms erfüllen auch die Auslöserbedingung, wobei zu diesem Zeitpunkt das Test­ programm zeitweilig angehalten wird, die Werte für VOH und der Abtastzeitgebungsversatz von normalen Werten auf die zur Verwendung bei dem nächsten Schritt des Erfassungswob­ belns verändert werden und die Zielsequenz ausgeführt wird. Hier sind zwei Weisen, auf die das implementiert werden kann. Als erstes kann ein Überwachungsprogramm für den Os­ zilloskop-Modus erfassen, daß PGM_QUIT während des Oszil­ loskop-Modus auftrat, und die VOH- und Abtastzeitgebungs­ versatzveränderungen durchführen (durchgeführt durch ein Schreiben in ein Oszilloskop-Modus-VOH-Register 166 und ein Oszilloskop-Modus-Abtast-Zeitgebungsregister 168, die beide in Verbindung mit Fig. 5 erläutert werden), gefolgt durch eine Veränderung über den Ringbus zu einem inneren Pro­ grammzählerregister (nicht gezeigt) in einer Nächste- Adresse-Berechnungseinrichtung 102 (siehe Fig. 3), die den Programmzähler zu der Adresse für den Start des reservier­ ten Bereichs bewegt. Aus diesem Grund (unter anderem) ist die Nächste-Adresse-Berechnungseinrichtung 102 mit dem Ringbus verbunden. Die zweite Weise, auf die diese Aktivi­ tät erzielt werden kann, ist ähnlich, nimmt jedoch einen Teil der Belastung von dem Überwachung-Oszilloskop-Modus- Programm ab, indem die Nächste-Adresse- Berechnungseinrichtung ein zusätzliches inneres Register (nicht gezeigt) zum Enthalten der Startadresse des reser­ vierten Bereichs umfaßt, wobei automatisch zu einem Punkt nach einer Verzögerung (geeignet dafür, die Erfassungswob­ belwerte an ihren Ort zu bringen) gesprungen werden kann, nachdem ein Fall von TRIGGERED (= ausgelöst) auftritt.
Der Zweck des Erfassungswobbelaktivitätsabschnitts 66 des Flußdiagramms 64 besteht darin, wiederholt die ausführbare Zielsequenz durchzuführen, die in dem reservierten Ab­ schnitt des PGM-SRAM 20 gespeichert ist. Bei einem Schritt 73 wird das Testprogramm von Anfang an neu gestartet (so daß jede Initialisierung, die wichtig für die Algorithmen in dem Testprogramm ist, auftritt). Es wird mit normalen Werten für VOH und den Abtastzeitgebungsversatz neu gestar­ tet, wobei die Erwartung darin besteht, daß das Testpro­ gramm exakt ausgeführt wird, wie dies zuvor der Fall war, und wird schließlich die Auslöserspezifikation auf exakt die gleiche Weise wie für die anfängliche Ausführung erfül­ len.
Während das Testprogramm ausgeführt wird, erwartet ein Schritt 74 über einen Schleifenpfad 75 die Erfüllung der Auslöserspezifikation. Wenn dieselbe erfüllt ist, hält ein Schritt 76 das Testprogramm an und stellt den Wert für VOH auf den ersten (nächsten) Wert für die Serie von Erfas­ sungswobbelschritten ein, die folgen. (Die Terminologie hier ist, daß viele Erfassungswobbelschritte ein Erfas­ sungswobbeln bilden.) Das gleiche wird für den Abtastzeit­ gebungsversatz durchgeführt. Daraufhin ermöglicht ein Schritt 77, daß das Testprogramm fortfährt (und gezwungen wird, zu der Zielsequenz zu springen), und schaltet einen Mechanismus an, der erzwingen wird, daß Empfangsvektoren in ECR2 34b gespeichert werden. Nun warten wir über den Schleifenpfad 79 bei einem Schritt 78, bis die Zielsequenz vollständig ist. Ein Signal PGM_QUIT 157 aus Fig. 4 hilft dabei. Sein Wert ist jedesmal WAHR, wenn der Microcontrol­ ler-Sequenzer 19 die Ausführung gestoppt hat. Dies kann er­ zielt werden, indem das 129ste Anweisungswort der veränder­ ten Zielsequenz eine Anhalten-Anweisung ist.
Wenn die Ausführung der Zielsequenz abgeschlossen ist, be­ wegt ein Schritt 80 den Inhalt von ECR2 32b zu einem Spei­ cher, der für die Überwachungsaktivität des Oszilloskop- Modus verfügbar ist (vorzugsweise ist dies ein Programm, das unter dem Betriebssystem (OS), das auf der Testsy­ stemsteuerung 2 ausgeführt wird, läuft). Zu diesem Zeit­ punkt kann die Oszilloskop-Modus-Software mit der Aufgabe des Bildens und des Anzeigens der Teilergebnisse, die bis­ her erzielt wurden, beginnen.
Der nächste Schritt 81 dient zum Bestimmen, ob wir das Ende des Erfassungswobbelns erreicht haben. Falls dies nicht der Fall ist, führt ein Pfad 82 zurück zu Schritt 73, so daß das Erfassungswobbeln mit einem weiteren Schritt fortfahren kann. Das Flußdiagramm 64 ist diesbezüglich vereinfacht:
Wir haben keine innere Schleife in einer äußeren Schleife gezeigt, die die Vorstellung handhabt, daß VOH am schnell­ sten gewobbelt wird, und durch einen gesamten Satz von Wer­ ten für jede unterschiedliche Einstellung des Abtastzeitge­ bungsversatzes. Dies bedeutet, daß sich VOH am schnellsten verändert und ihre Sequenz von Veränderungen wiederholt, während der Abtastzeitgebungsversatz sich am langsamsten verändert und nur eine Änderungssequenz erfährt. Außerdem spezifiziert das Flußdiagramm nicht die Strategie zum Ver­ ändern von VOH: lineare Ende-zu-Ende-Versuche, Binärsuche oder eine Vorhersagesuche. Außerdem spezifiziert das Fluß­ diagramm nicht die Strategie zum Beenden einer Veränderung von VOH für einen bestimmten Abtastzeitgebungsversatz:
Durchführen aller oder aufhören, wenn es Zuversicht gibt, daß die richtige Antwort entdeckt wurde.
Nachdem das Erfassungswobbeln abgeschlossen ist, geht der "JA"-Pfad von Schritt 81 zu dem Überwachungsmechanismus in dem Oszilloskop-Modus über, woraufhin die vollständigen Si­ gnalverläufe angezeigt, gespeichert, gedruckt, usw. werden können.
Im folgenden wird Bezug auf Fig. 4 genommen, die ein ver­ einfachtes Blockdiagramm der Hardwareaspekte dessen ist, wie die Aktivität, die in Fig. 3 dargestellt ist, implemen­ tiert ist, und umfaßt die Hardware, die für eine Fehler­ flagblockierung basierend auf der Erfüllung einer Auslöser­ spezifikation erforderlich ist. Fig. 4 kann in drei Ab­ schnitte (84, 86, 91) unterteilt werden, die auf Elemente in dem Blockdiagramm aus Fig. 2 bezogen sind. Dies bedeu­ tet, daß der Abschnitt 84 eine Erweiterung eines Teils der Mikrosequenzer-Steuerung 19 aus Fig. 2 ist, wobei der Ab­ schnitt 86 eine Erweiterung eines Teils der 8 16-Bit-ALUs 24 aus Fig. 2 ist, während der Abschnitt 91 eine Erweite­ rung der Dinge ist, die in dem inneren Testspeicher 87 zu finden sind, der in Fig. 2 gezeigt ist. So ist Fig. 4 eine Erweiterung von nur einem Teil aus Fig. 2, wobei ein Groß­ teil dieser Figur gestrichen ist, da er nicht direkt zu den Merkmalen, die gegenwärtig von Interesse sind, gehört.
Wir beginnen mit Abschnitt 86, dessen Aufgabe darin be­ steht, ein Signal zu erzeugen, das ALU_TRIGGER 96 genannt wird. Der Abschnitt 86 und ALU_TRIGGER stellen die ALU- Komponente der Auslöserspezifikation dar. Es wird gezeigt, was für das X-Register getan wird, wobei das, was für die anderen sieben Register (Y-C) getan wird, identisch ist. Es wird ebenfalls gezeigt, wie das, was für diese Register getan wird, kombiniert wird, um das Signal ALU_TRIGGER 96 zu erzeugen. So ist der Ort, an dem begonnen werden soll, eine Prüfung des X-Register-Materials.
Es wird angemerkt, daß es ein 16-Bit-X_ALU-Register 97 gibt, das mit dem Ringbus 85 kommuniziert. Dies ist tat­ sächlich das X-Adreßregister aus Fig. 2, dessen Bits ein Drittel der 48 Adreßbits 27 ausmachen. In Fig. 4 ist das X_ALU-Register 97 als nur mit dem Ringbus 85 und einem UND- Gatter 100 mit zwei 16-Bit-Eingängen verbunden gezeigt. Es ist jedoch selbstverständlich, daß das X_ALU-Register 97 mit allen Arten anderen Materials zum Erzielen arithmeti­ scher Operationen hinsichtlich seines Inhalts verbunden ist, was jedoch aus Gründen der Kürze insgesamt weggelassen wurde. Es ist weiter zu erkennen, daß das Ausgangssignal des UND-Gatters 100 16 Bits ist (eine Vereinfachung, die der Zeichnung wesentlich hilft). Die anderen 16 Bits, die an das UND-Gatter 100 angelegt werden, kommen von einem 16- Bit-X_Mask-(= Masken)Register 99. Das Muster von Einsen in dem X_Mask-Register 99 wählt die Bits in dem X_ALU-Register 97 aus, die in der Auslöserspezifikation von Interesse sind. Es gibt auch ein 16-Bit-X_Trigger-(= Auslöser)Register 98. Es beinhaltet die X-Registerkomponente der Auslöserspe­ zifikation und ist zu diesem Zweck mit dem Ringbus 85 ver­ bunden. Es ist ebenfalls mit einem weiteren UND-Gatter 101 mit zwei 16-Bit-Eingängen verbunden, dessen anderer Satz von Eingängen die des X_MASK-Registers 99 sind. Es ist ohne weiteres zu erkennen, daß die X-Registerkomponente der Aus­ löserspezifikation jedesmal erfüllt ist, wenn die 16 Aus­ gangssignale des UND-Gatters 100 gleich (Übereinstimmung, Bit für Bit) den 16 Ausgangssignalen von dem UND-Gatter 101 sind. Die Bestimmung dieses Umstands ist der Zweck für die =?-Schaltung 103, die als Eingangssignale die zwei 16-Bit- Ausgangssignale der UND-Gatter 100 und 101 empfängt und die ein Gleichheitssignal 104 als einen Ausgang erzeugt.
Der Y-Registerschaltungsaufbau des Abschnitts 86 ist iden­ tisch, wenn auch zur Kürze bis auf die zugeordnete =?- Schaltung 106 und ihren Ausgang 105 nicht gezeigt. Es ist ersichtlich, daß es tatsächlich sechs weitere Gleichheitsausgänge gibt (einen für jedes verbleibende ALU- Register), von denen nur einer (110) gezeigt ist. Das Signal ALU_TRIGGER 96 wird jedesmal erzeugt, wenn die ALU- Register-Bits, die nicht ausgeblendet sind, mit ihren ent­ sprechenden '_Auslöserregistern übereinstimmen. Folglich wird die Sammlung von 104 . . . 110 von den acht =?- Schaltungen gemeinsam durch ein UND-Gatter 111 einer UND- Verknüpfung unterzogen, um ALU_TRIGGER 96 zu erzeugen.
Bezug nehmend auf den Microcontroller-Sequenzer-Abschnitt 84 ist das Signal ALU_TRIGGER 96 nur eine Komponente zum Erzeugen einer erfüllten Auslöserspezifikation. Es ver­ bleibt eine Programmkomponente, die auch erfüllt werden muß. Die Programmkomponente wird durch das Signal TRIG- GER_ENABLE (= Auslöseraktivierung) 93 dargestellt. Unter der Annahme, daß TRIGGER_ENABLE 93 vorhanden ist (wir erklären seinen Ursprung als nächstes), werden dasselbe und ALU_TRIGGER 96 durch das UND-Gatter 95 kombiniert, um ein Signal ARM_SYSTEM_TRIGGER 113 zu erzeugen, das, wenn es WAHR ist, für die Bedingung steht, daß die zugrundeliegende Auslöserspezifikation erfüllt wurde, aber daß eine Verzöge­ rung unter Umständen noch ablaufen muß, bevor der tatsäch­ liche Auslöser auftreten darf.
Um mit dieser Idee fortzufahren, wird angemerkt, daß das Signal ARM_SYSTEM_TRIGGER 113 an den Starteingang einer Verzögerungsschaltung 114 angelegt wird, deren Verzöge­ rungsbetrag über ihre Verbindung mit dem Ringbus 85 spezi­ fiziert ist. Die Verzögerung kann Null sein oder ein ande­ rer Betrag, ausgedrückt als ein absolutes Zeitintervall oder als eine Zahl von DUT-Zyklen. Derartige Schaltungen werden als herkömmliche betrachtet, wobei die spezifischen Details weggelassen wurden. Die Verzögerungsschaltung 114 könnte jeder von verschiedenen geeigneten Typen von Verzö­ gerungsmechanismen sein, einschließlich voreinstellbarer Zähler, Zeitnehmer und Spannungsrampe-/Schwelle-Anordnungen, wobei dieselben jedoch nicht darauf beschränkt sind. In je­ dem Fall wird, wenn die Verzögerung nach einem Einsetzen von ARM_SYSTEM_TRIGGER 115 abgelaufen ist, ein Signal SY- STEM_TRIGGER (= Systemauslöser) 115 ausgegeben. Es wird mit dem eingestellten Eingangssignal eines Setzen-/Rücksetzen- Flip-Flop 116 gekoppelt. SYSTEM_TRIGGER. 115 bewirkt, daß das Q-Ausgangssignal des Flip-Flops 116 WAHR wird. Dieses Q-Ausgangssignal ist das Signal TRIGGERED 122. Es wird bis zu dem Ende der Zielsequenz bestehen und wird in verschie­ denen anderen Orten in Fig. 4 verwendet. Zu Beginn des nächsten Schritts bei dem Erfassungswobbeln wird das Signal TRIGGERED 122 FALSCH, und zwar aufgrund des Auftretens ei­ nes Signals START 131, das von einem Monoflop (One Shot) 132 ausgegeben wird, das mit dem Ringbus 85 verbunden und durch eine Software aktiviert wird, die den Neustart des Testprogramms als Teil des nächsten Schritts bei dem Erfas­ sungswobbeln überwacht.
Nun wird geprüft, wie das Signal TRIGGER_ENABLE 93 ent­ steht. Die kurze Antwort besteht darin, daß es ein Bit in dem 208 Bit breiten Anweisungswort ist, das durch die Mi­ krosequenzer-Steuerung 19 verwendet wird. Es wurde (wahr­ scheinlich) eingestellt, als der Benutzer gegenüber dem Überwachungsmechanismus für den Oszilloskop-Modus spezifi­ zierte, daß diese und jene Leitung in dem Quellencode die ist, deren Maschinenanweisung(en) ein Auslösen aktivieren sollen, oder (weniger wahrscheinlich) als der Kompilierer eine geeignete Quellencode-"Aktivierendes-Auslösers-hier"- Anweisung fand, die explizit durch den Programmierer hier plaziert wurde. In dem ersten Fall verändert der Überwa­ chungsmechanismus für den Oszilloskop-Modus die Maschinen­ anweisungen selbst (was eine Kompilierermitschuld erfordern kann oder nicht), wobei in dem zweiten Fall der Benutzer den Quellencode des Testprogramms selbst veränderte und neu kompilierte. Es kann unter Umständen nur ein Anweisungswort geben, das sein TRIGGER_ENABLE-Bit eingestellt hat, und es kann eine aufeinanderfolgende Zeichenfolge derselben geben, oder etwas dazwischen, wobei das Bit konunt und geht, wenn das Testprogramm ausgeführt wird.
Fortsetzend werden die 208-Bit-Anweisungswörter von dem PGM-SRAM 20 abgerufen, der durch eine Adresse 63 adressiert wird, die durch eine Nächste-Adresse-Berechnungseinrichtung 102 erzeugt wird. Die Nächste-Adresse- Berechnungseinrichtung 102 tut mehrere zusätzliche Dinge von Interesse. Erstens erzeugt sie jedesmal ein Signal BUSY (= belegt) 156, wenn sie ein Programm ausführt. Dies hilft den verschiedenen Überwachungsmechanismen beim Steuern der Ausführung von Mustern durch die Mikrosequenzer-Steuerung 19. Die Nächste-Adresse-Berechnungseinrichtung erzeugt auch ein Signal PGM_QUIT (= Programm-Aufhören) 157, das bedeutet, daß eine Bedingung gefunden wurde, die eine Programmausfüh­ rung anhält. Eine dieser Bedingungen ist das UND der Signa­ le TRIGGERED 122 und 'SCOPE-MODE (= Oszilloskopmodus) 138. Die Logik zum Implementieren hierfür ist in der Nächste- Adresse-Berechnungseinrichtung 102 und wird nicht explizit gezeigt. Die Nächste-Adresse-Berechnungseinrichtung 102 er­ zeugt auch ein Signal PGM_STEP (= Programmschritt) 145 (auch durch das B in einem Kreis angezeigt), dessen Bedeutung beim Einsetzen darin besteht, daß eine neue gültige Adresse an dem Ausgang 63 der Nächste-Adresse- Berechnungseinrichtung 102 vorhanden ist. Einsätze von PGM_STEP 145 können verwendet werden, um andere Mechanismen darüber zu informieren, daß ein weiterer Schritt in dem Mu­ ster (Testprogramm) gerade ausgeführt wird.
Während dieser Teil von Fig. 4 durchgegangen wird, wird an­ gemerkt, daß die Signale PGM_QUIT 157 und TRIGGERED 122 mit zugeordneten Bits (158a bzw. 158b) eines Statusregisters gekoppelt sind, das durch den Ringbus lesbar ist. Dies un­ terstützt auch die verschiedenen Überwachungssoftwaremecha­ nismen, die sowohl einen normalen als auch einen ausgelö­ sten Betrieb überwachen.
Es wird nun auf das Vorliegen eines Oszilloskop-Modus-FIFO 130 hingewiesen, das mit dem Ringbus 85 verbunden ist, der­ art, daß der Inhalt desselben (als Daten Aus) auf diesen Bus gelesen werden kann. Es weist auch einen Dateneingang auf, der mit dem Ausgang der Nächste-Adresse- Berechnungseinrichtung 102 (wobei die Adresse durch diesel­ be erzeugt wird) verbunden ist. Diese Verbindungen unter­ stützen die Erfassung der Adressen der Zielsequenz, sowie die nachfolgende Wiedergewinnung derselben zur Veränderung und Speicherung in dem reservierten Abschnitt des PGM-SRAM 20 (der, wie angemerkt wird, ebenfalls mit dem Ringbus 85 verbunden ist). Das Oszilloskop-Modus-FIFO weist einen in­ neren Adressiermechanismus auf, der automatisch inkremen­ tiert, wenn Signale an einen LOAD-(= Laden)Anschluß angelegt werden. Um diese innere Adresse zu Beginn des Speicherns oder Lesens einer Zielsequenz zurück auf Null zu bringen, weist ein RESET-(= Rücksetzen)Anschluß das START-Signal 31 auf, das mit demselben gekoppelt ist. Der LOAD-Anschluß wird durch den Ausgang eines UND-Gatters 135 getrieben, dessen Eingangssignale TRIGGERED 122 und das invertierte (durch einen Invertierer 134) Signal von einem FULL- (= voll)Anschluß auf dem FIFO 130 sind. Diese Anordnung er­ möglicht die kontinuierliche Speicherung der Zielsequenz, wie diese auftritt, sobald TRIGGERED WAHR wird, bis das FI­ FO voll ist. Sobald dies geschehen ist, kann die Überwa­ chungssoftware für den Oszilloskop-Modus den Inhalt des FI­ FO lesen, die entsprechenden Anweisungswörter von dem PGM- SRAM 20 abrufen, dieselben verändern, um die gesamte Ver­ zweigung einzustellen, um durch die nächste Anweisung zu fallen, und dann die geänderten Anweisungen in dem reser­ vierten Abschnitt des PGM-SRAM 20 zu speichern.
Es wird nun auf das Ein-Bit-Oszilloskop-Modus-Register 137, das mit dem Ringbus 85 verbunden ist, verwiesen. Es ist durch die Überwachungssoftware eingestellt, um anzuzeigen, daß eine Auslöserspezifikation wirksam ist. Der Ausgang des Oszilloskop-Modus-Registers 137 ist ein Signal 'SCOPE_MODE 138, das an zwei Orten verwendet wird: durch den Fehler­ flagblockierungsmechanismus und durch den Abschnitt 91, der eine Erweiterung eines Teils des inneren Testspeichers 87 ist. Eine Erklärung der Fehlerflagblockierung wird auf ei­ nen Punkt nach der Prüfung des letzten Gegenstands aus Fig. 4 verschoben, der benötigt wird, um den Oszilloskop- Betriebsmodus zu unterstützen: Abschnitt 91.
Der Zweck des Abschnitts 91 besteht darin, die Empfangsvek­ toren, die zu der Zielsequenz gehören, in dem ECR2 32b zu speichern. Sie werden dort cash-gespeichert, jeweils ein Schritt bei dem Erfassungswobbeln zu einem Zeitpunkt, und auf die Steuerung-Oszilloskop-Modus-Software zum Aufbau der Signalverläufe entladen. Was gespeichert wird, sind die Vergleichsdaten 196 (es wird die Pinelektronik 9 über die Zeitgebungs-/Formatierungs- und Vergleichsschaltung 52, wie in Fig. 5 vergrößert ist, kommen). Unter der Voraussetzung, daß derartige Vergleichsdaten 146 dem Dateneingang des ECR2 vorgelegt werden, ist das, woran wir im Moment interessiert sind, wie dieselben gespeichert werden. Dies muß auf eine Weise erzielt werden, die das Vorliegen oder Nichtvorliegen des normalen Mechanismus zum Bestimmen berücksichtigt, ob Fehler in einem ECR gespeichert sind, nämlich das Signal ECR_LOG_ENABLE (= ECR-Protol.-Aktivierung) 94. Es ist ein Bit in dem 208-Bit-Anweisungswort, das eingestellt ist oder nicht, und zwar abhängig davon, ob der Programmierer Feh­ lerdaten für diesen Abschnitt des Testprogramms protokol­ lieren möchte oder nicht. Was wir dann tun müssen, ist, den Schreibenaktivierungsanschluß für ECR2 32b dazu zu zwingen, jedesmal WAHR zu sein, wenn die Zielsequenz ausgeführt wird. Dies ist der Zweck von MUX 141, der eine Schreibenak­ tivierung von ECR2 mit ECR_LOG_ENABLE treibt, wenn 'SCOPE_MODE_FALSCH ist (Normalbetrieb), oder mit TRIGGERED, wenn 'SCOPE_MODE_WAHR ist. Ein weiterer MUX 142 verwendet ebenfalls 'SCOPE_MODE, um zu verändern, welche Adresse an den ECR2 angelegt wird. Bei dem normalen Betriebsmodus ist dies einfach die übliche Adresse, die durch den Adreßabbil­ der 29 geliefert wird. Während des Oszilloskop-Modus ist dies eine unterschiedliche Adresse, die durch ein inkremen­ tierbares Register 144 angelegt wird, dessen Wert mit dem Signal START 131 auf Null rückgesetzt wird, und das durch das Signal PGM_STEP 145 inkrementiert wird. Dies bedeutet, daß es synchron mit der Ausführung der Zielsequenz inkre­ mentiert. Diese Anordnung speichert die Vergleichsdaten (VOH-Schwelle erfüllt oder nicht), wenn die Zielsequenz ausgeführt wird. Es ist zu erwarten, daß der Programmierer ECR2 nicht zur normalen Protokollierung von Fehlerdaten für das Testprogramm verwendet.
Schließlich wird auf das Vier-Bit-Register 147a-147d, das mit dem Ringbus 85 verbunden ist, hingewiesen. Es enthält vier Ein-Bit-Segmente, von denen drei Werte darstellen, die anstelle der normalen Fehlerflags blockiert werden sollen. So kann FERR_JAM (= F-Fehler-Block.) 147a FERR 154 ersetzen, wobei PERR_JAM (= J-Fehler-Block.) 147b PERR 153 ersetzen kann, und wobei ECR_FLG_JAM (= ECR-Flag-Biock.) 147c ECR_FLG 152 ersetzen kann. Diese Ersetzungen werden durchgeführt, wenn 'SCOPE_MODE 138 WAHR ist (das Oszilloskop-Modus- Register 138 wurde als ein Ergebnis dessen, daß die Auslö­ serspezifikation erfüllt wurde, eingestellt), wobei das vierte Bit TRIGGER_JAM_ENABLE (= Auslöser-Block.- Aktivierung) 147d ebenfalls eingestellt ist. Ein UND-Gatter 148 erfaßt diese Bedingung, wobei sein Ausgangssignal ver­ wendet wird, um die MUXs 149, 150 und 151 zu schalten. Ein Schalten dieser MUXs ist das, was das Blockieren tut. Die kombinierten Ausgangssignale 155 der MJXs werden an die Nächste-Adresse-Berechnungseinrichtung 102 angelegt, bei der dieselben als Qualifizierungseingangssignale verwendet werden, um ein Verzweigen in dem Testprogramm zu beeinflus­ sen.
Nun wird Bezug auf Fig. 5 genommen, in der ein vereinfach­ tes Blockdiagramm des Schaltungsaufbaus auf niedrigem Pegel (ein Großteil desselben existiert auf einer Pro-Kanal- Basis) dargestellt ist, der die tatsächlichen Vergleichsda­ ten liefert, die während jedes Schritts des Erfassungswob­ belns in dem ECR2 32b gespeichert werden. Die linke Seite dieser Figur bei dem eingeschlossenen MEMORY TESTER WITH ENHANCED PAST DECODE ist ein Untersatz von Fig. 5. Folglich wird dies nicht ausführlich erläutert, wobei eine kurze Zu­ sammenfassung ausreichen sollte.
Es wird auf die Anschlußfläche oder den Pin 109 des DUT verwiesen. Er kann mit einem Pegelschieber 108 getrieben werden, der durch einen Treiberformategenerator 107 akti­ viert wird, der sein FORMAT 140 und DATA 139 von einem in­ neren SRAM 54 bekommt (auch in Fig. 2 als Teil der Schal­ tung 52 gezeigt). Ob der Pin 109 durch den Tester getrieben wird oder nicht, möchten wir (üblicherweise) wissen, wenn die Spannung an dem Pin in einem spezifizierten Bereich für den Betrieb, der auch immer durchgeführt wird, ist. Zu die­ sem Zweck gibt es zwei Komparatoren 117 und 118, die mit dem Pin 109 und mit CH VOH 171 (ein Pro-Kanal-Fall von VOH) bzw. CH VOL 172 (ein Pro-Kanal-Fall von VOL) gekoppelt sind. Die Signale CH VOH und CH VOL sind die einstellbaren Vergleichsspannungen, mit denen die Komparatoren Vergleiche durchführen. Die Ausgänge der Komparatoren werden in Empfangslatches 119a bzw. 119b verriegelt, deren Ausgangs­ signale dann die logischen Signale YVOH bzw. YVOL erzeugen. Das Verriegeln wird zu einem Zeitpunkt in dem DUT-Zyklus durchgeführt, der durch einen Aktivierungssignalgenerator 170 erzeugt wird, und zwar gemäß einem ausgedrückten Ab­ tastzeitgebungsversatz, wobei wir auf alle in Kürze näher eingehen werden.
YVOH und YVOL werden an einen formatierten Empfänger 124 angelegt, der die Korrektheit der Meßeingänge gemäß den FORMAT-Signalen 140, (erwarteten) DATA 139 und Informatio­ nen in einem F/P-Fehlerauswahlregister 123 ansprechend auf einen IVT-Bus auswertet. (Es ist eine Erweiterung innerhalb des Chips des VT-Busses 89, da das Stück Siliziumdioxid, auf dem wir uns hier befinden, - die Schaltung 52 - sich von dem unterscheidet, auf dem der APG ist, und von dem der Microcontroller-Sequenzer 19 ein Teil ist.) In jedem Fall gibt der formatierte Empfänger (von dem es einen pro Kanal gibt) ein Signal FUNCTIONAL ERROR (= Funktionsfehler) 126, ein Signal PARAMETRIC ERROR (= parametrischer Fehler) 127 und ein Signal COMPARE ERROR (= Vergleichsfehler) 125 aus. Die Signale FUNCTIONAL ERROR und PARANETRIC ERROR sind in jeweilige Latches 128 und 129 verriegelt, die wiederum Si­ gnale 176 und 177 erzeugen, die einer weiteren Verarbeitung unterzogen werden können, wobei als ein Ergebnis dessen Si­ gnale DFE 0 : 3 103 und DPE 0 : 3 104 erhalten werden, die als Eingänge in die Schaltung 52 in Fig. 2 erscheinen. Was die­ se Dinge bedeuten, liegt außerhalb des Bereichs der vorlie­ genden Offenbarung. Sie sind auf etwas bezogen, das Mehr­ fach-DUT-Betrieb genannt wird. Was der heser beachten soll­ te, ist, daß das Signal COMPARE ERROR 125 das ist, das üb­ licherweise als "tatsächliche" Fehlerdaten gespeichert wird, vielleicht in einem ECR (Fehlererfassungs-RAN), oder daß es vielleicht erstens hinsichtlich der Art (Datenklas­ sifizierung oder Behandlung in Nachdecodierung) charakteri­ siert und dann ein geeigneter Typ von Indikator in einem ECR gespeichert wird. In jedem Fall sei der Leser darauf verwiesen, daß bei einem Normalbetrieb COMPARE ERROR 125 weitergeleitet werden muß, und zwar wie es gemäß den FOR- HAT-Signalen 140 erzeugt wird, die an den formatierten Emp­ fänger 124 angelegt werden. Diese Informationen können un­ ter Umständen nicht die gleichen sein wie die "rohen" YVOH und YVOL (wie sie waren). Der Leser sei ferner darauf ver­ wiesen, daß während eines Schritts bei einem Erfassungswob­ beln es genau dieses "rohe" YVOH (und nur das) ist, das zu dem Rest des Systems befördert werden muß. Zum Erzielen dieser unterschiedlichen Zwecke dient die Funktion des (Pro-Kanal-)MUX 173. Er empfängt sowohl den Pro-Kanal- COMPARE ERROR 125 als auch (Pro-Kanal-)YVOH 175 und sendet nur das geeignete weiter, und zwar gemäß dem Signal PI­ PED_TRIGGER 180. Dies bedeutet, daß, wenn PIPED_TRIGGER (= geleiteter Auslöser) FALSCH ist, das Signal COMPARE ERROR 125 ausgewählt wird, wobei das tatsächliche (nicht inter­ pretierte) YVOH 175 ausgewählt wird, wenn PIPED_TRIGGER WAHR ist.
Es folgt eine Anmerkung über das Signal PIPED_TRIGGER 180. Es ist das logische Äquivalent von TRIGGERED 122 (aus Fig. 4), mit der Ausnahme, daß es um einen Betrag verzögert wird, die gleich der Verzögerung ist, die durch die Pipeli­ ne induziert wird, die Signale von dem Microcontroller- Sequenzer 19 durch die ALUs 24, den Adreßabbilder 29, den inneren Testspeicher 87 und/oder den Daten-MUX 35, den ADR- Bitauswähler 37, die Schaltung 40, den Vektor FIFO 45 und schließlich zu der Zeitgebungs-/Formatierungs- und Ver­ gleichsschaltung 45 (die dort ist, wo sich Fig. 5 befindet) transportiert. Aufgrund dieser Pipeline und ihrer Verzöge­ rung tritt das Signal TRIGGERED 122 (das an dem Kopf der Pipeline ist) zeitlich auf, weit bevor der Sendevektor, dem dasselbe zugeordnet ist, tatsächlich zur Anlegung an das DUT verfügbar ist. Es gibt drei MUXs (164, 169 und 173) in Fig. 5, die durch PIPED_TRIGGER 180 gesteuert werden. Wenn wir die Auswirkungen der Pipelineverzögerung vernachlässi­ gen würden (z. B. durch Verwendung von TRIGGERED anstelle von PIPED_TRIGGER), würden sich diese MUX zu bald verändern und den Oszilloskop-Betriebsmodus zur DUT-Aktivität aufru­ fen, die tatsächlich dem Auftreten des Auslösers (in einem logischen Sinn) vorausgeht. Dies würde die Dinge beträcht­ lich durcheinanderbringen. Folglich wird das Signal TRIGGE- RED 122 durch einen Verzögerungsmechanismus 181 verzögert, um PIPED_TRIGGER 180 zu werden. Der Verzögerungsmechanismus 181 kann entweder eine tatsächliche, separate Schaltung sein, wie gezeigt ist, oder er kann ein zweckgebundener Pfad für TRIGGERED in der Pipeline selbst sein.
Es verbleibt nun die Erklärung dessen, wie die Spannungs­ schwellen VOL und VOH erzeugt werden, und wie der Abtast­ zeitgebungsversatz erzielt wird, wobei die beiden letzten schnell zwischen normalen, programmatisch bestimmten Werten und den veränderten Werten, die für Schritte während eines Erfassungswobbelns erforderlich sind, umgeschaltet werden müssen.
VOL wird zuerst behandelt, da es einen einfachen und ähnli­ chen Ausgangspunkt aufweist, selbst wenn es selbst nicht Teil des Prozesses von Interesse ist. VOL entsteht mit ei­ nem VOL-Register 161, das gekoppelt ist, um einen digitalen Wert von m Bits, die über den Ringbus 85 gesendet werden, zu empfangen. Diese m Bits werden an eine VOL-DAC 162 ange­ legt, um die analoge Schwellenspannung CH VOL 171 zu erzeu­ gen, die an einen Komparator 118 angelegt wird.
Die Erzeugung von CH VOH 172 ist ähnlich, mit der Ausnahme, daß ihr VOH-DAC 165 durch den m-Bit-Ausgang eines MUX 164 getrieben wird, der zwischen zwei m-Bit-Registern auswählt, die durch den Ringbus 85 einstellbar sind. Diese Register sind ein Normalmodus-VOH-Register 163 und ein Oszilloskop- Modus-Register 166. Der MUX 164 wählt entsprechend dem Wert des Signals PIPED_TRIGGER 180 aus, wie dies auch für den MUX 173 der Fall ist. Dies bedeutet, daß, wenn PI­ PED_TRIGGER WAHR ist, es der m-Bit-Wert des Oszilloskop- Modus-Registers 166 ist, der ausgewählt wird, wobei es an­ derweitig der normale Wert von dem Register 163 ist. Der Wert in dem Oszilloskop-Modus-Register 166 kann vorzeitig durch die Überwachung-Oszilloskop-Modus-Software auf einen Wert übereinstimmend mit einer erwünschten Strategie zum Verändern von VOH während eines Schritts bei einem Erfas­ sungswobbeln eingestellt werden. Der Wert der CH-VOH- Spannung 172 kann so sehr schnell von seinem Normalwert verändert werden, sobald das Signal PIPED_TRIGGER 180 aus­ geübt ist, und genauso schnell auf den normalen Wert zu­ rückgebracht werden, wenn PIPED_TRIGGER weggeht.
Schließlich müssen wir uns mit dem Problem des ähnlichen Schaltens zwischen normalen Werten für den Abtastzeitge­ bungsversatz und denen beschäftigen, die für das Erfas­ sungswobbeln erforderlich sind. Dies wird dahingehend auf eine allgemein ähnliche Weise durchgeführt, daß es einen MUX 169 gibt, der durch PIPED_TRIGGER 180 gesteuert wird und zwischen dem Ausgang eines Oszilloskop-Modus- Abtastzeitgebungsregisters 168, das mit dem Ringbus 85 ver­ bunden ist, und einem Normalmodus-"Etwas" (167, unten be­ schrieben) auswählt. Die beiden Dinge, zwischen denen aus­ gewählt wird, sind jeweils n Bits groß und beschreiben eine Verzögerung für die Übernahmesignalgebung (Strobing) der Empfangslatches 119a, 119b, was bezüglich eines bestimmten Referenzsignals ist, das wir SYSTEM_DUT_CYCLE (= System-DUT- Zyklus) 178 nennen, und das an einen Aktivierungssignalge­ nerator 170 angelegt wird. Der Verzögerungswert, der durch den MUX 169 ausgewählt wird (der des Registers 168 für den Oszilloskop-Modus, andernfalls der von "Etwas" 167), wird ebenfalls an den Aktivierungssignalgenerator 170 angelegt. Der Aktivierungssignalgenerator (der im wesentlichen ein digital gesteuerter Verzögerungsgenerator ist) gibt einen verzögerten Ausgang 179 aus, der an die Empfangslatches 119a, 119b angelegt wird. Dieser Ausgang kann für unsere gegenwärtigen Zwecke als das Einsetzen von SYSTEM_DUT_CYCLE 178 betrachtet werden, das um den Betrag des n-Bit-Werts von dem MUX 169 verzögert ist. Dieser n-Bit-Wert kann z. B. diese Verzögerung in Beträgen beschreiben, die Vielfache von z. B. 19,5 Picosekunden sind.
Was ist nun mit dem mysteriösen "Etwas" 167? Als erstes könnte es bei dem einfachsten Ausführungsbeispiel lediglich ein n-Bit-Register sein, das mit dem Ringbus 85 gekoppelt ist, genau wie das Oszilloskop-Modus-Abtastzeitgebungs­ register 168. Dann könnten wir es ein Normalmodusabtast­ zeitgebungsregister nennen. Das Problem hiermit besteht nicht darin, daß es nicht funktioniert (es funktioniert), sondern vielmehr darin, daß es dem Testprogramm nur eine Abtastzeitgebungsversatzressource gewährt, und daß der Pro­ grammierer jedesmal erheblich viel zusätzliche Arbeit ver­ richten muß, wenn sich der Abtastzeitgebungsversatz verän­ dern soll. Puh! Es wird statt dessen bevorzugt, daß es aus­ wählbare "Zeitsätze" gibt, die vorher programmiert werden können, und zwischen denen ohne weiteres ausgewählt werden kann, wenn das Testprogramm ausgeführt wird. Diese Zeitsät­ ze existieren in einer Normalmodusabtastzeitgebungsnach­ schlagtabelle 167 und es gibt z. B. 16 von denselben. Au­ ßerdem können dieselben mehr als nur Abtastzeitgebungs­ versatzinformationen halten. Zur Kürze können diese Themen weggelassen werden, da sie für unseren gegenwärtigen Zweck nicht relevant sind. Folglich ist es ausreichend, die Nor­ malmodusabtastzeitgebungsnachschlagtabelle 167 als einen adressierbaren 16-Element-Speichermechanismus zu beschrei­ ben, wobei jede adressierbare Position bestimmte Zahlenfel­ der speichern kann, von denen eines ein n-Bit-Wert ist, und das, sobald es adressiert ist, unter anderem an seinem Aus­ gang den n-Bit-Wert, der gegenwärtig in der am aktuellsten gespeicherten Position gespeichert wird, liefert. Wie be­ schrieben wurde, wird der Begriff eines Zeitsatzes als her­ kömmlich betrachtet, wobei die erforderliche Normalmodusab­ tastzeitgebungsnachschlagtabelle 167 auf eine bekannte Wei­ se aus Standard-IC-Bibliothekkomponenten gebildet werden kann.

Claims (10)

1. Verfahren zum Erzeugen eines Auslösesignals (96, 113, 115, 122) in einem Tester, der ein Testprogramm aus­ führt, das eine algorithmische Natur aufweist, das den Inhalt einer Mehrzahl von ALU-Hardwareregistern (24) in dem Tester manipuliert, und deren Inhalte (27, 28) einen zugeordneten Signalverkehr zwischen dem Tester und einem zu testenden Gerät (DUT) darstellen, wobei das Verfahren folgende Schritte aufweist:
  • a) für jedes ALU-Hardwareregister der Mehrzahl der­ selben, Auswählen (99, 100) einer Kombination von Bitpositionen, einschließlich keiner, die zum Er­ zeugen des Auslösesignals beitragen sollen;
  • b) Zuordnen eines separaten Auslösewertregisters (98) zu jedem ALU-Hardwareregister;
  • c) für jedes Auslösewertregister, das einem ALU- Hardwareregister zugeordnet ist, bei dem zumin­ dest eine Bitposition im Schritt (a) ausgewählt wurde, Laden (85) des Bits für den Bitwert, den das zugeordnete ALU-Hardwareregister für das Aus­ lösesignal, das erzeugt werden soll, aufweisen soll, in diese gleichen Bitpositionen, die ausge­ wählt wurden,;
  • d) für jedes Auslösewertregister, Auswählen (99, 101) der gleichen Kombination von Bitpositionen, die im Schritt (a) für das entsprechende ALU- Hardwareregister ausgewählt wurden;
  • e) für jedes Paar (104, 105, . . ., 110) von ALU- Hardware und zugeordneten Auslösewertregistern, bitweises Vergleichen (103) der ausgewählten Kom­ bination von ALU-Hardwarebits mit der ausgewähl­ ten Kombination von Bits in dem zugeordneten Aus­ lösewertregister bezüglich Gleichheit; und
  • f) Erzeugen (111) eines Auslösesignals (96) auf eine Bestimmung hin, daß Schritt (e) eine Gleichheit anzeigte.
2. Verfahren gemäß Anspruch 1, bei dem:
  • a) Schritt (a) ferner den Schritt des Zuordnens ei­ nes unterschiedlichen Maskenregisters (99) zu je­ dem ALU-Hardwareregister (97), den Schritt des Ladens eines Werts in jedes Maakenregister, wobei diese Werte Einsen in den Bitpositionen sind, die in dem entsprechenden ALU-Hardcaareregister ausge­ wählt werden sollen, und den Schritt des Durch­ führens einer bitweisen UND-Verknüpfung (100) zwischen jedem ALU-Hardwareregister und seinem zugeordneten Maskenregister aufweist, wobei die Ergebnisse der bitweisen UND-Verknüpfungen den Inhalt der ausgewählten Kombinationen von Bitpo­ sitionen für ihre jeweiligen AhU-Hardwareregister darstellen; und
  • b) Schritt (c) ferner den Schritt des Zuordnens ei­ nes unterschiedlichen Maskenreqisters (99) zu je­ dem Auslösewertregister (98), den Schritt des La­ dens eines Werts in ein separates Maskenregister, wobei diese Werte Einsen in den Bitpositionen sind, die in dem entsprechenden Auslösewertregi­ ster ausgewählt werden sollen, und den Schritt des Durchführens einer bitweisen UND-Verknüpfung (101) zwischen jedem Auslösewertregister und sei­ nem zugeordneten Maskenregister aufweist, wobei die Ergebnisse der bitweisen UND-Verknüpfungen den Inhalt der ausgewählten Kombinationen von Bitpositionen für ihre jeweiligen Auslösewertre­ gister darstellen.
3. Verfahren gemäß Anspruch 1 oder 2, das ferner den Schritt des Umfassens, in den ausführbaren Anweisungs­ wörtern für das Testprogramm, eires Auslöseaktivie­ rungsbits (93) in den ausführbaren Anweisungswörtern (92) aufweist, die Abschnitten des Testprogramms ent­ sprechen, die die Erzeugung des Auslösesignals ermög­ lichen sollen, und bei dem Schritt (f) ferner die Be­ dingung umfaßt, daß das Auslöseaktivierungsbit vorhan­ den ist, um ein Erzeugen des Auslösesignals zu ermög­ lichen (95).
4. Verfahren gemäß einem der Ansprüche 1 bis 3, das fer­ ner folgende Schritte aufweist:
  • a) Definieren ausgewählter, anderer Werte (147a-147c) für Fehlerflags, die ein Verzweigen in dem Testprogramm beeinflussen; und
  • b) nach der Erzeugung des Auslösesignals im Schritt (f), Ersetzen der tatsächlichen Werte (152, 153, 154) der Fehlerflags durch ihre entsprechenden, anderen Werte.
5. Verfahren gemäß einem der Ansprüche 1 bis 3, das fer­ ner folgende Schritte aufweist:
  • a) nach der Erzeugung des Auslösesignals im Schritt (f), Erfassen (130, 71, 72) einer Zielsequenz, die eine ausgewählte Zahl aufeinanderfolgender Anweisungswörter ist, die durch das Testprogramm ausgeführt werden;
  • b) nach Schritt (g), wiederholtes Neustarten (66) des Testprogramms und auf das Auftreten des Aus­ lösesignals hin, Verzweigen, um eine Ausführung mit der erfaßten Zielsequenz fortzusetzen; und
  • c) während wiederholter Ausführungen der erfaßten Zielsequenz, was durch Schritt (h) bewirkt wird, Variieren (76) einer Spannungsschwelle für ausge­ wählte Kanäle des DUT und Variieren des Abtast­ zeitgebungsversatzes;
  • d) Speichern (77, 80) von Schwellenvergleichsdaten, die aus Schritt (i) resultieren; und
  • e) Erzeugen, aus den Schwellenvergleichsdaten, die im Schritt (j) gespeichert werden, einer Darstel­ lung der Spannungssignalverläufe für die ausge­ wählten Kanäle und Darstellen der Zeitdauer, die der Ausführung der erfaßten Zielsequenz nach dem Auslösesignal entspricht.
6. Verfahren gemäß einem der Ansprüche 1 bis 5, das fer­ ner den Schritt des Verzögerns (114) des Einsetzens des erzeugten Auslösesignals um einen ausgewählten Be­ trag aufweist.
7. Verfahren gemäß einem der Ansprüche 1 bis 6, bei dem der Tester ein Speichertester ist, und bei dem das DUT (14) ein Speicher ist.
8. Verfahren zum Erzeugen einer Darstellung von Span­ nungssignalverläufen für ausgewählte Kanäle eines zu testenden Geräts (DUT) (14), das durch einen Tester betrieben wird, der ein Testprogramm ausführt, das ei­ ne algorithmische Natur aufweist, die ein Verzweigen basierend auf Antworten des DUT auf Stimuli umfaßt, die durch das Testprogramm geliefert werden, wobei das Verfahren folgende Schritte aufweist:
  • a) Erzeugen eines Auslösesignals (113), das das gleichzeitige Auftreten ausgewählter Bedingungen (96) in der Hardware des Testers anzeigt, ein­ schließlich der Ausführung eines ausgewählten Ab­ schnitts (93) des Testsprogramms;
  • b) nach einer anfänglichen Erzeugung des Auslösesi­ gnals durch Schritt (a), Erfassen (65, 71, 130) einer Zielsequenz von Adressen (P/O 63), die ei­ ner Zielsequenz von Anweisungen (P/O 92) entspre­ chen, die eine ausgewählte Zahl aufeinanderfol­ gender Anweisungen ist, die durch das Testpro­ gramm nach dem Auftreten des Auslösesignals aus­ geführt werden;
  • c) nach Schritt (b), Abrufen der Zielsequenz von An­ weisungen, die durch die erfaßte Zielsequenz von Adressen identifiziert werden;
  • d) nach Schritt (c), Verändern (72) der abgerufenen Zielsequenz von Anweisungen, um jede Verzweigung darin einzustellen, um auf die nächste Anweisung in der Sequenz derselben zu zeigen;
  • e) nach Schritt (d), Speichern (P/O 72) der verän­ derten Zielsequenz von Anweisungen in einem re­ servierten Abschnitt eines Programmspeichers, von dem das Testprogramm ausgeführt wird; und dann
  • f) wiederholt (82) und in der unten spezifizierten Reihenfolge, bis Schritt (f6) eine ausreichende Menge von Vergleichsergebnissen gespeichert hat, um die Erzeugung der Darstellung der Spannungssi­ gnalverläufe für die ausgewählten Kanäle zu er­ möglichen:
    • 1. Neustarten (73) des Testprogramms;
    • 2. Erzeugen eines nachfolgenden Falls des Aus­ lösesignals (122);
    • 3. Unterbrechen (P/O 76) der Ausführung des Testprogramms;
    • 4. Umsetzen (P/O 76) ausgewählter Werte einer Spannungsvergleichsschwelle und eines Ab­ tastzeitgebungsversatzes für die ausgewähl­ ten Kanäle;
    • 5. Wiederaufnehmen (P/O 77) der Ausführung des Testprogramms an dem Anfang der gespeicher­ ten, veränderten Zielsequenz von Anweisun­ gen;
    • 6. Speichern (P/O 77, 80) von Vergleichsergeb­ nissen für die ausgewählten Kanäle; und dann:
  • g) Erzeugen einer Darstellung der Spannungssignal­ verläufe für die ausgewählten Kanäle aus den ge­ speicherten Vergleichsergebnissen.
9. Verfahren gemäß Anspruch 8, bei dem die Schritte (a) und (f2) das Einsetzen des Auslösesignals um einen ausgewählten Betrag verzögern (114).
10. Verfahren gemäß Anspruch 8 oder 9, bei dem der Tester ein Speichertester ist, und bei dem das DUT (14) ein Speicher ist.
DE10217303A 2001-04-19 2002-04-18 Algorithmisch programmierbarer Speichertester mit Unterbrechungspunktauslöser, Fehlerblockierung und Oszilloskop-Modus, der Zielsequenzen speichert Withdrawn DE10217303A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/838,766 US6834364B2 (en) 2001-04-19 2001-04-19 Algorithmically programmable memory tester with breakpoint trigger, error jamming and 'scope mode that memorizes target sequences

Publications (1)

Publication Number Publication Date
DE10217303A1 true DE10217303A1 (de) 2002-10-31

Family

ID=25277994

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10217303A Withdrawn DE10217303A1 (de) 2001-04-19 2002-04-18 Algorithmisch programmierbarer Speichertester mit Unterbrechungspunktauslöser, Fehlerblockierung und Oszilloskop-Modus, der Zielsequenzen speichert

Country Status (4)

Country Link
US (1) US6834364B2 (de)
JP (1) JP4298960B2 (de)
KR (1) KR100881843B1 (de)
DE (1) DE10217303A1 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763490B1 (en) * 2000-09-25 2004-07-13 Agilent Technologies, Inc. Method and apparatus for coordinating program execution in a site controller with pattern execution in a tester
US20020199179A1 (en) * 2001-06-21 2002-12-26 Lavery Daniel M. Method and apparatus for compiler-generated triggering of auxiliary codes
WO2003085838A1 (fr) * 2002-04-05 2003-10-16 Sony Corporation Dispositif et procede d'entrelacement, dispositif et procede de desentrelacement
US7178135B2 (en) * 2002-05-16 2007-02-13 International Business Machines Corporation Scope-based breakpoint selection and operation
US20040019828A1 (en) * 2002-07-25 2004-01-29 Gergen Joseph P. Method and apparatus for debugging a data processing system
US20040025083A1 (en) * 2002-07-31 2004-02-05 Murthi Nanja Generating test code for software
US7509533B1 (en) * 2003-06-30 2009-03-24 Sun Microsystems, Inc. Methods and apparatus for testing functionality of processing devices by isolation and testing
JP4737929B2 (ja) * 2003-12-12 2011-08-03 株式会社東芝 半導体記憶装置
US7426556B2 (en) * 2004-03-30 2008-09-16 At&T Intellectual Property I, L.P. Methods, systems, and products for verifying integrity of web-server served content
US7216256B2 (en) * 2004-03-30 2007-05-08 Bellsouth Intellectual Property Corporation Methods, systems, and products for verifying integrity of web-server served content
US7363364B2 (en) * 2004-03-30 2008-04-22 At&T Delaware Intellectual Property, Inc. Methods, systems, and products for verifying integrity of web-server served content
US7353437B2 (en) * 2004-10-29 2008-04-01 Micron Technology, Inc. System and method for testing a memory for a memory failure exhibited by a failing memory
WO2007043144A1 (ja) * 2005-10-05 2007-04-19 Hewlett-Packard Development Company, L.P. 負荷試験装置およびその方法
DE102005048872A1 (de) * 2005-10-12 2007-04-26 Mühlbauer Ag Testkopfeinrichtung
US7650555B2 (en) * 2006-07-27 2010-01-19 International Business Machines Corporation Method and apparatus for characterizing components of a device under test using on-chip trace logic analyzer
KR100764052B1 (ko) * 2006-08-03 2007-10-08 삼성전자주식회사 유동적 어드레스 바운더리를 갖는 플래시 메모리 장치 및그것의 프로그램 방법
US7680621B2 (en) * 2007-08-15 2010-03-16 Keithley Instruments, Inc. Test instrument network
JP2009300248A (ja) * 2008-06-13 2009-12-24 Mitsubishi Electric Corp 並列試験装置
KR20100103212A (ko) * 2009-03-13 2010-09-27 삼성전자주식회사 복수개의 테스트 모듈을 구비하는 테스트 보드 및 이를 구비하는 테스트 시스템
US8683456B2 (en) 2009-07-13 2014-03-25 Apple Inc. Test partitioning for a non-volatile memory
US8645776B2 (en) * 2010-03-24 2014-02-04 Apple Inc. Run-time testing of memory locations in a non-volatile memory
US8650446B2 (en) * 2010-03-24 2014-02-11 Apple Inc. Management of a non-volatile memory based on test quality
US8751903B2 (en) 2010-07-26 2014-06-10 Apple Inc. Methods and systems for monitoring write operations of non-volatile memory
US9397500B2 (en) * 2013-06-28 2016-07-19 Solantro Semiconductor Corp. Inverter with extended endurance memory
CN110502439B (zh) * 2019-08-07 2024-01-12 Oppo广东移动通信有限公司 调试方法、装置、电子设备以及存储介质
CN114546822A (zh) * 2021-12-27 2022-05-27 芯华章科技股份有限公司 测试设计的方法、电子设备及存储介质
US11914500B2 (en) * 2022-02-03 2024-02-27 Apple Inc. Debugging of accelerator circuit for mathematical operations using packet limit breakpoint

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2577120Y2 (ja) * 1993-04-15 1998-07-23 株式会社アドバンテスト 過剰パルス印加の禁止回路
JP3237473B2 (ja) * 1995-06-29 2001-12-10 安藤電気株式会社 マスク制御装置
JP3846939B2 (ja) * 1995-08-30 2006-11-15 フリースケール セミコンダクター インコーポレイテッド データプロセッサ
US5771240A (en) * 1996-11-14 1998-06-23 Hewlett-Packard Company Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin
US6360340B1 (en) * 1996-11-19 2002-03-19 Teradyne, Inc. Memory tester with data compression
US6253338B1 (en) * 1998-12-21 2001-06-26 International Business Machines Corporation System for tracing hardware counters utilizing programmed performance monitor to generate trace interrupt after each branch instruction or at the end of each code basic block
US6327544B1 (en) * 1999-03-01 2001-12-04 Agilent Technologies, Inc. Automatic storage of a trigger definition in a signal measurement system
EP1089293B1 (de) * 1999-09-30 2008-12-10 STMicroelectronics S.r.l. Speicherprüfverfahren und nicht-fluchtiger Speicher mit niedriger Fehlerverdeckungswahrscheinlichkeit
US6615369B1 (en) * 2000-01-31 2003-09-02 Agilent Technologies, Inc. Logic analyzer with trigger specification defined by waveform exemplar

Also Published As

Publication number Publication date
US6834364B2 (en) 2004-12-21
KR100881843B1 (ko) 2009-02-03
JP2003050269A (ja) 2003-02-21
US20020157042A1 (en) 2002-10-24
JP4298960B2 (ja) 2009-07-22
KR20020081673A (ko) 2002-10-30

Similar Documents

Publication Publication Date Title
DE10217303A1 (de) Algorithmisch programmierbarer Speichertester mit Unterbrechungspunktauslöser, Fehlerblockierung und Oszilloskop-Modus, der Zielsequenzen speichert
DE60111324T2 (de) Fehlerdiagnose-RAM eines Speichertesters mit nach Grösse und Geschwindigkeit konfigurierbaren SDRAM Speichereinheiten
DE10147910A1 (de) Speichertester weist Speichersätze auf, die für die Verwendung als Fehlererfassungs-RAM, Etiketten-RAM, Pufferspeicher und Stimulus-LOG-RAM konfigurierbar sind
DE60219990T2 (de) Speichertest-Schaltung
DE60220511T2 (de) Verfahren und system zur optimierung der testkosten und deaktivierungsdefekte für scan- und bist-speicher
DE2918053C2 (de)
DE60012966T2 (de) Hochgeschwindigkeitsfehlererfassungsgerät und verfahren für automatische testeinrichtung
DE4305442C2 (de) Verfahren und Vorrichtung zum Erzeugen eines Testvektors
DE602004009284T2 (de) Systeme und Verfahren um automatisch generiertes Testmuster zu verarbeiten
DE102006009224B4 (de) Auswahl eines Testalgorithmus in einer Steuerung für eingebauten Speicherselbsttest
DE69729771T2 (de) Integrierte Schaltung mit einer eingebauten Selbsttestanordnung
DE102011053359B4 (de) Latch-basierte Speichervorrichtung und Verfahren zum Testen derselben
DE4206286C2 (de) Speicherzugriffssystem und Verfahren zum Ausgeben eines digitalen Datenstromes
DE10017619C2 (de) Vorrichtung und Verfahren zum Prüfen einer Halbleitervorrichtung
DE112008000397T5 (de) Eingebettete Architektur mit serieller Schnittstelle zum Testen von Flashspeichern
DE10153753B4 (de) Speichertester unterläßt ein Programmieren von Adressen in erfaßten schlechten Spalten
DE112019004344T5 (de) Testsystem zur Ausführung eines integrierten Selbsttests im Einsatz für Fahrzeuganwendungen
DE19948388A1 (de) Verfahren und System zum Prüfen eingebetteter Speicher
DE102005026403B4 (de) Verfahren zum Liefern von Abtastmustern zu einer elektronischen Vorrichtung
DE60109321T2 (de) Prüfung von asynchroner rücksetzschaltung
DE102013114512A1 (de) Globales Einfangschema mit niedriger Leistung für Kerne
DE10153665A1 (de) Speichertester mit verbesserter Nachdecodierung
DE60306164T2 (de) Verfahren und kontrolllogik zum ansteuern von mehreren taps (test access ports) über einen einzigen tap
DE60015720T2 (de) Verfahren und Anordnung zum Arbitrieren des Zugriffes eines Zeitmutiplex-verteilten Speichers von mehreren Prozessoren in einem Echtzeitsystem
DE3639395C2 (de) Informationsverarbeitungs-Vorrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: VERIGY (SINGAPORE) PTE. LTD., SINGAPORE, SG

8139 Disposal/non-payment of the annual fee