-
Hintergrund der Erfindung
-
1. Gebiet der Erfindung
-
Die
Erfindung betrifft im Allgemeinen chipinterne Speicher und betrifft
insbesondere das Ausführen
eines eingebauten Speicherselbsttests.
-
2. Beschreibung
des Stands der Technik
-
BIST-(eingebauter
Selbsttest-)Verfahren werden manchmal bei der Entwicklung integrierter
Schaltungen eingesetzt, um die Abhängigkeit von externen automatisierten
Testanlagen zu verringern. BIST ist eine Technik mit Entwurfsmerkmalen
für das
Testen, da Schaltungen zum Testen von Schaltungsentwürfen hinzugefügt werden.
Insbesondere werden zusätzliche
Hardware- und Software-Elemente integrierten Schaltungschips hinzugefügt, um damit
eine Selbstprüfung
zu ermöglichen,
d. h. um ihre eigene Funktionsfähigkeit
unter Anwendung ihrer eigenen Schaltungen zu testen. Das Testen
kann funktionell oder parametrisch erfolgen.
-
Unter
den BIST-Verfahren sind LBIST (Logik BIST) und MBIST (Speicher BIST)
unterschiedliche Ansätze.
LBIST ist für
das Prüfen
von Logikschaltungen entworfen und verwendet typischerweise einen
Generator für
ein Pseudozufallsmuster. Im Gegensatz dazu wird MBIST speziell für das Prüfen von
Speichern eingesetzt. Somit sind LBIST und MBIST für das Prüfen unterschiedlicher
Arten an Schaltungen mittels unterschiedlicher Prüfverfahren
vorgesehen.
-
Während konventionelle
MBIST-Verfahren es ermöglichen,
den Grad an externer elektrischer Prüfung unter Anwendung automatisierter
Testanlagen zu reduzieren, wird die Notwendigkeit zum Ausführen eines
externen Prüfverfahrens
für gewöhnlich nicht
ausgeschlossen und ist weiterhin aufwendig. Somit sind konventionelle
MBIST-Verfahren
nicht ausreichend in ihrer Effizienz.
-
Überblick über die Erfindung
-
Eingebaute
Speichertestverfahren werden bereitgestellt, die effizienter und
flexibler als konventionelle Verfahren sind, und die die Zuverlässigkeit
und Wirksamkeit verbessern.
-
In
einer Ausführungsform
wird ein integrierter Schaltungschip bereitgestellt, der einen chipinternen Speicher
und eine Testschaltung aufweist. Die Testschaltung ist ausgebildet,
eine Funktionsprüfung
des chipinternen Speichers auszuführen. Die Testschaltung umfasst
eine Steuerung, die ausgebildet ist, eine Auswahl aus mehreren Testalgorithmen
durchzuführen,
um die Funktionsprüfung
auszuführen.
Die mehreren Testalgorithmen enthalten einen Fehlererkennungstestalgorithmus,
um eine Funktionsprüfung
des chipinternen Speichers auszuführen, um damit zu erkennen,
ob es einen Speicherfehler gibt oder nicht, ohne den Speicherfehler zu
lokalisieren. Die mehreren Testalgorithmen umfassen ferner einen
Fehlerlokalisierungstestalgorithmus, um eine Funktionsprüfung des
chipinternen Speichers auszuführen,
um damit einen Speicherfehler zu erkennen und zu lokalisieren.
-
In
einer weiteren Ausführungsform
wird ein Verfahren bereitgestellt, um eine eingebaute Speicherselbstprüfung auszuführen. Das
Verfahren umfasst das Empfangen einer Algorithmuscodierung, die
einen von mehreren eingebauten Selbsttestalgorithmen kennzeichnet,
wobei die mehreren eingebauten Selbsttestalgorithmen mindestens
einen „Weiter/Abbruch"-Produktionstestalgorithmus
und mindestens einen Fehleranalysealgorithmus beinhalten. Das Verfahren
umfasst ferner das Bestimmen des durch die empfangene Algorithmuscodierung
gekennzeichneten Algorithmus. Wenn bestimmt wird, dass die empfangene
Algorithmuscodierung einen Weiter/Abbruch-Produktionstestalgorithmus kennzeichnet,
wird der gekennzeichnete Weiter/Abbruch-Produktionstestalgorithmus ausgeführt. Wenn
bestimmt wird, dass die empfangene Algorithmuscodierung einen Fehleranalysealgorithmus
kennzeichnet, wird der gekennzeichnete Fehleranalysealgorithmus
ausgeführt.
-
Gemäß einer
noch weiteren Ausführungsform
wird ein computerlesbares Medium bereitgestellt, das eine Datenstruktur
aufweist, auf der von einem auf einem Computersystem ausführbaren
Programm operiert wird. Das Programm operiert auf der Datenstruktur,
um einen Teil eines Prozesses auszuführen, um eine integrierte Schaltung
mit Schaltung, die durch die Datenstruktur beschrieben ist, zu entwerfen.
Die in der Datenstruktur beschriebene Schaltung umfasst eine MBIST-Steuerschaltung,
die ausgebildet ist, in einem Speicherbauelemententwurf eingerichtet
zu werden, um den zu entwerfenden Speicherbauelement eine MBIST-Funktion
hinzuzufügen.
Die Datenstruktur umfasst Schaltungsdefinitionen, die, wenn sie
in dem Entwurf eingerichtet werden, das Speicherbauelement mit einer
oder mehreren Korrekt/Fehlerhaft-Entscheidungstestfunktionen versieht.
Die Datenstruktur umfasst ferner Schaltungsdefinitionen, die, wenn
sie in dem Entwurf eingerichtet sind, das Speicherelement mit einer
oder mehreren Fehlerdiagnosefunktionen versehen. Ferner sind Auswahlschaltungsdefinitionen
vorgesehen, die, wenn sie in dem Entwurf eingerichtet werden, das
Speicherbauelement in die Lage versetzen, eine Auswahl einer oder
mehrerer Funktionen aus den Korrekt/Fehlerhaft-Entscheidungstestfunktionen
und den Fehlerdiagnosefunktionen auszuführen.
-
Kurze
Beschreibung der Zeichnungen
-
Die
begleitenden Zeichnungen sind hierin mit eingeschlossen und bilden
einen Teil der Beschreibung, um die Prinzipien der Erfindung zu
erläutern.
Die Zeichnungen sind nicht dazu gedacht, die Erfindung auf die dargestellten
und beschriebenen Beispiele einzuschränken, wie die Erfindung zu
praktizieren und anzuwenden ist. Weitere Merkmale und Vorteile gehen
aus der folgenden und detaillierteren Beschreibung der Erfindung
hervor, wie sie auch in den begleitenden Zeichnungen dargestellt
ist, wobei:
-
1 eine
Blockansicht ist, die eine MBIST-Technik gemäß einer Ausführungsform
zeigt;
-
2 eine
Blockansicht ist, die einen MBIST-Kern darstellt, der eine Komponente
des in 1 gezeigten Systems gemäß einer Ausführungsform
ist;
-
3 ein
Diagramm ist, das die Handhabung eines Taktsignalbereichs und das
Multiplexen von Taktsignalen gemäß einer
Ausführungsform
darstellt;
-
4 ein
Flussdiagramm ist, das den Vorgang der Algorithmusaneinanderreihung
gemäß einer
Ausführungsform
zeigt;
-
5 ein
Zeitablaufdiagramm ist, das die Anlaufzeit gemäß einer Ausführungszeit
zeigt;
-
6 ein
Zeitablaufdiagramm ist, das eine Pipeline-Funktionsweise mit einem
erkannten Fehler gemäß einer
Ausführungsform
zeigt;
-
7 ein
Zeitablaufdiagramm ist, das eine Funktionsweise ohne Pipeline ohne
einem erkannten Fehler gemäß einer
Ausführungsform
darstellt;
-
8 ein
Zeitablaufdiagramm ist, das das Ausführen eines Reparaturschrittes
nach einer Fehlererkennung gemäß einer
Ausführungsform
darstellt; und
-
9 ein
Zeitablaufdiagramm ist, das eine Einzelschrittausführung zeigt.
-
Detaillierte
Beschreibung der Erfindung
-
Die
anschaulichen Ausführungsformen
der vorliegenden Erfindung werden mit Bezug zu den Zeichnungen beschrieben,
wobei gleiche Elemente und Strukturen mit gleichen Bezugszeichen
belegt sind.
-
Wie
nachfolgend detaillierter beschrieben ist, ermöglichen die Ausführungsformen
eine flexiblere Auswahl von MBIST-Algorithmen während der Testzeit und/oder
ermöglichen
das Bereitstellen von speziellen Modi für einen schnellen Produktionstest
(korrekt/fehlerhaft-Enscheidung, gut/nicht gut-Entscheidung oder weiter/Abbruch-Entscheidung) und
für schnelle
Fehlerdiagnosen (exakte Darstellung des Fehlers).
-
Ausführungsformen
können
diverse Lösungsansätze für Funktionsprüfungen anwenden.
Zu beachten ist, dass die Funktionsprüfung das funktionelle Testen
oder das parametrische Testen enthalten kann. Funktionsprüfung ist
eine Form des Testens, in der versucht wird, zu bestimmen, ob jede
Funktion des Systems in der spezifizierten Weise funktioniert. Parametrische
Prüfungen
sind Prüfungen,
die den Wert eines Parameters am Ausgang oder an einem speziellen
Punkt einer Anordnung messen.
-
In
einer Ausführungsform
wird eine MBIST-Steuerung bereitgestellt, die Prinzipien für die Gestaltung der
Testverfahren beinhaltet und die eine Produktprüfung für eingebettete RAM-(Speicher
mit wahlfreiem Zugriff) Arrays ermöglicht. In einer Ausführungsform
weisen die eingebetteten RAM-Arrays bis zu vier Gigaworte (232) mit jeweils maximal 1024 Bits auf und
besitzen optionale Schreibmasken mit einer maximalen Auflösung von
1 Bit. Die MBIST-Steuerung der Ausführungsformen kann MBIST-Algorithmen
unterstützen,
die eine gute Fehlerabdeckung für
alle essenziellen Fehler bietet, die eingebettete Arrays aufweisen
können.
Es ist jedoch zu beachten, dass die Ausführungsformen nicht auf die
Verwendung in eingebetteten RAM-Arrays beschränkt sind.
-
Die
MBIST-Steuerung der folgenden Ausführungsform kann als eine Schablone
gestaltet sein, die in einfacher Weise an RAM's mit Einzelport- bzw. Anschluss- bzw.
Zweifachport mit beliebiger Größe und Datenbreite
unter Anwendung minimaler Hardwareressourcen angepasst werden kann.
Des weiteren kann die MBIST-Steuerung an Dual-Ports-RAM's angepasst werden,
d. h. an RAM's mit
zwei unabhängigen
Lese/Schreib-Port- bzw. Anschlüssen
mit optionalen Schreibmasken. Die Schablone kann als Medium vorgesehen
sein, das computerlesbare Anweisungen enthält, die, wenn sie von einem
Prozessor ausgeführt
werden, den Prozessor veranlassen, die entsprechenden Schaltungsdefinitionen
in einen Speicherbauteilentwurf einzubinden, um damit die Schablone
zu implementieren.
-
Wie
nachfolgend detaillierter beschrieben ist, kann die MBIST-Steuerung
der Ausführungsformen
diverse Ebenen des Testens unterstützen: schnelle Produktprüfung, nachvollziehbare
Produktprüfung,
Fehleranalyse und Fehlerbehebung.
-
Eine
schnelle Produktprüfung
ist dazu beabsichtigt, die häufigsten
Fehlerarten zu erkennen. Dies ermöglicht eine rasche gut/nicht
gut-Auswahl von Chips und ist nicht dazu gedacht, einen Fehler zu
lokalisieren, und die Ausführungsform
ist unter Umständen
nicht mal dazu in der Lage, dies zu ermöglichen.
-
Nachvollziehbare
Produktprüfung
stellt ebenso darauf ab, alle wichtigen Fehlerarten zu erkennen.
Obwohl diese Prüfung
langsamer sein kann als die rasche Produktprüfung, kann sie für eine rigorosere
Aussonderung von Chips angewendet werden.
-
Fehleranalyse
ist ein Algorithmus (oder ein Ausführungsmodus eines Algorithmus),
der nicht nur zum Erkennen, sondern auch zum Lokalisieren der meisten üblichen
Fehlerarten angewendet wird. Dieser Algorithmus ist daher ein Diagnosetest,
der eine längere
Zeit beansprucht, aber wesentlich mehr Informationen liefert.
-
Schließlich ist
die Fehlerentfernung ein Modus, in der die Testsoftware die vollständige Steuerung
für die
Funktion ausübt
und die Algorithmen durchlaufen kann, oder selbst Daten/Adressenmuster
verwendet kann, die von eingebauten Algorithmen nicht unterstützt werden.
-
Somit
ermöglichen
die Ausführungsformen
das Ausführen
einer Auswahl aus mehreren Testalgorithmen, die einen oder mehrere
Fehlererkennungstestalgorithmen (rasche Produktprüfung und
nachvollziehe Produktprüfung)
und einen oder mehrerer Fehlerlokalisierungstestalgorithmen (Fehleranalyse,
Fehlerbeseitigung) enthalten. Die Auswahl kann während der Testzeit durchgeführt werden,
und es können
Algorithmen lediglich für
die Fehlererkennung sowie Algorithmen für zusätzliches Lokalisieren eines
Fehlers ausgewählt
werden.
-
Somit
weist die MBIST-Steuerung eingebaute Algorithmen auf, um an Fehlern
hängen
bleibende Algorithmen in dem Adressendecodierer und dem Array zu
lokalisieren, um offenen Fehler in dem Adressendecodierer des RAM's zu lokalisieren
und/oder um zusätzlich Übergangsfehler
im Array, Kopplungsfehler in dem Array und zusammenhängende Kopplungsfehler
in dem Array zu erkennen.
-
Zu
beachten ist, dass der eigentliche Speichertest separat oder gleichzeitig
mit einer ablaufenden Abtastprüfung
durchgeführt
kann. Eine Technik zum Ausführen
eines gleichzeitigen Abtasttests und eines Speichertests ist in
der US 2005/0204232 A1 beschrieben, die hierin durch Bezugnahme
in ihrer Gesamtheit mit eingeschlossen ist.
-
In
einer Ausführungsform
kann die Testanlage oder die Entwicklungssoftware auf die MBIST-Steuerung
in unterschiedlicher Weise zugreifen: Im normalen Abtastmodus sind
die MBIST-Steuerregister Teil der Abtastkette und können während der
Schiebezyklen mit den gewünschten
Werten geladen werden. In einem weiteren Modus kann die MBIST-Steuerung
ferner eine Datenregisterschnittstelle aufweisen, die es ermöglicht,
dass die Steuerregister virtuelle Datenregister der TAP (oder Test-)Steuerung
des SoC (System auf einem Chip) werden. Wenn es mehrere MBIST-Steuerungen
in dem System gibt, können
diese ihre individuellen Datenregisterschnittstellendatenregister
zugeordnet haben oder einige oder alle MBIST-Steuerungen können aneinandergereiht
werden, um ein einziges großes
Datenregister zu bilden. In einem noch weiteren Funktionsmodus kann
der SoC-Entwurfsingenieur eine einfache parallele Schnittstelle
zu der MBIST-Steuerung
verwenden, um einen Zugriff darauf durch normale für Software
sichtbare Register zu ermöglichen.
-
1 zeigt
einen MBIST-Systemüberblick
gemäß einer
Ausführungsform,
um zu demonstrieren, wie der MBIST-Kern in die Teststrategie eingebunden
ist, wodurch ein Abtasttest und MBIST separat oder gleichzeitig
möglich
sind. Die eigentliche MBIST-Steuerung
ist als Block 100 gezeigt und umfasst den MBIST-Kern 150.
Der Speicher ist als Block 110 dargestellt, und der Speicher
kann ein Einzelport-RAM, ein Zwei-Port-RAM, ein Dual-Port-RAM oder eine andere
Art eines chipinternen Speichers sein, insbesondere eine beliebige
Art eines eingebetteten Speichers (d. h. ein chipinterner Speicher,
der lediglich von innerhalb des integrierten Schaltungschips angesprochen
werden kann). Wie erkennbar ist, ist der Ausgang Q eines Multiplexers 140 mit dem
MBIST-Kern 150 verbunden, und der Ausgang (Daten, Adresse,
Ctrl) des MBIST-Kerns 150 ist einem Multiplexer 120 zugeleitet.
Die Multiplexer 120 und 140 werden von der MBIST-Steuerung 100 unter
Anwendung des Steuerauswahlsignals und des Q-Auswahlssignals gesteuert.
-
Ferner
ist ein XOR-Bypass 120 vorgesehen, der in Zusammenhang
mit dem MBIST verwendet werden kann, der jedoch auch für RAM's ohne MBIST verwendet
werden kann. Der Bypass 130 kann die Abtastabdeckung vergrößern. In
einer Ausführungsform
ist kein Bypass 130 vorgesehen, somit muss der Multiplexer 140 auch
nicht durch das Q-Auswahlsignal
gesteuert werden.
-
2 ist
eine Blockansicht, in der detaillierter die Komponenten des MBIST-Kerns 150,
der in 1 gezeigt ist, dargestellt sind. Wie man erkennen
kann, gibt es eine Datenregisterschnittstelle auf der linken Seite des
Blocks und eine parallele Registerschnittstelle an der Unterseite.
Dies sind die Schnittstellen, die zuvor erwähnt wurden, als die Modi des
Zugreifens auf die MBIST-Steuerung erläutert wurden.
-
Wie
man ferner in 2 erkennen kann, gibt es eine
Reihe von Operationsregistern, etwa ein aktuelles Algorithmusregister 210,
ein Algorithmusauswahl/Port-Register 215, ein Meta-Schritt-Register 220,
ein Schrittregister 225, ein Adressenregister 230,
ein sekundäres
Adressenregister 235, ein Datenregister 240, ein Datenmusterindexregister 245,
ein Vergleichsmusterindexregister 250, ein Schreibmaskenregister 255,
ein Schreibmaskenmusterindexregister 260 und ein Ausführungsmodusregister 265.
Zu beachten ist, dass nicht alle diese Register erforderlich sind
und es kann jede mögliche
Kombination und Unterkombination aus Registern in diversen Ausführungsformen
vorgesehen sein.
-
Im
Folgenden werden die Steuerung und die Statusmerkmale der MBIST-Ausführung detaillierter
mit Bezug zu den 1 und 2 beschrieben.
-
Zuvor
ist beschrieben, dass die Testanordnung auf die MBIST-Steuerung
in einem normalen Abtastmodus zugreifen kann. In diesem Modus werden
das Testaktivierungs- und
Testschiebeaktivierungssignal, die in 1 gezeigt
sind, verwendet. D. h., im normalen Abtastmodus wird die MBIST-Steuerung 100 selbst
geprüft.
Das Testschiebeaktivierungssignal führt zu einem Umschalten zwischen
dem Schiebe- und dem Dateneinfangmodus.
-
Für Dateneinfang
der Datenregisterschnittstelle werden die Operationsregister der
MBIST-Steuerung 210 bis 265 in das Schieberegister 205 kopiert.
Die Steuerung wird nicht angehalten, wenn ein Algorithmus gerade
abgearbeitet wird.
-
Für die Aktualisierung
der Datenregisterschnittstelle werden die Operationsregister 210 bis 265 der Steuerung
mit den Werten aus dem Schieberegister 205 geladen. Wenn
ein Algorithmus gerade gleichzeitig abgearbeitet wird, wird die
Steuerung während
des Aktualisierens angehalten und dann mit dem neu eingeladenen
Steuerungszustand weiter betrieben.
-
Die
MBR-(MBIST-Register)Zugriffs- und MBR-Lese/Schreib-Signale werden
verwendet, um die Zugriffsmodi für
paralleles Lesen und Schreiben der Register zu steuern. In dem Zugriffsmodus
für paralleles
Registerauslesen werden die Register der Steuerung über die
parallele Schnittstelle ausgelesen. Das Lesen führt zu keinen Störungen,
d. h. die Steuerung kann gleichzeitig einen MBIST-Algorithmus ausführen. Der
Zugriffsmodus für
paralleles Schreiben in die Register wird eingesetzt, um in die
Register der Steuerung über
die parallele Schnittstelle zu schreiben. In diesem Modus wird ein
gerade ablaufender MBIST-Algorithmus unterbrochen.
-
Das
Kernstartsignal, das dem MBIST-Kern 150 zugeleitet wird,
kann verwendet werden, um Voreinstellungswerte in die Status- und
Steuerregister einzuladen.
-
Ferner
kann eine abfallende Flanke des MBIST-Aktivierungssignals bewirken,
dass die MBIST-Fertig- und Fehler-Signale, die Statussignale sind,
auf Null zurückgesetzt
werden.
-
Wenn
das MBIST-Aktivierungssignal gesetzt ist und der MBIST-Kern 150 ein
Startsignal empfängt, dann
geht die Steuerung weiter, um einen MBIST-Algorithmus zu beginnen, fortzusetzen
oder diesen zu durchlaufen, abhängig
von dem Wert des Ausführungsmodusregisters 265 und
dem Zustand des MBIST-Fehlersignals. Genauer gesagt, gemäß einer
Ausführungsform
wird, wenn der Ausführungsmodus
0, 1 oder 2 ist und das MBIST-Fehlersignal Null ist, der Algorithmus
gestartet. Wenn der Ausführungsmodus
0 oder 1 ist und das MBIST-Fehlersignal 1 ist, wird der Algorithmus
ohne einen Reparaturschritt fortgesetzt. Wenn der Ausführungsmodus
2 und das MBIST-Fehlersignal
1 ist, wird der Algorithmus nach einem Reparaturschritt fortgesetzt.
Wenn der Ausführungsmodus
3 ist, dann wird der nächste
Schritt des Algorithmus ausgeführt,
wenn das MBIST-Fehlersignal 0 ist oder ansonsten wird der Reparaturschritt
ausgeführt.
-
Wenn
das Testaktivierungssignal und das MBIST-Aktivierungssignal gesetzt
sind, werden der Abtasttest und der MBIST gleichzeitig ausgeführt. Sobald
das Kernstartsignal gesetzt ist, nimmt die MBIST-Steuerung nicht
am normalen Eingeben und Dateneinfang bei der Abtastung teil.
-
Während und
nach dem Ausführen
kann die Testanlage über
den globalen MBIST-Zustand
unter Anwendung zweier Statussignale, d. h. das MBIST-Fertig- und
MBIST-Fehler-Signal,
informiert werden. In neutralen Zustand sind beide Signale nicht
gesetzt. Der neutrale Zustand wird eingenommen, wenn MBIST deaktiviert
ist oder die Steuerung gerade einen Algorithmus ausführt und
diesen noch nicht beendet oder einen Fehler erkannt hat.
-
Wenn
das MBIST-Fertig-Signal nicht gesetzt ist, aber das MBIST-Fehler-Signal
gesetzt ist, hat die Steuerung einen Fehler angetroffen, bevor der
Algorithmus beendet wurde. Der Algorithmus wird daher angehalten
und der Steuerungsstatus wird als Status beibehalten, der auszulesen
ist. Wenn das MBIST-Fertig-Signal gesetzt ist und das MBIST-Fehlersignal
nicht gesetzt ist, ist der MBIST abgeschlossen. Die Steuerung hat den
Test erfolgreich beendet. Wenn schließlich beide Signale gesetzt
sind (was lediglich in speziellen Ausführungsmodi auftreten kann),
trat der Fehler während
des abschließenden
Auslesevorgangs des Algorithmus auf.
-
In
den Ausführungsformen
können
die Register der Steuerung 210 bis 265 auf unterschiedliche
Weisen angesprochen werden: über
die parallele Registerschnittstelle, über die Datenregisterschnittstelle
und über
die Abtastverschiebung.
-
Wenn
auf die Register der Steuerung über
die parallele Registerschnittstelle zugegriffen wird, können die
Registereinstellungen in bequemer Weise geändert werden. Dieser Zugriffsmodus
kann bei automatisierten Testanlagen sowie in einem System angewendet
werden. Die parallele Registerschnittstelle kann verwendet werden,
um beispielsweise den Registersatz der Steuerung in einen Modulregisterraum
einzufügen.
-
Wenn
der Zugriff über
die Datenregisterschnittstelle erfolgt, können alle MBIST-Register als
(Teil) eines TAP-Steuerungsdatenregisters angesprochen werden. Wenn
das Einfangsignal an der Datenregisterschnittstelle gesetzt ist,
wird der Zustand der Operationsregister in die Schieberegister 205 kopiert.
Eingefangene Daten werden herausgeschoben (und neue Daten werden
hineingeschoben), wenn das Schiebesignal an der Datenregisterschnittstelle
aktiv ist. Wenn das aktualisierte Signal gesetzt ist, werden die
Operationsregister der Steuerung mit den Werten aus dem Schieberegister 205 geladen.
-
Wenn
der Zugriff über
eine Abtastverschiebung erfolgt, sind alle MBIST-Register Teil normaler
Abtastketten und können
daher durch Einschieben dieser Abtastketten mit neuen Werten beschrieben
werden. In einer Ausführungsform
wird dies während
eines automatisierten Prüfanlagentests
durchgeführt.
Die tatsächliche Position
eines speziellen Registers innerhalb der Abtastkette kann während der
Synthese bestimmt werden und muss für einen Zugriff auf die Register
bekannt sein. Ferner können
MBIST-Steuerungsregister
in willkürlicher
Weise mit internen Flip-Flops der umgebenden Schaltung verbunden
werden.
-
Um
die eingebauten Algorithmen zu starten, werden die Register von
der Testanlage in einer vordefinierten Weise vorgeladen. Die beteiligten
Register können
das Algorithmusauswahlregister 215, das Meta-Schritt-Register 220,
das Schrittregister 225, das Adressenregister 230,
das sekundäre
Adressenregister 235, das Datenregister 240, das
Datenmusterindexregister 245 und das Ausführungsmodusregister 265 sein. Zu
beachten ist, dass in anderen Ausführungsformen nicht alle diese
Register und/oder weitere Register für diese Zwecke verwendet werden
können.
In einer Ausführungsform
können
die eingebauten Algorithmen einen oder mehrere der folgenden Algorithmen
aufweisen: MarchB, MATS+, Walking 0/1, SOAF und SOWM.
-
In
den Ausführungsformen
können
mehrere Testszenarien vorhanden sein: Abtasttest, paralleles Ausführen der
Abtastung und des MBIST, MBIST-Betrieb und Ausführung von nicht eingebauten
Algorithmen.
-
In
dem Abtasttestszenario wird die MBIST-Steuerung 100 selbst
unter Anwendung der üblichen
Schiebe- und Einfangzyklen geprüft.
Die Testanlage kann diesen Modus einstellen, indem das Testaktivierungssignal
gesetzt wird, und kann das Testschiebeaktivierungssignal verwenden,
um zwischen dem Schiebe- und dem Einfangzyklus hin- und herzuschalten.
Es kann angenommen werden, dass die Signale MBIST-Aktivierung, MBIST-Start,
Testaktivierung und Testschiebeaktivierung direkt (nicht über eine
Abtastkette) von der Testanlage, beispielsweise durch eine TAP-Steuerung gesteuert
werden. Alle anderen Eingangssignale können von der normalen Funktionslogik
stammen und können über die
Abtastketten gesteuert werden.
-
Dieses
Szenario kann eine optimale Abtastabdeckung sicherstellen, da die
funktionalen RAM-Eingängen
(Daten, Addr, Ctrl) unter Anwendung des XOR-Bypasses 130 beobachtet
werden können,
der in 1 gezeigt ist. Die funktionalen Stufen, die von
dem RAM-Ausgang angesteuert werden, können unter Anwendung dieses
Bypasses gesteuert werden. Ferner kann der Dateneingangsport des
MBIST-Kerns 150 auf diese Weise gesteuert werden. Ferner
sind weitere MBIST-Kerneingänge
steuerbar. Alle internen MBIST-Register (einschließlich des
Datenregisterschnittstellenschieberegisters 205) sind unter
Anwendung einer Abtastkette steuerbar und beobachtbar. Da die MBIST-Kernausgänge (Daten,
Adressen, Ctrl) auf diese Weise steuerbar sind, können auch
funktionelle Schaltungen, die auf Q folgen, ebenso gesteuert werden.
Wenn schließlich
das MBIST-Aktivierungssignal im Wesentlichen von der Testanlage
gesetzt wird, sind die MBIST-Ausgänge (Daten, Adressen, Ctrl) über den
XOR-Bypass 130 beobachtbar. Zu beachten ist, dass das Kernverriegelungsregister
nicht Teil einer Abtastkette sein muss. Ferner ist zu beachten,
dass das die seriellen Eingangsdaten speichernde Register nicht
während
der Einfangzyklen auf 1 gesetzt werden muss, wenn auch das MBIST-Aktivierungssignal
auf 1 gesetzt wird. Ansonsten entkoppelt sich die MBIST-Steuerung 100 selbst
von der normalen Abtastung und geht in einem parallelen Tast/MBIST-Modus über.
-
In
den parallelen Modus des Ausführens
der Abtastung und des MBIST wird übergewechselt, wenn eine Testanlage
sowohl die seriellen Eingangs- als auch die MBIST-Aktivierungssignale
auf 1 gesetzt hat, während
das Testaktivierungssignal gesetzt ist. Zu beachten ist, dass die
Testanlage vorrangig das MBIST-Aktivierungssignal
setzen kann, so dass es nicht nachteiligerweise während eines
Abtastschiebevorgangs zurückgesetzt
werden kann. Unter dieser Voraussetzung entkoppelt sich der MBIST-Kern 150 selbst
von der normalen Abtastkette, verlässt den Abtastmodus und beginnt
mit dem MBIST-Algorithmus. Dieser Modus kann lediglich verlassen
werden, wenn die Steuerung den Algorithmus abgeschlossen hat (durch
Fertigstellen oder durch einen Fehler). Das MBIST-Aktivierungssignal
wird zurückgesetzt.
Die Testanlage kann die normale Abtastverschiebung verwenden, um
den MBIST-Kern vor dem Starten des Algorithmus zu initialisieren.
-
Aus
Sicht des MBIST-Kerns ist dieses Szenario gleich einer normalen
MBIST-Operation, wie sie nachfolgend beschrieben ist. Von außen betrachtet
ist der Modus wie ein normaler Abtastbetrieb mit Ausnahme der Beschränkungen
hinsichtlich der Steuerbarkeit und Beobachtbarkeit, wie sie zuvor
erläutert
sind.
-
Für das MBIST-Betriebsszenario
gilt, dass im Prinzip jeder Algorithmus von der FSM (finite Zustandsmaschine) 200 der
Steuerung ausgeführt
werden kann, indem die in dem entsprechenden Algorithmus enthaltenen
Schritte ausgeführt
werden. Die finite Zustandsmaschine 200 hält bei Erkennung
eines Fehlers an. Zu diesem Zeitpunkt kann die Software diesen Status
auslesen und damit Information über
die Fehlerposition ermitteln. Wenn jedoch eine Lese-Pipeline-Bearbeitung
angewendet wird, wird der ausgelesene Zustand bereits der in dem
nächsten
Schritt des Algorithmus sein. Die Pipeline-Bearbeitung bei der Auslesung
bezeichnet eine Technik, in der das Ausführen eines zweiten RAM-Zugriffs
begonnen wird, bevor ein vorhergehender Lesebefehl bereits abgeschlossen
ist. D. h., der Speicher lädt
einen angeforderten Speicherinhalt in einen kleinen schnellen Zwischenspeicher
bzw. Cache-Speicher und beginnt unmittelbar mit dem Abholen des
nächsten Speicherinhalts.
In den Ausführungsformen
kann die Pipeline-Bearbeitung des Auslesens mit den Einstellungen
des Ausführungsmodusregisters 265 gesteuert
werden.
-
Des
weiteren können
die Register der finiten Zustandsmaschine mit Werten mittels Software
vorgeladen werden und nachfolgend kann die finite Zustandsmaschine 200 mitten
in einem Algorithmus gestartet werden.
-
Ein
Modus des MBIST-Betriebs ist der schnelle Produkttest, der bereits
oben erwähnt
ist. In diesem Test wird die Betonung auf eine rasche gut/nicht
gut-Entscheidung für
das zu testende Bauelement belegt. Es kann ein Algorithmus ausgewählt werden,
der eine gute Abdeckung innerhalb einer vernünftigen Laufzeit (beispielsweise
MarchB) ergibt. Das Ausführungsmodusregister 265 wird
auf „normal" gesetzt. Die Testanlage startet
den MBIST-Test separat oder parallel zu dem Abtasttest. Nach dem
Start läuft
der Algorithmus ab und stoppt lediglich am Ende oder nach dem ersten
Fehler. Zur Erhöhung
der Geschwindigkeit kann eine Pipeline-Bearbeitung für das Auslesen
angewendet werden. Obwohl die Testanlage den Status nach dem Ende auslesen
könnte,
liegt das Hauptinteresse in der Lokalisierung des Fehlers. In einer
Ausführungsform
kann der Modus modifiziert werden, um die Statusauslese zu deaktivieren.
Die Testanlage kann Schiebeoperationen für die Datenregisterschnittstelle
anwenden, um einen neuen Steuerregisterwert auszulesen oder zu setzen,
obwohl dies nicht der eigentliche Zweck des Tests ist. Die Testanlage
kann auch die MBIST-Steuerung
nach einem Fehler erneut starten, wobei jedoch kein Reparaturschritt
vorliegen kann, so dass es eine hohe Wahrscheinlichkeit gibt, dass
die MBIST-Funktion bald erneut einen Fehler zeigt. Wiederum können diese
Merkmale in einer Ausführungsform
deaktiviert werden.
-
Ein
weiterer MBIST-Funktionstest kann der Lebensdauertest für eine nachvollziehbare
Produktprüfung
sein. In diesem Szenario wird das Merkmal des parallelen Abtastens/MBIST
verwendet, um die Schaltung bis an das Maximum zu beanspruchen.
Das Ausführungsmodusregister 265 kann
auf „kontinuierlich" gesetzt werden,
so dass der Algorithmus ständig
abläuft
und lediglich stoppt, wenn ein Fehler erkannt wird. Eine Pipeline-Bearbeitung
für das
Auslesen kann für
einen maximalen Durchsatz des RAMs's verwendet werden. Wie bei dem Produkttest
wird die Betonung auf eine Fehlererkennung gelegt, obwohl die Testanlage
den Zustand nach einem Fehler auslesen kann. Ähnlich zu dem raschen Produkttest
kann in alternativen Ausführungsformen
diese Funktion nicht vorgesehen sein.
-
Ein
weiterer MBIST-Funktionstestmodus ist die Fehlerdiagnose. In diesem
Modus wird die Betonung auf das Erkennen aller Fehler gelegt, und
abhängig
von dem Algorithmus, auf die Lokalisierung der Fehler. Die Laufzeit
ist weniger wichtig. Ferner können
einige halbautomatisierte/manuelle Reaktionen auf den MBIST-Status
durch die Testanlage erforderlich sein. Das Ausführungsmodusregister 265 kann
auf „Diagnose" (alternativ „Einzelschritt") gesetzt werden.
Dies veranlasst die MBIST-Steuerung 100, die Pipeline-Bearbeitung für das Auslesen
nicht anzuwenden, wodurch Reparaturschritte bei der Fehlererkennung
möglich
sind. Nach dem Start führt
die MBIST-Steuerung den Algorithmus bis zum ersten Erkennen eines
Fehlers aus und hält dann
an. Die Testanlage kann dann den MBIST-Status (über die Datenregisterschnittstelle
oder die parallele Registerschnittstelle) auslesen. Mit der nächsten ansteigenden
Flanke des MBIST-Startsignals führt
die Steuerung zunächst
einen Reparaturschritt ein, d. h. schreibt den erwarteten Wert an
die fehlerhafte Position) und setzt dann den normalen Algorithmus
fort. Die Steuerung stoppt dann beim nächsten Fehler. Die Testanlage kann
somit durch alle Fehlerpositionen zyklisch durchlaufen und diese
aufzeichnen. Der Algorithmus wird beendet, wenn die Steuerung das
MBIST-Fertigsignal setzt. Die nächste
ansteigende Flanke des MBIST-Startsignals startet dann erneut den
Algorithmus.
-
Zu
beachten ist, dass die Testanlage die Problematik eines deterministischen
Zeitverhaltens im Verhältnis
zur Reaktion auf zufällige
Fehler lösen
kann, indem eine Testschleife durchlaufen wird, die die MBIST-Operation
startet oder erneut startet, die maximale Zeitdauer abwartet, um
den ausgewählten
Algorithmus abzuschließen,
diesen Status ausliest und dann auf der Grundlage des Wertes des
MBIST-Fehlersignals entscheidet, ob diese Schleife erneut zu durchlaufen
ist. Diese Entscheidung kann eine gewisse halbautomatische Reaktion
erfordern.
-
In
einem noch weiteren MBIST-Funktionsmodus kann ein Einzelschritttest
ausgeführt
werden, beispielsweise das Fehlerbeheben. Dieser Modus wird für eine Fehlerdiagnose
verwendet, wie sie in dem Modus zuvor beschrieben ist. Der Einzelschritttestmodus
ist sogar manuell möglich,
d. h. durch interaktives Setzen der Register. Zusätzlich kann
dieser verwendet werden, um MBIST-Algorithmen auszuführen, die
nicht in die Steuerung eingebaut sind. Dieser Modus beansprucht
wesentlich mehr Zeit für
die Testanlage und ist nicht für eine
Produktprüfung
vorgesehen.
-
Wenn
ein Fehler auftritt und die Steuerung stoppt, verursacht eine neue
ansteigende Flanke des MBIST-Startsignals einen Reparaturschritt
anstelle des Ausführens
des nächstens
Schritts des Algorithmus.
-
In
den 5 und 9 sind Beispiele des MBIST-Zeitablaufs
in entsprechenden Zeitablaufdiagrammen dargestellt. Zu beachten
ist, dass die Datenbusse der Einfachheit halber als einzelne Leitungen
während der
inaktiven Zeit dargestellt sind. In einem realen Entwurf behält der Bus
den vorhergehenden Wert. Ferner ist zu beachten, dass alle Leseaktivierungssignale
und Schreibaktivierungssignale bei niedrigem Pegel aktiv sind.
-
5 zeigt
den Hochlauf- bzw. Initialisierungszeitablauf. Das Diagramm zeigt,
dass der erste (Schreib-)Zugriff einen Taktzyklus nach der ansteigenden
Flanke des MBIST-Startsignals
auftritt. Dies ergibt sich auf Grund des Flankenerkennungsmechanismus
für diesen
Eingang.
-
6 zeigt
den Pipeline-Modus für
den Betrieb (der verwendet wird, wenn der Ausführungsmodus 0 oder 1 ist) mit
einer Teilansicht von MarchB. Man kann erkennen, wie der Algorithmus
zwei Zyklen weitergeht (siehe beispielsweise Step), bevor die Steuerung
bei Fehlererkennung anhält
(das MBIST-Fehlersignal wird gesetzt). Die Testanlage kann jedoch
in der Lage sein, das Fehlerdatenmuster zu bestimmen.
-
7 zeigt
den Betriebsmodus ohne Pipeline-Beareitung (der verwendet wird,
wenn der Ausführungsmodus
2 oder 3 ist), wiederum mit einer Teilansicht von MarchB. Man kann
erkennen, wie der Leseschritt nunmehr zwei Taktzyklen beansprucht.
Des weiteren kann man auch erkennen, dass der Algorithmus nicht
weitergeht, wenn ein Fehler erkannt wird. Somit bleiben alle Statusregister
in der gleichen Position, wie dies bei der Fehlererkennung der Fall
ist.
-
8 zeigt
den Zeitablauf und die Auswirkung des Reparaturschritts, der in
den Modi ohne Pipeline-Bearbeitung ausführt wird, wenn die Steuerung
nach einem erkannten Fehler erneut startet. Zu beachten ist, dass
die Steuerungsregister (beispielsweise das Schrittregister 225)
auf dem gleichen Wert gehalten werden, bei dem der Fehler erkannt
wurde. Anders als zuvor (fehlerhaftes Auslesen) wird eine Schreiboperation einen
Zyklus nach dem Neustart ausgeführt.
Das ausgegebene MBIST-Fehlersignal wird nach diesem Reparaturschritt
zurückgesetzt.
Um jedoch eine endlose Verriegelung (Endlosschleife) zu vermeiden,
wird dieser Reparaturschritt nicht in einem nachfolgenden Leseschritt überprüft. Stattdessen
geht der Algorithmus zum nächsten
Schritt weiter (siehe beispielsweise Step).
-
9 zeigt
den Einzelschrittmodus für
den Betrieb (wobei der Ausführungsmodus
3 ist). Einen Zyklus nach der ansteigenden Flanke des MBIST-Startsignal
wird der Algorithmusschritt gemäß der aktuellen
Einstellung der Steuerregister ausgeführt und die Register gehen
zum nächsten
Schritt weiter (siehe Step).
-
Es
sei wieder auf die Blockdiagramme verwiesen; 3 ist ein
Diagramm, das die Taktbereichs- bzw. Domänen-Handhabung und das Taktsignalmultiplexen
zeigt. Die Figur gibt einen Überblick über Taktbereiche und
die Taktsignalmultiplexung für
ein System mit integriertem MBIST. Die Figur beschreibt einen funktionalen Block 300,
der RAM(s) 340 mit zugeordnetem bzw. zugeordneten MBIST(s) 350 instanziiert.
Außerhalb
dieses Blockes liegen entweder auf der obersten Chipebene oder innerhalb
eines weiteren zugeordneten Blockes entsprechende Taktmultiplexer 310, 320, 330,
die zwischen Arbeitsmodus und Testmodus auswählen. Nicht alle diese Multiplexer
sind unter Umständen
erforderlich, beispielsweise, wenn das Arbeitsmodustaktsignal und das
Testtaktsignal einem gleichen primären Eingang eines Chips eingespeist
werden, oder der GL-(GeodeLink) Takt steuert auch eine weitere Funktionsdomäne. Dennoch
gilt aus der Sicht des Blockes, dass dieser im Testmodus an allen
seinen Taktsignaleingänge
das gleiche Testtaktsignal führt.
-
Für die Integration
der MBIST-Steuerung 100, 350 in einn Block 300 gibt
es einige Konsequenzen. Zunächst
besteht unter Umständen
kein Bedarf für
eine Taktbereichssynchronisierung zwischen dem Funktionstaktsignalbereich
der MBIST und der Datenregisterschnittstelle innerhalb des MBIST-Kerns 150,
da die Datenregisterschnittstelle nur im Testmodus sein kann und
dann alle Taktsignale ohnehin gleich sind. Ferner kann die MBIST-Steuerung 100 auf
der Grundlage eines funktionalen Taktsignals ablaufen, das auch
einen RAM-Port ansteuert. Wenn der RAM zwei Ports aufweist und der
andere auf der Grundlage einer anderen Taktsignaldomäne arbeitet,
dann ist ein Taktsignalmultiplexer vor dem RAM erforderlich (in 3:
der clk_B Multiplexer, während
in anderen MBIST-Instanzierungen die Steuerung synchron mit der
RAM-A-Seite laufen kann). Die Steuerungsmultiplexer für den RAM 340 können zwischen
Arbeitsmodus und MBIST-Modus hin- und herschalten. Wenn schließlich die
GL-Taktsignaldomäne
von der Domäne
getrennt ist, die den MBIST 350 ansteuert, kann der Blockentwurfsingenieur
ein korrekte Synchronisierung für
die parallele Registerschnittstelle sicherstellen.
-
Wie
zuvor beschrieben ist, können
die eingebauten Algorithmen MarchB, MATS+, Walking 1/0, SOAF und
SOWM beinhalten. Insbesondere kann es einen speziellen Belastungsalgorithmus
geben, der lediglich auf Zwei-Port- und Dual-Port-RAM's angewendet wird.
Dieser Algorithmus liefert eine generelle Art, Zwei-Port- und Dual-Port-RAM's mit beliebiger
Bit-Breite/Wortorganisiation zu prüfen, und dieser kann verwendet werden, um
Probleme in dem Leseverstärker
und der Schreiblogik zu erkennen, die nur auftreten, wenn gleichzeitig
auf beide Seiten des RAM's
zugegriffen wird. Dieser Algorithmus kann als Ergänzung zu
anderen Algorithmen verwendet werden, die die Integrität der RAM-Matrix
(beispielsweise MarchB) mit speziellen Prüfungen überprüfen, um die korrekte Dual-Port-Funktion
zu gewährleisten
und beispielsweise einen Kurzschlussfehler zwischen zwei Ports zu
erkennen, die von Einzel-Port-Algorithmen nicht erkannt werden können. Insbesondere kann
der Algorithmus alle mögliche
Kombinationen von „Umschalten
auf 0", „Umschalten
auf 1", „Lesen
0/"Prüfen für 0" und „Lesen
1"/"Prüfen auf
1" zwischen dem
regulären
und dem gegenüberliegenden
Port (unter Anwendung von Adressen mit einem Hamming-Abstand von
1 zwischen den beiden Ports) durchlaufen. Durch Festlegen dieser
Kombinationen kann der Algorithmus Fehlerbedingungen prüfen, die
durch Probleme in der Stromversorgung für den RAM hervorgerufen werden
können.
Ferner kann für
RAM's mit zwei Leseports
der Algorithmus das gleichzeitige Auslesen aus der gleichen Adresse
für beide
Seiten prüfen.
-
Das
Folgende ist ein beispielhafter Algorithmus für diesen Modus, wobei M0–M4 Meta-Schritte und SO–S6 Schritte
des entsprechenden Meta-Schritts kennzeichnen. Wie man erkennen
kann, kann der Algorithmus so auf RAM's mit zugeschnitten werden, wobei einer
der beiden Ports lediglich eine begrenzte Kapazität aufweist
(Typ „R_W", „RW_R" und „RW_W"). Zu beachten ist,
dass der Algorithmus keine Annahmen über die innere Organisation
des RAM's macht
und daher in breiter Weise anwendbar ist.
-
-
-
-
-
-
Zu
beachten ist, dass die Operationen „Test(~Port) an M[i xor (1<<j)]" Lesedaten
vergleichen (und damit möglicherweise
zu einem Fehler führen)
nur, wenn (i xor (1 << j)) < w (d. h. wenn der
Adressenbereich nicht überschritten
wird). Die Operationen „write
(~Port) M[i xor (1 << j)]" wird blockiert,
wenn die Adresse außerhalb des
Bereichs liegt.
-
Neben
den zuvor erläuterten
eingebauten Algorithmen kann auch ein allgemeiner Algorithmus sein, der
als Mittel verwendet wird, um nicht eingebaute Algorithmen unter
Steuerung der Testanlage auszuführen. Er
besteht lediglich aus Meta-Schritten mit Schritten, die generische
MBIST-Operationen definieren, etwa das Auslesen von Musterindexwerten,
Vergleichen von Werten, Heraufsetzen und Herabsetzen von Adressen, usw.
D. h. die Software speichert Daten in geeigneten Registern, etwa
dem Datenregister 240, und verursacht dann das Ausführen der
binärischen
Schritte und Metaschritte, die die Daten verwenden. Dies kann ein
wiederholender Prozess sein. Die Testfunktion hängt von den eigentlichen gespeicherten
Daten ab.
-
Gemäß 4 können die
Ausführungsformen
auch eine Aneinanderreihung bzw. Sequenzierung der Algorithmen bieten.
Um nachvollziebarere (und effizientere) Prüfungen zu ermöglichen,
kann die MBIST-Steuerung 100 das Ausführen einer Reihe von Algorithmen
in einer Sequenz bzw. Reihenfolge ermöglichen. Dies kann durch gewisse
Felder in den MBIST-Zustandregistern gesteuert werden. Die Software
kann die entsprechende Algorithmuscodierung in die Felder für den ersten,
zweiten, etc. Algorithmus einspeisen. Das Register für den aktuellen
Algorithmus 210 kann dann verwendet werden, um den aktuell
ausgeführten
Algorithmus auszuwählen.
-
Wenn
der aktuelle Algorithmus ohne Fehler beendet ist, kann die Steuerung
in einen Übergangsmetaschritt
eintreten, der verwendet werden kann, um die Steuerungsregister
für den
nächsten
Algorithmus zu initialisieren, den Index des aktuellen Algorithmus
heraufzusetzen und im nächsten
Taktzyklus mit diesem Algorithmus zu beginnen.
-
In
einer Ausführungsform
ermöglichen
alle Algorithmen mit Ausnahme des generischen Algorithmus und eines
speziellen NOP-(keine Funktion-Algorithmus)Codes eine Aneinanderreihung,
d. h. ein nächster
Algorithmus kann sich anschließen.
Für den
generischen Algorithmus und dem NOP endet die Ausführung, nachdem
dieser aktuelle Algorithmus beendet ist. Dies kann auch implizieren,
dass der erste angetroffene Algorithmus, der keine Aneinanderreihung
zulässt,
die Reihenfolge beendet. Wenn beispielsweise der erste Algorithmus
MarchB ist, der zweite der generische Algorithmus ist und der dritte
auf MATS+ festgelegt wird, dann werden lediglich MarchB und der
generische Algorithmus ausgeführt.
Die Algorithmuscodierung NOP kann insbesondere eingeführt werden,
um eine Sequenz zu stoppen.
-
Wenn
die Software fälschlich
das aktuelle Algorithmusregister 210 auf einen Wert größer als
den maximal unterstützten
Sequenzindex setzt, kann dies die gleiche Wirkung haben, wie wenn
der entsprechende Algorithmus auf NOP festgelegt wird. Somit beginnt
der Algorithmussequenzierungsprozess aus 4 mit dem
Einspeisen von Algorithmuscodierungen in die entsprechenden Register,
um die Sequenz bzw. Reihenfolge im Schritt 400 zu definieren.
Der erste Algorithmus wird dann im Schritt 410 ausgewählt. Der
Schritt 420 überprüft, ob die
Algorithmuscodierung NOP ist. Wenn nicht, überprüft der Schritt 430,
ob der Algorithmus eine Aneinanderreihung ermöglicht. Wenn der Algorithmus
nicht der generische Algorithmus ist (oder ein anderer Algorithmus
ohne Aneinanderreihungseigenschaft), wird dieser im Schritt 440 ausgeführt, woraufhin
die Steuerungsregister erneut im Schritt 450 initialisiert
werden und der Algorithmusindex in 460 erhöht wird.
Sobald der nächste
Taktzyklus erreicht ist (Schritt 470), kehrt der Prozess
zurück,
um den nächsten
Algorithmus auszuwählen.
-
Es
sollte beachtet werden, das die Sequenz und die Reihenfolge der
Schritte in dem Flussdiagramm aus 4 lediglich
ein Beispiel darstellen, und dass eine beliebige andere Reihenfolge
der Schritte möglich ist.
Beispielsweise kann der Schritt 460 vor dem Schritt 450 und
der Schritt 430 kann vor dem Schritt 420 ausgeführt werden.
Es ist auch möglich,
diese und andere Schritte gleichzeitig auszuführen.
-
Schließlich ist
anzumerken, dass die MBIST-Steuerung 100 der Ausführungsformen
so parametrisiert werden kann, um mit üblichen Zwei-Port-RAM's verbunden zu werden,
d. h. RAM's mit
zwei unabhängigen
Lese/Schreib-Anschlüssen
mit optionalen Schreibmasken. In diesem Falle erlauben die Port-Auswahlfelder
in den Zustandsregistern zu bestimmen, auf welchem Port der entsprechende
Algorithmus operiert. Es besteht im Allgemeinen kein Bedarf, Algorithmen
auszuführen,
die die Integrität
der Matrix von beiden Seiten überprüfen. Somit
kann der Anwender vorgeben, von welcher Seite ein Algorithmus betrieben
wird. Es kann jedoch MBIST-Algorithmen geben, die immer auf beiden
Ports arbeiten (d. h. die die Einstellung des Portauswahlfeldes
ignorieren), um eine korrekte Funktion des Adressendecodierers und
der Schreibmaskenlogik sicherzustellen.
-
Wie
zuvor beschrieben ist, werden Ausführungsformen bereitgestellt,
in denen mehrere Testalgorithmen eingesetzt werden mit: einem Fehlererkennungstestalgorithmus
zum Ausführen
einer Funktionsprüfung, um
zu erkennen, ob es einen Speicherfehler gibt oder nicht, ohne dass
der Speicherfehler lokalisiert wird, und einem Fehlerlokalisierungstestalgorithmus,
um eine Funktionsprüfung
auszuführen,
um einen Speicherfehler zu erkennen und zu lokalisieren. Zu beachten
ist, dass in einer Ausführungsform
der Fehlererkennungstestalgorithmus so ausgebildet ist, dass dieser
in der Lage ist, auch einen Speicherfehler zu lokalisieren. In diesem Falle
kann das Ausführungsmodusregister 265 verwendet
werden, um anzugeben, dass dieser Algorithmus nur für die Fehlererkennung
eingesetzt wird, wobei sein Fehlerlokalisierungseigenschaften nicht
verwendet werden. Insbesondere kann das Ausführungsmodusregister 265 angeben,
dass die Lesepipeline-Bearbeitung in diesem Falle aktiv ist, während diese
deaktiviert ist, wenn der Algorithmus auch für die Fehlerlokalisierung zu
verwenden ist.
-
Wie
aus den zuvor beschriebenen Ausführungsformen
hervorgeht, wird eine Technik bereitgestellt, die eine maximale
Flexibilität
bei der Speicherprüfung
erreicht, indem eingebaute Selbsttests möglich sind, die selektiv beschränkt werden
können,
um nicht mehr als einen Weiter/Abbruch-Test durchzuführen, oder
die ausgewählt
werden können,
um deutlich anspruchsvollere Prüfungen
einschließlich
Diagnostik, Fehlerentfernung und Einzelschrittbearbeitung auszuführen. Dies
reduziert den Aufwand, der ansonsten notwendig ist, wenn eine externe
Testanlage verwendet wird. Ferner können in Ausführungsformen,
die die Algorithmussequenzierungstechnik, die zuvor beschrieben
ist, anwenden, die Vorteile aller anwendbarer Testalgorithmen vereinigen, indem
eine schnelle Produktprüfung
möglich
ist und indem die zeitaufwendigeren Diagnoseprüfungen lediglich bei Bedarf
durchgeführt
werden. Durch Vorsehen von Ausführungsformen,
die die generischen Testmechanismen, wie sie zuvor beschrieben sind,
anwenden, wird eine Technik bereitgestellt, die nicht auf algorithmische Regeln
und Zwangsbedingungen festgelegt ist, die zum Zeitpunkt der Schaltungsentwicklung
definiert wurden. Vielmehr können
neue Testmechanismen und verbesserte Algorithmen zu einer späteren Phase
lediglich durch Aktualisierung der ansteuernden Testsoftware eingerichtet
werden. Ferner wurden Ausführungsformen erstellt,
die eine generische Art und Weise anwenden, um Belastungstest an
Dual-Port-RAM's
mit beliebiger Bitbreite/Wortorganisation ausführen. Auf Grund der generischen
oder gattungsbildenden Natur kann dieser Testalgorithmus die Effizienz
und Testzuverlässig
noch weiter verbessern und kann gleichzeitig eine maximale Anwendbarkeit
auf beliebige RAM-Schaltungen bieten, indem im Wesentlichen keine
Annahmen über
die innere Organisation der zu prüfenden RAM's vorausgesetzt wird. Schließlich ist
zu beachten, dass alle zuvor beschriebenen Ausführungsformen in Form einer
Schablone bereitgestellt werden können, so dass der Schaltungsentwickler
und der Systementwickler ein mächtiges
Werkzeug zur Einrichtung anspruchsvoller Mechanismen erhalten, ohne
dass übermäßig große Entwurfsprobleme
auftreten.
-
Obwohl
die Erfindung mit Bezug zu den Ausführungsformen beschrieben ist,
die erfindungsgemäß aufgebaut
sind, erkennt der Fachmann, dass diverse Modifizierungen, Variationen
und Verbesserungen der vorliegenden Erfindung im Lichte der obigen
Lehre und im Bereich der angefügten
Patentansprüche
durchgeführt
werden können,
ohne von dem Grundgedanken und dem angestrebten Schutzbereich der
Erfindung abzuweichen. Ferner sind jene Bereiche, von denen angenommen
wird, dass der Fachmann damit vertraut ist, hierin nicht beschrieben,
um die dargestellte Erfindung nicht in unnötiger Weise zu verdunkeln.
Es ist daher klar, dass die Erfindung nicht durch die speziellen
anschaulichen Ausführungsformen
beschränkt
ist, sondern lediglich durch den Schutzbereich der angefügten Patentansprüche.