-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung
zum Eigentest von Multiport-Schreib-Lesespeichern (RAM's).
-
Hintergrund
der Erfindung
-
Eingebettete
Multiport-RAM's
haben umfangreiche Anwendungen in Telekommunikations- und Mehrprozessorsystemen.
Aufgrund des beschränkten
Zuganges an eingebettete Speicher von den externen Anschluss-Stiften
eines ASIC, ist ein eingebauter Eigentest (BIST) ein bevorzugter
Test für RAM's. Typische BIST-Algorithmen
sind der MARCH-Algorithmus [A. J. van de Goor, Testing Semiconductor
Memories: Theory and Practice, John Wiley & Sons Ltd., England 1991] und der SMARCH-Algorithmus
[B. Nadeau-Dostie, A. Silburt und V. K. Agarwal "Serial Interfacing for Embedded Memory
Testing", IEEE Design
and Test of Computers, April 1990, Seite 52].
-
Die
meisten Multiport-Speicher-BIST-Algorithmen behandeln den Speicher
als mehrfache einzelne Einzelport-Speicher und testen jeden unabhängig, wobei
die Algorithmen verwendet werden, die für Einzelport-RAM's entwickelt wurden.
Ein Hauptproblem bei dieser Lösung
besteht in dem Fehlen der Berücksichtigung
einiger Multiport-spezifischer Fehler, wie z. B. Zwischen-Port-Störungen aufgrund
von Kurzschlüssen
zwischen Ports.
-
Es
wurden modifizierte MARCH-Algorithmen zur Feststellung von Zwischen-Port-Kurzschlüssen von
T. Matsumura in den Veröffentlichungen "An Efficient Test
Method for Embedded Multi-port RAM with BIST Circuitry", Records of the
1995 IEEE Int. Workshop on Memory Tech. Design and Testing, San
Jose, CA., Seiten 62–67,
1995 und M. J. Raposa "Dual Port
Static RAM Testing",
Proc. IEEE Int. Test Conf., Seiten 362–368, 1988 vorgeschlagen. Der
Algorithmus testet Paare von Ports durch gleichzeitiges Ausführen eines
MARCH-Tests mit aufsteigenden Adressen an einem Port und eines weiteren
MARCH-Tests mit absteigenden Adressen an dem anderen Port. Der Test
berücksichtigt
alle Wortleitungs-Kurzschlüsse
und Bitleitungs-Kurzschlüsse,
jedoch lediglich innerhalb der gleichen Reihe oder Spalte. Der Test kann
weiterhin eine erhebliche Silizium-Fläche für die Weglenkung aufgrund der
Notwendigkeit erfordern, unterschiedliche Adressen an die zwei Ports
bereitzustellen.
-
Eine
Veröffentlichung
von S. Wood, R. Gibson, S. Adham und B. Nadeau-Dostie mit dem Titel "A 5 Gb/s 9-Port Application
Specific SRAM with Built-In Self-Test, Records of the 1995 IEEE
Int. Workshop on Memory Tech. Design and Testing, San Jose, CA.
Seiten 68–73,
August 1995 beschreibt einen Schatten-Schreibtest. In dem Schatten-Schreibtest erzwingen,
wenn ein Port in die Schatten-Schreibbetriebsart gebracht wird,
seine Schreib-Treiber kontinuierlich einen konstanten Wert auf allen
Bitleitungen, wobei seine Wortleitungen intern unwirksam gemacht
werden. Somit wird, wenn kein Kurzschluss zwischen diesem Port und
dem geprüften
Port vorhanden ist, keine Speicherzelle durch das Schatten-Schreiben
beeinflusst. Wenn andererseits ein Zwischenport-Kurzschluss vorliegt,
so wird der von dem getesteten Port ausgelesene Wert durch den Wert
beeinflusst, der durch den Schatten-Schreibvorgang angesteuert wird. Das
Schatten-Schreiben erfordert eine Konstruktions- und Auslegungs-Modifikation.
-
Es
ist ein Ziel der vorliegenden Erfindung, eine verbesserte Vorrichtung
und ein verbessertes Verfahren zum Selbsttesten eines Multiport-RAM
zu schaffen.
-
Zusammenfassung
der Erfindung
-
Gemäß einem
Gesichtspunkt der vorliegenden Erfindung wird ein Verfahren zum
Testen eines Multiport-RAM (Schreib-Lese- oder Direktzugriffsspeicher)
geschaffen, der RAM-Zellen mit m Reihen × n Spalten umfasst, wobei
jede RAM-Zelle Speichereinrichtungen zum Speichern binärer Daten
einschließt,
wobei die Reihen und Spalten der RAM-Zellen durch ein Adressensignal
adressiert werden, das ein Reihen-Adressensignal mit einer Anzahl
von Bits umfasst, gekennzeichnet durch Testen eines ausgewählten Ports
auf Einzelport-Fehler, Unwirksammachen des Schreibens an den oder
die anderen Ports, und Testen des oder der anderen Ports auf Zwischen-Port-Fehler
unter Verwendung von Port-Adressen, die durch Modifizieren eines
bestimmten Bits des Reihen-Adressensignals abgeleitet sind, das
an den ausgewählten
Port geliefert wird.
-
Gemäß einem
weiteren Gesichtspunkt der Erfindung wird eine Vorrichtung zum Testen
eines Multiport-RAM geschaffen, wobei der RAM RAM-Zellen mit m Reihen × n Spalten
umfasst, wobei jede RAM-Zelle Speichereinrichtungen zum Speichern
binärer
Daten einschließt,
wobei die Reihen und Spalten der RAM-Zellen durch ein Adressensignal
adressiert werden, das ein Reihen-Adressensignal mit einer Anzahl
von Bits umfasst, wobei die Vorrichtung gekennzeichnet ist durch
Port-Auswahleinrichtungen,
Einzelport-Fehlerdetektionseinrichtungen, die zum Testen des ausgewählten Ports
auf Einzelport-Fehler ausgebildet sind, Abschalteinrichtungen zum
Abschalten des Schreibens an den oder die anderen Ports, während der
Einzelport-Test ausgeführt wird,
Adressen-Modifikationseinrichtungen zur Modifikation eines bestimmten
Bits des Reihen-Adressensignals, das an den ausgewählten Port
geliefert wird, und Einrichtungen zum Testen des oder der anderen Ports
auf Zwischen-Port-Fehler unter Verwendung von Port-Adressen, die
von den Adressen-Modifikationseinrichtungen abgeleitet sind.
-
Kurze Beschreibung
der Zeichnungen
-
Ausführungsformen
der vorliegenden Erfindung werden nunmehr in Form eines Beispiels
unter Bezugnahme auf die beigefügten
Zeichnungen beschrieben, in denen:
-
1A und 1B Beispiele von Bitleitungs- und Wortleitungs-Kurzschlüssen zeigen;
-
2 ein Blockschaltbild einer
Testvorrichtung gemäß einer
Ausführungsform
der vorliegenden Erfindung ist;
-
3 ein Blockschaltbild einer
BIST-Steuerung nach 2 ist;
-
4 eine Realisierung eines
Adressen-Modifizierers gemäß 2 zeigt;
-
5 ein Beispiel einer Ausführung eines Schrittes
zeigt, der von der BIST-Steuerung ausgeführt wird;
-
6 ein Beispiel einer Ausführung eines weiteren
Schrittes zeigt, der von der BIST-Steuerung ausgeführt wird;
-
7 ein Blockschaltbild einer
Testvorrichtung gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung ist;
-
8 eine BIST-Realisierung
des Algorithmus zeigt;
-
9 ein weiteres Beispiel
einer BIST-Realisierung des Algorithmus zeigt;
-
10 ein Blockschaltbild einer
Testvorrichtung gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung zeigt; und
-
11 ein Blockschaltbild einer
Testvorrichtung gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung ist.
-
Ausführliche Beschreibung
-
1. Fehlermodelle
-
Im
Folgenden werden Fehlermodelle diskutiert, die spezifisch für Multiport-Speicher
sind, nämlich
Bitleitungs- und Wortleitungs-Kurzschlüsse über Ports hinweg.
-
(i) Bitleitungs-Kurzschlüsse
-
Im
Allgemeinen ist ein Bitleitungs-Kurzschluss über Ports hinweg ein Überbrückungsfehler, der
eine Bitleitung eines Ports mit einer Bitleitung eines weiteren
Ports kurzschließt.
In der Praxis können Bitleitungen,
die physikalisch weit voneinander entfernt sind, nicht kurzgeschlossen
werden, und lediglich Bitleitungs-Kurzschlüsse innerhalb der gleichen und
benachbarten Spalten sind am wahrscheinlichsten.
-
Die 1A und 1B zeigen Beispiele von Zwischen-Port-Bitleitungs-Kurzschlüssen in
zwei unterschiedlichen Auslegungsarten für einen Speicher mit zwei Ports:
A und B. In 1A sind
Bitleitungs-Kurzschlüsse
innerhalb der gleichen Spalte oder zwischen benachbarten Spalten
möglich.
Wenn jedoch die Bitleitungen spiegelbildlich angeordnet sind, wie dies
in 1B gezeigt ist, so
sind lediglich Zwischenport-Bitleitungs-Kurzschlüsse innerhalb der gleichen Spalte
möglich.
-
(ii) Wortleitungs-Kurzschlüsse
-
Ähnlich wie
die Bitleitungs-Kurzschlüsse sind
die wahrscheinlichsten Zwischen-Port-Wortleitungs-Kurzschlüsse Wortleitungs-Kurzschlüsse innerhalb
der gleichen Reihe und zwischen benachbarten Reihen. Wenn die Wortleitungen
in der in 1A gezeigten
Weise ausgelegt sind, können
beide Typen von Wortleitungs-Kurzschlüssen auftreten.
Für die Auslegungsart
nach 1B ist lediglich
ein Zwischen-Port-Kurzschluss innerhalb der gleichen Reihe möglich. Ein
Kurzschluss zwischen benachbarten Reihen kann lediglich für den gleichen
Port auftreten und wird sehr einfach durch die meisten üblichen
Einzelport-BIST-Algorithmen erfasst. Diese Zwischen-Port-Wortleitungs-Kurzschlüsse können weiter
in a) WSA-Kurzschlüsse, die
als ein Kurzschluss zwischen aktivierten und nicht aktivierten Wortleitungen
definiert sind, der beide Wortleitungen aktivieren; und b) WSD-Kurzschlüsse kategorisiert
werden, die als ein Kurzschluss zwischen aktiven und nicht aktiven
Wortleitungen definiert sind, der beide Wortleitungen abschaltet.
WSA- und WSD-Wortleitungs-Kurzschlüsse in der
gleichen Reihe sowie zwischen benachbarten Reihen, werden untersucht.
-
Ein
Schatten-Schreibtest für
Bitleitungs- und Wortleitungs-Kurzschlüsse über Ports von Multiport-Speichern
hinweg ist in der anhängigen
US-Patentanmeldung Nr. 08/667 828 von S. Wood et al. vom 20. Juni
1996, in der anhängigen
US-Patentanmeldung
08/719 306 von R. G. Gibbins et al. am 19. September 1996 und in
der anhängigen
US-Patentanmeldung 08/719 301 von G. F. R. Gibson vom 19. Juni 1996
beschrieben, die durch diese Bezugnahme hier mit aufgenommen werden.
-
II. Erste Ausführungsform
-
II-1. Schaltungskonfiguration
-
2 zeigt eine Ausführungsform,
die mit einem Multiport-RAM verbunden ist. In 2 ist ein RAM 210 ein N-Port-
(beispielsweise 5-Port-) Speicher und wird durch eine BIST-Steuerung 212 und eine
Funktionsbetriebsart-Schnittstelle 214 getestet. Der RAM 210 schließt RAM-Zellen
in einer Vielzahl von Reihen und Spalten ein. Jede RAM-Zelle schließt ein Datenspeicherelement
zum Speichern von Binärdaten
ein. Die Reihen und Spalten der RAM-Zellen werden durch ein Adressensignal
adressiert. Der RAM 210 hat an jedem Port einen Datenausgangsanschluss
Q, einen Steueranschluss Cont, einen Dateneingangsanschluss D, einen
Schreibfreigabeanschluss W und einen Adressenanschluss Add. Die Funktionsbetriebsart-Schnittstelle 214 ist
mit N Gruppen von Wählern 2161 –2164 verbunden, wobei jede der Gruppen
mit den Anschlüssen
eines jeweiligen Ports des RAM 210 verbunden ist. Die N
Datenausgangsanschlüsse
Q des RAM 210 sind mit einem Multiplexer 218 verbunden,
dessen Ausgangsanschluss mit einem Testdaten-Eingangsanschluss Daten-Ein der BIST-Steuerung 212 verbunden
ist. Ein Steueranschluss Cont der BIST-Steuerung 212 ist mit
einem der zwei Eingangsanschlüsse
jedes der N Wähler 216,
verbunden. Ein Adressenanschluss Add der BIST-Steuerung 212 ist
mit den Eingangsanschlüssen
von N Adressenmodifizierern 220 verbunden. Der Ausgangsanschluss
jedes Adressenmodifizierers 220 ist mit dem Eingangsanschluss
des jeweiligen Wählers 216a verbunden.
Ein Schreibfreigabeanschluss WE der BIST-Steuerung 212 ist
mit Eingangsanschlüssen
von N UND-Verknüpfungsgliedern 222 verbunden.
Der Ausgangsanschluss jedes UND-Verknüpfungsgliedes 222 ist
mit dem Eingangsanschluss des jeweiligen Wählers 2163 verbunden.
Ein Testdaten-Ausgangsanschluss Daten-Aus der BIST-Steuerung 212 ist
mit den Eingangsanschlüssen
der N Wähler 2162 verbunden. Ein BIST-Ein-Anschluss
Biston der BIST-Steuerung 212 ist mit den Wähleranschlüssen der
N Gruppen der Wähler 2161 –2164 verbunden. Ein Erledigt-Anschluss ERLEDIGT
(Done) und ein Portadressenanschluss Port Add der BIST-Steuerung 212 sind
mit einem Port-Wähler 224 verbunden,
dessen N Ausgangsanschlüsse
mit den N Adressenmodifizierern 220 und den N UND-Verknüpfungsgliedern 222 verbunden
sind. Der Schreibfreigabeanschluss WE ist eine Einzelbit-Leitung.
Der Dateneingangsanschluss D und der Datenausgangsanschluss Q sind
n-Bit breit. Mit einem/bezeichnete Leitungen sind mehrere Bits breit.
-
3 zeigt ein Beispiel der
BIST-Steuerung 212. Die BIST-Steuerung 212 schließt einen
Steuerblock 310, einen Zeitsteuergenerator 312,
einen Adressenzähler 314 und
einen Portzähler 316 ein. Die
BIST-Steuerung 212 ist eine übliche Steuerung und ihre Einzelheiten
hinsichtlich der Struktur und der Betriebsweise finden sich in der
Veröffentlichung
von B. Nadeau-Dostie, A. Silburt und V. K. Agarwal mit dem Titel "Serie) Interfacing
for Embedded Memory Testing",
IEEE Design and Test of Computers, April 1990, Seiten 52 bei 58
und 59, wobei diese Veröffentlichung
durch diese Bezugnahme hier mit aufgenommen wird.
-
4 zeigt ein Beispiel des
Adressenmodifizierers, der in 2 gezeigt
ist. Der Adressenmodifizierer 220 schließt ein Exklusiv-ODER-Verknüpfungsglied 410 und
einen Inverter 412 ein. Der Eingangsanschluss des Inverters 412 ist
mit dem jeweiligen Ausgangsanschluss des Port-Wählers 224 nach 4 verbunden und empfängt ein
jeweiliges Auswahlsignal Sel 0, Sel 1, ..., oder Sel (N – 1). 4 ist eine Realisierung
des Adressenmodifizierers 220 mit Y = 2i, 0 ≤ i, worin
Y ein Parameter ist, der weiter unten definiert wird.
-
II-2. Betriebsweise der
Ausführungsform
-
Die
Betriebsweise der in 2 gezeigten Testvorrichtung
wird nunmehr unter Bezugnahme auf die 2–4 beschrieben.
-
In
der Testbetriebsart aktiviert die BIST-Steuerung 212 das
Signal Biston, um die Testdaten für den RAM im Gegensatz zur
Auswahl der Daten von der Funktionsbetriebsart-Schnittstelle 214 auszuwählen. Das
Testen des RAM 210 arbeitet wie folgt:
-
Wenn
die BIST-Steuerung 212 den Port 0 des RAM testet, aktiviert
der Port-Wähler 224 das
Signal Sel 0 und deaktiviert alle anderen Port-Auswahlsignale Sel
1, ..., Sel (N – 1).
Das aktivierte Signal Sel 0 sensiblisiert das Schreibfreigabesignal
WE an den Port 0. Es bringt weiterhin den Adressenmodifizierer 220 für den Port
0 in eine Umgehungsbetriebsart, so dass die Adresse von der BIST-Steuerung 212 direkt an
die Adressenanschlüsse
des Ports 0 angelegt wird. Andererseits machen die deaktivierten Port-Auswahlsignale
Sel 1, ..., Sel (N – 1)
das Schreibfreigabesignal WE an die entsprechenden Ports unwirksam.
Zusätzlich
bringen sie weiterhin den entsprechenden Adressenmodifizierer 220 in eine
Transformationsbetriebsart, so dass die Adresse von der BIST-Steuerung 212 in
dem Adressenmodifizierer 220 modifiziert und dann an die
Adressenanschlüsse
der entsprechenden Ports angelegt wird. Weiterhin liefert der Port-Wähler 224 einen
Befehl an den Multiplexer 218, so dass dieser lediglich
die Test-Antwortdaten von dem Port 0 an die BIST-Steuerung 212 zur Auswertung
auswählt.
-
Sobald
die vorstehenden Signale gesetzt sind, führt die BIST-Steuerung 212 einen
Einzelport-Testalgorithmus aus. Das grundlegende Prinzip des Algorithmus
besteht darin, einen üblichen
Einzelport-BIST, in diesem Fall MARCH, an einem Port des Speichers
auszuführen,
beispielsweise dem Port 0, während
gleichzeitig ein Zwischen-Port-Test an allen anderen Ports ausgeführt wird.
Der Zwischen-Port-Test führt
Pseudo-Leseoperationen an Adressen aus, die von denen auf dem Port
0 abweichen. Im Gegensatz zu einer tatsächlichen Leseoperation, die
die spezifizierten Speicherzellen adressiert und ihren Inhalt mit
irgendwelchen Bezugsdaten vergleicht, führt ein Pseudo-Nur-Lesen einen
Zugriff auf die spezifizierten Speicherzellen ohne Vergleichen ihrer
Inhalte aus. Diese Pseudo-Lese-Operationen
ermöglichen
die Feststellung von Zwischen-Port-Bitleitungs-Kurzschlüssen in der gleichen und benachbarten
Spalten, sowie von WSA- und WSD-Wortleitungs-Kurzschlüssen in
den gleichen und benachbarten Reihen durch den Einzelport-BIST an
den Port 0. Durch Wiederholen des Tests für jeden anderen Port nacheinander
kann die Betriebsweise aller Ports und ihrer Wechselwirkungen dann überprüft werden.
-
Ein
Pseudo-Code für
den Multiport-BIST-Algorithmus für
einen Speicher mit M Ports wird nachfolgend angegeben.
-
Schreibweisen
-
- – d
ist stellt irgendwelche gültigen
Daten an den Speicher dar. Beispielsweise ist, wenn ein Schachbrettmuster
erwünscht
ist, d = 0101 ... 0101.
- – (Rd)@add
und (Rd)@add stellen Lese-d-
bzw. Lese-d-Operationen an
der Adresse add des Leseports dar.
- – (Rx)@z(add)
stellt eine Pseudo-Leseoperation an der Adresse z(add) des Leseports
dar.
- (Rd)@add(Rx)@z(add) stellt eine Lese-d-Operation an der Adresse add gefolgt
von einer Pseudo-Leseoperation (Rx) an der Adresse z(add) des Leseports
dar.
- – (W-Wd)@add und (W-Wd)@add stellen
einen Nicht-Schreiben-Zyklus (bezeichnet als W-) gefolgt von Schreib-d- bzw. d-Operationen in
dem Schreibport der Adresse add dar. Der Nicht-Schreiben-Zyklus
(W-) ist grundlegend eine Nulloperation an dem Schreibport, wobei
die Schreib-Freigabe abgeschaltet ist.
- – (RdWd)@add und (RdWd)@add stellen ein Lesen von d gefolgt
von einem Schreiben von d,
beides an der Adresse add, bzw. ein Lesen von d gefolgt von einem Schreiben von d, beides
an add, dar.
- – i:
(RdWd)@add und i: (RdWd)@add stellen die Durchführung von
(RdWd)@add bzw. (RdWd)@add
für den
Port i dar.
- – Schließlich sind
zwei Ereignisse, die in einem Paar von eckigen Klammern [..., ...]
eingeschlossen sind, zwei gleichzeitige Ereignisse. Beispielsweise
zeigt [i: (RdWd)@add, j:(RxRx)@z(add)] an,
das (RdWd) an der Adresse
add für
den Port i ausgeführt
wird, und dass gleichzeitig (RxRx) an der Adresse z(add) für den Port
j ausgeführt
wird.
-
Mit
den vorstehend definierten Schreibweisen kann der Algorithmus wie
folgt zusammengefasst werden:
-
Algorithmus
P
-
M0:
initialisiere Speicher mit Daten d;
M1: für Port i = 0 bis N – 1 do
M2:
für Adresse
add = 0 bis w – 1
do
[i: (RdWd)@add, j:
(RxRx)@z(add)], j ≠ i;
M3:
für Adresse
add = 0 bis w – 1
do
[i: (RdWd)add, j:
(RxRx)@z(add)], j ≠ i;
M4:
für Adresse
add = w – 1
herunter bis 0 do
[i: (RdWd)@add,
j: (RxRx)@z(add)], j ≠ i;
M5:
für Adresse
add = w – 1
herunter bis 0 do
[i: (RdWd)@add,
j: (RxRx)@z(add)], j ≠ i;
M6:
für Adresse
add = w – 1
herunter bis 0 do
[i: (RdWd)@add,
j: (RxRx)@z(add)], j ≠ i;
-
In
dem vorstehenden Algorithmus ist z(add) = {col, [row + (-1)⌊Reihe/Y⌋Y]},
wenn add = {col, row} ist, worin col und row die Spalten- bzw. Reihenadressen
darstellen; Y eine positive ganze Zahl ist und ⌊row/Y⌋ das Ergebnis einer Ganzzahl-Division
ist. Es sei bemerkt, dass ohne die Operationen an Ports j der Algorithmus
der gleiche wie der MARCH C-Algorithmus ist.
-
Aufgrund
der Adressentransformation auf die anderen Ports als den Port i
deckt dieser Einzelport-Testalgorithmus nunmehr nicht nur alle die üblichen
Einzelport-Fehler
im Port i sondern auch alle die Zwischen-Port-Kurzschlüsse zwischen
dem Port i und irgendeinem anderen Port ab, wobei j ≠ i ist.
-
5 zeigt die Ausführung des
vorstehenden Algorithmus (ein Beispiel des Schrittes M2) an mehreren
Speicherzellen in der gleichen Spalte eines Dual-Port-Speichers. Es wird
angenommen, dass d = 0 ist, und dass der Port A mit dem MARCH-Test
getestet wird. 5(b)–(e) zeigen die Ausführung des Schrittes M2 des
Algorithmus jeweils an den Reihenadressen 0, 1, 2 und Y, und sie
werden zum Analysieren der Abdeckung von Bitleitungs- und Wortleitungs-Kurzschlüssen verwendet.
Damit die Analyse der vorstehenden vier Reihen auf alle anderen
Adressen anwendbar ist, ist die Reihe Y + 2 ebenfalls in 5(a)–(e) eingefügt. Die
erste Spalte in 5(b)–(e) zeigt die Inhalte der Speicherzellen nach
der R 0-Operation
am Port A, während
die zweite Spalte die Inhalte der Zellen nach der W 1-Operation
zeigt. Es sei nunmehr angenommen, dass Y > 1 ist. Später in diesem Abschnitt werden
wir den Fall für Y
= 1 diskutieren.
-
(i) Bitleitungs-Kurzschlüsse
-
Es
sei zunächst
Bitleitungs-Kurzschluss innerhalb der gleichen Spalte betrachtet.
Es ist klar zu erkennen, dass dieser Kurzschluss bewirkt, dass Schreibdaten
vom Port A auch fehlerhaft in die Zelle geschrieben werden, die
von dem Port B adressiert wird. Beispielsweise schreibt in 5(b) die (ROW1) Operation
an der Reihe 0 von Port A auch eine 1 in die Reihe Y, die festgestellt
wird, wenn ein (ROW1) nachfolgend an der Reihe Y durchgeführt wird.
Zusätzlich
ruft ein derartiger Kurzschluss auf das Auftreten eines Konfliktes
X am Port A hervor, wenn der Port A ein (R0) an der Reihe Y ausführt, und
Port B ein (Rx) an der Reihe 0 ausführt, weil eine 0 von der Reihe
Y und eine 1 von der Reihe 0 beide gleichzeitig auf der Bitleitung
für den
Port A aufgrund des Kurzschlusses auftreten.
-
Ein
Bitleitungs-Kurzschluss über
benachbarte Spalten kann ebenfalls in einer ähnlichen Weise festgestellt
werden. Wenn beispielsweise ein Bitleitungs-Kurzschluss zwischen den Spalten 0 und
1 vorhanden ist, schreibt die (ROW1) Operation an der Reihe 0 und
der Spalte 0 vom Port A außerdem
eine 1 in die Zelle in Reihe Y und Spalte 1, die dann festgestellt
wird, wenn der Port A nachfolgend einen Zugriff auf die Spalte 1
ausführt.
-
(ii) Wortleitungs-Kurzschlüsse in der
gleichen Reihe
-
Es
seien Wortleitungs-Kurzschlüsse
in der gleichen Reihe betrachtet. Ein WSD-Wortleitungskurzschluss in der Reihe
0, das heißt
ein Kurzschluss, der die Wortleitung A aktiviert, ruft das Lesen
eines unbekannten Wertes X an dem Port A hervor und verhindert weiterhin,
dass der Port A eine 1 in diese Reihe schreibt. Andererseits ruft
ein WSA-Kurzschluss in der Reihe 0, das heißt ein Kurzschluss, der beide
Wortleitungen A und B aktiviert, das Auftreten eines Konfliktes
X an den Port A hervor, wenn der Port B eine (Rx) auf die Reihe
0 leitet und Port A eine (R0) an der Reihe Y ausführt (5(e)). Weiterhin wird dieser
Kurzschluss robuster in den Schritten M4 und M5 des Algorithmus
festgestellt, während
derer ein falscher Wert in die Reihe 0 geschrieben wird, wenn der
Port A eine (ROW1) oder (R1WO) an der Reihe Y ausführt und
Port B einen Zugriff auf die Reihe 0 ausführt. Dies ist in 6(b) gezeigt, die die Ausführung des
Schrittes M4 zeigt. In ähnlicher
Weise werden andere Wortleitungs-Kurzschlüsse innerhalb der gleichen
Reihe festgestellt.
-
(iii) Wortleitungs-Kurzschlüsse längs benachbarter Reihen
-
In ähnlicher
Weise wie WSD-Wortleitungskurzschlüsse innerhalb der gleichen
Reihe sind WSD-Kurzschlüsse über benachbarte
Reihen ebenfalls leicht feststellbar, weil sie immer dazu führen, dass
der dem MARCH-Test unterworfene Port einen unbekannten Wert X liest
und er weiterhin an einem Schreiben an die adressierte Reihe gehindert
ist.
-
Es
sei nunmehr ein WSA-Wortleitungskurzschluss zwischen der Wortleitung
B der Reihe 0 und der Wortleitung A der Reihe 1 betrachtet. Ein
derartiger Kurzschluss führt
zu dem Auftreten eines Konfliktes X an dem Port A, wenn der Port
B einen Zugriff auf die Reihe 0 ausführt und der Port A einen Lesevorgang
an der Reihe Y ausführt
(5(e)). Weiterhin wird
eine fehlerhafte 1 in die Reihe 1 im Schritt M4 geschrieben, wenn
der Port B die Reihe 0 adressiert und der Port A eine W1-Operation an der
Reihe Y ausführt,
was in 6(b) gezeigt
ist. In ähnlicher Weise
wird ein WSA-Kurzschluss zwischen der Reihe 1 und der Reihe 2 festgestellt.
-
Wenn
ein WSA-Kurzschluss zwischen der Reihe Y und der Reihe Y + 1 vorliegt,
wenn der Port A die Reihe 0 adressiert und der Port B die Reihe
Y adressiert, so wird die Reihe Y + 1 aufgrund des Kurzschlusses
ebenfalls vom Port A ausgewählt. Dies
führt zu
einem Konflikt X aufgrund einer 0 von der Reihe 0 und einer 1 von
der Reihe Y + 1 im Schritt M4, was in 6(e) gezeigt
ist. Weiterhin wird im Schritt M2 eine fehlerhafte 1 in die Reihe
Y + 1 geschrieben, wenn der Port A eine W1-Operation an der Reihe 0 ausführt und
der Port B die Reihe Y adressiert, wie dies in 5(b) gezeigt ist.
-
Aus
der vorstehenden Analyse kann geschlossen werden, dass der vorgeschlagene
Algorithmus alle Wortleitungskurzschlüsse in den gleichen und benachbarten
Reihen sowie alle Bitleitungs-Kurzschlüsse in den gleichen und benachbarten
Reihen feststellt.
-
Im
Allgemeinen ist es wünschenswert,
Y so klein wie möglich
zu halten, weil der Reihenadressenraum des Speichers durch 2Y teilbar
sein muss. Daher ist Y = 2 die beste Wahl, weil in der vorstehenden
Analyse angenommen wurde, dass Y > 1
ist. Für den
Fall, in dem Y = 1 ist, deckt der Algorithmus sowohl Zwischen-Port-Bitleitungskurzschlüsse in der gleichen
Spalte und über
Spalten hinweg sowie Zwischen-Port-Wortleitungskurzschlüsse in der
gleichen Reihe ab. Der Algorithmus mit Y = 1 deckt jedoch lediglich
50% der Zwischen-Port-Wortleitungskurzschlüsse über benachbarte Reihen hinweg
ab. Der Grund hierfür
ist wie folgt. Für
Y = 1 wird, wenn der Port A einen Zugriff auf die Reihe j ausführt, und
der Port B die Reihe j + 1 adressiert oder umgekehrt, worin j eine
gerade ganze Zahl ist, bei Vorliegen eines Wortleitungs-Kurzschusses
zwischen den Reihen j und j + 1 dieser niemals festgestellt, weil
die zwei kurzgeschlossenen Wortleitungen immer mit dem gleichen
Wert zugeordnet eingestellt sind. Dies ist aus 5(a) zu erkennen, die einen Kurzschluss zwischen
der Wortleitung B der Reihe 0 und der Reihe 1 der Wortleitung A
zeigt. Andererseits wird ein Kurzschluss zwischen den Reihen j +
1 und j + 2 in der gleichen Weise wie für den Fall Y > 1 abgedeckt. Daher
wird, wenn die Zwischen-Port-Wortleitungskurzschlüsse über benachbarte
Reihen keine Problematik darstellen, beispielsweise aufgrund der
sorgfältigen
Auflösung
nach 1B, Y = 1 die beste
Wahl darstellen wird.
-
Sobald
der Test abgeschlossen ist, schaltet die BIST-Steuerung 212 den
Port-Wähler 224 weiter, um
einen anderen Port auszuwählen,
indem das Signal Sel i aktiviert wird, worin 0 < i < N
ist, während
alle anderen deaktiviert werden. Der Prozess wiederholt sich, bis
alle Ports getestet wurden. Die Testvorrichtung hat die folgenden
zwei Schlüsselmerkmale:
- 1. Wenn sie den Port i auf Einzelport-Fehler
prüft, legt
sie einen Satz von modifizierten Adressen an alle die anderen Ports
an, um alle diese anderen Ports in die Lese-Betriebsart zu bringen.
- 2. Sie wertet lediglich die Testdaten aus, die von dem im Einzeltest
befindlichen Port, das heißt Port
i in diesem Fall zurückkommen
(man kann jedoch auch die Testdaten von anderen Ports gleichzeitig
auswerten, weil die Bezugsdaten für diese Ports bekannt sind).
-
Es
sei darauf hingewiesen, dass einige der Funktionsmodule, wie z.
B. der Adressenmodifizierer 220, die UND-Verknüpfungsglieder 222,
der Multiplexer 218 und der Port-Wähler 224 außerhalb
oder innerhalb der BIST-Steuerung 212 angeordnet sein können. Für eine einfache
Weglenkung wird jedoch empfohlen, den Adressenmodifizierer 220 und
die UND-Verknüpfungsglieder 222 nahe
an dem RAM anzuordnen und den Multiplexer 218 und den Port-Wähler 224 nahe
an der BIST-Steuerung 212 oder im Inneren dieser Steuerung
anzuordnen.
-
III. Zweite Ausführungsform
-
7 zeigt eine weitere Ausführungsform. Um
den Hardware-Zusatzaufwand zu einem Minimum zu machen, kann eine
einzige BIST-Steuerung in vielen Fällen verwendet werden, um eine
Anzahl von Speichern zu testen. Wenn diese Speicher jedoch weit
auf einer ASIC verteilt sind, kann eine gemeinsam genutzte parallele
BIST-Steuerung aufgrund der Kosten einer globalen Lenkung des Datenbus
aufwändig
sein. Eine seriell ausgebildete Speicher-BIST-Steuerung (SMARCH)
macht diesen Zusatzaufwand dadurch zu einem Minimum, dass lediglich
ein 1-Bit-Testeingang
an alle Speicher geliefert wird und eine 1-Bit-Testantwort von jedem
Speicher empfangen wird. Die Erfindung kann ebenfalls zum Testen
von Multiport-RAM's in der seriellen
Weise verwendet werden. Eine serielle Realisierung der Erfindung
ist in 7 gezeigt.
-
Die
serielle Realisierung der Erfindung ist ähnlich zu der in 2 gezeigten parallelen Realisierung.
Die Unterschiede schließen
Folgendes ein.
- 1. Die serielle Version hat
lediglich 1-Bit-Testdaten, die zum niedrigst bewerteten Bit (LSB)
des Dateneinganges (D-Anschluss) jedes Ports laufen. Der Rest des
Datenbus kommt von Q des entsprechenden Ports. Dies ist das gleiche,
wie es in SMARCH beschrieben ist.
- 2. Die serielle Version hat lediglich 1-Bit-Testdaten, die von
dem höchst
bewerteten Bit (MSB) des Datenausganges (Q-Anschluss) jedes Ports über einen
Multiplexer 718 zurückkommen.
Der Rest des Q-Bus geht an den Dateneingang des gleichen Ports.
Diese Verbindung ist ebenfalls die gleiche, wie sie in SMARCH beschrieben
wird.
-
Der
im Abschnitt 3 angegebene Algorithmus kann sehr einfach so erweitert
werden, dass er mit dem seriellen SMARCH-Test zusammenwirkt. Der serielle
Multiport-Algorithmus
(der als Algorithmus S bezeichnet wird) kann aus dem Algorithmus
P erzeugt werden, in dem alle (RdWd)
und (RdWd) Operationen an
dem Port i durch (RdWd)n(RdWd) bzw. (RdWd)n(RdWd) ersetzt
werden und dass alle (RxRx) an dem Port j durch (RxRx)n(RxRx)
ersetzt werden. Im Algorithmus S ist d entweder eine binäre 0 oder eine
binäre
1. Hier beinhaltet ein (RdWd)n das Lesen von d aus dem MSB des Speichers
und das nachfolgende Schreiben von d an das LSB des Speichers n Mal,
wobei n die Wortleitungsbreite des Speichers ist, während ein
(RdWd) die nur einmalige Ausführung der
Operationen bedingt.
-
Wenn
die Operationen an anderen Ports als dem Port j ausgeschlossen werden,
so ist wiederum der serielle Multiport-Algorithmus S der gleiche
wie der SMARCH-Algorithmus.
Die Abdeckung des Algorithmus S von Zwischenport-Kurzschlüssen ist
die gleiche wie die des Algorithmus P. Weil weiterhin die serielle
Ausgestaltung lediglich den Datenbus betrifft, ist die zur Realisierung
des seriellen Multiport-Algorithmus
zusätzlich
zu einer üblichen
SMARCH-Steuerung die gleiche, wie die für den Algorithmus P.
-
Im
Vergleich mit SMARCH ergibt sich der Unterschied der Ausführungsformen
der 2 und 7 aufgrund der Einfügung der
Adressenmodifizierer 220 und 720 und der UND-Verknüpfungsglieder 222 und 722.
Diese Unterschiedlichkeit ergibt für die Ausführungsformen die vollständige Abdeckung
nicht nur der üblichen
Einzelport-Fehler
sondern auch der Zwischen-Port-Kurzschlüsse, während die in SMARCH beschriebene
Erfindung lediglich die üblichen
Einzelport-Fehler abdeckt.
-
IV. Weitere Realisierungen
-
8 zeigt eine mögliche Realisierung
für einen
Dualport-Speicher. Dieser Abschnitt erläutert eine mögliche Realisierung
für den
Fall, bei dem Y = 2 ist. Die Realisierung ist aufgrund der Ähnlichkeit
der an alle die Ports gelieferten Adressen unkompliziert. 8 zeigt eine mögliche Realisierung
für einen
Dualport-Speicher, bei dem Acol[ca – 1 : 9]
der Spaltenadressenbus mit der Breite Ca ist, Arow[ra – 1 : 0]
der Reihenadressenbus mit der Breite ra ist und D[n – 1 : 0]
und Q[n – 1
: 0] n-Bit-Breite Eingangs- bzw. Ausgangs-Datenbusse sind. Die Signale
SeIA und SeIB sind Portauswahlsignale für die Ports A bzw. B, und WE
ist die Schreibfreigabe. Die in 8 gezeigte MARCH
BIST-Steuerung ist eine übliche
parallele Einzelport-MARCH
BIST-Steuerung.
-
Für den in
Zwischen-Port-Test befindlichen Port wird dessen (LSB + 1)-Bit der
Reihenadresse Arow[1] invertiert, was äquivalent
zu der Ausführung von
[row + (-1)⌊row/2⌋2] ist.
Zusätzlich
wird seine Schreibfreigabe abgeschaltet. Alle anderen Signale sind
für die
beiden Ports die gleichen.
-
Diese
Realisierung erfordert die Hinzufügung von lediglich zwei Exklusiv-ODER-Verknüpfungsgliedern,
von zwei UND-Verknüpfungsgliedern und
zwei Invertern zu einer üblichen
MARCH BIST-Steuerung, ohne dass irgendeine Modifikation der Steuerung
selbst erforderlich ist (im Allgemeinen schließen die Kosten lediglich ein
Exklusiv-ODER-Verknüpfungsglied,
ein UND-Verknüpfungsglied
und einen Inverter pro Port des Speichers ein). Zusätzlich ist
der Flächen-Zusatzbedarf
unabhängig
von der Größe des Speichers
und beeinflusst den Datenpfad nicht. Weiterhin ergibt sich keine
Auswirkung auf die globale Weglenkung, wenn die zusätzlichen
Verknüpfungsglieder örtlich an
dem Speicher angeordnet sind.
-
Es
sei darauf hingewiesen, dass 8 lediglich
die Verbindung oder die Datenflüsse
in der Testbetriebsart zeigt. Die Wähler, die als 2161 –2164 (2)
gezeigt sind, sind hier aus Vereinfachungsgründen fortgelassen.
-
Im
Allgemeinen ist die Realisierung für den Fall, bei dem Y = 2k ist (mit k ≥ 0) ähnlich zu der in 8 gezeigten Realisierung,
in dem Arow[k] für die im Zwischen-Port-Test befindlichen
Ports invertiert wird, im Gegensatz zu Arow[1],
wie dies in 8 gezeigt
ist.
-
Eine
weitere mögliche
Ausführungsform
der Erfindung unter Anwendung auf einen Zwei-Port-Speicher ist in 9 gezeigt.
-
Feststellung
von Zwischen-Port-Kurzschlüssen über zwei
Nur-Lese-Ports
-
In
dem Algorithmus wurde angenommen, dass alle Ports Lese-/Schreibports
sind. Die vorgeschlagenen Algorithmen können jedoch auch Zwischen-Port-Kurzschlüsse zwischen
zwei Nur-Lese-Ports testen. Um einen Test auf derartige Kurzschlüsse durchzuführen, wird
einem der Nur-Lese-Ports die gleiche Adresse zugeführt, wie
dem Port, an dem der MARCH- oder SMARCH-Test ausgeführt wird
(der ein Lese-/Schreibport
oder ein Nur-Schreib-Port sein kann), während dem anderen Nur-Lese-Port die modifizierte
Adresse für
den Zwischen-Port-Test zugeführt
wird. Dies erfasst wiederum alle die Bitleitungs- und Wortleitungs-Kurzschlüsse in den
gleichen und benachbarten Reihen und Spalten. Die Fehlerabdeckung
kann jedoch nicht so robust sein, wie für Lese-/Schreib-Ports. Der
Grund hierfür
ist Folgender: für
Lese-/Schreib-Ports wird ein Kurzschluss sowohl während der
Lese- als auch der Schreib-Operationen an dem Port festgestellt,
der dem MARCH-Test unterworfen wird. Im Allgemeinen ist eine Schreiboperation
ausreichend leistungsfähig, um
irgendeine Leseoperation von irgendeinem anderen Port zu überschreiben,
wenn ein Kurzschluss existiert. Für Nur-Lese-Ports kann der Kurzschluss nur
durch einen Konflikt X während
einer Leseoperation festgestellt werden, was von der Leseschaltung als
falscher Wert interpretiert werden kann oder nicht.
-
V. BIST für Dualport-RAM's mit Nur-Schreib-
und Nur-Lese-Ports
-
Ein
weiterer Testalgorithmus steckt die Zwischen-Port-Brückenfehler
in einem Zwei-Port-Speicher
mit einem Nur-Lese- und einem Nur-Schreib-Port zusätzlich zu üblichen
Einzelport-Fehlern ab.
-
(i) Fehlermodelle
-
Der
Test deckt die üblichen
Einzelport-Fehler und die Zwischen-Port-Fehler ab. Im Folgenden
wird zunächst
der Algorithmus für
das Beispiel eines Dualport-RAM mit Nur-Lese- und Nur-Schreib-Port
angegeben.
-
(ii) Algorithmus
-
Dieser
Abschnitt bietet einen modifizierten MARCH-Algorithmus, der die
Zwischen-Port-Kurzschlüsse zusätzlich zu
den Fehlern abdeckt, die von einem üblichen MARCH-Test abgedeckt
sind. Aus Gründen
der Einfachheit und ohne Verlust an Allgemeinheit nimmt dieser Bericht
den Test eines Zwei-Port-Speichers mit einem Nur-Lese-Port und einem
Nur-Schreib-Port an. Es gibt die gleichen Schreibweisen wie die
vorstehend erwähnten.
Hier zeigt [(RdRx)@add, (W-Wd)@addadd]
an, dass eine (RdRx)-Operation an dem Leseport und eine (W-Wd)-Operation an dem Schreibport
gleichzeitig ausgeführt
werden, alle an der gleichen Adresse add.
-
Mit
den vorstehend definierten Schreibweisen kann der vorgeschlagene
Algorithmus wie folgt zusammengefasst werden:
M0: initialisiere
Speicher mit allen Daten d;
M1: für Adresse add = 0 bis w – 1 do
[(Rd)@add
(Rx)@z(add)], (W – Wd)@add];
M2: für Adresse
add = 0 bis w – 1
do
[(Rd)@add (Rx)@z(add),
(W – Wd)@add];
M3:
für Adresse
add = w – 1
herunter bis 0 do
[(Rd)@add (Rx)@ (add), (W – Wd)@add];
M4: für Adresse
add = w – 1
herunter bis 0 do
[(Rd)@add
(Rx)@z(add), (W – Wd)@add];
M5:
für Adresse
add = w – 1
herunter bis 0 do
[(Rd)@add (Rx)@z(add), (W – Wd)@add];
-
Es
sei bemerkt, dass der vorstehende Algorithmus zu dem MARCH C-Algorithmus
wird, der in A. J. van de Goor, Testing Semiconductor Memories: Theory
and Practice, John Wiley & Sons
Ltd., England, 1991, beschrieben ist, wenn die Adresse z(add) durch
add ersetzt wird und jede Pseudo-Leseoperation Rx durch eine Null-Operation an dem
Nur-Lese-Port ersetzt wird.
-
(iii) BIST-Realisierung
-
Die
Realisierung des vorgeschlagenen Algorithmus ist unkompliziert. 10 zeigt eine mögliche Realisierung
für einen
Dualport-Speicher mit einem Nur-Lese- und einem Nur-Schreib-Port.
In 10 ist ein Adressenmodifizierer
eines Exklusiv- oder
Verknüpfungsgliedes 912 mit
dem Nur-Lese-Port des Dualport-Speichers verbunden.
-
In 10 ist WE Schreibfreigabe
(aktiv hoch) und RE ist Lesefreigabe (aktiv hoch); D[n – 1 : 0]
ist der Eingangsdatenbus an den Schreibport, und Q[n – 1 : 0]
ist der Ausgangsdatenbus von dem Nur-Lese-Port, wobei n die Wortbreite
ist; Arow[ra – 1 : 0] bzw. Acol[ca – 1 : 0]
die Reihen- und Spaltenadressenbusse darstellen, wobei ra und ca
die entsprechende Busbreite sind; und die Einzelport-MARCH-Steuerung
einen üblichen
MARCH C-artigen Test ausführt.
Während
der gesamten Testperiode wird das Lesefreigabe- (RE-) Signal aktiviert. Dies
stellt sicher, dass eine Pseudo-Leseoperation jedesmal
dann ausgeführt
wird, wenn eine Schreiboperation an dem Schreibport auftritt.
-
Während der
Ausführung
des Algorithmus wird das Exklusiv-ODER-Verknüpfungsglied 912 zu einem
Puffer, wenn WE = 0 ist (W-Zyklus) und wird zu einem Inverter, wenn
WE = 1 ist (Wd oder Wd-Zyklus).
Wenn WE = 0 ist, wird eine reguläre
Leseoperation an der Adresse add ausgeführt, die von der BIST-Steuerung
geliefert wird. Wenn WE = 1 ist, so modifiziert dies die Adresse
an dem Nur-Lese-Port auf
z(add) = {col, [row + (–1)⌊row/2⌋2]}. Somit schreibt Wd
(oder Wd) in den Schreibport
an der Adresse add, und gleichzeitig adressiert eine Pseudo-Lese-Rx-Operation die Speicherzellen
an der Adresse z(add). Wenn ein Zwischen-Port-Kurzschluss vorliegt, so schreiben die
gleichzeitigen Schreib- und Pseudo-Leseoperationen in fehlerhafter Weise
in die Speicherzellen an der Adresse z(add).
-
(iv) Erweiterung auf Multiport-Speicher
-
Die
vorstehende Technik ist auch auf Speicher mit mehrfachen Ports in
irgendeiner Kombination von Lese-/Schreib-, Nur-Lese- und Nur-Schreibports
anwendbar. In diesem Fall deckt die Technik nicht nur übliche Einzelport-Fehler
und Zwischen-Port-Kurzschlüsse ab,
sondern auch Mehrport-Lesestörungs-Fehler,
was ebenfalls speziell für Multiport-Speicher
der Fall sein kann. Ein Lese-Störfehler
ist ein Fehler, bei dem mehrere Ports die gleiche Speicherzelle
gleichzeitig auslesen und der Inhalt der Zelle geändert wird
oder die ausgelesenen Daten nicht korrekt sind. Eine mögliche Realisierung ist
in 11 gezeigt. Die Schaltungsstruktur
nach 11 ist ähnlich der
nach 2. In 11 ist ein ODER-Verknüpfungsglied 921 mit
einem invertierenden Eingang und einem nicht invertierenden Eingang hinzugefügt. Der
invertierende Eingang des ODER-Verknüpfungsgliedes 921 ist
mit dem Schreibfreigabeanschluss WE der BIST-Steuerung und einem
Eingangsanschluss eines UND-Verknüpfungsgliedes 922 verbunden.
Der nicht invertierende Eingangsanschluss des ODER-Verknüpfungsgliedes 921 ist
mit dem Sel0-Ausgang eines Port-Wählers 924 und dem
anderen Eingangsanschluss des UND-Verknüpfungsgliedes 922 verbunden.
Auch dieser Algorithmus kann als paralleler BIST oder serieller
BIST realisiert werden.