DE69826727T2 - Automatische generierung von anwenderdefinierbarem speicher-bist-kreislauf - Google Patents

Automatische generierung von anwenderdefinierbarem speicher-bist-kreislauf Download PDF

Info

Publication number
DE69826727T2
DE69826727T2 DE69826727T DE69826727T DE69826727T2 DE 69826727 T2 DE69826727 T2 DE 69826727T2 DE 69826727 T DE69826727 T DE 69826727T DE 69826727 T DE69826727 T DE 69826727T DE 69826727 T2 DE69826727 T2 DE 69826727T2
Authority
DE
Germany
Prior art keywords
bist
memory
circuit
address
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69826727T
Other languages
English (en)
Other versions
DE69826727D1 (de
Inventor
David Yervant LEPEJIAN
Hrant Marandjian
Hovhannes Ghukasyan
Lawrence Kraus
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Credence Systems Corp
Original Assignee
Credence Systems Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Credence Systems Corp filed Critical Credence Systems Corp
Application granted granted Critical
Publication of DE69826727D1 publication Critical patent/DE69826727D1/de
Publication of DE69826727T2 publication Critical patent/DE69826727T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318385Random or pseudo-random test pattern
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning

Description

  • Die vorliegende Erfindung bezieht sich auf integrierte Halbleiterschaltungen und insbesondere auf Testschaltungen, die in integrierte Schaltungen (IC) eingebaut sind, die ein wirkungsvolles Testen eines eingebetteten Speichers, insbesondere eines Lese-/Schreib-Speichers, ermöglichen.
  • Da integrierte Schaltungen immer höhere Integrationsstufen erreichen, ist es allgemein üblich, dass man mehrere Speicherblöcke unterschiedlicher Größen anfindet, die innerhalb von Logikblöcken in der integrierten Schaltung eingebettet sind. Ein typisches Beispiel einer eingebetteten Schaltung sind die Daten- und Anweisungs-Cachespeicher zusammen mit ihrer zugeordneten Kennung sowie Cachespeicher für gültige Daten, wobei die Cachespeicher in den meisten modernen Mikroprozessoren eingebettet sind. Diese Speicher werden als "eingebettet" bezeichnet, da sie von den Eingangs- und Ausgangs-Kontaktstiften des integrierten Schaltungschips nicht unmittelbar zugänglich sind. Stattdessen ist ein eingebetteter Speicher durch Logikblöcke von den Eingangs- und Ausgangs-Kontaktstiften im gewöhnlichen Betrieb der Schaltung getrennt. Das Testen dieser eingebetteten Speicher ist daher kompliziert, da jeglicher Zugriff auf diese Speicher während des Normalbetriebs des Chips über die zugeordnete Logikschaltung vermittelt wird.
  • Integrierte Schaltungen werden im Umfang verwendet, da sie eine hohe Funktionalität pro Kosteneinheit bieten. Um die bei der Herstellung moderner integrierter Schaltungen notwendige Wirtschaftlichkeit zu erzielen, ist es notwendig, sowohl die Kosten der Rohschaltung als auch die Kosten ihres Testens zu minimieren. In vielen Fällen sind die Kosten des Testens der Vorrichtung vergleichbar zu den Kosten der Herstellung der Rohform in der Fabrik. Die Kosten einer funktionellen Form sind ungefähr proportional zur umgekehrten Exponentialfunktion der Formfläche. Es ist daher notwendig, die Formfläche zu minimieren, um die Kosten zu minimieren. Die Kosten des Testens sind näherungsweise proportional zum Produkt aus der Testzeit und den Kosten der Testgeräte. Es ist daher wünschenswert, sowohl die Testzeit als auch die Komplexität der Testgeräte zu minimieren, um die Testkosten zu minimieren.
  • Das Testen von Speichern wird im allgemeinen erreicht, indem man Testvektoren an den Speicher anlegt und die Ergebnisse ausliest, um einen richtigen Speicherbetrieb zu gewährleisten. Das Testen eines eingebetteten Speichers durch die umgebenden Logikschaltungen hindurch kann jedoch eine Anzahl von Testvektoren erfordern, die größer als der verfügbare Speicher in den automatischen Testgeräten sind, die zum Testen der Vorrichtung verwendet werden, und es ist auf jeden Fall sehr zeitaufwändig. Es ist außerdem unerwünscht, weil das Entwickeln von Programmen zur Durchführung derartiger Tests eine große Menge an Zeit von qualifizierten Prüfingenieuren erfordert, was zu den Gemeinkosten beiträgt.
  • Ein weiterer möglicher Ansatz zum Testen eingebetteter Speicher besteht darin, die Steuerung, die Adresse und die Datenleitungen der Speicher mit externen Kontaktflächen der integrierten Schaltung zu verbinden. Multiplexer-Blöcke werden innerhalb der integrierten Schaltung implementiert, um die ein gebetteten Speicher entweder mit den externen Kontaktflächen für das Testen oder mit internen Bussen für den standardmäßigen Schaltungsbetrieb zu verbinden. Ein Nachteil dieses Ansatzes besteht darin, dass die zusätzlichen Busleitungen und Kontaktflächen die Größe der Halbleiterform erhöhen und die zusätzlichen Kontaktflächen die Anzahl der benötigten Kontaktstifte der Testvorrichtung erhöhen. Die Kosten der Testvorrichtung sind im allgemeinen ungefähr proportional zur Anzahl der Kontaktstifte. Da bei modernen ICs ein Trend zu großen Speichern und zunehmend hoher Kapazität besteht, kann die Anzahl der zusätzlichen Busse und Kontaktflächen häufig mehr als 100 betragen, was eine untragbare Kostenbelastung darstellt.
  • Um übermäßige Kosten zu verhindern und gleichzeitig eine angemessene Fehlerüberdeckung bereitzustellen, gab es eine Entwicklung zum eingebauten Selbsttest (BIST, Built-In Self Test) von integrierten Schaltungen. Dieser Ansatz beruht auf in die integrierte Schaltung eingebauten Schaltungen zum Testen der Speicher und Berichten der Ergebnisse an eine Elektronik außerhalb des Chips mit Hilfe einer eingeschränkten Anzahl von Kontaktstiften. Ein Beispiel der BIST-Verfahrensweise, sind die allgemein verwendeten Joint Test Action Group (JTAG) Standards. Spezielle Test-Betriebsarten, die den Normalbetrieb der Schaltung außer Betrieb setzen, werden verwendet, um einen BIST zu ermöglichen.
  • BIST versucht, eine vollständige Fehlerüberdeckung bereitzustellen bei gleichzeitiger Minimierung der Testzeit und der Fläche der Form, die durch die BIST-Schaltung belegt wird. Bei einigen Anwendungen ist es auch wünschenswert, dass Diagnose-Information für Fehler zur Verfügung steht, die erfasst werden. Diese Anforderungen stehen im Konflikt zueinander, da das Hinzufügen von Diagnose-Fähigkeit die Größe des BIST er höht. Es wurden verschiedene Schemen entwickelt, die einen der Faktoren auf Kosten der anderen optimieren.
  • Ein derartiges Verfahren zum Reduzieren der Fläche auf dem Chip, die den Datenbussen zugeordnet ist, besteht darin, eine serielle Eingangsdaten-Leitung und eine serielle Ausgangsdaten-Leitung zu verwenden. Es werden Puffer seriell geladen und dann für einen Parallelbetrieb während des Schreibens, Lesens und Vergleichens der aus dem Speicher ausgelesenen Daten mit den abgespeicherten Daten verwendet. Ein Nachteil dieses Ansatzes besteht darin, dass die maximale Betriebsfrequenz durch die Breite des Datenworts verringert wird (z.B. 32 Bit), so dass der Speicher mit einer kleineren als der Betriebsfrequenz getestet wird. Somit werden Fehler, die nur bei Betrieb mit Normalgeschwindigkeit auftreten, wie z.B. kapazitive Kopplungsfehler und Übergangsfehler, nicht erfasst. Eine weitere Folge besteht darin, dass die zum Testen des Speichers benötigte Zeit um die Zeit erhöht wird, die zum seriellen Laden der Puffer notwendig ist. Dies kann die Testzeit um einen Faktor erhöhen, der näherungsweise gleich groß wie die Breite der Speicherwörter ist.
  • Ein weiterer Ansatz besteht darin, den Speicher-Eingabe-/Ausgabe-Leitungen Multiplexer hinzuzufügen, so dass die aus dem Speicher ausgelesenen Daten während des anschließenden Schreibens in benachbarte Bits zurückgeladen werden können, während sich der Speicher in der Test-Betriebsart befindet. Somit stehen die Daten von Bit 1 für das Schreiben in Bit 2 zur Verfügung; die Daten von Bit 2 stehen zum Schreiben in Bit 3 zur Verfügung; etc.. Das erste Bit empfängt neue Daten, und die von dem letzten Bit ausgegebenen Daten werden zum Vergleich zu der BIST-Steuerungsvorrichtung der Finite-Zustände-Maschine zurückgeleitet. Im Betriebsmodus verbinden die Multiplexer die Speicher-Datenleitungen mit dem Chip- Datenbus. Da Daten stets zum Schreiben verfügbar sind, wenn ein Lesebetrieb abgeschlossen ist, kann der Speicher mit Betriebgeschwindigkeit getestet werden, wodurch die Qualität und Genauigkeit des Testablaufs erhöht wird.
  • Mehrere Möglichkeiten zum Implementieren dieses Schemas sind möglich. Bei einer möglichen Implementierung wird die Ausgabe des letzten Bits eines Wortes in dem ersten Speicher in die Eingabe des ersten Bits eines Wortes in dem zweiten Speicher eingegeben, etc., um alle Speicher zu effektiv zu einem sehr breiten Speicher für Testzwecke umzuwandeln. Eine weitere Implementierung verwendet das Hinzufügen einer Serie von Steuerungsleitungen, so dass jeder Speicher gesondert freigegeben werden kann. Dies ermöglicht es, dass jeder Speicher sequenziell getestet wird. Für den Fall, dass die eingebetteten Speicher unterschiedliche Tiefen haben, muss das zweite Verfahren verwendet werden, da das erste Verfahren erfordert, dass die Speichertiefen dieselben sind.
  • Es gibt einige Nachteile bei diesen Ansätzen. Obwohl die obige Implementierung den Vorteil der Verwendung kleiner Flächen bietet, ist sie z.B. dennoch relativ langsam. Darüber hinaus ist im Falle eines Fehlers alles, was man weiß, die Wortadresse des Fehlers. Information bezüglich des fehlerhaften Bits ist nicht verfügbar, da das Wort so strukturiert ist, dass es als serielles Schieberegister ohne interne Beobachtbarkeit arbeitet. Für den Fall, dass das erste vorgeschlagene Verfahren der parallelen Verkettung von Wörtern verwendet wird, kann in der Tat nicht einmal der fehlerhafte Speicher mit Gewissheit bestimmt werden. Für einen einfachen Bestanden/Nicht-Bestanden-Test ist es ausreichend, zu identifizieren, dass ein Fehler aufgetreten ist. Wenn jedoch eine Redundanz verwendet wird, um den Fehler zu reparieren, oder wenn die Ursache des Fehlers analysiert werden soll, steht kriti sche Information nicht zur Verfügung. Erzielte das Wort eine gerade Anzahl von Übergangs- oder kapazitiven Kopplungsfehlern, die dazu führen, dass das Bit das Gegenteil der beabsichtigten Daten liest, kann dies sogar dazu führen, dass das Vorhandensein von Fehlern maskiert wird.
  • Ein alternativer Ansatz besteht darin, Datenmuster und Adressensequenzen zentral zu erzeugen und sie zu den eingebetteten Speichern zu leiten. Dieser Ansatz ist schneller als der obige serielle Testansatz, und zwar insbesondere dann, wenn mehrere eingebettete Speicher parallel getestet werden. Ein Nachteil dieses Lösungsansatzes besteht darin, dass das Wegleiten der zusätzlichen Daten und Adressenbusse beachtliche Mengen an Fläche auf dem Chip verbrauchen, wenn die Datenweg-Breite von der historischen Größe von 8 Bit auf 32 Bit oder 64 Bit ansteigt, was zunehmend üblich wird. Es kann sein, dass es nicht möglich ist, dieselben Busse für das Testen und den Normalbetrieb zu verwenden, da die Testsignale parallel zu den eingebetteten Speichern geleitet werden sollten, während die Busse im Betrieb oftmals gesondert sind, wie z.B. im Falle von Cache-Speicherdaten und Anweisungen. Dies bedeutet, dass das Testen zusätzliche Busse plus einen Multiplexer pro Dateneinheit und Adressenleitung benötigt.
  • Es wurde vorgeschlagen, die Busfläche durch Verwenden eines gesonderten Muster-Generators für jede zu prüfende Anordnung zu verringern und nur eine einfache codierte Anweisung von der Steuerungsvorrichtung zu dem Muster-Generator zu leiten, um den Muster-Generator anzuweisen, welche Gruppe konfektionierter Tests, die in dem Muster-Generator gespeichert sind, auszuführen ist. Dieser Lösungsansatz spart bei der Wegleitungsfläche auf Kosten der Fläche, die notwendig ist, um individuelle Muster-Generatoren zu erzeugen, um eine Vielzahl von Speichern zu testen.
  • Das parallele Testen eingebetteter Speicher ist zwar vom Standpunkt der Geschwindigkeit wünschenswert, doch haben eingebettete Speicher (z.B. Daten-Cache-RAM und der zugeordnete Kennzeichen-Cache-RAM) in einer integrierten Schaltung oftmals nicht dieselbe Größe. Wenn zwei Speicher unterschiedlicher Größe getestet werden, indem sie mit demselben Datenmuster beschrieben werden, werden die Daten in dem kleineren Speicher ausgehend von dem Adressenraum niedriger Ordnung mit den Daten überschrieben, die dazu bestimmt sind, den verbleibenden Raum in dem größeren Speicher zu füllen, falls der Prozess des Schreibens in den kleineren Speicher nicht gehemmt wird, wenn sein Adressenraum überschritten wird. Diese Situation könnte leicht zu fehlerhaften Testergebnissen für den kleineren Speicher führen.
  • Ein zum Lösen dieses Problems vorgeschlagener Ansatz besteht darin, den Zustand der Adressen höherer Ordnung zu verwenden, um das Schreibsignal an dem kleineren Speicher zu blockieren, was in einigen wenigen speziellen Fällen sehr effizient sein kann. Wenn z.B. ein Speicher in der Zeilenrichtung kleiner ist und die Größe des Zeilen-Adressenraums des kleineren Speichers ein binäres Vielfaches (z.B. 2k) der größeren Anordnung ist, erzeugt eine ODER-Verknüpfung der Zeilenadressen höherer Ordnung, die in dem kleineren Speicher nicht verwendet werden, ein einfaches Mittel zum Erzeugen des benötigten Blockiersignals. Für den allgemeineren Fall, bei dem die kleinere Anordnung eine willkürliche Größe hat, die kein binäres Vielfaches der größeren Anordnung ist, wird ein Grössen-Komparator benötigt, der für größere Adressenräume unzulässig groß wird und folglich eine nicht akzeptierbar große Chipfläche verbraucht.
  • Das US-Patent 5675545 beschreibt ein BIST-System für in eine IC eingebettete Testspeicher mit einer zentralen BIST- Steuerungsvorrichtung und einem separaten BIST-Modul, das jedem Speicher entspricht. Wenn ein BIST-Modul seinen entsprechenden Speicher testen soll, sendet die BIST-Steuerungsvorrichtung eine Sequenz aus Datenwörtern, die in den entsprechenden Speicher geschrieben werden sollen, zu den BIST-Modulen. Das BIST-Modul erzeugt eine Sequenz aus Speicheradressen, auf die während des Tests ein Schreib- und Lese-Zugriff erfolgt, schreibt ein hereinkommendes Datenwort in jede Speicheradresse, liest das Datenwort aus der Speicheradresse wieder aus und übersendet dann das ausgelesene Datenwort an die BIST-Steuerungsvorrichtung zurück. Die zentrale BIST-Steuerungsvorrichtung vergleicht dann die in die Speicheradressen geschriebenen Daten mit den auf der Speicheradresse ausgelesenen Daten, um zu bestimmen, ob der Speicher fehlerhaft ist. Dieses BIST-System kann relativ langsam sein, weil die Speichermodule sequenziell und nicht gleichzeitig getestet werden.
  • Das US-Patent 5572712 beschreibt ein BIST-Modul zum unabhängigen Durchführen aller Gesichtspunkte eines Tests auf einem einzigen eingebetteten Speicher, um Ausgabedaten zu erzeugen, die anzeigen, ob der Speicher fehlerhaft ist, und beschreibt ein Verfahren zum Auslegen und Herstellen einer IC mit einer derartigen BIST-Schaltung. Das Bereitstellen eines vollständig unabhängigen BIST-Moduls, wie es das US-Patent 5572712 für jeden eingebetteten Speicher lehrt, würde zwar das gleichzeitige Testen aller Speicher ermöglichen, doch würden derartige BIST-Module mehr Platz in einer IC belegen als dies bei den in dem US-Patent 5675545 beschriebenen BIST-Modulen der Fall wäre.
  • Ein Problem, das bei der praktischen Implementierung eines BIST auftritt, besteht darin, dass trotz seiner Wichtigkeit für den wirtschaftlichen Erfolg eines Entwurfs seine Anforde rungen nicht unmittelbar mit den Systemanforderungen verbunden sind. Da komplexe integrierte Schaltungen sich zu "Systemen auf einem Chip" entwickelt haben, wie dies der Slogan der internationalen Konferenz für Festkörper-Schaltungen 1996 der Fall war (1996 International Solid State Cirquits Conference), gibt es strukturierte Verfahrensweisen (Topdown-Methoden) für ihre Definition und ihren Entwurf. Dennoch besteht die Tendenz, dass die Auslegung des BIST für die Speicher, die in diesen Schaltungen eingebettet sind, auf einer ad hoc Basis durchgeführt wird. Die Kosten dieser Auslegung sind eine beachtliche Belastung insbesondere für anwendungsspezifische integrierte Schaltungen (ASICs), bei denen der Entwicklungszyklus kurz sein sollte und das Herstellungsvolumen relativ klein ist. Man benötigt daher ein Verfahren für den automatischen Entwurf eines effizienten BIST für eingebettete Speicher.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung stellt ein Mittel bereit zum automatischen Erzeugen der Auslegung des BIST für eingebettete Speicher. Der Lösungsansatz beruht auf Speichern oder Pseudo-Zufalls-Generatoren für die Implementierung vieler der Funktionen. Die Erfindung beinhaltet Software, welche die Gleichungen erzeugt, die als Eingaben für ein logisches Synthese-Hilfsmittel verwendet werden. Die Ausgabe des Synthese-Hilfsmittels wird einem automatischen Wegleitungs-Hilfsmittel zugeführt, wo sie mit der Ausgabe der Synthese der anderen Abschnitte der integrierten Schaltung IC zusammengeführt wird. Das Wegleitungs-Hilfsmittel ordnet die Signale an und leitet sie zusammen mit dem Rest der IC durch die Logik hindurch, die durch das Synthese-Werkzeug beschrieben wird. Das Ergebnis ist ein vollständiger IC-Entwurf, der effiziente Speicher-BIST-Schaltungen enthält.
  • Eine Ausführung der vorliegenden Erfindung stellt ein Verfahren bereit zum automatischen Generieren einer eingebauten Selbsttestschaltung (BIST-Schaltung) zum Testen eines eingebetteten Speichers eines integrierten Schaltungschips, wobei das Verfahren die folgenden Schritte aufweist: Bereitstellen von Eingabedaten, die für gewünschte BIST-Merkmale kennzeichnend sind; Berechnen von Ausgabedaten von mindestens einem Teil der Eingabedaten, wobei die Ausgabedaten für die BIST-Schaltungsfunktion kennzeichnend sind; Synthetisieren von BIST-Daten aus den Ausgabedaten, wobei die BIST-Daten kennzeichnend für eine BIST-Schaltung sind, in der die gewünschten BIST-Merkmale enthalten sind; Bereitstellen von IC-Daten, die für eine Schaltung des IC-Chips kennzeichnend sind; und Synthetisieren der BIST-Daten und der IC-Daten, um die Anordnung von Schaltungsblöcken auf dem IC-Chip und die Wegleitung zwischen den Blöcken zu bestimmen. Diese Ausführung ermöglicht die automatische Generierung eines BIST-Entwurfs, wobei an den Benutzer des Verfahrens geringe Anforderungen gestellt werden. Somit wird ein komplizierter BIST-Entwurf vereinfacht.
  • Das Verfahren kann zusätzlich das automatische Generieren einer Maske zur Verwendung beim Herstellen des integrierten Schaltungschips enthalten. Dies trägt zur Effizienz des Entwurfs bei, wodurch die Schritte verringert werden, die ein Schaltungsentwickler gehen muss, um die Chipproduktion vorzubereiten.
  • Darüber hinaus ermöglicht diese Ausführung eine Duplizierung des BIST-Entwurfs für ähnliche Speicher auf dem Chip und die Generierung anderer Entwürfe, falls die Speicher auf dem Chip nicht vollständig gleich sind. Dies ermöglicht die Anwendung für IC-Chips mit verschiedenen Arten und Größen von Speichern, wie es üblich ist.
  • Ein weiteres Ausführungsbeispiel der vorliegenden Erfindung stellt ein Rechnersystem bereit mit einem Rechnerprogramm zum automatischen Generieren eines BIST-Schaltungsentwurfs zum Testen eines eingebetteten Speichers einer integrierten Schaltung, wobei das Rechnersystem einen rechner-lesbaren Speicher enthält, der aufweist: einen Code, der Eingabedaten empfängt, die für die gewünschten BIST-Merkmale kennzeichnend ist; einen Code, der die Eingabedaten verarbeitet und Ausgabedaten erzeugt, die für den BIST-Betrieb kennzeichnend sind; einen Code, der die Ausgabedaten verarbeitet und BIST-Daten erzeugt, die für die BIST-Schaltungskomponenten und die Kopplung kennzeichnend sind; einen Code, der IC-Daten empfängt, die für die IC-Schaltungskomponenten und die Kopplung kennzeichnend sind; und einen Code, der die BIST-Daten und die IC-Daten verarbeitet und Entwurfsdaten erzeugt, die für den Entwurf der IC-Schaltungskomponenten und die Wegleitung zwischen den Komponenten kennzeichnend sind.
  • Ein besseres Verständnis der Eigenschaften und Vorteile der Erfindung ergibt sich anhand der restlichen Abschnitte der Beschreibung und der beigefügten Zeichnung.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • 1A ist ein Flussdiagramm für einen Entwurfsprozess zum automatischen Generieren einer integrierten BIST-Schaltung.
  • 1B ist eine Darstellung der Informationskategorien, die bei der Definition einer integrierten BIST-Schaltung zugeführt werden müssen.
  • 2 ist ein ausführlicheres Flussdiagramm für die Generierung der Gleichungen für den Speicher-BIST-Entwurf.
  • 3 ist ein Blockdiagramm der Inhalte der Haupt-Steuerungsvorrichtung, die in Übereinstimmung mit der Lehre dieser Erfindung ausgelegt ist.
  • 4 ist ein Flussdiagramm, das die Prozedur kennzeichnet, die beim Definieren der Logikgleichungen für die BIST-Implementierung verwendet werden.
  • 5 ist ein Gesamt-Blockdiagramm einer BIST-Schaltung und von Wegleitungs-Verbindungen, die in Übereinstimmung mit der Lehre dieser Erfindung ausgelegt sind.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • 1A zeigt ein Flussdiagramm 110 der Funktionsweise eines bevorzugten Ausführungsbeispiels dieser Erfindung mit einer Integration eines Gesamtentwurfs einer integrierten Schaltung. Eines der Ziele dieser Erfindung besteht darin, den Entwurf von BIST-Funktionen den Verfahrensweisen für den Gesamtentwurf des Produktes kompatibel zu machen. Die Definition eines BIST-Systems zum Testen eines eingebetteten Speichers bei Schritt 112 liefert Information zum Generieren von BIST-Logikgleichungen bei Schritt 114. Bei Schritt 116 werden die BIST-Logikschaltungen synthetisiert, um Daten zu erzeugen, die für eine BIST-Schaltung einschliesslich Komponenten und Kopplung kennzeichnend sind. Unabhängig von der Definition der BIST-Schaltung enthält Schritt 118 das Definieren einer Funktion, die eine IC während des Systembetriebs durchführen soll, die z.B. eine arithmetische Logikeinheit einer digitalen Signalprozessor-Funktion enthalten kann. Bei Schritt 120 wird der Funktionsabschnitt der IC entworfen. Bei Schritt 122 werden die funktionellen und die BIST-Elemente der IC zusammengefügt, und die in Schritt 112 bis 120 bestimmten Schaltungsblöcke werden angeordnet und somit Wegleitungsverbindungen zwischen ihnen bestimmt. Bei Schritt 124 wird die Anordnung und Wegleitungsinformation verwendet, um eine oder mehrere Masken zur Verwendung bei der Herstellung eines IC-Chips zu erzeugen.
  • Die Definition des BIST-Systems enthält das Zuführen von Information in den in 1B gezeigten Kategorien. Um die Anwendung dieser Erfindung so leicht wie möglich zu machen, verwendet dieses Ausführungsbeispiel der vorliegenden Erfindung eine strukturierte Eingabe für die Information von 1B, wie z.B. Auswahlmenüs oder auszufüllende Formulare, wobei dies jedoch nicht notwendig ist.
  • Die Speichertyp-Kategorie 152 bezieht sich auf die Art des Speichers, der durch die BIST-Schaltung getestet wird. Unter den Arten des Speichers sind DRAM, SRAM und EEPROM enthalten, doch sind sie nicht hierauf beschränkt. Die Art des getesteten Speichers schlägt weitere Merkmale der BIST-Schaltung vor. So kann z.B. die Art des Speichers anzeigen, welche Arten von Steuerungssignalen benötigt werden und welche Arten unnötig sind.
  • Die Steuerungssignal-Definition-Kategorie 158 bezieht sich auf die Art der gewünschten Steuerungssignale, wie z.B. "Lesen" oder "Schreiben". Das Hinzufügen von Steuerungssignalen ermöglicht ein ausführlicheres Testen und Diagnostizieren, wobei eine Abwägung mit der Benötigung von mehr Chipraum für Leitungen zum Führen der Signale erfolgt.
  • Die Adressen-Sequenzen-Kategorie 160 bezieht sich auf eine Reihenfolge, in der Adressen innerhalb eines Adressenraums adressiert werden sollen.
  • Eine Datenmuster-Kategorie 162 bezieht sich auf ein in ein Wort geschriebenes Muster. So könnte z.B. ein 4-Wort-Datenmuster, das 16-Bit-Wörter verwendet, aus lauter "Nullen" (0000 hex), aus lauter "Einsen" (FFFF hex), aus hex S5S5, hex AAAA, etc. bestehen.
  • Eine Testmuster-Kategorie 164 bezieht sich auf die Art der Aktionssequenz/Sequenzen, die während eines Tests durchgeführt wird/werden. Bei einer Aktionssequenz handelt es sich z.B. um Lese[Datenmuster 0]/Schreibe[Datenmuster i1]/Lese[Datenmuster 11] mit ausgewählten Adressensequenz.
  • Eine BIST-Entwurfsoptionen-Kategorie 168 bezieht sich auf benutzer-selektierbare Merkmale der BIST-Schaltung. Diese Optionen können z.B. enthalten, ob die Zeilen- und Spalten-Adressenräume segmentiert werden, wie dies in einer ebenfalls anhängigen und ebenfalls übertragenen Anmeldung mit der Seriennummer 08/917013 beschrieben ist mit dem Titel "Method and Apparatus for Built-In Self Test of Integrated Circuits Providing for Separate Row and Column Addresses", die hier durch Bezugnahme in ihrer Gesamtheit für sämtliche Zwecke mit aufgenommen wird.
  • 2 zeigt ein Flussdiagramm 200 für die Generierung der Haupt-BIST-Steuerungsvorrichtung.
  • Bei Schritt 204 wird ein Zähler für die Anzahl der Takte pro Aktion generiert. Dieser Zähler hängt von der Lese/Schreib-Zeitabstimmungsinformation von der BIST-Definition ab (siehe Kategorie 166 der 1B). Die Länge des Zählers kann einen niedrigen Wert von 1092 haben (Anzahl der Takte pro Aktion). Für die meisten Speicher führt dies zu einem Zähler mit einer kleinen Anzahl von Stufen. In gewissen Fällen, insbesondere bei nicht-flüchtigen Speichern, kann der Zähler bis zu 10 Stufen haben. In solchen Fällen kann man die Verwendung eines Schieberegisters mit linearer Rückkopplung (LFSR), anstatt die Verwendung eines Welligkeitszählers auswählen, wobei jedoch jede Form des Zählers akzeptabel ist.
  • Andere Zähler werden ähnlich definiert für die Anzahl der Aktionen pro Adresse, die Anzahl der Aktionssequenzen pro Test, sowie der Anzahl der Adressen bei den jeweiligen Schritten 206, 208 und 210. Einen Unterschied zwischen der Anzahl der Aktionen pro Adresse und der Anzahl der Aktionen pro Test erkennt man, wenn man ein Beispiel betrachtet. Man nehme an, dass der Test darin besteht, in einer Adressensequenz alle "Nullen" zu schreiben, alle "Nullen" zu lesen und alle "Einsen" zu schreiben und dann in einer weiteren Adressensequenz alle "Einsen" zu lesen, alle "Nullen" zu schreiben und alle "Nullen" zu lesen. In diesem Beispiel gibt es drei Aktionen pro Adresse (das heisst jede Adresse erfährt ein Gemisch aus dreimal Lesen und Schreiben, bevor sich die Adresse ändert), jedoch sechs Aktionen pro Testsequenz.
  • Eine Definition der Zählergleichungen folgt aus der Kenntnis der Anzahl von Gegenständen, die jeder Zähler zählen muss. Die Anzahl der Stufen für alle diese Zähler einschliesslich der Adressenzähler kann einen niedrigen Wert von log2 haben (Anzahl der gezählten Gegenstände). Hiervon ausgehend können bekannte Techniken verwendet werden, um die Gleichungen für diese Zähler zu definieren. So kann z.B. Synthese-Software, die von Exemplar Logic, Inc., einer Gesellschaft mit Sitz in Alameda, Californien, unter dem Handelsnamen "Leonardo(TM)" hergestellt wird, die Zählergleichungen auf der Grundlage einer Kenntnis der Anzahl der gezählten Gegenstände erzeugen.
  • Die Definition eines Steuerungs-Freigabe-Generators erfolgt bei Schritt 212. Die Steuerungs-Freigabe-Generator-Definition hängt von den ausgewählten Steuerungssignalen ab (siehe Steuerungssignal-Definition-Kategorie 158 in 1B). Ein Entwurf dieser Schaltung und derjenigen, die in Schritt 214-218 folgen, kann durch die Synthese-Software generiert werden, die von Exemplar Logic, Inc., einer Gesellschaft mit Sitz in Alameda, Californien, unter dem Handelsnamen "Leonardo(TM)" hergestellt wird.
  • Bei Schritt 214 wird ein Codierte-Daten-Generator definiert. Die Codierte-Daten-Generator-Gleichungen können durch das Verfahren gefunden werden, das in einer verwandten Anmeldung mit der Seriennummer 08/697968 beschrieben ist unter dem Titel "Efficient Filtering of Differing Address Spaces in Built-In Self Test for Embedded Memories", die ebenfalls auf den Namen des Anmelders dieser Anmeldung läuft und durch Verweis in ihrer Gesamtheit für alle Zwecke hier enthalten ist.
  • Bei Schritt 216 erfolgt eine Definition eines Steuerungssignal-Generators. Der Steuerungssignal-Generator hängt von den BIST-Optionen ab. Es können mehrere Optionen für diesen Generator auf der Grundlage der erlaubten BIST-Optionen vorab entworfen werden. Der richtige Entwurf wird auf der Grundlage der ausgewählten Optionen ausgewählt.
  • Bei Schritt 218 erfolgt eine Definition einer Finite-Zustände-Maschine. Die Finite-Zustände-Maschine ist abhängig von der Anzahl der Tests auf eine vorbestimmte Weise, weshalb ihre Entwurfsgleichungen generiert werden, sobald die Anzahl der Tests definiert ist.
  • Bei Schritt 220 erfolgt die Definition von Signal-Wegleitungen zwischen den zuvor definierten Blöcken. Ein Beispiel der Signal-Wegleitung ist in 3 gezeigt. Die "Cell Ensemble" Software, gefertigt von Cadence Design Systems, Inc., eine Gesellschaft mit Sitz in San Jose, Californien, kann die Schaltungsblock-Anordnung und die Signal-Wegleitung zwischen den Schaltungsblöcken bestimmen. Dieselbe Software kann verwendet werden, um die Schaltungsblock-Anordnung und die Wegleitung der integrierten BIST- und IC-Schaltungen zu bestimmen (siehe Schritt 122 von 1A).
  • 3 zeigt ein Blockdiagramm einer Haupt-Steuerungsvorrichtung. Die Haupt-Steuerungsvorrichtung enthält vorwiegend Zähler, weil Zähler so entworfen werden können, dass sie sowohl kompakt sind (das heisst eine kleine Entwurfsfläche belegen) und zu einem Betrieb mit voller Betriebs-Taktgeschwindigkeit in der Lage sind. In dieser Schaltung steuert eine Haupt-Finite-Zustände-Maschine 20 vier Zähler 21, 22, 23 und 24 mit einem Zustandssignal 29 an. Ein Warte-Zustand-Zähler 24 zählt die Anzahl der Takte pro Aktion und leitet die Ergebnisse zu einem Aktionszähler 23 und dem Steuerungs-Freigabe-Generator 26. Der Aktionszähler zählt die Anzahl der verschiedenen Aktionen pro Adresse und leitet die Ergebnisse zu der Haupt-Finite-Zustände-Maschine 20, dem Steuerungs-Freigabe-Generator, einem Codierte-Daten-Generator 50, einem Muster-Zähler 22, einem Adressenzähler 21 und einem Generator von Steuerungssignalen für andere Module 25.
  • Der Adressenzähler empfängt das Zustandsignal und ein Aktion-Getan-Signal 32 und generiert einen Adressen-Zählwert 30, der zu dem Steuerungssignal-Generator geleitet wird (z.B. ein kleiner Block aus kombinatorischer Logik), der dieses Signal mit dem Zustandssignal und dem Aktion-Getan-Signal kombiniert, um ein BIST-Getan-Signal, ein Diagnose/Schiebe-Signal 17, ein Adressentakt-Signal 13, ein Adressen-Initialisier-Signal 14 und ein Adressen-Rücksetz-Signal 15 zu generieren. Diese Signale werden allesamt zu der verteilten BIST-Schaltung gesendet, die sich bei den Speicherblöcken befindet, die getestet werden sollen.
  • Der Codierte-Daten-Generator empfängt das Muster-Komplett-Signal, das Zustandssignal und das Aktion-Komplett-Signal und generiert codierte Datenmuster. Diese codierten Daten werden zu einem Decodierer 60 gesendet (siehe 5), der sich bei den zu testenden Speichern befindet.
  • Der Steuerungs-Freigabe-Generator 26 kombiniert das Zustandssignal, das Aktion-Komplett-Signal, das Muster-Komplett-Signal und das Warten-Komplett-Signal, um ein Steuerungs-Freigabe-Signal 11, ein Incrementier/Decrementier-Signal 16 und ein Lese-Freigabe-Signal 18 zu bilden. Diese Signale werden ebenfalls zu der verteilten BIST-Schaltung gesendet (siehe 5 und die zugehörige Diskussion).
  • Ein Verfahren 400 zum Generieren der Gleichungen für die restliche BIST-Schaltung ist in 4 dargestellt. Der Prozess beginnt bei Schritt 402 und schreitet zu Schritt 404 fort, um die Haupt-Steuerungsvorrichtung für die größte Anordnung auf die zuvor beschriebene Art und Weise zu definieren: Gleichungen für den Daten-Decodierer, der dem Daten-Codierer in der Haupt-Steuerungsvorrichtung entspricht, werden dann bei Schritt 406 generiert. Bei den Schritten 408 und 410 werden ein Adressen-Generator bzw. ein Daten-Komparator definiert. Der Adressen-Generator und der Daten-Komparator können definiert werden gemäss der Beschreibungen der verwandten Anmeldungen mit der Seriennummer 08/707062 mit dem Titel "Efficient Built-In Self Test for Embedded Memories with Differing Address Spaces" und mit der Seriennummer 08/697969 mit dem Titel "Method and Apparatus for Built-In Self Test of Integrated Circuits", die ebenfalls auf den Anmelder der vorliegenden Anmeldung laufen und hiermit in ihrer Gesamtheit für alle Zwecke durch Verweis enthalten sind. Falls die Entwurfsoptionen eine bei Schritt 412 zu definierende Entzerrungsschaltung enthalten, wird ein entsprechender Entwurf in den verwandten Anmeldungen mit der Seriennummer 08/697968 und in der ebenfalls anhängigen und ebenfalls übertragenen Anmeldung mit der Nummer 08/917013 mit dem Titel "Method and Apparatus for Built-In Self Test of Integrated Circuits Providing for Separate Row and Column Adresses" vorgeschlagen (auf beide wurde weiter oben verwiesen). Anschließend kann bei Schritt 414 die Wegleitung definiert werden. Dies vervollständigt den Entwurf der BIST-Schaltung für diese Anordnung. Der Rest von 4 wird in Verbindung mit der Funktionsweise dieses Ausführungsbeispiels der vorliegenden Erfindung diskutiert.
  • Ein Ausführungsbeispiel eines Entwurfs gemäss der Lehre dieser Erfindung ist in 5 gezeigt. Eine BIST-Schaltung, wie z.B. die in 5 gezeigte, kann durch einen Logik-Synthetisierer generiert werden, der Eingabe-Daten in einer Entwurfssprache empfängt, welche die durchzuführende Funktion beschreibt. Diejenigen Leitungen, bei denen es sich tatsächlich um Busse handelt, sind mit einer diagonalen Linie durch sie hindurch gekennzeichnet, wie z.B. das Decodierte-Daten-Signal 103 zwischen einer lokalen Zeitabstimmungs-Entzerrungsschaltung 90 und einem getesteten Speicher 100. Die Haupt-Steuerungsvorrichtung 10 ist links von der gestrichelten Linie gezeigt. Blöcke, die auf der rechten Seite von der gestrichelten Linie erscheinen, sind verteilt, und zwar einer pro geprüftem eingebetteten Speicher. Es sind die lokalen Logikblöcke gezeigt, die einem Speicher zugeordnet sind.
  • Im allgemeinen gibt es einen dieser lokalen Logikblöcke für jeden Speicher. Die Blöcke, die für die BIST-Funktion verteilt sind, sind ein Adressen-Generator 40, ein Daten-Decodierer 60, ein Daten-Komparator 80 und eine lokale Zeitabstimmungs-Entzerrungsschaltung 90. In dem gezeigten Ausführungsbeispiel ist nur eine der Leitungen, die von der zentralen Steuerungsvorrichtung zu den verteilten Blöcken verlaufen, ein Bus, und zwar die Codierte-Daten-Leitung 12. Selbst für diesen Bus ist der Anzahl der Leitungen in dem Bus kleiner oder gleich zu log2 (Anzahl der Muster) bei einer Codierschaltung, welche die Breite des Codierte-Daten-Busses richtig minimiert, wie dies in einer verwandten Anmeldung mit der Seriennummer 08/697969 gezeigt ist (auf sie wurde weiter oben verwiesen). Die kleine Anzahl von Leitungen, die einer Wegleitung unterzogen werden müssen, trägt dazu bei, diese Erfindung effizient zu machen.
  • Die Haupt-Steuerungsvorrichtung koordiniert und synchronisiert die Tests, die an den individuellen Speichern durchgeführt werden. Das Adressen-Taktsignal 13, das Adressen-Initialisierungs-Signal 14, das Adressen-Rücksetzsignal 15 und das Inkrementier/Dekrementier-Signal 16 steuern die Generierung der Adressen für den Speicher.
  • Die Decodiervorrichtung 60 decodiert die Musterinformation und liefert Daten zu dem getesteten Speicher 100. Diese Daten werden decodiert und auf den Datenbus 103 bestätigt. Die Signal auf dem Datenbus, einem Adressenbus 101 und einer Steuerungsleitung 102 wirken auf den Speicher ein, indem sie von allen Speicherorten in beiden Polaritäten mit unterschiedlichen Adressensequenzen schreiben und lesen.
  • Die lokale Zeitabstimmung-Entzerrungsschaltung 90 erzeugt eine Impuls-Formung und eine Rand-Anordnung für das Adressen-, das Steuerungs- und das Decodierte-Daten-Signal für jeden lokalen Speicher. Die Entzerrungsschalung verringert Probleme, die im Zusammenhang mit dem Zugriff auf unterschiedliche eingebettete Speicher auftreten, die um Entfernungen beabstandet sind, bei denen Zeitabstimmungsprobleme auftreten könnten, wie z.B. 1 cm oder mehr. Bei einigen Fällen mögen diese Schaltungen nicht notwenig sein, wodurch die bei der Implementierung dieser Erfindung verwendete Fläche noch weiter verringert wird.
  • Der Daten-Komparator 80 vergleicht aus dem Speicher 100 ausgelesene Daten mit entsprechenden Eingabedaten und berichtet die Ergebnisse, nämlich bestanden/nichtbestanden, unter der Steuerung eines Lese-Freigabe-Signals 18 und eines Diagnose/Schiebe-Signals 17. Sollte die Information als bewertbar erachtet werden, ermöglicht das Hinzufügen von zwei Leitungen, dass der Daten-Komparator den Adressenort eines beliebigen fehlerhaften Bits zurück zu der Steuerungsvorrichtung berichtet. Diese Information kann mit Information kombiniert werden bezüglich der Art des Musters und der Daten-Polarität, die den Fehler verursacht hat, und eine externe Testvorrichtung für eine weitere Analyse, Redundanz-Reparatur oder andere Aktionen berichtet werden.
  • Wie man in 4 sieht, erfolgt nach dem Auffinden der Gleichungen für die BIST-Schaltung für die größte Anordnung eine Überprüfung, um zu sehen, ob es bei Schritt 416 noch mehr Anordnungen gibt. Wenn noch mehr Anordnungen vorhanden sind, wird die nächstgrößere Anordnung ausgewählt.
  • Bei Schritt 418 wird überprüft, ob die nächstgrößere Anordnung die Zeitabstimmung der Anordnung hat, für die der BIST-Entwurf abgeschlossen wurde.
  • Wenn sich die Zeitabstimmungen der beiden Anordnungen unterscheiden, wird die nächstgrößere Anordnung für eine spätere Bearbeitung bei Schritt 419 abgetrennt. Die Anordnungs-Zeitabstimmungen können sich z.B. unterscheiden, wenn ein SRAM und ein nicht-flüchtiger Speicher auf derselben IC eingebettet sind.
  • Wenn die Zeitabstimmungen bei den Anordnungen gleich sind, schreitet der Prozess zu Schritt 420 fort, wo der Adressen-Generator und der Daten-Komparator dupliziert werden. Da die Kosten des zusätzlichen ungenutzten Datenmusters gering ist, schlägt eine gute Entwurfspraxis vor, dass die Datenmuster für Anordnungen mit üblicher Zeitabstimmung üblich sind. Es gibt keine Anforderung, dass die Testmuster alle der verfügbaren Datenmuster verwenden. Dies ermöglicht, dass alle Anordnungen mit einer üblichen Zeitabstimmung dieselbe Steuerungsvorrichtung und denselben Codierte-Daten-Bus verwenden und die Tests zur gleichen Zeit durchführen.
  • Nach dem Duplizieren des Adressen-Generators, des Daten-Decodierers und des Daten-Komparators wird bei Schritt 422 eine Überprüfung durchgeführt, ob die nächstgrößere Anordnung denselben Adressenraum wie der Vorgänger hat oder nicht.
  • Wenn die Adressenräume der beiden Anordnungen unterschiedlich sind, fügt der Prozess Adressen-Filterungsschaltungen bei Schritt 424 zu und definiert die Signal-Wegleitung bei Schritt 426. Ein Beispiel einer Adressen-Filterung ist in einer verwandten Anmeldung mit der Seriennummer 08/967968 beschrieben (weiter oben zitiert).
  • Wenn die Adressenräume der beiden Anordnungen dieselben sind, werden die Gleichungen für die Entzerrung und die Wegleitung der vorhergehenden Anordnung bei Schritt 428 dupliziert.
  • Der Prozess kehrt dann zu Schritt 416 zurück und überprüft, ob es noch weitere Anordnungen gibt. Falls dies der Fall ist, wird die Schleife fortgesetzt.
  • Wenn es keine weiteren Anordnungen mit der Zeitabstimmung der ursprünglichen Anordnung gibt, für welche die BIST-Entwurfsgleichungen erzeugt werden, wird bei Schritt 430 überprüft, ob irgendwelche Anordnungen wegen einer unterschiedlichen Zeitabstimmung abgetrennt wurden. Falls dies der Fall ist, werden die Gleichungen für eine zweite Haupt-Steuerungsvorrichtung bei Schritt 432 generiert. Man folgt dann demselben Weg zum Generieren der Gleichungen für die andere BIST-Schaltung, wobei man bei Schritt 406 beginnt. Dieser Prozess wird fortgesetzt, bis die Entwurfsgleichungen für alle BIST-Schaltungen gefunden sind, wonach der Prozess bei Schritt 434 gestoppt wird.
  • Die obige Beschreibung dient der Veranschaulichung und ist nicht einschränkend aufzufassen. Zahlreiche Veränderungen der Erfindung ergeben sich dem Fachmann beim Lesen dieser Offenbarung. So können z.B. zahlreiche Adressenräume und andere Datenmuster verwendet werden, die zu anderen Logik-Gleichungen und Logik-Diagrammen führen würden. Darüber hinaus können dieselben Logik-Funktionen auf zahlreiche Arten und Weisen realisiert werden. Der Umfang der Erfindung sollte daher nicht unter Bezugnahme auf die obige Beschreibung, sondern vielmehr unter Bezugnahme auf die beigefügten Ansprüche bestimmt werden.

Claims (15)

  1. Verfahren zum Generieren einer integrierten Schaltung (IC), welche eine Betriebsschaltung enthält, die eine Vielzahl eingebetteter Speicher (100) aufweist, auf die durch die Betriebsschaltung zurückgegriffen wird, wobei die eingebetteten Speicher differierende Adressenbereiche haben, und wobei das Verfahren die folgenden Schritte aufweist: a) Bereitstellen einer ersten Spezifikation für eine Vielzahl eingebauter Selbsttest-Schaltungen (BIST) (40, 60, 80, 90), die jeweils einem gesonderten Speicher der eingebetteten Speicher entsprechen, und zwar jeweils zum Antworten auf Eingabe-Zeitabstimmungssignale durch Generieren einer Adressensequenz, Schreiben von Daten in und Lesen von Daten aus dem entsprechenden eingebetteten Speicher bei jeder Adresse der Adressensequenz, Vergleichen von Daten, die in den entsprechenden eingebetteten Speicher geschrieben wurden, mit Daten, die aus dem entsprechenden eingebetteten Speicher ausgelesen wurden, und Erzeugen von Ausgabedaten, die anzeigen, ob die in den eingebetteten Speicher geschriebenen Daten mit den aus dem eingebetteten Speicher ausgelesenen Daten übereinstimmen, wobei die Zeitabstimmungssignale ein erstes Zeitabstimmungssignal (11) zum Steuern der Zeitabstimmung des Speicherzugriffs sowie ein zweites Zeitabstimmungssignal (13) zum Steuern der Zeitabstimmung der Generierung jeder Adresse der Adressensequenz enthalten; b) Bereitstellen einer zweiten Spezifikation für eine BIST-Steuerungsvorrichtung zum gemeinsamen Generieren und Zuführen der ersten und der zweiten Zeitabstimmungssignale an alle BIST-Schaltungen; c) Synthetisieren eines IC-Entwurfs von Schaltungsblöcken, wobei jede der BIST-Schaltungen in Übereinstimmung mit der ersten Spezifikation implementiert wird und auch die Betriebsschaltung implementiert wird; d) Bestimmen der Anordnung und der Verbindungen der Schaltungsblöcke untereinander innerhalb der IC; und e) Generieren der IC in Übereinstimmung mit dem bei Schritt c) synthetisierten Entwurf der Schaltungsblöcke und Anordnen sowie Verbinden der Schaltungsblöcke untereinander, wie bei Schritt d) bestimmt.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die bei Schritt c) synthetisierten Schaltungsblöcke auch die BIST-Steuerungsvorrichtung in Übereinstimmung mit der zweiten Spezifikation implementieren.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass jede der einem eingebetteten Speicher entsprechenden BIST-Schaltungen einen Adressengenerator (40) enthält zum Antworten auf Impulse des zweiten Zeitabstimmungssignals durch Generieren einer Sequenz von Speicheradressen, die sich über einen Speicheradressen-Bereich des entsprechenden eingebetteten Speichers erstrecken, ohne ihn zu überschreiten.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die BIST-Steuerungsvorrichtung auch eine Sequenz codierter Datenwerte (12) gemeinsam generiert und jeder der BIST- Schaltungen zuführt, und wobei jede BIST-Schaltung die Sequenz codierter Datenwerte decodiert, um Daten zu erzeugen, die sie in ihren entsprechenden Schreib-Lese-Speicher (RAM-Speicher) schreibt.
  5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass jede der BIST-Schaltungen auf das erste Zeitabstimmungssignal reagiert, indem sie auf ihren entsprechenden RAM-Speicher mit einer Verzögerung zugreift, und wobei die erste Spezifikation diese Verzögerung für jede BIST-Schaltung gesondert spezifiziert.
  6. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass jede der einem eingebetteten Speicher entsprechenden BIST-Schaltungen einen Adressengenerator (40) enthält zum Reagieren auf Impulse des zweiten Zeitabstimmungssignals durch Generieren einer Sequenz aus Speicheradressen, welche sich über einen Speicheradressen-Bereich des entsprechenden eingebetteten Speichers erstrecken, ohne ihn zu überschreiten.
  7. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die BIST-Steuerungsvorrichtung auch eine Sequenz codierter Datenwerte (12) gemeinsam generiert und jeder der BIST-Schaltungen zuführt, und wobei jede BIST-Schaltung die Sequenz codierter Datenwerte decodiert, um Daten zu erzeugen, die sie in jede Adresse ihres entsprechenden RAM-Speichers schreibt.
  8. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass jede der BIST-Schaltungen auf das erste Zeitabstimmungssignal reagiert, indem sie aus ihren entsprechenden RAM-Speicher mit einer Verzögerung zugreift, und wobei die erste Spezifikation diese Verzögerung für jede BIST-Schaltung gesondert spezifiziert.
  9. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass jede BIST-Steuerungsvorrichtung auch eine Sequenz codierter Datenwerte (12) gemeinsam generiert und jeder der BIST-Schaltungen zuführt, und wobei jede BIST-Schaltung die Sequenz codierter Datenwerte decodiert, um Daten zu erzeugen die sie in jede Adresse ihres entsprechenden RAM-Speichers schreibt.
  10. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass jede der BIST-Schaltungen auf das erste Zeitabstimmungssignal reagiert, indem sie auf ihren entsprechenden RAM-Speicher mit einer Verzögerung zugreift, und wobei die erste Spezifikation diese Verzögerung für jede BIST-Schaltung gesondert spezifiziert.
  11. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass jede der BIST-Schaltungen auf das erste Zeitabstimmungssignal reagiert, indem sie auf ihren RAM-Speicher mit einer Verzögerung zugreift, und wobei die erste Spezifikation diese Verzögerung für jede BIST-Schaltung gesondert spezifiziert.
  12. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass jede BIST-Steuerungsvorrichtung auch eine Sequenz codierter Datenwerte (12) gemeinsam generiert und jeder BIST-Schaltung zuführt, und wobei jede BIST-Schaltung die Sequenz codierter Datenwerte decodiert, um Daten zu erzeugen, die sie in jede Adresse ihres entsprechenden RAM-Speichers schreibt.
  13. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass jede der BIST-Schaltungen auf das erste Zeitabstimmungssignal reagiert, indem sie auf ihren entsprechenden RAM-Speicher mit Verzögerung zugreift, und wobei die erste Spezifikation diese Verzögerung für jede BIST-Schaltung gesondert spezifiziert.
  14. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die BIST-Steuerungsvorrichtung auch eine Sequenz codierter Datenwerte (12) gemeinsam generiert und jeder BIST-Schaltung zuführt, und wobei jede BIST-Schaltung die Sequenz codierter Datenwerte decodiert, um Daten zu erzeugen, die sie in jede Adresse ihres entsprechenden RAM-Speichers schreibt.
  15. Verfahren nach Anspruch 12, dadurch gekennzeichnet, dass jede der BIST-Schaltungen auf das erste Zeitabstimmungssignal reagiert, indem sie auf ihren entsprechenden RAM-Speicher mit einer Verzögerung zugreift, und wobei die erste Spezifikation diese Verzögerung für jede BIST-Schaltung gesondert spezifiziert.
