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 speichertInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External 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.
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.
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)
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)
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 |
-
2001
- 2001-04-19 US US09/838,766 patent/US6834364B2/en not_active Expired - Lifetime
-
2002
- 2002-04-18 DE DE10217303A patent/DE10217303A1/de not_active Withdrawn
- 2002-04-18 KR KR1020020021258A patent/KR100881843B1/ko active IP Right Grant
- 2002-04-19 JP JP2002117030A patent/JP4298960B2/ja not_active Expired - Fee Related
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 |