DE60302473T2 - Built-in-self-test für flash speicherzellen - Google Patents

Built-in-self-test für flash speicherzellen Download PDF

Info

Publication number
DE60302473T2
DE60302473T2 DE60302473T DE60302473T DE60302473T2 DE 60302473 T2 DE60302473 T2 DE 60302473T2 DE 60302473 T DE60302473 T DE 60302473T DE 60302473 T DE60302473 T DE 60302473T DE 60302473 T2 DE60302473 T2 DE 60302473T2
Authority
DE
Germany
Prior art keywords
flash memory
memory cells
bist
state
address
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 - Lifetime
Application number
DE60302473T
Other languages
English (en)
Other versions
DE60302473D1 (de
Inventor
S. Colin BILL
Azrul Halim
Darlene Hamilton
V. Edward BAUTISTA
Fook Weng LEE
Cheong Ken CHEAH
Boon Chee LAW
Tang Boon TEH
Joseph Kucera
Syahrizal Salleh
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.)
Spansion LLC
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/200,330 external-priority patent/US6665214B1/en
Priority claimed from US10/200,518 external-priority patent/US7010736B1/en
Priority claimed from US10/200,544 external-priority patent/US6631086B1/en
Priority claimed from US10/200,540 external-priority patent/US20040049724A1/en
Priority claimed from US10/200,526 external-priority patent/US7028240B1/en
Priority claimed from US10/200,539 external-priority patent/US6707718B1/en
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Application granted granted Critical
Publication of DE60302473D1 publication Critical patent/DE60302473D1/de
Publication of DE60302473T2 publication Critical patent/DE60302473T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/72Masking faults in memories by using spares or by reconfiguring with optimized replacement algorithms
    • 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/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • 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
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • G11C29/16Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
    • 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
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/20Address generation devices; Devices for accessing memories, e.g. details of addressing circuits using counters or linear-feedback shift registers [LFSR]
    • 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
    • G11C29/44Indication or identification of errors, e.g. for repair
    • 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/48Arrangements in static stores specially adapted for testing by means external to the store, e.g. using direct memory access [DMA] or using auxiliary access paths
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS

Landscapes

  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Read Only Memory (AREA)
  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Tests Of Electronic Circuits (AREA)

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft im Allgemeinen die Herstellung von Flash-Speicherbauelementen und betrifft insbesondere ein System und ein Verfahren zum Ausführen eines eingebauten Selbsttests eines Arrays aus Kern-Flash-Speicherzellen mit einer minimalen Anzahl an Anschlussstiften, so dass eine maximale Anzahl an Chipflächen auf einer Halbleiterscheibe gleichzeitig getestet werden kann.
  • Der Abschnitt „Detaillierte Beschreibung" ist in die folgenden Teilabschnitte aufgeteilt:
    • A. BIST- (eingebautes Selbsttest) System;
    • B. BIST- (eingebaute Selbsttest) Schnittstelle;
    • C. hintere BIST- (eingebauter Selbsttest) Zustandsmaschine;
    • D. chipinterne Reparatur von fehlerhaften Adressen von Kern-Flash-Speicherzellen;
    • E. diagnostischer Modus zum Testen der Funktionalität der hinteren BIST- (eingebauter Selbsttest) Zustandsmaschine;
    • F. Adressensequenzierer innerhalb des BIST- (eingebautes Selbsttest) Systems;
    • G. Mustergenerator im BIST- (eingebauter Selbsttest) System;
    • H. chipinterner Löschpulszähler für effizienten Lösch-Verifizier-BIST (eingebauter Selbsttest) Modus; und
    • I. Erzeugen von chipinternen Grenzspannungen während des Testens des CAM-Bereichs eines Flash-Speicherbauelements.
  • HINTERGRUND DER ERFINDUNG
  • Gemäß 1 umfasst eine Flash-Speicherzelle 100 eines Flash-Speicherbauelements eine dielektrische Tunnelstruktur 102, die typischerweise aus Siliziumdioxid (SiO2) oder mit nitridiertem Oxid aufgebaut ist, wie dies dem Fachmann in der Herstellung integrierter Schaltungen bekannt ist. Die dielektrische Tunnelstruktur 102 ist auf einem Halbleitersubstrat oder einem p-Potentialtopf bzw. einer p-Wanne 103 angeordnet. Ferner ist eine schwebende Gatestruktur 104, die aus einem leitenden Material, etwa Polysilizium, aufgebaut ist, ü ber der dielektrischen Tunnelstruktur 102 angeordnet. Eine dielektrische Struktur 106, die typischerweise aus Siliziumdioxid (SiO2) aufgebaut ist, ist über der schwebenden bzw. potentialfreien Gatestruktur 104 angeordnet. Eine Steuergatestruktur 108, die aus einem leitenden Material aufgebaut ist, ist über der dielektrischen Struktur 106 angeordnet.
  • Ein Drain-Bit-Leitungsübergang 110, der mit einem Übergangsdotierstoff dotiert ist, etwa Arsen (As) oder Phosphor (P) ist in einem aktiven Bauteilgebiet 112 des Halbleitersubstrats oder p-Potentialtopfs 103 in Richtung einer linken Seitenwand der schwebenden Gatestruktur 104 in 1 gebildet. Ein Source-Bit-Leitungsübergang 114, der mit einem Übergangsdotierstoff dotiert ist, ist in dem aktiven Bauteilgebiet 112 des Halbleitersubstrats oder des p-Potentialtopfs 106 in Richtung einer rechten Seitenwand der schwebenden Gatestruktur 104 aus 1 ausgebildet.
  • Während des Programmier- oder Löschvorgangs der Flash-Speicherzelle 100 aus 1 werden Ladungsträger in die schwebende Gatestruktur 104 eingebracht oder Tunneln aus dieser heraus. Eine derartige Änderung der Ladungsträgermenge innerhalb der schwebenden Gatestruktur 104 ändert die Schwellwertspannung bzw. Einsetzspannung der Flash-Speicherzelle 100, wie dies dem Fachmann in der Flash-Speichertechnologie bekannt ist. Wenn beispielsweise die Ladungsträger Elektronen sind, die in die schwebende Gatestruktur 104 eingebracht werden, steigt die Schwellwertspannung an. Wenn andererseits Elektronen die Ladungsträger sind, die aus der schwebenden Gatestruktur 104 heraustunneln, wird die Schwellwertspannung kleiner. Diese zwei Zustände werden als die beiden Zustände zur Speicherung digitaler Information innerhalb der Flash-Speicherzelle 100 benutzt, wie dies dem Fachmann auf dem Gebiet der Elektronik bekannt ist.
  • Während des Programmierens der Flash-Speicherzelle 100 wird beispielsweise eine Spannung von + 9 Volt an die Steuergatestruktur 108, eine Spannung von +5 Volt an den Drain-Bit-Leitungsübergang 110 und eine Spannung von 0 Volt an den Source-Bit-Leitungsübergang 114 und an das Halbleitersubstrat oder den p-Potentialtopf 103 angelegt. Mit einer derartigen Vorspannung werden, wenn die Flash-Speicherzelle 100 eine n-Kanalflashspeicherzelle ist, Elektronen in die schwebende Gatestruktur eingebracht, um damit die Schwellwertspannung der Flash-Speicherzelle 100 während des Programmierens der Flash-Speicherzelle 100 einzubringen.
  • Andererseits wird während des Löschens der Flash-Speicher 100 eine Spannung von –9,5 Volt an die Steuergatestruktur 108 angelegt, die Drain-Bit-Leitung wird am Übergang 110 potentialfrei bzw. schwebend gehalten, und eine Spannung von +4,5 Volt wird an den Source-Bi-Leitungsübergang 114 und an das Halbleitersubstrat oder dem p-Potentialtopf 103 angelegt, um ein Beispiel zu nennen. Mit einer derartigen Vorspannung werden, wenn die Flash-Speicherzelle 100 eine n-Kanalflash-Speicherzelle ist, Elektronen aus der schwebenden Gatestruktur 104 herausgelöst, um damit die Schwellwertspannung der Flash-Speicherzelle 100 während des Löschens der Flash-Speicherzelle 100 zu verringern. Eine derartige Löschoperation wird als ein Grenzlöschprozess vom Fachmann auf dem Gebiet der Flash-Speichertechnologie bezeichnet.
  • In einem alternativen Kanal-Lösch-Prozess wird eine Spannung von –9,5 Volt an die Steuergatestruktur 108 und eine Spannung von +9 Volt an das Halbleitersubstrat oder den p-Potentialtopf 103 angelegt, wobei die Drain- und Source-Bitleitungsübergänge 110 und 114 potentialfrei bzw. schwebend bleiben. Mit einer derartigen Vorspannung werden, wenn die Flash-Speicherzelle eine n-Kanalflashspeicherzelle ist, Elektronen aus der schwebenden Gatestruktur 104 herausgelöst und in das Substrat oder den p-Potentialtropf 103 eingebracht, um die Schwellwertspannung der Flash-Speicherzelle 100 während des Löschens der Flash-Speicherzelle 100 zu verringern.
  • 2 zeigt ein Schaltbild der Flash-Speicherzelle 100 aus 1 mit einem Steuergateanschluss 150, der mit der Steuergatestruktur 108 verbunden ist, einem Drainanschluss 152, der mit dem Drain-Bitleitungsübergang 110 verbunden ist, einem Source-Anschluss 154, der mit dem Source-Bit-Leitungsübergang 114 verbunden ist, und einem Substrat- oder p-Potentialtopfanschluss 156, der mit dem Substrat oder dem p-Potentialtopf 103 verbunden ist. 3 zeigt eine elektrisch löschbare und programmierbare Speichereinrichtung 200 mit einem Array aus Flash-Speicherzellen, wie sie dem Fachmann auf dem Gebiet der Flash-Speichertechnologie bekannt ist. Gemäß 3 umfasst das Array aus Flash-Speicherzellen 200 Reihen und Spalten aus Flash-Speicherzellen, wobei jede Flash-Speicherzelle einen Aufbau ähnlich zu der Flash-Speicherzelle 100 aus 1 und 2 aufweist. Der Einfachheit halber und zur besseren Darstellung ist das Array aus Flash-Speicherzellen 200 in 3 mit zwei Spalten und zwei Reihen aus Flash-Speicherzellen gezeigt. Ein typisches Array aus Flash-Speicherzellen, aus der eine elektrisch löschbare und programmierbare Speichereinrichtung aufgebaut ist, besitzt jedoch typischerweise eine größere Anzahl an Reihen und Spalten aus Flash-Speicherzellen.
  • Es sei weiter auf 3 verwiesen; in dem Array aus Flash-Speicherzellen 200, die eine elektrisch lösbare und programmierbare Speichereinrichtung bilden, sind die Steuergateanschlüsse aller Flash-Speicherzellen in einer Reihe des Arrays miteinander verbunden, um eine entsprechende Wortleitung für diese Zeile zu bilden. In 3 sind die Steuergateanschlüsse aller Flash-Speicherzellen in der ersten Reihe miteinander verbunden, um eine erste Wortleitung 202 zu bilden, und die Steuergateanschlüsse aller Flash-Speicherzellen in der zweiten Reihe sind ebenso miteinander verbunden, um eine zweite Wortleitung 204 zu bilden.
  • Ferner sind die Drainanschlüsse aller Flash-Speicherzellen in einer Spalte miteinander verbunden, um eine entsprechende Bitleitung für diese Spalte zu bilden. In 3 sind die Drain-Anschlüsse aller Flash-Speicherzellen in der ersten Spalte miteinander verbunden, um eine erste Bit-Leitung 206 zu bilden, und die Drain-Anschlüsse aller Flash-Speicherzellen in der zweiten Spalte sind ebenso miteinander verbunden, um eine zweite Bit-Leitung 208 zu bilden. Gemäß 3 sind die Source-Anschlüsse aller Flash-Speicherzellen des Arrays 200 mit einer Source-Spannung VSS verbunden, und das Substrat oder der p-Potentialtopfanschluss aller Flash-Speicherzellen des Arrays 200 ist mit einer Substratspannung Vsub verbunden.
  • Gemäß 4 ist eine Flash-Speichereinrichtung, die aus einem Array aus Flash-Speicherzellen, wie sie in 3 beispielsweise dargestellt sind, aufgebaut ist, auf einem Halbleiterchip einer Halbleiterscheibe 220 hergestellt. Mehrere Halbleiterchips sind auf der Halbleiterscheibe 220 gefertigt. Jede quadratische Fläche auf der Halbleiterscheibe 220 aus 4 repräsentiert einen Halbleiterchip. Es sind typischerweise wesentlich mehr Halbleiterchips auf einer Halbleiterscheibe ausgebildet, als dies in 4 der Einfachheit halber gezeigt ist. Jeder Halbleiterchip aus 4 weist eine entsprechende Flash-Speichereinrichtung auf, die aus einem Array aus Kern-Flash-Speicherzellen aufgebaut ist.
  • Während der Herstellung der Flash-Speichereinrichtungen auf der Halbleiterscheibe 220 wird jede Flash-Speichereinrichtung auf einem Halbleiterchip im Hinblick auf die korrekte Funktion getestet, wie der Fachmann auf dem Gebiet der Flash-Speicherherstellung weist.
  • Gemäß 5 besitzt ein beispielhafter Halbleiterchip 222 eine Flash-Speichereinrichtung mit einem Array aus Kern-Flash-Speicherzellen 224. Gemäß den 3 und 5 werden während des Testens der Flash-Speichereinnchtung auf dem Halbleiterchip 222 mittels eines externen Testsystems Vorspannungen an das Array aus Kern-Flash-Speicherzellen 224 über Kontaktflächen 226 des Halbleiterchips 222 zum Testen des Arrays aus Kern-Flash-Speicherzellen 224 angelegt.
  • Gemäß den 3 und 5 werden Muster aus Programmier- und Löschspannungen an das Array aus Kern-Flash-Speicherzellen 224 mittels des externen Testsystems über die Kontaktflächen 226 in Übereinstimmung mit mehreren Flash-Speichertestmodi angelegt. Beispielsweise wird das Array aus Kern-Flash-Speicherzellen 224 in einem Testmodus in einem abwechselnden schachbrettartigen Muster programmiert und gelöscht. Alternativ werden die Flash-Speicherzellen, die in der Diagonale des Arrays aus Kern-Flash-Speicherzellen 224 angeordnet sind, gemäß einer weiteren Testart programmiert. Danach wird ein Lesevorgang an dem Array aus Kernflashspeicherzellen mittels des externen Testsystems für jeden Testmodus mittels der Kontaktflächen 226 ausgeführt, um zu bestimmen, ob das Array aus Kern-Flash-Speicherzellen 224 korrekt programmiert und gelöscht ist. Diese Vielfalt an Speichertestmodi und ein entsprechendes externes Testsystem zum Testen der korrekten Funktion des Arrays aus Kern-Flash-Speicherzellen ist dem Fachmann auf dem Gebiet der Flash-Speicherherstellung bekannt. Ein Beispiel eines derartigen externen Testsystems ist das Modell V3300, das von Agilent-Technologie, Inc., Hauptsitz in Palo Alto in Kalifornien, erhältlich ist.
  • Konventioneller Weise führt das externe Testsystem das Programmieren, Löschen und Lesen an dem Array aus Kern-Flash-Speicherzellen über die Kontaktflächen 226 des Halbleiterchips 222 während des Testens der korrekten Funktion des Arrays aus Kern-Flash-Speicherzellen durch. Für ein relativ großes Array aus Kern-Flash-Speicherzellen (etwa beispielsweise für eine 16 Megabit-Flash-Speichereinrichtung) wird eine relativ große Anzahl an Anschlussstiften des externen Testsystems zum Testen jedes Halbleiterchips auf der Halbleiterscheibe 220 gemäß dem Stand der Technik verwendet. Beispielsweise werden für eine 16 Megabit-Flash-Speichereinrichtung 46 Anschlussstifte des externen Testsystems konventioneller Weise verwendet, wenn das externe Testsystem das Programmieren, Löschen und Lesen direkt an dem Array aus Kern-Flash-Speicherzellen durchführt. Wenn das externe Testsystem insgesamt 500 Anschlussstifte aufweist, dann können 10 Halbleiterchips gleichzeitig getestet werden, da ein entsprechender Satz aus 46 Anschlussstiften für das Testen jeweils eines Halbleiterchips erforderlich ist.
  • Jedoch ist es wünschenswert, eine maximale Anzahl an Halbleiterchips gleichzeitig zu testen, um den Durchsatz während der Herstellung von Flash-Speicheieinrichtungen zu maximieren. Beispielsweise kann eine größere Anzahl an Halbleiterchips gleichzeitig getestet werden, wenn ein externes Testsystem eine größere Gesamtanzahl an Anschlussstiften aufweist. Jedoch ist ein externes System mit einer deutlich größeren Anzahl an Stiften sicherlich wesentlich teurer. Ferner steigt mit dem Fortgang der Technologie auch die Bit-Zahl der Flash-Speichereinrichtung an, und es werden mehr Anschlussstifte der externen Testsysteme für jeden Halbleiterchip erforderlich, wenn das externe Testsystem das Programmieren, Löschen und Lesen direkt an dem Array aus Kern-Flash-Speicherzellen durchführt, wodurch der Durchsatz im Stand der Technik weiter reduziert wird. Somit ist ein Mechanismus wünschenswert, um die Anzahl an Anschlussstiften zu minimieren, die für das Testen der Flash-Speichereinrichtung auf jedem Halbleiterchip erforderlich ist, so dass eine maximale Anzahl an Halbleiterchips gleichzeitig mittels eines externen Testsystems, das eine begrenzte Gesamtanzahl an Anschlussstiften aufweist, getestet werden kann, um den Durchsatz während der Herstellung von Flash-Speicherbauelementen zu erhöhen.
  • US-A-5,675,546 offenbart einen Test für ein Array aus Speicherzellen, wobei eine BIST-Schnittstelle (TIM) parallel Bits von Testmodusdaten einspeist, wobei eine Zustandsmaschine CROM-BILBO-Testmodi, die als BIST-Modi bezeichnet werden, gemäß den Testmodusdaten durchführt, und wobei die Reihenfolge des Ausführens der BIST-Modi durch ein internes Register (BILBO-COMMAND-STATUS SRL) bestimmt ist.
  • US-A-5,406,566 offenbart eine serielle Einspeisung von Testmodusdaten von einem externen Testsystem.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Der Speichertest gemäß der vorliegenden Erfindung ist durch die Ansprüche 1 bzw. 15 definiert.
  • In einer Ausführungsform der vorliegenden Erfindung werden in einem System und einem Verfahren zum Testen eines Arrays von Kern-Flash-Speicherzellen, die auf einem Halbleiterchip gefertigt sind, Testdaten von einem externen Testsystem zu einer ersten Datenspeichereinrichtung, die auf dem Halbleiterchip gefertigt ist, während eines ersten Zustands eingespeist. Ein Testdecodierer, der auf dem Halbleiterchip gefertigt ist, decodiert die Testdaten, um zu bestimmen, ob ein eingebauter Selbsttestmodus durch das externe Testsystem aufgerufen wird. Testmodusdaten werden seriell von dem externen Testsystem in eine zweite Datenspeichereinrichtung, die auf dem Halbleiterchip gefertigt ist, während eines zweiten Zustands eingespeist, wenn der eingebaute Selbsttestmodus von dem externen Testsystem aufgerufen ist.
  • Die Testmodusdaten definieren einen Satz gewünschter Flash-Speicher-Testmodi, die an dem Array aus Kern-Flash-Speicherzellen auszuführen sind. Jeder Testmodus entspricht einem entsprechenden Muster aus Vorspannungen für das Array aus Kern-Flash-Speicherzellen und einem entsprechenden gewünschten Muster aus programmierten und gelöschten Zuständen für das Array aus Kern-Flash-Speicherzellen. Eine vordere Zustandsmaschine, die auf dem Halbleiterchip hergestellt ist, decodiert die Testmodusdaten, um eine Reihenfolge zum Ausführen der gewünschten Testmodi zu bestimmen.
  • Eine hintere Zustandsmaschine, die auf dem Halbleiterchip hergestellt ist, führt die gewünschten Testmodi während eines dritten Zustandes aus, wie dies durch die vordere Zustandsmaschine bestimmt ist. Die hintere Zustandsmaschine legt Spannungen an das Array aus Kern-Flash-Speicherzellen gemäß dem entsprechenden Muster aus Vorspannungen für das Array aus Kern-Flash-Speicherzellen für jeden gewünschten Testmodus an. Die hintere Zustandsmaschine misst ein Muster aus programmierten und gelöschten Zuständen für das Array aus Kern-Flash-Speicherzellen, nachdem die hintere Zustandsmaschine Spannungen an das Array aus Kern-Flash-Speicherzellen gemäß dem entsprechenden Muster zum Vorspannen des Arrays aus Kern-Flash-Speicherzellen für jeden gewünschten Testmodus angelegt hat. Des weiteren bestimmt die hintere Zustandsmaschine, ob jeder gewünschte Testmodus zu einem korrekten oder fehlerhaften Zustand geführt hat, indem das gemessene Muster der programmierten und gelöschten Zustände mit dem gewünschten Muster an programmierten und gelöschten Zuständen des Arrays aus Kern-Flash-Speicherzellen verglichen wird.
  • Ein entsprechendes korrektes oder fehlerhaftes Ergebnis entsprechend jedem gewünschten Testmodus wird in einer dritten Speichereinrichtung, die auf dem Halbleiterchip hergestellt ist, während des dritten Zustands gespeichert. Das entsprechende korrekte oder fehlerhafte Resultat entsprechend jedem gewünschten Testmodus, wie es in der dritten Speichereinrichtung abgelegt ist, wird seriell an das externe Testsystem während eines vierten Zustands ausgegeben.
  • Die vorliegende Erfindung ist besonders vorteilhaft, wenn die erste Datenspeichereinrichtung, die zweite Datenspeichereinrichtung und die dritte Datenspeichereinrichtung jeweils Teil eines seriellen Schieberegisters sind. In diesem Falle werden die Testmodusdaten seriell von dem externen Testsystem in einen ersten Bereich des seriellen Schieberegisters mittels eines einzelnen IO- (Eingabe/Ausgabe) Stifts während des zweiten Zustands geschoben. Ferner wird das entsprechende korrekte oder fehlerhafte Resultat entsprechend jedem gewünschten Testmodus in einem zweiten Bereich des seriellen Schieberegisters während des dritten Zustands gespeichert und wird seriell aus dem einzelnen IO-Stift während des vierten Zustand ausgegeben.
  • Da das Programmieren, Löschen und Lesen des Arrays aus Flash-Speicherzellen chipintern auf dem Halbleiterchip ausgeführt wird, wird die Anzahl der verwendeten Anschlussstifte des externen Testsystems zum Testen jedes Halbleiterchips reduziert. Die Anzahl an Anschlussstiften des externen Testsystems, die zum Testen jedes Halbleiterchips verwendet werden, umfasst mehrere Stifte für Steuersignale, mehrere Stifte für die Stromversorgung und mehrere IO- (Eingabe/Ausgabe) Stifte. Beispielsweise werden drei Stifte für Steuersignale, zwei Stifte für die Leistungsversorgung und zwei Stifte für IO-Aufgaben gemäß einer Ausführungsform der vorliegenden Erfindung verwendet.
  • Somit kann die Anzahl der für das Testen jedes Halbleiterchips erforderlichen Anschlussstifte von 46 in einem konventionellen System auf ungefähr 7 in der vorliegenden Erfindung reduziert werden. Mit einer derartig reduzierten Anzahl an Anschlussstiften kann eine größere Anzahl von Halbleiterchips gleichzeitig mittels eines externen Testsystems mit einer begrenzten Gesamtanzahl an Anschlussstiften getestet werden, um damit den Durchsatz während der Fertigung von Flash-Speichereinrichtungen zu maximieren.
  • Diese und weitere Merkmale und Vorteile der vorliegenden Erfindung gehen deutlicher aus der folgenden detaillierten Beschreibung der Erfindung hervor, die auch in den beigefügten Zeichnungen dargestellt ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt eine Querschnittsansicht einer Flash-Speicherzelle;
  • 2 zeigt eine Schaltbilddarstetlung der Flash-Speicherzelle aus 1;
  • 3 zeigt ein Array aus Flash-Speicherzellen, die eine Flash-Speichereinrichtung bilden;
  • 4 zeigt eine Halbleiterscheibe mit mehreren Halbleiterchips, wobei jeder Halbleiterchip ein entsprechendes Array aus Flash-Speicherzellen aufweist, die darauf hergestellt sind;
  • 5 zeigt einen beispielhaften Halbleiterchip mit einem Array aus Kern-Flash-Speicherzellen, die darauf hergestellt sind, und wobei Kontaktflächen vorhanden sind, die verwndet werden, wenn das externe Testsystem die Programmier-, Lösch- und Lesevorgänge direkt an dem Array aus Kern-Flash-Speicherzellen zum Testen des Arrays aus Kern-Flash-Speicherzellen gemäß dem Stand der Technik durchführt;
  • 6 zeigt ein BIST- (eingebautes Selbsttest) System, das chipintern mit dem Array aus Kern-Flash-Speicherzellen auf dem gleichen Halbleiterchip ausgebildet ist, so dass das Programmieren, Löschen und Lesen während des Testens der Flash-Speichereinrichtung chipintern innerhalb des Halbleiterchips gemäß einem Aspekt der vorliegenden Erfindung durchgeführt wird;
  • 7 zeigt eine allgemeine Blockansicht der Komponenten des BIST-Systems aus 6 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 8 zeigt eine Blockansicht der Komponenten der BIST-Schnittstelle aus 7 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 9 zeigt ein Flussdiagramm der Schritte in der Funktionsweise der BIST-Schnittstelle aus 8 in dem BIST-System aus den 6 und 7 zum Ausführen von mehreren Flash-Speicher-Testmodi gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 10 zeigt ein Zeitablaufdiagramm für Steuersignale aus dem externen Testsystem zur zeitlichen Steuerung des Auftretens des ersten Zustands, des zweiten Zustands, des dritten Zustands und des vierten Zustands der BIST-Schnittstelle aus 8 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 11 zeigt beispielhafte Daten innerhalb eines seriellen Schieberegisters der BIST-Schnittstelle gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 12 zeigt Stifte des externen Testsystems, die von mehreren Halbleiterchips gemeinsam benutzt werden, um weiter den Durchsatz während eines chipinternen Testens der entsprechenden Kern-Flash-Speicherzellen der mehreren Halbleiterchips gemäß einer weiteren Ausführungsform der vorliegenden Erfindung zu maximieren;
  • 13 zeigt eine Blockansicht der Komponenten der hinteren BIST-Zustandsmaschine aus 7 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 14 zeigt die relativ geringe Anzahl an Zuständen der hinteren BIST-Zustandsmaschine aus 13 mit dem START-, JUICE-, VERIFY1-, VERIFY2-, APD-, HTRB-, DONE- und HANG-Zustand zum Ausführen jedes der BIST-Modi gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 15 zeigt ein Flussdiagramm der Schritte des Funktionsablaufs der hinteren BIST-Zustandsmaschine aus 13, wobei ein aktueller BIST-Modus zum Anlegen von Programmier- und/oder Löschspannungen an die Kern-Flash-Speicherzellen gemäß einer Ausführungsform der vorliegenden Erfindung dient;
  • 16 zeigt die Kern-Flash-Speicherzellen, wenn diese in Blöcke und Sektoren unterteilt sind;
  • 17 zeigt ein Beispiel von 64-Bitleitungen und 64 Wortleitungen, die in jedem Block aus den Kern-Flash-Speicherzellen aus 16 gebildet sind;
  • 18 zeigt ein Flussdiagramm der Schritte des Funktionsablaufs der hinteren BIST-Zustandsmaschine aus 13, wenn ein aktueller BIST-Modus das Lesen des entsprechenden logischen Zustands, der für jede Flash-Speicherzelle der Kern-Flash-Speicherzellen programmiert oder gelöscht ist, gemäß einer Ausführungsform der vorliegenden Erfindung enthält;
  • 19. zeigt ein Flussdiagramm der Schritte des Funktionsablaufs der hinteren BIST-Zustandsmaschine aus 13, wenn ein aktueller BIST-Modus zum Anlegen von Belastungsspannungen an die Bit-Leitung und an die Wortleitung jeder Flash-Speicherzelle der Kern-Flash-Speicherzellen gemäß einer Ausführungsform der vorliegenden Erfindung dient;
  • 20 zeigt eine Blockansicht des externen Testsystems, wenn ein CAM (inhaltsadressierbarer Speicher) zum Ersetzen einer fehlerhaften Adresse von Kern-Flash-Speicherzellen durch ein redundantes Element aus Flash-Speicherzellen zum Reparieren der defekten Adresse von Kern-Flash-Speicherzellen gemäß dem Stand der Technik programmiert wird;
  • 21 zeigt das Flussdiagramm aus 15 mit zusätzlichen Schritten für eine chipinterne Programmierung des CAM (inhaltsadressierbaren Speicher) zum Ersetzen einer fehlerhaften Adresse von Kern-Flash-Speicherzellen mit einem Redundanzelement aus Flash-Kernspeicherzellen für eine chipinterne Reparatur der defekten Adresse von Kern-Flash-Speicherzellen gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 22 zeigt eine fehlerhafte Adresse von Flash-Speicherzellen, die in den Redundanzelementen aus Flash-Speicherzellen liegt;
  • 23 zeigt das Flussdiagramm aus 18 mit zusätzlichen Schritten für eine chipinterne Programmierung des CAM (inhaltsadressierbaren Speichers) zum Ersetzen einer fehlerhaften Adresse aus Kern-Flash-Speicherzellen mit einem Redundanzelement aus Flash-Speicherzellen für eine chipinterne Reparatur der defekten Adresse aus Kern-Flash-Speicherzellen gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 24 zeigt die Kern-Flash-Speicherzellen, wenn diese in mehrere Blöcke gemäß dem Stand der Technik unterteilt sind;
  • 25 zeigt einen entsprechenden Satz aus zwei Redundanzelementen, die zum Reparieren fehlerhafter Adressen von Kern-Flash-Speicherzellen innerhalb ihres Blockes aus Kern-Flash-Speicherzellen gemäß einer Ausführungsform der vorliegenden Erfindung verfügbar sind;
  • 26 zeigt eine Blockansicht der Komponenten, die während der Reparaturroutine für eine chipinterne Reparatur von defekten Adressen von Kern-Flash-Speicherzellen gemäß einer Ausführungsform der vorliegenden Erfindung verwendet werden;
  • 27 zeigt ein Flussdiagramm aus Schritten für die Reparaturroutine während des Vorgangs für eine chipinterne Reparatur von Komponenten aus 26 im Hinblick auf die fehlerhafte Adresse der Kern-Flash-Speicherzellen gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 28 zeigt eine beispielhafte Implementierung einer FAILREP- bzw. Fehlerreparaturlogik aus 26 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 29 zeigt eine CAM- (inhaltsadressierbarer Speicher) Logik gemäß dem Stand der Technik zum Erzeugen von Variablen, die während der Verifizierung der korrekten Programmierung des CAM (inhaltsadressierbaren Speichers) verwendet werden;
  • 30 zeigt eine Tabelle aus Werten eines FAILREP-Wertes, der durch die FAILREP-Logik aus 28 gemäß einer Ausführungsform der vorliegenden Erfindung erzeugt ist;
  • 31 zeigt eine beispielhafte Implementierung einer Reparaturübereinstimmungseinheit aus 26 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 32 zeigt eine Wertetabelle eines REDOK-Wertes, der von der Reparaturübereinstimmungseinheit aus 26 gemäß einer Ausführungsform der vorliegenden Erfindung erzeugt ist;
  • 33 zeigt Komponenten eines Systems zum Testen der Funktion der hinteren Zustandsmaschine des BIST- (eingebautes Selbsttest) Systems, das auf einem Halbleiterchip hergestellt ist, der das Array aus Kern-Flash-Speicherzellen darauf ausgebildet aufweist, unabhängig von einer Funktionsweise des Arrays aus Kern-Flash-Speicherzellen gemäß einem weiteren Aspekt der vorliegenden Erfindung;
  • 34 zeigt eine beispielhafte Implementierung eines Signalselektors bzw. einer Auswahleinrichtung innerhalb des Systems aus 33 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 35 zeigt eine beispielhafte Implementierung einer diagnostischen Anpasslogik innerhalb des Systems aus 33 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 36 zeigt eine beispielhafte Implementierung einer Signalzwischenspeicherung bzw. Signaleinklinkung in der diagnostischen Anpasslogik aus 35 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 37 zeigt eine Tabelle möglicher Rücksetz- und Setzwerte, die in der diagnostischen Anpasslogik aus 35 erzeugt werden, mit einem resultierenden Q-Ausgang für die Signalzwischenspeicherung aus 36 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 38 zeigt ein Flussdiagramm der in die hintere Zustandsmaschine aus 33 eingespeisten Zustände, wenn ein BIST-Modus von der hinteren Zustandsmaschine nach dem Aufrufen des diagnostischen Modus ausgeführt wird, um Flash-Speicherzellen des Arrays aus Kern-Flash-Speicherzellen gemäß einer Ausführungsform der vorliegenden Erfindung zu programmieren;
  • 39 ist ein Flussdiagramm der Zustände, die in die hintere Zustandsmaschine aus 33 eingespeist werden, wenn ein BIST-Modus von der hinteren Zustandsmaschine nach dem Aufrufen des diagnostischen Modus ausgeführt wird, und dieser Modus zum Löschen von Flash-Speicherzellen des Arrays aus Kern-Flash-Speicherzellen mit einem unabhängi gen APDE (Auto-Programmier-Störung nach Löschen) gemäß einer Ausführungsform der vorliegenden Erfindung dient;
  • 40 zeigt ein Flussdiagramm der durch die hintere Zustandsmaschine aus 33 eingespeisten Zustände, wenn ein BIST-Modus von der hinteren Zustandsmaschine nach dem Aufrufen des diagnostischen Modus ausgeführt wird und zum Löschen von Flash-Speicherzellen des Arrays aus Kern-Flash-Speicherzellen dient mit zwischengeschalteten APDE (Auto-Programmier-Störung nach Löschen) gemäß einer Ausführungsform der vorliegenden Erfindung dient;
  • 41 zeigt ein Flussdiagramm der von der hinteren Zustandsmaschine aus 33 eingespeisten Zustände, wenn ein BIST-Modus von der hinteren Zustandsmaschine nach dem Aufrufen des diagnostischen Modus ausgeführt wird, und dies zum Lesen eines entsprechenden logischen Zustands dient, der für jede Flash-Speicherzelle der Kern-Flash-Speicherzellen programmiert oder gelöscht ist, wobei die Reparaturroutine aufgerufen ist;
  • 42 zeigt eine Blockansicht eines Adressensequenzierers mit Adressensequenzierpuffern und einer Adressensequenziersteuerlogik innerhalb des BIST- (eingebautes Selbsttest) Systems gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 43 zeigt mehrere Adressensequenzierpuffer des Adressensequenzierers aus 42 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 44 zeigt Rücksetzsignale, die von der Adressensequenziersteueriogik zum Zurücksetzen der Adressensequenzierpuffer auf Anfangsadressen am Beginn eines BIST- (eingebauter Selbsttest) Modus gemäß einer Ausführungsform der vorliegenden Erfindung erzeugt werden;
  • 45 zeigt die Steuerung mittels der Adressensequenziersteuerlogik einer Teilmenge von X-Adressenbits für das Ausführen eines physikalisch benachbarten Sequenzierens der X-Adressen, wenn zwei benachbarte X-Adressendecodierer als Spiegelbilder voneinander hergestellt sind, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 46 zeigt das Koppeln eines Bit-Musters von einem Register einer BIST- (eingebauter Selbsttest) Schnittstelle mit einer Teilmenge von Y-Adressenpuffern zur Kennzeichnung einer Adresse jeder OTP- (einmal programmierbar) Flash-Speicherzelle, auf die von einem externen Testsystem zuzugreifen ist, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 47 zeigt eine Redundanzsequenzierfreigabelogik und einen Maximalspaltenadressenselektor zum Bestimmen, ob Redundanzflash-Speicherzellen zu durchlaufen bzw. sequenzieren sind, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 48 zeigt die letzte Spalte der Kern-Flash-Speicherzellen und die letzte Spalte der Redundanzflash-Speicherzellen;
  • 49 zeigt ein Zeitablaufdiagramm von Signalen, die von der Sequenzierfreigabelogik und dem Maximalspaltenadressselektor zum Bestimmen benutzt werden, ob Redundanzflash-Speicherzellen zu durchlaufen sind, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 50 zeigt das Steuern durch die Adressensequenziersteuerlogik der Adressensequenzierpuffer zum sequenziellen Durchlaufen jedes der WPCAM (schreibgeschützte inhaltsadressierbare Speicher) der mehreren Sektoren gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 51 zeigt eine Tabelle aus Bit-Mustern für das Sequenzieren bzw. das serielle Durchlaufen der WPCAM's (schreibgeschützte inhaltsadressierbare Speicher) der mehreren Sektoren gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 52 zeigt das Verbinden eines Bit-Musters von einem Register einer BIST- (eingebautem Selbsttest) Schnittstelle mit der Teilmenge aus Y-Adressenpuffern zum Kennzeichnen einer Adresse einer Referenzzelle, die in abgestimmter Weise zu Löschen ist, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 53 zeigt eine Tabelle des Sequenzierens bzw. seriellen Durchfaufens von Adressen der Referenzzellen mit der Teilmenge aus Y-Adressenpuffern während eines BIST-Modus für die Löscheinstellung, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 54 zeigt ein Flussdiagramm für das Einstellen des Löschens von Referenzzellen, wobei die Referenzzellen unter Anwendung einer Teilmenge an Y-Adressenpuffern der Adressensequenzierpuffer sequenziell durchlaufen werden, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 55 zeigt das Steuern mittels der Adressensequenziersteuerlogik der Adressensequenzierpuffer für das Sequenzieren durch jede der Bit-Leitungen vor dem Implementieren einer Wortleitungsadresse oder das serielle Durchlaufen jeder der Wortleitungen vor dem Inkrementieren einer Bit-Leitungsadresse in Abhängigkeit von X-Minmax und Y-Minmax-Steuersignalen gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 56 zeigt das Steuern mittels der Adressensequenziersteuerlogik der Adressensequenzierpuffer zum seriellen Durchlaufen alternierender Flash-Speicherzellen durch Reihen und Spalten der Flash-Speicherzellen für einen schachbrettartigen BIST-Modus gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 57 zeigt das Steuern mittels der Adressensequenziersteuerlogik der Adressensequenzierpuffer für ein serielles Durchlaufen jedes der Flash-Speicherzellen an einer diagonalen Stelle eines Sektors von Flash-Speicherzellen gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 58 zeigt ein Beispiel eines Sektors aus Flash-Speicherzellen mit acht Diagonallinien für acht Teilsektoren des Sektors aus Flash-Speicherzellen gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 59 zeigt eine Blockansicht eines Systems zum Erzeugen eines gewünschten Bitmusters für jeden der BIST-Modi mit mehreren Mustererzeugungslogikeinheiten, die auf dem Halbleiterchip hergestellt sind, der das Array aus Flash-Speicherzellen darauf ausgebildet aufweist, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 60 zeigt ein Beispiel einer Programmiermustererzeugungslogikeinheit, einer Löschmustererzeugungslogikeinheit, einer Diagonalmustererzeugungslogikeinheit und einer Schachbrettmustererzeugungslogikeinheit gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 61 zeigt eine beispielhafte Implementierung einer Diagonalmustererzeugungslogikeinheit aus 60 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 62 zeigt eine beispielhafte Implementierung der Schachbrettmustererzeugungslogikeinheit aus 60 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 63 zeigt ein beispielhaftes Array aus 4 × 4 Flash-Speicherzellen und ihrer entsprechenden Positionen in dem Array;
  • 64 zeigt das gewünschte Bit-Muster aller logischen tiefpegeligen Zustände, wenn der aktuelle BIST-Modus zum Programmieren jeder Flash-Speicherzelle des Arrays aus Flash-Speicherzellen aus 63 dient;
  • 65 zeigt das gewünschte Bit-Muster aller logisch hochpegeligen bzw. hohen Zustände, wenn der aktuelle BIST-Modus zum Löschen jeder Flash-Speicherzelle des Arrays aus Flash-Speicherzellen aus 63 dient;
  • 66 zeigt das gewünschte Bit-Muster des Arrays aus Flash-Speicherzellen aus 63, wenn der aktuelle BIST-Modus für ein schachbrettartiges Muster aus logisch tiefpegelig bzw. tiefen und hochpegeligen bzw. hohen Zuständen ist;
  • 67 zeigt das gewünschte Bit-Muster des Arrays aus Flash-Speicherzellen aus 63, wenn der aktuelle BIST-Modus für ein diagonales Muster eines logisch tiefpegeligen Zustands nur an den diagonalen Stellen des Arrays aus Flash-Speicherzellen dient;
  • 68 zeigt eine Tabelle der entsprechenden X-Adresse und der entsprechenden Y-Adresse der Flash-Speicherzelle für jede Position des Arrays aus Flash-Speicherzellen aus 63.
  • 69 zeigt eine beispielhafte Implementierung des Musterselektors aus 59 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 70 zeigt einen beispielhaften Sektor aus vier Reihen mal vier Spalten aus Flash-Speicherzellen, die während eines Lösch-Verifizierungs-BIST- (eingebauter Selbsttest) Modus beim Löschen zu verifizieren sind;
  • 71 zeigt eine Blockansicht eines Systems zur Überwachung der Anzahl von Löschpulsen, die an den Sektor aus Flash-Speicherzellen während des chipinternen Lösch/Verifizier-BIST-Modus gemäß einer Ausführungsform der vorliegenden Erfindung angelegt werden;
  • 72 zeigt Komponenten in einer Pulszählsteuerung des Systems aus 71 zum Überwachen der Anzahl der Löschpulse, die an den Sektor aus Flash-Speicherzellen während des chipinternen Lösch/Verifizier-BIST-Modus gemäß einer Ausführungsform der vorliegenden Erfindung angelegt werden;
  • 73 zeigt ein Flussdiagramm des Funktionsablaufs des Systems aus den 71 und 72 zum Überwachen der Anzahl von Löschpulsen, die an den Sektor aus Flash-Speicherzellen während des chipinternen Lösch/Verifizier-BIST-Modus angelegt werden, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 74 zeigt Komponenten eines Halbleiterchips aus 4 mit einem CAM (inhaltsadressierbaren Speicher) innerhalb eines Randbereichs und mit der Erzeugung einer Programmiergrenzspannung außerhalb des Chips mittels eines externen Testsystems gemäß dem Stand der Technik;
  • 75 zeigt Komponenten eines Halbleiterchips aus 4 mit einer Grenzspannungsgeneratorvorrichtung innerhalb eines BIST- (eingebautes Selbsttest) Systems zum Erzeugen von Grenzspannungen in chipinterner Weise innerhalb des Halbleiterchips während des Testens des CAM (inhaltesadressierbaren Speichers) gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 76 zeigt ein Schaltbild der Grenzspannungsgeneratorvorrichtung aus 75 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 77 zeigt eine Blockansicht des CAM (inhaltsadressierbaren Speichers) mit zwei Bereichen an CAM-Flash-Speicherzellen;
  • 78 zeigt einen Spannungspegelschieber, der in der Grenzspannungsgeneratorvorrichtung aus 76 zum Steuern des Einschaltens und Ausschaltens eines Transistors verwendet wird, der mit einer Hochspannungsquelle verbunden ist, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 79 zeigt eine Tabelle mit Spannungspegeln während des Betriebs der Grenzspannungsgeneratorvorrichtung aus 76 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 80 zeigt die Spannungspegel der Grenzspannungsgeneratorvorrichtung aus 76, wenn die Programmierbegrenzung während eines BIST- (eingebauten Selbsttest) Modus aufgerufen wird, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 81 zeigt die Spannungspegel der Grenzspannungsgeneratorvorrichtung aus 76, wenn eine Löschbegrenzung während des BIST- (eingebauten Selbsttest) Modus aufgerufen wird, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 82 zeigt die Spannungspegel der Grenzspannungsgeneratorvorrichtung aus 76, wenn die Programmierbegrenzung während eines manuellen Modus aufgerufen ist, gemäß einer Ausführungsform der vorliegenden Erfindung; und
  • 83 zeigt die Spannungspegel der Grenzspannungsgeneratorvorrichtung aus 76, wenn eine Löschbegrenzung während des manuellen Modus aufgerufen ist, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Die Figuren, auf die hierin verwiesen wird und die zum Zwecke der Darstellung angeführt sind, sind nicht notwendigerweise maßstabsgetreu. Elemente mit den gleichen Bezugszei chen in den 1 bis 83 bezeichnen Elemente, die einen ähnlichen Aufbau und eine ähnliche Funktion aufweisen.
  • DETAILLIERTE BESCHREIBUNG
  • a. BIST- (eingebautes Selbsttest) System
  • Gemäß 6 ist in einem allgemeinen Aspekt der vorliegenden Erfindung ein BIST- (eingebautes Selbsttest) System 300 auf einem Halbleiterchip 302 hergestellt, der darin ausgebildet eine Flash-Speichereinrichtung 304 aufweist. Die Flash-Speichereinrichtung 304 umfasst ein Array aus Kern-Flash-Speicherzellen, wie dies beispielsweise in 3 gezeigt ist. Der Halbleiterchip 302 umfasst ferner leitende Anschlussflächen 306, die darauf zum Bereitstellen einer Verbindung zu dem Array aus Kern-Flash-Speicherzellen 304 und dem BIST-System 300 hergestellt sind. Typischerweise sind mehr leitende Flächen vorgesehen, als dies in 6 zum Zwecke der Darstellung gezeigt ist.
  • 7 zeigt eine Blockansicht des BIST-Systems 300 aus 6, das chipintern in dem Array aus Kern-Flash-Speicherzellen 304 hergestellt ist. Das BIST-System 300 umfasst eine BIST- (eingebaute Selbsttest) Schnittstelle 312, eine vordere Schnittstelle 314 und eine hintere BIST- (eingebaute Selbsttest) Zustandsmaschine 316. Die BIST-Schnittstelle 312 ist zwischen einem externen Testsystem 318 und der vorderen Schnittstelle 314 und der hinteren BIST-Zustandsmaschine 316 vorgesehen. Die hintere BIST-Zustandsmaschine 316 ist zwischen der vorderen Schnittstelle 314, der BIST-Schnittstelle 312 und dem Array aus Kern-Flash-Speicherzellen 304 angeschlossen.
  • Gemäß den 6 und 7 wirken die BIST-Schnittstelle 312, die vordere Schnittstelle 314 und die hintere BIST-Zustandsmaschine 316 und das BIST-System 300, das zusammen mit dem Array aus Kern-Flash-Speicherzellen 304 auf dem Halbleiterchip 302 hergestellt ist, so zusammen, dass das BIST-System 300 ein zu dem Array aus Kern-Flash-Speicherzellen 304 chipinternes System ist. Das externe Testsystem 318 ist nicht Teil des BIST-Systems 300. Vielmehr ist das externe Testsystem 318 außerhalb des Halbleiterchips 302 und steht mit dem BIST-System 300 während des Testens des Arrays aus Kern-Flash-Speicherzellen 304 in Verbindung.
  • Die BIST-Schnittstelle 312 speist Steuersignale und Testdaten von dem externen Testsystem 318 ein, um Befehle von dem externen Testsystem 318 während des Testens des Array aus Kern-Flash-Speicherzellen 304 zu übersetzen. Ferner gibt die BIST-Schnittstelle 312 Testergebnisse des Testens des Arrays aus Kern-Flash-Speicherzellen 304 an das externe Testsystem 318 aus. Die hintere BIST-Zustandsmaschine 316 legt Programmier- und Löschspannungen an das Array aus Kern-Flash-Speicherzellen 304 zum Testen des Arrays aus Kern-Flash-Speicherzellen 304 an. Ferner führt die hintere BIST-Zustandsmaschine 316 Leseoperationen an dem Array aus Kern-Flash-Speicherzellen 304 aus, um zu bestimmen, ob das Array aus Kern-Flash-Speicherzellen 304 den Test des Arrays aus Kern-Flash-Speicherzellen 304 besteht oder nicht.
  • Die vordere Schnittstelle liefert Testmodusidentifikationsdaten an die hintere BIST-Zustandsmaschine 316, so dass die hintere BIST-Zustandsmaschine 316 ein geeignetes Muster an Programmier- und Löschspannungen an das Array aus Kern-Flash-Speicherzellen 304 zum Testen des Arrays aus Kern-Flash-Speicherzellen 304 gemäß der Testmodusidentifikation anlegt. Es werden eine Reihe von Testmodi an dem Array aus Kern-Flash-Speicherzellen 304 während des Testens des Arrays aus Kern-Flash-Speicherzellen 304 ausgeführt. In einem Beispiel werden während des Testens des Arrays aus Kern-Flash-Speicherzellen 304 ungefähr 19 verschiedene Testmodi an dem Array aus Kern-Flash-Speicherzellen 304 ausgeführt.
  • Jeder Testmodus entspricht einem jeweiligen Muster aus Vorspannungen für jede Flash-Speicherzelle des Arrays aus Kern-Flash-Speicherzellen 304 für ein gewünschtes Muster aus programmierten und gelöschten Zuständen des Arrays aus Kern-Flash-Speicherzellen 304. Beispielsweise werden die Kern-Flash-Speicherzellen in einer alternierenden Weise entsprechend einem Schachbrettmuster in dem Array aus Kern-Flash-Speicherzellen 304 für ein gewünschtes schachbrettartiges Muster aus programmierten und gelöschten Kern-Flash-Speicherzellen in einem Testmodus programmiert und gelöscht. Alternativ werden die Flash-Speicherzellen, die in der Diagonale des Arrays aus Kern-Flash-Speicherzellen 304 angeordnet sind, in einem weiteren Testmodus gemäß einem gewünschten diagonalen Muster aus programmierten Flash-Speicherzellen programmiert. Derartige Testmodi zum Überprüfen der Funktionalität des Arrays aus Kern-Flash-Speicherzellen sind dem Fachmann auf dem Gebiet der Flash-Speicherherstellung bekannt.
  • Die hintere Zustandsmaschine 316 legt geeignete Programmier- oder Löschspannungen an jede Flash-Speicherzelle des Arrays aus Kern-Flash-Speicherzellen 304 entsprechend dem jeweiligen Muster für das Vorspannen des Arrays aus Kern-Flash-Speicherzellen 304 für jeden speziellen Testmodus an. Die Testmodusidentifikation durch die vordere Schnittstelle 314 kennzeichnet den aktuellen Testmodus, der von der hinteren Zustandmaschine 316 auszuführen ist.
  • Die hintere Zustandsmaschine 316 misst ein Muster aus programmierten und gelöschten Zuständen für das Array aus Kern-Flash-Speicherzellen, nachdem die hintere Zustandsmaschine 316 die geeigneten Spannungen an das Array aus Kern-Flash-Speicherzellen für den Testmodus angelegt hat. Des weiteren bestimmt die hintere Zustandsmaschine 316, ob dieser Testmodus zu einem korrekten oder fehlerhaften Ergebnis geführt hat, indem das gemessene Muster an programmierten und gelöschten Zuständen mit dem Soll- bzw. gewünschten Muster aus programmierten und gelöschten Zuständen des Arrays aus Kern-Flash-Speicherzellen für diese Testmodus verglichen wird. Die korrekten oder fehlerhaften Ergebnisse für die Testmodi von der hinteren Zustandsmaschine 316 werden in der BIST-Schnittstelle 312 gespeichert.
  • B. BIST (eingebauter Selbsttest)-Schnittstelle
  • 8 zeigt eine Blockansicht einer beispielhaften Ausführungsform der BIST-Schnittstelle 312. Gemäß 8 umfasst die BIST-Schnittstelle 312 ein serielles Schieberegister 320. Serielle Schieberegister sind dem Fachmann auf dem Gebiet der Elektronik bekannt. Ferner umfasst die BIST-Schnittstelle 312 einen Schieberegistertaktgenerator 321 zum Ansteuern des seriellen Schieberegisters 320 zur seriellen Verschiebung von Datenbits. Die BIST-Schnittstelle 312 umfasst ferner einen ersten Puffer 322, einen zweiten Puffer 323 und einen dritten Puffer 338 zum Eingeben und Ausgeben von Datenbits zu und von dem seriellen Schieberegister 320. Ferner umfasst die BIST-Schnittstelle 312 eine Logiksteuerung 325, einen Testtypdecodierer 326, einen Einrastsignalgenerator 327 und einen Speicherplatzdecodierer 328.
  • 9 zeigt ein Flussdiagramm der Schritte der Funktion der BIST-Schnittstelle 312 innerhalb des BIST-Systems 300 während des Testens des Arrays aus Kernflash-Speicherzellen 304. Des weiteren zeigt 10 Zeitablaufdiagramme der Steuersignale und der Daten wäh rend des Testens des Arrays aus Kernflash-Speicherzellen 304. Gemäß den 7, 8, 9 und 10 sendet das externe Testsystem 318 einen ersten Satz aus Steuersignalen einschließlich eines CEI(Chipfreigabequer)-Signal, das über einen CE/(Freigabequer)-Steuerstift zu der Logiksteuerung 325 der BIST-Schnittstelle 312 gesetzt wird, um den Beginn eines ersten Zustands (Schritt 352 aus 9 und Zeitpunkt 402 in 10) anzuzeigen. Mit einem derartigen CE/-Signal wird das serielle Schieberegister 320 zurückgesetzt, so dass es ein tiefpegeliges „0"-Bit mit Ausnahme eines hochpegeligen „1" in dem ersten Register 330 aufweist.
  • Ferner setzt mit einem derartigen hochpegeligen CE/-Signal die Logiksteuerung 325 das ST1-Signal auf hohen Pegel. Das ST1-Signal ist mit dem Schieberegistertaktgenerator 321 gekoppelt, das von einem WE/(Schreibfreigabequer)-Taktsignal von dem externen Testsystem 318 angesteuert wird. Der Schieberegistertaktgenerator 321 erzeugt ein Taktsignal aus dem WE/-Taktsignal, das von dem externen Testsystem 318 bereitgestellt wird, um das serielle Schieberegister 320 anzusteuern, Testtypdaten von dem externen Testsystem 318 mit dem WE/-Taktsignal einzulesen.
  • Gemäß den 8 und 9 enthalten während des ersten Zustands die Testtypdaten erste drei Datenbits, die in einen ersten Bereich 332 geschoben werden, der die drei Register des seriellen Schieberegisters 320 enthält. Diese ersten drei Datenbits werden in den ersten Bereich 332 des seriellen Schieberegisters 320 über einen ersten IO1 (Eingabe/Ausgabe) Stift von dem externen Testsystem 318 eingelesen, wenn der erste Puffer 322 eingeschaltet wird. Ferner enthalten die Testtypdaten einen zweiten Satz aus drei Bits, die in einen zweiten Bereich 333 geschoben werden, der die drei Register des seriellen Schieberegisters 320 enthält. Diese zweiten drei Datenbits werden in den zweiten Bereich 333 des seriellen Schieberegisters 320 über einen zweiten IO2- (Eingabe/Ausgabe) Stift von dem externen Testsystem 318 eingespeist, wenn der zweite Puffer 323 einschaltet. Die ersten und zweiten Sätze aus drei Bits der Testtypdaten werden in den ersten und den zweiten Bereich 332 und 333 des seriellen Schieberegisters 320 nach drei Zyklen des WE/-Taktsignals eingelesen (Schritt 354 in 9).
  • Der erste und der zweite Bereich 332 und 333 des seriellen Schieberegisters 320 sind mit dem Testtypdecodierer 326 verbunden. Nachdem der erste und der zweite Satz dreier Bits der Testtypdaten in den ersten und den zweiten Bereich 332 und 333 des seriellen Schie beregisters 320 mit drei Zyklen des WE/-Taktsignals eingelesen wurden, decodiert der Testtypdecodierer 326 den ersten und zweiten Satz aus drei Bits der Testtypdaten, um zu bestimmen, ob das externe Testsystem 318 einen BIST (eingebauten Selbsttest) Modus oder einen manuellen Modus aufruft (Schritt 356 aus 9). Eine entsprechende geeignete Kombination aus Datenbits muss als der erste und der zweite Satz dreier Bits der Testtypdaten durch das externe Testsystem 318 eingelesen werden, um den BIST-Modus oder den manuellen Modus aufzurufen. Eine Decodiertechnik zur Implementierung eines derartigen Testtypdecodierers 326 ist dem Fachmann auf dem Gebiet der Elektronik bekannt.
  • Das externe Testsystem 318 ruft einen manuellen Modus auf, um das BIST-System 300 zu deaktivieren, so dass das externe Testsystem 318 das Programmieren, Löschen und Auslesen direkt auf dem Array aus Kernflashspeicherzellen 304 zum Testen des Arrays aus Kernflashspeicherzellen 304 ausführen kann, wie dies beispielsweise im Stand der Technik der Fall ist. Andererseits ruft das externe Testsystem 318 den BIST-Modus auf, um das BIST-System 300 zum Ausführen des Programmierens, Löschens und Lesens chipintern zum Testen des Arrays aus Kernflashspeicherzellen 304 zu verwenden.
  • Wenn eine geeignete Kombination aus Datenbits entsprechend dem BIST-Modus als der erste und der zweite Satz dreier Bits der Testtypdaten von dem externen Testsystem 318 eingegeben wird, dann setzt der Testtypdecodierer 326 die STEST-Markierung bzw. Flagge auf hohen Pegel, während die MTEST-Markierung tiefpegelig bleibt. Wenn alternativ eine andere geeignete Kombination an Datenbits entsprechend dem manuellen Modus als der erste und der zweite Satz dreier Bits der Testtypdaten durch das externe Testsystem 318 eingegeben wird, dann setzt der Testtypdecodierer die MTEST-Markierung auf hohen Pegel, während die STEST-Markierung tiefpegelig bleibt. Die STEST-Markierung und die MTEST-Markierung werden der Logiksteuerung 325 mitgeteilt. Wenn andererseits die entsprechende geeignete Kombination aus Datenbits entsprechend dem BIST-Modus oder dem manuellen Modus nicht als der erste und der zweite Satz dreier Bits der Testtypdaten durch das externe Testsystem 318 eingegeben wird, dann bleiben die STEST-Markierung und die MTEST-Markierung auf tiefem Pegel.
  • Ferner wurde nach dem Schieben des ersten und des zweiten Satzes dreier Bits der Testtypdaten in den ersten und den zweiten Bereich 332 und 333 des seriellen Schieberegisters 320 mittels dreier Zyklen des WE/-Taktsignals das hohe Bit, das an dem ersten Register 330 gesetzt war, in das vierte Register 334 geschoben. Der Inhalt des vierten Registers 334 ist mit dem Einrastsignalgenerator 327 gekoppelt. Der Einrastsignalgenerator 327 setzt automatisch die Einrast-Marke auf hohen Pegel, wenn der Inhalt des vierten Registers 334 hochpegelig wird, nachdem der erste und der zweite Satz dreier Bits der Testtypdaten in dem ersten und zweiten Bereich 332 und 333 des seriellen Schieberegisters 320 mittels dreier Zyklen des WE/-Taktsignals eingeschoben wurden. Zu diesem Zeitpunkt ist das hohe Bit von dem ersten Register 330 in das vierte Register 334 geschoben wurden. Die Einrast-Marke, die hochpegelig gesetzt ist, wird auch an die Logiksteuerung 325 gesendet, um anzuzeigen, dass der Testtypdecodierer 326 die Testtypdaten decodiert hat. Wenn ferner die Einrastmarke auf hoch gesetzt ist, endet der erste Zustand und der Inhalt des seriellen Schieberegisters 320 wird nun auf tief zurückgesetzt.
  • Wenn die Logiksteuerung 325 erkennt, dass das externe Testsystem 318 den manuellen Modus aufruft, da die MTEST-Marke durch den Testtypdecodierer (Schritt 358 aus 9) auf hoch gesetzt ist, dann wird das Array aus Flash-Speicherzellen nicht auf mehrere Testmodi hin unter Anwendung des BIST-Systems 300 getestet. Stattdessen prüft das externe Testsystem 318 auf mehrere Testmodi hin gemäß einem manuellen Modus gemäß beispielsweise dem Stand der Technik (Schritt 360 aus 9).
  • Wenn die Logiksteuerung 325 bestimmt, dass das externe Testsystem 318 weder den manuellen Modus noch den BIST-Modus aufruft, da die STEST-Marke und die MTEST-Marke auf tief gesetzt sind, wenn die Einrastmarke auf hoch gesetzt ist (Schritt 358 aus 9), dann wird von der Logiksteuerung in einen Fehlermodus (Schritt 362 aus 9.) gewechselt. In dem Fehlermodus werden „Abfalldatenbits" in dem seriellen Schieberegister 320 gespeichert, so dass, wenn das externe Testsystem 318 derartige Abfalldatenbits liest, das externe Testsystem 318 erkennt, dass der Fehlermodus aufgetreten ist.
  • Wenn die Logiksteuerung 325 bestimmt, dass das externe Testsystem 318 dem BIST-Modus aufruft, da die STEST-Marke auf hoch gesetzt ist (Schritt 356 aus 9), dann wird der Rest der Schritte des Ablaufs des Flussdiagramms aus 9 ausgeführt. Eine derartige Decodierung der Datenbits der Testtypdaten zum Aufrufen des BIST-Modus wird angewendet, um sicherzustellen, dass ein Anwender nicht zufällig den BIST-Modus aufruft, so dass das Array aus Kernflash-Speicherzellen 304 nicht chipintern in ungesteuerter Weise wäh rend der Anwendung des Arrays aus Kernsflashspeicherzellen 305 durch einen Anwender nach der Herstellung des Arrays aus Kernflashspeicherzellen 304 getestet wird.
  • Gemäß den 8, 9 und 10 wird, wenn die Logiksteuerung 325 erkennt, dass das externe Testsystem 318 den BIST-Modus aufruft, ein zweiter Zustand von dem BIST-System 300 eingenommen (Schritt 364 aus 9 und ein Zeitpunkt 404 in 10). In diesem Falle wird die ST2-Marke von der Logiksteuerung auf hoch gesetzt und ist mit dem Schieberegistertaktgenerator 320 gekoppelt. Nach dem Beginn des zweiten Zustands bei hochgesetzter ST2-Markierung liefert das externe Testsystem 318 ein WE/-Taktsignal über den WE/-Steuerstift und ein zweites IO2- (Eingabe/Ausgabe)-Taktsignal über den zweiten IO2-Stift. Bei hochgesetzter ST2-Marke erzeugt der Schieberegistertaktgenerator 312 ein Taktsignal zum Ansteuern des seriellen Schieberegisters 320 aus einer Kombination des WE/-Taktsignals und des zweiten IO2-Taktsignals. Beispielsweise wird in dem seriellen Schieberegister 320 um ein Bit verschoben bei jedem Auftreten der Kombination aus dem WE/-Taktsignal, wenn es hochpegelig wird, und dem zweiten I/O2-Taktsignal, wenn dies nachfolgend tiefpegelig wird. Eine derartige Kombination stellt sicher, dass das serielle Schieberegister 320 nicht ungewollt ein Bit bei einer ungesteuerten Flanke eines Rauschsignals des WE/-Taktsignals, wenn diese alleine auftritt, oder des zweiten IO2-Taktsignals, wenn dieses alleine auftritt, ausführt.
  • Wenn der Schieberegistertaktgenerator 321 das serielle Schieberegister 320 ansteuert, werden die Testmodusdaten einschließlich einer Reihe aus Datenbits seriell in einen dritten Bereich 335 des seriellen Schieberegisters 320 eingespeist. Die Testmodusdaten werden von dem externen Testsystem 318 über den ersten IO1-Stift zu dem ersten Register 330 zugeführt, wenn der erste Puffer 322 einschaltet. 11 zeigt einen beispielhaften Inhalt des seriellen Schieberegisters 320 nach dem zweiten Zustand. In der beispielhaften Ausführungsform aus 11 enthalten die ersten acht Register des seriellen Schieberegisters 320 den dritten Bereich 335 des seriellen Schieberegisters 320, und die zweiten acht Register des seriellen Schieberegisters 320 umfassen einen vierten Bereich 336 des seriellen Schieberegisters 320. Die Testmodusdaten werden seriell in den dritten Bereich 335 des seriellen Schieberegisters 320 eingespeist (Schritt 366 aus 9). Die Testmodusdaten kennzeichnen einen Satz aus gewünschten Testmodi, die von dem externen Testsystem 318 zur Ausführung an dem Array aus Kernflash-Speicherzellen 304 durch das BIST-System 300 ausgewählt sind.
  • Jeder Testmodus entspricht einem entsprechenden Muster zur Vorspannung jeder Flash-Speicherzelle des Arrays aus Kernflashspeicherzellen 304 entsprechend einem gewünschten Muster programmierter und gelöschter Zustände des Arrays aus Kernflashspeicherzellen 304. Beispielsweise werden die Kernflashspeicherzellen in einer abwechselnden, schachbrettartigen Art in dem Array aus Kernflashspeicherzellen 304 für ein gewünschtes Schachbrettmuster aus programmierten und gelöschten Kernflashspeicherzellen in einem Testmodus programmiert und gelöscht. Alternativ werden die Flash-Kernspeicherzellen, die in der Diagonale des Arrays aus Kernflashspeicherzellen 304 angeordnet sind, entsprechend einem gewünschten diagonalen Muster programmierter Flashspeicherzellen in einem weiteren Testmodus programmiert. Derartige Testmodi zur Prüfung der Funktion des Arrays aus Kernflashspeicherzellen sind dem Fachmann auf dem Gebiet der Flashspeicherbauelementefertigung bekannt.
  • Es werden mehrere Testmodi an dem Array aus Kernflashspeicherzellen 304 während des Prüfens des Arrays aus Kernflashspeicherzellen 304 durchgeführt. In einem Beispiel werden während des Prüfens des Arrays aus Kernflashspeicherzellen 304 ungefähr 19 unterschiedliche Testmodi an dem Array aus Kernflashspeicherzellen 304 durchgeführt. In einer Ausführungsform der vorliegenden Erfindung sind die Testmodusdaten eine Codierung an Datenbits, die anzeigen, welcher von diesen derartigen Testmodi von dem externen Testsystem 318 als der gewünschte Testmodus ausgewählt ist, der an dem Array aus Kernflashspeicherzellen 304 von dem BIST-System 300 durchzuführen ist.
  • Gemäß 11 zeigen die ersten drei Bits aus den ersten drei Registern an, welcher Satz aus Testmodi von dem externen Testsystem 318 gewählt ist. Jeder Satz entspricht einem Satz aus möglichen Testmodi. Jeder mögliche Testmodus ist einem entsprechenden Schieberegister des seriellen Schieberegisters 320 zugeordnet, das auf hoch gesetzt wird, um diesen Testmodus als gewünschten Testmodus auszuwählen, der an dem Array aus Kernflashspeicherzellen 304 ausgeführt wird. Beispielsweise zeigt eine digitale Codierung aus „1, 0, 0" in den ersten drei Schieberegistern an, dass ein erster Satz möglicher Testmodi einschließlich eines ersten Testmodus (Nr. 1), eines zweiten Testmodus (Nr. 2) und eines dritten Testmodus (Nr. 3), eines vierten Testmodus (Nr. 4) und eines fünften Testmodus (Nr. 5) von dem externen Testsystem 318 gewählt ist. Danach wird das vierte Schieberegister auf hoch gesetzt, wenn der erste Testmodus (Nr. 1) ein gewünschter Testmodus ist, der an dem Array aus Kernflashspeicherzellen 304 ausführen ist, und wird ansonsten auf tief gesetzt. In ähnlicher Weise wird das fünfte Schieberegister auf hoch gesetzt, wenn der Testmodus (Nr. 2) ein gewünschter Testmodus ist, und wird ansonsten auf tief gesetzt, das sechste Schieberegister wird auf hoch gesetzt, wenn der dritte Testmodus (Nr. 3) ein gewünschter Testmodus ist und wird ansonsten auf tief gesetzt, das siebente Schieberegister wird auf hoch gesetzt, wenn der vierte Testmodus (Nr. 4) ein gewünschter Testmodus ist und wird ansonsten auf tief gesetzt, und das achte Schieberegister wird auf hoch gesetzt, wenn der fünfte Testmodus (Nr. 5) ein gewünschter Testmodus ist, und wird ansonsten auf tief gesetzt.
  • Andererseits zeigt die digitale Codierung „1, 0, 1" in den ersten drei Schieberegistern an, dass ein zweiter Satz möglicher Testmodi mit einem sechsten Testmodus (Nr. 6) einem siebenten Testmodus (Nr. 7), einem achten Testmodus (Nr. 8), einem neunten Testmodus (Nr. 9) und einem zehnten Testmodus (Nr. 10) von dem externen Testsystem 318 ausgewählt ist. Dann wird das vierte Schieberegister auf hoch gesetzt, wenn der sechste Testmodus (Nr. 6) ein gewünschter Testmodus ist, der an dem Array aus Kernflashspeicherzellen (304) auszuführen ist, und wird ansonsten auf tief gesetzt. In ähnlicher Weise wird das fünfte Schieberegister auf hoch gesetzt, wenn der siebente Testmodus (Nr. 7) ein gewünschter Testmodus ist und wird ansonsten auf tief gesetzt, das sechste Schieberegister wird auf hoch gesetzt, wenn der achte Testmodus (Nr. 8) ein gewünschter Testmodus ist, und wird ansonsten auf tief gesetzt, das siebente Schieberegister wird auf hoch gesetzt, wenn der neunte Testmodus (Nr. 9) ein gewünschter Testmodus ist und wird ansonsten auf tief gesetzt und das achte Schieberegister wird auf hoch gesetzt, wenn der zehnte Testmodus (Nr. 10) ein gewünschter Testmodus ist, und wird ansonsten auf tief gesetzt.
  • Alternativ zeigt die digitale Codierung „1, 1, 0" innerhalb der ersten drei Schieberegister an, dass ein dritter Satz aus möglichen Testmodi mit einem elften Testmodus (Nr. 11), einem zwölften Testmodus (Nr. 12), einem dreizehnten Testmodus (Nr. 13), einem vierzehnten Testmodus (Nr. 14) und einem fünfzehnten Testmodus (Nr. 15) von dem externen Testsystem 318 ausgewählt ist. Dann wird das vierte Schieberegister auf hoch gesetzt, wenn der elfte Testmodus (Nr. 11) ein gewünschter Testmodus ist, der an dem Array aus Kernflashspeicherzellen 304 auszuführen ist, und wird ansonsten auf tief gesetzt. In ähnlicher Weise wird das Schieberegister auf hoch gesetzt, wenn der zwölfte Testmodus (Nr. 12) ein gewünschter Testmodus ist und wird ansonsten auf tief gesetzt, das sechste Schieberegister wird auf hoch gesetzt, wenn der dreizehnte Testmodus (Nr. 13) ein gewünschter Testmodus ist und wird ansonsten auf tief gesetzt, das siebente Schieberegister wird auf hoch gesetzt, wenn der vierzehnte Testmodus (Nr. 14) ein gewünschter Testmodus ist, und wird ansonsten auf tief gesetzt, und das achte Schieberegister wird auf hoch gesetzt, wenn der fünfzehnte Testmodus (Nr. 15) ein gewünschter Testmodus ist, und wird ansonsten auf tief gesetzt.
  • Auf diese Weise zeigen die Testmodusdaten, die in dem dritten Bereich 335 des seriellen Schieberegisters 320 gespeichert sind, einen Satz gewünschter Testmodi an, die an dem Array aus Kernflashspeicherzellen 304 auszuführen sind. Gemäß den 7 und 8 ist der dritte Bereich 335 des seriellen Schieberegisters 320 mit der vorderen Schnittstelle 314 verbunden, die die Datenbits innerhalb des dritten Bereichs 335 des seriellen Schieberegisters 320 decodiert, um zu bestimmen, welche Testmodi von der hinteren BIST-Zustandsmaschine 316 auszuführen sind. Ferner bestimmt die vordere Schnittstelle die Reihenfolge des Ausführens der gewünschten Testmodi (Schritt 368 aus 9). Die vordere Schnittstelle 314 sendet eine entsprechende Angabe eines aktuellen Testmodus, der von der hinteren BIST-Zustandsmaschine 316 auszuführen ist, auf der Grundlage des Decodierens des Testmodusdaten. Die vordere Schnittstelle 314 durchläuft jeden der gewünschten Testmodi als den aktuellen Testmodus, bis alle gewünschten Testmodi von der hinteren BIST-Zustandsmaschine 316 ausgeführt sind.
  • Nachdem das externe Testsystem 318 die acht Bits der Testmodusdaten gesendet hat, die in dem dritten Bereich 335 des seriellen Schieberegisters 320 zu speichern sind, sendet das externe Testsystem 318 einen dritten Satz aus Steuersignalen zu der Logiksteuerung 325, die den Beginn des dritten Zustands anzeigen (Schritt 370 aus 9 und Zeitpunkt 406 in 10), wozu ein OE/(Ausgabe/Freigabequer) Signal, das über einen OE/-Steuerstift auf tiefen Pegel gesetzt wird, das WE/-Steuersignal, das über den WE/-Steuerstift auf tiefen Pegel gesetzt wird, und der zweite IO2-Stift, der auf tiefen Pegel gesetzt wird, als ein Steuersignal gehören. Die Logiksteuerung 325 setzt die ST3-Marke hoch, um den Beginn des dritten Zustands anzuzeigen. Die ST3-Marke ist mit dem Schieberegistertaktgenerator 321 verbunden, der kein Taktsignal zu dem seriellen Schieberegister 320 sendet, so dass die Daten innerhalb des seriellen Schieberegisters 320 während des dritten Zustands nicht geschoben werden.
  • Während des dritten Zustands führt die hintere BIST-Zustandsmaschine 316 jeden der gewünschten Testmodi, wie dies durch die Testmodusdaten angezeigt ist, in der Reihenfolge aus, wie dies durch die fordere Zustandsmaschine 314 (Schritt 372 aus 9) bestimmt ist. Die Logiksteuerung 325 setzt die BSTART-Marke auf hoch, um die hintere BIST-Zustandsmaschine 316 anzusteuern, so dass diese die gewünschten Testmodi, wie sie durch die vordere Schnittstelle 314 bestimmt sind, auszuführen. Die vordere Schnittstelle 314 sendet eine entsprechende Identifizierung eines aktuellen Testmodus, der von der hinteren BIST-Zustandsmaschine 316 auszuführen ist. Die vordere Schnittstelle 314 und die hintere BIST-Zustandsmaschine 316 durchlaufen jeden der gewünschten Testmodi als den aktuellen Testmodus, bis alle gewünschten Testmodi von der hinteren BIST-Zustandsmaschine 316 während des dritten Zustands ausgeführt sind.
  • In einer beispielhaften Ausführungsform ist die vordere Schnittstelle 314 ein Decodierer, der mit den ersten acht Registern, die den dritten Bereich 335 des seriellen Schieberegisters 320 enthalten, fest verdrahtet ist. Ferner ist die vordere Schnittstelle 314 mit der hinteren BIST-Zustandsmaschine 316 mit 15 Testmodimarken verbunden. Jede Testmodusmarke entspricht einem der 15 Testmodi. In diesem Falle decodiert die vordere Schnittstelle die acht Datenbits des dritten Bereichs 335 des seriellen Schieberegisters 320 und setzt eine der 15 Testmodusmarken hoch, die dem aktuellen Testmodus entspricht, der von der hinteren BIST-Zustandsmaschine 316 auszuführen ist. Eine Decodiertechnologie zur Implementierung einer derartigen vorderen Schnittstelle 314 ist dem Fachmann auf dem Gebiet der Elektronik bekannt.
  • Gemäß den 7, 8 und 11 durchläuft die vordere Schnittstelle jeden der Testmodi, die ausgewählt sind, wenn das Datenbit eines beliebigen Registers des vierten, fünften, sechsten, siebenten oder achten Registers des seriellen Schieberegisters 320 auf hoch gesetzt ist. Ferner liefert die vordere Schnittstelle einen Wert von BSTAT, der angibt, welcher dieser fünf Testmodi der aktuelle Testmodus ist. Beispielsweise ist für einen beliebigen Satz aus Testmodi, wenn der Testmodus entsprechend dem vierten Register der aktuelle Testmodus ist, der BSTAT-Wert „1". Wenn der Testmodus entsprechend dem fünften Register der aktuelle Testmodus ist, dann ist der BSTAT-Wert „2". Wenn der dem sechsten Register entsprechende Testmodus der aktuelle Testmodus ist, dann beträgt der BSTAT-Wert „3". Wenn der dem siebenten Register entsprechende Testmodus der aktuelle Testmodus ist, dann beträgt der BSTAT-Wert „4". Wenn der dem achten Register entsprechende Testmo dus der aktuelle Testmodus ist, dann beträgt der BSTAT-Wert „5". Ein derartiger BSTAT-Wert kann in binärer Form mit drei Datenbits von der vorderen Schnittstelle 314 angezeigt werden.
  • Wenn die vordere Schnittstelle 314 eine entsprechende Identifizierung eines aktuellen Testmodus sendet, der von der hinteren BIST-Zustandsmaschine 316 auszuführen ist, führt die hintere BIST-Zustandsmaschine 316 geeignete Programmier- oder Löschspannungen zu jeder Flash-Speicherzelle des Arrays aus Kernflashspeicherzellen 304 gemäß dem entsprechenden Muster aus Vorspannungen für das Array aus Kernflashspeicherzellen 304 für den aktuellen Testmodus zu. Des weiteren misst die hintere Zustandsmaschine ein Muster aus programmierten und gelöschten Zuständen für das Array aus Kernflashspeicherzellen, nachdem die hintere BIST-Zustandsmaschine 316 die geeigneten Spannungen an das Arrays aus Kernflashspeicherzellen für den aktuellen Testmodus angelegt hat. Ferner bestimmt die hintere BIST-Zustandsmaschine 316, ob der aktuelle Testmodus erfolgreich oder fehlerhaft ist, indem das gemessene Muster der programmierten und gelöschten Zustände mit dem gewünschten Muster programmierter und gelöschter Zustände des Arrays aus Kernflashspeicherzellen für den aktuellen Testmodus verglichen wird (Schritt 374 aus 9).
  • Das erfolgreiche oder fehlerhafte Ergebnis von der hinteren BIST-Zustandsmaschine 316 wird in einem vierten Bereich 336 des seriellen Schieberegisters 320 während des dritten Zustands gespeichert (Schritt 374 aus 9). Gemäß den 7, 8 und 11 wird das entsprechende erfolgreiche oder fehlerhafte Ergebnis entsprechend jedem Testmodus in einem entsprechenden Register des vierten Bereichs 336 des seriellen Schieberegisters 320 gespeichert. Wenn beispielsweise gemäß 11 eine digitale Codierung von „1, 0, 0" in den ersten drei Schieberegistern anzeigt, dass der erste Satz möglicher Testmodi ausgewählt ist, wird das entsprechende erfolgreiche oder fehlerhafte Ergebnis entsprechend dem ersten Testmodus (Nr. 1) in dem sechszehnten Schieberegister gespeichert. In ähnlicher Weise wird das entsprechende Erfolgs- oder Fehlerergebnis entsprechend dem zweiten Testmodus (Nr. 2) in dem fünfzehnten Schieberegister gespeichert, das entsprechende Erfolgs- oder Fehlerergebnis gemäß dem dritten Testmodus (Nr. 3) wird in dem vierzehnten Schieberegister gespeichert, das entsprechende Erfolgs- oder Fehlerergebnis gemäß dem vierten Testmodus (Nr. 4) wird in dem dreizehnten Schieberegister gespeichert und das entsprechende Erfolgs- oder Fehlerergebnis gemäß dem fünften Testmodus (Nr. 5) wird in dem zwölften Schieberegister gespeichert.
  • Wenn andererseits eine digitale Codierung „1, 0, 1" in den ersten drei Schieberegistern anzeigt, dass der zweite Satz möglicher Testmodi ausgewählt ist, werden die entsprechenden Erfolgs- oder Fehlerergebnisse gemäß dem sechsten Testmodus (Nr. 6) in dem sechszehnten Schieberegister gespeichert. In ähnlicher Weise wird das entsprechende Erfolgs- oder Fehlerergebnis gemäß dem siebten Testmodus (Nr. 7) in dem fünfzehnten Schieberegister gespeichert, das entsprechende Erfolgs- oder Fehlerergebnis gemäß dem achten Testmodus (Nr. 8) wird in dem vierzehnten Schieberegister gespeichert, das entsprechende Erfolgs- oder Fehlerergebnis gemäß dem neunten Testmodus (Nr. 9) wird in dem dreizehnten Schieberegister gespeichert und das entsprechende Erfolgs- oder Fehlerergebnis gemäß dem zehnten Testmodus (Nr. 10) wird in dem zwölften Schieberegister gespeichert.
  • Wenn alternativ eine digitale Codierung „1, 1, 0" in den ersten drei Schieberegistern anzeigt, dass der dritte Satz möglicher Testmodi ausgewählt ist, wird das entsprechende Erfolgs- oder Fehlerergebnis gemäß dem elften Testmodus (Nr. 11) in dem sechszehnten Schieberegister gespeichert. In ähnlicher Weise wird das entsprechende Erfolgs- oder Fehlerergebnis gemäß dem zwölften Testmodus (Nr. 12) in dem fünfzehnten Schieberegister gespeichert, das entsprechende Erfolgs- oder Fehlerergebnis gemäß dem dreizehnten Testmodus (Nr. 13) wird in dem vierzehnten Schieberegister gespeichert, das entsprechende Erfolgs- oder Fehlergebnis gemäß dem vierzehnten Testmodus (Nr. 14) wird innerhalb des dreizehnten Schieberegisters gespeichert und das entsprechende Erfolgs- oder Fehlerergebnis gemäß dem fünfzehnten Testmodus (Nr. 15) wird in dem zwölften Schieberegister gespeichert.
  • Die hintere BIST-Zustandmaschine 316 bestimmt, ob der aktuelle Testmodus zu einem Erfolgsergebnis oder einem Fehlerergebnis geführt hat, indem das gemessene Muster programmierter und gelöschter Zustände mit dem Sollmuster programmierter und gelöschter Zustände des Arrays aus Kernflashspeicherzellen für den aktuellen Testmodus verglichen wird (Schritt 374 aus 9). Wenn das gemessene Muster programmierter und gelöschter Zustände im Wesentlichen gleich dem gewünschten Muster aus programmierten und gelöschten Zuständen des Arrays aus Kernflashspeicherzellen entspricht, dann wird dem ak tuellen Testmodus ein Erfolgs- bzw. positives Ergebnis zugeordnet. Ansonsten wird dem aktuellen Testmodus ein Fehlerergebnis zugeordnet.
  • Ein derartiges Erfolgs- oder Fehlerergebnis wird von der hinteren BIST-Zustandsmaschine 316 zu dem Speicherplatzdecodierer 328 aus 8 zurückgesendet. Der BIST-Wert, der anzeigt, welcher Testmodus der aktuelle Modus ist, wird ebenso zu dem Speicherplatzdecodierer 328 von der vorderen Schnittstelle 314 gesendet. Der Speicherplatzdecodierer decodiert den BSTAT-Wert und speichert das entsprechende positive oder negative Ergebnis des aktuellen Testmodus in dem geeigneten Register, das aus dem zwölften, dreizehnten, vierzehnten, fünfzehnten oder sechszehnten Register ausgewählt wird, die den vierten Bereich 336 des seriellen Schieberegisters 320 bilden, aus, wobei dies entsprechend dem aktuellen Testmodus stattfindet.
  • In einer Ausführungsform der vorliegenden Erfindung wird jedes Register des zwölften, dreizehnten, vierzehnten, fünfzehnten oder sechszehnten Registers, die den vierten Bereich 336 des seriellen Schieberegisters 320 bilden, auf tief, d.h., „0" zurückgesetzt, bevor der zweite Zustand eingenommen wird. Wenn dann ein aktueller Testmodus ein positives Ergebnis hat, setzt der Speichersplatzdecodierer 328 ein hoch, bzw. „1" in dem einen Register aus dem zwölften, dreizehnten, vierzehnten, fünfzehnten oder sechszehnten Register, die den vierten Bereich 336 des seriellen Schieberegisters 320 bilden, entsprechend zu diesem aktuellen Testmodus. Andererseits bleibt das Register, das dem aktuellen Testmodus entspricht, auf tief bzw. „0" gesetzt, wenn der aktuelle Testmodus ein negatives Ergebnis liefert. Eine Decodiertechnologie zum Implementieren eines derartigen Speicherplatzdecodierers 328 ist dem Fachmann auf dem Gebiet der Elektronik bekannt.
  • Wenn die vordere Schnittstelle 314 und die hintere BIST-Zustandsmaschine 316 alle gewünschten Testmodi, wie sie von den Testmodusdaten in dem dritten Bereich 335 des seriellen Schieberegisters 320 angegeben sind, durchlaufen haben, setzt die hintere BIST-Zustandsmaschine 316 eine BBUSY-Marke von hoch auf tief, um das Ende des dritten Zustands (Zeitpunkt 407 in 10) anzuzeigen. Während des dritten Zustands fragt das externe Testsystem 318 die BIST-Schnittstelle über den zweiten IO2-Stift ab, und die BBUSY-Marke von der hinteren BIST-Zustandsmaschine 316 wird dem externen Testsystem 318 über den ersten IO2-Stift als Ergebnis eines derartigen Abfragens mitgeteilt. In diesem Falle wird der zweite IO2-Stift als ein Steuerfreigabestift verwendet, und der erste IO1-Stift wird als ein Ausgangsstift für die BBUSY-Marke während des dritten Zustands verwendet. Wenn die BBUSY-Marke zum Anzeigen des Endes des dritten Zustands von der hinteren BIST-Zustandsmaschine 316 von hoch auf tief gesetzt wird, wird auf diese Weise das externe Testsystem 318 programmiert, dass die hintere BIST-Zustandsmaschine 316 das Ausführen jedes der gewünschten Testmodi abgeschlossen hat. Das externe Testsystem 318 sendet dann einen vierten Satz aus Steuersignalen, der das WE/-Steuersignal auf tiefen Pegel und den zweiten IO2-Stift auf tiefen Pegel enthält, als ein Steuersignal, um der Logiksteuerung 325 den Beginn des vierten Zustands anzuzeigen (Schritt 376 aus 9 und Zeitpunkt 408 aus 10). In diesem Falle setzt die Logiksteuerung 325 die ST4-Marke auf hoch. Während dieses vierten Zustands wird das entsprechende positive oder negative Ergebnis, das in dem vierten Bereich 336 des Schieberegisters 320 gespeichert ist, für jeden der gewünschten Testmodi an das externe Testsystem 328 ausgegeben (Schritt 378 in 9).
  • Während des vierten Zustands liefert das externe Testsystem 318 ein zweites IO2-Taktsignal über den zweiten IO2-Stift und ein OE/-Taktsignal über den OE/-Steuerstift. Wenn der Schieberegistertaktgenerator 321 die ST4-Marke hohen Pegel von der Logiksteuerung 3265 empfängt, steuert der Schieberegistertaktgenerator 321 das serielle Schieberegister 320 mit einem Taktsignal an, das aus einer Kombination des zweiten IO2-Taktsignals und des OE/-Taktsignals erzeugt wird. Beispielsweise führt das serielle Schieberegisters 320 eine Verschiebung um ein Bit bei jedem Auftreten einer Kombination einer abfallenden Flanke des OE/-Taktsignals und einer nachfolgenden ansteigenden Flanke des zweiten IO2-Taktsignals aus. Eine derartige Kombination stellt sicher, dass das serielle Schieberegister 320 nicht unerwünschterweise eine Verschiebung um ein Bit bei einem nicht gesteuerten Übergang durch Rauschen des OE/-Taktsignals alleine oder des zweiten IO2-Taktsignals alleine ausführt. Wenn das serielle Schieberegister 320 mit einem derartigen Taktsignal angesteuert wird, wird der Inhalt des seriellen Schieberegisters 320 heraus und zu dem externen Testsystem 318 geschoben. Der dritte Puffer 338 wird so eingeschaltet, dass der Inhalt des letzten Schieberegisters 337 über den ersten IO1-Stift während des Verschiebens des Inhalts des seriellen Schieberegisters 320 zu dem externen Testsystem 318 ausgegeben wird.
  • Das entsprechende positive oder negative Ergebnis für jeden gewünschten Testmodus wird an einer entsprechenden Stelle innerhalb des vierten Bereichs 336 des seriellen Schiebe registers 320 gespeichert. Somit bestimmt das externe Testsystem 318, welcher der gewünschten Testmodi ein positives Ergebnis und welcher der gewünschten Testmodi ein negatives Ergebnis aufweist, aus der entsprechenden Stelle für jedes der positiven oder negativen Ergebnisse, wie sie in dem vierten Bereich 336 des seriellen Schieberegisters 320 gespeichert sind. Die Flash-Speichereinrichtung 304 kann dann gemäß derartiger positiver oder negativer Ergebnisse sortiert werden. Beispielsweise kann der Halbleiterchip 302, der die Flash-Speichereinrichtung 304 aufweist, als fehlerhaft markiert werden, wenn die gewünschten Testmodi ein negatives Ergebnis zeigen.
  • In einer weiteren Ausführungsform der vorliegenden Erfindung werden die acht Bits der Testmodusdaten, die in dem dritten Bereich 335 des seriellen Schieberegisters 320 gespeichert sind, ebenso zu dem externen Testsystem 318 über den Puffer 338 und über den ersten IO1-Stift während des vierten Zustands herausgeschoben (Schritt 378 in 9). In dieser Ausführungsform bestimmt das externe Testsystem 318, ob die acht Bits aus Testmodusdaten in korrekter Weise von dem externen Testsystem 318 zu dem dritten Bereich 335 des seriellen Schieberegisters 320 während des zweiten Zustands übertragen wurden, indem bestimmt wird, ob die acht Bits der Testmodusdaten, die aus dem dritten Bereich 335 des seriellen Schieberegisters 320 herausgeschoben wurden, ein korrektes Bitmuster aufweisen.
  • In jedem Falle wird der vierte Zustand beendet, wenn alle positiven oder negativen Ergebnisse aus dem vierten Bereich 336 des seriellen Schieberegisters 320 an das externe Testsystem 318 ausgegeben sind. Zu diesem Zeitpunkt kann das externe Testsystem 318 ein Rücksetzsteuersignal als ein Steuersignal zu der Logiksteuerung 325 senden (Schritt 380 aus 9), das das WE/-Steuersignal enthält, das tiefpegelig ist, während das OE/-Steuersignal auf hoch gesetzt ist und der zweite IO2-Stift auf hoch gesetzt ist.
  • Wenn das externe Testsystem 318 das Rücksetzsteuersignal zu der Logiksteuerung 325 sendet, dann geht die BIST-Schnittstelle 312 wieder in den zweiten Zustand zurück (Schritt 364 aus 9), um den zweiten Zustand, den dritten Zustand und den vierten Zustand zum Ausführen eines zweiten Satzes gewünschter Testmodi zu wiederholen. Beispielsweise wird gemäß 11 nach dem Ausführen des ersten Satzes gewünschter Testmodi, wenn die digitale Codierung „1, 0, 0" in den ersten drei Schieberegistern des seriellen Schieberegisters 320 war, der zweite Zustand wieder ausgeführt, wobei das externe Testsystem 318 eine digitale Codierung „1, 0, 1" in die ersten drei Schieberegister des seriellen Schieberegisters 320 eingibt, um den zweiten Satz aus gewünschten Testmodi zu kennzeichnen. In diesem Falle wird der zweite Zustand, der dritte Zustand und der vierte Zustand für den zweiten Satz aus gewünschten Testmodi wiederholt, bis die entsprechenden positiven oder negativen Ergebnisse für den zweiten Satz aus gewünschten Testmodi an das externe Testsystem 318 ausgegeben werden.
  • Auf diese Weise können der zweite Zustand, der dritte Zustand und der vierte Zustand für einen unterschiedlichen Satz an gewünschten Testmodi ausgeführt werden, wenn das externe Testsystem 318 das Rücksetzsteuersignal zu der Logiksteuerung 325 nach dem vierten Zustand für jeden Satz. gewünschter Testmodi sendet, so dass mehrere Sätze aus Testmodi von dem BIST-System 300 ausgeführt werden können. Wenn andererseits die Rücksetzsteuersignale von dem externen Testsystem 318 am Ende eines vierten Zustands nicht erkannt werden, wird der BIST-Modus beendet.
  • Durch Ausführen des Programmierens, Löschens und Lesens aus den Kernflashspeicherzellen in chipinterner Weise innerhalb jedes Halbleiterchips werden eine minimale Anzahl von Stiften des externen Testsystems 318 für das Prüfen jedes Halbleiterchips verwendet. Beispielsweise werden in der Ausführungsform der vorliegenden Erfindung, wie sie hierin beschrieben ist, zwei IO-Stifte zum Einspeisen der Testtypdaten und der Testmodusdaten in das serielle Schieberegister 320 von dem externen Testsystem 318 und zum Ausgeben der positiven oder negativen Ergebnisse von dem seriellen Schieberegister 320 zu dem externen Testsystem 318 verwendet. Des weiteren werden drei Stifte für die CE/- WE/- und OE/-Steuersignale verwendet, und es werden zwei Stifte von dem externen Testsystem 318 für die Stromversorgungsquelle verwendet.
  • Somit ist die Anzahl der zum Testen jedes Halbleiterchips zugeordneten Stifte von 46 im Stand der Technik auf ungefähr sieben in einer Ausführungsform der vorliegenden Erfindung reduziert, so dass die Anzahl der Halbleiterchips, die gleichzeitig von dem externen Testsystem 318 geprüft werden können, um ungefähr den Faktor 7 erhöht ist. Gemäß den 4 und 6 besitzt jeder Halbleiterchip der Halbleiterscheibe 220 ein entsprechendes BIST-System 300, das auf dem Halbleiterchip zusammen mit dem entsprechenden Array aus Kernflashspeicherzellen 304 hergestellt ist. Gemäß den 4, 6, 7 und 8 ist ein entsprechender Satz aus sieben Anschlussstiften des externen Testsystems 318 mit dem ent sprechenden BIST-System 300 jedes von mehreren Halbleiterchips der Halbleiterscheibe 220 verbunden.
  • Gemäß den 9 und 10 werden die Schritte des Flussdiagramms aus 9 einschließlich des ersten Zustands, des zweiten Zustands, des dritten Zustands und des vierten Zustands gleichzeitig an jedem der mehreren Halbleiterchips der Halbleiterscheibe 220 ausgeführt. Da die Anzahl der für das Testen jedes Halbleiterchips zugeordneten Anschlussstifte in der vorliegenden Erfindung reduziert ist, ist die Anzahl der Halbleiterchips, die gleichzeitig von dem externen Testsystem 318, das eine begrenzte Gesamtzahl an Stifte aufweist, erhöht, um damit den Durchsatz während der Herstellung von Flash-Bauelementen zu maximieren.
  • Gemäß 12 werden in einer weiteren Ausführungsform der vorliegenden Erfindung Stifte von dem externen Testsystem 318 gemeinsam für mehrere Halbleiterchips verwendet. 12 zeigt einen ersten Halbleiterchip 452 mit einem ersten entsprechenden BIST-System 454 und ein erstes entsprechendes Array aus Kernflashspeicherzellen 456, einen zweiten Halbleiterchip 458 mit einem zweiten entsprechenden BIST-System 460 und einem zweiten entsprechenden Array aus Kernflashspeicherzellen 462, und einen dritten Halbleiterchip 464 mit einem dritten entsprechenden BIST-System 466 und einem dritten entsprechenden Array aus Kernflashspeicherzellen 468.
  • Die BIST-Systeme 454, 458 und 464 sind im Aufbau und Funktion ähnlich dem BIST-System 300, wie dies hierin für eine chipinterne Prüfung des entsprechenden Arrays aus Kernflashspeicherzellen 456, 462 und 468 beschrieben ist. Der erste, zweite und dritte Halbleiterchip 452, 458 und 464 sind auf einer gemeinsamen Halbleiterscheibe in einer Ausführungsform der vorliegenden Erfindung angeordnet. Ein erster Stift 472, ein zweiter Stift 474 und ein dritter Stift 476 des externen Testsystems 318 sind mit den BIST-Systemen 454, 458 und 464 des ersten, des zweiten und des dritten Halbleiterchips 452, 458 und 464 verbunden und werden gemeinsam von diesen benutzt. Jeder dieser derartig gemeinsam genutzten Stifte kann bi-direktional sein, um Signale in beiden Richtungen zu und von dem externen Testsystem 318 von und zu den BIST-Systemen 454, 458 und 464 zu übertrtagen, oder kann uni-direktional sein, um Signale in einer Richtung zu und von dem externen Testsystem 318 von oder zu den BIST-Systemen 454, 458 und 464 zuzuführen.
  • In einem Beispiel können der erste Stift 472, der zweite Stift 474 und ein dritter Stift 476 des externen Testsystems 318 der CE/-Steuerstift zum Zuführen des CE/-Steuersignals, der WE/-Steuerstift zum Zuführen des WE/-Steuersignals und der OE/-Steuerstift zum Zuführen des OE/-Steuersignals sein. In diesem Falle benutzen der erste, der zweite und der dritte Halbleiterchip 452, 458 und 464 die Steuerstifte des externen Testsystems 318 gemeinsam. Jedoch können der erste, der zweite und der dritte Halbleiterchip 452, 458 und 464 entsprechende Stifte für die entsprechenden ersten IO1- und zweiten IO2-Stifte aufweisen, die einen separaten Satz an Stiften des externen Testsystems 318 repräsentieren.
  • In diesem Beispiel kann der erste, der zweite und dritte Halbleiterchip 452, 458 und 464 gleichzeitig mit gleichzeitigen CE/-, WE/- und OE/-Steuersignalen auf den gemeinsamen Steuerstiften 472, 474 und 476 geprüft werden, wobei das externe Testsystem 318 Daten zu und von den ersten, zweiten und dritten Halbleiterchips 452, 458 und 464 mit separaten entsprechenden Stiften für die entsprechenden ersten IO1- und zweiten IO2-Stifte für den ersten, zweiten und dritten Halbleiterchip 452, 458 und 464 zuführt.
  • In einem weiteren Beispiel sind mehrere Halbleiterchips, etwa der erste; der zweite und der dritte Halbleiterchip 452, 458 und 464 mit den ersten IO1- und zweiten IO2-Stiften des externen Testsystems 318 verbunden und benutzen diese gemeinsam. In diesem Falle können jeweils die Halbleiterchips 452, 458 und 464 entsprechende Stifte für die entsprechenden CE/-, WE/- und OE/-Steuerstifte aufweisen, die ein separater Satz aus Stiften des externen Testsystems 318 sind.
  • In diesem Beispiel werden der erste, der zweite und der dritte Halbleiterchip 452, 458 und 464 in einer Sequenz geprüft, wobei das externe Testsystem 318 Daten zu und von dem ersten, zweiten und dritten Halbleiterchip 452, 458 und 464 nacheinander über die ersten IO1- und zweiten IO2-Stifte für den ersten, den zweiten und den dritten Halbleiterchip 452, 458 und 464 ausgibt oder einliest. Der Zeitablauf zum Prüfen jeweils des ersten, des zweiten und des dritten Halbleiterchips 452, 458 und 464 in einer Reihenfolge kann mittels der separaten CE/-, WE/- und OE/-Steuersignale auf den entsprechenden separaten CE/-, WE/- und OE/-Steuerstiften für jeweils den ersten, den zweiten und den dritten Halbleiterchip 4652, 458 und 464 gesteuert werden.
  • Mit einer derartigen gemeinsamen Nutzung von Stiften von dem externen Testsystem 318 wird die Anzahl an Steuer- und Eingabe/Ausgabe-Signalen, die von dem externen Testsystem 318 zum Prüfen des entsprechenden Arrays aus Kernflash-Speicherzellen jedes Halbleiterchips erforderlich ist, deutlich reduziert. Somit kann sich ein kosteneffizienteres externes Testsystem für den BIST (eingebauten Selbsttest) Modus mit einem verbesserten Durchsatz während der Herstellung von Flash-Speicherbauelementen ergeben.
  • Das Vorhergehende ist lediglich beispielhaft und soll nicht beschränkend sein. Beispielsweise kann die vorliegende Erfindung für eine größere Anzahl an Testmodi und eine größere Anzahl an Datenbits in dem seriellen Schieberegister 320 aus 8 verwirklicht werden. Zahlen, wie sie hierin beschrieben oder hierin gezeigt sind, sind lediglich beispielhafter Natur. Die vorliegende Erfindung, wie sie in den folgenden Patentansprüchen und deren Äquivalenten definiert ist, ist nur in der darin beschriebenen Weise beschränkt.
  • C. Hintere BIST (eingebaute Selbsttest-) Zustandsmaschine
  • 13 zeigt die Blockansicht der hinteren BIST-Zustandsmaschine 316 des BIST-Systems 300 der 7. In 13 sind das Array aus Kernflashspeicherzellen 304, die vordere Schnittstelle 314 und die BIST-Schnittstelle 312 in gestrichelten Linien gezeigt, da das Array aus Kernflashspeicherzellen 304, die vordere Schnittstelle 314 und die BIST-Schnittstelle 312 nicht Teil der hinteren BIST-Zustandsmaschine 316 sind. Die hintere BIST-Zustandsmaschine 316 umfasst eine hintere BIST-Steuerung 502, die mit der vorderen Schnittstelle 314 und der BIST-Schnittstelle 312 des BIST-Systems 300 verbunden ist. Gemäß den 6 und 13 ist die BIST-Steuerung 502 auf dem Halbleiterchip 302 hergestellt, der das Array aus Kernflashspeicherzellen 304 darauf ausgebildet aufweist.
  • Die vordere Schnittstelle 314 sendet an die BIST-Steuerung 502 eine entsprechende Identifizierung, die dem aktuellen BIST-Modus entspricht, der von der hinteren BIST-Zustandsmaschine 316 auszuführen ist. Die BIST-Schnittstelle 312 sendet ein BSTART-Signal an die BIST-Steuerung 502, um den Beginn des Durchführens eines Satzes an BIST-Modi durch die hintere BIST-Zustandsmaschine 316 anzuzeigen. Ferner sendet die BIST-Steuerung 502 ein entsprechendes DONE- bzw. FERTIG oder ein HANG- bzw. ANHÄNGIG-Signal für jeden BIST-Modus nach dem Durchführen jedes BIST-Modus. Die BIST-Steuerung 502 sendet ein FERTIG-Signal nach der erfolgreichen Durchführung eines aktuellen BIST-Modus, oder wenn das Array aus Kernflashspeicherzellen den aktuellen BIST-Modus positiv abschließt. Alternativ sendet die BIST-Steuerung 502 ein Anhängig-Signal, wenn der aktuelle BIST-Modus nicht erfolgreich beendet werden konnte oder wenn das Array aus Kernflashspeicherzellen den aktuellen BIST-Modus fehlerhaft abschließt. Die BIST-Steuerung 502 ist ein Datenprozessor, etwa ein PLD- (programmierbares Logikbauelement), und derartige Datenprozessoren zum Implementieren der BIST-Steuerung sind dem Fachmann auf dem Gebiet der Elektronik bekannt.
  • Die hintere BIST-Zustandsmaschine 316 umfasst ferner mehrere Spannungsquellen 504 (die in 13 in gestrichelten Linien gezeigt sind). Die mehreren Spannungsquellen enthalten eine APD-Belastungsspannungsquelle 506, eine HTRB-Belastungsspannungsquelle 508, eine Programmier/Löschspannungsquelle 580 und eine Lese/Verifizierspannungsquelle 512, die die Spannungen bereitstellen, die an dem Array aus Kernflashkernspeicherzellen 304 anzulegen sind. Die mehreren Spannungsquellen 506, 508, 510 und 512 sind zwischen dem Array aus Kernflashspeicherzellen 304 und der BIST-Steuerung 502 angeschlossen. Die BIST-Steuerung 502 steuert die mehreren Spannungsquellen 506, 508, 510 und 512, um geeignete Spannungen an das Array aus Kernflashspeicherzellen 304 für jeden BIST-Modus anzulegen. Gemäß den 6 und 13 sind die mehreren Spannungsquellen 506, 508, 510 und 512 chipintern auf dem Halbleiterchip 302 ausgebildet, der das Array aus Kernflashspeicherzellen 304 darauf hergestellt aufweist. Spannungsquellen zum Erzeugen von Spannungen sind dem Fachmann auf dem Gebiet der Elektronik vertraut. Ferner sind auch Mechanismen zum Steuern des Anlegens ausgewählter Spannungen an ausgewählte Flashspeicherzellen einer Adresse des Arrays aus Kernflashspeicherzellen 304 für den Fachmann auf dem Gebiet von Flashspeichereinrichtungen bekannt.
  • Die hintere BIST-Zustandsmaschine 316 umfasst ferner eine Referenzschaltung 514 und eine Komparator- bzw. Vergleicherschaltung 516. Die Referenzschaltung 514 erzeugt Referenzströme oder Spannungen und die Komparatorschaltung 516 vergleicht einen Strom oder eine Spannung einer Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304, um einen entsprechenden logischen Hochzustand oder Tiefzustand entsprechend jener Flashspeicherzelle während des Auslesens oder Verifizierens der Flashspeicherzelle zu erzeugen. Gemäß den 6 und 13 sind die Referenzschaltung 514 und die Komparatorschaltung 516 chipintern auf dem Halbleiterchip 302 ausgebildet, der darauf hergestellt das Array aus Kernflashspeicherzellen 304 aufweist. Derartige Referenzschaltungen und Komparatorschaltungen, die während des Lesens oder Verifizierens einer Flashspeicherzelle verwendet werden, sind dem Fachmann auf dem Gebiet der Elektronik vertraut.
  • Während einer Lese- oder Verifizieroperation an den Flashspeicherzellen 304 wird ein entsprechender logischer Hochzustand oder Tiefzustand für jede einer vorbestimmten Anzahl an Flashspeicherzellen erzeugt, die eine Adresse aufweisen, um mittels des Komparators 516 ein gemessenes Bitmuster zu bilden. Ein Bitmustergenerator 518 erzeugt ein gewünschtes Bitmuster entsprechend zu jener Adresse aus Flashspeicherzellen. Der Adressensequenzierer 524, der mit dem Bitmustergenerator 518 verbunden ist, zeigt die aktuelle Adresse der Flashspeicherzellen dem Bitmustergenerator 518 an. Eine beispielhafte Implementierung des Bitmustergenerators 518 ist hierin im Abschnitt „G" mit dem Titel „Mustergenerator im BIST- (eingebautem Selbsttest) System" beschrieben. Gemäß den 6 und 13 ist der Bitmustergenerator 518 chipintern auf dem Halbleiterchip 302 ausgebildet, der darauf hergestellt das Array aus Kernflashspeicherzellen 304 aufweist.
  • Eine Übereinstimmungsschaltung 520 vergleicht das gemessene Bitmuster von der Komparatorschaltung 516 mit dem gewünschten Bitmuster von dem Bitmustergenerator 518, um zu bestimmen, ob das gemessene Bitmuster gleich ist dem gewünschten Bitmuster. Das Ergebnis eines derartigen Vergleichs wird von der Übereinstimmungsschaltung 520 zu der BIST-Steuerung 502 gesendet. Eine Implementierung einer derartigen Übereinstimmungsschaltung ist dem Fachmann auf dem Gebiet der Elektronik bekannt. Gemäß den 6 und 13 ist die Überreinstimmungsschaltung 520 chipintern auf dem Halbleiterchip 302 ausgebildet, der darauf hergestellt das Array aus Kernflashspeicherzellen 304 aufweist.
  • Ferner umfasst die hintere BIST-Zustandsmaschine 316 einen Adressiersequenzierer 524, so dass der aktuelle BIST-Modus für jede Adresse des Arrays aus Flash-Speicherzellen 304 hindurch ausgeführt wird. Eine beispielhafte Implementierung des Adressensequenzierers 524 der hinteren BIST-Zustandsmaschine 316 ist unter dem Abschnitt „F" mit dem Titel „Adressensequenzierer innerhalb des BIST- (eingebautem Selbsttest) Systems" beschrieben. Gemäß den 6 und 13 ist der Adressensequenzierer 524 chipintern auf dem Halbleiterchip 302 hergestellt, der darauf ausgebildet das Array aus Kernflashspeicherzellen 304 aufweist.
  • Ein Zeitgeber oder Taktgenerator 526 ist mit der BIST-Steuerung 502 verbunden, so dass die BIST-Steuerung 502 die Länge der Schritte während der Ausführung der BIST-Modi zeitlich steuert. Eine Implementierung für Zeitgeber und Taktgeber sind dem Fachmann auf dem Gebiet der Elektronik vertraut. Gemäß 6 und 13 ist der Zeitgeber oder Taktgeber 526 chipintern auf dem Halbleiterchip 302 hergestellt, der darauf ausgebildet das Array aus Kernflashspeicherzellen 304 aufweist.
  • 14 zeigt ein Zustandsmaschinendiagramm 530 mit einer relativ kleinen Anzahl an Zuständen während des Betriebs der hinteren BIST-Zustandsmaschine 316 aus 13, um jeweils die BIST-Modi zum Prüfen des Arrays aus Kernflashspeicherzellen 304 auszuführen. Das Zustandsmaschinendiagramm umfasst einen Startzustand 532, einen APD- (Autopgrammstör-) Zustand 534, einen HTRB- (Hochtemperaturverweilausback-) Zustand 536, einen VERIFY1- bzw. Verifizier1-Zustand 538, einen VERIFY2- bzw. Verifizier 2-Zustand 540, einen JUICE-Zustand 542, einen DONE- bzw. Fertigzustand 544, und einen HANG- bzw. Anhängig-Zustand 546. Die hintere BIST-Zustandsmaschine 316 geht in einen entsprechenden Satz dieser begrenzten Anzahl an Zuständen 532, 534, 536, 538, 540, 542, 544 und 546 zum Ausführen jedes BIST-Modus zum Testen des Arrays aus Kernflashspeicherzellen 304 über.
  • Es wird nun das Ausführen gewisser beispielhafter BIST-Modi zum Testen des Arrays aus Kernflashspeicherzellen 304 mittels der hinteren BIST-Zustandsmaschine 316 mit Bezug auf das Zustandsmaschinendiagramm 530 aus 14 beschrieben. Gemäß 7 sendet zum Anzeigen des Beginns eines Durchführens eines Satzes aus BIST-Modi durch die hintere BIST-Zustandsmaschine 316 die BIST-Schnittstelle 312 ein BStart-Signal zu der hinteren BIST-Zustandsmaschine 316.
  • Ferner sendet die vordere Schnittstelle 314 eine entsprechende Kennung für einen aktuellen BIST-Modus des Satzes an BIST-Modi, die aktuell von der hinteren BIST-Zustandsmaschine 316 auszuführen sind. Die vordere Schnittstelle 314 durchläuft jeden BIST-Modus des Satzes aus BIST-Modi als den aktuellen BIST-Modus, bis jeder BIST-Modus des Satzes der BIST-Modi von der hinteren BIST-Zustandsmaschine 316 ausgeführt ist. Wenn jeder BIST-Modus des Satzes der BIST-Modi von der hinteren BIST-Zustandsmaschine 316 ausgeführt ist, wird ein BBUSY-Signal von der hinteren BIST-Zustandsmaschine 316 nicht mehr gesetzt, um der BIST-Schnittstelle 312 das Ende des Satzes an BIST-Modi durch die hintere BIST-Zustandsmaschine 316 anzuzeigen. Davor wird das BBUSY-Signal für die BIST-Schnittstelle 312 durch die BIST-Zustandsmaschine 316 gesetzt, um anzuzeigen, dass der Satz an BIST-Modi noch nicht abgeschlossen ist.
  • Im Allgemeinen enthält ein BIST-Modus mindestens das Anlegen von Spannungen an jede Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304 und das Auslesen eines entsprechenden logischen Zustands jeder Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304. Wenn der BIST-Modus das Anlegen von Programmier- und Löschspannungen an jede Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304 beinhaltet, kann der BIST-Modus auch das Verifizieren des programmierten oder gelöschten Zustands jeder Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304 enthalten.
  • Beispiele von BIST-Modi zum Anlegen von Spannungen an jede Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304 enthalten einen BIST-Modus zum Anlegen von Programmierspannungen an jede Flashspeicherzelle, so dass ein logischer Zustand für jede Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304 programmiert ist, oder einen Modus zum Anlegen von Löschspannungen an jede Flashspeicherzelle, so dass ein logischer Hochzustand für jede Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304 programmiert ist. Alternativ werden Programmierspannungen und Löschspannungen abwechselnd an jede Flashspeicherzelle zum Erhalten eines schachbrettartigen Musters aus logisch tiefen und hohen Zuständen für das Array aus Kernflashspeicherzellen 304 angelegt.
  • 15 zeigt ein Flussdiagramm für einen beispielhaften BIST-Modus zum Anlegen von Programmier- oder Löschspannungen an jede Löschspeicherzelle des Arrays aus Kernflashspeicherzellen 304 mit dem Verifizieren des programmierten oder gelöschten Zustand jeder Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304. Gemäß den 13, 14 und 15 erhält die BIST-Streuerung 502 die entsprechende Kennung eines aktuellen BIST-Modus, der aktuell auszuführen ist, zum Anlegen von Spannungen an jede Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304. Zu Beginn eines derartigen BIST-Modus geht die BIST-Steuerung 502 in den Startzustand 532 aus 14 über (Schritt 552 in 15). Während des Startzustands legt der Zeitgeber 521 eine vorbestimmte Wartezeitdauer fest, bevor der aktuelle BIST-Modus gestartet wird, um die Einstellkondensatoren innerhalb der Spannungsquellen 504 zurückzusetzen, die die an die Wortleitungen der Flashspeicherzellen während des Startzustandes angelegte Spannung bereitstellen (Schritt 554 in 15). Das Zurücksetzen der Einstellkondensatoren in den Spannungsquellen 504, die die an die Wortleitungen der Flashspeicherzellen angelegte Spannung bereitstellen, ist dem Fachmann auf dem Gebiet der Flashspeicherbauelemente bekannt. Vor dem Ablauf der Wartezeitperiode (Warten = wahr) verbleibt die hintere BIST-Zustandsmaschine 316 in dem Startzustand.
  • Nach Ablauf der Wartezeitperiode (Warten = falsch) während des Startzustandes geht die hintere BIST-Zustandsmaschine 316 in den VERIFY2-Zustand 538 aus 14 über (Schritt 556 aus 15). Während des VERIFY1-Zustands gibt der Zeitgeber 526 eine vorbestimmte Wartezeitdauer vor, bevor Spannungen von den mehreren Spannungsquellen 504 an eine Adresse der Flashspeicherzellen für den VERIFY2-Zustand angelegt werden, so dass die Spannungspegel von den mehreren Spannungsquellen 504 vor dem VERIFY2-Zustand stabilisiert werden (Schritt 558 in 15). Vor dem Ablaufen der Wartezeitdauer (Warten = wahr) während des VERIFY1-Zustands bleibt die hintere BIST-Zustandsmaschine 316 in dem VERIFY1-Zustand.
  • 16 zeigt ein Beispiel einer Anordnung des Arrays aus Kernflashspeicherzellen 304, das acht horizontale Sektoren enthält mit einem ersten Sektor 602, einem zweiten Sektor 604, einem dritte Sektor 606, einem vierten Sektor 608, einem fünften Sektor 610, einem sechsten Sektor 612, einem siebenten Sektor 614 und einem achten Sektor 616. Ferner enthält das Array aus Kernflashspeicherzellen 16 vertikale Blöcke innerhalb jedes horizontalen Sektors mit einem ersten Block 622, einem zweiten Block 624, einem dritten Block 626, einem vierten Block 628, einem fünften Block 630, einem sechsten Block 632, einem siebenten Block 634, einem achten Block 636, einem neunten Block 638, einem zehnten Block 640, einem elften Block 642, einem zwölften Block 644, einem dreizehnten Block 646, einem vierzehnten Block 648, einem fünfzehnten Block 650 und einem sechszehnten Block 652.
  • Gemäß 17 enthält jeder Block in einem Sektor aus Flashspeicherzellen 64 Bitleitungen und 64 Wortleitungen. Beispielsweise zeigt 17 die erste Bitleitung 662, die zweite Bitleitung 664, die dritte Bitleitung 666 usw. bis zu der vierundsechzigsten Bitleitung 668, und zeigt ferner die erste Wortleitung 672, die zweite Wortleitung 674, die dritte Wortleitung 676 usw. bis zu der vierundsechzigsten Wortleitung 678 für den erste Block 622 des ersten Sek tors 602. Die Kreuzung einer Bitleitung und einer Wortleitung bildet eine Flashspeicherzelle innerhalb des Blocks aus Flashspeicherzellen. Eine Wortleitung verläuft horizontal und kontinuierlich durch alle 16 Blöcke 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650 und 652.
  • Gemäß den 16 und 17 sind in einer Ausführugsform der vorliegenden Erfindung eine vorbestimmte Anzahl an Flashspeicherzellen mit einer Adresse durch die 16 Flashspeicherzellen gebildet, die mit einer gemeinsamen Wortleitung und einer n-ten-Bitleitung innerhalb jedes der 16 Blöcke 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650 und 652 verbunden sind. Beispielsweise umfasst eine erste Adresse jeder der 16 Flashspeicherzellen, die mit einer obersten Wortleitung 672 und einer entsprechenden ersten äußerst linken Bitleitung 662 in jedem der 16 Blöcke 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650 und 652 verbunden sind. Sodann wird eine zweite Adresse jeder der 16 Flashspeicherzellen, die mit der obersten Wortleitung 672 und mit einer entsprechenden zweiten am weitesten links liegenden Bitleitung 664 in jedem der 16 Blöcke 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650 und 652 verbunden sind, gebildet. Somit sind mögliche 64 Spaltenadressen mit jeder horizontalen Wortleitung verknüpft, da entsprechende 64 Leitungen durch jeden der 16 Blöcke 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650 und 652 verlaufen. Gemäß 15 wird vor dem Startzustand 552 der Adressensequenzierer auf eine erste Adresse einer aktuellen Adresse aus 16 Flashspeicherzellen zurückgesetzt.
  • Gemäß 15 geht nach dem Ablauf der Wartezeitdauer (Warten gleich falsch) während des VERIFY1-Zustands die hintere BIST-Zustandsmaschine 316 in den VERIFY2-Zutand 540 aus 14 (über Schritt 560 aus 15). Während des VERIFY2-Zustands steuert die BIST-Steuerung 502 die Lese/Verifizierspannungsquelle an, um Verifizierspannung an jede einer vorbestimmten Anzahl (d. h. 16 für die zuvor beschriebenen Beispiele der 16 und 17) von Flashspeicherzellen mit einer aktuellen Adresse des Arrays aus Flashspeicherzellen 304 anzulegen.
  • Es wird ein gemessenes Bitmuster entsprechend zu jener aktuellen Adresse aus Flashspeicherzellen von der Komparatorschaltung 516 unter Anwendung der Referenzschaltung 514 erzeugt. Das gemessene Bitmuster ist aus der Reihe entsprechender Bits (die in einem logisch hohen Zustand „1" oder einem logisch tiefen Zustand „0" sein können) aufgebaut, die von jeder der vorbestimmten Anzahl an Flashspeicherzellen ausgelesen werden, nachdem Verifizierspannungen an Flashspeicherzellen mit der aktuellen Adresse angelegt werden. Verifizierspannungen, die an die Flashspeicherzellen zum Verifizieren des programmierten oder des gelöschten Zustands von Flashspeicherzellen angelegt werden, sind dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt. Ferner wird ein gewünschtes Bitmuster entsprechend der aktuellen Adresse aus Flashspeicherzellen mittels des Bitmustergenerators 518 erzeugt. Das gewünschte Bitmuster ist die Reihe an Bits, die aus entsprechenden Bits aufgebaut sind (die in einem logisch hohen Zustand „1" oder in einern logisch tiefen Zustand „0" sein können), wie dies für jede der vorbestimmten Anzahl aus Flashspeicherzellen der aktuellen Adresse gewünscht ist.
  • Die Übereinstimmungsschaltung 520 vergleicht dann das gemessene Bitmuster mit dem gewünschten Bitmuster für die aktuelle Adresse aus Flashspeicherzellen (Schritt 562 aus 15). Wenn ein Bit des gemessenen Bitmusters nicht gleich dem gewünschten Bitmuster ist, prüft die BIST-Steuerung 502 die PULSE_COUNT- bzw. Pulszahl-Variable im Vergleich zu einer Max_PC (maximale Pulszahl). Vor dem Startzustand 552 für den aktuellen BIST-Modus wurde die Pulszahl auf Null zurückgesetzt. Wenn die Pulszahl kleiner als Max_PC (Schritt 564 in 15), dann steuert die BIST-Steuerung 502 die mehreren Spannungsquellen 504 an, entsprechende Programmier- oder Löschspannungen engsprechend den aktuellen BIST-Modus an die Flashspeicherzellen mit der aktuellen Adresse der Kernflashspeicherzellen 304 während des JUICE-Zustands 542 aus 14 anzulegen (Schritt 566 in 15). Ferner wird in diesem Falle die Pulszahl um eins erhöht.
  • Wenn beispielsweise der aktuelle BIST-Modus das Anlegen von Programmierspannungen an jede der Flashspeicherzellen vorgibt, dann ist das gewünschte Bitmuster für die Flashspeicherzellen mit der aktuellen Adresse eine Reihe aus sechszehn Nullen. Wenn ein Bit des gemessenen Bitmusters in einem logisch hohen Zustand ist (d. h. eine „1"), dann werden die Programmierspannungen der Programmierspannungsquelle 510 an eine Flashspeicherzelle mit einem logisch hohen Zustand angelegt, und die Pulszahl wird um eins erhöht. Der Zeitgeber 526 gibt eine „Bestromungs"- bzw. Zusatzzeitdauer JTIMEOUT zum Anlegen derartiger Spannungen während des JUICE-Zustandes fest (Schritt 568 in 15). Der Wert für die Zusatzzeitdauer hängt von dem aktuellen BIST-Modus ab. Beispielsweise kann der Wert für die Zusatzzeitdauer in Abhängigkeit davon variieren, ob der aktuelle BIST-Modus zum Anlegen von Programmierspannungen und zum Anlegen von Lösch spannungen dient. Vor dem Ablauf der Zusatzzeitdauer (JTIMEOUT = falsch) bleibt die hintere BIST-Zustandsmaschine 316 in dem JUICE-Zustand, um die entsprechenden Spannungen entsprechend dem aktuellen BIST-Modus während der Zusatzzeitdauer JTIMEOUT anzulegen.
  • Nach dem Ablauf der Zusatzzeitdauer (JTIMEOUT = wahr) geht die hintere BIST-Zustandsmaschine 316 in die VERIFY1- und VERIFY2-Zustände 538 und 540 aus 14 über (Schritte 556, 558, 560 und 562 aus 15). Mit dem VERIFY1- und VERIFY2-Zustand wird erneut ein gemessenes Bitmuster entsprechend der aktuellen Adresse aus Flashspeicherzellen durch die Komparatorschaltung 516 unter Anwendung der Referenzschaltung 514 nach dem letzten zusätzlichen JUICE-Zustand 566 erzeugt, und die Übereinstimmungsschaltung 520 vergleicht das gemessene Bitmuster mit dem gewünschten Bitmuster. Mit dem zusätzlichen JUICE-Zustand 566 besitzt das gemessene Bitmuster entsprechend der aktuellen Adresse aus Flashspeicherzellen eine größere Wahrscheinlichkeit, dass es mit dem gewünschten Bitmuster übereinstimmt. Wenn das gemessene Bitmuster nicht gleich dem gewünschten Muster ist, werden wiederum die Schritte 564, 566, 568, 556, 558, 560 und 562 mit einer erhöhten Pulszahl wiederholt, bis die Pulszahl größer als Max_PC ist, oder bis das gemessene Bitmuster gleich dem gewünschten Bitmuster ist.
  • Wenn die Pulszahl größer als Max_PC ist, dann wurde der JUICE-Zustand (Schritte 566 und 568 in 15) Max_PC mal eingenommen. Wenn das gemessene Bitmuster nicht gleich dem gewünschten Bitmuster ist, nachdem die entsprechenden Programmier- oder Löschspannungen entsprechend dem aktuellen BIST-Modus an die Flashspeicherzellen der aktuellen Adresse Max_PC mal angelegt wurde, dann wird die Pulszahl auf Null zurückgesetzt (Schritt 570 in 15), und der Anhängig-Zustand 546 aus 14 wird von der BIST-Steuerung 502 (Schritt 572 in 15) eingenommen.
  • Wenn andererseits das gemessene Bitmuster gleich dem gewünschten Bitmuster, wie dies im Schritt 562 aus 15 bestimmt wird, bevor die Pulszahl größer als Max_PC ist, dann wird die aktuelle Adresse der Kernflashspeicherzellen 304 auf eine nächste Spaltenadresse des Adressiersequenzierers 524 hochgesetzt, und die Pulszahl wird auf Null zurückgesetzt (Schritt 57 in 15). Ferner wird nach dem Hochsetzen der aktuellen Adresse auf die nächste Spaltenadresse die BIST-Steuerung 502 zurück zum Verifizier1-Zustand geführt (Schritt 574 in 15), so dass die Schritte 556, 558, 560, 562, 564, 566, 568, 570, 572 und 574 aus 15 für die nachfolgende Spaltenadresse wiederholt werden.
  • In den 16 und 17 ist eine Spaltenadresse für die 16 Flashspeicherzellen mit einer gemeinsamen Wortleitung und einer n-ten Bitleitung innerhalb jedes der 16 Blöcke 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650 und 652, verbunden. Beispielswiese ist in den 16 und 17 eine erste Spaltenadresse aus jeder der 16 Flashspeicherzellen aufgebaut, die mit einer obersten Wortleitung 672 und mit einer entsprechenden ersten linksliegenden Bitleitung 662 in jedem der 16 Blöcke 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650 und 652, verbunden ist. Dann ist eine zweite Spaltenadresse aus jeder der 16 Flashspeicherzellen aufgebaut, die mit der obersten Wortleitung 672 und mit einer entsprechenden zweiten am weitesten linksliegenden Bitleitung 664 in jedem der 16 Blöcke 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650 und 652 verbunden ist. Somit sind mögliche 64 Spaltenadressen mit jeder horizontalen Worleitung verbunden, da ein entsprechender Satz an 64 vertikalen Bitleitungen durch jeden der 16 Blöcke 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650 und 652 verläuft.
  • Die Schleife der Schritte 556, 558, 560, 562, 564, 566, 568, 570, 572 und 574 aus 15 wird für jede derartige Spaltenadresse wiederholt, bis die aktuelle Spaltenadresse größer als eine Zahl Max_CA ist (maximale Spaltenadresse, d. h. 64 in dem Beispiel aus den 16 und 17). Wenn die aktuelle Spaltenadresse größer als Max_CA ist (Schritt 576 aus 15), wurde der aktuelle BIST-Modus mit den Schritten 556, 558, 560, 562, 564, 566, 568, 570, 572 und 574 aus 15 für alle 64 Spaltenadressen für eine aktuelle Wortleitung ausgeführt. Gemäß den 16 und 17 besitzt jeder horizontale Sektor 602, 604, 606, 608, 610, 612, 614 und 616 einen entsprechenden Satz an 64 Wortleitungen. Die Schleife zur Ausführung des aktuellen BIST-Modus für alle 64 Spaltenadressen wird für jede der 64 Wortleitungen wiederholt, bis die aktuelle Blockadresse größer als Max_BA ist (maximale Blockadresse) (Schritt 578 aus 15).
  • Wenn die aktuelle Blockadresse größer als Max_BA ist (Schritt 578 aus 15), ist gemäß den 16 und 17 der aktuelle BIST-Modus für alle Adressen innerhalb eines aktuellen horizontalen Sektors 602, 604, 606,608, 610, 612, 614 und 616 ausgeführt. Wenn ansonsten die aktuelle Blockadresse nicht als größer Max_BA ist (Schritt 578 aus 15), wird die Schleife aus den Schritten 556, 558, 560, 562, 564, 566, 568, 570, 572, 574, 576 und 578 aus 15 wiederholt, bis die aktuelle Blockadresse größer als Max_BA ist, wenn der aktuelle BIST-Modus für alle Adressen innerhalb eines aktuellen horizontalen Sektors ausgeführt ist. Wenn die aktuelle Blockadresse größer als Max_BA (Schritt 578 aus 15), wobei der aktuelle BIST-Modus für alle Adressen innerhalb eines aktuellen horizontalen Sektors ausgeführt ist, wird die aktuelle Sektoradresse für den nächsten horizontalen Sektor in dem Adressensequenzierer 524 erhöht.
  • Die Schleife aus den Schritten 552, 554, 556, 558, 560, 562, 564, 566, 568, 570, 572, 574, 576, 578, 580 und 582 aus 15 wird wiederholt, bis die aktuelle Sektoradresse größer als Max_SA ist (maximale Sektoradresse) (Schritt 582 in 15), wenn der aktuelle BIST-Modus für alle Adressen in allen horizontalen Sektoren 602, 604, 606, 608, 610, 612, 614 und 616 ausgeführt ist. Zu diesem Zeitpunkt wird eine Variable emb_Read (eingebettetes Lesen) auf einen logischen hohen Zustand „1" gesetzt (Schritt 584 in 15), und der aktuelle BIST-Modus kann dann das Auslesen der programmierten oder gelöschten Zustände für jede der Flashspeicherzellen enthalten. Mit dem Ausführen derartiger verschachtelter Schleifen an Entscheidungsschritten 576, 578 und 582 und mittels des Adressensequenzierers 542 wird dann der aktuelle BIST-Modus aus 15 für jede Adresse des gesamten Arrays aus Kernflashspeicherzellen 304 ausgeführt.
  • 18 zeigt ein Flussdiagramm eines BIST-Modus, der das Auslesen eines entsprechenden Logikzustandes jeder Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304 enthält. Z. B. kann ein derartiger BIST-Modus ausgeführt werden, nachdem die Variable emb_Read (eingebettetes Lesen) in einen logisch hohen Zustand „1" im Schritt 584 des BIST-Modus aus 15 gesetzt ist. Zu Beginn eines derartigen Lesevorgangs eines BIST-Modus geht die BIST-Steuerung 502 in den Start-Zustand 532 aus 14 über (Schritt 682 in 18). Während des Startzustands zählt der Zeitgeber 526 eine vorbestimmte Wartezeitdauer, bevor der aktuelle BIST-Modus begonnen wird, um die Einstellkondensatoren innerhalb der Spannungsquellen 504 zurückzusetzen, die die an die Wortleitungen der Flashspeicherzellen angelegte Spannung bereitstellen (Schritt 684 in 18). Vor dem Ablaufen der Wartezeitdauer (Warten = wahr) verbleibt die hintere BIST-Zustandsmaschine 316 im Startzustand.
  • Nach dem Ablauf der Wartezeitdauer (Warten = falsch) während des Startzustands geht die hintere BIST-Zustandsmaschine 316 in den VERIFY1-Zustand 538 aus 14 über (Schritt 686 aus 18). Während des VERIFY1-Zustands zählt der Zeitgeber 526 eine vorbestimmte Wartezeitdauer, bevor Spannungen von den mehreren Spannungsquellen 504 an eine Adresse aus Flashspeicherzellen für den VERIFY2-Zustand angelegt werden, so dass die Spannungspegel von den mehreren Spannungsquellen 504 vor dem VERIFY2-Zustand stabilisiert werden (Schritt 688 in 18). Vor dem Ablauf der Wartezeitdauer (Warten = wahr) während des VERIFY1-Zustands verbleibt die hintere BIST-Zustandsmaschine 316 in dem VERIFY1-Zustand.
  • Nach dem Ablauf der Wartezeitdauer (Warten = falsch) während des VERIFY1-Zustands geht die hintere BIST-Zustandsmaschine 316 in den VERIFY2-Zustand 540 aus 14 über (Schritt 690 aus 18). Während des VERIFY2-Zustands steuert die BIST-Steuerung 502 die Lese/Verifizier-Spannungsquelle 512 an, um Lesespannungen an jede einer vorbestimmten Anzahl (d. h. für das Beispiel aus den 16 und 17, wie es zuvor beschrieben ist, 16) an Flashspeicherzellen mit einer aktuellen Adresse des Arrays aus Flashspeicherzellen 304 anzulegen. Die Lesespannungen, die an die Flashspeicherzellen zum Bestimmen des programmierten oder gelöschten Zustands der Flashspeicherzellen angelegt werden, sind dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt.
  • Ein gemessenes Bitmuster zu jeder aktuellen Adresse an Flashspeicherzellen wird von der Komparatorschaltung 516 unter Anwendung der Referenzschaltung 514 erzeugt. Das gemessene Bitmuster ist aus der Reihe aus entsprechenden Bits (die in einem logischen hohen Zustand „1" oder einem logisch tiefen Zustand „0" sein können) aufgebaut, die aus jeder der vorbestimmten Anzahl an Flashspeicherzellen ausgelesen wird, nachdem Lesespannungen an die Flashspeicherzellen mit der aktuellen Adresse angelegt sind.
  • Des weiteren wird ein gewünschtes Bitmuster entsprechend der aktuellen Adresse an Flashspeicherzellen von dem Bitmustergenerator 518 erzeugt. Das gewünschte Bitmuster ist aus einer Reihe aus Bits mit einem entsprechenden Bit (das einen logisch hohen Zustand „1" oder einen logisch tiefen Zustand „0" besitzen kann) aufgebaut, das für jede der vorbestimmten Anzahl an Flashspeicherzellen der aktuellen Adresse gewünscht ist. Wenn beispielsweise der letzte BIST-Modus zum Programmieren eines logisch tiefen Zustands „0" in jeder Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304 vorgesehen ist, ist das gewünschte Bitmuster eine Reihe aus 16 „Nullen" für eine Adresse aus 16 Flashspeicherzellen. Wenn alternativ der letzte BIST-Modus zum Löschen eines logisch hohen Zustands „1" in jeder Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304 vorgesehen ist, so besteht das gewünschte Bitmuster aus eine Reihe von 16 „Einsen" für eine Adresse aus 16 Flashspeicherzellen. Oder wenn der letzte BIST-Modus zum alternativen Programmieren und Löschen eines logisch tiefen oder eines logisch hohen Zustands in das Array aus Kernflashspeicherzellen 304 in einem schachbrettartigen Muster ausgebildet ist, so ist das gewünschte Bitmuster eine Reihe aus 16 abwechselnden Einsen und Nullen für eine Adresse aus 16 Flashspeicherzellen.
  • Die Übereinstimmungsschaltung 520 vergleicht dann das gemessen Bitmuster mit dem gewünschten Bitmuster für die aktuelle Adresse aus Flashspeicherzellen (Schritt 692 aus 18). Wenn das gemessene Bitmuster nicht gleich dem gewünschten Bitmuster ist (MATCH = falsch), geht die BIST-Steuerung 502 in einen Anhänig-Zustand 546 aus 14 über und sendet ein Anhängig-Signal an die BIST-Schnittstelle 312 (Schritt 694 aus 18). Wenn alternativ das gemessene Bitmuster gleich ist dem gewünschten Bitmuster (MATCH = wahr) für die aktuelle Adresse aus Flashspeicherzellen, wird die Spaltenadresse in dem Adressensequenzierer 524 erhöht (Schritt 696 in 18), und der VERIFY2-Zustand mit dem Übereinstimmungsschritt 692 wird für jede nachfolgende Spaltenadresse wiederholt, bis eine maximale Spaltenadresse (Max_CA) erreicht ist (Schritt 698 in 18). Die BIST-Steuerung 502 erhöht dann die Spaltenadresse aus Flashspeicherzellen innerhalb des Adressensequenzierers 524.
  • Dann wird der VERIFY2-Zustand mit dem Übereinstimmungsschritt 692 für alle möglichen Spaltenadressen für jede Wortleitung wiederholt, bis eine maximale Blockadresse (Max_BA, d. h. eine maximale Wortleitungszahl) für einen der horizontalen Sektoren 602, 604, 606, 608, 610, 612, 614 und 616 erreicht ist (Schritt 700 in 18). Zu diesem Zeitpunkt wird die Sektoradresse in dem Adressensequenzierer 524 erhöht (Schritt 702 in 18) um den BIST-Modus an jedem der horizontalen Sektoren 602, 604, 606, 608, 610, 612, 614 und 616 auszuführen, bis die maximale Sektoradresse (Max_SA) erreicht ist (Schritt 704 in 18). Durch das Ausführen derartiger verknüpfter Schleifen an Entscheidungsschritten 698, 700 und 704 und mittels des Adressensequenzierers 524 wird der aktuelle BIST-Modus aus 18 für alle Adressen des gesamten Arrays aus Kernflashspeicherzel len 304 ausgeführt, solange das Anhänig-Signal nicht erzeugt wird (MATCH = wahr und LAST_ADD = falsch in 14).
  • Sobald ein Anhänig-Signal erzeugt wird, um in den Anhängig-Zustand für eine beliebige Adresse für Flashspeicheradressen überzugehen (Schritt 694 in 18), endet der aktuelle BIST-Modus aus 18, ohne dass der aktuelle BIST-Modus aus 18 für eine nachfolgende Adresse aus Flashspeicherzellen durchgeführt wird. In diesem Falle verläuft für das Array aus Kernflashspeicherzellen 304, das aktuell mit dem BIST-Modus aus 18 geprüft wird, dieser aktuelle BIST-Modus negativ. Wenn andererseits der aktuelle BIST-Modus aus 18 für jede Adresse des gesamten Arrays aus Kernflashspeicherzellen 304 mit den verknüpften Schleifen aus Entscheidungsschritten 698, 700 und 704 ohne Erzeugen eines Anhängig-Signals (MATCH = wahr und LAST ADD = wahr in 14) ausgeführt wird, geht die BIST-Steuerung 502 in einen DONE-Zustand 554 aus 14 über und sendet ein DONE-Signal zu der BIST-Schnittstelle 312 (Schritt 706 aus 18), und der aktuelle BIST-Modus aus 18 endet. In diesem Falle führt für das Array aus Kernflashspeicherzellen 304, das aktuell mit dem BIST-Modus aus 18 getestet wird, der aktuelle BIST-Modus zu einem positiven Resultat.
  • 19 zeigt ein Flussdiagramm eines BIST-Modus zum Anlegen von Belastungsspannungen an jeder Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304. Ein BIST-Modus prüft die Funktionalität des Arrays aus Kernflashspeicherzellen 304, nachdem APD und HTRB-Belastungsspannungen an jede Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304 angelegt sind. Gemäß den 16 und 17 werden für HTRB-Belastungsspannungen alle Wortleitungen des gesamten Arrays aus Kernflashspeicherzellen 304 durch Anlegen einer relativen hohen Spannung, etwa ungefähr 9 Volt der HTRB-Belastungsspannungsquelle 508 belastet, während die Bitleitungen in dem Array aus Kernflashspeicherzellen auf Masse liegen.
  • Gemäß den 16 und 17 werden für die APD-Belastungsspannungen alle Bitleitungen eines der horizontalen Sektoren 602, 604, 606, 608, 610, 612, 614 und 616 mit dem Anlegen eines relativ hohen Spannungspegels, etwa beispielsweise ungefähr 5 Volt, belastet, während die Wortleitungen derartiger Flashspeicherzellen auf Masse liegen. Auf Grund des Stromflusses durch die Bitleitungen werden die APD-Belastungsspannungen jeweils an einen horizontalen Sektor angelegt. Ein derartiger BIST-Modus zum Anlegen der HTRB- und APD-Belastungsspannungen sind dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt.
  • Gemäß den 13, 14 und 19 empfängt die BIST-Steuerung 502 die entsprechende Kennung eines derartigen aktuellen BIST-Modus, der aktuell zum Ausführen von HTRB- und APD-Belastungsspannungen an jede Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304 auszuführen ist. Zu diesem Zeitpunkt wird die EXIT_HTRB-Variable auf einen logisch tiefen Zustand „0" gesetzt, und die Variablen Pulszahl und Sektor_ADRESS werden auf Null zurückgesetzt. Zu Beginn eines derartigen BIST-Modus geht die BIST-Steuerung 502 in den Startzustand 532 aus 14 über (Schritt 712 aus 19). Während des Startzustands zählt der Zeitgeber 526 eine vorbestimmte Wartezeitperiode, bevor der aktuelle BIST-Modus gestartet wird, so dass die Spannungspegel von den mehreren Spannungsquellen 506, 508, 510 und 512 und insbesondere die APD-Belastungsspannungsquelle 506 und die HTRB-Belastungsspannungsquelle 508 während der Wartezeitdauer stabilisiert werden (Schritt 714 in 19). Vor dem Ablauf der Wartezeitdauer (Warten = wahr) bleibt die hintere BIST-Zustandsmaschine 316 in dem Startzustand.
  • Nach dem Ablauf der Wartezeitdauer (Warten = falsch) während des Startzustands wird, wenn die EXIT_HTRB-Variable nicht auf einen logisch hohen Zustand „1" gesetzt ist (Schritt 716 in 19), in den HTRB-Zustand 536 in 14 übergegangen (Schritt 718 in 19). Während des HTRB-Zustands werden alle Wortleitungen des gesamten Arrays aus Kernflashspeicherzellen 304 durch Anlegen eines relativ hohen Spannungspegels, etwa ungefähr 9 Volt von beispielsweise der HTRB-Belastungsspannungsquelle 508 betastet, während die Bitleitungen in dem Array aus Kernflashspeicherzellen auf Masse liegen. Der Zeitgeber 526 zählt eine Zusatzzeitdauer TIMEOUT zum Anlegen einer derartigen HTRB-Belastungsspannung an die Kernflashspeicherzellen 304 während des HTRB-Zustandes (Schritt 729 in 19). Nach dem Ablauf der zusätzlichen Zeitdauer (JTIMEOUT – falsch) verbleibt die hintere BIST-Zustandsmaschine 316 in dem HTRB-Zustand, um die HTRB-Belastungsspannung an die Kernflashspeicherzellen 304 während der zusätzlichen Zeitdauer JTIMEOUT anzulegen.
  • Nach dem Ablauf der zusätzlichen Zeitdauer (JTIMEOUT = wahr) während des HTRB- Zustands prüft die hintere BIST-Zustandsmaschine 316, ob die Pulszahl größer als Max_PC (maximale Pulszahl) ist (Schritt 722 in 19). Wenn die Pulszahl nicht größer als Max_PC ist, dann wird wiederum der HTRB-Zustand für die JTIMEOUT-Zeitdauer eingenommen und die Pulszahl, d. h. PULSE_COUNT wird erhöht. Die Schleife aus den Schritten 712, 714, 716, 718, 720 und 722 wird wiederholt, bis die Pulszahl größer als Max_PC ist. In diesem Falle wird die Pulszahl auf Null zurückgesetzt (Schritt 714 aus 19), und die Variable EXIT_HTRB wird auf einen logisch hohen Zustand „1" gesetzt (Schritt 726 in 19).
  • Zu diesem Zeitpunkt geht die BIST-Steuerung 502 in den Startzustand zurück (Schritt 712 in 19). Da die EXIT_HTRB-Variable auf einen logisch hohen Zustand „1" gesetzt ist, wird in den APD-Zustand 534 in 14 übergegangen (Schritt 728 in 19). In dem APD-Zustand werden gemäß 16 alle Bitleitungen eines der horizontalen Sektoren 602, 604, 606, 608, 610, 612, 614 und 616 durch Anlegen eines relativ hohen Spannungspegels, etwa 5 Volt beispielsweise, belastet, während die Wortleitungen derartiger Flashspeicherzellen auf Masse liegen. Auf Grund des Stromflusses durch die Bitleitungen werden die APD-Belastungsspannungen jeweils an einen horizontalen Sektor pro Zeiteinheit angelegt.
  • Für eine aktuelle SEKTOR ADRESSE bzw. Sektoradresse legt die APD-Belastungsspannungsquelle 506 die APD-Belastungsspannung an jede Flashspeicherzelle in einem der horizontalen Sektoren 602, 604, 606, 608, 610, 612, 614 und 616 an, der die aktuelle SEKTOR ADRESSE für eine Zusatzzeitdauer JTIMEOUT besitzt. Der Zeitgeber 526 zählt eine Zusatzzeitdauer JTIMEOUT zum Anlegen einer derartigen APD-Belastungsspannung während des APD-Zustands (Schritt 730 in 19). Vor dem Ablauf der Zusatzzeitdauer (JTIMEOUT = falsch) bleibt die hintere BIST-Zustandsmaschine 316 in dem APD-Zustand, um die APD-Belastungsspannung an die aktuelle SEKTOR ADRESSE der Kernflashspeicherzellen 304 während der Zusatzzeitdauer JTIMEOUT anzulegen.
  • Nach dem Ablauf der Zusatzzeitdauer JTIMEOUT in dem APD-Zustand wird die SEKTOR ADRESSE innerhalb des Adressensequenzierers 524 erhöht (Schritt 732 in 19), und die BIST-Steuerung 502 prüft, ob die SEKTOR_ADRESSE größer als Max_SA ist (Schritt 734 in 19). Wenn die SEKTOR ADRESSE größer ist als Max_SA, dann werden die Schritte 712, 714, 728, 730 und 732 wiederholt, bis die SEKTOR ADRESSE größer als Max_SA ist. Zu diesem Zeitpunkt wurde die APD-Belastungsspannung an jede Flashspeicherzelle aller horizontalen Sektoren 602, 604, 606, 608, 610, 612,614 und 616 angelegt, und der DONE- bzw. Fertigzustand 544 aus 14 wird eingenommen (Schritt 736 aus 19), um den BIST-Modus aus 19 zu beenden.
  • Auf diese Weise wird ein BIST-Modus des Satzes aus BIST-Modi ausgeführt, wobei die hintere BIST-Zustandsmaschine eine relativ kleine Anzahl an Zuständen aufweist, die den Start-, JUICE-, VERIFY1-, VERIFY2-, APD-, HTRB-, DONE- und HANG-Zustand umfasst. Die hintere BIST-Zustandsmaschine wird auf dem Chip mit dem Array aus Kernflashspeicherzellen hergestellt, so dass die Programmier-, Lösch- und Lesevorgänge chipintern auf dem Halbleiterchip des Arrays aus Flashspeicherzellen ausgeführt werden. Somit wird die Anzahl an Stiften des externen Testsystems, das zum Prüfen jedes Halbleiterchips verwendet wird, reduziert. Mit einer derartigen reduzierten Anzahl an Stiften kann eine höhere Anzahl an Halbleiterchips gleichzeitig mittels eines externen Testsystems, das eine beschränkte Gesamtanzahl an Stiften besitzt, ausgeführt werden, um damit den Durchsatz während der Fertigung von Flashspeichereinrichtungen zu erhöhen.
  • Das Vorangegangene ist lediglich beispielhaft dargelegt und soll nicht beschränkend sein. Beispielsweise kann die vorliegende Erfindung für eine größere Anzahl an BIST-Modi und mit einer anderen Anordnung des Arrays aus Kernflashspeicherzellen 304 im Vergleich zu dem Beispiel aus 16 und 17 ausgeführt werden. Hierin beschriebene und dargestellte Zahlen sind lediglich beispielhafter Natur. Die vorliegende Erfindung ist nur durch in der durch die folgenden Patentansprüche und deren Äquivalenten definierten Weise beschränkt.
  • D. Chipinterne Reparatur von defekten Adressen von Kernflashspeicherzellen
  • Ferner wird unter Bezugnahme zu 20 während des Testens des Arrays aus Kernflashspeicherzellen 224 im Stand der Technik, wenn eine fehlerhafte Adresse 750 des Arrays aus Kernflashspeicherzellen 234 erkannt wird, eine derartige defekte Adresse 750 repariert, indem der Satz aus Kernflashspeicherzellen, der die defekte Adresse 750 enthält, durch ein entsprechendes redundantes Element aus Flashspeicherzellen 752 ersetzt wird. Eine derartige Reparatur wird ausgeführt, indem ein entsprechender Satz aus CAM-Flashspeicherzellen 754 in einem CAM (inhaltsadressierbaren Speicher) 756 programmiert wird, der den Zugriff auf die fehlerhafte Adresse der Flashspeicherzellen 750 zu dem redundanten Element aus Flashspeicherzellen 752 stattdessen umlenkt. Der CAM (inhaltsad ressierbarer Speicher) 756 wird auf demselben Halbleiterchip hergestellt, der das Array aus Kernflashspeicherzellen 224 darauf hergestellt aufweist.
  • Typischerweise wird ein größeres Gebiet 758 mit einer größeren Anzahl an Flashspeicherzellen des Arrays aus Kernflashspeicherzellen 224 im Vergleich zu nur der fehlerhaften Adresse 750 aus Flashspeicherzellen durch das entsprechende redundante Element aus Flashspeicherzellen 752 ersetzt. Es sind mehrere redundante Elemente 760 verfügbar, um mehrere defekte Adressen des Arrays aus Kernflashspeicherzellen 224 zu reparieren. Eine derartige Reparatur fehlerhafter Adressen aus Flashspeicherzellen während des Testens des Arrays aus Kernflashspeicherzellen 224 unter Anwendung von Redundanzelementen aus Flashspeicherzellen 760 ist dem Fachmann auf dem Gebiet der Flashspeicherherstellung bekannt.
  • Im Stand der Technik führt ein externes Testsystem 762 eine derartige Reparatur fehlerhafter Adressen aus Flashspeicherzellen während des Prüfens des Arrays aus Kernflashspeicherzellen 224 unter Anwendung redundanter Elemente aus Flashspeicherzellen 760 durch. Somit programmiert konventioneller Weise das externe Testsystem 762 den CAM (inhaltsadressierbaren Speicher) 756 um Umlenken des Zugriffs auf die fehlerhafte Adresse der Flashspeicherzellen 750 zu dem redundanten Element der Flashspeicherzellen 752. Ein Beispiel eines derartigen externen Testsystems ist das Modell V3300, das von Agilent Technologies mit Sitz in Palo Alto, Kalefornien, verfügbar ist. Wenn das externe Testsystem 762 jedoch eine derartige Reparatur fehlerhafter Adressen aus Flash-Speicherzellen durchführt, werden zusätzliche Stifte des externen Testsystems 762 zum Programmieren des CAM (inhaltsadressierbaren Speichers) 756 verwendet, der auf dem selben Halbleiterchip hergestellt ist, der auch das Array aus Kernflashspeicherzellen 224 darauf ausgebildet aufweist.
  • Eine derartige Verwendung zusätzlicher Stifte des externen Testsystems 762 zum Ausführen eines derartigen Reparaturvorgangs fehlerhafter Adressen von Flashspeicherzellen ist nachteilig im Hinblick auf eine Abnahme des Durchsatzes während des Testens der Halbleiterchips aus Kernflashspeicherzellen. Somit ist ein Mechanismus wünschenswert, um die Anzahl an Stiften zu minimieren, die zum Testen des Flashspeicherbauelements auf jedem Halbleiterchip einschließlich der Reparatur der fehlerhaften Adressen aus Flashspeicherzellen verwendet wird, so dass eine maximale Anzahl an Halbleiterchips gleichzeitig mit einem externen Testsystem geprüft werden kann, das eine begrenzte Gesamtanzahl an Stiften aufweist, um damit den Durchsatz während der Herstellung von Flashspeicherbauelementen zu erhöhen.
  • Ferner kann das Prüfen und Reparieren der Kernflashspeicherzellen mittels des externen Testsystems 762 abhängig von der Kapazität des externen Testssystems 762 langsam sein. Somit ist ein effizienter Mechanismus wünschenswert, um die Kernflashspeicherzellen schneller zu prüfen und zu reparieren.
  • Wenn die hintere BIST- (eingebaute Selbsttest-) Zustandsmaschine 316 erkennt, dass eine aktuelle Adresse aus Flashspeicherzellen negativ auf einen aktuellen BIST- (eingebauten Selbsttest-) Modus reagiert und als eine fehlerhafte Adresse aus Flashspeicherzellen erkennt, ruft die hintere BIST- (eingebaute Selbsttest-) Zustandsmaschine 316 eine Reparaturroutine auf. Die Schritte des Flussdiagramms aus 21, das die gleichen Bezugszeichen wie die Schritte des Flussdiagramms aus 15 aufweist, sind die gleichen, wie sie hierin für das Flussdiagramm aus 15 beschrieben sind.
  • Die Schritte der 15 und 21 dienen zum Ausführen eines BIST- (eingebauten Selbsttest) Modus, der das Anlegen von Programmier- oder Löschspannungen an jede Flashspeicherzelle des Arrays aus Kernflashspeicherellen 304 beinhaltet, wobei der programmierte oder gelöschte Zustand jeder Flashspeicherzelle des Arrays aus Kernflashspeicherzellen 304 verifiziert wird. Im Gegensatz zu 15 wird jedoch in 21, wenn der JUICE-Zustand (Schritte 566 und 568 in 21) Max_PC mal eingenommen wurde, wobei die Pulszahl bzw. PULSE_COUNT größer als Max_PC (im Schritt 564 aus 21), der Anhänig- bzw. HANG-Zustand nicht notwendigerweise sofort eingenommen wird. Wenn der JUICE-Zustand (Schritte 566 und 568 in 21) Max_PC mal eingenommen wurde, wobei die Pulszahl größer als Max_PC ist (im Schritt 564 aus 21), wird die aktuelle Adresse der Flashspeicherzellen als eine defekte Adresse aus Flashspeicherzellen bestimmt.
  • Die BIST-Steuerung 502 prüft einen BREP-Wert, der durch das externe Testsystem 318 gesetzt ist (Schritt 766 aus 21). Ein Anwender setzt den BREP-Wert über das externe Testsystem 318 auf einen logisch hohen Zustand (d. h. einen wahren Zustand), wenn der Anwender wünscht, dass die chipinterne Reparaturroutine von der BIST-Steuerung 502 aufgerufen wird, und setzt diesen auf einen logisch tiefen Zustand (d. h. einen Falschzu stand) in anderen Fällen. Wenn somit der BREP-Wert auf den logischen tiefen Zustand (d. h. den Zustand falsch) gesetzt ist, dann werden die Schritte 570 und 572 zum unmittelbaren Übergang in den HANG-Zustand in 21 ähnlich wie in 15 ausgeführt, so dass die Reparaturroutine nicht aufgerufen wird.
  • Wenn andererseits der BREP-Wert auf den logisch hohen Zustand, d. h. auf dem Zustand wahr in 21, gesetzt ist, bestimmt die BIST-Steuerung 502 den logischen Zustand eines REDADD-Wertes (Schritt 768 aus 21). Gemäß 22 zeigt der REDADD-Wert an, ob die aktuelle fehlerhafte Adresse aus Flashspeicherzellen innerhalb der Redundanzelemente aus Flashspeicherzellen liegt. Gemäß 22 ist das Array aus Flashspeicherzellen 304, das gerade getestet wird, aus Kernflashspeicherzellen 780 und Redundanzelementen aus Flashspeicherzellen 782 aufgebaut. Typischerweise ist ein Array aus Flashspeicherzellen mit Redundanzelementen aus Flashspeicherzellen zur Reparatur fehlerhafter Flashspeicherzellen innerhalb der Kernflashspeicherzellen 780 aufgebaut, wie dies dem Fachmann auf dem Gebiet der Flashspeicherherstellung bekannt ist.
  • Während des Prüfens des Arrays aus Kernflashspeicherzellen 304 durchläuft der Adresssensequenzierer 524 die Adressen der redundanten Elemente aus Flashspeicherzellen 782 sowie die Adressen der Kernflashspeicherzellen 780, um auch die korrekte Funktion der Redundanzelemente aus Flashspeicherzellen 782 zu prüfen. Die BIST-Steuerung 502 bestimmt die REDADD-Variable als in einem logisch hohen Zustand befindlich (d. h. in dem Zustand wahr), wenn die aktuelle Adresse aus Flashspeicherzellen Redundanzelemente aus Flashspeicherzellen 782 betrifft und bestimmt diese in einem logisch tiefen Zustand (d. h. den Zustand falsch) befindlich, wenn die aktuelle Adresse aus Flashspeicherzellen die Kernflashspeicherzellen 780 betrifft.
  • Wenn gemäß 21 die REDADD-Variable in einem logisch hohen Zustand erkannt wird, d. h. dem Zustand wahr, dann werden die Schritte 570 und 572 zum unmittelbaren Übergang in den HANG-Zustand ausgeführt, da die aktuelle defekte Adresse aus Flashspeicherzellen 750 innerhalb der redundanten Elemente aus Flashspeicherzellen 782 liegt. Fehlerhafte Adressen der Kernflashspeicherzellen 780 sollen wünschenswerter Weise repariert werden, indem diese durch ein redundantes Element aus Flashspeicherzellen ersetzt werden, wobei jedoch fehlerhafte Adressen der redundanten Elemente aus Flashspei cherzellen nicht in einer derartigen Weise gemäß einer Ausführungsform der vorliegenden Erfindung repariert werden.
  • Wenn gemäß 21 der BREP-Wert auf einen logisch hohen Zustand gesetzt wird (Schritt 766 aus 21) und wenn der REDADD-Wert als in einem logisch tiefen Zustand erkannt wird (Zustand 768 aus 21), dann wird die Reparaturroutine aufgerufen (Schritt 770 aus 21). Während der Reparaturroutine kann die aktuelle fehlerhafte Adresse aus Flashspeicherzellen repariert werden, indem diese durch ein redundantes Element aus Flashspeicherzellen ersetzt wird.
  • In ähnlicher Weise sind unter Bezugnahme auf die 18 und 23 die Schritte des Flussdiagramms der 23, die die gleichen Bezugszeichen wie die Schritte des Flussdiagramms aus 18 aufweisen, die gleichen, wie sie hierin für das Flussdiagramm aus 18 beschrieben sind. Die Schritte der 18 und 23 dienen zum Ausführen eines BIST-(eingebauten Selbsttest) Modus, der das Lesen eines entsprechenden logischen Zustands jeder Flashspeicherzelle des Arrays aus Flashspeicherzellen 304 beinhaltet. Im Gegensatz zu 18 wird in 23, wenn das gemessene Bitmuster und das gewünschte Bitmuster für die aktuelle Adresse aus Flashspeicherzellen nicht gleich sind (Schritte 692 in 23), der HANG-Zustand nicht notwendigerweise sofort eingenommen. Wenn das gemessene Bitmuster und das gewünschte Bitmuster für die aktuelle Adresse aus Flashspeicherzellen nicht gleich sind, wird die aktuelle Adresse aus Flashspeicherzellen als eine fehlerhafte Adresse aus Flashspeicherzellen bestimmt.
  • Die BIST-Steuerung 502 prüft den BREP-Wert, der durch das externe Testsystem 318 festgelegt ist (Schritt 772 aus 23). Ein Anwender setzt den BREP-Wert über das externe Testsystem 318 auf einen logisch hohen Zustand (d. h. einen Zustand wahr), wenn der Anwender eine chipinterne Reparaturroutine durch die BIST-Steuerung 502 aufrufen will, und er setzt diesen im anderen Falle auf einen logisch tiefen Zustand (d. h. einen Zustand falsch). Wenn daher der BREP-Wert auf dem logisch tiefen Zustand (d. h. den Zustand falsch) gesetzt ist, dann wird Schritt 694 zum unmittelbaren Übergang in den HANG-Zustand in 23 ähnlich wie in 18 ausgeführt, so dass die Reparaturroutine nicht aufgerufen wird.
  • Wenn andererseits der BREP-Wert auf den logisch hohen Zustand (d. h. den Zustand wahr) in 23 gesetzt ist, bestimmt die BIST-Steuerung 502 den logischen Zustand des REDADD-Wertes (Schritt 774 aus 23). Gemäß 22 zeigt der REDADD-Wert an, ob die aktuelle fehlerhafte Adresse aus Flashspeicherzellen innerhalb der redundanten Elemente aus Flashspeicherzellen liegt. Wenn gemäß 23 der REDADD-Wert als in einen logisch hohen Zustand befindlich erkannt wird (d. h. dem Zustand wahr), dann wird Schritt 694 zum unmittelbaren Übergehen in den HANG-Zustand ausgeführt, da die aktuelle fehlerhafte Adresse aus Flashspeicherzellen 750 innerhalb der redundanten Elemente aus Flashspeicherzellen 782 liegt. Wenn der BREP-Wert auf einen logisch hohen Zustand gesetzt ist (Schritt 772 aus 23) und wenn der REDADD-Wert als in einem logisch tiefen Zustand befindlich erkannt wird (Zustand 774 aus 23), dann wird die Reparaturroutine aufgerufen (Schritt 776 aus 23). Während der Reparaturroutine wird die aktuelle fehlerhafte Adresse aus Flashspeicherzellen durch Ersetzen mittels eines redundanten Elements aus Flashspeicherzellen repariert.
  • Gemäß 24 werden für jeden Fall der 21 oder 23 für die Reparaturroutine die Kernflashspeicherzellen in Blöcke (etwa 4 Megabit-Blöcke beispielsweise) eingeteilt, mit einem ersten Block 783, einem zweiten Block 784, einem dritten Block 786 und einen vierten Block 788, um ein Beispiel zu nennen. Jeder der Blöcke 783, 784, 786 und 788 wird weiter in mehrere horizontale Sektoren aus Flashspeicherzellen unterteilt (in 24 der Einfachheit halber nicht gezeigt). Beispielsweise enthält jeder der Blöcke 783, 784, 786 und 788 acht horizontale Sektoren aus Flashspeicherzellen gemäß einer Ausführungsform der vorliegenden Erfindung. Eine typische Flashspeichereinrichtung weist mehrere Blöcke auf, wobei jedoch vier Blöcke 783, 784, 786 und 788 in 24 der Einfachheit halber dargestellt sind.
  • Die aktuelle defekte Adresse aus Flashspeicherzellen ist in einem der Blöcke 783, 784, 786 und 788, etwa dem dritten Block 786 in 24 enthalten. Ein größeres Gebiet 758 mit einer größeren Anzahl an Flashspeicherzellen innerhalb des dritten Blocks 786 als lediglich die fehlerhafte Adresse aus Flashspeicherzellen 750 wird mit einem redundanten Element aus Flashspeicherzellen zur Reparatur der fehlerhaften Adresse aus Flashspeicherzellen 750 ersetzt, wie dies dem Fachmann auf dem Gebiet der Flashspeicherherstellung bekannt ist. Beispielsweise werden gesamte Spalten aus Flashspeicherzellen mit einer Flashspeicher zelle der fehlerhaften Adresse innerhalb eines der Blöcke 783, 784, 786 und 788 durch ein redundantes Element aus Flashspeicherzellen ersetzt.
  • Gemäß 25 ist ein CAM (inhaltsadressierbarer Speicher) 790 programmiert, um ein Gebiet aus Flashspeicherzellen, das die fehlerhafte Adresse aus Flashspeicherzellen innerhalb der Kernflashspeicherzellen 780 aufweist, durch ein redundantes Element aus Flashspeicherzellen in dem redundanten Elementen der Flashspeicherzellen 782 zu ersetzen. Der CAM (inhaltsadressierbarer Speicher) 790 ist aus Flashspeicherzellen aufgebaut, die mit Information der fehlerhaften Adresse aus Flashspeicherzellen und dem entsprechenden redundanten Element aus Flashspeicherzellen zum Ersetzen der fehlerhaften Adresse aus Flashspeicherzellen programmiert sind. Wenn die fehlerhafte Adresse aus Flashspeicherzellen später adressiert wird, lenkt der CAM (inhaltsadressierbarer Speicher) 790 den Zugriff auf die fehlerhafte Adresse aus Flashspeicherzellen auf das redundante Element aus Flashspeicherzellen um. Eine derartige Verwendung eines CAM (inhaltsadressierbaren Speichers) und redundanter Elemente aus Flashspeicherzellen zum Reparieren einer defekten Adresse von Kernflashspeicherzellen ist dem Fachmann auf dem Gebiet der Flashspeicherherstellung bekannt.
  • Gemäß 25 wird in einer Ausführungsform der vorliegenden Erfindung ein entsprechender Satz aus CAM-Flashspeicherzellen zum Ersetzen jeder fehlerhaften Adresse aus Flashspeicherzellen innerhalb der Kernflashspeicherzellen 780 durch ein entsprechendes redundantes Element aus Flashspeicherzellen innerhalb der redundanten Elemente aus Flashspeicherzellen 782 programmiert. Eine begrenzte Anzahl redundanter Elemente aus Flashspeicherzellen ist für die Reparatur einer begrenzten Anzahl fehlerhafter Adressen an Flashspeicherzellen verfügbar. In einer Ausführungsform der vorliegenden Erfindung sind zwei redundante Elemente aus Flashspeicherzellen zur Reparatur fehlerhafter Adressen aus Flashspeicherzellen innerhalb jedes Blockes 783, 784, 786 und 788 verfügbar.
  • In dem Beispiel auf 25 sind zwei redundante Elemente zur Reparatur von Flashspeicherzellen innerhalb jedes Blockes 783, 784, 786 und 788 verfügbar. Ein erster entsprechender Satz aus CAM-Flashspeicherzellen 792 ist programmiert, um einen Satz aus fehlerhaften Flashspeicherzellen innerhalb des ersten Blocks 783 aus Kernflashspeicherzellen 780 durch ein erstes redundantes Element aus Flashspeicherzellen 794 zu ersetzen.
  • Ein zweiter entsprechender Satz aus CAM-Flashspeicherzellen 796 ist programmiert, um einen weiteren Satz fehlerhafter Flashspeicherzellen in dem ersten Block 783 aus Kernflashspeicherzellen 780 durch ein zweites redundantes Element aus Flashspeicherzellen 798 zu ersetzen.
  • In ähnlicher Weise ist ein dritter entsprechender Satz aus CAM-Flashspeicherzellen 800 programmiert, um einen Satz aus fehlerhaften Flashspeicherzellen in dem zweiten Block 784 aus Kernflashspeicherzellen 780 durch ein drittes redundantes Element aus Flashspeicherzellen 802 zu ersetzen. Ein vierter entsprechender Satz aus CAM-Flashspeicherzellen 804 ist programmiert, um einen weiteren Satz fehlerhafter Flashspeicherzellen innerhalb des zweiten Blocks 784 aus Kernflashspeicherzellen 780 durch ein viertes redundantes Element aus Flashspeicherzellen 806 zu ersetzen.
  • Ebenso ist ein fünfter entsprechender Satz aus CAM-Flashspeicherzellen 808 programmiert, um einen Satz fehlerhafter Flashspeicherzellen in dem dritten Block 786 aus Kernflashspeicherzellen 780 durch ein fünftes redundantes Element aus Flashspeicherzellen 810 zu ersetzen. Ein sechster entsprechender Satz aus CAM-Flashspeicherzellen 812 ist programmiert, um einen weiteren Satz fehlerhafter Flashspeicherzellen innerhalb des dritten Blocks 786 aus Kernflashspeicherzellen 780 durch ein sechstes redundantes Element aus Flashspeicherzellen 814 zu ersetzen.
  • Schließlich ist ein siebenter entsprechender Satz aus CAM-Flashspeicherzellen 816 programmiert, um einen Satz fehlerhafter Flashspeicherzellen innerhalb des vierten Blocks 788 aus Kernflashspeicherzellen 780 durch ein siebentes redundantes Element aus Flashspeicherzellen 818 zu ersetzen. Ein achter entsprechender Satz aus CAM-Flashspeicherzellen 820 ist programmiert, um einen weiteren Satz fehlerhafter Flashspeicherzellen in dem vierten Block 788 aus Kernflashspeicherzellen 780 durch ein achtes redundantes Element aus Flashspeicherzellen 822 zu ersetzen.
  • 26 zeigt chipinterne Reparaturkomponenten 830, die während der Reparaturroutine 770 aus 21 oder 776 aus 23 für eine chipinterne Reparatur der fehlerhaften Adresse aus Flashspeicherzellen in den Kernflashspeicherzellen 780 durch Ersetzen fehlerhafter Elemente 782 verwendet wird, indem gemäß einer Ausführungsform der vorliegenden Erfindung der CAM (inhaltsadressierbarer Speicher) 790 programmiert wird. Derartige chipin terne Reparaturkomponenten 830 beinhalten eine Reparatursteuerung 832, einen Zeitgeber/Taktgeber 834 und Spannungsquellen 836. Die Spannungsquellen 836 beinhalten eine CAM- (inhaltsadressierbare Speicher) Programmierspannungsquelle 838 und eine CAM-(inhaltsadressierbare Speicher) Grenzspannungsquelle 840. Ferner beinhalten derartige chipinterne Reparaturkomponenten einen Redundanzelementreihenfolge-Zwischenspeicher bzw. Signalspeicher 842, eine Reparaturübereinstimmungseinheit 846 und eine FAILREP-Logik 848. In einem allgemeinen Aspekt der vorliegenden Erfindung werden die chipinternen Reparaturkomponenten 832, 834, 838, 840, 842, 846 und 848 auf dem Halbleiterchip hergestellt, der die Kernflashspeicherzellen 780, die Redundanzelemente 782 und den CAM- (inhaltsadressierbaren Speicher) 790 aufweist.
  • 27 zeigt ein Flussdiagramm aus Schritten während des Betriebs der chipinternen Reparaturkomponenten 830 aus 26 zum Ausführen der Reparaturroutine 770 aus 21 oder 776 aus 23. In einer Ausführungsform der vorliegenden Erfindung ist die Reparatursteuerung 832 aus 26 als die hintere BIST-Steuerung 502 aus 13 eingerichtet. Wenn die Reparatursteuerung 832 erkennt, dass die Reparaturroutine (etwa Schritt 770 aus 21 oder 776 aus 23 beispielsweise) aufgerufen wird, setzt die Reparatursteuerung 832 eine BREPAIR-Variable auf einen logisch hohen Zustand ausgehend von dem logisch tiefen Zustand (Schritt 850 aus 27), um anzuzeigen, dass die Reparaturroutine aufgerufen wird.
  • Wenn die Reparaturroutine aufgerufen ist, geht die Reparatursteuerung 832 in den Startzustand über (Schritt 852 in 27). Während des Startzustandes zählt der Zeitgeber 834 eine vorbestimmte Wartezeitdauer ab, um die Einstellkondensatoren in den Spannungsquellen 836 zurückzusetzen, die die an die Wortleitungen der CAM-Flashspeicherzellen anzulegende Spannung liefern. Das Zurücksetzen der Einstellkondensatoren in den Spannungsquellen 836, die die an die Wortleitungen der CAM-Flashspeicherzellen anzulegenden Spannung liefern, ist dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt. Vor dem Ablauf der Wartezeitdauer (Warten = wahr) bleibt die Reparatursteuerung 832 in dem Startzustand (Schritt 854 aus 27). Zeitgeber zum zeitlichen Steuern einer vorbestimmten Zeitdauer sind dem Fachmann bekannt.
  • Ferner werden während des Startzustandes gemäß 29 Variablen YCE (0) und YCE (1) durch eine CAM- (inhaltsadressierbare Speicher) Logik 884 erzeugt, die zusammen mit dem CAM- (inhaltsadressierbaren Speicher) 790 hergestellt ist. Die CAM-Flashspeicherzellen 886 in 29 repräsentieren einen der entsprechenden Sätze aus CAM-Flashspeicherzellen 792, 796, 800, 804, 808, 812, 816 oder 8120 beispielsweise in 25, der zum Ersetzen einer fehlerhaften Adresse aus Kernflashspeicherzellen durch ein redundantes Element aus Flashspeicherzellen programmiert ist. Die CAM-Logik 884 erhält die fehlerhafte Adresse von dem Adressensequenzierer 524 und dem Ausgang der CAM-Flashspeicherzellen 886, nachdem derartige CAM-Flashpeicherzellen 886 programmiert sind, und erzeugt Variablen YCE (0), YCE (1), LBMATCH_Q, REDL (0), REDH (0), REDL (1) und REDH (1).
  • In einer Ausführungsform der vorliegenden Erfindung ist jede Adresse aus Kernflashspeicherzellen für 16 Kernflashspeicherzellen zuständig, wie dies mit Bezug zu den 16 und 17 beschrieben ist. In einer weiteren Ausführungsform der vorliegenden Erfindung wird jedes Byte aus 8 der 16 Kernflashspeicherzellen zeitweise hintereinander repariert. Jede fehlerhafte Adresse aus 16 Kernflashspeicherzellen ist aus einem niedrigen Byte aus 8 Kernflashspeicherzellen und einem hohen Byte aus 8 Kernflashspeicherzellen aufgebaut. In der Ausführungsform, in der die fehlerhafte Adresse aus 16 Flashspeicherzellen zeitweise hintereinander repariert wird, ersetzt jede der beiden Redundanzelemente aus Flashspeicherzellen ein Byte einer fehlerhaften Adresse aus 16 Flashspeicherzellen innerhalb jedes der Blöcke aus Kernflashspeicherzellen 783, 784, 786 und 788 in dem Beispiel aus 25.
  • Gemäß 29 werden die Variablen LBMATCH_Q, YCE (0), YCE (1), REDL (0), REDH (0), REDL (1) und REDH (1) durch die CAM-Logik 884 erzeugt, um zu verfolgen, welche der beiden redundanten Elemente in welchem der beiden Bytes einer fehlerhaften Adresse aus Kernflashspeicherzellen verwendet wurde. Die CAM-Logik vergleicht die fehlerhafte Adresse, wie sie von dem Adressensequenzierer 524 erzeugt wird, und den Ausgang des entsprechenden Satzes aus CAM-Flashspeicherzellen, die in dem CAM (inhaltsadressierbaren Speicher 886) zum Reparieren der fehlerhaften Adresse der Flashspeicherzellen programmiert sind, und erzeugt einen entsprechenden logischen Zustand für jede der Variablen LBMATCH_Q, YCE (0), YCE (1), REDL (0), REDH (0), REDL (1) und REDH (1) in Abhängigkeit des früheren entsprechenden logischen Zustands für jede derartige Variable.
  • Die LBMATCH_Q-Variable zeigt an, ob eine fehlerhafte Flashspeicherzelle in dem niedrigen Byte oder dem hohen Byte der fehlerhaften Adresse aus Kernflashspeicherzellen vor handen ist. Wenn eine fehlerhafte Flashspeicherzelle in dem niedrigen Byte der fehlerhaften Adresse aus Kernflashspeicherzellen vorhanden ist, dann wird die LBMATCH_Q-Variable auf einen logisch tiefen Zustand, d. h. einen „0"-Zustand dazu versetzt. Wenn andererseits eine fehlerhafte Flashspeicherzelle in dem hohen Byte der fehlerhaften Adresse aus Kernflashspeicherzellen vorhanden ist, dann wird die LBMATCH_Q-Variable auf einen logischen hohen Zustand versetzt (d. h. einen „1"-Zustand).
  • Anfänglich wird jede der Variablen YCE (0), YCE (1), REDL (0), REDH (0), REDL (1) und REDH (1) auf einen logisch tiefen Zustand gesetzt, d. h. einen „0"-Zustand. Ferner sind anfänglich bevor redundante Elemente zum Reparieren fehlerhafter Adressen innerhalb eines der Blöcke aus Kernflashspeicherzellen 783, 784, 786 und 788 verwendet werden, zwei redundante Elemente aus Flashspeicherzellen zur Reparatur eines fehlerhaften Bytes einer fehlerhaften Adresse aus Flashspeicherzellen verfügbar. Wenn ein erstes der beiden redundanten Elemente zur Reparatur eines Bytes einer fehlerhaften Adresse aus Kernflashspeicherzellen verwendet wird, wird die YCE (0)-Variable, die diesem ersten Element der beiden redundanten Elementen entspricht, auf einen logisch hohen Zustand gesetzt (d. h. einen „1"-Zustand) und dieses erste Element der beiden redundanten Elementen ist nicht mehr verfügbar. Wenn dann ein zweites Element der beiden redundanten Elemente zur Reparatur eines Bytes einer fehlerhaften Adresse aus Kernflashspeicherzellen verwendet wird, wird die YCE (1)-Variable, die diesem zweiten Element der beiden redundanten Elementen entspricht, auf einen logisch hohen Zustand gesetzt (d. h. einen „1"-Zustand), und dieses zweite Element der beiden redundanten Elemente ist nun nicht mehr verfügbar, so dass keine weiteren redundanten Elemente zur Reparatur einer fehlerhaften Adresse aus Kernflashspeicherzellen innerhalb des aktuellen Blocks aus Kernflashspeicherzellen 783, 784, 786 und 788 verfügbar sind.
  • Die REDL (0)-Variable wird auf einen logisch hohen Zustand gesetzt (d. h. einen „1"-Zustand), wenn das tiefe Byte der fehlerhaften Adresse aus Kernflashspeicherzellen unter Anwendung des ersten der beiden redundanten Elemente repariert wird. Anderseits wird die REDH (0) Variable auf einen logisch hohen Zustand gesetzt (d. h. einen „1"-Zustand), wenn das höherwertige Byte der fehlerhaften Adresse aus Kernflashspeicherzellen unter Anwendung des ersten Elements der beiden redundanten Elemente repariert wird. Es wird lediglich das tieferwertige oder höherwertige Byte der fehlerhaften Adresse aus Kernflash speicherzellen unter Anwendung eines der redundanten Elemente repariert. Somit wird lediglich die REDL (0) oder die REDH (0) Variable auf einen logisch hohen Zustand gesetzt.
  • In ähnlicher Weise wird die REDL (1) Variable auf einen logisch hohen Zustand gesetzt (d. h. einen „1"-Zustand), wenn das tiefe Byte der fehlerhaften Adresse aus Kernflashspeicherzellen unter Anwendung des zweiten Elements der beiden redundanten Elemente repariert wird. Andererseits wird die REDH (1)-Variable auf einen logisch hohen Zustand gesetzt (d. h. einen „1"-Zustand), wenn das hohe Byte der fehlerhaften Adresse aus Kernflashspeicherzellen unter Anwendung des zweiten Elements der beiden redundanten Elemente repariert wird. Es wird lediglich das tieferwertige oder höherwertige Byte der fehlerhaften Adresse aus Kernflashspeicherzellen unter Anwendung eines der beiden redundanten Elemente repariert. Somit wird Lediglich die REDL (1) oder die REDH (1) Variable auf den logisch hohen Zustand gesetzt.
  • Gemäß den 26 und 29 erzeugt ferner die CAM-Logik 884 die DISYHB- und DISYLB-Signale, die zu einem Y-Adressendocodierer 781 gesendet werden, der mit den Flashspeicherzellen 780 verbunden ist. Wenn auf den Inhalt einer Adresse der Kernflashspeicherzellen 780 zugegriffen wird, decodiert der Y-Adressendocodierer eine derartige Adresse, um den Ausgang der Flashspeicherzellen einer derartigen Adresse auszuwählen. Die DISYHB- und DISYLB-Signale werden von der CAM-Logik 884 erzeugt, um den Y-Adressendecodierer 781 für das Ausgeben des Inhalts einer defekten Adresse der Kernflashspeicherzellen 780 zu deaktivieren.
  • Eine derartige CAM-Logik 884 zum Erzeugen der Signale LBMATCH_Q, YCE (0), YCE(1), REDL (0), REDH (0), REDL (1), REDH (1), DISYHB und DISYLB, wie sie hierin beschrieben sind, sind dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt. Ferner ist ein derartiger Y-Adressendecodierer 781, wie er hierin beschrieben ist, dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt.
  • Während des Start-Zustands (Schritt 852 und 854 aus 27) erzeugt die CRM-Logik 884 den entsprechenden logischen Zustand für jeweils das YCE (0)- und YCE (1)- Signal. Nach dem Ablauf der Wartezeitdauer (Warten = falsch) während des Startzustandes überprüft die Reparatursteuerung 832 den FAILREP-Wert der FAILREP-Logik 848 (Schritt 856 aus 27). Die FAILREP-Logik 848 bestimmt, ob ein redundantes Element zur Reparatur der ak tuellen fehlerhaften Adresse aus Flashspeicherzellen verfügbar ist. Beispielsweise sind gemäß 25 zwei redundante Elemente zur Reparatur fehlerhafter Adressen innerhalb jedes der Blöcke 783, 784, 786 und 788 aus Flashspeicherzellen verfügbar. Wenn die beiden redundanten Elemente bereits verwendet sind, um fehlerhafte Adressen innerhalb eines Blockes aus Flashspeicherzellen zu reparieren, so sind keine weiteren redundanten Elemente mehr verfügbar, um weitere fehlerhafte Adressen in diesem Block aus Flashspeicherzellen zu reparieren.
  • Ferner bestimmt die FAILREP-Logik 848, ob die aktuelle fehlerhafte Adresse aus Flashspeicherzellen früher bereits repariert worden ist. Wenn die aktuelle fehlerhafte Adresse aus Flashspeicherzellen bereits früher repariert wurde, dann wird die fehlerhafte Adresse aus Flashspeicherzellen als eine permanent fehlerhafte Zelle erkannt und kann nicht repariert werden. In beiden Fällen, wenn kein redundantes Element mehr verfügbar ist, oder die aktuelle fehlerhafte Adresse der Flashspeicherzellen als bereits früher reparierte Zelle erkannt wird, setzt die FAILREP-Logik 848 die FAILREP-Variable auf einen logisch hohen Zustand (d. h. den Zustand wahr). Wenn andererseits ein redundantes Element verfügbar ist und wenn die aktuelle fehlerhafte Adresse aus Flashspeicherzellen nicht früher bereits repariert wurde, dann setzt die FAILREP-Logik 848 die FAILREP-Variable auf einen logisch tiefen Zustand (d. h. den Zustand falsch).
  • Wenn gemäß 27 die FAILREP-Variable auf den logisch hohen Zustand gesetzt ist, dann wird die Pulszahl bzw. PULSE_COUNT-Variable auf Null gesetzt (Schritt 858 aus 27) und der HANG-Zustand wird eingenommen (Schritt 860 aus 27), um die Reparaturroutine und den aktuellen BIST-Modus zu beenden. Wenn andererseits die FAILREP-Variable auf den logischen tiefen Zustand gesetzt ist, dann wird die Pulszahl-Variable auf Null zurückgesetzt (Schritt 862 aus 27), und die Reparaturroutine geht weiter.
  • 28 zeigt eine beispielhafte Implementierung der FAILREP-Logik 848 mit einem ersten und NAND-Gatter 864, einem zweiten NAND-Gatter 866, einem dritten NAND-Gatter 868, einem ersten Inverter 870 und einem zweiten Inverter 872. Das erste NAND-Gatter 864 besitzt einen ersten Eingang in Verbindung mit dem Ausgang des zweiten Inverters 872, der die LBMATCH_Q-Variable an einem ersten Eingangsanschluss 874 als Eingangssignal erhält. Das erste NAND-Gatter 864 besitzt ferner als einen Eingang die REDL (0)-Variable, die an einem zweiten Eingangsanschluss 876 zugeführt wird. Das zweite NAND-Gatter 866 besitzt als Eingänge die LBMATCH_Q-Variable, die an dem ersten Eingangsanschluss 874 zugeführt wird, und eine REDH (0)-Variable, die an einem dritten Eingangsanschluss 878 zugeleitet ist. Das dritte NAND-Gatter 868 besitzt als Eingang den Ausgang des ersten Inverters 870, der als Eingang eine YCE (1)-Variable aufweist, die an einen vierten Eingangsanschluss 880 zugeleitet ist, und besitzt als weitere Eingänge die Ausgangssignale des ersten und des zweiten NAND-Gatters 864 und 866. Der Ausgang des dritten NAND-Gatters 868 liefert die FAILREP-Variable an einem Ausgangsanschluss 882.
  • 30 zeigt eine Tabelle möglicher logischer Zustände für die Variablen LBMATCH_Q, YCE (1), REDL (0) und REDH (0) als Eingänge für die FAILREP-Logik 848 aus 28. Wenn gemäß den 28 und 30 die YCE (1)-Variable auf den logisch hohen Zustand gesetzt ist (d. h. ein „1"-Zustand), erzeugt die FAILREP-Logik 848 den FAILREP-Wert mit einem logisch tiefen Zustand unabhängig von dem unabhängigen logischen Zustand jeder der Variablen LBMATCH_Q, REDL (0) und REDH (1). Wenn die Variable YCE (1) in dem logisch hohen Zustand ist, zeigt dies an, dass kein weiteres redundantes Element zur Reparatur einer weiteren fehlerhaften Adresse aus Kernflashspeicherzellen für den aktuellen Block aus Kernflashspeicherzellen 783, 784, 786 und 788 verfügbar ist. In diesem Fall erzeugt die FAILREP-Logik 848 einen FAILREP-Wert gemäß einem logisch hohen Zustand, und der HANG-Zustand wird in den Schritten 858 und 860 in dem Flussdiagramm aus 27 eingenommen.
  • Wenn andererseits gemäß den 28 und 30 die Variable YCE (1) auf den logisch tiefen Zustand gesetzt ist (d. h. einen „0"-Zustand), bestimmt der entsprechende logische Zustand jeder der Variablen LBMATCH_Q, REDL (0) und REDH (0) die FAILREP-Variable, die von der FAILREP-Logik 848 ausgegeben wird. Wenn die Variable YCE (1) auf den logisch tiefen Zustand gesetzt ist, ist ein redundantes Element zur Reparatur der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen verfügbar. Wenn gemäß 30 die Variable LBMATCH_Q auf den logisch tiefen Zustand gesetzt ist, um anzuzeigen, dass eine fehlerhafte Flashspeicherzelle in dem tiefen Byte der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen vorhanden ist, bestimmt der logische Zustand der Variable REDL (0) die FAILREP-Variable, die von der FAILREP-Logik 848 ausgegeben wird. Wenn andererseits die Variable LBMATCH_Q auf den logisch hohen Zustand gesetzt ist, um anzuzeigen, dass eine fehlerhafte Flashspeicherzelle innerhalb des hohen Bytes der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen vorhanden ist, bestimmt der logische Zustand der Variable REDH (0) die FAILREP-Variable, die von der FAILREP-Logik 848 ausgegeben wird.
  • Wenn die Variable LBMATCH_Q auf den logisch tiefen Zustand gesetzt ist, ist die von der FAILREP-Logik 848 ausgegebene FAILREP-Variable in dem logisch hohen Zustand, wenn die Variable REDL (0) in dem logisch hohen Zustand ist, und die FAILREP-Variable ist in dem logisch tiefen Zustand, wenn die Variable REDL (0) in dem logisch tiefen Zustand unabhängig von dem Logikzustand der Variable REDH (0) ist. Wenn die Variable LBMATCH_Q auf den logisch tiefen Zustand gesetzt ist und die Variable REDL (0) in dem logisch hohen Zustand ist, dann bestimmt die FAILREP-Logik 848, dass das untere Byte der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen früher bereits unter Anwendung des ersten Elements der redundanten Elemente repariert wurde. In diesem Falle wird die FAILREP-Variable auf den logisch hohen Zustand gesetzt, und der HANG-Zustand wird in den Schritten 858 und 860 in dem Flussdiagramm aus 27 eingenommen. Wenn andererseits die Variable LBMATCH_Q auf den logisch tiefen Zustand und die Variable REDL (0) in den logisch tiefen Zustand gesetzt ist, dann bestimmt die FAILREP-Logik 848, dass das tiefe Byte der aktuellen defekten Adresse aus Kernflashspeicherzellen früher nicht repariert wurde. In diesem Falle wird die FAILREP-Variable auf den logisch tiefen Zustand gesetzt, wenn die Variable YCE (1) ebenso auf den tiefen logischen Zustand gesetzt ist, und die Reparaturroutine in 27 geht weiter.
  • Wenn in ähnlicher Weise die Variable LBMATCH_Q auf den logisch hohen Zustand gesetzt ist, ist die von der FAILREP-Logik 848 ausgegebene FAILREP-Variable in dem logisch hohen Zustand, wenn die Variable REDH (0) in dem logisch hohen Zustand ist, und ist in dem logisch tiefen Zustand, wenn die Variable REDH (0) in dem logisch tiefen Zustand ist unabhängig von dem Logikzustand der Variable REDL (0). Wenn die Variable LBMATCH_Q auf den logisch hohen Zustand gesetzt ist und die Variable REDH (0) in dem logisch hohen Zustand ist, dann bestimmt die FAILREP-Logik 848, dass das hohe Byte der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen früher unter Anwendung des ersten Elements der beiden redundanten Elemente bereits repariert wurde. In diesem Falle wird die FAILREP-Variable auf den logisch hohen Zustand gesetzt, und der HANG-Zustand wird in den Schritten 858 und 860 in dem Flussdiagramm aus 27 eingenommen. Wenn andererseits die Variable LBMATCH_Q auf den logisch hohen Zustand gesetzt ist und die Variable REDH (0) in dem logisch tiefen Zustand ist, dann wurde das hohe Byte der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen früher nicht repariert. In diesem Falle wird die FAILREP-Variable auf den logisch tiefen Zustand gesetzt, wenn die Variable YCE (1) ebenso auf dem logisch tiefen Zustand ist, und die Reparaturroutine in 27 geht weiter.
  • Wenn die Reparaturroutine weitergeht, nachdem die FAILREP-Logik 848 die FAILREP-Variable auf den logisch tiefen Zustand setzt, wird die Pulszahl auf Null zurückgesetzt (Schritt 862 aus 27), und die Reparatursteuerung 832 geht in den JUICE-Zustand über (Schritt 888 aus 27). Gemäß den 26 und 27 steuert während des JUICE-Zustands die Reparatursteuerung 832 die CAM-Programmierspannungsquelle 838 so, dass Programmierspannungen an einen entsprechenden Satz aus CAM-Flashspeicherzellen angelegt werden. Mit derartigen Programmierspannungen wird der entsprechende Satz aus CAM-Flashspeicherzellen mit der aktuellen fehlerhafte Adresse aus Kernflashspeicherzellen programmiert, so dass der Zugriff auf die aktuelle fehlerhafte Adresse aus Kernflashspeicherzellen zu einem entsprechenden redundanten Element aus Flashspeicherzellen umgeleitet wird. In einer Ausführungsform der vorliegenden Erfindung wird das tiefe Byte oder das hohe Byte der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen repariert, wobei der Zugriff auf das tiefe oder das hohe Byte der aktuellen defekten Adresse aus Kernflashspeicherzellen zu dem entsprechenden redundanten Element aus Flashspeicherzellen umgeleitet wird.
  • Ferner werden das DISYHB und DISYLB-Signal von der CAM-Logik 884 erzeugt, um den Y-Adressendecodierer 781 für das Ausgeben des Inhalts einer defekten Adresse der Kernflashspeicherzellen 780 zu deaktivieren. Das DISYHB-Signal wird von der CAM-Logik 884 gesetzt, um den Y-Adressendecodierer 781 für das Ausgeben des Inhalts des hohen Bytes einer fehlerhaften Adresse der Kernflashspeicherzellen 780 zu deaktivieren. Das DISYLB-Signal wird von der CAM-Logik 884 gesetzt, um den Y-Adressendecodierer 871 für das Ausgeben des Inhalts des tiefen Bytes einer fehlerhaften Adresse der Kernflashspeicherzellen 780 zu deaktivieren.
  • Programmierspannungen von CAM-Flahsspeicherzellen sind dem Fachmann auf dem Gebiet der Flashspeicherherstellung bekannt. Ferner sind Prozesse zum Herstellen der CAM-Programmierspannungsquelle 838 auf dem Halbleiterchip, der auch die Kernflashspeicherzellen 780 darauf ausgebildet aufweist, zum Erzeugen derartiger Programmierspannungen, die an ausgewählte CAM-Flashspeicherzellen angelegt werden, dem Fachmann auf dem Gebiet der Flashspeicherherstellung bekannt.
  • Der Zeitgeber 834 regelt eine zusätzliche Zeitdauer JTIMEOUT zum Anlegen derartiger Programmierspannungen an den entsprechenden Satz aus CAM-Flashspeicherzellen während des JUICE-Zustands (Schritt 890 in 27). Vor dem Ablauf der Zusatzzeitdauer (JTIMEOUT = falsch) bleibt die Reparatursteuerung 832 in dem JUICE-Zustand, um die Programmierspannungen an den entsprechenden Satz aus CAM-Flashspeicherzellen für die Zusatzzeitdauer JTIMEOUT anzulegen.
  • Nach dem Ablauf der Zusatzzeitdauer (JTIMEOUT = wahr) geht die Reparatursteuerung 832 in den VERIFY1-Zustand über (Schritt 892 aus 27). Während des VERIFY1-Zustands zählt der Zeitgeber 834 eine vorbestimmte Wartezeitdauer, bevor Begrenzungsspannungen von der CAM-Grenzspannungsquelle 840 an den entsprechenden Satz aus CAM-Flashspeicherzellen für den VERIFY2-Zustand angelegt werden, so dass die Spannungspegel der CAM-Grenzspannungsquelle 840 sich vor dem VERIFY2-Zustand stabilisieren können (Schritt 894 in 27). Vor dem Ablauf der Wartezeitdauer (Warten = wahr) während des VERIFY-Zustands bleibt die Reparatursteuerung 832 in dem VERIFY-Zustand.
  • Nach dem Ablaufen der Wartezeitdauer (Warten = falsch) während des VERIFY1-Zustands geht die Reparatursteuerung 832 in der VERIFY2-Zustand über (Schritt 896 aus 27). Während des VERIFY2-Zustands steuert die Reparatursteuerung 832 die CAM-Grenzspannungsquelle 840 an, um Grenzspannungen an den entsprechenden Satz aus CAM-Flashspeicherzellen anzulegen, die in dem JUICE-Zustand im Schritt 888 aus 27 programmiert wurden. Grenzspannungen sind Verifizierspannungen, die an jede Flashspeicherzelle des entsprechenden Satzes aus CAM-Flashspeicherzellen angelegt werden, die in dem JUICE-Zustand programmiert wurden, um zu verifizieren, dass derartige Flashspeicherzellen nach dem JUICE-Zustand korrekt programmiert wurden.
  • Derartige Grenzspannungen zum Verifizieren, dass derartige Flashspeicherzellen nach dem JUICE-Zustand korrekt programmiert wurden, sind dem Fachmann auf dem Gebiet der Flashspeicherherstellung bekannt. Ferner sind Prozesse zum Herstellen der CAM-Grenzspannungsquelle 840 auf dem Halbleiterchip, der darauf ausgebildet die Kernflash speicherzellen 780 aufweist, zum Erzeugen derartiger Grenzspannungen dem Fachmann auf dem Gebiet der Flashspeicherherstellung bekannt.
  • Während des VERIFY2-Zustands empfängt die Reparatursteuerug 832 eine Variable REDOK, die von der Reparaturübereinstimmungseinheit 846 während eines MATCH-Schrittes (Schritt 898 aus 27) erzeugt wird. Gemäß 29 vergleicht die CAM-Logik 884 aus 29 den Ausgang derartiger CAM-Flashspeicherzellen mit der aktuellen fehlerhaften Adresse von dem Adressensequenzierer 524, um die Variablen YCE (0), YCE (1), REDL (0), REDH (0), REDL (1) und REDH (1) zu erzeugen, nachdem die Programmierspannungen während des JUICE-Zustands (Schritt 888 aus 27) angelegt worden sind und nachdem die Grenzspannungen an den entsprechenden Satz aus CAM-Flashspeicherzellen zum Ersetzen der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen durch das redundante Element aus Flashspeicherzellen angelegt wurden.
  • Wie hierin beschrieben ist, werden die Variablen YCE (0), YCE (1), REDL (0), REDH (0), REDL (1) und REDH (1) von der CAM-Logik 884 aus 29 erzeugt, um zu verfolgen, welche der beiden redundanten Elemente welche der beiden Bytes einer fehlerhaften Adresse aus Kernflashspeicherzellen ersetzt hat. Die CAM-Logik vergleicht die fehlerhafte Adresse, wie sie von dem Adressensequenzierer 524 erzeugt wird, und den Ausgang des entsprechenden Satzes aus Flashspeicherzellen, die in dem CAM (inhaltsadressierbaren Speicher) 790 programmiert sind, um die aktuelle fehlerhafte Adresse aus Flashspeicherzellen zu reparieren, und erzeugt einen entsprechenden logischen Zustand für jede der Variablen YCE (0), YCE (1), REDL (0), REDH (0), REDL (1) und REDH (1) in Abhängigkeit des entsprechenden früheren Logikzustandes jeder dieser Variablen.
  • Anfänglich wird jede der Variablen YCE (0), YCE (1), REDL (0), REDH (0), REDL (1) und REDH (1) auf einen logisch tiefen Zustand gesetzt (d. h. einen „0"-Zustand). Ferner sind anfänglich bevor ein redundantes Element zur Reparatur einer fehlerhaften Adresse innerhalb eines der Blöcke aus Kernflashspeicherzellen 783, 784, 786 und 788 verwendet wird, zwei redundante Elemente an Flashspeicherzellen zur Reparatur eines fehlerhaften Bytes einer fehlerhaften Adresse aus Flashspeicherzellen verfügbar. Wenn ein erstes Element der beiden redundanten Elemente zur Reparatur eines Bytes einer fehlerhaften Adresse aus Kernflashspeicherzellen verwendet wird, wird die Variable YCE (0), die diesem ersten Element der beiden redundanten Elementen entspricht, auf einen logisch hohen Zustand gesetzt (d. h. einen „1" Zustand), und dieses erste Element der beiden redundanten Elemente ist nicht mehr verfügbar. Wenn dann ein zweites Element der beiden redundanten Elemente verwendet wird, um ein Byte einer defekten Adresse aus Kernflashspeicherzellen zu reparieren, wird die Variable YCE (1), die diesem zweiten Element der beiden redundanten Elemente entspricht, auf einen logisch hohen Zustand gesetzt (d. h. einen „1"-Zustand), und dieses zweite Element der beiden redundanten Elemente ist nicht mehr verfügbar, so dass keine weiteren redundanten Elemente zur Reparatur einer fehlerhaften Adresse aus Kernflashspeicherzellen innerhalb des aktuellen Blocks aus Kernflashspeicherzellen 783, 784, 786 und 788 verfügbar sind.
  • Die Variable REDL (0) wird auf einen logisch hohen Zustand gesetzt (d. h. ein „1"-Zustand), wenn das tiefe Byte der fehlerhaften Adresse der Kernflashspeicherzellen unter Anwendung des ersten Elements der beiden redundanten Elemente repariert wird. Andererseits wird die Variable REDH (0) auf einen logisch hohen Zustand gesetzt (d. h. einen „1"-Zustand), wenn das hohe Byte der fehlerhaften Adresse aus Kernflashspeicherzellen unter Anwendung des ersten der beiden redundanten Elemente repariert wird. Es wird lediglich das hohe Byte oder das tiefe Byte der fehlerhaften Adresse aus Kernflashspeicherzellen unter Anwendung eines der beiden redundanten Elemente repariert. Somit wird nur eine der Variablen REDL (0) und REDH (0) in den logisch hohen Zustand versetzt.
  • In ähnlicher Weise wird die Variable REDL (1) in einen logisch hohen Zustand gesetzt (d. h. einen „1"-Zustand), wenn das tiefe Byte der fehlerhaften Adresse aus Kernflashspeicherzellen unter Anwendung des zweiten Elements der beiden redundanten Elemente repariert wird. Andererseits wird die Variable REDH (1) auf einen logisch hohen Zustand gesetzt (d. h. einen „1"-Zustand), wenn das hohe Byte der fehlerhaften Adresse aus Kernflashspeicherzellen unter Anwendung des zweiten Elements der beiden redundanten Elemente repariert wird. Es wird lediglich das tiefe oder das hohe Byte der fehlerhaften Adresse aus Kernflashspeicherzellen unter Anwendung eines der beiden redundanten Elemente repariert. Somit wird lediglich eine der beiden Variablen REDL (1) und REDH (1) in den logisch hohen Zustand gesetzt.
  • Gemäß 26 erhält der Redundanzelementreihenfolgezwischenspeicher 842 die Variable YCE (0) zur Verfolgung, welches der beiden redundanten Elemente für den aktuellen Block aus Kernflashspeicherzellen 783, 784, 786 und 788 verfügbar ist und aktuell verwendet wird. Wenn die Variable YCE (0) sich in dem logisch tiefen Zustand befindet (d. h. in dem „0"-Zustand), zeigt die Variable YCE (0) an, dass das erste der beiden redundanten Elemente verfügbar ist. In diesem Falle setzt der Redundanzelementreihenfolgezwischenspeicher 842 eine BREP01-Variable auf einen logisch tiefen Zustand (d. h. den „0"-Zustand), um anzuzeigen, dass das erste der beiden redundanten Elemente zur Reparatur der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen verwendet wird. Wenn andererseits die Variable YCE (0) in dem logisch hohen Zustand ist (d.h. den „1"-Zustand), zeigt die Variable YCE (0) an, dass das erste der beiden redundanten Elemente bereits verwendet ist und nicht mehr verfügbar ist, und dass das zweite der beiden redundanten Elemente verfügbar ist. In diesem Falle setzt der Redundanzelementreihenfolgezwischenspeicher 842 eine BREP01-Variable auf einen logisch hohen Zustand (d. h. den „1"-Zustand), um anzuzeigen, dass das zweite der beiden redundanten Elemente für die Reparatur der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen zu verwenden ist. Implementierungen allgemeiner Zwischenspeicher oder Signalspeicher für den Redundanzelementreihenfolgezwischenspeicher 842 sind dem Fachmann auf dem Gebiet der Elektronik vertraut.
  • 31 zeigt eine beispielhafte Implementierung einer Reparaturübereinstimmungseinheit 846 mit einem ersten NOR-Gatter 902, einem zweiten NOR-Gatter 904, einem dritten NOR-Gatter 906, einem vierten NOR-Gatter 908, einem fünften NOR-Gatter 910, einem sechsten NOR-Gatter 912, einem NAND-Gatter 910 und einem Inverter 916. Das erste NOR-Gatter 902 besitzt als Eingänge die Variable REDL (0), die an einen ersten Eingangsanschluss 918 angelegt ist, und die Variable REDH (0), die an einen zweiten Einganganschluss 920 angelegt ist. Das zweite NOR-Gatter 904 besitzt als Eingänge das Ausgangssignal des ersten NOR-Gatters 902 und die Variable BREP01, die an einen dritten Eingangsanschluss 922 eingespeist ist. Das dritte NOR-Gatter 906 besitzt als Eingänge die Variable REDL (1), die an einen vierten Eingangsanschluss 924 angelegt ist, und die Variable REDH (1), die an einen fünften Eingangsanschluss 926 angelegt ist. Das vierte NOR-Gatter 908 besitzt als Eingänge das Ausgangssignal des dritten NOR-Gatters 906 und das Ausgangssignal des Inverters 916, der als Eingang die Variable REP01 aufweist, die an einem sechsten Eingangsanschluss 928 eingespeist ist.
  • Das fünfte NOR-Gatter 910 besitzt als Eingänge das Ausgangssignal des zweiten NOR-Gatters 904 und das Ausgangssignal des vierten NOR-Gatters 908. Das NAND-Gatter 914 besitzt als Eingänge die Variable BREPAIR, die an einem siebten Eingangsanschluss 930 angelegt ist, und die Variable VERIFY, die an einem achten Eingangsanschluss 932 angelegt. Das sechste NOR-Gatter 912 besitzt als Eingänge das Ausgangssignal des fünften NOR-Gatters 910 und das Ausgangssignal des NAND-Gatters 914. Der Ausgang des sechsten NOR-Gatters 912 liefert die Variable REDOK an dem Ausgangsanschluss 934.
  • Während des Übereinstimmungs- bzw. MATCH-Schritts 898 aus 27 wird die Variable BREPAIR auf den logisch hohen Zustand gesetzt (d. h. einen „1"-Zustand) und die Variable VERIFY bzw. Verifizieren wird auf den logisch hohen Zustand (d. h. einen „1"-Zustand) durch die Reparatursteuenmg 832 gesetzt. In diesem Falle bestimmen die Variablen BREP01, REDL (0), REDH (0), REDL (1) und REDH (1) den logischen Zustand des Ausgangssignals REDOK der Reparaturübereinstimmungseinheit 846 aus 31. 32 zeigt eine Tabelle möglicher logischer Zustände für die Variablen BREP 01, REDL (0), REDH (0), REDL (1) und REDH (1), wie sie der Reparaturübereinstimmungseinheit 846 aus 31 eingespeist werden. Die Variable BREP01 wird von dem Redundanzelementreihenfolgezwischenspeicher 842 in der beschriebenen Weise erzeugt, und die Variablen REDL (0), REDH (0), REDL (1) und REDH (1) werden von der CAM-Logik 884 aus 29 in der hierin beschriebenen Weise erzeugt.
  • Gemäß den 31 und 32 wird die Variable BREP01 in den logisch tiefen Zustand (d. h. den „0"-Zustand) durch den Redundanzelementreihenfolgezwischenspeicher 842 gesetzt, um anzuzeigen, dass das erste der beiden redundanten Elemente für die Reparatur des tiefen oder des hohen Bytes der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen verwendet wird. Alternativ wird die Variable BREP01 auf den logisch hohen Zustand (d. h. den Zustand „1") durch den Redundanzelementreihenfolgezwischenspeicher 842 gesetzt, um anzuzeigen, dass das zweite der beiden redundanten Elemente für die Reparatur des tiefen oder des hohen Bytes der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen verwendet wird.
  • Wenn gemäß den 31 und 32 die Variable BREP01 auf den logischen tiefen Zustand gesetzt ist (d. h. den „0"-Zustand), bestimmen die Variablen REDL (0) und REDH (0) den Logikzustand des REDOK-Ausgangssignals unabhängig von dem entsprechenden Logikzustand jeder der Variablen REDL (1) und REDH (1). In diesem Falle wird eine der Variablen REDL (0) und REDH (0) in den hohen Logikzustand gesetzt, um anzuzeigen, dass das erste der beiden redundanten Elemente für die Reparatur des tiefen Bytes oder des hohen Bytes der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen verwendet worden ist.
  • Wenn die Variable REDL (0) in den logisch hohen Zustand gesetzt ist (anstatt der Variablen REDH (0)), wurde das erste der beiden redundanten Elemente zur Reparatur des tiefen Bytes der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen verwendet. Wenn REDH (0) auf den logisch hohen Zustand anstelle der Variable REDL (0) gesetzt ist, dann wurde das erste der beiden redundanten Elemente zur Reparatur des hohen Bytes der aktuellen fehlerhaften Adresse der Kernflashspeicherzellen verwendet. In jedem Falle wurden die entsprechenden CAM-Flashspeicherzellen in geeigneter Weise programmiert, so dass das erste der beiden redundanten Elemente korrekt zur Reparatur des tieferen oder des höheren Bytes der aktuellen fehlerhaften Adresse der Kernflashspeicherzellen verwendet ist. Wenn damit die Variable BREP01 auf den logisch tiefen Zustand gesetzt ist und die Variable REDL (0) oder REDH (0) in dem logisch hohen Zustand ist, wird die Variable REDOK, die von der Reparaturübereinstimmungseinheit 848 ausgegeben wird, in den logisch hohen Zustand gesetzt.
  • Wenn andererseits die Variable BREP01 in dem logisch tiefen Zustand ist und beide Variablen REDL (0) und REDH (0) von der CAM-Logik 884 in den logisch tiefen Zustand gesetzt sind, dann sind die entsprechenden CAM-Flashspeicherzellen nicht geeignet programmiert, so dass das erste der beiden redundanten Elemente nicht in geeigneter Weise zur Reparatur des tiefen Bytes oder des hohen Bytes der aktuellen fehlerhaften Adresse der Flashspeicherzellen verwendet ist. In diesem Falle wird die Variable REDOK, die von der Reparaturübereinstimmungseinheit 848 ausgegeben wird, auf den logisch tiefen Zustand gesetzt.
  • Wenn ähnlicherweise unter Bezugnahme zu den 31 und 32 die Variable BREP01 in den logisch hohen Zustand gesetzt ist (d. h. den Zustand „1"), bestimmen die Variablen REDL (1) und REDH (1) den Logikzustand des Ausgangssignals REDOK unabhängig von dem entsprechenden Logikzustand jeder der Variablen REDL (0) und REDH (0). In diesem Falle wird eine der Variablen REDL (1) und REDH (1) auf den logisch hohen Zustand gesetzt, um anzuzeigen, dass das zweite der beiden redundanten Elemente verwendet wurde, um das tiefe Byte oder das hohe Byte der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen zu reparieren.
  • Wenn REDL (1) in den logisch hohen Zustand gesetzt ist (anstelle der Variablen REDH (1)), wurde das zweite der beiden redundanten Elemente zur Reparatur des tiefe Bytes der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen verwendet. Wenn REDH (1) einen logisch hohen Zustand (anstelle der Variablen REDL (1)) gesetzt ist, dann wurde das zweite der beiden redundanten Elemente zur Reparatur des hohen Bytes der fehlerhaften Adresse aus Kernflashspeicherzellen verwendet. In jedem Falle wurden die entsprechenden CAM-Flashspeicherzellen in geeigneter Weise programmiert, so dass das zweite der beiden redundanten Elemente in geeigneter Weise zur Reparatur des tiefen Bytes oder des hohen Bytes der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen verwendet ist. Wenn daher die Variable BREP01 auf den hohen logischen Zustand und eine der beiden Variablen REDL (1) und REDH (1) auf den hohen Logikzustand gesetzt ist, wird die Variable REDOK, die von der Reparaturübereinstimmungseinheit 848 ausgegeben wird, auf den logisch hohen Zustand gesetzt.
  • Wenn andererseits die Variable BREP01 auf den hohen Logikzustand und beide Variablen REDL (1) und RED (1) auf den tiefen Logikzustand durch die CAM-Logik 884 gesetzt sind, dann wurden die entsprechenden CAM-Flashspeicherzellen nicht in geeigneter Weise so programmiert, dass das zweite der beiden redundanten Elemente in geeigneter Weise zur Reparatur des tiefen Bytes oder des hohen Bytes der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen verwendet wurde. In diesem Falle wird die Variable REDOK, die von der Reparaturübereinstimmungseinheit 748 ausgegeben wird, in den logisch tiefen Zustand versetzt.
  • Wenn gemäß 27 die Variable REDOK in dem logisch tiefen Zustand ist (d. h. dem Zustand falsch), dann sind die entsprechenden CAM-Flashspeicherzellen nicht in geeigneter Weise zu Reparatur der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen programmiert. In diesem Falle überprüft die Reparatursteuerung 832 die Pulszahlvariable im Hinblick auf Max_PC (maximale Pulszahl) (Schritt 936 aus 27). Wenn die Pulszahl kleiner als Max_PC ist, dann wiederholt die Reparatursteuenmg 832 den JUICE-Zustand und den VERIFY2-Zustand (Schritt 888, 890, 892, 894, 896 und 898 aus 27), und die Pulszahl wird um 1 erhöht. In diesem Falle steuert die Reparatursteuerung 832 die CAM-Programmierspannungsquelle 838 an, um erneut die Programmierspannungen an die entsprechenden CAM-Flashspeicherzellen zur Reparatur der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen während der Zusatzzeitdauer JTIMEOUT anzulegen. Ferner wird während des VERIFY-Zustands die Variable REDOK von der Reparaturübereinstimmungseinheit 846 mit den Werten der Variablen REDL (0), REDH (0), REDL (1) und REDH (1) von der CAM-Logik 884 nach dieser erneuten Anlegung der Programmierspannungen erzeugt.
  • Die Reparatursteuerung wiederholt den JUICE-Zustand und den VERIFY2-Zustand (Schritt 888, 890, 892, 894, 896 und 898 aus 27) mit einer Erhöhung der Pulszahl jedes mal, wenn die Variable REDOK auf den logisch tiefen Zustand gesetzt wird, bis die Variable REDOK auf den logisch hohen Zustand gesetzt wird, wobei die Pulszahl die Zahl Max_PC (maximale Pulszahl) nicht übersteigt, oder bis die Pulszahl die Zahl Max_PC (maximale Pulszahl) übersteigt, wobei die Variable REDOK weiterhin in dem logisch tiefen Zustand bleibt. Wenn die Pulszahl die Zahl Max_PC (maximale Pulszahl) übersteigt und die Variable REDOK in dem logisch tiefen Zustand bleibt, wird die Pulszahl auf Null zurückgesetzt (Schritt 938 aus 27), und der HANG-Zustand wird eingenommen (Schritt 940 aus 27), um die Reparaturroutine aus 27 zu beenden. In diesem Falle ist die Reparaturroutine nicht erfolgreich für das Ersetzen der aktuellen fehlerhaften Adresse aus Kernflashspeicherzellen mittels eines redundanten Elements aus Flashspeicherzellen.
  • Wenn andererseits die Variable REDOK in den hohen Logikzustand versetzt wird, wobei die Pulszahl die Zahl Max_PC (maximale Pulszahl) nicht übersteigt, dann wird die Reparaturroutine fortgesetzt. In diesem Falle ist die Reparaturroutine erfolgreich im Ersetzen des tiefen Bytes oder des hohen Bytes der aktuellen fehlerhaften Adresse aus Flashspeicherzellen mittels eines redundanten Elements aus Flashspeicherzellen. Ferner wird eine Variable reg_READ durch die Reparatursteuerung 832 (Schritt 942 aus 27) geprüft. Die Variable reg_READ wird auf den logisch hohen Zustand mittels eines vorderen Decodierers 314 des BIST-Systems gesetzt, um ein Beispiel zu nennen, wenn der aktuelle BIST-Modus zum Lesen eines entsprechenden Logikzustands jeder Flashspeicherzelle des Arrays aus Kernflashspeicherzellen dient, ohne dass Programmier- oder Löschspannungen an die Kernflashspeicherzellen angelegt sind, wie dies etwa für den BEST-Modus der Fall ist, der durch das Flussdiagramm aus 23 gezeigt ist. Ansonsten wird die Variable reg_READ in den logisch tiefen Zustand versetzt, etwa für den BIST-Modus, der durch das Flussdiagramm aus 21 gezeigt ist.
  • Wenn die Variable reg_READ in dem logisch hohen Zustand ist, dann setzt die Reparatursteuerung 832 den Adressensequenzierer 524 auf eine Anfangsadresse des aktuellen Blocks aus Kernflashspeicherzellen zurück, der die fehlerhafte Adresse aus Kernflashspeicherzellen enthält (Schritt 944 aus 27), und die Pulszahl wird auf Null zurückgesetzt (Schritt 946 aus 27). Beispielsweise ist unter Bezugnahme auf 24 die fehlerhafte Adresse aus Kernflashspeicherzellen 750 in dem dritten Block 786 aus Kernflashspeicherzellen enthalten. In diesem Beispiel springt der Adressensequenzierer 524 auf eine Anfangsadresse des dritten Blocks 786 aus Kernflashspeicherzellen zurück, wenn die Variable reg_READ auf den logisch hohen Zustand gesetzt ist. Mit einem derartigen Zurücksetzen des Adressensequenzierers 524 auf eine Anfangsadresse des aktuellen Blocks aus Kernflashspeicherzellen wird der BIST-Modus zum Lesen eines entsprechenden Logikzustands jeder Flashspeicherzelle des Arrays aus Kernflashspeicherzellen für den gesamten Block aus Kernflashspeicherzellen durchgeführt, der die fehlerhafte Adresse aus Kernflashspeicherzellen enthält, wobei das Ersetzen mittels des redundanten Elements aus Flashspeicherzellen stattfindet, um ferner eine korrektere Reparatur unter Anwendung eines derartigen redundanten Elements aus Flashspeicherzellen sicherzustellen.
  • Gemäß 27 wird, nachdem die Reparatursteuerung 832 den Adressensequenzierer 524 auf eine Anfangsadresse eines aktuellen Bocks aus Kernflashspeicherzellen, der die fehlerhafte Adresse aus Kernflashspeicherzellen enthält, zurückgesetzt hat (Schritt 944 aus 27), und nachdem die Pulszahl auf Null zurückgesetzt ist (Schritt 946 aus 27), wenn die Variable reg_READ in den logisch hohen Zustand gesetzt ist, die Variable BREPAIR auf den logisch tiefen Zustand (d. h. den Zustand „0") gesetzt (Schritt 948 aus 27), und die Reparaturroutine kehrt zu dem aktuellen BIST-Modus zurück, der die Reparaturroutine aufgerufen hat (Schritt 950 aus 27). Wenn andererseits die Variable reg_READ auf den logisch tiefen Zustand gesetzt ist, wird die Variable BREPAIR in den logisch tiefen Zustand gesetzt (d. h. den Zustand „0") (Schritt 948 aus 27), und die Reparatunoutine kehrt zu dem aktuellen BIST-Modus zurück, der die Reparaturroutine aufgerufen hat (Schritt 950 aus 27), ohne dass die Schritte 944 und 946 aus 27 ausgeführt werden.
  • Wenn beispielsweise die Reparaturroutine 770 zu dem aktuellen BIST-Modus aus 21 zurückkehrt, werden die Schritte in und nach dem Start-Zustand 552 wiederum für die aktuelle fehlerhafte Adresse aus Kernflashspeicherzellen ausgeführt, die durch Ersetzen durch das redundante Element aus Flashspeicherzellen repariert worden sind. Wenn alternativ die Reparaturroutine 776 zu dem aktuellen BIST-Modus aus 23 zurückkehrt, werden die Schritte in und nach dem Start-Zustand 682 wiederum von einer Startadresse des aktuellen Blocks aus Kernflashspeicherzellen, der die fehlerhafte Adresse aus Kernflashspeicherzellen enthält, jedoch mit einem Ersetzen durch das redundante Element aus Flashspeicherzellen innerhalb des aktuellen Blocks aus Kernflashspeicherzellen erneut ausgeführt.
  • Auf diese Weise wird die Reparatur einer fehlerhaften Adresse aus Flashspeicherzellen während des Testens des Arrays aus Kernflashspeicherzellen 780 durch Programmieren des CAM (inhaltsadressierbaren Speichers) 790 zum Ersetzen einer fehlerhaften Adresse aus Flashspeicherzellen durch das redundante Element aus Flashspeicherzellen 782 in chipinterner Weise ausgeführt. Somit werden Stifte des externen Testsystems zum Programmieren des CAM (inhaltsadressierbaren Speichers) zum Ersetzen der fehlerhaften Adresse aus Flashspeicherzellen durch das redundante Element aus Flashspeicherzellen nicht verwendet. Durch das Anwenden einer derartigen minimierten Anzahl an Stiften des externen Testsystems kann eine größere Anzahl von Halbleiterchips gleichzeitig durch das externe Testsystem mit der begrenzten Gesamtanzahl an Stiften getestet und repariert werden, wodurch der Durchsatz während der Herstellung von Flashspeichereinrichtungen maximiert wird.
  • Da ferner eine derartige Reparatur durch Programmieren der CAM-Flashspeicherzellen chipintern ausgeführt wird, ist die Geschwindigkeit des Durchführens eines derartigen Reparaturmechanismus nicht durch die Kapazität des externen Testsystems begrenzt. Somit kann ein derartiger chipinterner Reparaturmechanismus effizienter sein.
  • Das Vorhergehende ist lediglich beispielhafter Natur und soll nicht beschränkend sein. Beispielsweise kann die vorliegende Erfindung für eine größere Anzahl an verfügbaren redundanten Elementen an Flashspeicherzellen ausgeführt werden. Zahlen, wie sie hierin beschrieben und dargestellt sind, sind lediglich anschaulicher Natur. Ferner kann die vorliegende Erfindung zum Ersetzen einer gesamten fehlerhaften Adresse aus Kernflashspeicherzellen durch ein redundantes Element aus Kernflashspeicherzellen eingesetzt werden, anstatt ein Byte einer fehlerhaften Adresse aus Kernflashspeicherzellen zu ersetzen, wie dies auch für den Fachmann auf dem Gebiet der Flashspeicherherstellung aus der Be schreibung hierin klar wird. Die vorliegende Erfindung ist lediglich in der Weise beschränkt, wie dies durch die folgenden Patentansprüche und Äquivalente definiert ist.
  • E. Diagnosemodus zum Testen der Funktion der hinteren BIST- (eingebauter Selbsttest-) Zustandsmaschine
  • Die Genauigkeit des Testens des Arrays aus Kernflashspeicherzellen 304 mit dem BIST-Systems 300 wird sichergestellt, indem auch die Funktion der Komponenten des BIST-Systems 300 aus 7, insbesondere der hinteren BIST-Zustandsmaschine 316, geprüft wird. Mit einer derartigen Prüfung zur Sicherung der Funktionsfähigkeit der Komponenten des BIST-Systems 300 wird, wenn das Array aus Kernflashspeicherzellen 304 als nicht funktionsfähig nach dem Prüfen mit dem BIST-System 300 erachtet wird, eine derartige Funktionsunfähigkeit gestützt auf das Vorhandensein eines Defekts innerhalb des Arrays aus Kernflashspeicherzellen 304 und nicht auf Grund eines Defekts innerhalb der Komponenten des BIST-Systems 300 aus 7.
  • In einer weiteren Ausführungsform der vorliegenden Erfindung wird die Funktionsfähigkeit der hinteren BIST- (eingebauter Selbsttest) Zustandsmaschine 316 unabhängig von der Funktionsfähigkeit des Arrays aus Kernflashspeicherzellen 304 bestimmt. Gemäß 33 umfasst ein System 960 zum Bestimmen der Funktionsfähigkeit der hinteren BIST- (eingebauter Selbsttest) Zustandsmaschine 316 unabhängig von der Funktion des Arrays der Kernflashspeicherzellen 304 einen Modusdecodierer 962, eine diagnostische Übereinstimmungslogik 964 und einen Signalselektor 966. Die BIST-Schnittstelle 312, die vordere Schnittstelle 314, die hintere BIST-Zustandsmaschine 316, der Adressensequenzierer 524 und das externe Testsystem 318 sind ähnlich, wie dies bisher beschrieben ist.
  • Der Modusdecodierer 962 ist mit dem externen Testsystem 318 verbunden, und der Modusdecodierer 962 empfängt ein Bitmuster von dem externen Testsystem 318, das ein vorbestimmtes Bitmuster zum Aufrufen eines Diagnosemodus bzw. eines diagnostischen Modus zum Prüfen der Funktion der hinteren BIST-Zustandsmaschine 316 sendet. Der Modusdecodierer 962 decodiert das von dem externen Testsystem 318 gesendete Bitmuster und setzt ein AUTOL-Signal auf den logisch hohen Zustand (d. h. einen Zustand „1"), wenn das externe Testsystem 318 das vorbestimmte Bitmuster zum Aufrufen des diagnostischen Modus zum Prüfen der Funktionsfähigkeit der hinteren BIST-Zustandsmaschine 316 sen det. Der Modusdecodierer 962 setzt das AUTOL-Signal auf einen logisch tiefen Zustand (d. h. einen Zustand „0") in allen anderen Fällen. Die Implementierung von Bitmusterdecodierer für den Modusdecodierer 962 ist dem Fachmann auf dem Gebiet der digitalen Elektronik bekannt.
  • Das AUTOL-Signal wird von dem Modusdecodierer 962 zu der diagnostischen Übereinstimmungslogik 964, dem Signalselektor 966 und der hinteren BIST-Zustandsmaschine 316 übertragen. Die diagnostische Übereinstimmungslogik 964 nimmt das AUTOL-Signal und Steuersignale von der hinteren Zustandsmaschine 316 auf und erzeugt ein generiertes Übereinstimmungsausgangssignal. Der Signalselektor 966 nimmt das generierte Übereinstimmungsausgangssignal von der diagnostischen Übereinstimmungslogik 964 und ein Kernübereinstimmungsausgangssignal von der Übereinstimmungsschaltung 520 aus 13 auf. Der Signalselektor 966 gibt ein MATCH- bzw. Übereinstimmungssignal als eines des generierten Übereinstimmungsausgangssignals von der diagnostischen Übereinstimmungslogik 964 oder das Kernübereinstimmungsausgangssignal von der Übereinstimmungsschaltung 520 in Abhängigkeit von dem AUTOL-Signal und in Abhängigkeit von Steuersignalen von der hinteren BIST-Zustandsmaschine 316 aus.
  • Wenn der diagnostische Modus zum Prüfen der Funktionsfähigkeit der hinteren BIST-Zustandsmaschine 316 bei logischem hohen Zustand des AUTOL-Signals aufgerufen wird, wählt der Signalselektor 966 das generierte Übereinstimmungsausgangssignal von der diagnostischen Übereinstimmungslogik 964 als das MATCH-Signal, das von der hinteren BIST-Zustandsmaschine 316 gesendet wird, aus. Wenn andererseits der diagnostische Modus nicht aufgerufen wird, wenn das AUTOL-Signal in einem logisch tiefen Zustand ist, wählt der Signalselektor 966 das Kernübereinstimmungsausgangssignal von der Übereinstimmungsschaltung 520 als das MATCH-Signal, das von der hinteren BIST-Zustandsmaschine 316 gesendet wird, aus.
  • In jedem Falle verwendet die hintere BIST-Zustandsmaschine 316 das MATCH-Signal während eines VERIFY-Zustands während eines BIST- (eingebauter Selbsttest) Modus zum Bestimmen, ob ein derartiger BIST-Modus in einem zulässigen Zustand oder einem fehlerhaften Zustand endet, wie dies hierin beschrieben ist. Die Übereinstimmungsschaltung 520 aus 13 erzeugt das Kernübereinstimmungsausgangssignal in Abhängigkeit eines Vergleiches eines gewünschten Bitmuster mit einem gemessenen Bitmuster einer Adresse des Arrays aus Kernflashspeicherzellen 304. Jedoch erzeugt die diagnostische Übereinstimmungslogik 964 das generierte Übereinstimmungsausgangssignal in Abhängigkeit des AUTOL-Signals von den Modusdecodierer 962 und den Steuersignalen von der hinteren BIST-Zustandsmaschine 316. Somit ist das generierte Übereinstimmungsausgangssignal von der diagnostischen Übereinstimmungslogik 964 unabhängig von der Funktionsweise des Arrays aus Kernflashspeicherzellen 304.
  • 34 zeigt eine beispielhafte Implementierung des Signalselektors 966 aus 33 mit einem ersten Inverter 968, einem ersten UND-Gatter 970, einem ersten NOR-Gatter 972, einem zweiten Inverter 974, einem zweiten UND-Gatter 986, einem dritten Inverter 978, einem dritten UND-Gatter 980, einem zweiten NOR-Gatter 982 und einem vierten Inverter 984. Das erste UND-Gatter 970 besitzt als Eingänge ein BREAD-Signal an einem ersten Eingangsanschluss 986 und das Ausgangssignal des ersten Inverters 968, der als ein Eingangssignal ein BREP-Signal auf einem zweiten Eingangsanschluss 988 besitzt. Das erste NOR-Gatter 972 besitzt als Eingänge das Ausgangssignal des ersten UND-Gatters 970 und ein MATCH-Signal auf einem dritten Eingangsanschluss 990. Das zweite UND-Gatter 976 besitzt als Eingänge das AUTOL-Signal auf einem vierten Eingangsanschluss 992 und das Ausgangssignal des zweiten Inverters 974. Der zweite Inverter 974 besitzt als Eingang das Ausgangssignal des ersten NOR-Gatters 972.
  • Ferner besitzt das dritte UND-Gatter 980 als Eingänge ein int_MATCH-Signal auf einem fünften Eingangsanschluss 994 und das Ausgangssignal des dritten Inverters 978, der als Eingang das AUTOL-Signal auf einem sechsten Eingangsanschluss 996 erhält. Das zweite NOR-Gatter 982 besitzt als Eingangssignal des zweiten UND-Gatters 976 und das Ausgangssignal des dritten UND-Gatters 980. Der vierte Inverter 984 besitzt als Eingangssignal das Ausgangssignal des zweiten NOR-Gatters 982. Das Ausgangssignal des vierten Inverters 984 ist das Ausgangssignal des Signalselektors, der das MATCH-Signal an einem Ausgangsanschluss 997 liefert.
  • Das int_MATCH-Signal an dem fünften Eingangsanschluss 994 ist das Kernübereinstimmungsausgangssignal von der Übereinstimmungsschaltung 520 und das MATCHD-Signal an dem dritten Eingangsanschluss 990 ist das generierte Übereinstimmungsausgangssignal von der diagnostischen Übereinstimmungslogik 964. Das AUTOL-Signal auf dem vierten Eingangsanschluss 992 und auf dem sechsten Eingangsanschluss 996 ist das AUTOL- Signal, das von dem Modusdecodierer 962 erzeugt wird. Das BREAD-Signal auf dem ersten Eingangsanschluss 986 und das BREP-Signal auf dem zweiten Eingangsanschluss 988 sind Steuersignale von der hinteren BIST-Zustandsmaschine 316.
  • 35 zeigt eine beispielhafte Implementierung der diagnostischen Übereinstimmungslogik 964 aus 33 mit einem ersten NOR-Gatter 998, einem zweiten NOR-Gatter 1000 und einem dritten NOR-Gatter 1002. Ferner umfasst die diagnostische Übereinstimmungslogik 964 ein erstes UND-Gatter 1004, ein erstes NAND-Gatter 1006, ein zweites NAND-Gatter 1008, ein drittes NAND-Gatter 1010, ein viertes NAND-Gatter 1012 und ein fünftes NAND-Gatter 1014. Die diagnostische Übereinstimmungslogik 964 umfasst ferner ein erstes ODER-Gatter 1016, ein zweites ODER-Gatter 1018 und ein drittes ODER-Gatter 1020 und einen ersten Inverter 1022, einen zweiten Inverter 1024 und einen dritten Inverter 1026. Ferner umfasst die diagnostische Übereinstimmungslogik 964 einen Signalspeicher 1028.
  • Das erste NOR-Gatter 998 besitzt als Eingangssignale ein ERIP-Signal auf einem ersten Eingangsanschluss 1030 und ein APDE-Signal auf einem zweiten Eingangsanschluss 1032. Das erste UND-Gatter 1004 besitzt als Eingänge das Ausgangssignal des ersten NOR-Gatters 998 und ein BACLK-Signal auf einem dritten Eingangsanschluss 1034. Das zweite NOR-Gatter 1000 besitzt als Eingänge das Ausgangssignal des ersten UND-Gatters 1004 und ein SACLK-Signal auf einem vierten Eingangsanschluss 1036. Das zweite NAND-Gatter 1008 besitzt als Eingänge ein ER-Signal auf einem fünften Eingangsanschluss 1038 und das Ausgangssignal des vierten NAND-Gatters 1012.
  • Ferner besitzt das erste ODER-Gatter 1016 als Eingangssignale das Ausgangssignal des ersten Inverters 1022, der als ein Eingangssignal ein BEREXE-Signal auf einem sechsten Eingangsanschluss 1040 aufweist, und ein BAPDE_OPT-Signal auf einem siebenten Eingangsanschluss 1042. Das vierte NAND-Gatter 1012 besitzt als Eingänge das Ausgangssignal des ersten ODER-Gatters 1016 und ein STEST-Signal auf einem achten Eingangsanschluss 1044. Das zweite ODER-Gatter 1018 besitzt als Eingangssignale das Ausgangssignal des zweiten Inverters 1024, der als ein Eingangssignal des Ausgangssignals des vierten NAND-Gatters 1012 aufweist, und ein PGM-Signal auf einem neunten Eingangsanschluss 1046. Das dritte ODER-Gatter 1020 besitzt als Eingänge das Ausgangssignal des vierten NAND-Gatters 1012 und ein JUICE-Signal auf einem zehnten Eingangsanschluss 1048.
  • Ferner besitzt das erste NAND-Gatter 1006 als Eingangssignal das Ausgangssignal des zweiten NOR-Gatters 1000 und das Ausgangssignal des zweiten NAND-Gatters 1008. Das fünfte NAND-Gatter 1014 besitzt als Eingangssignale das Ausgangssignal des zweiten ODER-Gatters 1018 und das Ausgangssignal des dritten ODER-Gatters 1020. Das dritte NAND-Gatter 1010 besitzt als Eingangssignale das AUTOL-Signal auf einem elften Eingangschluss 1050 und das Ausgangssignal des ersten NAND-Gatters 1006. Das dritte NOR-Gatter 1002 besitzt als Eingänge das Ausgangssignal des dritten Inverters 1026, der als ein Eingang das AUTOL-Signal auf einem elften Eingangsanschluss 1050 empfängt, und das Ausgangssignal des fünften NAND-Gatters 1014.
  • Der Signalspeicher 1028 besitzt als einen Rücksetzeingang (d. h. einen „R"-Eingang) den Ausgang des dritten NAND-Gatters 1010 und als einen Setzeingang (d. h. einen „S"-Eingang) den Ausgang des dritten NOR-Gatters 1002. Ferner liefert der Signalspeicher 1028 als ein Q-Ausgang das MATCHD-Signal an einem Ausgangsanschluss 1052. Das MATCHD-Signal ist das generierte Übereinstimmungsausgangssignal, das von dem Signalselektor 966 der 33 und 34 geliefert wird.
  • Das AUTOL-Signal auf dem elften Eingangsanschluss 1050 wird von dem Modusdecodierer 962 aus 33 erzeugt. Das ERIP-Signal auf dem ersten Eingangsanschluss 1030, das APDE-Signal auf dem zweiten Eingangsanschluss 1032, das BACLK-Signal auf dem dritten Eingangsanschluss 1034, das SACLK-Signal auf dem vierten Eingangsanschluss 1036, das ER-Signal auf dem fünften Eingangsanschluss 1038, das BEREXE-Signal auf dem sechsten Eingangsanschluss 1040, das BAPDE_OPT-Signal-Signal auf dem siebenten Eingangsanschluss 1042, das STEST-Signal auf dem achten Eingangsanschluss 1044, das PGM-Signal auf dem neunten Eingangsanschluss 1046 und das JUICE-Signal auf dem zehnten Eingangsanschluss 1048 werden von der hinteren BIST-Zustandsmaschine 316 und insbesondere der hinteren BIST-Steuerung 502 aus 13 erzeugt.
  • 36 zeigt eine beispielhafte Implementierung des Signalspeichers bzw. Auffang-Flipflops 1028 aus 35 mit einem ersten PMOSFET (P-Kanal-Metall-Oxid-Halbleiter-Feldeffekttransistor) 1051, einem zweiten PMOSFET (P-Kanal-Metall-Oxid-Halbleiter-Feldeffekttransistor) 1057, einem NMOSFET (N-Kanal-Metall-Oxid-Halbleiter-Feldeffektransistor) 1054, einem ersten Inverter 1056 und einem zweiten Inverter 1058.
  • Das Source des ersten PMOSFET 1051 und das Source des zweiten PMOSFET 1057 sind mit einer positiven Spannungsquelle 1059 verbunden, und das Source des NMOSFET 1054 ist mit einer negativen Spannungsquelle 1061 verbunden. Die positive Spannungsquelle 1059 ist die Spannung eines logisch hohen Zustands, etwa puls 5 Volt, und die negative Spannungsquelle 1061 kann der Masseknoten in einer beispielhaften Implementierung des Signalspeichers 1028 sein.
  • Das Gate des ersten PMOSFET 1051 ist mit dem Rücksetzeingang (d. h. dem „R"-Eingang) des Signalspeichers 1028 verbunden, der mit dem Ausgang des dritten NAND-Gatters 1010 in 35 verbunden ist. Das Gate des NMOSFET 1054 ist mit dem Setzeingang (d. h. dem „S"-Eingang) des Signalspeichers 1028 verbunden, der mit dem Ausgang des dritten NOR-Gatters 1002 in 35 verbunden ist. Das Drain des ersten PMOSFET 1051 ist mit dem Drain des NMOSFET 1054 verbunden, das auch mit dem Eingang des ersten Inverters 1056 und dem Ausgang des zweiten Inverters 1058 verbunden ist. Der Ausgang des ersten Inverters 1056 ist mit dem Eingang des zweiten Inverters 1058 verbunden und ist der Q-Ausgang des Signalspeichers 1028 zum Bereitstellen des generierten Übereinstimmungsausgangssignals MATCHD der diagnostischen Übereinstimmungslogik 964.
  • Ferner ist das Gate des zweiten PMOSFET 1057 mit einem Rücksetzeingang (d. h. dem „IRSTB"-Eingang) verbunden, und das Drain des zweiten PMOSFET 1057 ist mit dem Drain des ersten PMOSFET 1051 und dem Drain des NMOSFET 1054 verbunden. Wenn das AUTOL-Signal auf den logisch hohen Zustand gesetzt ist, setzt die hintere BIST-Zustandsmaschine 316 das IRSTB-Signal auf den logisch hohen Zustand, um den zweiten PMOSFET 1057 auszuschalten, so dass das generierte Übereinstimmungsausgangssignal MATCHD durch das Setzeingangssignal und das Rücksetzeingangssignal, die von dem ersten PMOSFET 1051 und dem NMOSFET 1054 geliefert werden, bestimmt ist. Wenn andererseits das Signal AUTOL in dem logisch tiefen Zustand ist, dann setzt die hintere BIST-Zustandsmaschine 316 das IRSTB-Signal in den logisch tiefen Zustand, um den zweiten PMOSFET 1057 einzuschalten, der wiederum das generierte Übereinstimmungsausgangssignal MATCHD in den logisch tiefen Zustand zwingt.
  • 37 zeigt eine Tabelle von Variablen während des Betriebs des Signalspeichers 1028 aus 36, wenn das Signal AUTOL in dem logisch hohen Zustand ist und wenn das IRSTB-Signal in den logisch hohen Zustand gesetzt ist. In diesem Falle ist das generierte Übereinstimmungsausgangssignal MATCHD von dem Setzeingangssignal und dem Rücksetzeingangssignal, die von dem ersten PMOSFET 1051 und dem NMOSFET 1054 geliefert werden, bestimmt. Wenn das Rücksetzeingangssignal (d. h. der „R"-Eingang) und das Rücksetzeingangssignal (d. h. der „S"-Eingang) in einem logisch tiefen Zustand sind (d. h. einem Zustand „0"-Zustand), geht der Q-Ausgang (d. h. der MATCHD-Ausgang) des Signalspeichers 1028 in den logisch tiefen Zustand (d. h. einen Zustand „0"). Wenn andererseits der Rücksetzeingang (d. h. der „R"-Eingang) und der Setzeingang (d. h. der „S"-Eingang) hochpegelig sind (d. h. in einem Zustand „1"), geht der Q-Ausgang (d. h. das MATCHD-Ausgangsignals) des Signalspeichers 1028 in den logisch hohen Zustand (d. h. einem Zustand „1").
  • Wenn das Rücksetzeingangssignal (d. h. der „R"-Eingang) in einem logisch hohen Zustand ist (d. h. einem Zustand „1") und das Setzeingangssignal (d. h. der „S"-Eingang) in einem logisch tiefen Zustand ist (d. h. einem Zustand „0"), bleibt der Q-Ausgang (d, h. das MATCHD-Ausgangssignal) des Signalspeichers 1028 in einem vorhergehenden logischen Zustand des Q-Ausgangs. Die Bedingung, dass der Rücksetzeingang (d. h. der „R"-Eingang) in einem logisch tiefen Zustand ist (d. h. einem Zustand „0") und der Setzeingang (d. h. der „S"-Eingang) auf einem logisch hohen Zustand ist (einem Zustand „1") wird in dem Signalspeicher 1028 in der diagnostischen Übereinstimmungslogik 964 aus 35 nicht verwendet.
  • Es wird nun die Funktion der Komponenten des Systems 960 aus 33 zum Testen der Funktion der hinteren Zustandsmaschine 316 beschrieben. 38 zeigt ein Flussdiagramm von Zuständen, die von der hinteren Zustandsmaschine 316 aus 33 eingenommen werden, wenn ein BIST-Modus von der hinteren Zustandsmaschine 316 ausgeführt wird, nachdem der diagnostische Modus zum Programmieren von Flashspeicherzellen des Arrays aus Kernflashspeicherzellen 304 aufgerufen ist. Gemäß den 33 und 38 wird der diagnostische Modus gestartet (Schritt 1060 aus 38), wenn das externe Testsystem 318 das vorbestimmte Bitmuster zum Aufrufen des diagnostischen Modus eingibt. Gemäß 33 gibt beim Start des diagnostischen Modus der Anwender Daten in die BIST-Schnittstelle 312 zum Aufrufen des aktuellen BIST-Modus ein.
  • In diesem Falle wird das AUTOL-Signal von dem Modusdecodierer 962 auf den logisch hohen Zustand gesetzt (d. h. den „1"-Zustand). Wenn ferner der diagnostische Modus auf gerufen wird, folgt die hintere Zustandsmaschine 316 den Schritten aus dem Flussdiagramm aus 15, verwendet jedoch das MATCH-Signal von dem Signalselektor 966 während des VERIFY-Zustands (Schritt 560 und 562 aus 15) anstelle von nur dem Ausgangssignal der Übereinstimmungsschaltung 520.
  • Wenn gemäß 34 der BIST-Modus, der gerade von der hinteren Zustandsmaschine 316 ausgeführt wird, nachdem der diagnostische Modus aufgerufen ist, zur Programmierung von Flashspeicherzellen des Arrays aus Kernflashspeicherzellen 304 dient, wird das BREAD-Signal auf den logisch tiefen Zustand gesetzt (d. h. den Zustand „0"). Wenn daher das AUTOL-Signal auf den logisch hohen Zustand gesetzt ist, ist das MATCH-Signal von dem Signalselektor 966 aus 34 das generierte Übereinstimmungsausgangssignal MATCHD von der diagnostischen Übereinstimmungslogik 964.
  • Gemäß 36 werden vor dem Start des diagnostischen Modus das AUTOL-Signal und das IRSTB-Signal des Signalspeichers 1028 auf den logisch tiefen Zustand gesetzt, so dass das generierte Übereinstimmungsausgangssignal MATCHD in den logisch tiefen Zustand geführt wird. Somit wird bei Beginn des BIST-Modus zum Programmieren von Flashspeicherzellen des Arrays aus Kernflashspeicherzellen 304 das generierte Übereinstimmungsausgangssignal MATCHD in den logisch tiefen Zustand gesetzt (d. h. den Zustand „0") bei einer Startadresse des Arrays aus Kernflashspeicherzellen 304. Wenn die hintere Zustandsmaschine 316 in einen ersten Programmier/Verifizier-Zustand übergeht (Schritte 560 und 562 aus 15) wird das generierte Übereinstimmungsausgangssignal MATCH in den logisch tiefen Zustand überführt (d. h. den Zustand „0"), und somit besitzt die Anfangsadresse des Arrays aus Kernflashspeicherzellen ein negatives Ergebnis (Schritt 1062 aus 38). Auf Grund dieses negativen Ergebnisses geht die hintere Zustandsmaschine 316 in einen Programmier-JUICE-Zustand über (Schritt 566 aus 15).
  • Gemäß 35 werden das PGM-Signal auf dem neunten Eingangsanschluss 1046, das JUICE-Signal auf dem zehnten Eingangsanschluss 1048 und das STEST-Signal auf dem achten Eingangsanschluss 1044 in den logisch hohen Zustand durch die BIST-Steuerung 502 in dem Programmier-JUICE-Zustand gesetzt, wobei ferner das AUTOL-Signal auf dem elften Eingangsanschluss 1050 von dem Modusdecodierer 962 in dem logisch hohen Zustand ist. Die anderen Signale (d. h. die Signale ERIP, APDE, BACLK, SACLK, ER, BEREXE und BAPDE_OPT) werden von der BIST-Steuerung 502 in dem Programmier- JUICE-Zustand in den tiefen logischen Zustand gesetzt. Somit wird das generierte Übereinstimmungsausgangssignal MATCHD in dem Programier-JUICE-Zustand in einen logisch hohen Zustand gesetzt (d. h. einen Zustand „1") (Schritt 1064 aus 38).
  • Nach dem Programmier-JUICE-Zustand geht die BIST-Steuerung 502 in einen nachfolgenden Programmier-Verifizier-Zustand über (Schritt 560 und 562 aus 15), wobei das generierte Übereinstimmungsausgangssignal MATCH von dem vorhergehenden Programmier-JUICE-Zustand in den logisch hohen Zustand gesetzt ist (d. h. dem Zustand „1"), und somit besitzt die Anfangsadresse des Arrays aus Kernflashspeicherzellen ein positives Ergebnis (Schritt 1066 aus 38). Auf Grund eines derartigen positiven Ergebnisses steuert die hintere Zustandsmaschine 316 unter Bezugnahme auf 33 den Adressensequenzierer 524 an, um eine nachfolgende Adresse des Arrays aus Kernflashspeicherzellen 304 zu erhöhen, indem das BALCK-Signal auf einen logisch hohen Zustand gesetzt wird (Schritt 1068 aus 38).
  • Wenn gemäß 35 das BACLK-Signal auf den logisch hohen Zustand gesetzt ist (wobei die Signale AUTOL und STEST ebenso auf logisch hohem Zustand sind, jedoch die Signale ERIP, APDE, SACLK, ER, PGM, JUICE, BEREXE und BAPDE_OPT auf logisch tiefem Zustand liegen) wird das generierte Übereinstimmungsausgangssignal MATCHD auf einen logisch tiefen Zustand (d. h. einem Zustand „0") zurückgesetzt. Nachdem der Adressensequenzierer 524 die nachfolgende Adresse des Arrays aus Kernflashspeicherzellen 304 erhöht, prüft die BIST-Steuerung 502, ob eine derartige Adresse hinter der letzten Adresse des Arrays aus Kernflashspeicherzellen 304 liegt (Schritt 1070 aus 38). Wenn die Adresse hinter der letzten Adresse des Arrays aus Kerflashspeicherzellen 304 liegt, dann endet der BIST-Modus. Ansonsten werden die Schritte 1062, 1064, 1066, 1068 und 1070 aus 38 für jede der nachfolgenden Adressen des Arrays aus Kernflashspeicherzellen 304 wiederholt, bis der Adressensequenzierer 524 eine Adresse erreicht, die hinter der letzten Adresse des Arrays aus Kernflashspeicherzellen 304 liegt.
  • Gemäß 13 werden Knoten der hinteren Zustandsmaschine 316, etwa der Knoten der Programmier/Lösch-Spannungsquelle 510 kontaktiert, um zu bestimmen, ob die hintere Zustandsmaschine 316 während der Schritte aus 38 in Funktion ist, wenn der BIST-Modus, der von der hinteren Zustandsmaschine 316 nach dem Aufrufen des diagnostischen Modus ausgeführt wird, zur Programmierung von Flashspeicherzellen des Arrays aus Kernflashspeicherzellen 304 dient. Beispielsweise liefert der Knoten der Programmier/Lösch-Spannungsquelle 510 aus 13 eine Wortleitungsspannung von plus 9 Volt, sobald der Programmier-JUICE-Zustand im Schritt 1064 aus 38 eingenommen wird, wenn die hintere Zustandsmaschine 316 in Funktion ist. Mit einer derartigen Sondierung von Knoten der hinteren Zustandsmaschine 316 aus 13 während der Schritte aus 38 wird die Funktionsfähigkeit der hinteren Zustandsmaschine 316 bestimmt, wenn ein BIST-Modus zum Programmieren von Flashspeicherzellen des Arrays aus Kernflashspeicherzellen 304 dient.
  • 39 zeigt ein Flussdiagramm von Zuständen, die von der hinteren Zustandsmaschine 316 der 33 eingenommen werden, wenn ein BIST-Modus, der von der hinteren Zustandsmaschine 316 nach dem Aufrufen des diagnostischen Modus ausgeführt wird, zum Löschen von Flashspeicherzellen des Arrays aus Kernflashspeicherzellen 304 mit einem einzelnen APDE (automatische Programmsteuerung nach Löschen) dient. 40 zeigt ein Flussdiagramm aus Zuständen, die von der hinteren Zustandsmaschine 316 der 33 eingenommen werden, wenn ein BIST-Modus, der von der hinteren Zustandsmaschine 316 nach dem Aufrufen des diagnostischen Modus ausgeführt wird, zum Löschen von Flashspeicherzellen des Arrays aus Kernflashspeicherzellen 304 mit einem dazwischen ausgeführten APDE (Autoprogrammierstörung nach Löschen) dient. Gemäß 35 setzt für ein einzelnes APDE (Autoprogrammierstörung nach Löschen) die BIST-Steuerung 502 das BAPDE_OPT-Signal-Signal auf den logisch hohen Zustand (d. h. den Zustand „1"). Andererseits setzt für zwischengeschaltetes APDE (Autoprogrammierstörung nach Löschen) die BIST-Steuerung 502 das BAPDE_OPT-Signal auf einen logisch tiefen Zustand (d. h. den Zustand 0" ).
  • Gemäß den 33 und 39 wird der diagnostische Modus gestartet (Schritt 1072 aus 39), wenn das externe Testsystem 318 das vorbestimmte Bitmuster zum Aufrufen des diagnostischen Modus einspeist. In diesem Falle wird das AUTOL-Signal von dem Modusdecodierer 962 auf den logisch hohen Zustand gesetzt (d. h. den Zustand „1"). Gemäß 33 gibt weiterhin zu Beginn des diagnostischen Modus der Anwender Daten in die BIST-Schnittstelle 312 zum Aufrufen des aktuellen BIST-Modus ein. Wenn ferner der diagnostische Modus aufgerufen ist, verwendet die hintere Zustandsmaschine 316 das MATCH-Signal des Signalselektors 966 während eines VERIFY-Zustands (Schritt 560 und 562 aus 15 beispielsweise), anstatt nur das Ausgangssignal der Übereinstimmungsschaltung 520 zu benutzen. Wenn gemäß 33 der BIST-Modus, der von der hinteren Zustandsmaschine 316 nach dem Aufrufen des diagnostischen Modus ausgeführt wird, zum Löschen von Flashspeicherzellen des Arrays aus Kernflashspeicherzellen 304 dient, wird das BREAD-Signal auf den logisch tiefen Zustand gesetzt (d. h. den Zustand „0"). Somit wird, wenn das Signal AUTOL in dem logisch hohen Zustand ist, das MATCH-Signal des Signalselektors 966 aus 34 das generierte Übereinstimmungsausgangssignal MATCHD von der diagnostischen Übereinstimmungslogik 964.
  • Gemäß 4 werden vor dem Beginn des diagnostischen Modus das AUTOL-Signal und das IRSTB-Signal des Signalspeichers 1028 auf den logisch tiefen Zustand gesetzt, so dass das generierte Übereinstimmungsausgangssignal MATCHD in den logisch tiefen Zustand gezwungen wird. Somit wird zu Beginn des BIST-Modus zum Löschen von Flashspeicherzellen aus dem Arrays aus Kernflashspeicherzellen 304 das generierte Übereinstimmungsausgangssignal MATCHD in den logisch tiefen Zustand (d. h. den Zustand „0") an einer ersten Adresse eines ersten Sektors des Arrays aus Kernflashspeicherzellen 304 gezwungen. Gemäß 16 ist das Array aus Kernflashspeicherzellen 304 in mehrere horizontale Sektoren 602, 604, 606, 608, 610, 612, 614 und 616 aufgeteilt, wie dies mit Bezug zu 16 beschrieben ist. Wenn die hintere Zustandsmaschine 316 in einen ersten Lösch-VERIFY-Zustand übergeht, wird das generierte Übereinstimmungsausgangssignal MATCHD in den logisch tiefen Zustand (d. h. den Zustand „0") gezwungen, und somit besitzt die erste Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen ein negatives (Test-) Ergebnis (Schritt 1074 aus 39).
  • Auf Grund eines derartigen negativen Ergebnisses geht die hintere Zustandsmaschine 316 in einen Lösch-JUICE-Zustand über. Gemäß 35 werden das ER-Signal auf dem fünften Eingangsanschluss 1038, das JUICE-Signal auf dem zehnten Eingangsanschluss 1048, das STEST-Signal auf dem achten Eingangsanschluss 1044, das BEREXE-Signal auf dem sechsten Eingangsanschluss 1040, das ERIP-Signal auf dem ersten Eingangsanschluss 1030 und das BAPDE_OPT-Signal-Signal auf dem siebenten Eingangsanschluss 1042 in dem Lösch-JUICE-Zustand von der BIST-Steuerung 502 in den logisch hohen Zustand versetzt, wobei ferner das AUTOL-Signal auf dem elften Eingangsanschluss 1050 von dem Modusdecodierer 962 in den logisch hohen Zustand gesetzt wird. Die anderen Signale (d. h. die Signale APDE, BACLK, SACLK und PGM) werden in dem Löschen-JUICE-Zustand von der BIST-Steuerung 502 in den logisch tiefen Zustand gesetzt. Somit wird das generierte Über einstimmungsausgangssignal MATCHD in einen logisch hohen Zustand (d. h. den Zustand „1") in dem Lösch-JUICE-Zustand gesetzt (Schritt 1076 aus 39).
  • Nach dem Lösch-JUICE-Zustand geht die BIST-Steuerung 502 in einen nachfolgenden Lösch-Verifizierzustand über, wobei das generierte Übereinstimmungsausgangssignal MATCHD in einen logisch hohen Zustand (d. h. den Zustand „1") von dem vorhergehenden Lösch-JUICE-Zustand gesetzt ist und somit besitzt die erste Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen ein positives Ergebnis (Schritt 1078 aus 39). Auf Grund eines derartigen positiven Ergebnisses steuert gemäß 33 die hintere Zustandsmaschine 316 den Adressensequenzierer 524 an, um eine nachfolgende Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 zu erhöhen, indem das BACLK-Signal auf einen logisch hohen Zustand gesetzt wird (Schritt 1080 aus 39).
  • Gemäß 35 bleibt, selbst wenn das BATLK-Signal in dem hohen logischen Zustand gesetzt ist, da die Signale STEST, BEREXE, ERIP und BAPDE_OPT in den logisch hohen Zustand sind, das generierte Übereinstimmungsausgangssignal MATCHD in dem logisch hohen Zustand eingerastet (d. h. den Zustand „1"). Nachdem der Adressensequenzierer 524 die nachfolgende Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 erhöht, prüft die BIST-Steuerung 502, ob die Adresse nach der letzten Adresse des ersten Sektors des Arrays aus Kerflashspeicherzellen 304 liegt (Schritt 1082 aus 39).
  • Wenn die Adresse nach der letzten Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 liegt, dann steuert die hintere Zustandsmaschine 316 den Adressensequenzierer 524 an, um eine erste Adresse eines nachfolgenden Sektors des Sektors aus Kernflashspeicherzellen 304 zu erhöhen, indem das SACLK-Signal auf einen logisch hohen Zustand gesetzt wird (Schritt 1084 aus 39). Ansonsten werden die Schritte 1078, 1080 und 1082 aus 39 für jede der nachfolgenden Adressen des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 wiederholt, bis der Adressensequenzierer 524 eine Adresse erreicht, die nach der letzten Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 liegt.
  • Im Falle, dass die Adresse hinter der letzten Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 liegt, so dass die hintere Zustandsmaschine 316 den Adressensequenzierer 524 zur Erhöhung einer ersten Adresse eines nachfolgenden Sektors des Arrays aus Kernflashspeicherzellen 304 durch Setzen des SACLK-Signals auf einen logisch Zustand (Schritt 1084 aus 39) ansteuert, prüft die BIST-Steuerung 502, ob eine derartige Adresse hinter dem letzten Sektor des Arrays aus Kernflashspeicherzellen 304 liegt (Schritt 1086 aus 39). Wenn die Adresse hinter dem letzten Sektor des Arrays aus Kernflashspeicherzellen 304 liegt, dann wird ein APDE (Autoprogrammierstörung nach Löschung) im Schritt 1088 aus 39 ausgeführt.
  • Ansonsten werden die Schritte 1074, 1076, 1078, 1080, 1082, 1084 und 1086 aus 39 für jeden der nachfolgenden Sektoren des Arrays aus Kernflashspeicherzellen 304 wiederholt, bis der Adressensequenzierer 524 eine Adresse erreicht, die hinter dem letzten Sektor des Arrays aus Kernflashspeicherzellen 304 liegt. Zu beachten ist, dass die Schritte 1074 und 1076 lediglich für eine erste Adresse jedes Sektors aus Kernflashspeicherzellen in dieser Ausführungsform der vorliegenden Erfindung ausgeführt werden, da das generierte Übereinstimmungsausgangssignal MATCHD auf den logisch tiefen Zustand zurückgezwungen wird, wenn das SACLK-Signal an dem vierten Eingangsanschluss (sowie die Signale AUTOL, STEST, BEREXE, ERIP und BAPDE_OPT) aus 35 in dem logisch hohen Zustand im Schritt 1084 aus 39 sind.
  • Jedoch wird das generierte Übereinstimmungsausgangssignal MATCHD auf den logisch hohen Zustand in dem Lösch-JUICE-Zustand im Schritt 1076 aus 39 für jede der nachfolgenden Adressen innerhalb eines Sektors aus Kernflashspeicherzellen zurückgesetzt. Beispielsweise werden die Schritte 1074 und 1076 lediglich für die erste Adresse jedes Sektors aus Kernflashspeicherzellen ausgeführt, da die Zeitdauer für den Lösch-JUICE-Zustand relativ lang, etwa beispielsweise 10 Millisekunden, ist, so dass das Ausführen der Lösch-JUICE-Zustand für jede Adresse eines Sektors unerwünschterweise lange dauern würde.
  • Wenn die Adresse hinter dem letzten Sektor das Arrays aus Kernflashspeicherzellen 304 im Schritt 1086 liegt, wurde jede Adresse des Arrays aus Kernflashspeicherzellen hinsichtlich des Löschens verifiziert, und die einzelne APDE (Autoprogrammierstörung nach Löschung) wird im Schritt 1088 aus 39 ausgeführt. Durch den Schritt 1088 aus 39 wird das generierte Übereinstimmungsausgangssignal MATCHD auf einen logisch tiefen Zustand (d. h. einem Zustand „0") gezwungen, da das SACLK-Signal sowie die Signale AUTOL, STEST, BEREXE, ERIP und BAPDE_OPT aus 35 im Schritt 1084 aus 39 in den logisch hohen Zustand gesetzt sind. Ferner wird, wenn das SACLK-Signal im Schritt 1084 aus 39 in den logisch hohen Zustand gesetzt ist, der Adressensequenzierer 524 auf eine erste Spaltenadresse des ersten Sektors aus Kernflashspeicherzellen 304 durch die BIST-Steuerung 502 zurückgesetzt.
  • Die hintere Zustandsmaschine 316 geht in einen ersten APDE (Autoprogrammierstörung nach Löschung)-Verifizierzustand bei der ersten Spaltenadresse des ersten Sektors aus Kernflashspeicherzellen 304 über, wobei das generierte Übereinstimmungsausgangssignal MATCHD in den logisch tiefen Zustand gezwungen wird (d. h. einen Zustand „0"). Somit besitzt der erste APDE-Verifizierzustand ein negatives Ergebnis für die erste Spaltenadresse des ersten Sektors aus Kernflashspeicherzellen 304 (Schritt 1088 aus 39). Auf Grund eines derartigen negativen Ergebnisses geht die hintere Zustandsmaschine 316 in einen APDE (Autoprogrammierstörung nach Löschung)- JUICE-Zustand über (Schritt 1090 aus 39).
  • Gemäß 35 werden das APDE-Signal auf dem zweiten Eingangsanschluss 1032, das JUICE-Signal auf dem zehnten Eingangsanschluss 1048, das STEST-Signal auf dem achten Eingangsanschluss 1044, das BEREXE-Signal auf dem sechsten Eingangsanschluss 1040, das PGM-Signal auf dem neunten Eingangsanschluss 1046 und das BAPDE_OPT-Signal auf dem siebenten Eingangsanschluss 1042 durch die BIST-Steuerung 402 im APDE-JUICE-Zustand in den logisch hohen Zustand gesetzt, wobei zusätzlich das AUTOL-Signal auf dem elften Eingangsanschluss 1050 von dem Modusdecodierer 962 in den logisch hohen Zustand gesetzt wird. Die anderen Signale (d. h. die Signale ERIP, ER, SACLK und SACLK) werden von der BIST-Steuerung 502 im APDE-JUICE-Zustand in den logisch tiefen Zustand gesetzt. Somit wird das generierte Übereinstimmungsausgangssignal MATCHD in dem APDE-JUICE-Zustand in einen logisch hohen Zustand (d. h. den Zustand „1") gesetzt (Schritt 1090 aus 39).
  • Nach dem APDE-JUICE-Zustand geht die BIST-Steuerung 502 in einen nachfolgenden APDE (Autoprogrammierstörung nach Löschung)- Verifizierzustand über, wobei das generierte Übereinstimmungsausgangssignal MATCHD von dem vorhergehenden APDE-JUICE-Zustand in den logisch hohen Zustand (d. h. den Zustand „1") gesetzt ist, und daher besitzt die erste Spaltenadresse des ersten Sektors des Arrays aus Kernflashspeicherzellen ein positives Ergebnis (Schritt 1092 aus 39). Auf Grund dieses positiven Ergebnisses steu ert gemäß 33 die hintere Zustandsmaschine 316 den Adressensequenzierer 524 an, eine nachfolgende Spaltenadresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 zu erhöhen, indem das BACLK-Signal auf einen logisch hohen Zustand gesetzt wird (Schritt 1094 aus 39).
  • Selbst wenn gemäß 35 das BACLK-Signal auf den logisch hohen Zustand gesetzt ist, da die Signale AUTOL, STEST, BEREXE, APDE und BAPDE_OPT in den logisch hohen Zustand gesetzt sind, bleibt das generierte Übereinstimmungsausgangssignal MATCHD in dem logisch hohen Zustand verriegelt (d. h. dem Zustand „1"). Nachdem der Adressensequenzierer 524 die nachfolgende Spaltenadresse des ersten Sektors aus Kernflashspeicherzellen 304 erhöht, prüft die BIST-Steuerung 502, ob eine derartige Spaltenadresse hinter der letzten Spaltenadresse des ersten Sektors das Arrays aus Kernflashspeicherzellen 304 liegt (Schritt 1096 aus 39). Es wird ein APDE-VERFIFY-Zustand von der hinteren Zustandsmaschine jeweils für eine Spaltenadresse einzeln ausgeführt, da ein APDE-VERIFY-Prozess typischerweise den gesamten Leckstrom bestimmt, der durch eine Spalte des Arrays aus Kernflashspeicherzellen fließt, wie dies dem Fachmann auf dem Gebiet der Flashspeicherbauelemente bekannt ist.
  • Wenn die Spaltenadresse hinter der letzten Adresse des ersten Sektors des Arrays aus Kerflashspeicherzellen 304 liegt, dann steuert die hintere Zustandsmaschine 316 den Adressensequenzierer 524 an, eine erste Spaltenadresse eines nachfolgenden Sektors des Arrays aus Kernflashspeicherzellen 304 zu erhöhen, indem das SACLK-Signal auf einen logisch hohen Zustand gesetzt wird (Schritt 1098 aus 39). Ansonsten werden die Schritte 1092, 1094 und 1096 aus 39 für jede der nachfolgenden Spaltenadressen des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 wiederholt, bis der Adressensequenzierer 524 eine Spaltenadresse erreicht, die hinter der letzten Spaltenadresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 liegt.
  • Wenn die Spaltenadresse hinter der letzten Spaltenadresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 liegt, so dass die hintere Zustandsmaschine 316 den Adressensequenzierer 524 zur Erhöhung einer erste Spaltenadresse eines nachfolgenden Sektors aus Kernflashspeicherzellen 304 durch Setzen des SACLK-Signals auf einen logisch hohen Zustand ansteuert (Schritt 1098 aus 39), prüft die BIST-Steuerung 502, ob eine derartige Adresse hinter dem letzten Sektor des Arrays aus Kernflashspeicherzellen 304 liegt (Schritt 1100 aus 39). Wenn die Spaltenadresse hinter dem letzten Sektor des Arrays aus Kernflashspeicherzellen 304 liegt, dann endet der BIST-Modus.
  • Ansonsten werden die Schritte 1088, 1090, 1092, 1094, 1096, 1098 und 1100 aus 39 für jeden der nachfolgenden Sektoren des Arrays aus Kernflashspeicherzellen 304 wiederholt, bis der Adressensequenzierer 524 eine Spaltenadresse erreicht, die hinter dem letzten Sektor aus Kernflashspeicherzellen 304 liegt. Zu beachten ist, dass die Schritte 1088 und 1090 lediglich für eine erste Spaltenadresse jedes Sektors aus Kernflashspeicherzellen in dieser Ausführungsform der vorliegenden Erfindung ausgeführt werden, da das generierte Übereinstimmungsausgangssignal in den logisch tiefen Zustand zurückgesetzt wird, wenn das SACLK-Signal an dem vierten Eingangsanschluss sowie die Signale AUTOL, STEST, BEREXE, ADPE und BAPDE_OPT aus 35 im Schritt 1098 aus 39 in den logisch hohen Zustand versetzt sind.
  • Jedoch wird das generierte Übereinstimmungsausgangssignal MATCHD in den logisch hohen Zustand dem APDE-JUICE-Zustand im Schritt 1092 aus 39 für jede der nachfolgenden Spaltenadressen innerhalb eines Sektors aus Kernflashspeicherzellen zurückgesetzt. Beispielsweise werden die Schritte 1088 und 1090 lediglich für die erste Spaltenadresse jedes Sektors aus Kerflashspeicherzellen ausgeführt, da während des APDE-JUICE-Zustands APDE-Spannungen an jede Flashspeicherzelle des gesamten Sektors aus Flashspeicherzellen angelegt werden, wie dies dem Fachmann auf dem Gebiet von Flashspeicherbauelementen bekannt ist.
  • Wenn die Spaltenadresse hinter dem letzten Sektor des Arrays aus Kernflashspeicherzellen 304 im Schritt 1100 aus 39 liegt, wurde jede Adresse des Arrays aus Kernflashspeicherzellen im Hinblick auf APDE verifiziert, und der BIST-Modus endet. Für die einzelne APDE (Autoprogrammierstörung nach Löschen) aus 39, wobei das BAPDE OPT-Signal im logisch hohen Zustand ist, wird zunächst im Wesentlichen das gesamte Array aus Kernflashspeicherzellen 304 während der Schritte 1074, 1076, 1078, 1080, 1082, 1084 und 1086 aus 39 im Hinblick auf das Löschen verifiziert, und anschließend wird im Wesentlichen das gesamte Array der Kernflashspeicherzellen 304 im Hinblick auf APDE über die Schritte 1088, 1090, 1092, 1094, 1096, 1098 und 1100 aus 39 verifiziert.
  • Andererseits zeigt 40 das Flussdiagramm aus Zuständen, die von der hinteren Zustandsmaschine 316 aus 33 eingenommen werden, wenn ein BIST-Modus, der von der hinteren Zustandsmaschine 316 nach dem Aufrufen des diagnostischen Modus ausgeführt wird, zum Löschen von Flashspeicherzellen des Arrays aus Kernflashspeicherzellen 304 mit dazwischen ausgeführtem APDE (Autoprogrammierstörung nach Löschung) dient. Für einen derartigen BIST-Modus wird das BAPDE_OPT-Signal-Signal auf den logisch tiefen Zustand gesetzt (d. h. den Zustand „0").
  • Gemäß den 33 und 40 wird der diagnostische Modus gestartet (Schritt 1102 aus 40), wenn das externe Testsystem 318 das vorbestimmte Bitmuster zum Aufrufen des diagnostischen Modus einspeist. In diesem Falle wird das AUTOL-Signal von dem Modusdecodierer 962 auf den logisch hohen Zustand gesetzt (d. h. den Zustand „1"). Ferner gibt gemäß 33 bei Beginn des diagnostischen Modus der Anwender Daten in die BIST-Schnittstelle 312 zum Aufrufen des aktuellen BIST-Modus ein. Wenn ferner der diagnostische Modus aufgerufen ist, verwendet die hintere Zustandsmaschine 316 das MATCH-Signal des Signalselektors 966 während eines VERIFY-Zustands, anstatt dass lediglich das Ausgangssignal der Übereinstimmungsschaltung 520 verwendet wird. Wenn gemäß 34 der BIST-Modus, der von der hinteren Zustandsmaschine 316 nach dem Aufrufen des diagnostischen Modus ausgeführt wird, zum Löschen von Flashspeicherzellen des Arrays aus Kerflashspeicherzellen 304 dient, wird das BREAD-Signal auf einen logisch tiefen Zustand (d. h. in den Zustand „0") gesetzt. Somit ist, wenn das AUTOL-Signal auf den logisch hohen Zustand gesetzt ist, das MATCH-Signal des Signalselektors 966 aus 34 das generierte Übereinstimmungsausgangssignal MATCHD der diagnostischen Übereinstimmungslogik 964.
  • Gemäß 36 werden vor dem Beginn des diagnostischen Modus die Signale AUTOL und IRSTB des Signalspeichers 1028 in den logisch tiefen Zustand gesetzt, so dass das generierte Übereinstimmungsausgangssignal MATCHD in den logisch tiefen Zustand gezwungen wird. Somit wird bei Beginn des BIST-Modus zum Löschen von Flashspeicherzellen des Arrays aus Kernflashspeicherzellen 304 das generierte Übereinstimmungsausgangssignal MATCHD in einen logisch tiefen Zustand (d. h. den Zustand „0") bei einer ersten Adresse eines ersten Sektors das Arrays aus Kernflashspeicherzellen 304 gezogen. Gemäß 16 ist das Arrays aus Kernflashspeicherzellen 304 in mehrere horizontale Sektoren 602, 604, 606, 608, 610, 612, 614 und 616 aufgeteilt, wie dies mit Bezug zu 16 be schrieben ist. Wenn die hintere Zustandsmaschine 316 in einen ersten Lösch-VERIFY-Zustand übergeht, wird das generierte Übereinstimmungsausgangssignal MATCHD in einen logisch tiefen Zustand gezwungen (d. h. den Zustand „0"), und somit besitzt die erste Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen ein negatives Ergebnis (Schritt 1104 aus 40).
  • Auf Grund eines derartigen negativen Ergebnisses geht die hintere Zustandsmaschine 316 in einen Lösch-JUICE-Zustand über. Gemäß 35 werden das ER-Signal auf dem fünften Eingangsanschluss 1038, das JUICE-Signal auf dem zehnten Eingangsanschluss 1048, das STEST-Signal auf dem achten Eingangsanschluss 1044, das BEREXE-Signal auf dem sechsten Eingangsanschluss 1040 und das BEREXE-Signal auf dem ersten Eingangsanschluss 1030 von der BIST-Steuerung 502 in dem Lösch-JUICE-Zustand in den logisch hohen Zustand gesetzt, wobei ferner das AUTOL-Signal auf dem elften Eingangsanschluss 1050 von dem Modusdecodierer 942 in den logisch hohen Zustand gesetzt wird. Die anderen Signale (d. h. die Signale BAPDE OPT, APDE, BACLK, SACLK und PGM) werden von der BIST-Steuerung 502 in dem Lösch-JUICE-Zustand auf den logisch tiefen Zustand gesetzt. Somit bleibt das generierte Übereinstimmungsausgangssignal MATCHD in dem logisch tiefen Zustand (d. h. den Zustand „0") im Lösch-JUICE-Zustand für die zwischenliegend ausgeführte APDE (Schritt 1106 aus 40).
  • Bei dazwischen ausgeführter APDE wird ein erster APDE-VERIFY-Zustand nach dem Lösch-JUICE-Zustand eingenommen (Schritt 1108 aus 40). Da das Signal MATCHD in dem logisch tiefen Zustand verriegelt bleibt, besitzt der erste APDE-VERIFY-Zustand ein negatives Resultat. Mit einem derartigen negativen Ergebnis wird ein APDE (Autoprogrammierstörung nach Löschung) JUICE-Zustand eingenommen (Schritt 1110 aus 40). Gemäß 35 werden während des APDE-JUICE-Zustands die Signale APDE, JUICE, PGM, BEREXE und STEST von der BIST-Steuerung 502 in den logisch hohen Zustand gesetzt, wobei zudem das AUTOL-Signal von dem Modusdecodierer 962 in den logisch hohen Zustand gesetzt wird. Die anderen Signale (d. h. die Signale BAPDE OPT, ERIP, ER, BACLK und SACLK) werden von der BIST-Steuerung 502 in dem APDE-JUICE-Zustand in den tiefen logischen Zustand versetzt. Somit wird das generierte Übereinstimmungsausgangssignal MATCHD in dem APDE-JUICE-Zustand in einen logisch hohen Zustand gesetzt (d. h. den Zustand „1") (Schritt 1110 aus 40).
  • Nach dem APDE-JUICE-Zustand geht die BIST-Steuerung 502 in einen nachfolgenden APDE (Autoprogrammiersteuerung nach Löschen)- VERIFY-Zustand über, wobei das generierte Übereinstimmungsausgangssignal MATCHD auf den logisch hohen Zustand (d. h. den Zustand „1") aus dem vorhergehenden APDE-JUICE-Zustand gesetzt ist, und somit besitzt die erste Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen ein positives Ergebnis (Schritt 1112 aus 40). Auf Grund eines derartigen positiven Ergebnisses steuert gemäß 33 die hintere Zustandsmaschine 316 den Adressensequenzierer 542 an, um eine nachfolgende Spaltenadresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 zu erhöhen, indem das BACLK-Signal auf einen logisch hohen Zustand gesetzt wird (Schritt 1114 aus 40).
  • Gemäß 35 bleibt das generierte Übereinstimmungsausgangssignal MATCHD auf dem logisch hohen Zustand (d. h. den Zustand „1"), selbst wenn das BACLK-Signal in den logisch hohen Zustand gesetzt ist, da die Signale AUTOL, STEST, BEREXE und APDE in den logisch hohen Zustand gesetzt sind. Nachdem der Adressensequenzierer 524 die nachfolgende Spaltenadresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 erhöht hat, prüft die BIST-Steuerung 502, ob eine derartige Spaltenadresse hinter der letzten Spaltenadresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 liegt (Schritt 1116 aus 40). Es wird ein APDE-VERIFY-Zustand durch die hintere Zustandsmaschine für eine Spaltenadresse nach der anderen durchgeführt, da ein APDE-VERIFY-Prozess typischerweise den gesamten Leckstrom vorgibt, der durch eine Spalte des Arrays aus Kernflashspeicherzellen fließt, wie dies dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt ist.
  • Wenn die Spaltenadresse hinter der letzten Spaltenadresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 liegt, dann steuert die hintere Zustandsmaschine 316 den Adressensequenzierer 524 an, um auf die erste Adresse des ersten Sektors aus Kernflashspeicherzellen zurückzukehren, die den ersten Lösch-VERIFY-Zustand zu Beginn am Schritt 11040 aus 40 mit negativem Ergebnis absolviert hat (Schritt 1118 aus 40). Ansonsten werden die Schritte 1112, 114 und 116 aus 40 für jede der nachfolgenden Spaltenadressen des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 wiederholt, bis der Adressensequenzierer 524 eine Spaltenadresse erreicht, die hinter der letzten Spaltenadresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 liegt.
  • Wenn die Spaltenadresse hinter der letzten Spaltenadresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 liegt, steuert die hintere Zustandsmaschine 316 den Adressensequenzierer 524 an, um zu der ersten Adresse des ersten Sektors aus Kernflashspeicherzellen zurückzukehren, die den ersten Lösch-VERIFY-Zustand zu Beginn im Schritt 1104 aus 40 mit negativem Ergebnis absolviert hat, indem das BACLK-Signal auf einen logisch hohen Zustand gesetzt wird (Schritt 1118 aus 40). Da gemäß 35 die Signale AUTOL, STEST, BEREXE, BACLK und ERIP in den logisch hohen Zustand gesetzt sind, wird das MATCHD-Signal in den logisch hohen Zustand gezwungen (Schritt 1118 aus 40).
  • Danach wird ein zweiter Lösch-VERIFY-Zustand für die erste Adresse des ersten Sektors aus Kernflashspeicherzellen eingenommen, wobei das MATCHD-Signal in den logisch hohen Zustand gesetzt ist (Schritt 1120 aus 40), so dass der zweite Lösch-VERiFY-Zustand ein positives Ergebnis besitzt. Auf Grund eines derartigen positiven Ergebnisses steuert gemäß 33 die hintere Zustandsmaschine 316 den Adressensequenzierer 524 an, eine nachfolgende Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 zu erhöhen, indem das BACCK-Signal auf einen logisch hohen Zustand gesetzt wird (Schritt 1122 aus 40).
  • Gemäß 35 bleibt das generierte Übereinstimmungsausgangssignal MATCHD in dem logisch hohen Zustand (d. h. den Zustand „1"), selbst wenn das BACLK-Signal auf den logisch hohen Zustand gesetzt ist, da die Signale ATOL, STEST, BEREXE und ERIP in dem logisch hohen Zustand sind. Nachdem der Adressensequenzierer 524 die nachfolgende Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 erhöht hat, prüft die BIST-Steuerung 502, ob eine derartige Adresse hinter der letzten Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 liegt (Schritt 1124 aus 40).
  • Wenn die Adresse hinter der letzten Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 liegt, dann steuert die hintere Zustandsmaschine 316 den Adressensequenzierer 524 an, eine erste Adresse eines nachfolgenden Sektors des Arrays aus Kernflashspeicherzellen 304 zu erhöhen, indem das SACLK-Signal auf den logisch hohen Zustand gesetzt wird (Schritt 1126 aus 40). Ansonsten werden die Schritte 1120, 1122 und 1124 aus 40 für jede der nachfolgenden Adressen des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 wiederholt, bis der Adressensequenzierer 524 eine Adres se erreicht, die hinter der letzten Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 liegt.
  • Wenn die Adresse hinter der letzten Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen 304 liegt, so dass das die hintere Zustandsmaschine 316 den Adressensequenzierer 524 zum Erhöhen einer ersten Adresse eines nachfolgenden Sektors des Arrays aus Kernflashspeicherzellen 304 durch Setzen des SACLK-Signals auf den hohen logisch hohen Zustand (Schritt 1126 aus 40) ansteuert, prüft die BIST-Steuerung 502, ob eine derartige Adresse hinter dem letzten Sektor des Arrays aus Kernflashspeicherzellen 304 liegt (Schritt 1128 aus 40). Wenn die Adresse hinter dem letzten Sektor des Arrays aus Kernflashspeicherzellen 304 liegt, dann endet der BIST-Modus aus 40.
  • Ansonsten werden die Schritte 1104, 1106, 1108, 1110, 1112, 1114, 1116, 1118, 1120, 1122, 1124, 1126 und 1128 aus 40 für jeden der nachfolgenden Sektoren des Arrays aus Kernflashspeicherzellen wiederholt, bis der Adressensequenzierer 524 eine Adresse erreicht, die hinter dem letzten Sektor des Arrays der Kernflashspeicherzellen 304 liegt. Zu beachten ist, dass die Schritte 1104, 1106, 1108 und 1110 lediglich für eine erste Adresse jedes Sektors aus Kernflashspeicherzellen in dieser Ausführungsform der vorliegenden Erfindung ausgeführt werden, da das generierte Übereinstimmungsausgangssignal MATCHD zurück in den logisch tiefen Zustand gezwungen wird, wenn das SACLK-Signal an dem vierten Eingangsanschluss sowie die Signale AUTOL, STEST, BEREXE und ERIP aus 35 auf den logisch hohen Zustand im Schritt 1126 aus 40 gesetzt werden.
  • Jedoch wird das generierte Übereinstimmungsausgangssignal MATCHD in den logisch hohen Zustand beim APDE-JUICE-Zustand im Schritt 1110 aus 40 für jede der nachfolgenden Adressen innerhalb eines Sektors aus Kernflashspeicherzellen zurückgesetzt. Beispielsweise werden die Schritte 1104, 1106, 1108 und 1110 lediglich für die erste Adresse jedes Sektors aus Kernflashspeicherzellen ausgeführt, da die Zeitdauer für den Lösch-JUICE-Zustand relativ lang ist, etwa beispielsweise 10 Millisekunden, so dass das Ausführen des Lösch-JUICE-Zustands für jede Spaltenadresse unvorteilhaft lang ist.
  • Wenn die Spaltenadresse hinter dem letzten Sektor des Arrays aus Kernflashspeicherzellen 304 im Schritt 1128 aus 40 liegt, wurde jede Adresse des Arrays aus Kernflashspeicherzellen hinsichtlich dese Löschens verifiziert und hinsichtlich von APDE verifiziert, und der BIST-Modus endet. Für den zwischengeschalteten APDE (Autoprogrammierstörung nach Löschung) aus 40, wobei das BAPDE_OPT-Signal-Signal auf den logisch tiefen Zustand gesetzt wird, wird das Array aus Kernflashspeicherzellen 304 sowohl hinsichtlich des Löschens verifiziert als auch hinsichtlich von APDE verifiziert, wobei ein Sektor nach dem anderen abgearbeitet wird, im Gegensatz zu dem einzelnen APDE (Autoprogrammierstörung nach Löschen) aus 39, in welchem im Wesentlichen das gesamte Array aus Kernflashspeicherzellen zunächst hinsichtlich des Löschens verifiziert wird und danach das gesamte Array aus Kernflashspeicherzellen 304 im Wesentlichen im Hinblick auf APDE verifiziert wird.
  • Gemäß 13 können Knoten der hinteren Zustandsmaschine 316, etwa der Knoten der Programier/Lösch-Spannungsquelle 510 sondiert werden, um zu bestimmen, ob die hintere Zustandsmaschine 316 während der Schritte aus 39 oder 40 funktionsfähig ist, wenn der BIST-Modus, der von der hinteren Zustandsmaschine 316 nach dem Aufrufen des diagnostischen Modus ausgeführt wird, zum Löschen von Flashspeicherzellen des Arrays aus Kernflashspeicherzellen 304 mit einzelnen oder zwischengeschalteten APDE (Autoprogrammierstörung nach Löschung) dient. Beispielsweise liefert der Knoten der Programier/Lösch-Spannungsquelle 510 aus 13 eine Wortleitungsspannung von –9,5 Volt, wenn der Lösch-JUICE-Zustand in 39 oder 40 eingenommen wird, wenn die hintere Zustandsmaschine 316 funktioniert. Mit einer derartigen Sondierung der Knoten der hinteren Zustandsmaschine 316 aus 13 während der Schritte der 39 oder 40 wird die Funktionsfähigkeit der hinteren Zustandsmaschine 316 bestimmt, wenn ein BIST-Modus zum Löschen von Flashspeicherzellen des Arrays aus Kernflashspeicherzellen 304 dient.
  • Wenn gemäß 34 der BIST-Modus, der von der hinteren Zustandsmaschine 316 nach dem Aufrufen des diagnostischen Modus ausgeführt wird, zum Lesen eines entsprechenden logischen Zustands dient, der für jede Flashspeicherzelle der Kernflashspeicherzellen programmiert oder gelöscht ist, ohne dass der Reparaturmodus aufgerufen ist, wird von der BIST-Schnittstelle 312 das BREAD-Signal in einen logisch hohen Zustand gesetzt, während das BREAD-Signal in den logischen tiefen Zustand gesetzt wird. In diesem Falle wird das MATCH-Signal von dem Signalselektor 966 in den logisch hohen Zustand gesetzt. Wenn der BIST-Modus, der von der hinteren Zustandsmaschine 316 nach dem Aufrufen des diagnostischen Modus ausgeführt wird, zum Lesen eines entsprechenden logischen Zustands dient, der für jede Flashspeicherzelle der Kernflashspeicherzellen programmiert oder ge löscht ist, folgt die hintere Zustandsmaschine 316 den Schritten des Flussdiagramms aus 18, wobei das MATCH-Signal von dem Signalselektor 966 im Lese-VERIFY-Zustand benutzt wird (Schritte 690 und 692 aus 18). Da das MATCH-Signal von dem Signalselektor 966 in den logisch hohen Zustand gesetzt ist, wird der Lese-VERIFY-Zustand mit einem positiven Ergebnis von der hinteren Zustandsmaschine 316 für jede Adresse im Wesentlichen des gesamten Arrays aus Kernflashspeicherzellen ausgeführt.
  • Wenn jedoch für eine beliebige Art eines BIST-Modus die Reparaturroutine aufgerufen ist, dann wird das BREP-Signal von der hinteren Zustandsmaschine 316 in den logisch hohen Zustand gesetzt. In diesem Falle wird gemäß 34 das MATCH-Signal von dem Signalselektor 966 durch das generierte Übereinstimmungsausgangssignal MATCHD der diagnostischen Übereinstimmungslogik 964 bestimmt. 41 zeigt ein Flussdiagramm der Zustände, die von der hinteren Zustandsmaschine 316 eingenommen werden, wenn ein BIST-Modus, der von der hinteren Zustandsmaschine nach dem Aufrufen des diagnostischen Modus ausgeführt wird, zum Lesen eines entsprechenden logischen Zustands, der für jede Flashspeicherzelle der Kernflashspeicherzellen programmiert oder gelöscht ist, dient, wobei die Reparaturroutine aufgerufen ist, wie dies beispielsweise durch das Flussdiagramm aus 23 der Fall ist.
  • Gemäß den 33 und 41 wird der diagnostische Modus gestartet (Schritt 1130 aus 41), wenn das externe Testsystem 318 das vorbestimmte Bitmuster zum Aufrufen des diagnostischen Modus einspeist. In diesem Falle wird das AUTOL-Signal von dem Modusdecodierer 962 in den logisch hohen Zustand gesetzt (d. h. den Zustand „1"). Ferner gibt gemäß 33 zu Beginn des diagnostischen Modus der Anwender Daten in die BIST-Schnittstelle 312 zum Aufrufen des aktuellen BIST-Modus ein. Wenn ferner der diagnostische Modus aufgerufen ist, verwendet die hintere Zustandsmaschine 316 das MATCH-Signal von dem Signalselektor 966 während eines beliebigen VERIFY-Zustands, anstatt dass lediglich das Ausgangssignal der Übereinstimmungsschaltung 520 verwendet wird. Wenn gemäß 34 die Reparaturroutine aufgerufen ist, wird das BREP-Signal auf den logisch hohen Zustand gesetzt. Wenn somit das AUTOL-Signal in den logisch hohen Zustand ist, ist das MATCH-Signal von dem Signalselektor 966 aus 34 das generierte Übereinstimmungsausgangssignal MATCHD der diagnostischen Übereinstimmungslogik 964.
  • Vor dem Beginn es diagnostischen Modus werden gemäß 36 das AUTOL-Signal und das IRSTB-Signal des Signalspeichers 1028 auf den logisch tiefen Zustand gesetzt, so dass das generierte Überreinstimmungsausgangssignal MATCHD in den logisch tiefen Zustand gezwungen wird. Somit wird bei Beginn des BIST-Modus das generierte Übereinstimmungsausgangssignal MATCHD in den logisch tiefen Zustand (d. h. den Zustand „0") bei einer ersten Adresse des Arrays aus Kernflashspeicherzellen 304 gebracht. Wenn die hintere Zustandsmaschine 316 einen ersten Lese-VERIFY-Zustand annimmt, wird das generierte Übereinstimmungsausgangssignal MATCHD in einen logisch tiefen Zustand (d. h. den Zustand „0") versetzt, und damit besitzt die erste Adresse des ersten Sektors des Arrays aus Kernflashspeicherzellen ein negatives Ergebnis (Schritt 1132 aus 41). Da die Reparaturroutine aufgerufen ist, geht die hintere Zustandsmaschine 316 in einen ersten CAM (inhaltsadressierbarer Speicher) VERIFY-Zustand über. Da das Signal MATCHD in den logisch tiefen Zustand gesetzt ist (d. h. den Zustand „0"), besitzt die erste Adresse des ersten Sektors das Arrays aus Kerflashspeicherzellen weiterhin ein negatives Ergebnis (Schritt 1134 aus 41).
  • Mit einem derartigen negativen Ergebnis des ersten CAM-VERIFY-Zustands und mit der Reparaturroutine, wie sie mit Bezug zu 27 beschrieben ist, geht die hintere Zustandsmaschine 316 in einen CAM (inhaltsadressierbarer Speicher) JUICE-Zustand über. Gemäß 35 werden die Signale PGM und JUICE in den logisch hohen Zustand während des CAM-JUICE-Zustands gesetzt, so dass das generierte Übereinstimmungsausgangssignal MATCHD in einen logisch hohen Zustand gesetzt wird (Schritt 1136 aus 41). Dann geht die hintere Zustandsmaschine 316 in einen zweiten CAM (inhaltsadressierbarer Speicher) VERIFY-Zustand mit einem positiven Ergebnis über (Schritt 1138 aus 41), da das generierte Übereinstimmungsausgangssignal MATCHD in den logisch hohen Zustand von dem vorhergehenden CAM-JUICE-Zustand aus Schritt 1136 aus 41 gesetzt ist.
  • Die hintere Zustandsmaschine 316 überprüft dann die reg_READ-Variable, um zu bestimmen, ob der BIST-Modus ein einzelner Lesemodus ist (Schritt 1141 aus 41). Einzelne Lesemodi sind dem Fachmann auf dem Gebiet von Flashspeichereinrichtungen bekannt. Beispielsweise wird die reg_READ-Variable von dem vorderen Decodierer 314 des BIST-Systems 300 in einen logisch hohen Zustand gesetzt, wenn der aktuelle BIST-Modus ein einzelner Lesemodus für das Lesen eines entsprechenden logischen Zustands jeder Flashspeicherzelle des Arrays aus Kernflashspeicherzellen ist, ohne dass Programmier- oder Löschspannungen an die Kernflashspeicherzellen angelegt werden, wie dies etwa für den durch das Flussdiagramm aus 23 dargestellten BIST-Modus der Fall ist. Ansonsten wird die reg_READ-Variable in einen logisch tiefen Zustand gesetzt, etwa für den BIST-Modus, wie er durch das Flussdiagramm aus 21 gezeigt ist.
  • Wenn der BIST-Modus ein einzelner Lesemodus ist, wobei die reg_READ-Variable in den logisch hohen Zustand gesetzt ist, dann setzt die hintere Zustandsmaschine 316 den Adressensegenzierer 524 auf eine Anfangsadresse des aktuellen Blocks aus Kernflashspeicherzellen zurück, der die aktuelle Flashspeicherzelle enthält, wobei das BACLK-Signal auf einen logisch hohen Zustand gesetzt ist (Schritt 1144 aus 41). Wenn das BACLK-Signal auf einen logisch hohen Zustand gesetzt ist, wird das MATCHD-Signal in den logisch tiefen Zustand gesetzt, und die Schritte 1132, 1134, 1136, 1138, 1141 und 1144 werden wieder mit der Anfangsadresse des aktuellen Blocks aus Kernflashspeicherzellen wiederholt. In diesem Modus werden die Schritte 1132, 1134, 1136, 1138, 1141 und 1144 unendlich oft in einer Schleife wiederholt, bis die Stromversorgung von der BIST-Zustandsmaschine abgekoppelt wird, während in einer derartigen Schleife aus Schritten gemäß den 13 und 26 Knotenpunkte der hinteren Zustandsmaschine 316 und insbesondere die Komponenten aus 26, die während der Reparaturroutine verwendet werden, etwa der Knoten der CAM-Programmierspannungsquelle 838 oder der CAM-Grenzspannungsquelle 840 sondiert werden können, um zu bestimmen, ob die hintere Zustandsmaschine 316 während der Schritte aus 41 funktionsfähig ist.
  • Wenn alternativ der BIST-Modus kein einzelner Lesemodus ist, wobei die reg_READ-Variable in den logisch tiefen Zustand gesetzt ist, dann prüft die hintere Zustandsmaschine 316, ob der BIST-Modus ein eingebetteter Lesemodus ist, wobei die emb_READ-Variable gesetzt ist (Schritt 1142 aus 41). Beispielsweise wird die emb_READ-Variable in den logisch hohen Zustand im Schritt 584 aus 15 oder 21 gesetzt. Wenn der BIST-Modus ein eingebetteter Lesemodus mit der emb_READ-Variable in dem logisch hohen Zustand ist, dann geht die hintere Zustandsmaschine 316 in einen zweiten Lese-VERIFY-Zustand über, wobei das generierte Übereinstimmungsausgangssignal MATCHD für ein positives Ergebnis in einen logisch hohen Zustand gesetzt ist (Schritt 1145 aus 41). Wenn andererseits der BIST-Modus ein eingebetteter Lesemodus ist, wobei die emb_READ-Variable in den logisch tiefen Zustand gesetzt ist, geht die hintere Zustandsmaschine 316 in einen Programmier-, Lösch- oder APDE-VERIFY-Zustand über, da die Reparaturroutine in den aktuellen BIST-Modus zurückkehrt, der die Reparaturroutine aufgerufen hat. In diesem Falle wird das generierte Übereinstimmungsausgangssignal MATCHD für ein positives Ergebnis in den logisch hohen Zustand gesetzt (Schritt 1143 aus 41).
  • In beiden Fällen, wenn die emb_READ-Variable in den logisch hohen Zustand oder den logischen tiefen Zustand gesetzt ist, steuert die hintere Zustandsmaschine 316 danach den Adressensequenzierer 524 an, um eine nachfolgende Adresse des Arrays aus Kernflashspeicherzellen 304 zu erhöhen, indem das BACLK-Signal auf den logisch hohen Zustand gesetzt wird (Schritt 1146 aus 41). Bei einem logisch hohen Zustand des BACLK-Signals wird das generierte Übereinstimmungsausgangssignal MATCHD in einen logisch tiefen Zustand gesetzt (d. h. einen Zustand „0"). Nachdem der Adressensequenzierer 542 die nachfolgende Adresse des Arrays aus Kernflashspeicherzellen 304 erhöht hat, überprüft die BIST-Steuerung 502, ob eine derartige Adresse hinter der letzten Adresse des Arrays aus Kernflashspeicherzellen 304 liegt (Schritt 1148 aus 41). Wenn die Adresse hinter der letzten Adresse des Arrays aus Kernflashspeicherzellen 304 liegt, dann endet der BIST-Modus. Ansonsten werden die Schritte 1132, 1134, 1136, 1138, 1141, 1142, 1145, 1146 und 1148 aus 41 für jede der nachfolgenden Adressen des Arrays aus Kernflashspeicherzellen 304 wiederholt, bis der Adressensequenzierer 524 eine Adresse erreicht, die hinter der letzten Adresse des Arrays aus Kernflashspeicherzellen 304 liegt.
  • Gemäß den 13 und 26 können Knotenpunkte der hinteren Zustandsmaschine 316 und insbesondere die Komponenten aus 26, die während der Reparaturroutine benutzt werden, etwa der Knoten von der CAM-Programmierspannungsquelle 838 oder der CAM-Grenzspannungsquelle 840, sondiert werden, um zu bestimmen, ob die hintere Zustandsmaschine 316 während der Schritte aus 41 funktionsfähig ist. Mit einer derartigen Sondierung der Knotenpunkte der hinteren Zustandsmaschine 316 aus 13 und insbesondere der Komponenten aus 26, die während der Reparaturroutine während der Schritte aus 41 verwendet werden, wird die Funktionsfähigkeit der hinteren Zustandsmaschine 316 bestimmt, wenn die Reparaturroutine während des BIST-Modus aufgerufen wird.
  • Auf diese Weise wird in einem beliebigen der BIST-Modi der 38, 39, 40 und 41 bei Anwendung des generierten Übereinstimmungsausgangssignals MATCHD durch die hintere Zustandsmaschine 316, wobei das Signal unabhängig von der Funktionsfähigkeit des Arrays der Kernflashspeicherzellen 304 ist, die Funktionsfähigkeit der hinteren Zustandsma schine 316 unabhängig von dem Funktionsverhalten des Arrays aus Kernflashspeicherzellen 304 bestimmt. Somit kann die Genauigkeit des Prüfens des Arrays aus Kernflashspeicherzellen 304 mit dem BIST-System 300 durch einen derartigen unabhängigen Test der hinteren BIST-Zustandsmaschine 316 sichergestellt werden. Mit einer derartigen Prüfung zur Gewährleistung der Funktionsfähigkeit der hinteren BIST-Zustandsmaschine 316 ist, wenn das Array aus Kernflashspeicherzellen 304 als nicht funktionsfähig nach dem Testen mit dem BIST-System 300 erachtet wird, eine derartige Funktionsunfähigkeit zuverlässig, da diese als ein Fehler innerhalb des Arrays aus Kernflashspeicherzellen 304 bewertet wird und nicht als ein Fehler innerhalb der hinteren BIST-Zustandsmaschine 316.
  • Das Vorhergehende ist lediglich beispielhaft und soll nicht als einschränkend erachtet werden. Die hierin beschriebenen und dargestellten Zahlen sind lediglich beispielhafter Natur. Die vorliegende Erfindung ist lediglich eingeschränkt in der Form, wie sie durch die folgenden Patentansprüche und deren Äquivalente definiert ist.
  • F. Adressensequenzierer innerhalb des BIST- (eingebautes Selbsttest-) Systems
  • Das BIST- (eingebautes Selbsttest-) System 300 führt mehrere BIST- (eingebaute Selbsttest-) Modi aus, wobei jeder BIST-Modus der Reihe nach das Array aus Flashspeicherzellen 304 in einer entsprechenden Sequenz durchläuft. Somit ist ein Adressensequenzierer innerhalb des BIST-Systems 300 zum effizienten Durchlaufen des Arrays aus Flashspeicherzellen 304 gemäß der entsprechenden Sequenz für jeden der mehreren BIST-Modi wünschenswert.
  • In einem weiteren Aspekt der vorliegenden Erfindung zeigt 42 eine Blockansicht eines Adressensequenzierers 1200, der auf dem Halbleiterchip hergestellt ist, der darauf ausgebildet auch das Array aus Flashspeicherzellen 304 aufweist. Der Adressensequenzierer 1200 kann beispielsweise für den Adressensequenzierer 524 der 13 oder 26 eingesetzt werden. Gemäß 7 und 33 wird der Adressensequenzierer 1200 auf dem Halbleiterchip hergestellt, der darauf ausgebildet auch das Array aus Flashspeicherzellen 304 aufweist, wobei der Sequenzierer als Teil des BIST- (eingebauter Selbsttest) Systems 300 gemäß einem Aspekt der vorliegenden Erfindung hergestellt wird.
  • Gemäß 42 umfasst der Adressensequenzierer 1200 Adressensequenziererpuffer 1202 und eine Adressensequenzierersteuerlogik 1204. Jeder Puffer der Adressensequenziererpuffer 1202 speichert ein einzelnes Datenbit, wobei Puffer zur Datenspeicherung dem Fachmann auf dem Gebiet der Elektronik bekannt sind. In einer Ausführungsform der vorliegenden Erfindung weisen gemäß den 42 und 43 die Adressensequenziererpuffer 1202 20 Puffer zur Bereitstellung von 20 Bits auf, die die Adresse jeder Flashspeicherzelle das Arrays aus Kernflashspeicherzellen 304 kennzeichnen.
  • Gemäß der beispielhafte Ausführungsform aus 43 umfassen die Adressensequenziererpuffer 1202 eine erste Vielzahl aus 6 Puffern 1206 zur Bereitstellung einer ersten Gruppe aus 6 Bits A [5:0], die eine Y-Adresse für eine Flashspeicherzelle des Arrays aus Flashspeicherzellen 304 bezeichnen. Die Y-Adresse ist eine Bitleitungsadresse, die angibt, mit welcher Bitleitung eine Flashspeicherzelle verbunden ist, wie dies dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt ist. Ferner enthalten die Adressensequenziererpuffer 1202 eine zweite Mehrzahl aus 9 Puffern 1208 zur Bereitstellung einer zweiten Gruppe aus 9 Bits A[14:6], die eine X-Adresse für eine Flashspeicherzelle des Arrays aus Flashspeicherzellen 304 angibt. Die X-Adresse ist eine Wortleitungsadresse, die angibt, mit welcher Wortleitung eine Flashspeicherzelle verbunden ist, wie dies dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt ist.
  • Ferner enthalten die Adressensequenziererpuffer 1202 eine dritte Mehrzahl aus drei Puffern 1210 zur Bereitstellung einer dritten Gruppe aus drei Bits A[17:15], die eine Sektoradresse für eine Flashspeicherzelle des Arrays aus Flashspeicherzellen 304 kennzeichnen. Das Array aus Flashspeicherzellen 304 ist in eine Vielzahl von Sektoren aufgeteilt und die Sektoradresse kennzeichnet, welcher Sektor eine Flashspeicherzelle beinhaltet, wie dies dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt ist. Schließlich enthalten die Adressensequenziererpuffer 1202 eine vierte Mehrzahl aus zwei Puffern 1212 zur Bereitstellung einer vierten Gruppe aus zwei Bits A[19:18], die eine Redundanzblockadresse für eine Flashspeicherzelle des Arrays aus Flashspeicherzellen 304 kennzeichnen. Die mehreren Sektoren sind in redundante Blöcke eingeteilt, wobei jeder redundante Block mehrere Sektoren aufweist. Die Redundanzblockadresse zeigt an, welcher redundante Block eine derartige Flashspeicherzelle beinhaltet.
  • Gemäß 42 umfasst die Adressensequenziererssteuerlogik 1204 eine Y/X-Adressensetz/Rücksetzlogik 1214, eine Y/X-Adressensequenziersteuerlogik 1216, eine CAM (inhaltsadressierbare Speicher) Sequenziersteuerlogik 1218, eine OTP (einmal programierbare) Sequenziersteuerlogik 1220 und eine Redundanzsequenziersteuerlogik 1222. Die Adressensequenzierersteuerlogik 1204 ist verbunden mit und erhält Steuersignale von der BIST- (eingebauter Selbsttest) Schnittstelle 312, dem vorderen BIST-Schnittstellendecodierer 314, der hinteren BIST-Zustandsmaschine 316, der Redundanz-CAM-Logik 884 und den Adressensequenziererpuffern 1202. Die BIST-Schnittstelle 312, der vordere BIST-Schnittstellendecodierer 314 und die hintere BIST-Zustandsmaschine 316 sind im Aufbau und/oder ihrer Funktion ähnlich, wie dies bereits mit Bezug zu 7 beschrieben ist und die Redundanz-CAM-Logik 884 ist in Aufbau oder Funktion ähnlich, wie dies bereits mit Bezug zu 29 beschrieben ist.
  • Gemäß 42 erhält die Adressensequenzierersteuerlogik 1204 die Steuersignale von der BIST-Schnittstelle 312 und/oder dem vorderen BIST-Schnittstellendecodierer 314 und/oder der hinteren BIST-Zustandsmaschine 316 und/oder der Redundanz-CAM-Logik 884 und/oder den Adressensequenziererpuffern 1202 für einen aktuellen BIST- (eingebauter Selbsttest) Modus. Die Adressensequenziererlogik 1204 steuert dann die Adressensequenziererpuffer 1202 an, um der Reihe nach eine entsprechende Sequenz aus Adressen in Abhängigkeit dieser Steuersignale für jeden der mehreren BIST- (eingebauter Selbsttest) Modi zu durchlaufen.
  • Beispiele derartiger Steuersignale für BIST- (eingebauter Selbsttest) Modi und die entsprechenden Sequenzen aus Adressen werden nunmehr beschrieben. Gemäß 44 empfängt die Y/X-Adressensetz/Rücksetzlogik 1214 ein Steuersignal von dem vorderen BIST-Schnittstellendecodierer 314, das den Beginn eines aktuellen BIST- (eingebauten Selbsttest) Modus kennzeichnet. In diesem Falle setzt die Y/X-Adressensetz/Rücksetzlogik 1214 ein YACRST-Steuersignal, um die mehreren ersten Adressensequenziererpuffer 1206 zurückzusetzen, so dass die erste Gruppe aus 6 Bits A[5:0] eine Anfangs-Y-Adresse des Arrays aus Kernflashspeicherzellen 304 kennzeichnet. Beispielsweise kann die Start-Y-Adresse aus allen 6 Bits im hohen Zustand, etwa (111111) bestehen, wenn die erste Gruppe aus 6 Bits A[5:0] um ein Bit für jede nachfolgende Y-Adresse verringert wird.
  • Ferner setzt die Y/X-Adressensetz/Rücksetzlogik 1214 ein XACRST-Steuersignal, um die zweite Mehrzahl aus Adressensequenziererpuffern 1208 zurückzusetzen, so dass die zweite Gruppe aus 9 Bits A[14:6] eine anfängliche X-Adresse des Arrays aus Flashspeicherzellen 304 zu Beginn eines aktuellen BIST (eingebauten Selbsttest) Modus kennzeichnet. Beispielsweise kann die anfängliche X-Adresse aus allen 9 Bits im hohen Zustand bestehen, etwa „111111111", wenn die zweite Gruppe aus 9 Bits A[14:6] für jede nachfolgende X-Adresse um eins verringert wird.
  • In ähnlicher Weise empfängt die Y/X-Adressensetz/Rücksetzlogik 1214 ein SACRST-Steuersignal, um die dritte Mehrzahl aus Adressensequenziererpuffer 1210 zurückzusetzen, so dass die dritte Gruppe aus drei Bits A[17:15] eine anfängliche Sektoradresse des Arrays aus Flashspeicherzellen 304 zu Beginn eines aktuellen BIST- (eingebauten Selbsttest) Modus kennzeichnet. Beispielsweise kann die anfängliche Sektoradresse aus allen drei Bits im hohen Zustand bestehen, etwa „111", wenn die dritte Gruppe aus drei Bits A[17:15) um ein Bit für jede nachfolgende Sektoradresse verringert wird.
  • Ferner setzt die Y/X-Adressensetz/Rücksetzlogik 1214 ein RBACRST-Steuersignal, um die vierte Mehrzahl an Adressensequenziererpuffern 1212 zurückzusetzen, so dass die vierte Gruppe aus zwei Bits A[19:18) eine anfängliche Redundanzblockadresse des Arrays aus Flashspeicherzellen 304 zu Beginn eines aktuellen BIST- (eingebauten Selbsttest) Modus kennzeichnet. Beispielsweise kann die anfängliche Redundanzblockadresse aus den zwei Bits im hohen Zustand bestehen, etwa „11", wenn die vierte Gruppe aus zwei Bits A[19:18] für jede nachfolgende Redundanzblockadresse um eins verringert wird.
  • Gemäß 45 ist in einer weiteren Ausführungsform der vorliegenden Erfindung die zweite Mehrzahl der Adressensequenziererpuffer 1208 für die X-Adresse mit einem ersten X-Adressendecodierer 1230 und einem zweiten X-Adressendecodierer 1232 verbunden. Die zweite Gruppe aus 9 Bits aus der zweiten Mehrzahl aus Adressensequenziererpuffer 1208 ist mit den X-Adressendecodierem 1230 und 1232 verbunden, die diese Adressenbits zur Auswahl der Wortleitung des Arrays aus Flashspeicherzellen decodieren. Derartige Adressendecodierer sind dem Fachmann auf dem Gebiet der Flashspeichereinnchtungen bekannt. In einer Ausführungsform der vorliegenden Erfindung ist für einen effektiveren Aufbau der X-Adressendecodierer 1230 und 1232 der zweite X-Adressendecodierer 1232 mit dem Halbleiterchip, der darauf ausgebildet das Array aus Flashspeicherzellen aufweist, als ein Spiegelbild des ersten X-Adressendecodierers 1230 aufgebaut. In diesem Falle invertiert die Y/X-Adressensequenziersteuerlogik die Reihenfolge einer Teilmenge aus Bits A [9:6] der zweiten Gruppe aus Bits, um eine physikalisch benachbart liegende Reihenfolge der Wortleitungen des Arrays aus Flashspeicherzellen 304 zu erreichen.
  • Beispielsweise erhält der erste X-Adressendecodierer 1230 die Teilmenge aus Bits A[9:6], wobei die Reihenfolge dieser Bits invertiert ist, um die Sequenz von der ersten bis zur sechszehnten Wortleitung von der Oberseite des Arrays aus Flashspeicherzellen 304 zu durchlaufen. Da der zweite X-Adressendecodierer 1232 als ein Spiegelbild des ersten X-Adressendecodierers 1230 aufgebaut ist, durchläuft dann der zweite X-Adressendecodierer 1232 beginnend von der 32 bis zur 17 Wortleitung von unten des Arrays aus Flashspeicherzellen 304, wenn der zweite X-Adressendecodierer 1232 die Teilmenge aus Bits A[9:6] erhält, ohne dass die Reihenfolge dieser Bits umgekehrt ist. In diesem Falle ist die Reihenfolge der Wortleitungen zunächst mit dem ersten X-Adressendecodierer 1230 und dann mit dem zweiten X-Adressendecodierer 1232 nicht physikalisch benachbart, da der zweite X-Adressendecodierer 1232 zu der 32 Wortleitung springt, nachdem der erste X-Adressendecodierer 1230 zu der 16 Wortleitung weitergeht.
  • Wenn jedoch die Reihenfolge der Teilmenge aus Bits A[9:6] invertiert ist, geht, nachdem der erste X-Adressendecodierer 1230 die erste bis zur 16 Wortleitung von der Oberseite her des Arrays aus Flashspeicherzellen 304 durchläuft, der zweite X-Adressendecodierer 1230 von der 17 bis zur 32 Wortleitung, so dass die Abfolge bzw. Sequenzierung der Wortleitungen mit dem ersten X-Adressendecodierer 1230 und dem zweiten X-Adressendecodierer 1232 physikalisch benachbart verläuft. Das benachbarte signifikante Bit A[10] ist mit der Y/X-Adressensequenziersteuerlogik 1216 verbunden. Das benachbarte signifikante Bit A[10] ändert seinen Wert, nachdem der erste X-Adressendecodierer 1230 die 1 bis 16 Wortleitungen von der Oberseite her des Arrays aus Kernflashspeicherzellen 304 durchlaufen hat. Wenn daher das benachbarte signifikante Bit A[10] den Wert ändert, steuert die Y/X-Adressensequenziersteuerlogik 1216 die zweite Mehrzahl der Adressensequenziererpuffer 1208 an, um die Reihenfolge der Teilmenge aus Bits A[9:6] zu invertieren, so dass der zweite X-Adressendecodierer 1232 die 17 bis 32 Wortleitung durchläuft.
  • Gemäß 46 erhält in einer weiteren Ausführungsform der vorliegenden Erfindung die OTP-Sequenziersteuerlogik 1220 ein Steuersignal von dem vorderen BIST- Schnittstellendecodierer 314, das anzeigt, dass ein aktueller BIST- (eingebauter Selbsttest) Modus zum Zugreifen auf OTP (einmal programmierbare) Flashspeicherzellen dient. OTP-Flashspeicherzellen sind ein Teil des Arrays aus Flashspeicherzellen 304, die typischerweise lediglich einmal zur Speicherung von Information programmiert werden, etwa mit Identifizierungsinformation zur Beschreibung des Arrays aus Flashspeicherzellen 304. Der Anwender greift auf die OTP-Flashspeicherzellen von dem externen Testsystem 318 über die BIST-Schnittstelle 312 aus zu. Der Anwender gibt die Adresse einer derartigen OTP-Flashspeicherzelle in ein Register 1234 der BIST-Schnittstelle 312 ein.
  • In dem Beispiel aus 46 gibt der Anwender 4 Datenbits BSRQ [6:3] in das Register 1234 der BIST-Schnittstelle 312 ein. Wenn die OTP-Sequenziersteuerlogik 1220 ein Steuersignal von dem vorderen BIST-Schnittstellendecodierer 314 erhält, das anzeigt, dass ein aktueller BIST- (eingebauter Selbsttest) Modus zum Zugreifen auf OTP- (einmal programmierbierbare) Flashspeicherzellen dient, steuert die OTP-Sequenziersteuerlogik 1220 Durchlassgates 1236 an, um eine Teilmenge der ersten Mehrzahl aus Adressensequenzierpuffer 1206, die die Teilmenge aus Bits A [4:1 ] bilden, mit dem Register 1234 der BIST-Schnittstelle 312 zu verbinden. Somit werden die vier Datenbits BRSQ [6:3] des Registers 1234 der BIST-Schnittstelle 312 in die Teilmenge der ersten Mehrzahl der Adressensequenziererpuffer 1206 übertragen, die die Teilmenge der Bits A [4:1 ] der ersten Gruppe aus Bits A [5:0] bilden. Das signifikanteste Bit A [5] und das wenigste signifikanteste Bit A [0] werden in diesem Falle nicht verwendet, und die OTP-Sequenziersteuerlogik 1220 steuert Durchlassgates an, um die Adressensequenziererpuffer für diese Bits A [5] und A [0] mit der negativen Versorgungsspannung VSS zu verbinden. Auf diese Weise gibt der Anwender die Adresse der OTP-Flashspeicherzelle an, auf die mittels des externen Testsystems 318 zugegriffen werden soll.
  • Gemäß den 42 und 47 umfasst die Redundanzsequenzierersteuerlogik 1222 eine Redundanzsequenziererfreigabelogik 1240 und einen Maximalspaltenadressenselektor 1242. Die Redundanzsequenziererfreigabelogik 1240 erhält Steuersignale von der BIST-Schnittstelle 312, dem vorderen BIST-Schnittstellendecodierer 314 und der Redundanz-CAM-Logik 884. Aus diesen Steuersignalen bestimmt die Redundanzsequenziererfreigabelogik 1240, ob redundante Flashspeicherzellen durch die Adressensequenziererpuffer 1202 durchlaufen werden sollen.
  • Gemäß 48 ist das Array aus Flashspeicherzellen 304 aus den Kernflashspeicherzellen 780 und Redundanzflashspeicherzellen 782 aufgebaut, wie sie bereits mit Bezug zu 22 beschrieben sind. Während des Durchlaufens der Spalten der Kernflashspeicherzellen 780 wird, wenn die letzte Spaltenadresse (d. h. Y-Adresse) einer letzten Spalte 1244 der Kernflashspeicherzellen erreicht ist, ein Signal MAXCA_REG gesetzt. Während des Durchlaufens der Spalten der redundanten Flashspeicherzellen 782 wird, wenn die letzte Spaltenadresse (d. h. Y-Adresse) einer letzten Spalte 1246 der redundanten Flashspeicherzellen erreicht ist, ein Signal TGLO1 gesetzt.
  • Die Redundanzsequenziererfreigabelogik 1240 erzeugt ein DIAG-Signal, das in einen logisch hohen Zustand gesetzt wird, wenn die redundanten Flashspeicherzellen 782 nicht durchlaufen werden, wobei lediglich die Kernflashspeicherzellen 780 durchlaufen werden, und dieses Signal wird auf einen logisch tiefen Zustand gesetzt, wenn die redundanten Flashspeicherzellen 782 zusammen mit dem Kerflashspeicherzellen 780 durchlaufen werden. Die Redundanzsequenzierfreigabelogik 1240 setzt das DIAG-Signal auf den logisch hohen Zustand für die folgenden Bedingungen:
    • (A) wenn ein Steuersignal von dem vorderen BIST-Schnittstellendecodierer 314 anzeigt, dass ein aktueller BIST-Modus zum diagonalen Programmieren des Arrays aus Kerflashspeicherzellen 780 dient;
    • (B) wenn ein Steuersignal von dem vorderen BIST-Schnittstellendecodierer 314 anzeigt, dass ein aktueller BIST-Modus zur diagonalen Löschverifizierung des Arrays aus Kernflashspeicherzellen 780 dient;
    • (C) wenn das YCE [1] von der Redundanz CAM-Logik 884 auf den logisch hohen Zustand gesetzt ist, wodurch angezeigt wird, dass alle verfügbaren redundanten Flashspeicherzellen bereits zum Reparieren fehlerhafter Kernflashspeicherzellen verwendet sind; und
    • (D) wenn ein Steuersignal der BIST-Schnittstelle 312 anzeigt, dass ein aktueller Testmodus für einen manuellen Testmodus anstelle eines BIST- (eingebauten Selbsttest) Modus dient.
  • Ansonsten setzt die Sequenziererfreigabelogik 1240 das DIAG-Signal auf den logisch tiefen Zustand.
  • Der Maximumspaltenadressenselektor 1242 wählt das MAXCA-Signal als ein UND-verknüpftes Signal des Signals TGLO1 oder des MAXCA_REG mit dem REDADD-Signal in Abhängigkeit davon, ob das DIAG-Signal in logisch hohem Zustand oder tiefem Zustand ist. Der Maximumspaltenadressenselektor 1242 wählt das MAX_REG-Signal als das MAXCA-Signal aus, wenn das Signal DIAG auf den logisch hohen Zustand gesetzt ist. Andererseits wählt der Maximumspaltenadressenselektor 1242 das Signal TGLO1, das mit dem REDADD-Signal Und-verknüpft ist, als das MAXCA-Signal aus, wenn das Signal DIAG auf den logisch tiefen Signal gesetzt ist.
  • 49 zeigt Zeitablaufdiagramme der Signale, wie sie von dem Maximalspaltenadressenselektor 1242 verwendet werden, wobei ein CLK-Signal 1250 enthalten ist. Gemäß den 48 und 49 wird das MAXCA_REG-Signal 1252 von der Y/X-Adressensequenzierersteuerlogik 1216 besetzt, wenn die Adresse der letzten Spalte 1244 der Kernflashspeicherzellen 780 innerhalb der ersten Mehrzahl aus Adressensequenziererpuffer 1206 für die Y-Adresse während einer ersten Periode 1251 des CLK-Signals 1250 erreicht wird. Zu Beginn einer zweiten Periode 1253 des CLK-Signals 1250 nach der ersten Periode steuert die Redundanzsequenziersteuerlogik 1222 die erste Mehrzahl aus Adressensequenziererpuffer 1206 für die Y-Adresse an, um die Spalten der redundanten Flashspeicherzellen 782 zu durchlaufen.
  • In einer Ausführungsform der vorliegenden Erfindung werden die mindestens zwei signifikanten Bits A [1:0] für das Durchlaufen der Spalten der redundanten Flashspeicherzellen 782 verwendet. In einer beispielhaften Flashspeichereinrichtung besitzt jeder redundante Block aus Flashspeicherzellen 16 Redundanz-I/O- (Eingänge/Ausgänge), um auf die redundanten Elemente zuzugreifen. In diesem Beispiel ist jedes redundante Element mit 8 dieser 16 redundanten I/O's verknüpft, so dass jeder redundante Block zwei redundante Elemente besitzt. Ferner sind vier redundanten Flashspeicherzellen mit jedem derartiger Eingänge/Ausgänge verknüpft. Somit werden die beiden Bits A [1:0] zum Durchlaufen jeder dieser vier redundanten Spalten der Redundanzflashspeicherzellen für jeden der I/O's verwendet.
  • Während des Durchlaufens der Spalten der redundanten Flashspeicherzellen 782 wird das Signal REDADD 1254 auf den logisch hohen Zustand gesetzt. Das Signal REDADD, das auf den logisch hohen Zustand gesetzt ist, verhindert, dass die vier signifikanteren Bits [5:2] ihren Wert ändern. Das Signal REDADD wird auf den logisch hohen Zustand gesetzt, wenn die letzten beiden signifikanten Bits A [1:0] gemäß der Sequenz „11", „10", „01" und „00" bei jeder Periode des CLK-Signals 1250 verringert werden, um die Spalten der redundanten Flashspeicherzellen 782 zu durchlaufen.
  • Gemäß den 48 und 49 werden nach dem Durchlaufen der Adresse „00" der letzten Spalte 1246 der redundanten Flashspeicherzellen 782 gemäß den letzten beiden signifikanten Bits A [1:0] der ersten Mehrzahl aus Adressensenquenziererpuffern 1206 das Signal TGLO1 1256 während einer fünften Periode 1257 des CLK-Signals 1250 in den logisch hohen Zustand gesetzt. Das Signal REDADD 1254 wird bis zum Ende der fünften Periode 1257 des CLK-Signals 1250 auf dem logisch hohen Zustand gehalten, wenn das Signal REDADD 1254 auf den logisch tiefen Zustand zurückgesetzt wird, wenn die letzten beiden signifikanten Bits A [0] wieder auf „11" gesetzt werden.
  • Gemäß den 47, 48 und 49 wählt, wenn das Signal DIAG auf den logisch hohen Zustand gesetzt wird, der Maximalspaltenadressenselektor 1242 das Signal MAXCA als das Signal MAXCA_REG, das früher während der ersten Periode 1251 des CLK-Signals 1250 gesetzt ist. In diesem Falle endet die Verarbeitung der Spalten aus Flashspeicherzellen 304 bei der letzten Spalte 1244 der Kernflashspeicherzellen 780 und die Spalten der redundanten Kernflashspeicherzellen 782 werden nicht verarbeitet. Wenn andererseits das DIAG-Signal auf den logisch tiefen Zustand gesetzt ist, wählt der Maximalspaltenadressenselektor 1242 das Signal MAXCA als das Signal TGLO1, das mit dem Signal REDAAD und verknüpft ist.
  • Ein derartiges MAXCA-Signal 1258 ist in 49 so gezeigt, dass es während der fünften Periode 1257 des CLK-Signal auf den logisch hohen Zustand gesetzt ist, nachdem die letzten beiden signifikanten Bits A [1:0] der ersten Mehrzahl aus Adressensequenziererpuffer 1206 die Spalten der redundanten Flashspeicherzellen 782 durchlaufen haben. In diesem Falle wird die Verarbeitung der Spalten aus Flashspeicherzellen 304 nicht bei der letzten Spalte 1244 der Kernflashspeicherzellen 780 beendet, da die Spalten der redundanten Flashspeicherzellen 782 ebenso verarbeitet werden.
  • Gemäß 50 erhält in einer weiteren Ausführungsform der vorliegenden Erfindung die Y/X-Adressensequenzierersteuerlogik 1216 ein Steuersignal von dem vorderen Schnittstel lendecodierer 314, das anzeigt, dass ein aktueller BIST- (eingebauter Selbsttest) Modus zum Testen eines entsprechenden WPCAM (schreibgeschützter Inhaltsadressierbarer Speicher) für jeden Sektor des Arrays aus Flashspeicherzellen 304 dient. Gemäß der Tabelle aus 51 ist in einem beispielhaften Array aus Flashspeicherzellen 304 dieses Array in 32 64 Kbyte (Kilobyte) Sektoren aus Flashspeicherzellen unterteilt. Ferner ist der letzte 64 Kbyte (Kilobyte) Sektor weiter in vier kleinere Teilsektoren unterteilt, mit einem Teilsektor Nr. 31, der ein 32 Kbyte (Kilobyte) Sektor ist, einem Teilsektor Nr. 32, der ein 8 Kbyte (Kilobyte) Sektor ist, einem Teilsektor Nr. 33, der ein 8 Kbyte (Kilobyte) Sektor ist, und einem Teilsektor Nr. 34, der ein 16 Kbyte (Kilobyte) Sektor ist. Alle der 31 vorhergehenden Sektoren, die in Sektor Nr. 0, Sektor Nr. 1, Sektor Nr. 2 usw. bis zum Sektor Nr. 30 enthalten, sind 64 Kbyte (Kilobyte) Sektoren.
  • Wenn gemäß den 50 und 51 die Sequenzierersteuerlogik 916 ein Steuersignal von dem vorderen Schnittstellendecodierer 314 empfängt, das anzeigt, dass ein aktueller BIST-(eingebauter Selbsttest) Modus zum Testen eines entsprechenden WPCAM für jeden Sektor des Arrays aus Flashspeicherzellen 304 dient, steuert die Sequenzierersteuerlogik 1216 das Durchlaufen der Bits A [19:15] der dritten und vierten Mehrzahlen aus Adressensequenziererpuffern 1210 und 1212. Ferner steuert in diesem Falle die Sequenzierersteuerlogik 1216 das Durchlaufen einer Teilmenge aus Bits A [14:12] der zweiten Mehrzahl aus Adressensequenziererpuffern 1208.
  • Gemäß der letzten Spalte der Tabelle aus 51 steuert für das Zugreifen auf den Sektor Nr. 34, den Sektor Nr. 33, den Sektor Nr. 32 und den Sektor Nr. 31 die Sequenzierersteuerlogik 1216 die Teilmenge der zweiten Mehrzahl aus Adressensequenziererpuffern 1208 zum Durchlaufen der 3 Bits A [14:12]. Die drei Bits A [14:12] werden von „110" für den Sektor Nr. 34 bis zu „101" für den Sektor Nr. 33, dann zu „100" für den Sektor Nr. 32 und dann zu „011" für den Sektor Nr. 31 durchlaufen. Während eines derartigen Durchlaufens der drei Bits A [14:12] werden die 5 Bits A [19:15] auf dem Bitmuster mit „111" gehalten. Wenn der Sektor Nr. 31 erreicht wird und die drei Bits A [14:12] „011" aufweisen, hat sich das Bit A [14] zu dem logisch tiefen Zustand „0" ausgehend von dem logisch hohen Zustand „1" geändert.
  • Nach diesem Zeitpunkt steuert die Y/X-Adressensequenzierersteuerlogik 1216 die dritten und vierten Adressensequenziererpuffer 1210 und 1212, um sich um 1 Bit zu verringern, um damit den Sektor Nr. 30, dann den Sektor Nr. 29 usw. bis hinab zu Sektor Nr. 0 zu durchlaufen. Ferner wird, nachdem der Sektor Nr. 30 mit den drei Bits A [14:12] in der Form „010" abgerufen wurde, der Puffer für das Bit A [14] von dem Puffer für das Bit A [15] abgekoppelt, und die Y/X-Adressensequenzierersteuerlogik 1216 verhindert, dass der Puffer für das Bit A [12] seinen Wert ändert, so dass die 3 Bits A [14:12] bei „010" für den Rest der 64 Kbyte Sektoren Nr. 30 bis Sektor Nr. 0 konstant gehalten werden.
  • Auf diese Weise werden die drei Bits A [14:12] der Teilmenge der zweiten Mehrzahl aus Adressensequenziererpuffern 1208 zum Durchlaufen der Adressen der Teilsektoren Nr. 34, Nr. 33, Nr. 32 und Nr. 31 verwendet. Nach dem Durchlaufen der Teilsektoren Nr. 34, Nr. 33, Nr. 32 und Nr. 31 werden die 3 Bits A [14:12] bei „010" konstant gehalten, und die 5 Bits A [19:15] der dritten und vierten Adressensequenziererpuffer 1210 und 1212 werden um 1 Bit vermindert, um dadurch den Rest der 64 Kbyte Sektor Nr. 30 bis Sektor Nr. 0 zu durchlaufen. Somit werden beim Durchlaufen der 31 64 Kbyte-Sektoren (Nr. 30 bis Nr. 0) die Teilsektoren Nr. 34, Nr. 33, Nr. 32 und Nr. 31 nicht mit den 3 Bits A [14:12] der Teilmenge der zweiten Mehrzahl aus Adressensequenziererpuffern 908 durchlaufen.
  • Gemäß 52 empfängt in einer weiteren Ausführungsform der vorliegenden Erfindung die Y/X-Adressensequenzierersteuerlogik 1216 ein Steuersignal von dem vorderen Schnittstellendecodierer 314, das anzeigt, dass ein aktueller BIST (eingebauter Sebsttestmodus) zum Einstellen des Löschens eines Satzes aus Referenzzellen dient. Gemäß 13 sind die Referenzflashspeicherzellen in der Referenzschaltung 514 enthalten und liefern die Referenzstrompegel, die von der Komparatorschaltung 516 verwendet werden, wie dies bereits mit Bezug zu 13 beschrieben ist. In einer Ausführungsform der Erfindung enthalten die Referenzflashspeicherzellen eine ERV- (Lösch-Verifzier-Referenzzelle zur Bereitstellung des Strompegels, der verwendet wird, um zu bestimmen, ob eine Flashspeicherzelle ausreichend während eines Lösch/Verfzierprozesses gelöscht wurde.
  • Ferner liefert eine RDV- (Lese/Verifizier) Referenzzelle den Strompegel, der während eines Lese/Verifzierprozesses verwendet wird. Eine PGMV (Programm/Verifizier-Referenzzelle) liefert den Strompegel, der verwendet wird, um zu bestimmen, ob eine Flashspeicherzelle während eines Programmier/Verifizierprozess ausreichend programmiert wurde. Gemäß den 51 und 53 liefert eine APDEV1-Referenzzelle den Strompegel, der während eines APDEV (automatische Programmierstörung nach Löschung-Verifizierung) Prozesses für die kleineren Teilsektoren (d. h. die Teilsektoren Nr. 31, 32, 33 und 34 in 51) verwendet wird. Andererseits liefert die APDEV2-Referenzzelle zusammen mit der APDEV1-Referenzzelle den Strompegel, der während eines APDEV (automatische Programmierstörung nach Löschen/Verifizierung) Prozesses für die regulären 64 Kbyte Sektoren (d. h. die Sektoren Nr. 0 bis 30 in 51) verwendet wird. Derartige Referenzzellen und derartige Verifizierungsprozesse sind dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt.
  • Wenn gemäß 52 die Y/X-Adressensequenzierersteuerlogik 1216 das Steuersignal von dem vorderen Schnittstellendecodierer 314 empfängt, das anzeigt, dass ein aktueller BIST-(eingebauter Selbsttest) Modus zum Einstellen bzw. Trimmen eines Satzes aus Referenzzellen dient, steuert die Y/X-Adressensequenzierersteuerlogik 1216 ein Durchlassgate 1260, um zwei Bits BSRQ [10:] des Registers 1234 der BIST-Schnittstelle 312 mit einer Teilmenge der ersten Mehrzahl aus Adressensequenziererpuffern 1206 zum Speichern der beiden wenigsten signifikanten Bits A [1:0] zu verbinden. In diesem Falle werden die beiden Bits BSRQ [10:9] des Registers 1234 der BIST-Schnittstelle 312 als die zwei wenigsten signifikanten Bits A [1:0] der ersten Mehrzahl aus Adressensequenziererpuffer 1206 übertragen. Der Anwender gibt die beiden Bits BSRQ [10:9] des Registers 1234 der BIST-Schnittstelle 312 über das externe Testsystem 318 ein.
  • Gemäß 53 werden die drei wenigsten signifikanten Bits A [2:0] der ersten Mehrzahl aus Adressensequenziererpuffer 1206 zum Durchlaufen der ERV, RDV, PGMV, APDEV1 und APDEV2 Referenzzellen verwendet. Die Tabelle aus 53 zeigt ein Beispiel der Bitmuster der letzten drei signifikanten Bits A [2:0], die die Adresse jeder der Referenzzellen ERV, RDV; PGMV, APDEV1 und APDEV2 repräsentieren. In dem Beispiel aus 53 ist die ERV-Referenzzelle durch das Bitmuster „111" für die letzten drei signifikanten Bits A [2:0] repräsentiert, die der Referenzzelle RDV ist durch das Bitmuster „110" repräsentiert, die Referenzzelle PGVM ist durch das Bitmuster „101" repräsentiert. Die Referenzzelle APDEV1 ist durch das Bitmuster „100" repräsentiert und die Referenzzelle APDEV2 ist durch das Bitmuster „011" repräsentiert.
  • 54 zeigt ein Flussdiagramm der Schritte zum Einstellen des Löschens der Referenzzellen als ein BIST (eingebauter Selbsttest) Modus. Die Schritte des Flussdiagramms aus 54, die die gleichen Bezugszeichen wie die Schritte des Flussdiagramms aus 15 auf weisen, sind ähnlich zu denen, die bereits mit Bezug zu 15 beschrieben sind. Gemäß 54 wird nach dem Startzustand (Schritt 552 und 554 aus 54) das Bitmuster der beiden wenigsten signifikanten Bits A [1:0] überprüft (Schritt 1261 aus 54). Wenn der Anwender das Bitmuster „11" für die beiden letzten signifikanten Bits A [1:0] nicht eingegeben hat, wird eine Programmiereinstellroutine gestartet (Schritt 1262 aus 54), um eine der Referenzzellen ERV, PDV, PGMV, APDEV1 und APDEV2 unter Anwendung von Programmierspannungen einzustellen bzw. zu trimmen. Eine derartige Programmierreferenzeinstellroutine ist dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt.
  • Andererseits gibt der Anwender das Bitmuster „11" für die beiden wenigsten signifikanten Bits A [1:0] zum Aufrufen der Löscheinstellroutine aus 54 ein. In diesem Falle ist das Bitmuster für die letzten drei signifikanten Bits A [2:0] „111", und es werden die Zustände VERIFY1 und VERIFY2 zum Bestimmen eingenommen, ob der Strompegel durch die Referenzzelle ERV innerhalb eines akzeptablen Bereichs in dem Übereinstimmungsschritt 562 liegt. Wenn der Strompegel durch die Referenzzelle ERV nicht in einem akzeptablen Bereich im Übereinstimmungsschritt 562 liegt, und wenn die Zahl MAX_PC von Löschpulsen nicht angelegt wurde (Schritt 564 aus 54), wird der JUICE-Zustand eingenommen (Schritt 566 und 568 aus 54), um einen Löschpuls an alle Referenzzellen ERV, RDV, PGMV, APDEV1 und APDEV2 anzulegen. Während eines derartigen JUICE-Zustandes wird ein erster Löschpuls mit einem ersten ARVSSO-Spannungspegel an die Referenzzellen ERV, ERD und PGMV angelegt, während ein zweiter Löschpuls mit einem zweiten Spannungspegel ARVSS1 an die Referenzzellen APDEV1 und APDEV2 angelegt wird.
  • Die Schritte 556,558, 560, 562, 564, 566 und 568 werden mit einer Erhöhung der Pulszahl wiederholt, bis der Strompegel durch die Referenzzelle ERV in einem akzeptablen Bereich liegt, wobei die Pulszahl noch nicht MAX_PC erreicht hat, oder bis die Pulszahl die Zahl MAX_PC erreicht, wobei der Strompegel durch die Referenzzelle ERV nicht in dem akzeptablen Bereich liegt. Wenn die Pulszahl die Zahl MAX_PC erreicht und der Strompegel durch die Referenzzelle ERV nicht in dem akzeptablen Bereich liegt, wird der HANG-Zustand eingenommen (Schritte 570 und 572 aus 54). In diesem Falle ist die aktuelle Referenzzelle nicht erfolgreich für das Löschen einjustiert.
  • Wenn der Strompegel durch die Referenzzelle ERV innerhalb des akzeptablen Bereichs liegt, und die Pulszahl die Zahl MAX_PC nicht erreicht hat, wurde die aktuelle Referenzzelle erfolgreich für das Löschen eingestellt. In diesem Falle wird das Bitmuster der beiden letzten signifikanten Bits A [1:0] erneut überprüft (Schritt 1264 aus 54). Wenn das Bitmuster der letzten beiden signifikanten Bits A [1:0] „01" beträgt, dann wurde die Referenzzelle PGMV für das Löschen eingestellt. Ansonsten ist die Referenzzelle PGMV noch nicht erreicht.
  • In diesem Falle wird das Bit des dritten am wenigsten signifikanten Bits A [2] überprüft (Schritt 1266 aus 54). Wenn gemäß 53 das dritte am wenigsten signifikante Bit A [2] einen logisch tiefen Zustand „0" erreicht, dann ist die letzte Referenzzelle APDEV2 erreicht. In diesem Falle ist das Einstellen für das Löschen für jede der Referenzzellen ERV, RDV, PGMV, APDEV1 und APDEV2 abgeschlossen. Somit werden die ersten und die zweiten Adressensequenziererpuffer 1202 und 1204 zu der Y-Anfangsadresse und X-Anfangsadresse zurückgesetzt (Schritt 1268 aus 54), und die Programmiereinstellroutine wird begonnen (Schritt 1270 aus 54), um die Referenzzelle ERV unter Anwendung von Programmierspannungen einzustellen. Eine derartige Referenzprogrammiereinstellroutine ist dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt.
  • Es sei nochmals auf den Schritt 1266 verwiesen; wenn das dritte signifikante Bit A [2] den logisch tiefen Zustand „0" nicht erreicht hat, dann werden die drei letzten signifikanten Bits A [2:0] um 1 Bit herabgesetzt (Schritt 1272 aus 54), um zu der nächsten der Referenzzellen weiterzugehen. Nachdem die Referenzzelle ERV für das Löschen eingestellt ist, werden die zwei letzten signifikanten Bits A [2:0] um ein Bit auf „110" herabgesetzt, um die Referenzzelle RDV über die Schritte 556, 558, 560, 562, 564, 566 und 568 für das Löschen einzustellen. Nachdem die Referenzzelle RDV für das Löschen eingestellt ist, werden die drei letzten signifikanten Bits A [2:0] um 1 Bit auf „101" herabgesetzt, um die Referenzzelle PGMV über die Schritte 556, 558, 560, 562, 564, 566 und 568 für das Löschen einzustellen.
  • Gemäß dem Schritt 1264 aus 54 beträgt, nachdem die Referenzzelle PGMPV für das Löschen eingestellt ist, das Bitmuster für die letzten zwei signifikanten Bits A [1:0] „01". In diesem Falle wird der Löschpuls mit dem ersten ARVSS0 Spannungspegel von den Referenzzellen ERV, RDV und PGMV abgekoppelt (Schritt 1274 aus 54), so dass ein Löschpuls während eines nachfolgenden JUICE-Zustands nun nicht mehr an den Referenzzellen ERV, RDV und PGMV anliegt (Schritte 566 und 568 aus 54). Der Löschpuls mit dem Spannungspegel ARVSS1 wird lediglich an die Referenzzellen APDEV1 und APDEV2 angekoppelt und angelegt und es wird kein Löschpuls zu diesem Zeitpunkt an die Referenzzellen ERV, RDV und PGMV angelegt, da die Referenzzellen ERV, RDV und PGMV bereits für das Löschen eingestellt sind.
  • Bei dem Verringern der letzten drei signifikanten Bits A [2:0] auf „100" wird die Referenzzelle APDEV1 über die Schritte 556, 558, 560, 562, 564, 566 und 568 für das Löschen eingestellt, wobei der zweite Löschpulsspannungspegel ARVSS1 lediglich an die Referenzzellen APDEV1 und APDEV2 während des JUICE-Zustands angelegt wird (Schritt 566 und 568 aus 54). Nachdem die Referenzzelle APDEV1 für das Löschen eingestellt ist, werden die letzten drei signifikanten Bits A [2:0] um ein Bit auf „011" für das Einstellen des Löschens der Referenzzelle APDEV2 über die Schritte 556, 568, 560, 562, 564, 566 und 568 herabgesetzt, wobei der zweite Löschpulsspannungspegel (ARVSS1) bei dem JUICE-Zustand lediglich an die Referenzzellen APDEV1 und APDEV2 angelegt ist (Schritt 566 und 568 aus 54). Nachdem die Referenzzelle APDEV2 für das Löschen eingestellt ist, werden die letzten drei signifikanten Bits A [2] im Schritt 1266 überprüft, und die Routine für das Einstellen des Löschens der Referenzzellen ERV, RDV, PGMV, APDEV1 und APDEV2 endet mit den Schritten 1268 und 1270 aus 54.
  • Gemäß 55 empfängt in einer weiteren Ausführungsform der vorliegenden Erfindung die Y/X-Adressensequenzierersteuerlogik 1216 Xminmax- und Yminmax- Steuersignale von dem vorderen Schnittstellendecodierer 314. Wenn das Steuersignal Xminmax auf den logisch hohen Zustand gesetzt ist, wobei das Steuersignal Yminmax auf den logisch tiefen Zustand gesetzt ist, steuert die Y/X-Adressensequenzierersteuelogik 1216 die erste Mehrzahl aus Adressensequenziererpuffer 1206 für die Y-Adresse, um jede der Bitleitungsadressen für eine Wortleitungsadresse der zweiten Mehrzahl aus Adressensequenziererpuffern 1208 für die X-Adresse zu durchlaufen, bevor eine derartige Wortleitungsadresse erhöht wird. In diesem Falle werden Flashspeicherzellen jeder Bitleitungsadresse für eine Reihe (d. h. eine Wortleitung) aus Flashspeicherzellen bearbeitet, bevor zu der nächsten Reihe aus Flashspeicherzelle weitergegangen wird.
  • Wenn andererseits das Steuersignal Xminmax auf den logisch tiefen Zustand gesetzt ist, wobei das Steuersignal Yminmax auf den logisch hohen Zustand gesetzt ist, steuert die Y/X-Adressensequenzierersteuerlogik 1216 die zweite Mehrzahl aus Adressensequenzie rerpuffern 1208 für die X-Adresse an, um jede der Wortleitungsadressen für eine Bitleitungsadresse der ersten Mehrzahl aus Adressensequenziererpuffern 1206 für die Y-Adresse zu durchlaufen, bevor eine derartige Bitleitungsadresse erhöht wird. In diesem Falle werden Flashspeicherzellen jeder Wortleitungsadresse für eine Spalte (d. h. Bitleitung) aus Flashspeicherzellen bearbeitet, bevor zu der nächsten Spalte aus Flashspeicherzellen weitergegangen wird. Derartige Steuersignale Xminmax und Yminmax bieten Flexibilität in der Reihenfolge der Bearbeitung der Reihen und Spalten aus Flashspeicherzellen für unterschiedliche BIST- (eingebaute Selbsttest) Modi.
  • Gemäß 56 empfängt in einer weiteren Ausführungsform der vorliegenden Erfindung die Y/X-Adressensequenzierersteuerlogik 1216 ein Steuersignal von dem vorderen Schnittstellendecodierer 314, das anzeigt, dass ein aktueller BIST- (eingebauter Selbsttestmodus) für eine schachbrettartige Programmierung aus Flashspeicherzellen dient. In einem derartigen Schachbrett-BIST-Modus wird auf abwechselnd programmierte Flashspeicherzellen zugegriffen, wie dies dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt ist. Wenn daher die Y/X-Adressensequenzierersteuerlogik 1216 das Steuersignal von dem vorderen Schnittstellendecodierer 314 empfängt, das anzeigt, dass ein aktueller BIST- (eingebauter Selbsttest) Modus für einen Schachbrett-BIST-Modus dient, dann steuert die Y/X-Adressensequenzierersteuerlogik 1216 die erste Mehrzahl aus Adressensequenziererpuffern 1206 so an, dass lediglich die Teilmenge der 5 Bits A [5:1] geändert wird, um die Y-Adresse um zwei zu erhöhen. D. h., das letzte signifikante Bit A [0] für eine Reihe aus Flashspeicherzellen wird nicht geändert, so dass abwechselnd Flashspeicherzellen innerhalb einer Reihe aus Flashspeicherzellen angesprochen werden, um damit in dem Schachbrett-BIST-Modus programmiert zu werden.
  • Jedoch wird das letzte signifikante Bit A [0] beim Erhöhen der Bits [14:6] der zweiten Mehrzahl aus Adressensequenziererpuffern 1208 ein Mal geändert. Nach diesem anfänglichen einmaligen Wechsel wird das letzte signifikante Bit A [0] nicht geändert, da lediglich die anderen Bits A [5:1] geändert werden, um die Y-Adresse um zwei zu erhöhen, so dass abwechselnd Flashspeicherzellen innerhalb einer Reihe aus Flashspeicherzellen angesprochen werden. Die anfängliche einmalige Zustandsänderung des letzten signifikanten Bits A [0] beim Erhöhen der Bits A [14:6] für die X-Adresse bewirkt, dass abwechselnd auf die Flashspeicherzellen innerhalb einer Spalte aus Flashspeicherzellen zugegriffen wird.
  • Gemäß 57 empfängt in einer weiteren Ausführungsform der vorliegenden Erfindung die Y/X-Adressensequenzierersteuerlogik 1216 ein Steuersignal von dem vorderen Schnittstellendecodierer 314, das anzeigt, dass ein aktueller BIST- (eingebauter Selbsttest) Modus für das diagonale Programmieren oder Löschen und Verifizieren von Flashspeicherzellen dient. In einem derartigen diagonalen BIST-Modus wird lediglich auf die Flashspeicherzellen in einer Diagonalposition eines Sektors aus Flashspeicherzellen zugegriffen. Eine Diagonalposition ist als eine Position definiert, die die gleiche Reihenzahl und die gleiche Spaltenzahl besitzt. Gemäß 58 ist ein beispielhafter Sektor 1280 aus 8 Teilsektoren aufgebaut, die einen ersten Teilsektor 1282, einen zweiten Teilsektor 1284, einen dritten Teilsektor 1286, einen vierten Teilsektor 1288, einen fünften Teilsektor 1290, einen sechsten Teilsektor 1292, einen siebenten Teilsektor 1294 und einen achten Teilsektor 1296 enthalten. Jeder der acht Teilsektoren 1282, 1284, 1286, 1288, 1290, 1292, 1294 und 1296 besitzt die gleiche Indexzahl für die Reihen und Spalten aus Flashspeicherzellen, so dass jeder der acht Teilsektoren eine entsprechende diagonale Linie aufweist, wie dies durch die gestrichelten Linien in 58 gezeigt ist.
  • Die Adressen der Flashspeicherzellen entlang einer diagonalen Linie eines der acht Teilsektoren aus 58 wird durchlaufen, indem ein Bit sowohl der Y-Adressenbits A [5:0] und der X-Adressenbits A [14:6] herabgesetzt wird. Zu beachten ist, dass die sechs Bits der Y-Adressenbits A [5:0] und die sechs wenigsten signifikanten X-Adressenbits A [11:6] beide um 1 Bit herabgesetzt werden, um auf jede der Flashspeicherzellen in einer Diagonalposition zuzugreifen. In diesem Falle werden die drei signifikantesten X-Adressenbits A [14:12] zum Durchlaufen jedes der 8 Teilsektoren 1282, 1284, 1286, 1288, 1290, 1292, 1294 und 1296 herabgesetzt. Somit wird auf acht diagonale Linien aus Flashspeicherzellen (in 58 als gestrichelte Linien jeden Teilsektor gezeigt) zugegriffen, wobei eine diagonale Linie durch jeden der acht Teilsektoren 1282, 1284, 1286, 1288, 1290, 1292, 1294 und 1296 verläuft.
  • In diesem Falle werden die sechs Bits der Y-Adresse A [5:0] auf eine Start-Y-Adresse initialisiert, die sechs Bits in logisch hohem Zustand „111111" aufweist, und die neun Bit der X-Adresse A (14:6] werden ebenso mit einer beginnenden X-Adresse initialisiert, die neun Bits mit logisch hohem Zustand aufweist „111111111". Dann wird die Y-Adresse A [5:0] um ein Bit herabgesetzt, und die X-Adresse A [14:6] wird ebenso bei jedem Taktzyklus des Adressensequenzierers um 1 Bit herabgesetzt, was bei jedem erfolgreichen diagonalen Pro grammierverifizier- oder diagonalen Löschverifiziervorgang stattfindet. Wenn die 6 Bits der Y-Adresse A [5:0] einen Wert für 6 Bits mit logisch tiefem Zustand „000000" erreichen, und wenn die letzten sechs signifikanten Bits der X-Adresse A [11:6] einen Wert von 6 Bits in logisch tiefem Zustand „ 000000" annehmen, wurde auf alle Flashspeicherzellen an den Diagonalpositionen eines der acht Teilsektoren aus 58 zugegriffen.
  • Zu diesem Zeitpunkt springen die 6 Bits der Y-Adresse A [5:0] wieder auf die Bitfolge in logisch hohem Zustand um „111111", und die 6 letzten signifikanten Bits der X-Adresse A [11:6] springen wiederum auf den logisch hohen Zustand „111111" um, wobei eine Herabsetzung um 1 Bit der drei signifikantesten X-Adressenbits A [14:12] stattfindet, um die Flashspeicherzellen der Diagonalpositionen des nächsten nachfolgenden Teilsektors 1282, 1284, 12886, 1288, 1290, 1292, 1294 und 1296 zu durchlaufen. Auf diese Weise wird auf die Flashspeicherzellen für jede der 8 Diagonallinien durch die acht Teilsektoren 1282, 1284, 1286, 1288, 1290, 1292, 1294 und 1296 zugegriffen, wenn die 6 Y-Adressenbits A [5:0] die sechs logisch tiefen Zustände „000000" annehmen und die neun X-Adressen-Bits A [14:6] die neun logisch tiefen Zustände "000000000" erreichen, wobei diese jeweils mit „111111" und „111111111" initialisiert wurden, und wobei die sechs Y-Adressenbits A [5:0] und die neuen X-Adressenbits A [14:6] um ein Bit bei jedem Taktzyklus des Adressensequenzierers herabgesetzt werden, was bei jeder erfolgreichen diagonalen Programmierverifzierung oder diagonalen Löschverifizierung der Fall ist.
  • In dieser Weise wird das Durchlaufen der Adressen des Arrays aus Kernflashspeicherzellen 304 für jeden BIST-Modus chipintern mittels der Adressensequenzierersteuerlogik 1204 und der Adressensequenziererpuffer 1202 durchgeführt. Somit werden Anschlussstifte des externen Testsystems 318 für derartiges Durchlaufen der Adressen des Arrays aus Flashspeicherzellen 304 nicht verwendet. Durch Anwendung einer derartigen minimierten Anzahl an Stiften des externen Testsystems 318 kann eine große Anzahl an Halbleiterchips gleichzeitig durch das externe Testsystem mit der begrenzten Gesamtanzahl an Stiften überprüft werden, um damit den Durchsatz während der Herstellung von Flashspeichereinrichtungen zu maximieren. Da ferner ein derartiges Durchlaufen der Adressen des Arrays aus Flashspeicherzellen chipintern ausgeführt wird, ist die Geschwindigkeit des Ausführens einer derartigen Adressensequenzierung nicht durch die Kapazität des externen Testsystems beschränkt. Somit kann ein derartiges Durchlaufen der Adressen des Arrays aus Flashspeicherzellen für die mehreren BIST-Modi effizienter gestaltet werden.
  • Das Voriergehende ist lediglich als Beispiel gedacht und soll nicht beschränkend sein. Beispielsweise sind beliebige Zahlen, die hierin beschrieben oder dargestellt sind, lediglich beispielhafter Natur. Ferner ist die Implementierung jeder der einzelnen Komponenten der 42 bis 48 dem Fachmann auf dem Gebiet der Elektronik bekannt. Beispielsweise kann die Adressensequenzierersteuerlogik 1204 mit der Y/X-Adressensetz/Rücksetz-Logik 1214, der Y/X-Adressensequenzierersteuerlogik 1216, der CAM-Sequenzierersteuerlogik 1218, der OTP-Sequenzierersteuerlogik 1220 und der Redundanzsequenzierersteuerlogik 1222 mit Datenverarbeitungseinrichtungen implementiert werden, etwa programmierbaren Logikbauelementen, um beispielsweise die hierin beschriebene Funktion auszuführen, wie der Fachmann auf dem Gebiet der Elektronik weiß. Die vorliegende Erfindung ist lediglich in der Weise beschränkt, wie dies in den folgenden Patentansprüchen und deren Äquivalenten definiert ist.
  • G. Mustergenerator im BIST- (eingebautes Selbsttest) System
  • Ein Mechanismus zum effizienten Erzeugen des gewünschten Bitmusters programmierter und gelöschter Zustände des Arrays aus Kernflashspeicherzellen ist für jeden der mehreren BIST-Modi wünschenswert. Im Stand der Technik wird ein derartiges gewünschtes Bitmuster in einem Speicher gespeichert. Bei der großen Anzahl an BIST-Modi kann ein derartiger Speicher für ein entsprechendes gewünschtes Bitmuster für jeden der mehreren BIST-Modi jedoch eine unerwünscht große Fläche des Halbleiterchips für die Speichereinrichtung einnehmen.
  • Gemäß 59 umfasst in einem weiteren Aspekt der vorliegenden Erfindung ein System 1300 zum Erzeugen des gewünschten Bitmusters für jeden der BIST-Modi mehrere Mustererzeugungslogikeinheiten 1302 und einen Musterselektor 1304. Gemäß den 13 und 59 sind der Adressensequenzierer 524, die hintere BIST-Steuerung 502 der Zustandsmaschine 316, die Übereinstimmungsschaltung 520 und das Array aus Flashspeicherzellen 304 aus 59 in der Funktion und Aufbau ähnlich zu den Blöcken aus 13 mit gleichen Referenzzeichen, wie sie hierin bereits beschrieben sind. Ferner enthalten die Mustererzeugungslogikeinheiten 1302 und der Musterselektor 1304 den Bitmustergenerator 518 aus 13 gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Die mehreren Mustererzeugungslogikeinheiten 1302 empfangen eine entsprechende X-Adresse und eine entsprechende Y-Adresse von dem Adressensequenzierer 524 für den entsprechenden Platz jeder Flashspeicherzelle des Arrays aus Flashspeicherzellen 304. Die mehreren Mustererzeugungslogikeinheiten 1302 verwenden die X-Adresse und die Y-Adresse, um mehrere Bitmuster zu erzeugen. Der Musterselektor 1304 empfängt Steuersignale von der hinteren BIST-Steuerung 502 der hinteren Zustandsmaschine 316 und die mehreren Bitmuster von den mehreren Mustererzeugungslogikeinheiten 1302. Der Musterselektor 1304 wählt eine der mehreren Bitmuster von den mehreren Bitmustererzeugungslogikeinheiten 1302 als das gewünschte Bitmuster in Abhängigkeit von den Steuersignalen von der hinteren BIST-Steuerung 502 aus.
  • Die Übereinstimmungsschaltung 520 ist mit dem Musterselektor 1304 verbunden und empfängt das gewünschte Bitmuster von dem Musterselektor 1304. Die Übereinstimmungsschaltung 520 vergleicht das gewünschte Bitmuster von dem Musterselektor 1304 mit dem gemessenen Bitmuster des Arrays aus Flashspeicherzellen 304, um das Ergebnis eines derartigen Vergleiches zu der hinteren BIST-Steuerung 502 während eines VERIFY-Zustands des aktuellen BIST-Modus zu senden, um ein positives oder negatives Ergebnis anzuzeigen, wie dies bereits beschrieben ist. Gemäß einem Aspekt der vorliegenden Erfindung sind die mehreren Mustererzeugungslogikeinheiten 1302 und der Musterselektor 1304 auf dem Halbleiterchip hergestellt, der darauf ausgebildet das Array aus Flashspeicherzellen 304 aufweist.
  • Gemäß 60 enthalten in einem Beispiel die Mustererzeugungslogikeinheiten 1302 eine Programmiermustererzeugungslogikeinheit 1306, eine Löschmustererzeugungseinheit 1308, eine Diagonalmustererzeugungslogikeinheit 1310 und eine Schachbrettmustererzeugungslogikeinheit 1312. Jede der Mustererzeugungslogikeinheiten 1306, 1308, 1310 und 1312 erzeugt ein entsprechendes Ausgangssignal, das ein entsprechender logischer Zustand ist, der der entsprechenden Position jeder Flashspeicherzelle des Arrays aus Flashspeicherzellen 304 entspricht. Die Programmiermustererzeugungslogikeinheit 1306 erzeugt einen logisch tiefen Zustand (d. h. einen Zustand „0") für jede Stelle der Flashspeicherzelle innerhalb des Arrays aus Flashspeicherzellen 304, und die Löschmustererzeugungslogikeinheit 1308 erzeugt einen logisch hohen Zustand (d. h. einen Zustand "1") für jede Stelle der Flashspeicherzelle innerhalb des Arrays aus Flashspeicherzellen 304.
  • Die Diagonalmustererzeugungslogikeinheit 1310 erzeugt ein diagonales Bitmuster, in dem ein logisch tiefer Zustand (d. h. ein Zustand „0") lediglich an jeder der diagonalen Positionen des Arrays aus Flashspeicherzellen 304 erzeugt wird. Die diagonalen Mustererzeugungslogikeinheit 1310 empfängt die 6 Bits A11, A10, A9, A7 und A6 der X-Adresse und die 6 Bits A5, A4, A3, A2, A1 und A0 der Y-Adresse, die von dem Adressensequenzierer 524 erzeugt werden, um die entsprechende Stelle einer Flashspeicherzelle zu bezeichnen, um damit den entsprechenden logischen Zustand für die entsprechende Flashspeicherzelle gemäß dem gewünschten diagonalen Bitmuster zu erzeugen.
  • Die Schachbrettmustererzeugungslogikeinheit 1312 erzeugt ein Schachbrettbitmuster, in dem abwechselnd ein logisch tiefer und ein logisch hoher Zustand für zwei benachbarte Positionen von Flashspeicherzellen des Arrays aus Flashspeicherzellen 304 erzeugt werden. Die Schachbrettmustererzeugungslogikeinheit 1312 empfängt das am wenigsten signifikante Bit A6 der X-Adresse und das am wenigsten signifikante Bit A0 der Y-Adresse von dem Adressensequenzierer 524, um den entsprechenden logischen Zustand für die entsprechende Position der Flashspeicherzelle gemäß dem gewünschten Schachbrettbitmuster zu erzeugen.
  • 61 zeigt eine beispielhafte Implementierung der Diagonalmustererzeugungslogikeinheit 1310 mit einem ersten exklusiv ODER-Gatter 1314, einem zweiten exklusiv ODER-Gatter 1316, einem dritten exklusiv ODER-Gatter 1318, einem vierten exklusiv Oder-Gatter 1320, einem fünften exklusiv Oder-Gatter 1322 und einem sechsten exklusiv ODER-Gatter 1324 und einem ODER-Gatter 1326. Das erste exklusive ODER-Gatter 1314 besitzt als Eingänge das am wenigsten signifikante Bit A6 der X-Adresse und das am wenigsten signifikante Bit A0 der Y-Adresse. Das zweite exklusiv ODER-Gatter 1316 besitzt als Eingänge das zweit wenigste signifikante Bit A7 der X-Adresse und das zweit wenigste signifikante Bit A1 der Y-Adresse. Das dritte exklusiv ODER-Gatter 1318 besitzt als Eingänge das dritt wenigste signifikante Bit A8 der X-Adresse und das dritt wenigste signifikante Bit A2 der Y-Adresse.
  • In ähnlicher Weise besitzt das vierte exklusiv ODER-Gatter 1320 als Eingänge das viertletzte signifikante Bit A9 der X-Adresse und das viertwenigste signifikante Bit A3 der Y-Adresse. Das fünfte exklusiv ODER-Gatter 1322 besitzt als Eingänge das fünft wenigste signifikante Bit der X-Adresse und das fünft signifikante Bit A4 der Y-Adresse. Das sechste exklusiv ODER-Gatter 1324 besitzt als Eingänge das signifikanteste Bit A11 der X-Adresse und das signifikantes Bit der Y-Adresse. Das ODER-Gatter 1326 besitzt als Eingänge die Ausgangssignale jedes der exklusiv ODER-Gatter 1314, 1316, 1318, 1320, 1322 und 1324. Somit kann das entsprechende Ausgangssignal der Diagonalmustererzeugungslogikeinheit 1310 wie folgt ausgedrückt werden:
    Ausgang = (A0 ⧠ A6) + (A1 ⧠ A7) + (A2 ⧠ A8) + (A3 ⧠ A9) + (A4 ⧠ A10) + (A5 ⧠ A11)
    wobei das Symbol „⧠" die exklusiv ODER-Funktion und das Symbol „+" die ODER-Funktion repräsentieren.
  • 62 zeigt eine beispielhafte Implementierung der Schachbrettmusterzeugungslogikeinheit 1312 mit einem exklusiv ODER-Gatter 1330I. Das exklusiv ODER-Gatter 1330 aus 62 besitzt als Eingänge das am wenigsten signifikante Bit A6 der X-Adresse und das am wenigsten signifikante Bit A0 der Y-Adresse. Somit kann das entsprechende Ausgangssignal der Diagonalmustererzeugungslogikeinheit 1310 ausgedrückt werden wie folgt:
    Ausgang = A0 ⧠ A6
    wobei das Symbol „⧠" die exklusiv ODER-Funktion repräsentiert.
  • 63 zeigt ein beispielhaftes Array der Flashspeicherzellen 304 mit vier Reihen mal vier Spalten aus Flashspeicherzellen. Ein typisches Array aus Flashspeicherzellen besitzt mehr Reihen und Spalten aus Flashspeicherzellen. Der Einfachheit halber ist jedoch ein Array aus vier Reihen und vier Spalten aus Flashspeicherzellen in 63 gezeigt. Eine Position einer Flashspeicherzelle in der ersten Reihe und der ersten Spalte ist als „a1", in der ersten Reihe und der zweiten Spalte als „a2", in der ersten Reihe und der dritten Spalte als „a3" und in der ersten Reihe und der vierten Spalte als „a4" bezeichnet. Eine Position einer Flashspeicherzelle in der zweiten Zeile und der ersten Spalte ist als „b1", in der zweiten Reihe und der zweiten Spalte als „b2", in der zweiten Reihe und der dritten Spalte als „b3" und in der zweiten Reihe und der vierten Spalte als „b4" bezeichnet. Eine Position einer Flashspeicherzelle in der dritten Reihe und der ersten Spalte ist als „c1", in der dritten Reihe und der zweiten Spalte als „c2", in der dritten Reihe und der dritten Spalte als „c3" und in der dritten Reihe und der vierten Spalte als „c4" bezeichnet. Eine Position einer Flashspei cherzelle in der vierten Reihe und der ersten Spalte ist als „d1", in der vierten Reihe und der zweiten Spalte als „d2", in der vierten Reihe und der dritten Spalte als „d3" und in der vierten Reihe und der vierten Spalte als „d4" bezeichnet.
  • Wenn gemäß 54 der aktuelle BIST-Modus zum Programmieren jeder Flashspeicherzelle des Arrays aus Flashspeicherzellen 304 dient, ist das gewünschte Bitmuster ein logisch tiefer Zustand „0" für jede Position des Arrays aus Kernflashspeicherzellen 304. Wenn gemäß 65 der aktuelle BIST-Modus zum Löschen jeder Flashspeicherzelle aus dem Array aus Flashspeicherzellen 304 dient, so beinhaltet das gewünschte Bitmuster einen logisch hohen Zustand „1" für jede Position in dem Array aus Flashspeicherzellen 304.
  • Wenn gemäß der 66 der aktuelle BIST-Modus zur Schachbrettprogrammierung des Arrays aus Flashspeicherzellen 304 dient, dann beinhaltet das gewünschte Bitmuster abwechselnd einen logisch tiefen und einen logisch hohen Zustand „0" bzw. „1" für beliebige zwei benachbarte Flashspeicherzellen des Arrays aus Flashspeicherzellen 304. Wenn gemäß 67 der aktuelle BIST-Modus für das diagonale Programmieren des Arrays aus Flashspeicherzellen 304 dient, dann beinhaltet das gewünschte Bitmuster den logisch tiefen Zustand „0" lediglich für jene Flashspeicherzellen, die in der Diagonale des Arrays aus Flashspeicherzellen 304 angeordnet sind.
  • Gemäß den 60 und 64 wird das Ausgangssignal der Programmiermustererzeugungslogikeinheit 1306, die einen logisch tiefen Zustand „0" für eine beliebige Position in dem Array aus Flashspeicherzellen 304 ausgibt, zum Erzeugen des gewünschten Bitmusters aus 64 gewählt. Logikschaltungen, die den logisch tiefen Zustand „0" konstant zwischenspeichern, sind dem Fachmann auf dem Gebiet der Elektronik bekannt. Alternativ wird unter Bezugnahme zu den 60 und 65 der Ausgang der Löschmustererzeugungslogikeinheit 1308, die den logisch hohen Zustand „1" für eine beliebige Position in dem Array aus Flashspeicherzellen 304 besitzt, zum Erzeugen des gewünschten Bitmusters aus 65 gewählt. Logikschaltungen, die den logisch hohen Zustand „1" konstant speichern, sind dem Fachmann auf dem Gebiet der Elektronik bekannt.
  • Gemäß den 60, 61 und 67 wird der Ausgang der Diagonalmustererzeugungslogikeinheit 1310 verwendet, um das gewünschte diagonale Bitmuster aus 67 zu erzeugen. 68 zeigt eine beispielhafte Tabelle der entsprechenden X-Adresse und Y-Adresse für jede Position in dem Array aus Flashspeicherzellen aus 63. Zu beachten ist, dass für die Position einer Flashspeicherzelle in der ersten Reihe und der ersten Spalte, die als „a1" bezeichnet ist, die 6 Bits (A11, A10, A9, A8, A7 und A6) der X-Adresse auf „111111" gesetzt sind, und die 6 Bits (A5, A4, A3, A2, A1 und A0) der Y-Adresse auf „111111" gesetzt sind. Die X-Adresse kennzeichnet die Spaltenposition einer Flashspeicherzelle, und die Y-Adresse bezeichnet die Reihenposition der Flashspeicherzelle. In 68 wird für zwei beliebige benachbarte Flashspeicherzellen innerhalb der gleichen Reihe die X-Adresse von links nach rechts in der gleichen Reihe um eins herabgesetzt. In ähnlicher Weise wird für zwei beliebige benachbarte Flashspeicherzellen innerhalb der gleichen Spalte die Y-Adresse von oben nach unten in der gleichen Spalte um 1 Bit herabgesetzt. Mit einer derartigen Adresszuordnung erzeugt die Implementierung der Diagonalmustererzeugungslogikeinheit 1310 aus 61 das gewünschte diagonale Bitmuster aus 67.
  • Gemäß den 60, 62 und 66 wird der Ausgang der Schachbrettmustererzeugungslogikeinheit 1312 verwendet, um das gewünschte Schachbrettbitmuster aus 66 zu erzeugen. Mit der Adressenzuordnung der Tabelle aus 68 erzeugt die Implementierung der Schachbrettmustererzeugungslogikeinheit 1312 aus 62 das gewünschte Schachbrettbitmuster aus 66.
  • 69 zeigt eine beispielhafte Implementierung des Musterselektors 1304 mit einem Multiplexer 1336, der mit jeder der Mustererzeugungslogikeinheiten 1306, 1308, 1310 und 1312 aus 60 verbunden ist. Der Multiplexer 1336 empfängt die entsprechenden Ausgangssignale jeder der Mustererzeugungslogikeinheiten 1306, 1308, 1310 und 1312. Ferner empfängt der Multiplexer 1336 Steuersignale „Programmierverifizierung", „Löschen/Verifizieren", „diagonal verifizieren" und „Schachbrettverifizieren" von der hinteren BIST-Steuerung 502.
  • Die hintere BIST-Steuerung 502 setzt eines der Steuersignale „Programmierverifizieren", „Löschen/Verifizieren", „diagonal Verifizieren" und „Schachbrettverifizieren" in Abhängigkeit der Art des aktuellen BIST-Modus. Wenn der aktuelle BIST-Modus zum Programmieren jeder Flashspeicherzelle in dem Array aus Flashspeicherzellen 304 dient, setzt die BIST-Steuerung 502 das „Programmier/Verifizier" Steuersignal. Wenn der aktuelle BIST-Modus zum Löschen jeder Flashspeicherzelle des Arrays aus Flashspeicherzellen 304 dient, setzt die BIST-Steuerung 502 das Steuersignal „Löschen/Verifizieren". Wenn der aktuelle BIST-Modus zum Schachbrettprogrammieren des Arrays aus Flashspeicherzellen 304 dient, dann legt die BIST-Steuerung 502 das Steuersignal „Schachbrettverifizieren" fest. Wenn der aktuelle BIST-Modus zum diagonalen Programmieren des Arrays aus Flashspeicherzellen 304 dient, dann setzt die BIST-Steuerung 502 das Steuersignal (diagonal Verifizieren).
  • Der Multiplexer 1336 wählt einen der entsprechenden Ausgänge der Mustererzeugungslogikeinheiten 1306, 1308, 1310 und 1312 als den ausgewählten Ausgang zum Erzeugen des gewünschten Bitmusters für jede Position einer Flashspeicherzelle in dem Array aus Flashspeicherzellen 304. Wenn das Steuersignal „Programmieren/Verifzieren" gesetzt ist, dann wählt der Multiplexer 1336 den logisch tiefen Zustand „0", der von der Programmiermustererzeugungslogikeinheit 1306 ausgegeben wird, als das ausgewählte Ausgangssignal für eine Position einer Flashspeicherzelle. Wenn das Steuersignal „Löschen/Verifzieren" gesetzt ist, wählt der Multiplexer 1336 den logisch hohen Zustand „1", der von der Löschmustererzeugungslogikeinheit 1308 ausgegeben wird, als das gewählte Ausgangssignal für eine Position einer Flashspeicherzelle.
  • Wenn andererseits das Steuersignal „diagonal Verifizieren" gesetzt ist, wählt der Mulitplexer 1336 das Diagonalbitmuster, das von der Diagonalmustererzeugungslogikeinheit 1310 ausgegeben wird, als das ausgewählte Ausgangssignal für eine Position einer Flashspeicherzelle aus. Wenn in ähnlicher Weise das Steuersignal „Schachbrettverifizieren" gesetzt ist, wählt der Multiplexer 1336 das Schachbrettbitmuster, das von der Schachbrettmustererzeugungslogikeinheit 1312 ausgegeben wird, als das ausgewählte Ausgangssignal zum Wählen der Position einer Flashspeicherzelle aus.
  • Im Allgemeinen kann ein VERIFY-Zustand während eines BIST-Modus als einer aus „Programmier/Verifizieren", „LÖschen/Verifizieren", „diagonal Verifizieren" oder „Schachbrettverifizieren" eingestuft werden. Auf diese Weise wird das gewünschte Bitmuster, das während eines VERIFY-Zustands von dem BIST- (eingebauten Selbsttest) System für ein chipinternes Testen des Arrays aus Flashspeicherzellen 304 verwendet wird, durch die Mustererzeugungslogikeinheiten 1306, 1308, 1310 und 1312 erzeugt, die ebenso auf dem Chip hergestellt sind. Der Musterselektor 1304 wählt das geeignete Ausgangssignal einer der Mustererzeugungslogikeinheiten 1306, 1308, 1310 und 1312 in Abhängigkeit des aktuellen BIST-Modus aus. Ein derartiger Mechanismus zum Erzeugen des gewünschten Bitmusters erfordert keinen großen Speicher zum Speichern der gewünschten Bitmuster zum Ausfüh ren mehrerer BIST-Modi während eines chipinternen Testens des Arrays aus Flashspeicherzellen 304.
  • Das Vorhergehende ist lediglich beispielhafter Natur und soll nicht beschränkend sein. Beispielsweise kann die vorliegende Erfindung für eine große Anzahl an Mustererzeugungslogikeinheiten 1306, 1308, 1310 und 1312 zum Erzeugen einer größeren Anzahl gewünschter Bitmuster ausgeführt werden. Ferner kann die vorliegende Erfindung auf ein größeres Array aus Flashspeicherzellen angewendet werden. Beliebige Zahlen, wie sie hierin beschrieben oder dargestellt sind, sind lediglich beispielhafter Natur.
  • H. Chipinterner Löschpulszähler für einen effizienten Löschverifizier-BIST (eingebauter Selbsttest) Modus
  • Ferner ist einer der BIST- (eingebauter Selbsttest) Modi ein Lösch-Verifizier-BIST-Modus zum Überprüfen, ob jede Flashspeicherzelle des Arrays aus Kernflashspeicherzellen korrekt gelöscht ist. Während eines derartigen Lösch-Verifizier-Bist-Modus muss jede Flashspeicherzelle des Arrays auf einen korrekten Pegel (der durch den Betrag des Stromes gekennzeichnet ist, der durch die Flashspeicherzelle fließt) gelöscht werden, bevor eine maximale Anzahl an Löschpulsen an die Flashspeicherzelle angelegt wird.
  • Ein Lösch-Verifizier-Prozess umfasst das Anlegen eines Löschpulses aus Löschspannungen an eine Flashspeicherzelle, dann das Messen des Strompegels, der durch die Flashspeicherzelle fließt, wobei Lesespannungen an die Flashspeicherzelle angelegt sind. Der durch die Flashspeicherzelle fließende Strompegel muss mindestens gleich einem Referenzstrompegel für die Flashspeicherzelle sein, um die Lösch-Verifizierung erfolgreich abzuschließen (um als korrekt gelöscht betrachtet zu werden). Das Anlegen des Löschpulses aus Löschspannungen an die Flashspeicherzelle wird einige Male wiederholt, bis der Strompegel, der durch die Flashspeicherzelle fließt, zumindest gleich dem Referenzstrompegel ist. Jedoch muss der Strompegel, der durch die Flashspeicherzelle fließt, mindestens gleich dem Referenzstrompegel sein, bevor eine maximale Anzahl an Löschpulsen an die Flashspeicherzelle angelegt wird, wenn die Flashspeicherzelle den Löschverifizier-BISt-Modus erfolgreich durchlaufen soll. Ansonsten wird die Flashspeicherzelle als defekt betrachtet.
  • Das Array aus Flashspeicherzellen ist in eine Velzahl von Sektoren aus Flashspeicherzellen aufgeteilt, wie dies dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt ist. 70 zeigt einen beispielhaften Sektor 1400 mit vier Reihen mal vier Spalten an Flashspeicherzellen. Ein Sektor aus Flashspeicherzellen besitzt typischerweise eine wesentlich größere Anzahl an Reihen und Spalten, wobei jedoch vier Reihen und vier Spalten für den beispielhaften Sektor 1400 aus 70 zur einfacheren Darstellung gezeigt sind.
  • Es wird ein Löschpuls der Löschspannungen zum Löschen einer Flashspeicherzelle an alle Flashspeicherzellen des Sektors aus Flashspeicherzellen gleichzeitig angelegt. Gemäß 70 werden die Flashspeicherzellen an den Diagonalpositionen (d. h. an den Positionen, die als A1, B2, C3 und D4 in 70 bezeichnet sind) zuerst im Hinblick auf das Löschen verifiziert. Während des Lösch/Verifizierens der Löschspeicherzellen an den Diagonalpositionen wird der Löschpuls an alle Flashspeicherzellen des Sektors 1400 aus Flashspeicherzellen angelegt.
  • Es wird zunächst eine Gesamtzahl an Löschpulsen für das diagonale Muster, wie es zum Anlegen an den Sektor 1400 aus Löschspeicherzellen für jede der Flashspeicherzellen an den Diagonalpositionen erforderlich ist, bestimmt, um damit das Lösch/Verifizieren erfolgreich zu beenden. Danach wird ein ausgewählter Anteil der diagonalen Gesamtzahl an Löschpulsen als eine maximale Zahl an Pulsen bestimmt, die an den Sektor 1400 aus Flashspeicherzellen während des Lösch/Verifizierens des gesamten Sektors aus Flashspeicherzellen 1400 angelegt werden kann. Nachdem die Flashspeicherzellen der Diagonalpositionen mit der diagonalen Gesamtzahl an Löschpulsen, die an den Sektor aus Flashspeicherzellen 1400 angelegt werden, beim Lösch/Verifizieren erfolgreich absolviert haben, muss jede der Flashspeicherzellen des gesamten Sektors (d. h. an den Positionen, die als A1, A2, A3, A4, B1, B2, B3, B4, C1, C2, C3, C4, D1, D2, D3 und D4 in 70 bezeichnet sind) das Lösch/Verifizieren erfolgreich durchlaufen, bevor der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen weiter an den Sektor 1400 aus Flashspeicherzellen angelegt wird, so dass der Sektor 1400 den Lösch-Verifizier-BIST-Modus erfolgreich durchläuft. Ansonsten wird der Sektor 1400 aus Flashspeicherzellen als fehlerhaft im Lösch-Verfizier-BIST-Modus erachtet.
  • Im Stand der Technik verfolgt das externe Testsystem die Anzahl der Löschpulse, die an den Sektor aus Flashspeicherzellen 1400 während des Lösch-Verifizier-Testmodus ange legt wird. Jedoch kann das Verfolgen der Anzahl an Löschpulsen, die an den Sektor aus Flashspeicherzellen 1400 während des Lösch-Verfizier-BIST-Modus durch das externe Testsystem angelegt wird, in Abhängigkeit von der Kapazität des externen Testsystems langsam sein. Somit ist ein effizienter Mechanismus zur Verfolgung der Anzahl der Löschpulse wünschenswert, die an den Sektor aus Flashspeicherzellen 1400 während des Lösch-Verfizier-BIST-Modus angelegt werden.
  • Gemäß den 7 und 70 ist in einer weiteren Ausführungsform der vorliegenden Erfindung ein System 1402 zur Verfolgung der Anzahl an Löschpulsen, die während eines Lösch-Verfizier-BIST (eingebauter Selbsttest) Modus angelegt werden, auf dem Halbleiterchip hergestellt, auf dem das Array aus Flashspeicherzellen 304 hergestellt ist. Das System 1402 umfasst einen Löschpulszähler 1404, einen Taktgenerator 1406 und eine Pulszählersteuerung 1408 (die innerhalb der gestrichelten Linien in 71 gezeigt sind). Die Pulszählersteuerung 1408 ist mit der BIST-Schnittstelle 312 und der BIST-Zustandsmaschine 316 verbunden. Die BIST-Schnittstelle 312 und die BIST-Zustandsmaschine 316 sind bereits mit Bezug zu 7 beschrieben.
  • In einer Ausführungsform der vorliegenden Erfindung ist der Löschpulszähler 1404 ein Binärzahler, der eine Binärzahl erhöht, wenn mindestens ein Puls von dem Taktgenerator 1406 erzeugt wird. Binärzahler sind dem Fachmann auf dem Gebiet der Elektronik vertraut. Die BIST-Zustandsmaschine 316 erzeugt ein Steuersignal, um anzuzeigen, dass ein Löschpuls an den Sektor aus Flashspeicherzellen 1400 angelegt wurde. Die Pulszahlersteuerung 1408 steuert den Taktgenerator 1406 an, um zwei nicht überlappenden Taktsignalpulse ERCLK1 und ERCLK2 zu erzeugen, wenn die BIST-Zustandsmaschine 316 das Steuersignal erzeugt, um anzuzeigen, dass ein Löschpuls an den Sektor aus Flashspeicherzellen 1400 während deines JUICE-Zustands angelegt ist. Taktsignalgeneratoren zum Erzeugen von Taktsignalpulsen sind dem Fachmann auf dem Gebiet der Elektronik vertraut. Der Löschpulszähler 1404 erhöht die Binärzahl, wenn der Taktgenerator 1406 die beiden nicht überlappenden Taktsignalpulse ERCLK1 und ERCLK2 erzeugt. Somit erhöht der Löschpulszähler 1404 die Binärzahl für jeden Löschpuls aus Löschspannungen, die an den Sektor aus Flashspeicherzellen 1400 angelegt werden.
  • Gemäß 72 sind die Komponenten der Pulszählersteuerung 1408 innerhalb der gestrichelten Linien gezeigt, die umfassen: eine Taktsteuerlogik 1412, eine Rücksetzlogik 1413, einen Maximalpulszahldecodierer 1414, eine Wiederbeladelogik 1416, einen Multiplexer 1418, einen Komplementärgenerator 1420 und mehrere Wiederladezählwertgeneratoren einschließlich eines Wiederladezählwertgenerators 1422 mit Teilen durch zwei, eines Wiederladezählwertgenerators 1424 mit Teilung durch vier und eines Wiederladezählwertgenerators 1426 mit Teilung durch acht. 73 zeigt ein Flussdiagramm aus Schritten während des Arbeitens des Systems aus 72, um die Anzahl der während eines Lösch-Verifizier-BIST-Modus angelegten Anzahl an Löschpulsen zu verfolgen.
  • Gemäß den 72 und 73 empfängt die Rücksetzlogik 1413 von der BIST-Zustandsmaschine 316 ein Steuersignal, das den Beginn eines Lösch-Verifizier-BIST- (eingebauter Selbsttest) Modus anzeigt. Die Rücksetzlogik 1413 setzt den Löschpulszähler 1404 auf eine anfängliche Pulszahl von Null zurück, nachdem die Rücksetzlogik 1413 von der BIST-Zustandsmaschine 316 das Steuersignal empfängt, das den Beginn des Lösch-Verifizier-BIST- (eingebauter Selbsttest) Modus kennzeichnet (Schritt 1429 in 73). Wenn beispielsweise der Löschpulszähler ein 6-Bit-Zähler ist, kann beispielsweise die Pulszahl Null „000000" sein.
  • Gemäß den 70 und 72 führt die BIST-Zustandsmaschine 316 den Lösch-Verifizier-BIST-Modus aus, indem jede der Flashspeicherzellen an den diagonalen Positionen (d. h. den Positionen, die mit A1, B2, C3 und D4 in 70 bezeichnet sind) des Sektors aus Flashspeicherzellen 1400 zunächst für das Löschen verifiziert wird. Ein Lösch-Verfifizier-Prozess umfasst das Anlegen von Löschpulsen mit Löschspannungen an eine Flashspeicherzelle, dann das Messen des durch die Flashspeicherzelle fließenden Strompegels bei an die Flashspeicherzelle angelegten Lesespannungen, wie dies dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt ist. Der durch die Flashspeicherzelle fließende Strompegel muss mindestens einem Referenzstrompegel für die Flashspeicherzelle entsprechen, damit das Lösch-Verifizieren erfolgreich ist (und diese als korrekt gelöscht betrachtet wird), wie dies dem Fachmann auf dem Gebiet der Flashspeichereinrichtungen bekannt ist. Das Anlegen des Löschpulses mit Löschspannungen an die Flashspeicherzelle wird wiederholt, bis der durch die Flashspeicherzelle fließende Strompegel mindestens gleich dem Referenzstrompegel ist.
  • Es wird ein Löschpuls mit den Löschspannungen zum Löschen einer Flashspeicherzelle an alle Flashspeicherzellen des Sektors aus Flashspeicherzellen 1400 gleichzeitig angelegt.
  • Während des Lösch-Verifizierens jeder der Flashspeicherzellen an den Diagonalpositionen wird der Löschpuls an alle Flashspeicherzellen des Sektors 1400 aus Flashspeicherzellen angelegt.
  • Die BIST-Zustandsmaschine 316 sendet ein Steuersignal, wenn ein Löschpuls an jede Flashspeicherzelle des Sektors 1400 aus Flashspeicherzellen während der Löschverifizierung der diagonalen Flashspeicherzellen angelegt wird. Die Taktsteuerlogik 1412 steuert den Taktgenerator 1406 an, um die zwei nicht überlappenden Taktsignalpulse ERCLK1 und ERCLK2 zu erzeugen, wenn die BIST-Zustandsmaschine 316 das Steuersignal sendet, das anzeigt, dass ein Löschpuls an jede Flashspeicherzelle des Sektors 1400 aus Flashspeicherzellen während des Lösch-Verifizierens der diagonalen Flashspeicherzellen angelegt wird. Der Löschpulszähler 1404 erhöht die Binärzahl jedes Mal, wenn der Taktgenerator 1406 die beiden nicht überlappenden Taktsignalpulse ERCLK1 und ERCLK2 erzeugt. Somit erhöht der Löschpulszähler 1404 den Binärwert für jeden Löschpuls aus Löschspannungen, die an den Sektor aus Flashspeicherzellen 1400 während des Lösch-Verifizierens der diagonalen Flashspeicherzellen angelegt werden (Schritt 1430 aus 73).
  • In dieser Weise zählt der Löschpulszähler 1404 eine diagonale Gesamtzahl an Löschpulsen, die an den Sektor aus Flashspeicherzellen 1400 für jede der diagonalen Flashspeicherzellen anzulegen ist, um das Lösch-Verifizieren erfolgreich zu beenden, wenn ein Ende des diagonalen Verifizierens erreicht ist (Schritt 1430 bis 1434 aus 73). Ferner erhält während des diagonalen Verifizierens der Maximalpulszahldecodierer 1414 die Binärzahl, die die diagonale Gesamtzahl aus Löschpulsen kennzeichnet, von dem Löschpulszähler 1404, um zu bestimmen, ob die diagonale Gesamtzahl aus Löschpulsen eine maximale Pulszahl (MAX_PC) erreicht hat (d. h. gleich ist) (Schritt 1432 aus 73).
  • Wenn die diagonale Gesamtzahl an Löschpulsen die maximale Pulszahl (MAX_PC) erreicht (Schritt 1432 aus 73), bevor das Ende des diagonalen Verifizierens im Schritt 1434 aus 73 erreicht ist, wird die diagonale Gesamtzahl an Löschpulsen auf die maximale Pulszahl (MAX_PC) gesetzt, und der Ablauf geht mit dem Schritt 1438 aus 73 weiter. Wenn andererseits die diagonale Gesamtzahl an Löschpulsen nicht die maximale Pulszahl erreicht (MAX_ PC) (Schritt 1432 aus 73), wenn das Ende des diagonalen Verifizierens im Schritt 1434 aus 73 erreicht ist, dann geht der Ablauf des Flussdiagramm aus 73 im Schritt 1438 weiter, wobei die diagonale Gesamtzahl aus Löschpulsen von dem Löschpulszähler 1404 gezählt wird.
  • In jedem Falle ist, nachdem die diagonale Gesamtzahl an Löschpulsen bestimmt ist, der gesamte Sektor aus Flashspeicherzellen 1400 Lösch-Verifiziert. Die Wiederladelogik 1416 und der Maximalpulszahldecodierer 1414 empfangen einen ausgewählten Anteil der diagonalen Gesamtanzahl an Löschpulsen, die an den Sektor aus Flashspeicherzellen 1400 zum Lösch-Verifizieren des gesamten Sektors aus Flashspeicherzellen anzulegen sind (d. h. die Positionen, die mit A1, A2, A3, A4, B1, B2, B3, B4, C1, C2, C3, C4, D1, D2, D3 und D4 in 70 bezeichnet sind). Ein derartig ausgewählter Anteil der diagonalen Gesamtanzahl an Löschpulsen wird von einem Anwender über die BIST-Schnittstelle 312 bezeichnet.
  • Der Komplementärgenerator 1420 empfängt das binäre Bitmuster der diagonalen Gesamtzahl an Löschpulsen und erzeugt ein binäres Komplement eines derartigen Bitmusters. Die diagonale Gesamtzahl an Löschpulsen wird auf die maximale Pulszahl (MAX_PC) gesetzt, wenn die diagonale Gesamtzahl an Löschpulsen die maximale Pulszahl (MAX_PC) im Schritt 1432 aus 73 vor dem Ende des diagonalen Verifizierens im Schritt 1434 in 73 erreicht. Andererseits ist die diagonale Gesamtzahl aus Löschpulsen so, wie dies von dem Löschpulszähler 1404 gezählt ist, wenn die diagonale Gesamtzahl an Löschpulsen nicht die maximale Pulszahl (MAX_PC) im Schritt 1432 aus 73 am Ende des diagonalen Verifizierens im Schritt 1434 aus 73 erreicht. Es wird ein binäres Komplement erzeugt, indem ein logisch hoher Zustand (d. h. „1") in einen logisch tiefen Zustand (d. h. „0") geändert wird, und indem ein logisch tiefer Zustand (d. h. ein „0") in einen logisch hohen Zustand (d. h. „1") für das Bitmuster der diagonalen Gesamtzahl an Löschpulse geändert wird. Ein derartiger Komplementärgenerator ist dem Fachmann auf dem Gebiet der Elektronik vertraut.
  • In einer Ausführungsform der vorliegenden Erfindung wird die maximale Pulszahl MAX_PC als 2m-1 ausgedrückt, und der Löschpulszähler ist ein m-Bit-Zähler. Beispielsweise sei der Einfachheit halber angenommen, dass MAX_PC 63 ist, was ausgedrückt werden kann als 26-1, so dass m = 6 ist. In diesem Falle ist der Löschpulszähler 1404 ein 6-Bit-Binärzähler.
  • Ferner erzeugen gemäß den 72 und 73 die mehreren Wiederladezählwertgeneratoren 1422, 1424 und 1426 einen entsprechenden Wiederladezählwert, der die maximale Puls zahl MAX_PC minus einem entsprechenden Anteil der diagonalen Gesamtzahl an Löschpulsen ist. Der Wiederladezählwertgenerator 1422 mit Teilung 2 erzeugt einen ersten Wiederladezählwert, der gleich MAX_PC minus 50% der diagonalen Gesamtzahl an Löschpulsen ist, indem das Komplement der diagonalen Gesamtzahl an Löschpulsen um 1 Bit in Richtung zu dem wenigsten signifikanten Bit verschoben wird und indem ein logisches Bit für das signifikanteste Bit hinzugefügt wird.
  • Ferner erzeugt der Wiederladezählwertgenerator 1424 mit Teilung 4 einen zweiten Wiederladezählwert, der gleich MAX_PC minus 25% der diagonalen Gesamtzahl an Löschpulsen ist, indem das Komplement der diagonalen Gesamtzahl der Löschpulse um 2 Bits in Richtung des am wenigsten signifikanten Bits verschoben wird und indem ein logisch hohes Bit für jedes der beiden signifikantesten Bits hinzugefügt wird. Der Wiederladezählwertgenerator 1426 mit Teilung 8 erzeugt einen dritten Wiederladezählwert, der gleich MAX_PC minus 12,5% der diagonalen Gesamtzahl an Löschpulsen ist, indem das Komplement der diagonalen Gesamtzahl an Löschpulsen um drei Bits in Richtung des wenigsten signifikanten Bits verschoben wird und indem ein logisch hohes Bit für jedes der drei signifikantesten Bits hinzugefügt wird.
  • Als beispielhafte Darstellung sei für den Fall, dass MAX_PC gleich 63 ist, so dass der Löschpulszähler 1404 ein 6-Bit-Binärzähler ist, ferner angenommen, dass die diagonale Gesamtzahl an Löschpulsen 40 beträgt, so dass das binäre Bitmuster der diagonalen Gesamtanzahl an Löschpulse „101000" ist. Das Komplement der diagonalen Gesamtzahl an Löschpulsen in diesem Falle ist „010111". Der Ausgang des Wiederladezählwertgenerators 1422 mit Teilung 2 ist „101011", was durch Verschieben des Komplements der diagonalen Gesamtzahl an Löschpulse (d. h. „010111" in diesem Beispiel) um 1 Bit in Richtung des wenigsten signifikanten Bits und durch Hinzufügen eines logisch hohen Bits für das signifikanteste Bit erzeugt wird. Der erste Wiederladezählwert von dem Wiederladezählwertgenerator 1422 mit Teilung 2 beträgt dann 43, der Wert MAX_PC (d. h. 63) minus 50% der diagonalen Gesamtzahl an Löschpulsen (d. h. 50% von 40, was 20) ist.
  • In ähnlicher Weise beträgt der Ausgabewert des Wiederladezählwertgenerators 1424 mit Teilung 4 „110101", was durch Verschieben des Komplements der diagonalen Gesamtzahl an Löschpulsen (d. h. „010111" in diesem Beispiel) um 2 Bits in Richtung des wenigsten signifikanten Bits und durch Hinzufugen eines logisch hohen Bits für jedes der beiden signi fikantesten Bits erzeugt wird. Der zweite Wiederladezählwert von dem Wiederladezählwertgenerator 1424 mit Teilung 4 beträgt dann 53, was dem Wert MAX_PC (d. h. 63) minus 25% der diagonalen Gesamtzahl an Löschpulsen (d. h. 25% von 40 ist 10) entspricht.
  • Ferner beträgt der Ausgabewert des Wiederladezählwertgenerators 1426 mit Teilung 8 „111010", was durch Verschieben des Komplements der diagonalen Gesamtzahl an Löschpulsen (d. h. „010111" in diesem Beispiel) um 3 Bits in Richtung des wenigsten signifikanten Bits und durch Hinzufügen eines logisch hohen Bits für jedes der drei signifikantesten Bits erzeugt wird. Der dritte Wiederladezählwert von dem Wiederladezählwertgenerator 1426 mit Teilung 8 beträgt dann 58, was dem Wert MAX_PC (d. h. 63) minus 12,5 % der diagonalen Gesamtzahl an Löschpulsen (d. h. 12,5% von 40 ist 5) entspricht.
  • Die Wiederladelogik 1416 steuert den Multiplexer 1418 an, um einen aus dem ersten, zweiten und dritten Wiederladezählwert von den Wiederladezählwertgeneratoren 1422, 1424 und 1426 als einen ausgewählten Wiederladezählwert auszuwählen, der in den Pulszähler 1404 einzuladen ist. Der ausgewählte Wiederladezählwert wird aus einem des ersten, zweiten und dritten Wiederladezählwertes in Abhängigkeit des ausgewählten Anteils der diagonalen Gesamtzahl an Löschpulsen ausgewählt, wie dies von dem Anwender über die BISt-Schnittstelle 312 eingegeben wird.
  • Wenn der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schnitstelle 312 eingegeben wird, gleich ist dem entsprechenden Anteil, der einem der Wiederladezählwertgeneratoren 1422, 1424 oder 1426 entspricht, dann ist der Wiederladezählwert dieses einen Wiederladezählwertgenerators der ausgewählte Wiederladezählwert. Wenn beispielsweise der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wird, 50% beträgt, dann ist der ausgewählte Wiederladezählwert von dem Multiplexer 1418 der erste Wiederladezählwert des Wiederladezählwertgenerators 1422 mit Teilung 2. Oder wenn der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wird, 25% beträgt, dann ist der ausgewählte Wiederladezählwert von dem Multiplexer 1418 der zweite Wiederladezählwert des Wiederladezählwertgenerators 1424 mit Teilung 4. Wenn alternativ der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wird, 12,5% beträgt, dann ist der von dem Mul tiplexer 1418 ausgewählte Wiederladezählwert der dritte Wiederladezählwert des Wiederladezählwertgenerators 1426 mit Teilung 8.
  • Wenn andererseits der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wird, nicht gleich dem entsprechenden Anteil ist, der einem der Wiederladezählwertgeneratoren 1422, 1424 oder 1426 entspricht, dann ist der ausgewählte Wiederadezählwert von einem der Wiederladezählwertgeneratoren 1422, 1424 oder 1426 ein Wert, der einem entsprechenden Anteil entspricht, der kleiner ist als der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender eingegeben wurde. Wenn beispielsweise der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wird, 75% beträgt, dann steuert die Wiederladelogik 1416 den Multiplexer 1418 an, den ausgewählten Wiederladezahlwert als einen der Werte von dem ersten Wiederladezählwert des Wiederladezählwertgenerators 1422 der Teilung 2 oder von dem zweiten Wiederladezählwert von dem Wiederladezählwertgenerator 1424 mit Teilung 4 auszuwählen.
  • In jedem Falle ist nach dem Lösch-Verifizieren jeder diagonalen Flashspeicherzelle des Sektors 1400 aus Flashspeicherzellen bei Bestimmung der diagonalen Gesamtzahl an Löschpulse der gesamte Sektor aus Flashspeicherzellen 1400 für das Löschen verifiziert. Vor dem Start des Lösch/Verifizierens des gesamten Sektors aus Flashspeicherzellen 1400 wird der ausgewählte Wiederladezählwert des Multiplexers in den Löschpulszähler 1404 eingeladen. Dann sendet zum Lösch/Verifizieren des gesamten Sektors aus Flashspeicherzellen 1400 die BIST-Zustandsmaschine 316 ein Steuersignal, jedes Mal, wenn ein Löschpuls an jede Flashspeicherzelle des Sektors 1400 während des Lösch-Verifizierens des gesamten Sektors aus Flashspeicherzellen angelegt wird. Die Taktsteuerlogik 1412 steuert den Taktgenerator 1406 an, um die beiden nicht überlappenden Taktsignalpulse ERCLK1 und ERCLK2 jedes mal zu erzeugen, wenn die BIST-Zustandsmaschine 316 das Steuersignal sendet, das anzeigt, dass ein Löschpuls an jede Flashspeicherzelle des Sektors 1400 aus Flashspeicherzellen während der Löschverifizierung des gesamten Sektors aus Flashspeicherzellen angelegt wird. Der Löschpulszähler 1404 erhöht die binäre Zahl, wann immer der Taktgenerator 1406 die beiden nicht überlappenden Taktsignalpulse ERCLK1 und ERCLK2 erzeugt. Somit erhöht der Löschpulszähler 1404 die Binärzahl für jeden Löschpuls mit Löschspannungen, der an den Sektor aus Flashspeicherzellen 1400 wäh rend des Löschverifizierens des gesamten Sektors aus Flashspeicherzellen angelegt wird (Schritt 1440 aus 73). Jedoch zählt für das Lösch/Verifizieren des gesamten Sektors aus Flashspeicherzellen 1400 der Löschpulszähler 1404 ausgehend von dem ausgewählten Wiederladezählwert aufwärts, der in den Löschpulszähler vor dem Beginn des Lösch-Verifizierens des gesamten Sektors aus Flashspeicherzellen eingeladen wurde.
  • Während des Lösch-Verifizierens des gesamten Sektors aus Flashspeicherzellen erhält der Maximalpulszahldecodierer 1414 den Binärwert von dem Löschpulszähler 1404, um zu bestimmen, ob die maximale Pulszahl (MAX_PC) von dem Löschpulszähler 1404 erreicht ist (Schritt 1442 aus 73). Der Maximalpulszahldecodierer 1414 erzeugt ein Steuersignal für die BIST-Zustandsmaschine 316, das anzeigt, dass die maximale Pulszahl (MAX_PC) von dem Löschpulszähler 1404 erreicht ist, wenn die Binärzahl des Löschpulszählers 1404 die maximale Pulszahl MAX_PC erreicht.
  • Wenn der gesamte Sektor aus Flashspeicherzellen 1400 das Lösch-Verifizieren erfolgreich absolviert, so dass das Ende des Sektors 1400 erreicht ist, bevor die Zahl der an den Sektor 140 angelegten Löschpulse die maximale Pulszahl (MAX_PC) erreicht (Schritt 144 aus 73), dann absolviert der Sektor 1400 den Lösch-Verifizier-BIST-Modus erfolgreich (Schritt 1446 aus 73), und der Lösch-Verifizier-BIST-Modus endet. Wenn andererseits die Zahl der an den Sektor 1400 angelegten Löschpulse des Löschpulszählers 1404 die maximale Pulszahl (MAX_PC) erreicht (Schritt 1442 aus 73), bestimmt der Maximalpulszahldecodierer 1414, ob der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben ist, an den Sektor 1400 während des Lösch-Verifizierens des gesamten Sektors aus Flashspeicherzellen angelegt wurde (Schritt 1452 aus 73). Wenn der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schittstelle 312 eingespeist wurde, gleich dem entsprechenden Anteil ist, der einem der Wiederladezählwertgeneratoren 1422, 1424 oder 1426 entspricht, dann wurde der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulse, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wurde, an den Sektor 1400 während des Lösch-Verifizierens des gesamten Sektors aus Flashspeicherzellen angelegt.
  • Wenn beispielsweise der ausgewählte Anteil der diagonalen Anzahl an Löschpulse, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wird, 50% beträgt, dann ist der ausgewählte Wiederladezählwert des Multiplexers 1418 der erste Wiederladezahlwert des Wiederladezählwertgenerators 1422 mit Teilung 2. Wenn somit die Zahl der Löschpulse, die an den Sektor 1400 angelegt werden, die maximale Pulszahl erreicht (MAX_PC), wie dies durch die Zahl des Löschpulszählers 1404 angegeben ist (Schritt 1442 aus 73), wurden 50% der diagonalen Gesamtzahl an Löschpulsen an den Sektor aus Flashspeicherzellen 1400 während des Lösch-Verifizierens des gesamten Sektors aus Flashspeicherzellen angelegt, so dass der ausgewählte Anteil (d. h. 50%) der diagonalen Gesamtanzahl an Löschpulsen an den Sektor 1400 angelegt wurde.
  • Oder wenn der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wird, 25% beträgt, dann ist der ausgewählte Wiederladezählwert des Multiplexers 1418 der zweite Wiederladezählwert des Wiederladezählwertgenerators 1424 mit Teilung 4. Somit sind zu dem Zeitpunkt, wenn die Zahl der an den Sektor 1400 angelegten Löschpulse die maximale Pulszahl (MAX_PC) erreicht, wie dies durch die Zahl des Löschpulszählers 1404 angegeben wird (Schritt 1442 aus 73), 25% der diagonalen Gesamtzahl aus Löschpulse an den Sektor aus Flashspeicherzellen 1400 während des Löschverifizierens des gesamten Sektors aus Flashspeicherzellen angelegt, so dass der ausgewählte Anteil (d. h. 25%) der diagonalen Gesamtzahl an Löschpulsen an den Sektor 1400 angelegt wurden.
  • Wenn alternativ der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulse, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wurde, 12,5% beträgt, dann ist der ausgewählte Wiederladezählwert des Multiplexers 1418 der dritte Wiederladezählwert des Wiederladezählwertgenerators 1426 mit Teilung 8. Somit wurden zum Zeitpunkt, wenn die Zahl der an den Sektor 1400 angelegten Löschpulse die maximale Pulszahl (MAX_PC) erreicht, wie dies durch die Zahl des Löschpulszählers 1404 gekennzeichnet ist (Schritt 1442 aus 73), 12,5% der diagonalen Gesamtzahl an Löschpulsen an den Sektor aus Flashspeicherzellen 1400 während des Löschverifizierens des gesamten Sektors aus Flashspeicherzellen angelegt, so dass der ausgewählte Anteil (d. h. 12,5% der diagonalen Gesamtzahl an Löschpulsen an den Sektor 1400 angelegt wurde).
  • Wenn im Schritt 1442 aus 73 die maximale Pulszahl (MAX_PC) erreicht ist, und wenn der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wurde, bereits an den Sektor 1400 während des Lösch/Verifizierens des gesamten Sektors aus Flashspeicherzellen angelegt ist (Schritt 1442 aus 73), dann wird der Sektor 1400 aus Flashspeicherzellen als fehlerhaft im Lösch-Verifizier-BIST-Modus erachtet (Schritt 1454 aus 73). In diesem Falle kann der Lösch-Verifizier-BIST-Modus enden oder die Reparaturroutine kann aufgerufen werden (wie dies bereits beschrieben ist).
  • Wenn andererseits im Schritt 1442 aus 73 die maximale Pulszahl (MAX_PC) erreicht wird und wenn der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wird, noch nicht an den Sektor 1400 während dese Lösch/Verifizierens des gesamten Sektors aus Flashspeicherzellen angelegt worden ist (Schritt 1452 aus 73), dann sendet der Maximalpulszahldecodierer 1414 ein Wiederladesteuersignal an die Wiederladelogik 1416, so dass die Wiederladelogik 1416 den Multiplexer ansteuert, einen weiteren Wert der Wiederladezählwerte von dem Wiederladezählwertgeneratoren 1422, 1424 und 1426 auszuwählen (Schritt 1456 aus 73). Ein derartiger weiterer ausgewählter Wiederladezählwert wird in den Löschpulszähler 1404 eingeladen, bevor mit dem Lösch/Verifizieren des gesamten Sektors aus Flashspeicherzellen 1400 weitergemacht wird.
  • Ein weiterer ausgewählter Wiederladezählwert wird von dem Multiplexer 1418 als einer der Wiederladezählwerte der Wiederladezählwertgeneratoren 1422, 1424 und 1426 so ausgewählt, dass der entsprechende Anteil eines zuvor ausgewählten Wiederladezählwertes und der entsprechende Anteil eines weiteren ausgewählten Wiederladezählwertes sich zu dem ausgewählten Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wurde, aufaddieren. Wenn beispielsweise der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wurde, 75% beträgt, dann addieren sich der entsprechende Anteil, der dem Wiederladezählwertgenerator 1422 mit Teilung 2, der 50% beträgt, entspricht, und der entsprechende Anteil, der dem Wiederladezahlwertgenerator 1424, der 25% beträgt, entspricht, zu dem ausgewählten Anteil der diagonalen Gesamtzahl an Löschpulsen auf, der von dem Anwender über die BIST-Schnittstelle 312 eingegeben wurde (d. h. die 75%).
  • Wenn in diesem Falle in einem vorhergehenden Schritt 1438 aus 73 – wenn der erste Wiederladezählwert des Wiederladezählwertgenerators 1422 mit Teilung 2 von dem Multi plexer 1418 als der ausgewählte Wiederladezählwert gewählt wurde – und der Schritt 1456 in 73 erreicht ist, dann ist ein weiterer ausgewählter Wiederladezählwert im Schritt 1456 aus 73 der zweite Wiederladezählwert des Wiederladezählwertgenerators 1424 mit Teilung 4. Nachdem die Wiederladelogik 1416 den Multiplexer 1418 ansteuert, den zweiten Wiederladezählwert des Wiederladezählwertgenerators 1424 mit Teilung 4 auszuwählen, lädt der Löschpulszähler den neu ausgewählten Wiederladezählwert ein.
  • Dann kehrt das Flussdiagramm aus 73 zum Schritt 1440 zurück, so dass die Schritte 1440, 1442, 1444, 1446, 1452, 1454 und/oder 1456 für ein wiederholtes Lösch/Verifizieren des gesamten Sektors aus Flashspeicherzellen 1400 wiederholt werden. Während dieses Wiederholens dieser Schritte zählt jedoch der Löschpulszähler ausgehend von dem neu ausgewählten Wiederladezahlwert hoch (d. h. von dem zweiten Wiederladezählwert des Wiederladezählwertgenerators 1424 mit Teilung 4 in dem obigen Beispiel). Wiederum absovliert während des Wiederholens dieser Schritte, wenn jede Zelle des gesamten Sektors aus Flashspeicherzellen 1400 das Löschen/Verifizieren erfolgreich besteht, so dass das Ende des Sektors 1400 erreicht wird, bevor die Zahl der an den Sektor 1400 angelegten Löschpulse die maximale Pulszahl (MAX_PC) erreicht (Schritt 1444 aus 73), der Sektor 1400 den Lösch-Verifizier-BIST-Modus (Schritt 1446 aus 73) erfolgreich und der Lösch-Verifizier-BIST-Modus endet.
  • Wenn jedoch die maximale Pulszahl (MAX_PC) im Schritt 1442 aus 73 erreicht wird, bestimmt der Maximalpulszahldecodierer 1414, ob der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wurde, an den Sektor 1400 während des Lösch/Verifizierens des gesamten Sektors aus Flashspeicherzellen angelegt wurde (Schritt 1452 aus 73). Für das vorhergehende Beispiel des ausgewählten Anteils der diagonalen Gesamtzahl an Löschpulse von 75%, wurde, wenn der Wert MAX_PC von dem Löschpulszähler 1404 dieses Mal erreicht wird, der ausgewählte Anteil der diagonalen Gesamtzahl an den Sektor 1400 angelegt. Während des vorhergehenden Durchlaufs der Schritte 1440, 1442, 1444, 1446, 1452, 1454 und 1456 wird der erste Wiederladezählwert des Wiederladezählwertgenerators 1422 mit Teilung 2 in den Löschpulszähler 1404 eingeladen und der Wert MAX_PC, der erreicht wird, ergab 50% der diagonalen Gesamtzahl an Löschpulse, die an den Sektor 1400 angelegt wurden. Dann ergab während des aktuellen Durchlaufs der Schritte 1440, 1442, 1444, 1446, 1452, 1454 und/oder 1456 der zweite Wiederladezählwert des Wiederladezählwert generators 1424 mit Teilung 4, der in den Löschpulszähler 1404 eingeladen wurde und bei Erreichen des Werts MAX_PC 25% der diagonalen Gesamtzahl an Löschpulsen, die an den Sektor 1400 angelegt wurden. Somit wurden insgesamt 75% der diagonalen Gesamtzahl an Löschpulse an den Sektor 1400 angelegt.
  • Auf diese Weise verfolgen die Wiederladelogik 1416 und der Maximalpulszahldecodierer 1414 einen beliebigen ausgewählten Anteil der diagonalen Gesamtanzahl an Löschpulse, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wurde, solange der ausgewählte Anteil eine Kombination entsprechender Anteile der mehreren Wiederladezählwertgeneratoren 1422, 1424 und 1426 ist. Da beispielsweise der entsprechende Anteil der mehreren Wiederladezählwertgeneratoren 1422, 1424 und 1426 50, 25 und 12,5 % beträgt, kann der ausgewählte Prozentsatz, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wird, eine der folgenden Werte sein: 75%, 62,5, 50%, 37,5%, 25% oder 12,5%. Somit ergibt das System 1402 zum Verfolgen der Anzahl an Löschpulsen, die an den Sektor 1400 aus Flashspeicherzellen während des Lösch-Verifizier-BIST- (eingebauter Selbsttest) Modus angelegt werden, eine hohe Flexibilität im Hinblick auf mehrere Anteile der diagonalen Gesamtzahl an Löschpulsen, die während des Lösch-Verifizierens des gesamten Sektors aus Flashspeicherzellen anzulegen sind.
  • Ferner können zusätzliche entsprechende Anteile mit zusätzlichen Wiederladezählwertgeneratoren der mehreren Wiederladezählwertgeneratoren 1422 erzeugt werden. Insbesondere kann ein beliebiger Anteil, d. h. ein Anteil, der durch 1/2" repräsentiert ist, auf vorteilhafter Weise erzeugt werden, wobei „n" eine positive Ganzzahl größer Null ist, etwa 1/16, 1/32, 1/64, usw. Ferner kann der ausgewählte Anteil der diagonalen Gesamtzahl an Löschpulsen, wie er von dem Anwender über die BIST-Schnittstelle 312 eingegeben wird, eine beliebige Kombination entsprechender Anteile der mehreren Wiederladezählwertgeneratoren mit einer beliebigen Anzahl erneuter Einladevorgängen der Wederladezählwerte der mehreren Wiederladezählwertgeneratoren sein. Beispielsweise sind für den ausgewählten Anteil der diagonalen Gesamtzahl an Löschpulsen von 75% lediglich zwei Wiederladevorgänge von 50% und 25% beschrieben. Jedoch können andere ausgewählte Anteile mit drei Ladevorgängen oder vier Ladevorgängen, etc. erreicht werden.
  • Ferner wird das Überwachen der Anzahl an Löschpulsen, die an den Sektor aus Flashspeicherzellen 1400 während des Lösch-Verifizier-BIST-Modus angelegt werden, chipintern ausgeführt. Da das Überwachen der Anzahl an Löschpulsen, die an den Sektor aus Flashspeicherzellen während des Lösch-Verifizier-BIST-Modus angelegt werden, chipintern ausgeführt wird, ist die Geschwindigkeit des Ausführens des Lösch-Verifizier-BIST-Modus nicht durch die Kapazität des externen Testsystems beschränkt. Somit kann das Überwachen der Anzahl von Löschpulsen, die an den Sektor aus Flashspeicherzellen während eines Lösch-Verifizier-BIST-Modus angelegt werden, effizienter gestaltet werden.
  • Das Vorhergehende ist lediglich beispielhaft und nicht als Einschränkung beabsichtigt. Beispielsweise können beliebige Zahlen, wie sie hierin beschrieben oder dargestellt sind, als anschaulich erachtet werden. Ferner kann die Implementierung jeder der Komponenten 1412, 1413, 1414, 1416, 1418, 1420, 1422, 1424 und 1426 der Pulszählersteuerung 1408 in diversen Einrichtungen ausgeführt werden, wie dies dem Fachmann auf dem Gebiet der Elektronik vertraut ist, etwa mittels Hardwarelogik oder mittels einer Softwareprogrammierung in einem Datenprozessor. Die vorliegende Erfindung ist lediglich in der Weise beschränkt, wie dies in den folgenden Patentansprüchen und deren Äquivalenten definiert ist.
  • J. Erzeugung einer Grenzspannung chipintern während des Testens des CAM-Bereichs der Flashspeichereinrichtung
  • Gemäß 4 besitzt die Halbleiterscheibe 220 mehrere Halbleiterchips, die darauf hergestellt sind. Jede quadratische Fläche auf der Halbleiterscheibe 220 aus 4 repräsentiert einen Halbleiterchip. Es werden typischerweise mehr Halbleiterchips auf einer Halbleiterscheibe hergestellt, als dies in 4 der Einfachheit halber gezeigt ist. Jeder Halbleiterchip besitzt eine Flashspeichereinrichtung, die beispielsweise darauf hergestellt ist. Gemäß 74 ist ein beispielhafter Halbleiterchip 1465 mit einer Flashspeichereinrichtung 1466 gezeigt, die ein Array aus Kernflashspeicherzellen enthält. Jeder Halbleiterchip aus 4 besitzt eine entsprechende Flashspeichereinrichtung, die ein Array aus Kernflashspeicherzellen 1466 aufweist. Eine derartige Flashspeichereinrichtung mit einem Array aus Flashspeicherzellen ist dem Fachmann auf dem Gebiet der Elektronik vertraut.
  • Ferner besitzt der Halbleiterchip 1464 einen Randbereich 1468 mit Logikschaltungen zum Steuern des Betriebs des Arrays aus Kernflashspeicherzellen 1466, wie dies dem Fachmann auf dem Gebiet der Elektronik bekannt ist. Ein CAM- (inhaltsadressierbarer Speicher) 1470 ist typischerweise ein Teil des Randbereichs 1468. Der CAM 1470 speichert diverse Arten an Information hinsichtlich des Arrays aus Kernflashspeicherzellen 1466 für den korrekten Betrieb des Arrays aus Kernflashspeicherzellen 1466. Beispielsweise speichert der CAM 1470 Informationen einer redundanten Zelle, die eine defekte Zelle innerhalb des Arrays aus Kernflashspeicherzellen 1466 ersetzt. Eine derartige Verwendung des CAM 1470 in dem Randbereich 1468 ist dem Fachmann auf dem Gebiet der Elektronik bekannt.
  • Da der CAM 1470 Information speichert, die während des Betriebs des Arrays aus Kernflashspeicherzellen 1466 verwendet wird, wird die Zuverlässigkeit und die korrekte Funktion des CAM 1470 vor dem Verwenden des CAM 1470 verifiziert. Der CAM 1470 umfasst typischerweise ein Array aus Flashspeicherzellen, wie dies dem Fachmann auf dem Gebiet der Elektronik bekannt ist. Beispielsweise besitzt jede Flashspeicherzelle des CAM 1470 eine Bauteilstruktur der 1, wie dies bereits hierin dargestellt und beschrieben ist.
  • Da der CAM 1470 Information speichert, die während des Betriebs des Arrays aus Kernflashspeicherzellen 1466 verwendet wird, wird die Zuverlässigkeit und die korrekte Funktion des CAM 1470 vor der Verwendung des CAM 1470 überprüft. Zur Verifizierung der Zuverlässigkeit und korrekten Funktion einer Flashspeicherzelle des CAM 1470 wird die Flashspeicherzelle des CAM 1470 programmiert und gelöscht. Anschließend wird eine Leseoperation an einer derartigen Flashspeicherzelle nach dem Programmieren oder Löschen durchgeführt, um sicherzustellen, dass die Flashspeicherzelle in korrekter Weise programmiert oder gelöscht ist, um die korrekte Funktion der Flashspeicherzelle des CAM zu überprüfen. Eine derartige Leseoperation nach dem Programmieren der Flashspeicherzelle des CAM wird als „Programmierbegrenzung" vom Fachmann auf dem Gebiet der Flashspeichertechnologie bezeichnet. In ähnlicher Weise wird ein Lesevorgang nach dem Löschen der Flashspeicherzelle des CAM als eine „Löschbegrenzung" von dem Fachmann auf dem Fachmann auf dem Gebiet der Flashspeichertechnologie bezeichnet.
  • Während der Programmierbegrenzung einer Flashspeicherzelle eines CAM wird eine Gate- zu Sourcespannung von ungefähr 3,3 Volt an die Flashspeicherzelle angelegt, um zu überprüfen, ob diese Flashspeicherzelle ausgeschaltet bleibt. Wenn die Flashspeicherzelle mit einer derartigen Gate/Source-Spannung einschaltet, dann wird die Flashspeicherzelle als defekt bewertet. Eine derartige Gate/Sourcespannung von 3,3 Volt wird als die Grenzspannung bezeichnet. Während der Löschbegrenzung einer Flashspeicherzelle eines CAM wird eine Gate/Source-Spannung von ungefähr 0 Volt an die Flashspeicherzelle angelegt, um zu überprüfen, ob diese Flashspeicherzelle einschaltet. Wenn die Flashspeicherzelle mit einer derartigen Gate/Source-Spannung ausgeschaltet bleibt, dann wird die Flashspeicherzelle als defekt bewertet. Eine derartige Gate/Source-Spannung von 0 Volt wird als die Grenzspannung bezeichnet.
  • Im Stand der Technik wird die Grenzspannung von 3,3 Volt von einer Versorgungsquelle Vcc eines externen Testsystems 1471 zugeführt. Das externe Testsystem 1471 prüft die korrekte Funktion der Flashspeichereinrichtung einschließlich des Arrays aus Kernflashspeicherzellen 1466, das auf dem Halbleiterchip 1464 hergestellt ist. Ein Beispiel eines derartigen externen Testsystems 1471 ist das Modell V3300, das von Agilent Technologies, Inc. mit Sitz in Palo Alto, Kalifornien verfügbar ist. Jedoch kann eine derartige Spannung Vcc aus dem externen Testsystem 1471 täglich entsprechend den äußeren Bedingungen, etwa Temperatur, variieren. Ferner können für unterschiedliche Modi zum Testen der Kernflashspeicherzellen 1466 unterschiedliche Spannungspegel für die Spannung Vcc des externen Testsystems 1471 wünschenswert sein. Eine derartige Änderung der Spannung Vcc des externen Testsystems 1471 führt jedoch zu ungewünschten Schwankungen während des Überprüfens der korrekten Funktion der Flashspeicherzellen des CAM 1470. Somit ist eine stabilere Quelle für die Grenzspannung für bessere Ergebnisse zum Überprüfen der konekten Funktion der Flashspeicherzellen des CAM 1470 wünschenswert.
  • Gemäß 75 umfasst ein Halbleiterchip 1480 eine Flashspeichereinrichtung 1482 mit einem Array aus Kernflashspeicherzellen und einem Randbereich 1484 mit einer Logikschaltung und einem CAM (inhaltsadressierbaren Speicher) 1486, wie dies dem Fachmann auf dem der Flashspeichertechnologie bekannt ist. Ferner umfasst der Halbleiterchip 1480 gemäß einem Aspekt der vorliegenden Erfindung ein BIST- (eingebauter Selbsttest) System 300 mit einem Grenzspannungsgenerator 1490. Das BIST-System 300 ist in Funktion und Aufbau ähnlich zu dem BIST-System 300, wie es bereits hierin beschrieben ist.
  • Das BIST-System 300 führt Programmier-, Lösch- und Leseoperationen an dem Array aus Kernflashspeicherzellen 1482 chipintern innerhalb des Halbleiterchips 1480 während des Überprüfens der konekten Funktion des Arrays aus Kernflashspeicherzellen 1482 während eines BIST- (eingebauter Selbsttest) Modus durch, der von einem externen Testsystem 1492 aufgerufen wird. Andererseits führt das externe Testsystem 1492 die Programmier-, Lösch- und Leseoperationen direkt an dem Array aus Kernflashspeicherzellen 1482 durch, wenn ein manueller Modus von dem externen Testsystem 1492 aufgerufen wird. Ein Beispiel eines derartigen externen Testsystems 1492, das für den BIST-Modus oder den manuellen Modus verwendet werden kann, ist das Modell V3300, das von Agilent Technologies, Inc., mit Sitz in Palo Alto, Kalifornien, beziehbar ist.
  • Da der CAM 1486 Informationen speichert, die während des Betriebs des Arrays aus Kernflashspeicherzellen 1482 verwendet werden, wird die Zuverlässigkeit und die korrekte Funktion des CAM 1486 vor der Verwendung des CAM 1486 für die Speicherung einer derartigen Information überprüft. Der CAM 1486 umfasst typischerweise ein Array aus Flashspeicherzellen, wie dies dem Fachmann auf dem Gebiet der Elektronik bekannt ist. Zur Überprüfung der Zuverlässigkeit und konekten Funktion einer Flashspeicherzelle des CAM 1486 wird die Flashspeicherzelle programmiert und gelöscht. Anschließend wird ein Lesevorgang an einer derartigen Flashspeicherzelle nach dem Programmieren oder Löschen ausgeführt, um sicherzustellen, dass die Flashspeicherzelle korrekt programmiert oder gelöscht wurde, um die korrekte Funktion der Flashspeicherzelle des CAM 1486 zu prüfen. Eine derartige Leseoperation nach dem Programmieren der Flashspeicherzelle des CAM 1486 wird als „Programmierbegrenzung" vom Fachmann auf dem Gebiet der Flashspeichertechnologie bezeichnet. In ähnlicher Weise wird ein Lesevorgang nach dem Löschen der Flashspeicherzelle des CAM 1486 als eine „Löschbegrenzung" vom Fachmann auf dem Gebiet der Flashspeichertechnologie bezeichnet.
  • Während der Programmierbegrenzung einer Flashspeicherzelle des CAM 1486 wird eine Gate/Source-Spannung von ungefähr 3,3 Volt an die Flashspeicherzelle angelegt, um zu prüfen, ob diese Flashspeicherzelle ausgeschaltet bleibt. Wenn die Flashspeicherzelle bei einer derartigen Gate/Source-Spannung einschaltet, dann wir die Flashspeicherzelle als defekt betrachtet. Eine derartige Gate/Sourcespannung von 3,3 Volt wird als eine Programmiergrenzspannung bezeichnet. Während der Löschbegrenzung einer Flashspeicherzelle eines CAM wird eine Gate/Source-Spannung von ungefähr 0 Volt an die Flashspeicherzelle angelegt, um zu prüfen, ob diese Flashspeicherzelle einschaltet. Wenn die Flashspeicherzelle mit einer derartigen Gate/Source-Spannung ausgeschaltet bleibt, dann wird die Flashspeicherzelle als defekt betrachtet. Eine derartige Gate/Source-Spannung von 0 Volt wird als die Löschgrenzspannung bezeichnet.
  • 76 zeigt ein Schaltbild der Grenzspannungsgeneratoreinrichtung 1490 zum Erzeugen der Programmiergrenzspannung der Löschgrenzspannungen, die während des Prüfens einer Flashspeicherzelle des CAM 1486 verwendet werden. Gemäß den 75 und 76 ist die Grenzspannungsgeneratorvorrichtung 1490 als ein Teil des BIST-Systems 300 auf dem Halbleiterchip 1480 gemäß einer Ausführungsform der vorliegenden Erfindung ausgebildet. Gemäß 76 umfasst die Grenzspannungsgeneratorvorrichtung 1490 einen Spannungsregler 1502 und eine Hochspannungsladungspumpe 1503, die ein Teil eines Hochspannungsgenerators 1504 (in 76 innerhalb der gestrichelten Linien gezeigt) bilden, um eine Hochspannungsquelle mit einem Spannungspegel von VPROG bereitzustellen. Der Spannungsregler 1502 und die Ladungspumpe 1503 sind auf dem Halbleiterchip 1480 hergestellt. Derartige Ladungspumpen und Spannungsregler zum Erzeugen einer relativ stabilen Spannung sind dem Fachmann auf dem Gebiet der Elektronik bekannt.
  • Ferner ist eine Niederspannungsquelle 1504, etwa ein Masseknoten 1504, mit dem Spannungsregler 1502 verbunden. Der Pegel der Hochspannung VPROG ist in Bezug auf den Masseknoten 1504 definiert. Gemäß 76 umfasst die Grenzspannungsgeneratorvorrichtung 1490 ferner einen PMOSFET (P-Kanal-Metall-Oxid-Halbleiter-Feldeffekttransistor) 1506 als einen ersten Transistor und einen NMOSFET (N-Kanal-Metall-Oxid-Halbleiter-Feldeffekttransistor) 1508 als einen zweiten Transistor. Das Source des PMOSFET 1506 ist mit der Hochspannungsquelle 1501, die die Spannung VPROG liefert, verbunden, und das Source des NMOSFET 1508 ist mit dem Masseknoten der Niedrgspannungsquelle 1504 verbunden.
  • Ferner ist ein erster Widerstand 1510 mit einem Widerstandswert von R1 zwischen dem Drain des PMOSFET 1506 und einem Ausgangsknoten 1512 angeschlossen, und ein zweiter Widerstand 1514 mit einem Widerstandswert von R2 ist zwischen dem Drain des NMOSFET 1508 und dem Ausgangsknoten 1512 angeschlossen. Die Programmier- oder Löschgrenzspannung, die zum Testen der Flashspeicherzellen des CAM 1486 verwendet wird, wird an dem Ausgangsknoten 1512 erzeugt.
  • Die Grenzspannungsgeneratorvorrichtung 1490 umfasst ferner eine Logikschaltung 1516 (die innerhalb der gestrichelten Linien in 76 gezeigt ist), um das Erzeugen der Programmier- oder Löschgrenzspannung während eines BIST- (eingebauter Selbsttest) Modus oder eines manuellen Modus zu steuern. Die Logikschaltung 1516 umfasst einen Span nungspegelschieber 1518. Ein Ausgang OUTB des Spannungspegelschieber 1518 ist mit dem Gate des PMOSFET 1506 verbunden. Der Ausgang eines ersten NOR-Gatters 1520 ist mit dem Eingang des Spannungspegelschiebers 1518 verbunden. Das erste NOR-Gatter 1520 besitzt ein Steuersignal ERMARGIN als ein erstes Eingangssignal und das Ausgangssignal eines zweiten NOR- Gatters 1522 als ein zweites Eingangssignal. Das zweite NOR-Gatter 1522 besitzt ein Steuersignal BVERIFY als ein erstes Eingangssignal und das Ausgangssignal eines ersten Inverters 1524 als ein zweites Eingangssignal. Der erste Inverter 1524 besitzt ein Steuersignal STEST als das Eingangssignal.
  • Des weiteren umfasst die Logikschaltung 1516 ein drittes NOR-Gatter 1526 und einen zweiten Inverter 1528. Der Ausgang des zweiten Inverters 1528 ist mit dem Gate des NMOSFET 1508 verbunden, und der Eingang des zweiten Inverters 1528 ist mit dem Ausgang des dritten NOR-Gatters 1526 verbunden. Das dritte NOR-Gatter 1526 besitzt drei Eingänge, das Steuersignal RMARGIN, das mit einem ersten Eingang des dritten NOR-Gatters 1526 verbunden ist, ein Steuersignal BREPAIR, das mit einem zweiten Eingang des dritten NOR-Gatters 1526 verbunden ist, und ein Steuersignal BWPPGM, das mit einem dritten Eingang des dritten NOR-Gatters 1526 verbunden ist.
  • Ferner umfasst die Grenzspannungsgeneratorvorrichtung 1490 einen ersten Satz an Durchlasstransistoren mit einem ersten Durchlass-PMOSFET- (P-Kanal-Metall-Oxid-Halbleiter-Feldeffekttransistor) 1532 und einen ersten Durchlass-NMOSFET (N-Kanal-Metall-Oxid-Halbleiter-Feldeffekttransistor) 1534. Die Drainanschlüsse des ersten Satzes aus Durchlasstransistoren 1532 und 1534 sind mit dem Ausgangsknoten 1512 verbunden, und die Source-Anschlüsse des ersten Satzes aus Durchlasstransistoren 1532 und 1534 sind mit den Gates einer ersten Gruppe aus Flashspeicherzellen 1536 des CAM 1486 verbunden, wie in 77 gezeigt ist.
  • In ähnlicher Weise umfasst die Grenzspannungsgeneratorvorrichtung 1490 einen zweiten Satz an Durchlasstransistoren mit einem zweiten Durchlass-PMOS-FET (P-Kanal-Metall-Oxid-Halbleiter-Feldeffekttransistor) 1538 und einem zweiten Durchlass-NMOFET (N-Kanal-Metall-Oxid-Halbleiter-Feldeffekttransistor) 1540. Die Drainanschlüsse des zweiten Satzes aus Durchlasstransistoren 1538 und 1540 sind mit dem Ausgangsknoten 1412 verbunden, und die Source-Anschlüsse des zweiten Satzes aus Durchlasstransistoren 1538 und 1540 sind mit den Gates einer zweiten Gruppe aus Flashspeicherzellen 1542 des CAM 1486 verbunden, wie in 77 gezeigt ist.
  • 78 zeigt eine beispielhafte Implementierung des Spannungspegelschiebers 1518. Der Spannungspegelschieber 1518 umfasst einen ersten Schiebe-PMOSFET (P-Kanal-Metall-Oxid-Halbleiter-Feldeffekttransistor) 1552, einen zweiten Schiebe-PMOSFET (P-Kanal-Metall-Oxid-Halbleiterfeldeffektransistor) 1554, einen ersten Schiebe-NMOSFET (N-Kanal-Metall-Oxid-Halbleiter-Feldeffekttransistor) 1556 und einen zweiten Schiebe-NMOSFET (N-Kanal-Metall-Oxid-Halbleiter-Feldeffekttransistor) 1558.
  • Die Source-Anschlüsse des ersten und des zweiten PMOSFET 1552 und 1554 sind beide mit der Hochspannungsquelle 1501, die den Spannungspegel VPROG liefert, verbunden. Die Drainanschlüsse des ersten Schiebe-PMOSFET 1552 und des ersten Schiebe-NMOSFET 1556 sind beide mit einem ersten Ausgangsknoten OUTB verbunden. Der Drainanschluss des zweiten Schiebe-PMOSFET 1554 und des zweiten Schiebe-NMOSFET 1558 sind beide mit einem zweiten Ausgangsknoten OUT verbunden. Das Gate des ersten Schiebe-PMOSFET 1552 ist mit den Drainanschlüssen des zweiten Schiebe-PMOSFET 1554 und des zweiten Schiebe-NMOSFET 1558 und dem zweiten Ausgangsknoten OUT verbunden. Das Gate des zweiten Schiebe-PMOSFET 1554 ist mit dem Drainanschluss des ersten Schiebe-PMOSFET 1552 und des ersten Schiebe-NMOSFET 1556 an dem ersten Ausgangsknoten OUTB verbunden. Das Gate des ersten Schiebe-NMOSFET 1556 ist mit einem Eingangsknoten IN verbunden, und das Gate des zweiten Schiebe-NMOSFET 1558 ist mit dem Eingangsknoten IN über einen dritten Inverter 1560 verbunden.
  • 79 zeigt eine Tabelle aus Spannungen während des Betriebs der Grenzspannungsgeneratorvorrichtung 1490 aus 76. Gemäß den 75, 76 und 79 sind die Signale ERMARGIN, STEST, BVERIFY, BREPAIR und BWPPGM Steuersignale, die von dem BIST-System 300 gesendet werden. Das Steuersignal ERMARGIN wird auf den hohen Zustand (d. h. „1") gesetzt, wenn eine Löschbegrenzungsoperation an dem CAM 1486 durchgeführt wird, und wird in einen tiefen Zustand (d. h. „0") gesetzt, wenn eine Programmierbegrenzungsoperation an dem CAM 1486 ausgeführt wird. Das Steuersignal STEST wird auf einen hohen Zustand gesetzt (d. h. „1"), wenn der BIST- (eingebauter Selbsttest) Modus von dem externen Testsystem aufgerufen wird, und wird auf einen tiefen Zustand (d. h. „0") gesetzt, wenn der manuelle Modus von dem externen Testsystem aufgerufen wird.
  • Wenn typischerweise ein Steuersignal hochpegelig wird (d. h. „1"), werden ungefähr 5 Volt für das Steuersignal angelegt. Wenn andererseits ein Steuersignal auf den tiefen Zustand gesetzt wird (d. h. „0"), werden ungefähr 9 Volt als das Steuersignal angelegt.
  • Gemäß den 76 und 77 wird das Steuersignal BREPAIR auf tiefen Pegel gelegt (d. h. „0"), um die Funktion der ersten Gruppe aus Flashspeicherzellen 1536 des CAM 1486 zu prüfen, und das Steuersignal BWPPGM wird auf den tiefen Zustand gesetzt (d. h. „0"), um die Funktion der zweiten Gruppe aus Flashspeicherzellen 1542 des CAM 1486 zu prüfen. Die Anwendung des Steuersignals BVERIFY ermöglicht, dass der PMOSFET 1506 ein- oder ausschaltet, nachdem der Spannungspegel VPROG von der Hochspannungsquelle 1501 sich stabilisiert hat.
  • 80 zeigt die Spannungspegel während des Betriebs der Grenzspannungsgeneratorvorrichtung 1490 aus 76, um eine Programmierspannung von 3,3 Volt an dem Ausgangsknoten 1512 bereitzustellen, wenn der BIST-Modus von dem externen Testsystem 1492 aufgerufen ist. Gemäß den 79 (d. h. die erste Spalte mit der Überschrift „BIST-Programmier-Grenze" in 79) und 80 wird, da der BIST-Modus aufgerufen ist, das Steuersignal STEST auf den hohen Zustand gesetzt (d. h. „1"). Ferner wird für die Programmiergrenzspannung das Steuersignal ERMARGIN auf den tiefen Zustand gesetzt (d. h. „0"). In einer Ausführungsform der vorliegenden Erfindung wird das Steuersignal BREPAIR auf den hohen Zustand gesetzt (d. h. „1"), und das BWPPGM-Steuersignal wird auf den tiefen Zustand gesetzt (d. h. „0"), um die Programmiergrenzspannung von 3,3 Volt an die zweite Gruppe aus Flashspeicherzellen 1542 des CAM 1486 in 77 anzulegen.
  • Gemäß den 78 und 80 wird mit derartigen Steuersignalen der Eingang des Spannungspegelschiebers 1518 auf den hohen Zustand gelegt (d. h. „1"), so dass der Spannungspegel an dem ersten Ausgangsknoten OUTB 0 Volt beträgt. Bei 0 Volt an dem Gate des PMOSFET 1506 schaltet dieser ein. Ferner wird mit derartigen Steuersignalen ein Spannungspegel von 5 Volt an dem Gate des NMOSFET 1508 angelegt, so dass der NMOSFET 1508 einschaltet. Wenn der PMOSFET 1506 und der NMOSFET 1508 eingeschaltet sind, bilden der erste und der zweite Widerstand 1510 und 1514 einen Widerstandsteiler zwischen der Hochspannungsquelle 1501 und dem Masseknoten 1504. In diesem Falle beträgt die Ausgangsspannung Vout an dem Ausgangsknoten 1512: Vout = Vprog[R2/(R1 + R2)]
  • In einer Ausführungsform der vorliegenden Erfindung beträgt Vprog gleich 5 Volt, und die Werte von R1 und R2 sind so gewählt, dass sie Vout = 3,3 Volt ergibt.
  • 81 zeigt die Spannungspegel während des Betriebs der Grenzspannungsgeneratorvorrichtung 1490 aus 76, um eine Löschgrenzspannung von 0 Volt an dem Ausgangsknoten 1512 bereitzustellen, wenn der BIST-Modus von dem externen Testsystem 1492 aufgerufen ist. Gemäß den 79 (d. h. der zweiten Spalte, d. h. mit der Überschrift „BIST-Löschgrenze" in 79) und 81 wird, da der BIST-Modus aufgerufen ist, das Steuersignal STEST auf hoch gesetzt (d. h. „1"). Ferner wird für diese Löschgrenzspannung das Steuersignal RMARGIN auf hoch gesetzt (d. h. „1"). Des weiteren wird das Steuersignal BREPAIR auf tief gesetzt (d. h. „0"), und das Steuersignal BWPPGM wird auf tief gesetzt (d. h. „0"), um die Löschgrenzspannung von 0 Volt an jeweils die erste und die zweite Gruppe aus Flashspeicherzellen 1536 und 1542 des CAM 1486 in 77 anzulegen.
  • Gemäß den 78 und 81 wird mit derartigen Steuersignalen der Eingang des Spannungspegelschiebers 1518 auf tief gesetzt (d. h. „0"), so dass der Spannungspegel an dem ersten Ausgangsknoten OUTB auf dem Hochspannungspegel von VPROG liegt. Bei einem Spannungspegel von VPROG an dem Gate des PMOSFET 1506 schaltet dieser aus. Ferner wird mit derartigen Steuersignalen ein Spannungspegel von 5 Volt an das Gate des NMOSFET 1508 angelegt, so dass der NMOSFET 1508 einschaltet. Bei ausgeschaltetem PMOSFET 1506 und eingeschaltetem NMOSFET 1508 entlädt sich der Ausgangsknoten 1512 auf eine Ausgangsspannung Vout = 0 Volt des Masseknotens der Niedrigspannungsquelle 1504.
  • 82 zeigt die Spannungspegel während des Betriebs der Grenzspannungsgeneratorvorrichtung 1490 aus 76, um eine Programmiergrenzspannung von VPROG an den Ausgangsknoten 1512 anzulegen, wenn der manuelle Modus von dem externen Testsystem 1492 aufgerufen ist. Gemäß der 79 (d. h. der dritten Spalte mit der Überschrift „manuelle Programmiergrenze" in 79) und 82 wird, da der manuelle Modus aufgerufen ist, das Steuersignal STEST auf tief gesetzt (d. h. „0"). Ferner wird für die Programmiergrenzspannung das Steuersignal ERMARGIN auf tief gesetzt (d. h. „0"). Ferner wird das Steuersignal BREPAIR auf tief gesetzt (d. h. „0"), und das BWPPGM-Steuersignal wird auf tief gesetzt (d. h. „0"), um die Programmierspannung von VPROG an jeweils die erste und die zweite Gruppe aus Flashspeicherzellen 1536 und 1542 des CAM 1486 in 77 anzulegen.
  • Gemäß den 78 und 82 wird mit derartigen Steuersignalen der Eingang des Spannungspegelschiebers 1518 auf hoch gesetzt (d. h. „1"), so dass der Spannungspegel an dem ersten Ausgangsknoten OUTB 0 Volt beträgt. Mit einer Spannung von 0 Volt an dem Gate des PMOSFET 1506 wird dieser eingeschaltet. Ferner wird mit derartigen Steuersignalen ein Spannungspegel von 0 Volt an dem Gate des NMOSFET 1508 angelegt, so dass der NMOSFET 1508 ausgeschaltet wird. Wenn der PMOSFT 1506 eingeschaltet ist und der NMOSFET 1508 ausgeschaltet ist, lädt sich der Ausgangsknoten 1512 auf eine Ausgangsspannung Vout = VPROG der Hochspannungsquelle 1501 auf.
  • 83 zeigt die Spannungspegel während des Betriebs der Grenzspannungsgeneratorvorrichtung 1590 aus 76, um eine Löschgrenzspannung von 0 Volt an dem Ausgangsknoten 1512 bereitzustellen, wenn von dem externen Testsystem der manuelle Modus aufgerufen wird. Gemäß den 79 (d. h. der vierten Spalte mit der Überschrift „manuelle Löschgrenze" in 79) und 83 wird, da der manuelle Modus aufgerufen wird, das Steuersignal STEST tief gesetzt (d. h. „0"). Ferner wird für die Löschgrenzspannung das Steuersignal ERMARGIN auf hoch gesetzt (d. h. „1"). Des weiteren wird das Steuersignal BREPAIR auf tief gesetzt (d. h. „0"), und das Steuersignal BWPPGM wird auf tief gesetzt (d. h. „0"), um die Löschgrenzspannung von 0 Volt an sowohl die erste Gruppe als auch die zweite Gruppe aus Flashspeicherzellen 1536 und 1542 des CAM 1486 in 77 anzulegen.
  • Gemäß den 78 und 83 wird mit derartigen Steuersignalen der Eingang des Spannungspegelschiebers 1518 auf tief gesetzt (d. h. „0"), so dass der Spannungspegel an dem ersten Ausgangsknoten OUTB der Spannungspegel von VPROG ist. Mit einer Spannung von VPROG an dem Gate des PMOSFET 1506 schaltet dieser aus. Ferner wird mit derartigen Steuersignalen ein Spannungspegel von 5 Volt an dem Gate des NMOST 1508 angelegt, so dass der NMOSFET 1508 einschaltet. Wenn der PMOSFET 1506 ausgeschaltet ist und der NMOSFET 1508 eingeschaltet ist, entlädt sich der Ausgangsknoten 1512 auf eine Ausgangsspannung Vout = 0 Volt des Masseknotens der Niedrigspannungsquelle 1504.
  • Des weiteren kann das Signal BVERIFY auf einen gewünschten hohen Zustand oder tiefen Zustand mit Verzögerung gesetzt werden, nachdem das Signal STEST auf den gewünschten hohen Zustand oder tiefen Zustand gesetzt ist, so dass der PMOSFET nach der Zeitverzögerung ein- oder ausgeschaltet wird. Mit einer derartigen Zeitverzögerung wird der PMOSFET eingeschaltet oder ausgeschaltet, nachdem der Spannungspegel VPROG sich gemäß einer Ausführungsform der vorliegenden Erfindung stabilisiert hat.
  • Gemäß den 76 und 77 wird der erste Satz aus Durchlasstransistoren 1532 und 1534 eingeschaltet, während der zweite Satz aus Durchlasstransistoren 1538 und 1540 ausgeschaltet bleibt, während geeignete Spannungen an die Gates des ersten und zweiten Satzes aus Durchlasstransistoren 1532, 1534, 1538 und 1540 angelegt sind, um die Ausgangsspannung Vout an den Ausgangsknoten 1512 zu der ersten Gruppe aus Flashspeicherzellen 1536 des CAM 1486 anzukoppeln, wie dies in 77 gezeigt ist. Andererseits wird der zweite Satz aus Durchlasstransistoren 1538 und 1540 eingeschaltet, während der erste Satz aus Durchlasstransistoren 1532 und 1534 ausgeschaltet bleibt, wobei geeignete Spannungen an die Gates des ersten und zweiten Satzes aus Durchlasstransistoren 1532, 1534, 1538 und 1540 angelegt sind, um die Ausgangsspannung Vout des Ausgangsknotens 1512 an die zweite Gruppe aus Flashspeicherzellen 1542 des CAM 1486 anzulegen, wie dies in 77 gezeigt ist. Alternativ sind der erste und der zweite Satz aus Durchlasstransistoren 1532, 1534, 1538 und 1540 eingeschaltet, um die Ausgangsspannung Vout an den Ausgangsknoten 1512 mit der ersten und der zweiten Gruppe aus Flashspeicherzellen 1536 und 1542 des CAM 1486, der in 77 gezeigt ist, zu verbinden. Eine Steuerschaltung zum Anlegen derartiger geeigneter Spannungen an die Gates des ersten und des zweiten Satzes aus Durchlasstransistoren 1532, 1534, 1538 und 1540 sind dem Fachmann auf dem Gebiet der Elektronik bekannt.
  • Auf diese Weise werden die Programmier- oder Löschgrenzspannungen zum Prüfen der Flashspeicherzellen des CAM 1486 chipintern mit einem Widerstandsteiler erzeugt, so dass die Grenzspannungen unabhängig von der Spannung Vcc, die von dem externen Testsystem bereitgestellt wird, ist. Die Programmier- oder Löschgrenzspannungen werden chipintern in dem Halbleiterchip 1480 erzeugt, da die Komponenten der Grenzspannungsgeneratorvorrichtung 1490 aus 76 auf der Halbleiterscheibe des Halbleiterchips 1480 hergestellt sind. Mit stabileren Grenzspannungen sind die Ergebnisse des Prüfens des CAM der Flashspeichereinrichtung konsistenter für eine große Anzahl an Losen aus Halbleiterschei ben. Ferner sind mit derartigen chipintern erzeugten Grenzspannungen, die von Vcc des externen Testsystems unabhängig sind, die Ergebnisse des Prüfens des CAM's der Flashspeichereinrchtung konsistenter, selbst wenn diverse Pegel der Spannung Vcc des externen Testsystems zu Prüfen der Kernflashspeicherzellen verwendet werden.
  • Das Vorhergehende ist lediglich beispielhafter Natur und soll nicht einschränkend sein. Beispielsweise kann die vorliegende Erfindung mit anderen Arten an Transistoren im Vergleich zu den PMOSFET 1506 und dem NMOSFET 1508 ausgeführt werden. Ferner sind Spannungspegel, wie sie hierin beschrieben sind, lediglich beispielhafter Natur und die vorliegende Erfindung kann mit anderen Spannungspegeln durchgeführt werden, wie sich dies dem Fachmann auf dem Gebiet der Elektronik aus der hierin dargelegten Beschreibung erschließt. Die Erfindung ist lediglich in der Weise beschräkt, wie dies durch die folgenden Patentansprüche und die Äquivalente definiert ist.

Claims (28)

  1. Verfahren zum Testen eines Arrays aus Flash-Speicherzellen (304), die auf einem Halbleitersubstrat (302) hergesellt sind, wobei das Verfahren die Schritte umfasst: Herstellen einer BIST- (integrierter Selbsttest) Schnittstelle (312) und einer hinteren Zustandsmaschine (316) auf dem Halbleitersubstrat (302); serielles Einspeisen mittels der BIST-Schnittstelle (312) von Bits aus Testmodusdaten von einem externen Testsystem (318); wobei die Testmodusdaten eine Reihenfolge mehrerer auszuführender BIST-Modi kennzeichnen, und wobei jeder BIST-Modus zum Testen einer Eigenschaft des gesamten Arrays aus Flash-Speicherzellen dient; und Ausführen mittels der hinteren Zustandsmaschine (316) der BIST- (integrierter Selbsttest) Modi in der Reihenfolge, wie dies durch die Testmodusdaten vorgegeben ist, um das Array aus Flasch-Speicherzellen (304) auf dem Chip zu testen.
  2. Verfahren nach Anspruch 1, das ferner die Schritte umfasst: Herstellen einer vorderen Zustandsmaschine (314) auf dem Halbleitersubstrat (302); Dekodieren mittels der vorderen Zustandsmaschine (314) der Testmodusdaten, um die Reihenfolge zum Ausführen der BIST-Modi zu bestimmen.
  3. Verfahren nach Anspruch 1 oder 2, das weiterhin die Schritte umfasst: Herstellen eines Schieberegister (320) der BIST-Schnittstelle (312) auf dem Halbleitersubstrat (302); serielles Einspeisen der Testmodusdaten in das Schieberegister (320) über einen einzelnen Eingangs/Ausgangsstift; Speichern eines entsprechenden positiven oder negativen Ergebnisses für jeden ausgeführten BIST-Modus in dem Schieberegister (320); serielles Herausschieben des entsprechenden positiven oder negativen Ergebnisses für jeden BIST-Modus aus dem Schieberegister (320) zu dem externen Testsystem (318) über den einzelnen Eingangs/Ausgangsstift.
  4. Verfahren nach Anspruch 1, 2 oder 3, das ferner die Schritte umfasst: Herstellen mehrerer Mustererzeugungslogikeinheiten (1302) und einer Musterauswahleinrichtung (1304) auf dem Halbleitersubstrat (302); Erzeugen mittels jeder Mustererzeugungslogikeinheit (1302) einen entsprechenden logischen Zustand, der einer Stelle einer Flash-Speicherzelle entspricht; Auswählen mittels der Musterauswahleinrichtung (1304) eines der entsprechenden logischen Zustände von den Mustererzeugungslogikeinheiten (1302), um ein gewünschtes Bit-Muster zu bilden; und Verwenden des gewünschten Bit-Musters während eines Verifizierungszustands für einen BIST-Modus.
  5. Verfahren nach Anspruch 1, 2 oder 3, das ferner die Schritte umfasst: Herstellen eines Pulszählers (1404) und einer Pulszählersteuerung (1406) auf dem Halbleitersubstrat (302); Einspeisen einer maximalen Zahl der Pulszählersteuerung (1406); Ausgeben einer Kennzeichnung eines Sektorfehlers durch die Pulszählersteuerung (1406), wenn die Flash-Speicherzellen des Sektors die Löschverifizierung mit weniger als der ma ximalen Anzahl an Löschpulsen bestehen, die an den Sektor während eines Löschverifizierungs-BIST (integrierter Selbsttest) Modus angelegt werden.
  6. Verfahren nach Anspruch 5, das ferner die Schritte umfasst: Bestimmen einer Diagonalgesamtzahl an Löschpulsen, die an den Sektor angelegt werden, bis jede Flashspeicherzelle an einer diagonalen Stelle des Sektors die Löschverifizierung erfolgreich abschließt; wobei die maximale Zahl ein Anteil der Diagonalgesamtzahl der Löschpulse ist; Erzeugen mindestens eines Neustartzählwertes, der einen maximalen Pulszählwert (Max_PC) minus einem entsprechenden Anteil der Diagonalgesamtzahl an Löschpulsen entspricht; Auswählen mindestens eines Neustartzählwertes, der der maximalen Zahl entspricht, die in den Pulszähler (1404) einzuladen ist; Zählen ab dem ausgewählten Neustartzählwert eine Anzahl von Löschpulsen, die an den Sektor während der Löschverifizierung jeder Flashspeicherstelle des Sektors angelegt werden, mittels des Pulszählers (1404); und Ausgeben mittels der Pulszählersteuerung (1406) die Kennzeichnung des Sektorfehlers, wenn für jede Flashspeicherzelle des Sektors die Löschverifizierung nicht erfolgreich ist, bevor der Pulszähler (1404) den Wert Max_PC erreicht.
  7. Verfahren nach Anspruch 1, 2 oder 3, das ferner die Schritte umfasst: Herstellen einer Reparatursteuerung (832) und mehrerer Spannungsquellen (836) auf dem Halbleitersubstrat (302); Erfassen der fehlerhaften Flashspeicherzellen (750) während des Testens der Flashspeicherzellen (304) in einem BIST-Modus; und Steuern mittels der Reparatursteuerung (832) der Spannungsquellen (836), um Programmierspannungen an entsprechende CAM- (inhaltsadressierbare Speicher-) Flash-Speicherzellen in einem JUICE-Zustand anzulegen, um die fehlerhaften Flash-Speicherzellen (750) mit einem entsprechenden redundanten Element (752) aus Flash-Speicherzellen zu ersetzen.
  8. Verfahren nach Anspruch 7, das ferner die Schritte umfasst: Herstellen einer Fehlerreparaturlogik (848) auf dem Halbleitersubstrat (302); und Einspeisen eines „Hänge"-Zustandes, wenn die Fehlerreparatur-Logik (848) bestimmt, dass kein redundantes Element aus Flash-Speicherzellen verfügbar ist oder dass die fehlerhaften Flashspeicherzellen (750) zuvor repariert worden sind.
  9. Verfahren nach Anspruch 1, 2 oder 3, dass ferner die Schritte umfasst: Herstellen mehrerer Spannungsquellen (504) und einer hinteren BIST-Steuerung (502) für die hintere Zustandsmaschine (316) auf dem Halbleitersubstrat (302); und B estimmen mittels der hinteren BIST-Steuerung (502), ob ein BIST-Modus zum Anlegen von Spannungen an die Flash-Speicherzellen (304) für den Ablauf einer ersten Sequenz an Zuständen dient, oder ob der BIST-Modus zum Auslesen eines entsprechenden Logikzustandes der Flashspeicherzellen (304) für den Ablauf einer zweiten Sequenz an Zuständen dient.
  10. Verfahren nach Anspruch 1, 2 oder 3, das ferner die Schritte umfasst: Herstellen einer Signalauswahleinrichtung (966) und einer diagnostischen Anpasslogik (964) auf dem Halbleitersubstrat (302); Festlegen mittels der diagnostischen Anpasslogik (964) eines erzeugten Anpassausgangssignals als einen konekten Zustand oder Fehlerzustand, abhängig von Steuervariablen von der hinteren Zustandsmaschine (316); und Auswählen mittels der Signalauswahleinrichtung (966) des erzeugten Anpassausgangssignals, das von der hinteren Zustandsmaschine (316) in einem Verifizierungsschritt eines BIST-Modus zu verwenden ist, wenn ein diagnostischer Modus aufgerufen wird.
  11. Verfahren nach Anspruch 10, wobei der BIST-Modus mit dem diagnostischen Modus, der aufgerufen wird, zum Programmieren der Flash-Speicherzellen (304), oder zum Löschen der Löschspeicherzellen (304) mit einer unabhängigen APDE (automatischen Programmunterbrechung nach Löschen) oder zum Löschen der Flashspeicherzellen (304) mit dazwischen angeordneter APDE dient.
  12. Verfahren nach Anspruch 1, 2 oder 3, das ferner die Schritte umfasst: Herstellen einer Adressensequenziersteuerungslogik (1204) und von Adressensequenzierpuffern (1202) auf dem Halbleitersubstrat (302); Erzeugen mehrerer Bits durch die Puffer (1202) zum Kennzeichnen einer Adresse der Flashspeicherzellen (304); und Steuern mittels der Steuerlogik (1204) der Puffer (1202), um eine entsprechende Sequenz an Bit-Muster für jeden von mehreren BIST-Modi zu durchlaufen.
  13. Verfahren nach Anspruch 1, das ferner die Schritte umfasst: Herstellen einer Hochspannungsquelle (1501), mindestens eines Widerstands (1510, 1514), mindestens einer Schaltereinrichtung (1506, 1508) und einer Logikschaltung (1516) auf dem Halbleitersubstrat (302); Erzeugen mittels der Hochspannungsquelle (1501) einer hohen Spannung in Bezug auf eine niedrige Spannung an einem Niederspannungsknoten (1504); wobei der mindestens eine Widerstand (1510, 1514) und die mindestens eine Schaltereinrichtung (1506, 1508) zwischen der Hochspannungsquelle (1501) und dem Niederspannungsknoten (1504) in Reihe geschaltet sind; und Ein- oder Ausschalten jeder Schaltereinrichtung (1506, 1508) mittels der Logikschaltung (1516) in Abhängigkeit der Art eines BIST-Modus, um die Grenzspannung auf dem Chip an einem Ausgangsknoten (1512) entlang der Reihenschaltung zu erzeugen.
  14. Verfahren nach Anspruch 13, das ferner die Schritte umfasst: Bilden eines Widerstandsspannungsteilers (1510, 1514), wobei der mindestens eine Widerstand an dem Ausgangsknoten (1512) angeordnet ist, um Programmierbereichsgrenzen für die Flashspeicherzellen (304) festzulegen; und Entladen des Ausgangsknotens (1512) bis zur niedrigen Spannung, zur Löschgrenzeneinstellung der Flashspeicherzellen (304).
  15. BIST- (integriertes Selbsttest-System 300) zum Testen eines Arrays aus Flashspeicherzellen (304), die auf einem Halbleitersubstrat (302) hergestellt sind, mit: einer BIST- (integrierte Selbsttest-) Schnittstelle (312), die auf dem Halbleitersubstrat (302) zum seriellen Einspeisen von Bits aus Testmodusdaten von einem externen Testsystem (318) hergestellt ist; wobei die Testmodusdaten eine Reihenfolge mehrerer auszuführender BIST-Modi kennzeichnen, und wobei jeder BIST-Modus zum Testen einer Eigenschaft des gesamten Arrays aus Flashspeicherzellen dient; und einer hinteren Zustandsmaschine (316), die auf dem Halbleitersubstrat (302) zum Ausführen der mehreren BIST- (integrierte Selbsttest-) Modi in der Reihenfolge, wie sie durch die Testmodusdaten gekennzeichnet ist, für einen chipinternen Testvorgang des Arrays der Flashspeicherzellen (304) ausgebildet ist.
  16. BIST-System nach Anspruch 15, das ferner umfasst: eine vordere Zustandsmaschine (314), die auf dem Halbleitersubstrat (302) zum Decodieren der Testmodusdaten hergestellt ist, um eine Reihenfolge zum Ausführen der BIST-Modi zu bestimmen.
  17. BIST-System nach Anspruch 15 oder 16, das ferner umfasst: ein Schieberegister (320) in der BIST-Schnittstelle (312), die die Testmodusdaten seriell über einen einzelnen Eingangs/Ausgangs-Stift einspeist, wobei das Schieberegister (320) ein entsprechendes positives oder negatives Resultat für jeden BIST-Modus speichert und seriell über den einzelnen Eingangs/Ausgangs-Stift ausgibt.
  18. BIST-System nach Anspruch 15, 16 oder 17, das ferner umfasst: mehrere Mustererzeugungslogikeinheiten (1302), die auf dem Halbleitersubstrat (302) hergestellt sind, wobei jede Einheit einen entsprechenden Logikzustand entsprechend einem Flashspeicherzellenplatz erzeugt; und eine Musterauswahleinrichtung (1304), die auf dem Halbleitersubstrat (302) hergestellt ist, um einen der entsprechenden Logikzustände von den Mustererzeugungslogikeinheiten (1302) zur Ausbildung des gewünschten Bitmusters auszuwählen; wobei das gewünschte Bitmuster während eines Verifizierungszustands eines BIST-Modus verwendet wird.
  19. BIST-System nach Anspruch 15, 16 oder 17, das ferner umfasst: einen Pulszähler (1404), der auf dem Halbleitersubstrat (302) hergestellt ist, eine Pulszählersteuerung (1406), die auf dem Halbleitersubstrat (302) hergestellt ist, um eine Maximalzahl einzugeben und um eine Kennzeichnung eines Sektorfehlers auszugeben, wenn die Flashspeicherzellen des Sektors die Löschverifizierung mit weniger als der maximalen Zahl an Löschpulsen, die an den Sektor während eines Löschverifizierungs-BIST- (integrierter Selbsttest) Modus angelegt werden, nicht bestehen.
  20. BIST-System nach Anspruch 19, wobei die Pulszählersteuerung (1406) dem Pulszähler (1404) steuert, um eine Diagonalegesamtzahl an Löschpulsen, die an den Sektor angelegt werden, bis jede Flashspeicherzelle an einer Diagonalposition des Sektors die Löschverifi zierung erfolgreich besteht, zu bestimmen, und wobei die maximale Zahl ein Anteil der Diagonalengesamtzahl an Löschpulsen ist, und wobei das BIST-System ferner umfasst: mindestens einen Neustartzählerwertgenerator (1422, 1424, 1426), der auf dem Halbleitersubstrat (302) hergestellt ist, um einen entsprechenden Neustartzählerwert zu erzeugen, der ein maximaler Pulszählerwert (Max_PC) minus einem entsprechenden Anteil der Diagonalengesamtzahl an Löschpulsen entspricht; einen Multiplexer (1418) in der Pulszählersteuerung zum Auswählen eines entsprechenden Neustartzählerwertes, der der maximalen Zahl entspricht; und eine Neustartlogik (1416) in der Pulszählersteuerung zum Steuern des Pulszählers, um den ausgewählten Neustartzählerwert aus dem Multiplexer (1418) einzuladen; wobei der Pulszähler (1404) von dem ausgewählten Neustartzählerwert beginnend eine Anzahl von Löschpulsen zählt, die an den Sektor während der Löschverifizierung der Flashspeicherzellen des Sektors angelegt werden; und wobei die Pulszählersteuerung (1406) die Kennzeichnung des Sektorenfehlers ausgibt, wenn für jede Flashspeicherzelle des Sektors die Löschverifizierung nicht erfolgreich ist, bevor der Pulszähler den Wert Max_PC erreicht.
  21. BIST-System nach Anspruch 15, 16 oder 17, das ferner umfasst: CAM- (inhaltsadressierbare Speicher-) Flashspeicherzellen (790) und redundante Elemente (782) an Flashspeicherzellen, die auf dem Halbleitersubstrat (302) hergestellt sind; mehrere Spannungsquellen (836), die auf dem Halbleitersubstrat (302) hergestellt sind; wobei die fehlerhaften Flashspeicherzellen (750) während des Testens der Flashspeicherzellen in einem BIST-Modus erkannt werden; und eine Reparatursteuerung (832), die auf dem Halbleitersubstrat (302) hergestellt ist, um die Spannungsquellen (836) zum Anlegen von Programmierspannungen an entsprechende CAM- (inhaltsadressierbare Speicher-) Flashspeicherzellen (790) in einem JUICE-Zustand zum Ersetzen der fehlerhaften Flashspeicherzellen (750) durch ein entsprechendes redundantes Element (782) aus Flashspeicherzellen zu steuern.
  22. BIST-System nach Anspruch 21, das ferner umfasst: eine Fehlerreparatur-Logik (848), die auf dem Halbleitersubstrat (302) hergestellt ist, um einen „Hänge"-Zustand einzugeben, wenn die Fehlerreparaturlogik bestimmt, das kein redundantes Element an Flashspeicherzellen verfügbar ist oder dass die fehlerhaften Flashspeicherzellen (750) zuvor repariert worden sind.
  23. BIST-System nach Anspruch 15, 16 oder 17, das ferner umfasst: mehrere Spannungsquellen (504), die auf dem Halbleitersubstrat (302) hergestellt sind, um entsprechende Spannungen entsprechend einem BIST-Modus zu erzeugen; und eine hintere BIST-Steuerung (502), die auf dem Halbleitersubstrat (302) hergestellt ist, um zu bestimmen, ob der BIST-Modus zum Anlegen von Spannungen an die Flashspeicherzellen (304) zur Abfolge einer ersten Sequenz aus Zuständen dient oder ob der BIST-Modus zum Auslesen entsprechender Logikzustände der Flashspeicherzellen (304) zur Abfolge einer zweiten Sequenz aus Zuständen dient.
  24. BIST-System nach Anspruch 15, 16 oder 17, das ferner umfasst: eine Signalauswahleinrichtung (966), die auf dem Halbleitersubstrat (302) hergestellt ist; und eine diagnostische Anpasslogik (964), die auf dem Halbleitersubstrat (302) hergestellt ist, wobei die diagnostische Anpasslogik (964) ein erzeugtes Anpassausgangssignal als einen korrekten Zustand oder Fehlerzustand in Abhängigkeit von Steuervariablen aus der hinteren Zustandsmaschine (316) festlegt; und wobei die Signalauswahleinrichtung (966) das erzeugte Anpassausgangssignal auswählt, das von der hinteren Zustandsmaschine (316) in einem Verifizierungsschritt eines BIST-Modus zu verwenden ist, wenn ein diagnostischer Modus aufgerufen ist.
  25. BIST-System nach Anspruch 24, wobei der BIST-Modus mit dem diagnostischen Modus, der aufgerufen ist, zum Programmieren der Flashspeicherzellen (304), zum Löschen der Flashspeicherzellen (304) mit einer unabhängigen APDE (automatischen Programmunterbrechung nach Löschen) oder zum Löschen der Flashspeicherzellen (304) mit zwischengeschalteter APDE dient.
  26. BIST-System nach Anspruch 15, 16 oder 17, das ferner umfasst: Adressensequenzierpuffer (202), die auf dem Halbleitersubstrat (302) hergestellt sind, um mehrere Bits zu erzeugen, die eine Adresse der Flash-Speicherzellen (304) kennzeichnen; und eine Adressensequenziersteuerlogik (204), die auf dem Halbleitersubstrat (302) hergestellt ist, um die Puffer (202) zu steuern, so dass diese eine entsprechende Sequenz aus Bitmustern für jeden von mehreren BIST-Modi durchlaufen.
  27. BIST-System nach Anspruch 15, das ferner umfasst: eine Hochspannungsquelle (1501), die auf dem Halbleitersubstrat (302) hergestellt ist, um eine hohe Spannung in Bezug auf eine niedrige Spannung an einem Niederspannungsknoten (1504) zu erzeugen; mindestens einen Widerstand (1510, 1514) und mindestens eine Schaltereinrchtung (1506, 1508), die auf dem Halbleitersubstrat (302) hergestellt sind und zwischen der Hochspannungsquelle (1501) und dem Niederspannungsknoten (1504) in Reihe geschaltet sind; und eine Logikschaltung (1516), die auf dem Halbleitersubstrat (302) hergestellt ist, um jede Schaltereinrichtung (1506, 1508) ein- bzw. auszuschalten, abhängig von einer Art eines BIST-Modus, um die Bereichsgrenzspannung chipintern an einem Ausgangsknoten (1512) entlang der Reihenschaltung zu erzeugen.
  28. BIST-System nach Anspruch 27, wobei ein Widerstandsspannungsteiler (1510, 1514) mit dem mindestens einen Widerstand an dem Ausgangsknoten (1512) ausgebildet ist, um Programmierbereichsgrenzen der Flashspeicherzellen (304) festzulegen und wobei der Ausgangsknoten (1512) auf die niedrige Spannung für die Löschbereichsbegrenzung der Flashspeicherzellen (304) entladen wird.
DE60302473T 2002-07-22 2003-06-10 Built-in-self-test für flash speicherzellen Expired - Lifetime DE60302473T2 (de)

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
US20054302A 2002-07-22 2002-07-22
US20053802A 2002-07-22 2002-07-22
US200539 2002-07-22
US10/200,330 US6665214B1 (en) 2002-07-22 2002-07-22 On-chip erase pulse counter for efficient erase verify BIST (built-in-self-test) mode
US10/200,518 US7010736B1 (en) 2002-07-22 2002-07-22 Address sequencer within BIST (Built-in-Self-Test) system
US200526 2002-07-22
US200518 2002-07-22
US200330 2002-07-22
US200538 2002-07-22
US10/200,544 US6631086B1 (en) 2002-07-22 2002-07-22 On-chip repair of defective address of core flash memory cells
US10/200,540 US20040049724A1 (en) 2002-07-22 2002-07-22 Built-in-self-test (BIST) of flash memory cells and implementation of BIST interface
US10/200,526 US7028240B1 (en) 2002-07-22 2002-07-22 Diagnostic mode for testing functionality of BIST (built-in-self-test) back-end state machine
US200544 2002-07-22
US200540 2002-07-22
US200543 2002-07-22
US10/200,539 US6707718B1 (en) 2002-07-22 2002-07-22 Generation of margining voltage on-chip during testing CAM portion of flash memory device
PCT/US2003/018309 WO2004010437A1 (en) 2002-07-22 2003-06-10 Built-in-self-test of flash memory cells

Publications (2)

Publication Number Publication Date
DE60302473D1 DE60302473D1 (de) 2005-12-29
DE60302473T2 true DE60302473T2 (de) 2006-08-24

Family

ID=30773813

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60302473T Expired - Lifetime DE60302473T2 (de) 2002-07-22 2003-06-10 Built-in-self-test für flash speicherzellen

Country Status (8)

Country Link
EP (1) EP1529293B1 (de)
JP (1) JP2005534131A (de)
KR (1) KR100941745B1 (de)
CN (1) CN1679118A (de)
AU (1) AU2003243484A1 (de)
DE (1) DE60302473T2 (de)
TW (1) TW200410258A (de)
WO (1) WO2004010437A1 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730368B2 (en) * 2003-10-31 2010-06-01 Sandisk Il Ltd. Method, system and computer-readable code for testing of flash memory
US7424659B2 (en) 2003-10-31 2008-09-09 Sandisk Il Ltd. System-in-package and method of testing thereof
CN101529518B (zh) * 2005-11-01 2013-10-30 晟碟以色列有限公司 用于测试快闪存储器的方法、系统和计算机可读代码
JP5023582B2 (ja) * 2006-07-05 2012-09-12 横河電機株式会社 半導体集積回路試験装置及び方法
TWI401690B (zh) * 2008-12-24 2013-07-11 Phison Electronics Corp 快閃儲存裝置及其測試方法與測試系統
US8627158B2 (en) 2011-12-08 2014-01-07 International Business Machines Corporation Flash array built in self test engine with trace array and flash metric reporting
JP5112566B1 (ja) * 2011-12-16 2013-01-09 株式会社東芝 半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラム
US8754640B2 (en) * 2012-06-18 2014-06-17 Allegro Microsystems, Llc Magnetic field sensors and related techniques that can provide self-test information in a formatted output signal
KR102055174B1 (ko) * 2012-06-18 2019-12-12 알레그로 마이크로시스템스, 엘엘씨 감지된 물체의 근접에 반응하여 근접 신호의 하나 또는 그 이상의 특성 값들이 분류되는 셋 또는 그 이상의 포텐셜 카테고리들의 적어도 하나를 전달할 수 있는 자기장 센서들 및 관련 기술들
CN103514129B (zh) * 2012-06-21 2017-03-29 深圳市中兴微电子技术有限公司 一种芯片接口转换方法及芯片
US8830756B2 (en) * 2013-01-23 2014-09-09 Freescale Semiconductor, Inc. Dynamic detection method for latent slow-to-erase bit for high performance and high reliability flash memory
TWI569284B (zh) * 2015-05-27 2017-02-01 慧榮科技股份有限公司 記憶體控制器與記憶體模組
CN107301880B (zh) * 2017-06-15 2020-03-17 西安微电子技术研究所 一种片上嵌入式Flash的内建自测试结构
US10656170B2 (en) 2018-05-17 2020-05-19 Allegro Microsystems, Llc Magnetic field sensors and output signal formats for a magnetic field sensor
US11081155B2 (en) * 2018-06-18 2021-08-03 Taiwan Semiconductor Manufacturing Company, Ltd. MRAM reference current
TWI676989B (zh) * 2018-11-20 2019-11-11 華邦電子股份有限公司 記憶體裝置及其內置自測試方法
CN111292795B (zh) * 2019-05-23 2022-02-01 展讯通信(上海)有限公司 存储器的内建自测试系统
CN110364214A (zh) * 2019-06-28 2019-10-22 珠海博雅科技有限公司 一种读失效存储单元的替换方法、装置、设备及存储介质
CN110473586B (zh) * 2019-07-31 2021-05-14 珠海博雅科技有限公司 一种写失效存储单元的替换方法、装置、设备及存储介质
CN112331253B (zh) * 2020-10-30 2023-12-08 深圳市宏旺微电子有限公司 一种芯片的测试方法、终端和存储介质
CN112733478B (zh) * 2021-04-01 2021-08-03 芯华章科技股份有限公司 用于对设计进行形式验证的装置
CN113409845A (zh) * 2021-05-11 2021-09-17 珠海博雅科技有限公司 非易失性存储器的替换方法、装置及存储介质
CN113225232B (zh) * 2021-05-12 2022-06-10 中国第一汽车股份有限公司 硬件测试方法、装置、计算机设备及存储介质
KR20230113692A (ko) 2022-01-20 2023-08-01 양쯔 메모리 테크놀로지스 씨오., 엘티디. 자체 검증을 수행하기 위해 내부 펌웨어를 사용하는 nand 메모리에서의 데이터 보호

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2768175B2 (ja) * 1992-10-26 1998-06-25 日本電気株式会社 半導体メモリ
US5675546A (en) * 1996-06-07 1997-10-07 Texas Instruments Incorporated On-chip automatic procedures for memory testing
US6044481A (en) * 1997-05-09 2000-03-28 Artisan Components, Inc. Programmable universal test interface for testing memories with different test methodologies
JPH11329000A (ja) * 1998-05-19 1999-11-30 Mitsubishi Electric Corp 内蔵メモリテスト方法、およびそれに用いるバスインタフェースユニット、コマンドデコーダ
JP2001014890A (ja) * 1999-06-30 2001-01-19 Mitsubishi Electric Corp 半導体装置および半導体装置のテスト方法

Also Published As

Publication number Publication date
KR100941745B1 (ko) 2010-02-11
EP1529293A1 (de) 2005-05-11
AU2003243484A1 (en) 2004-02-09
DE60302473D1 (de) 2005-12-29
CN1679118A (zh) 2005-10-05
TW200410258A (en) 2004-06-16
WO2004010437A1 (en) 2004-01-29
EP1529293B1 (de) 2005-11-23
JP2005534131A (ja) 2005-11-10
KR20050021543A (ko) 2005-03-07

Similar Documents

Publication Publication Date Title
DE60302473T2 (de) Built-in-self-test für flash speicherzellen
DE69726219T2 (de) Verfahren und Vorrichtung zur Prüfung einer Speicher-integrierten Schaltung
DE4213731C2 (de) Nichtflüchtiges Halbleiterspeicherbauelement und Programmierverfahren hierfür
DE4328605C2 (de) Halbleiterspeichereinrichtung
DE102004038417B4 (de) Programmierschaltung und -verfahren und nichtflüchtiger Halbleiterspeicherbaustein
DE19859494C2 (de) Nichtflüchtiger Mehrebenen-Halbleiterspeicherbaustein mit einer Schaltung zum Einstellen der Datenlesezeit
DE3833713C2 (de)
DE10043397B4 (de) Flash-Speicherbauelement mit Programmierungszustandsfeststellungsschaltung und das Verfahren dafür
US7010736B1 (en) Address sequencer within BIST (Built-in-Self-Test) system
DE4022157C2 (de)
DE4017616C2 (de)
US20040049724A1 (en) Built-in-self-test (BIST) of flash memory cells and implementation of BIST interface
DE10052326B4 (de) Nichtflüchtiges Halbleiterspeicherbauelement und Programmierverfahren hierfür
DE19734908A1 (de) Zum Schnelltest ohne externe Berücksichtigung einer Adressen- oder Datenverschlüsselung befähigte Halbleiterspeichereinrichtung
DE4040492C2 (de)
DE3607015A1 (de) Verfahren und vorrichtung zur funktionspruefung von direktzugriffsspeichern
DE60015770T2 (de) Flashspeicheranordnung mit extern ausgelöster erfassung und heilung von fehlerhaften zellen
US6665214B1 (en) On-chip erase pulse counter for efficient erase verify BIST (built-in-self-test) mode
DE102007039844A1 (de) Flashspeicherelement und Speichersystem
DE19630746A1 (de) Verfahren und Vorrichtung zum Testen einer Assoziativspeicherschaltung und einer Assoziativspeicherschaltung mit redundanter Funktion
DE102007041845A1 (de) Verfahren zum Betreiben eines integrierten Schaltkreises mit mindestens einer Speicherzelle
US6707718B1 (en) Generation of margining voltage on-chip during testing CAM portion of flash memory device
DE4334946C2 (de) Halbleiterspeichervorrichtung
DE3530591A1 (de) Halbleiterspeicher
DE102005032484A1 (de) Nichtflüchtiges Speicherelement und zugehöriges Programmierverfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: SPANSION LLC (N.D.GES.D. STAATES DELAWARE), SU, US