DE69826727T 1998-08-21 1998-08-21 Automatische generierung von anwenderdefinierbarem speicher-bist-kreislauf Expired - Fee Related DE69826727T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1998/017302 WO2000011566A1 (en) 1998-08-21 1998-08-21 Automatic generation of user definable memory bist circuitry

Publications (2)

Publication Number Publication Date
DE69826727D1 DE69826727D1 (de) 2004-11-04
DE69826727T2 true DE69826727T2 (de) 2005-10-06

Family

ID=22267709

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69826727T Expired - Fee Related DE69826727T2 (de) 1998-08-21 1998-08-21 Automatische generierung von anwenderdefinierbarem speicher-bist-kreislauf

Country Status (5)

Country Link
EP (1) EP1129415B1 (de)
JP (1) JP2002523894A (de)
KR (1) KR100538286B1 (de)
DE (1) DE69826727T2 (de)
WO (1) WO2000011566A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9250992B1 (en) 2013-05-07 2016-02-02 Marvell International Ltd. Test data reporting during memory testing
US20170328951A1 (en) * 2016-05-13 2017-11-16 Altera Corporation Embedded built-in self-test (bist) circuitry for digital signal processor (dsp) validation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572712A (en) * 1994-09-30 1996-11-05 Vlsi Technology, Inc. Method and apparatus for making integrated circuits with built-in self-test
US5784291A (en) * 1994-12-22 1998-07-21 Texas Instruments, Incorporated CPU, memory controller, bus bridge integrated circuits, layout structures, system and methods
US5675545A (en) * 1995-09-08 1997-10-07 Ambit Design Systems, Inc. Method of forming a database that defines an integrated circuit memory with built in test circuitry
JP3616212B2 (ja) * 1996-09-25 2005-02-02 株式会社リコー メガセルテスト支援装置

Also Published As

Publication number Publication date
KR100538286B1 (ko) 2005-12-21
EP1129415A4 (de) 2003-08-06
WO2000011566A1 (en) 2000-03-02
JP2002523894A (ja) 2002-07-30
DE69826727D1 (de) 2004-11-04
EP1129415B1 (de) 2004-09-29
KR20010053186A (ko) 2001-06-25
EP1129415A1 (de) 2001-09-05

Similar Documents

Publication Publication Date Title
DE2555439C2 (de) Monolithische hochintegrierte Halbleiterschaltung
DE69825234T2 (de) Verfahren und vorrichtung zur selbstprüfung von multi-port-rams
DE69729771T2 (de) Integrierte Schaltung mit einer eingebauten Selbsttestanordnung
DE102004023407B4 (de) Testvorrichtung und Verfahren zum Testen eines eingebetteten Speicherkerns sowie zugehöriger Halbleiterchip
DE60005156T2 (de) Verteilte schnittstelle zur parallelen prüfung von mehreren vorrichtungen, wobei nur ein einzelner testkanal benutzt wird
DE60102164T2 (de) Systeminitialisierung eines mikrocode-basierten eingebauten speicher-selbsttests
DE102011053359B4 (de) Latch-basierte Speichervorrichtung und Verfahren zum Testen derselben
DE10150321A1 (de) Verfahren und Vorrichtung zum Testen von integrierten Schaltungen
DE10315248A1 (de) Eingebaute Selbsttestschaltung
DE10206249B4 (de) Verfahren zum Erzeugen von Testsignalen für eine integrierte Schaltung sowie Testlogik
DE19639972B4 (de) Hochgeschwindigkeitstestschaltkreis für eine Halbleiterspeichervorrichtung
DE3634352A1 (de) Verfahren und anordnung zum testen von mega-bit-speicherbausteinen mit beliebigen testmustern im multi-bit-testmodus
EP1205938B1 (de) Integrierte Schaltung mit Testbetriebsart und Verfahren zum Testen einer Vielzahl solcher integrierter Schaltungen
DE102007032273A1 (de) Direktzugriffsspeicher mit Prüfschaltung
DE10250875B4 (de) Vorrichtung und Verfahren zum Konfigurieren einer integrierten Schaltung mit eingebettetem Speicher
DE102008013099A1 (de) Speichertestschaltung
DE102006011706B4 (de) Halbleiter-Bauelement, sowie Halbleiter-Bauelement-Test-Verfahren
DE10226585C1 (de) RAM-Speicherschaltung
DE4210109C2 (de) Sortiervorrichtung zum Sortieren von Daten und Sortierverfahren
WO1999043004A1 (de) Testschaltung und verfahren zum prüfen einer digitalen halbleiter-schaltungsanordnung
DE69826727T2 (de) Automatische generierung von anwenderdefinierbarem speicher-bist-kreislauf
DE10110567B4 (de) Datenverarbeitungssystem mit einstellbaren Takten für unterteilte synchrone Schnittstellen
DE10135966A1 (de) Verfahren zum On-Chip-Testen von Speicherzellen einer integrierten Speicherschaltung
DE10058464B4 (de) Mustererzeugungsverfahren, dieses verwendender Mustergenerator, und diesen Mustergenerator verwendendes Speichertestgerät
DE10102405A1 (de) Halbleiterspeicherbauelement mit datenübertragender Pipeline

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee