DE3486312T2 - Speicher mit programmierbarer Wortlänge in einem Gatterfeld mit bidirektionaler Symmetrie. - Google Patents

Speicher mit programmierbarer Wortlänge in einem Gatterfeld mit bidirektionaler Symmetrie.

Info

Publication number
DE3486312T2
DE3486312T2 DE3486312T DE3486312T DE3486312T2 DE 3486312 T2 DE3486312 T2 DE 3486312T2 DE 3486312 T DE3486312 T DE 3486312T DE 3486312 T DE3486312 T DE 3486312T DE 3486312 T2 DE3486312 T2 DE 3486312T2
Authority
DE
Germany
Prior art keywords
memory
drivers
data bus
data
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 - Fee Related
Application number
DE3486312T
Other languages
English (en)
Other versions
DE3486312D1 (de
Inventor
Joseph L Angleton
Jeffery L Gutgsell
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.)
Raytheon Co
Original Assignee
Hughes Aircraft Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hughes Aircraft Co filed Critical Hughes Aircraft Co
Publication of DE3486312D1 publication Critical patent/DE3486312D1/de
Application granted granted Critical
Publication of DE3486312T2 publication Critical patent/DE3486312T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
    • H01L27/04Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers the substrate being a semiconductor body
    • H01L27/10Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers the substrate being a semiconductor body including a plurality of individual components in a repetitive configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • 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/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • 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/36Data generation devices, e.g. data inverters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
    • H01L27/04Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers the substrate being a semiconductor body
    • H01L27/10Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers the substrate being a semiconductor body including a plurality of individual components in a repetitive configuration
    • H01L27/118Masterslice integrated circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/267Reconfiguring circuits for testing, e.g. LSSD, partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • General Engineering & Computer Science (AREA)
  • Dram (AREA)
  • Static Random-Access Memory (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Memories (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf das Gebiet von Speichern in Form einer integrierten Schaltung und insbesondere auf Speichergestaltungen mit einer programmierbaren Wortlänge.
  • Die US-A 3 686 640 offenbart einen Speicher mit einer programmierbaren Wortlänge, wobei der Speicher in zwei Teile unterteilt ist, die parallel durch zehn Adreßleitungen A&sub1; bis A&sub1;&sub0; adressiert werden. Mittels zusätzlicher Steuerleitungen A&sub1;&sub1;, M1, M2 und Invertierern B3, B4 sowie Dekodierern können die beiden Speichersequenzen entweder in paralleler oder in sequentieller Weise angesteuert werden, so daß die Dateneingabe und Datenausgabe entweder parallel oder seriell bewirkt wird. Es ist kein Adreßdekodierer vorhanden, der zwischen Adreßeingänge und Treiber gekoppelt wäre und die Aufteilung bzw. Zuordnung (mapping) zwischen den Datenbusleitungen und den Treibern steuern würde.
  • Die US-PS 4 394 753 beschreibt einen Speicher mit wählbarer Wortlänge, bei dem ein separates Betriebsartregister vorgesehen ist, das durch zusätzliche Steuerdaten gesteuert wird. Daher sind stets zusätzliche Steuerdaten zum Einstellen des Betriebsartregisters notwendig.
  • Die EP-A 0 018 843 beschreibt einen Halbleiterspeicher, der entweder 1k-Worte · 4 Bit oder 4k-Worte · 1 Bit ausgeben kann. Um dies zu erreichen, ist eine Mehrzahl von Ausgangstoren vorhanden, von denen eine Gruppe für die Wortlänge mit 4 Bit dient und ein weiteres Ausgangstor für Worte mit 1 Bit dient. Die Ausgangstore werden durch Dekodierer gesteuert, die ihrerseits durch Adreßsignale und ein Steuerpotential P gesteuert werden, das entweder hohen oder niedrigen Pegel in Abhängigkeit von der gewünschten Wortlänge besitzt. Somit wählt das Steuerpotential, welche Gruppe von Dekodierern und Ausgangstoren einzusetzen ist.
  • Im Stand der Technik ist es bekannt, eine integrierte Schaltung bis zu ihren abschließenden Stufen des Layouts vorzuverarbeiten und die letzten Verarbeitungs- oder Fabrikationsschritte für eine spätere Differenzierung unter Einsatz von Sicherungs-Koppelgliedern oder Metallisierungsmustern zu belassen. Dies ist als ein Semicustom-Chip bekannt, der zur Bereitstellung einer Option geworden ist, die zwischen Standard-Logikchips mit niedrigen Kosten und großen Stückzahlen und teuere, handgearbeitete integrierte Schaltungen für den Kunden fällt. Es gibt im wesentlichen drei Formen von logischen Semicustom-Chips, die gegenwärtig eingesetzt werden: (1) feldprogrammierbare integrierte Schaltungen wie etwa logische Chips mit programmierbarem Array und feldprogrammierbare logische Arrays; (2) Gatearrays oder Masterslices; und (3) Standardzellen- oder Vielzellen-Gestaltungen.
  • Oftmals ist es bei Semicustom-Chips notwendig, den gesamten oder einen Teil des zur Verfügung stehenden Chipraums (Chipfläche) einem Speicher zuzuordnen. Oftmals wird ein solcher Speicher vollständig isoliert sein, d. h. keine Eingänge oder Ausgänge haben, die direkt mit irgendeinem der Chip-Anschlüsse gekoppelt sind.
  • Es wird daher notwendig, bei der Benutzung von Semicustom-Chips imstande zu sein, solche internen Speicher in einer Weise zu gestalten, die nicht nur mit der Architektur der verbleibenden, auf dem Chip befindlichen Schaltung konsistent ist, sondern auch im Stande ist, mit einem gewissen Maß an Zuverlässigkeit unabhängig von ihrer elektrischen Unzugänglichkeit für jede außerhalb des Chips befindliche Schaltung zu arbeiten. Weiterhin wird ein Chip benötigt, der in einer solchen Weise hergestellt ist, daß Verbindungen zwischen Schaltungsgruppen auf dem Chip effizient hergestellt werden können, wodurch sowohl die Einfachheit als auch die Dichte maximiert werden, mittels derer komplexe Schaltungen einschließlich Speichern den zur Verfügung stehenden Chipraum benutzen können.
  • Gegenwärtig besteht Zurückhaltung, Semicustom-Chips für Speicher einzusetzen, da selbst die Semicustom-Gestaltung des Speichers in hohem Maß von der Wortlänge abhängt, die innerhalb der Architektur des Speichers angenommen bzw. vorausgesetzt wird. Weiterhin sind Semicustom-Chips oftmals bei einem in hohem Maße effizienten Einsatz in komplexen Schaltungen, die einen oder mehrere interne Speicher enthalten können, nicht in einfacher Weise einsetzbar. Die vorverarbeiteten Gates (Tore) und die Metallisierungen, die für die gegenseitige Verbindung der Gates erforderlich sind, sind oftmals für einen hocheffizienten Einsatz in solchen komplexen Schaltungen nicht optimal auf dem Chip angeordnet. Wenn Speicher in solchen komplexen Schaltungen in Semicustom-Chips eingesetzt werden und notwendigerweise auf dem Chip isoliert sind, war bislang darüber hinaus keine einfache Gestaltung oder kein einfaches Protokoll vorhanden, um eine Bestimmung der Zuverlässigkeit des Speichers zu erlauben, wenn bzw. da kein Eingang oder Ausgang für den Speicher über die Chip-Anschlüsse vorhanden ist.
  • Die nachstehend beschriebenen und in den Zeichnungen gezeigten Merkmale überwinden jeden dieser Nachteile des Standes der Technik.
  • Im Hauptpatent EP-A-0 188 431 ist eine Verbesserung bei einem CMOS-Gatearray, das eine Mehrzahl von Speicherzellen enthält, beansprucht. Die Speicherzellen enthalten jeweils zumindest eine Einrichtung des Leitungstyps p und zumindest eine Einrichtung des Leitungstyps n, die innerhalb der Kernzelle mit einem vorbestimmten Layout oder Gestaltung angeordnet sind. Die Mehrzahl von Kernzellen ist in dem Array oder Chip in zumindest zwei Gruppen angeordnet. Eine der beiden Gruppen ist in dem Chip derart angeordnet, daß die interne Konfiguration der Kernzellen innerhalb einer Gruppe das Spiegelbild der internen Konfiguration der Kernzellen innerhalb der anderen der beiden Gruppen ist.
  • Die vorliegende Erfindung enthält in einem derartigen, vorstehend beschriebenen CMOS-Gatearray einen Speicher mit programmierbarer Wortlänge, wie er im Anspruch 1 beansprucht ist. Der Speicher enthält eine adressierbare Speicheranordnung (Speicherarray), eine Mehrzahl von Treibern und einen Datenbus. Die Mehrzahl von Treibern ist mit dem adressierbaren Speicher gekoppelt und kommuniziert mit dem Speicherarray. Der Datenbus besteht aus einer Mehrzahl von Datenbusleitungen einer vorbestimmten Anzahl, die gleich oder kleiner als die Anzahl der Mehrzahl von Treibern ist. Die Mehrzahl von Datenbusleitungen ist mit der Mehrzahl von Treibern in Übereinstimmung mit einer vorbestimmten Metallmaskenaufteilung bzw. Metallmaskenkartierung (metal mask mapping) gekoppelt. Der Datenbus ist entsprechend der Kartierung bzw. Zuordnung derart gestaltet, daß er einer zugeordneten Wortlänge mit einer Bitlänge entspricht, die gleich der Anzahl von Datenbusleitungen ist.
  • Der vorstehend beschriebene Speicher enthält auch eine Eigentestschaltung, wie sie in der ebenfalls anhängigen Anmeldung EP-A 0 323 438 beansprucht ist. Diese Schaltung besteht aus einem Adreß- und Datenzähler, der mit dem Speicher zum Erzeugen von Adressen für jede Stelle innerhalb des Speichers und zum Erzeugen von Daten für die Einschaltung in jede entsprechend adressierte Stelle gekoppelt ist. Eine Steuerschaltung ist mit dem Speicher zum Steuern von Lese/Schreib-Zyklen des Speichers als Reaktion auf Adressen und Daten, die durch den Adreß- und Datenzähler erzeugt werden, gekoppelt. Eine Fehlererfassungsschaltung ist mit dem Speicher und dem Adreß- und Datenzähler gekoppelt und vergleicht Daten, die in den Speicher eingeschrieben werden (von dem Adreß- und Datenzähler unter der Steuerung durch die Steuerschaltung), mit Daten, die aus dem Speicher als Reaktion auf die Steuerung durch die Steuerschaltung ausgelesen werden. Die Fehlererfassungsschaltung erfaßt Fehler, die bei dem Vergleich gefunden werden und überprüft hierdurch intern die Betriebsfähigkeit des Speichers.
  • Die Erfindung ist unter Berücksichtigung der nachstehenden Figuren besser verständlich, in denen gleiche Elemente mit gleichen Bezugszeichen- versehen sind.
  • Kurzbeschreibung der Zeichnungen
  • Fig. 1 ist eine schematische Draufsicht auf das Gate- Layout eines CMOS-Semicustom-Chips in Übereinstimmung mit der Erfindung.
  • Fig. 2 ist eine vereinfachte Querschnittsansicht mit vergrößertem Maßstab, die entlang der Linie 2-2 in Fig. 1 geschnitten ist.
  • Fig. 3 ist eine schematische Blockschaltbilddarstellung eines Speichers mit programmierbarer Wortlänge, der in Verbindung mit den Fig. 4 bis 8a, b genauer beschrieben ist.
  • Fig. 4 ist eine schematische Darstellung der Speicherzelle, die bei dem Speicher gemäß Fig. 3 benutzt wird.
  • Fig. 5 ist eine schematische Darstellung eines X-Adreßdekodierers, wie er bei dem Speicher gemäß Fig. 3 eingesetzt wird.
  • Fig. 6A, 6B, 6C zeigen einen Y-Adreßdekodierer, wie er bei dem Speicher gemäß Fig. 3 eingesetzt wird, der jeweils für eine Wortlänge mit 8, 16 bzw. 32 Bit konfiguriert ist.
  • Fig. 7 zeigt eine Lese/Schreib-Schaltung, wie sie bei dem Speicher gemäß Fig. 3 eingesetzt wird.
  • Fig. 8a und 8b enthalten gemeinsam eine schematische Darstellung einer Wortlängenprogrammierschaltung, wie sie bei dem Speicher gemäß Fig. 3 eingesetzt wird.
  • Fig. 9 ist ein schematisches Blockschaltbild einer Speicher-Eigentestschaltung in Übereinstimmung mit der Erfindung.
  • Fig. 10 ist eine Darstellung, die zeigt, wie die Figuren 10a bis 10i zusammenpassen.
  • Fig. 10a zeigt einen Adreß- und Datenzähler, wie er bei der Eigentestschaltung gemäß Fig. 9 eingesetzt wird.
  • Fig. 10b, 10c, 10f, 10g und 10h stellen zusammen eine schematische Darstellung der Fehlererfassungs- und Zwischenspeicherschaltung dar, die bei der Eigentestschaltung gemäß Fig. 9 eingesetzt wird.
  • Fig. 10d veranschaulicht die gegenseitige Verbindung zwischen den Fig. 10a, 10e und 10i.
  • Fig. 10e ist eine schematische Darstellung eines Referenz- und Steuerzählers, der bei der Eigentestschaltung gemäß Fig. 9 eingesetzt wird.
  • Fig. 10i ist eine schematische Darstellung der Oszillator- und Initialisierungsschaltung, die bei der Eigentestschaltung gemäß Fig. 9 eingesetzt wird.
  • Fig. 11 ist eine Darstellung von zweien der Gates (Tore) innerhalb der Referenz- und Steuerzähler-Schaltung gemäß Fig. 10e, die die Konfiguration zeigt, die bei einer Betriebsart mit 16 Bit eingesetzt wird.
  • Fig. 12 ist eine schematische Darstellung von zweien der gleichen Tore, die in Verbindung mit Fig. 11 erläutert wurden und in der Referenz- und Steuerzähler-Schaltung gemäß Fig. 10e eingegliedert, jedoch in Übereinstimmung mit der Erfindung für eine Betriebsart mit 8 Bit konfiguriert sind.
  • Die Erfindung und ihre unterschiedlichen Ausführungsbeispiele lassen sich durch Bezugnahme auf die nachfolgende detaillierte Beschreibung in Verbindung mit den vorstehend beschriebenen Figuren besser verstehen.
  • Detaillierte Beschreibung der Erfindung
  • Die vorliegende Erfindung ist eine verbesserte Gestaltung eines CMOS-Gatearray-Chips, wobei Schaltungen mit größerer Flexibilität durch Organisieren der Transistoren mit N-Kanal und P-Kanal in einem Semicustom-Chip derart, daß sie eine spiegelbildliche Symmetrie um eine vorbestimmte Linie (zum Beispiel eine Linie 18 in Fig. 1) zeigen, angeordnet werden können. Genauer gesagt, besitzt der CMOS-Semicustom-Chip Einrichtungen mit N-Kanal und P-Kanal, die gemeinsam eine Kernzelle bilden. Ein Spiegelbild der Kernzelle ist benachbart zu jeder Einheit der Kernzelle bezüglich einer Liniensymmetrie gebildet. Die Erfindung enthält weiterhin eine Gestaltung für einen Speicher, bei dem die Wortlänge, die durch den Speicher angenommen oder manipuliert wird, zweckmäßig dadurch geändert werden kann, daß gewisse Schaltungseinheiten selektiv verbunden werden. Diese Gestaltung ist insbesondere bei Semicustom-Chips anwendbar, auch wenn die Auslegung ebenso vorteilhaft bei spezifizierten Chips (custom chips) oder Standard-Chips eingesetzt werden kann.
  • Die Erfindung enthält weiterhin eine Schaltungsgestaltung, die es ermöglicht, daß ein Speicher vollständig eigengetestet werden kann, ohne daß ein Eingriff von einer externen Schaltung stattfindet. Auch wenn diese Gestaltung von genereller Nützlichkeit ist, ist sie auch hier besonders vorteilhaft in einer Situation, bei der ein Speicher intern innerhalb einer komplexen Chipauslegung angeordnet ist, und bei dem wenige Eingangs- und Ausgangsanschlußstifte (falls überhaupt irgendwelche Stifte) für eine direkte Kommunikation mit einem solchen "auf dem Chip befindlichen" Speicher zur Verfügung stehen. Die Erfindung und ihre verschiedenen Ausführungsbeispiele werden durch nachstehende Bezugnahme auf Fig. 1 noch besser verständlich.
  • Fig. 1 zeigt eine schematische Draufsicht auf die Auslegung (Layout) eines halbspezifizierten (semicustom) CMOS- Chips, der in Übereinstimmung mit der Erfindung hergestellt ist. Bei dem dargestellten Ausführungsbeispiel ist ein kleiner Bereich eines Gatearrays mit 4000 Gates gezeichnet. Das Array ist in zwei Flächen unterteilt: (1) eine aktive Fläche 10; und (2) eine Führungs- bzw. Verdrahtungsfläche 12. Die aktive Fläche 10 enthält die CMOS-Einrichtungen, die die logischen Funktionen durchführen. Die Verdrahtungsfläche 12 wird zur gegenseitigen Verbindung der logischen Funktionen eingesetzt. Zwei Metallisierungsschichten werden für die Zwischenverbindungszwecke eingesetzt. Eine erste Metallisierungsschicht ist in der Richtung Y gelegt, wie in Fig. 1 dargestellt ist. Eine zweite Metallisierungsschicht ist rechtwinklig hierzu in der Richtung X gelegt. Bei dem dargestellten Ausführungsbeispiel enthält die Kernzelle ein Gate 14 mit drei Eingängen und ein Gate 16 mit zwei Eingängen. Die Kernzelle, die aus dem Gate 14 mit drei Eingängen und dem Gate 16 mit zwei Eingängen besteht, wiederholt sich bezüglich einer Spiegelsymmetrielinie 18. Wie aus Fig. 1 ersichtlich ist, zeichnet sich das erste Gate 14 mit drei Eingängen ausgehend von einer Kante des Chips durch eine P- Kanal-Einrichtung 20, der eine N-Kanal-Einrichtung 22 nachfolgt, aus. Auf der entgegengesetzten Seite der Symmetrielinie 18 befindet sich eine symmetrische N-Kanal-Einrichtung 24 und eine P-Kanal-Einrichtung 26, die die N- und P- Kanäle eines spiegelsymmetrischen Gates mit drei Eingängen bilden, das allgemein durch das Bezugszeichen 28 bezeichnet ist. Somit ist das Gate 28 durch das Gate 14 gespiegelt und in gleicher Weise ist das Gate 16 mit zwei Eingängen ein Spiegelbild-des Gates 30 mit zwei Eingängen.
  • Die nächste benachbarte Kernzelle, die wiederum aus einem Gate mit drei Eingängen und einem Gate mit zwei Eingängen besteht, ist in der Richtung Y dupliziert, wobei die Spiegelsymmetrie in der Richtung X vorgesehen ist, wie in Fig. 1 dargestellt ist. Die Kernzellen wiederholen sich daher in einer spiegelsymmetrischen, paarweisen Art entlang der Länge Y der aktiven Fläche 10.
  • Die Symmetrie des Chips läßt sich bei Bezugnahme auf Fig. 2 noch besser verstehen, die eine Querschnittsansicht zeigt, die entlang der Linie 2-2 in Fig. 1 aufgenommen ist. Das halbleitende Substrat, das allgemein mit dem Bezugszeichen 32 bezeichnet ist, ist schwach N-dotiert. Die N-Kanal- Einrichtung 22 ist innerhalb des Substrats 32 durch Abscheiden einer großen, schwach dotierten Senke 34 des Leitungstyps P hergestellt, in der zwei stark dotierte Regionen des Leitungstyps N, die als die Source 42 und das Drain 44 dienen, ausgebildet sind. Ein leitendes Gate 46 ist oberhalb des P-dotierten Kanals zwischen der Source 42 und dem Drain 44 angeordnet. In gleichartiger Weise ist die P- Kanal-Einrichtung 22 durch eine stark dotierte Source 36 und Drain 30 des Leitungstyps P mit einem dazwischenliegenden leitenden Gate 40, das oberhalb des N-dotierten Kanals angeordnet ist, gebildet. Die nächsten benachbarten Einrichtungen 24 und 26 sind folglich mit einer Spiegelsymmetrie um die Ebene 18 hergestellt. Die P-Kanal-Einrichtung 26 besteht aus einer dotierten Source 56 und einem Drain 58 des Leitungstyps p und einem leitenden Gate 60, das oberhalb eines schwach N-dotierten Kanals liegt. Die Einrichtung (Bauelement) 26 ist folglich das exakte Spiegelbild der Einrichtung (Bauelement) 20. In gleichartiger Weise ist die N-Kanal-Einrichtung 24 das Spiegelbild der N-Kanal-Einrichtung 22 und ist in der Senke 34 des Leitungstyps P angeordnet, wobei die Source 48 und das Drain 50 durch ein leitendes Gate 52 getrennt sind. Zusätzliche Schichten aus isolierenden Oxiden und Metallisierung wurden bei der Querschnittsansicht gemäß Fig. 2 und der Draufsicht gemäß Fig. 1 aus Gründen der Vereinfachung und Klarheit weggelassen. Die Transistoren 20, 22, 24 und 26, wie sie in Fig. 2 dargestellt sind, sind um 90º um Achsen 61, 62, 63 und 64 gedreht. Dies erfolgte, um den Aufbau der Transistoren in größeren Einzelheiten zu zeigen und die Spiegelsymmetrie um die Achse Y (durch die Ebene 18 repräsentiert) zu veranschaulichen.
  • Folglich ist das Layout der P- und N-Kanal-Einrichtungen innerhalb des Substrats 32 spiegelsymmetrisch bezüglich der Achse Y (durch die Ebene 18 repräsentiert), wie am besten durch die Draufsicht gemäß Fig. 1 erläutert und gezeigt ist. Eine' Spiegelsymmetrie tritt auch bezüglich der Achse X mit einer Versetzung um eine Hälfte einer Kernzelle auf. Anders ausgedrückt findet der Aufbau des Gates 14 mit drei Eingängen und des Gates 16 mit zwei Eingängen ein spiegelsymmetrisches Paar in dem Gate 62 mit zwei Eingängen und dem Gate-Bauelement 64 mit drei Eingängen, wenn man eine X-Symmetrieebene in der Richtung Y um eine halbe Kernzelle versetzt, d. h. in diesem Fall über ein Gate-Bauelement 67 mit drei Eingängen springt. Diese Spiegelsymmetrie erleichtert die Einfachheit des Datenflusses auf dem Chip. Zum Beispiel können Daten parallel aus einem Schieberegister über eine arithmetische logische Einheit (ALU) in ein weiteres Schieberegister verschoben werden. Es sei angenommen, daß die Eingänge bei einem solchen Schieberegister in dem Chip an der Unterseite (gemäß der Darstellung in Fig. 1) der Kernzellen angeordnet sind. Die Daten fließen somit von den Eingängen an der Unterseite der Zellen zu den Ausgängen an der Oberseite. Steuersignale wie etwa Taktsignale fließen rechtwinklig zu dem Datenfluß. Ein weiterer logischer Datenfluß würde sich anstelle der Bewegung über den Chip nach oben, nach unten bewegen. Beim Stand der Technik verdoppelte eine solche Umkehrung des Datenflusses innerhalb eines Semicustom-Chips den Umfang der Design-Anstrengung bzw. -leistung bei einem Gatearray. Jedoch erlaubt die Spiegelsymmetrie der Kernzellen gemäß der Erfindung einen Datenfluß nach oben oder unten bezüglich der Achse Y für jede beliebige gegebene logische Funktion und es ist durch einfache Versetzung quer zu einer Ebene einer Spiegelsymmetrielinie parallel zu der Achse X eine Umkehrung des Datenflusses erzielbar, ohne daß eine zusätzliche Designleistung benötigt wird. Das Ergebnis ist eine beträchtliche Verringerung des Zeitbedarfs bei der Festlegung des Designs.
  • Tatsächlich wird bei halbspezifizierten (semicustom) Gatearrays, insbesondere größeren Arrays, ein ökonomisches Layout nicht durch gegenseitige Verbindung von Gates, sondern durch gegenseitige Verbindung von logischen Funktionen erreicht. Diese logischen Funktionen bestehen aus einer Vielzahl von Zellengestaltungen, die in der "Zellenbibliothek (cell library)" des Gestalters enthalten sind. Eine solche Zellenbibliothek kann tatsächlich in dem Speicher einer automatischen Führungs- bzw. Verdrahtungseinrichtung gespeichert sein, die die grundlegende Topographie des Gatearrays und von Leistungsbussen akzeptiert und dann über eine computerunterstützte Gestaltungsroutine logische Funktionen, die aus ihrer Zellenbibliothek genommen sind, gestaltet. Solche logischen Funktionen können große Zähler, ALUS, Multiplexer und dergleichen enthalten. Es ist beispielsweise nicht ungewöhnlich, daß ein Gatearray mit 4 K logische Funktionen enthält, die Zellen in der Größenordnung von 500 Gates aufweisen.
  • Da die Gestaltung eines halbspezifischen Gatearrays nicht durch die Verbindung von einzelnen Transistoren, sondern durch die Verbindung von logischen Funktionen höherer Ebene erzielt wird, wird die Symmetrie des Kernelements kritisch für die Leichtigkeit, mit der eine solche Gestaltung erreicht werden kann. Ein besonderes Layout für ein ALU kann Eingänge an der Unterseite und Ausgänge an der Oberseite der ALU-Zelle haben. Es kann sich ergeben, daß eine benachbarte logische Funktion ebenfalls Eingänge an der Oberseite und Ausgänge an der Unterseite haben kann. Falls die Schaltungen in dem Chip keine inhärente Spiegelsymmetrie besitzen, wäre es notwendig, zwei Layout-Variationen derselben Zelle zu haben, nämlich eine für einen Signalfluß von der Unterseite zur Oberseite und die andere für einen Signalfluß von der Oberseite zur Unterseite. Linke und rechte Variationen wären gleichfalls erforderlich. Die Entwurfsflexibilität im Hinblick auf den Datenfluß und die Umkehrungen des Datenflusses sind somit in starkem Maße durch die Spiegelsymmetrie der P/N-N/P-Struktur erleichtert, die vorstehend beschrieben wurde, wenn man sich entlang der Richtung X bewegt, sowie durch die Spiegelsymmetrie der Kernzellen, wenn man sich in der Richtung y nach einer Verlagerung um eine halbe Kernzelle bewegt.
  • Bei dem bevorzugten Ausführungsbeispiel ist das Substrat 32 so ausgelegt, daß es 16 Bitworte unterbringt. Auch wenn lediglich zwei Reihen bzw. Zeilen von Gates in Fig. 1 gezeigt sind (eine einzelne Zeile ist hierbei als ein P-Kanal-Bauelement 20 benachbart zu einem N-Kanal-Bauelement 22, und in gleichartiger Weise bezüglich des N-Kanal-Bauelements 24 und des P-Kanal-Bauelements 26 definiert), ist bei dem bevorzugten Ausführungsbeispiel die Hälfte des Chips 18 Zeilen breit, um eine 16-Bit-Struktur plus zwei zusätzlichen Reihen von Bauelementen zur Aufnahme irgendwelcher beliebiger spezieller Steuersignale unterzubringen. Im allgemeinen fließen die Daten aufwärts des Chips in einer Richtung Y unter Einsatz von 18 oder der Hälfte der Zeilen der Bauelemente, und bewegen sich dann quer zum Chip in der Richtung X zur Benutzung der anderen Hälfte des Chips, die gleichfalls in 18 Reihen bzw. Zeilen organisiert ist. Eingänge würden somit allgemein an der Unterseite des Chips in der Richtung Y vorgesehen sein, wobei sich Ausgänge an der Oberseite des Chips befinden und Steuersignale rechtwinklig zu dem Datenfluß laufen. Diese Art von Datenfluß ist in besonderem Maß durch den Einsatz spiegelsymmetrischer Zeilen erleichtert, wie sie insbesondere vorstehend in Verbindung mit den Fig. 1 und 2 beschrieben wurden.
  • Wenn sich Gatearrays und halbspezifizierte Chips in ihrer Größe erhöhen, werden größere Abschnitte der Gestaltung der Systemlogik in die Integration großen Maßstabs (LSI) einbezogen. Selbst geringe Mengen von auf dem Chip befindlichem Speicher treiben folglich die Anzahl von Stiften solcher hochintegrierter Chips so hoch, daß eine effiziente Benutzung des Gatearrays beträchtlich reduziert ist. Beispielsweise wäre es nicht ungewöhnlich, von 4000 Gates lediglich ungefähr 1000 zu benutzen, da es notwendig ist, einen Speicher außerhalb des Chips vorzusehen. Daher ist es in hohem Maße erwünscht, im Stande zu sein, einen Speicher in dem Gatearray selbst vorzusehen.
  • Es gibt zumindest zwei Probleme, die mit der Eingliederung eines Speichers in dem Gatearray verknüpft sind. Als erstes hat der Entwerfer des Gatearrays keine vorab definierte Vorstellung hinsichtlich der letztendlichen Anwendung des Speichers und folglich kann ein Testen des Speichers unmöglich sein. Als zweites kann nicht angenommen werden, daß das System, in dem der auf dem Chip befindliche Speicher des Gatearrays betrieben wird, ein System mit 8 Bit, 16 Bit oder 32 Bit sein wird. Als ein Ergebnis dieser Schwierigkeiten wurde in Übereinstimmung mit der Erfindung eine Speichergestaltung entwickelt, bei der die Wortlänge dadurch programmierbar ist, daß selektiv eine Metallisierung bei einem einzigen Layout der logischen Funktion abgeschieden wird. Aus der nachstehenden Beschreibung wird deutlich, daß redundante Schaltungselemente in dem Speicher eingesetzt werden, so daß eine Programmierbarkeit der Wortlänge durch Metallmaskenoptionen erhalten werden kann.
  • Es sei nun auf Fig. 3 Bezug genommen, in der eine gesamte schematische Blockbilddarstellung eines Speichers mit programmierbarer Wortlänge veranschaulicht ist.
  • Auf einen Direktzugriffsspeicher 70 wird mit Hilfe eines X-Adressen-Dekodierers 72 und eines Y-Adressen-Dekodierers 74 zugegriffen, die jeweils in größeren Einzelheiten in den Fig. 5 und 6 gezeigt sind. Vier Adreßeingänge A0 bis A3 werden mittels einer logischen, synthetisierten Schaltung, die in Verbindung mit Fig. 5 in größeren Einzelheiten beschrieben wird, dekodiert, um auf eine von 16 Zeilen des Speichers 70 zuzugreifen. Der Y-Adreß-Dekodierer 74 ist ein Drei-Auf-Acht-Dekodierer mit Eingängen A4 bis A6, die für den Zugriff auf eine von acht Gruppen von 32 Lese/Schreib-Dual-Treibern 76 eingesetzt wird. 32 Lese/Schreib-Dual-Treiber 76, wie sie etwa in größeren Einzelheiten in Verbindung mit Fig. 7 beschrieben werden, werden zur Auswahl der Spalten des Speichers 70, auf die zugegriffen wird, benutzt.
  • Zunächst sei jedoch auf Fig. 4 Bezug genommen, in der eine einzelne Speicherzelle 78 des Speichers 70 in größeren Einzelheiten gezeigt ist. Die Speicherzelle 78 ist eine herkömmliche statische ram-Zelle mit sechs Transistoren, bei der eine erste Zwischenspeicherschaltung 80 und eine Zwischenspeicherschaltung 82 eingesetzt wird. Folglich ist die Speicherzelle 78 im Stande, zwei Bit zu speichern. Es sei die Zwischenspeicherschaltung 80 betrachtet. Auf die Zwischenspeicherschaltung 80 wird mittels zweier identischer Schalttransistoren 84 und 86 zugegriffen, die durch eine Zeilenadreßleitung 88 gesteuert werden. Das Eingangssignal und Ausgangssignal des Zwischenspeichers 80 wird auf einer Spaltenleitung 90, die durch ein Signal B repräsentiert ist, und einer Spaltenleitung 92 bereitgestellt, die das komplementäre Signal B repräsentiert. Falls daher die Zeilenadreßleitung 88 auf aktiven niedrigen Pegel übergeht, werden die Zugriffseinrichtungen 84 und 86 leitend, wodurch es möglich ist, das Bit und sein Komplement jeweils auf Leitungen 90 und 92 zu schreiben und in den Zwischenspeicher 80 einzuschreiben. Ein Bit wird dann im Zwischenspeicher 80 gespeichert und durch gleichartige Zugriffseinrichtungen 84 und 86 ausgelesen. Die Einrichtungen 84 und 86 sind Transistoren mit Kanal p, die eine etwas schnellere Schaltzeit bei dem Substrat des Kanals n, von dem bei dem dargestellten Ausführungsbeispiel ausgegangen wird, bereitstellen. Für CMOS-Prozesse, die mehr für Speicherergebnisse als für allgemeine logische Funktionen optimiert sind, wären Transistoren mit Kanal n die bevorzugte Transistorpolarität. Der Zwischenspeicher 82 ist in gleichartiger Weise mit Zugriffstransistoren 94 und 96 versehen, die mit einer Adreßeingangsleitung 98 gekoppelt sind. Folglich arbeitet der Zwischenspeicher 82, dessen Ausgänge gleichfalls mit Spaltenleitungen 90 bis 92 gekoppelt sind, in identischer Weise.
  • Es wird nun auf Fig. 5 Bezug genommen, in der der X- Adreß-Dekodierer 72 gemäß Fig. 3 schematisch gezeigt ist. Vier Eingangsadressen A0 bis A3 werden an Eingänge 100 bis 106 von Invertierern 108 bis 110 angelegt. Die Ausgangssignale dieser Invertierer werden wiederum durch Invertierer 116 bis 122 invertiert, so daß die Adressen und ihre Komplemente als Eingangssignale für eine logische NAND/NOR- Synthese bereitgestellt werden. Es sei als Beispiel das nullte Bit betrachtet. NAND-Glieder 124 und 126 besitzen Ausgänge, die mit den Eingängen eines NOR-Glieds 128 gekoppelt sind. Das Ausgangssignal des NOR-Glieds 128 wird wiederum invertiert und repräsentiert die Zeilenleitung X0 nullter Ordnung. Die Eingangssignale für das NAND-Glied 124 sind jeweils die Signale A2 und A3 von den Invertierern 112 bzw. 114. Daher ist das Ausgangssignal des NAND-Glieds 124 stets wahr, es sei denn, daß seine beiden Eingangssignale wahr sind, wobei in diesem Fall das Ausgangssignal unwahr ist. Das NAND-Glied 126 besitzt in gleichartiger Weise die Eingänge A0 und A1 von den Invertierern 108 bzw. 110. Das Ausgangssignal des NAND-Glieds 126 ist in gleichartiger Weise stets wahr, es sei denn, daß seine beiden Eingangssignale wahr sind, wobei es in diesem Fall zu unwahr bzw. falsch wird. Die Ausgänge der NAND-Glieder 124 und 126 sind folglich mit den Eingängen des NOR-Glieds 128 gekoppelt. Der Ausgang des NOR-Glieds 128 ist stets falsch, es sei denn, seine beiden Eingangssignale sind falsch, in welchem Fall sein Ausgangssignal zu wahr wird. Daher ist das Ausgangssignal des NOR-Glieds 128 lediglich dann wahr, wenn A0 bis A3 jeweils falsch sind. Anders ausgedrückt besitzt das NOR-Glied 128 dann, wenn die Adresse 0000 an den X-Dekodierer 72 angelegt wird, ein wahres Ausgangssignal, das dann wiederum durch den Invertierer 130 invertiert wird und eine Adressenleitung wie etwa eine Leitung 88, wie dies in Verbindung mit Fig. 4 beschrieben wurde, treibt, um auf eine zweite der entsprechenden Speicherzellen zuzugreifen. Andernfalls bleibt das Ausgangssignal des NOR-Glieds 128 zu allen anderen Zeitpunkten falsch.
  • Eine gleichartige Analyse bezüglich aller anderen NOR- Glieder, die in Fig. 5 zusammen mit ihren entsprechenden NAND-Gliedern dargestellt sind, könnte gleichfalls mit dem Ergebnis durchgeführt werden, daß die Ausgänge 132 der NOR- Glieder (und eines gleichartigen NOR-Glieds 128) 16 wählbare Zeilenleitungen aufweisen, von denen lediglich eine auf aktiven niedrigen Pegel entsprechend jeder Adresse mit 4 Bit geht, die an den Eingängen 100 bis 106 des X-Adreß-Dekodierers 72 bereitgestellt wird.
  • Es sei nun auf Fig. 6A Bezug genommen, die eine schematische Darstellung des Y-Adreß-Dekodierers 74 zeigt, der zur Dekodierung einer Wortlänge von 8 Bit ausgelegt ist. Die Adresse Y, die aus Signalen A4 bis A6 besteht, wird an Eingänge 134 bis 138 von Invertierern 140 bis 144 angelegt. Die Ausgänge der Invertierer 140 bis 144 sind auch mit den Eingängen von entsprechenden Invertierern 146 bis 150 gekoppelt. Die Signale A4 bis A6 und A4 bis A6 werden somit selektiv für Eingänge von NAND-Gliedern 152 zur Verfügung gestellt. Es sei das unterste NAND-Glied 152 in Fig. 6A betrachtet, das drei Eingänge besitzt, die selektiv aus den sechs zur Verfügung stehenden Signalen von bzw. an den Ausgängen der Invertierer 140 bis 150 gewählt sind. In dem Fall des NAND-Glieds 152 sind seine Eingangssignale die Signale A4, A5 und A6. Das Ausgangssignal des NAND-Glieds 152 ist stets wahr, es sei denn, daß jedes seiner Eingangssignale wahr ist, in welchem Fall sein Ausgangssignal falsch ist. Daher ist das Ausgangssignal des NAND-Glieds 152 lediglich bei der Y-Adresse 000 falsch. Das Ausgangssignal des NAND-Glieds 152 wird als Eingangssignal an den Invertierer 154 angelegt, der ein invertiertes logisches Signal an den Y-Adresseneingang bei einer entsprechenden Gruppe von vier der 32 Lese/Schreib-Dual-Treiber 76 anlegt.
  • Fig. 6B zeigt eine schematische Darstellung eines Abschnitts des Y-Adreß-Dekodierers 74, der für eine Dekodierung einer Wortlänge von 16 Bit umgestaltet ist. Die Eingangssignale der Invertierer 144 und 150 sind falsch, so daß ihre Ausgangssignale wahr sind. Dieses bewirkt, daß ein Eingangssignal aller NAND-Glieder 152 wahr ist. Dies ruft eine Degenerierung der Y-Ausgänge hervor. Y&sub0; und Y&sub4; werden gleichzeitig wahr. In gleichartiger Weise werden Y&sub1; und Y&sub5;, Y&sub2; und Y&sub6;, sowie Y&sub3; und Y&sub7; wahr. Folglich wird auf acht aus den 32 Lese/Schreib-Dual-Treibern 76 zugegriffen.
  • Fig. 6C ist eine schematische Darstellung eines Abschnitts des Y-Adreß-Dekodierers 74, der für eine Dekodierung einer Wortlänge von 32 Bit umkonfiguriert ist. Die Eingänge der Invertierer 144, 150, 142 und 148 sind geerdet, was bewirkt, daß die Ausgänge derselben wahr sind. Dies bewirkt, daß zwei Eingänge aller NAND-Glieder 152 wahr sind. Dies ruft eine doppelte Degenerierung der Y-Ausgänge hervor. Folglich werden alle geradzahligen Y-Ausgänge gleichzeitig wahr sein und in gleichartiger Weise werden alle ungeradzahligen Y-Ausgänge gleichzeitig wahr sein. Folglich wird auf 16 der 32 Lese/Schreib-Dual-Treiber 76 zugegriffen. Wie nachstehend beschrieben, erlaubt dies die Wahl eines Worts wählbarer Länge (d. h. 8, 16 oder 32 Bit) aus der zugegriffenen Zeile im Speicher 70. Die Bitlänge des Worts wird folglich als "programmierbar" bezeichnet.
  • Der Zugriff zum Speicher 70 läßt sich nun unter Bezugnahme auf Fig. 7 besser verstehen, in der einer der 32 Lese/Schreib-Treiber 76 schematisch dargestellt ist. Ein Datenbit D0 wird von einem Dateneingangsbus an einen Eingang 156 des Invertierers 158 angelegt. Das Bit D0 wird weiterhin an den Eingang eines Tristate-Invertierers (Invertierer mit drei Zuständen) 160 angelegt. Der Ausgang des Invertierers 158 ist mit dem Eingang eines zweiten Tristate-Invertierers 162 gekoppelt. Das Ausgangssignal des Tristate-Invertierers 160 repräsentiert das Bit , das an eine entsprechende Spaltenleitung der Speicherzelle wie etwa die in Fig. 4 gezeigte Leitung 92 angelegt wird. Das Ausgangssignal des Tristate-Invertierers 162 ist das Bit B0, das in gleichartiger Weise an eine Spaltenleitung wie etwa der Leitung 90 der Speicherzelle gemäß Fig. 4 angelegt wird. 64 solcher Paare von Tristate-Invertierern 160 und 162 sind unter den 32 Dual-Treibern 76 vorgesehen, um die 64 Spalten des Speichers 70 aufzunehmen bzw. an diese angepaßt zu sein.
  • Die Tristate-Invertierer 160 und 162 werden durch ein Adreßausgangssignal, das von dem Y-Adreß-Dekodierer 74 wie etwa von dem Ausgang des Invertierers 154 gemäß Fig. 6 gewonnen wird, gesteuert. Die Tristate-Invertierer 160 und 162 werden ebenfalls durch ein Lese/Schreib-Signal W/R gesteuert. Die bestimmte Adresse der Lese/Schreib-Schaltungszellen wird durch die geeignete Adresse gewählt, die von dem Y-Adreß-Dekodierer 74 in die Lese/Schreib-Schaltung 76 gelangt. Das Ausgangssignal des Invertierers 154, beispielsweise das Signal Y0, wird an den Adresseneingang 164 des NAND-Glieds 166 angelegt. Der andere Eingang 168 des NAND-Glieds 166 ist das Signal W/ . Das Ausgangssignal des NAND-Glieds 166 ist wiederum mit einem bei Niedrigpegel aktivierenden Eingang der Invertierer 160 und 162 und mit dem Eingang eines Invertierers 170 gekoppelt. Der Ausgang des Invertierers 170 ist seinerseits mit einem bei hohem Pegel aktivierenden Eingang der Invertierer 160 und 162 gekoppelt. Solange das Ausgangssignal des NAND-Glieds 166 falsch ist, werden die Tristate-Invertierer 160 und 162 aktiviert und besitzen ein Ausgangssignal, das gleich dem inversen Wert ihres Eingangssignals ist, andernfalls liegt ihr Ausgang nicht auffestem Pegel (float). Falls daher die Lese/Schreib-Zelle 76 durch den wahren Wert des Eingangs 164 ausgewählt ist und das Lese/Schreib-Signal aktiv ist, ist das Ausgangssignal des NAND-Glieds 166 falsch, wodurch die Tristate-Invertierer 160 und 162 aktiviert sind. Das am Eingang 156 bereitgestellte Datenbit D0 wird folglich in den Speicher 70 als Bit B0 und eingeschrieben. Falls Daten zu lesen sind, ist der Eingang 168 falsch, wodurch die Tristate-Invertierer 160 und 162 dazu veranlaßt werden, nicht auf festem Potential zu liegen. Jedoch ist die Leitung 80 mit einem Eingang 172 des Invertierers 174 gekoppelt. Der Ausgang des Invertieres 174 ist seinerseits mit dem Eingang eines Tristate-Invertierers 176 gekoppelt. Der bei hohem Potential aktivierende Eingang des Tristate-Invertierers 176 ist mit dem Signal Yi am Eingang 164 gekoppelt (wobei der bei niedrigem Pegel aktivierende Eingang gleichfalls mit , das vom Invertierer 178 erhalten wird, gekoppelt ist). Folglich liegen bei einer adressierten Lese/Schreib-Zelle 76 während eines Lesebetriebs die Tristate-Invertierer 160 und 162 nicht auf festem Potential und die an dem B0-Eingang 172 adressierten Daten werden an dem Ausgang 180 des Tristate-Invertierers 176 als Ausgangsbit Q0 bereitgestellt. Wenn die Adresse Yi wahr ist, ist folglich Q0 aktiviert und sein Ausgang wird in Abhängigkeit von dem Zustand des Lese/Schreib-Signals entweder der Inhalt der Speicherzelle, auf die durch den Y-Adreß-Dekodierer zugegriffen ist, oder die Daten an dem Eingang D0 sein.
  • Fig. 7 zeigt ebenfalls einen Duplikatsatz von Invertierern und Tristate-Invertierern gleichartig zu denjenigen, die den Tristate-Invertierern 160, 162 und 176 entsprechen. Diese arbeiten in identischer Weise in Verbindung mit den Signalen Y und W/ mit der Ausnahme, daß ihre entsprechenden Tristate-Invertierer mit den nächsten benachbarten Spaltenleitungen und B1 gekoppelt sind. Folglich dient eine Signaladresse Yi am Eingang 164 zur gleichzeitigen Auswahl zweier benachbarter Bit. Wie in Verbindung mit Fig. 6 weiter dargestellt ist, ist jede Yi-Adresse Y0 bis Yi gleichzeitig an eine Gruppe von vier solcher Dual-Treiber 76 angelegt. Daher bewirkt jedes Yi-Adreß-(Signal Yi in Fig. 7)-Signal das Einschreiben oder Auslesen von 8 Bit in Abhängigkeit von dem Zustand des Signals W/ .
  • Erneut auf Fig. 7 zurückkommend sei angemerkt, daß eine beliebige Anzahl von Q-Ausgängen 180 von den Dual-Treibern 76 gemeinsam an einen gemeinsamen Ausgangsbus angebunden sein können, da diese Ausgänge von einem Tristate-Invertierer ähnlich dem Tristate-Invertierer 176 kommen. Bei Einsatz einer Metallmaskenoption zur Anbindung solcher potentialungebundener bzw. floatender Ausgänge in Verbindung mit der Programmierung des Y-Adreß-Dekodierers wird die programmierbare Wortlänge gemäß der Erfindung in der nachstehend beschriebenen Weise erreicht. Dies läßt sich am besten unter Übergang zu den Fig. 8a und 8b verstehen.
  • Die Fig. 8a und 8b sind eine schematische Darstellung, bei denen die Betriebsart mit 32 Bit angenommen ist, d. h. bei der der Speicher 70 als Worte mit einer Länge von 32 Bit speichernd behandelt wird. Ein Dateneingabebus, der allgemein durch das Bezugszeichen 182 bezeichnet ist und durch die Zusammenstellung der Eingänge D0 bis D31 repräsentiert ist, ist über dem oberen Bereich der Fig. 8a und 8b dargestellt. Jedes Dateneingabesignal wie etwa beispielsweise das Signal D16 wird an den Dateneingabeanschluß zweier bestimmter Dual-Treiber 76 angelegt. Das Datenbit D16 am Eingang 184 ist mit dem zweiten Dateneingangsanschluß des Dual-Treibers 76 (16) entsprechend dem Bit 16. Ordnung des Worts mit 32 Bit und mit dem zweiten Dateneingang des Dual-Treibers 76 (20) gekoppelt. Die Datenausgänge der Dual-Treiber 76 (16) und 76 (20) sind gemeinsam am Ausgang 186 gekoppelt, um das Ausgangsbit Q16 bereitzustellen. In gleichartiger Weise ist das nächste benachbarte Datenbit D17 gemeinsam mit dem ersten Dateneingang des Dual-Treibers 76 (16) und mit dem zweiten Dateneingang des Dual-Treibers 76 (20) gekoppelt. Wiederum sind die ersten Datenausgänge des Dual-Treibers 76 (16) und 76 (20) gemeinsam mit dem Daten-Ausgang 188 entsprechend dem Datenausgangsbit Q17 gekoppelt.
  • Daher werden durch die gewählte Metallisierungsoption und durch redundantes Koppeln von gepaarten Dateneingängen und Ausgängen von Dual-Treibern 76 die 64 möglichen bestimmten Dual-Treiber in paarweiser Art behandelt, um eine Kollektion von 16 unterscheidbaren Paaren zu bilden.
  • Fig. 8B zeigt gleichfalls die Y-Adresse in ihrer Verbindung mit jedem der Dual-Treiber 76. Da bei dem Betrieb mit einer Wortlänge von 32 Bit der Y-Dekodierer doppelt degeneriert ist, sind Y&sub0;, Y&sub2;, Y&sub4; und Y&sub6; gleichzeitig wahr und alternierend sind Y&sub1;, Y&sub3;, Y&sub5; und Y&sub7; wahr, wobei entweder die Dual-Treiber 16, 17, 18 und 19 oder die Treiber 20, 21, 22 und 23 aktiviert sind. Auf die anderen Dual-Treiber 76 wird in gleichartiger Weise derart zugegriffen, daß auf entweder einen Satz von 16-Dual-Treibern 76 oder den anderen Satz von 16 zugegriffen wird. Folglich wirkt der Y-Dekodierer in der Betriebsart mit einer Wortlänge von 32 Bit als eine 1-aus-2-Wähleinrichtung. Daher werden Daten auf einem gemeinsamen Bus Q&sub0; bis Q&sub3;&sub1; als ein Wort mit 32 Bit dargeboten und können als ein Wort mit 32 Bit in den Speicher 70 eingeschrieben oder aus diesem ausgelesen werden.
  • In ähnlicher Weise wirkt der Y-Adreß-Dekodierer in der Betriebsart mit einer Wortlänge von 16 Bit als eine 1-aus- 4-Wähleinrichtung. Durch gemeinsames Koppeln von Dual-Treibern 76 mit Y-Adressen Y&sub0;, Y&sub1;, Y&sub2; und Y&sub3; in Gruppen von vier und durch gleichartiges Koppeln der Dual-Treiber mit Y-Adressen Y&sub4;, Y&sub5;, Y&sub6; und Y&sub7; werden acht der Dual-Treiber abwechselnd ausgewählt. Da zwei Bit je Treiber 76 vorhanden sind, ergibt dies ein Wort mit 16 Bit, das in den Speicher 70 eingeschrieben und aus diesem ausgelesen werden kann.
  • Bei der Betriebsart mit einer Wortlänge von 8 Bit wirkt der Y-Adreß-Dekodierer als ein 1-aus-8-Wähleinrichtung. Durch Koppeln der Dual-Treiber mit Adressen Y&sub0; bis Y&sub7; in Gruppen von acht werden vier der Dual-Treiber alternierend ausgewählt, wodurch sich ein Wort mit 8 Bit ergibt.
  • Es ist offensichtlich, daß 64 Bit auf dem Eingangsdatenbus 182 zur Bereitstellung von 64 Ausgangsbits Q0 bis Q63 als ein Ausgabedatenbus, der allgemein mit dem Bezugszeichen 192 bezeichnet ist, dadurch bereitgestellt werden können, daß jedes Eingangs- und Ausgangsbit eigenständig mit lediglich einem der beiden Eingangs- und Ausgangsdatenanschlüsse der 32 Dual-Treiber 76 verknüpft wird.
  • In diesem Fall würde der Y-Adreß-Dekodierer für eine vollständige Degenerierung bzw. Gegenkopplung (fully degenerate) dadurch programmiert, daß die Eingänge der Invertierer 140, 142, 144, 146, 148 und 150 gemäß Fig. 6A falsch gemacht würden. Dies würde bewirken, daß alle Adressen Y stets wahr wären, wodurch immer alle der 32 Treiber ausgewählt würden und eine Wortlänge von 64 Bit bereitgestellt würde.
  • Die Schaltung gemäß den Fig. 3 bis 8b stellt eine Speichergestaltung mit einer programmierbaren Wortlänge dar, der von allgemeiner Einsetzbarkeit sowohl innerhalb eines halbspezifizierten (semicustom) Chips als auch in Chips mit Standard-Gestaltung oder kundenspezifischer Gestaltung ist. Jedoch kann bei hohem Integrationsgrad (LSI) erwartet werden, daß kleine Speicher wie etwa der beschriebene und insbesondere ein Utility-Speicher, der allgemein programmierbar ist, vollständig auf dem Chip ohne direkten Eingang oder Ausgang mittels der Stifte untergebracht sind. Es stellt ein erhebliches Problem dar, zu erkennen, ob der Speicher funktionsfähig ist oder nicht, wenn er in dieser Weise unzugänglich ist. Es sei nun auf Fig. 9 Bezug genommen, in der eine Speicher-Eigentestschaltung beschrieben ist, die wiederum von allgemeiner Einsetzbarkeit ist, jedoch insbesondere für ein Gatearray anpaßbar ist.
  • Fig. 9 zeigt ein schematisches Blockschaltbild, das die gesamte Architektur der Speicher-Eigentestschaltung veranschaulicht. Der Speicher 70 ist mit sieben Adreßeingängen A0 bis A6, 32 Dateneingängen D0 bis D31, einem Lese/Schreib-Steuersignal W/ und 32 Ausgangssignalen Q0 bis Q31 dargestellt. Ein Datenmultiplexer 200 führt die Dateneingangssignale D0 bis D31 dem Speicher 70 entweder von einem Dateneingabebus 202 oder von einem nachstehend beschriebenen Dateninvertierer 204 zu. Der Datenmultiplexer 200 wird durch ein Signal START gesteuert, das an einem Eingangsanschluß bzw. -stift 206 bereitgestellt wird. Der Stift 206 ist der einzige erforderliche Eingabezugang, der für die Eigentestschaltung gemäß Fig. 9 zur Verfügung steht. Ein Ausgangsstift 208, an dem ein Fehler- oder Bestanden-Signal dargeboten wird, ist der einzige erforderliche zugängliche Ausgang. Das Signal START am Eingangsstift 206 wird benutzt, um dem Datenmultiplexer 200 zu befehlen, entweder Daten vom Dateninvertierer 204 oder von einem Dateneingabebus 202 zu nehmen. In gleichartiger Weise werden Adressen A0 bis A6 des Speichers 70 durch einen Adreßmultiplexer 210 bereitgestellt.- Die Eingänge des Adreßmultiplexers 210 sind ihrerseits entweder mit einem Adreßbus 212 oder mit einem Adreß- und Datenzähler-Ausgangssignal 214 gekoppelt, das durch einen Adreß- und Datenzähler 216 erzeugt wird. Das erzeugte Adreß- und Datenzähler-Signal wird weiterhin als Eingänge an den Dateninvertierer 204 und einen Zählerfehlerdetektor 218 angelegt. Die Ausgangssignale des Dateninvertierers 204 und des Zählerfehlerdetektors 218 werden jeweils als Eingänge an eine Fehlererfassungs-Logikschaltung 220 angelegt. Ein zusätzliches Eingangssignal wird dem Zählerfehlerdetektor 218 von einem Referenz- und Steuerzähler 222 zugeführt. Der Adreß- und Datenzähler 216 und der Referenz- und Steuerzähler 222 werden beide abwechselnd durch eine Oszillator- und Initialisierungsschaltung 224 getrieben oder gesteuert, die ihrerseits auf das Signal START am Eingangsstift 206 anspricht. Zur erleichterten Darstellung ist der Eingangsstift 206 an mehreren Stellen in Fig. 9 gezeigt, obwohl tatsächlich im aktuellen Chip ein einziger Eingangsstift 206 vorgesehen ist. Der Ausgang der Fehlererfassungslogik 220 ist seinerseits mit dem Eingang eines Fehlerzwischenspeichers 226 gekoppelt, das das Bestanden/Fehler-Signal am Ausgangsstift 208 erzeugt. Ein Lese/Schreib-Multiplexerschalter 228, der a) auf das am Eingang 230 bereitgestellte Lese/Schreib-Signal, b) den Referenzsteuerzähler und c) das Signal START am Eingangsstift 206 anspricht, wird in einer nachstehend in größeren Einzelheiten beschriebenen Weise eingesetzt, um das W/ -Signal für den Speicher 70 bereitzustellen.
  • Nach Beschreibung der gesamten Architektur der Eigentestschaltung unter Bezugnahme auf Fig. 9 kann nun die allgemeine Betriebsweise in Einzelheiten erläutert werden. Das Signal START am Eingangsstift 206 ist aktiv niedrig bzw. bei niedrigem Pegel aktiv (active low). Eine logische Null wird an den Stift 206 angelegt und das Bestanden/Fehler-Signal am Ausgangsstift 208 sollte ebenfalls auf niedrigen Pegel gehen und dort bleiben, es sei denn, daß der Speicher 70 während des Testbetriebs als fehlerhaft ermittelt wird. Wie nachstehend in größeren Einzelheiten erläutert wird, ist das Eigentestmerkmal der Erfindung auch für die Berücksichtigung des Merkmals der programmierbaren Wortlänge ausgelegt, das in Verbindung mit dem Speicher 70 unter Bezugnahme auf die Fig. 3 bis 8b beschrieben wurde.
  • In Übereinstimmung mit dem Protokoll der Eigentestschaltung werden sowohl eine logische Eins als auch eine logische Null in jede Speicherstelle in dem Speicher 70 eingeschrieben. Der Speicher 70 wird dann ausgelesen, um sicherzustellen, daß die korrekte Information, die in jede bestimmte Speicherstelle eingeschrieben wurde, tatsächlich auch ausgelesen wird. Genauer gesagt wird die Adresse jeder Speicherstelle in diese bestimmte Speicherstelle eingeschrieben und dann ausgelesen, um die Betriebsfähigkeit zu prüfen. Danach wird der logisch invertierte Wert der Adressenstelle in dieselbe Speicherstelle eingeschrieben und wiederum ausgelesen, um sicherzustellen, daß die Daten korrekt sind und der Speicher 70 betriebsfähig ist. In dieser Weise wird in jede Zelle innerhalb des Speichers eine logische Eins und eine logische Null eingeschrieben und jede Zelle getestet.
  • Die Sequenzierung bzw. Abfolge von Adressen und Daten wird durch den Adreß- und Datenzähler 216 bereitgestellt. Der Ausgang 214 des Adreß- und Datenzähler 216 wird an den Speicher 70 über den Adreßmultiplexer 210 als die Adresse des Speichers, in der Daten zu speichern sind, angelegt und dasselbe Ausgangssignal 214 wird über den Dateninvertierer 204 bereitgestellt und als die Daten behandelt, die in der adreßierten Speicherstelle zu speichern sind. Das Ausgangssignal 232 vom Dateninvertierer 204 wird an den Speicher 70 über den Datenmultiplexer 200 angelegt. Während des Eigentestbetriebs koppeln der Datenmultiplexer 200 und der Adreßmultiplexer 210 den Speicher 70 vom Adressenbus 212 und Dateneingabebus 202 ab, so daß der Speicher 70 lediglich durch den Adreß- und Datenzähler 216 zugänglich ist. Bei der Beendigung des Eigentests kehren die Multiplexer 200 und 210 in ihren normalen Zugriffsbetrieb zum Adreßbus 202 und Datenbus 212 zurück.
  • Ein Referenz- und Steuerzähler 222 wird zur Erfassung irgendwelcher Fehler innerhalb des Adreß- und Datenzählers 216 eingesetzt. Falls einer der Adreß- und Datenzähler 216 oder Referenz- und Steuerzähler 222 fehlerhaft ist, wird ein Fehlersignal am Ausgangsstift 208 erzeugt. Der Referenz- und Steuerzähler 222 steuert auch ein spezifisches Lese/Schreib-Signal und steuert, ob die Daten, die in den Speicher 70 während des Eigentestbetriebs eingelesen wurden, zu invertieren sind oder nicht. Dieser letzterer Betrieb wird in größeren Einzelheiten unter Bezugnahme auf die Fig. 10a bis 12 beschrieben. Der Referenz- und Steuerzähler 222 enthält auch eine Logik, die den Eigentestbetrieb bei seinem Abschluß anhält und die Schaltung gemäß Fig. 9 am Ende des Eigentestbetriebs zur normalen Betriebsweise zurückführt.
  • Die Fehlererfassungslogik 220 akzeptiert Daten vom Datenausgabebus 234 aus dem Speicher 70 und vom Adreß- und Datenzähler 216 über den Dateninvertierer 204. Die Fehlererfassungslogik 220 faßt diese beiden Eingangssignale in einer EXKLUSIV-ODER Funktion auf einer Bit-Für-Bit Basis zusammen, um die Daten, die im Speicher sein sollten, mit denjenigen Daten zu vergleichen, die tatsächlich in den Speicher eingeschrieben und aus diesem ausgelesen wurden.
  • Jeder Fehler des Vergleichs wird durch ein großes NOR-Glied 256 (mit vielen Eingängen) erfaßt und durch den Fehlerzwischenspeicher 226 zwischengespeichert. Falls daher zu irgendeinem Zeitpunkt während des Eigentestbetriebs ein Fehler des Vergleichs zwischen demjenigen, was im Speicher sein sollte, und demjenigen, was tatsächlich im Speicher war, ermittelt wird, wird ein Fehlersignal am Ausgangsstift 208 zwischengespeichert und verbleibt zwischengespeichert, bis der Eigentestbetrieb beendet ist.
  • Nachdem nun die gesamte Betriebsweise der Eigentestschaltung gemäß Fig. 9 beschrieben wurde, sei jetzt die detaillierte Schaltung und Funktionsweise jedes der vorstehend allgemein erläuterten Elemente erörtert. Fig. 10 wird als eine Karte bereitgestellt, um den Leser bei der gegenseitigen Orientierung bzw. Zuordnung der Fig. 10a bis 10i zu unterstützen.
  • Es sei nun auf Fig. 10a Bezug genommen, in der der Adreß- und Datenzähler 216 schematisch dargestellt ist. Der Adreß- und Datenzähler 216 ist ein Rauhigkeits- bzw. Stufenzähler (ripple counter) mit 7 Bit, der einen Takteingang (CLK) auf einer Leitung 235, ein Takt-Komplement ( )- Eingang auf einer Leitung 237 und einen Lösch-(CLR)-Eingang bzw. -Eingangssignal auf einer Leitung 239 besitzt, das von der in Fig. 9 gezeigten und unter Bezugnahme auf Fig. 10i in größeren Einzelheiten beschriebenen Oszillator- und Initialisierungsschaltung 224 abgegriffen wird. Sieben identische Flip-Flops 236a bis 236g sind vorhanden und in Reihe geschaltet, um an ihren Ausgängen Q einen sequentiellen Zählstand zu erzeugen. Anfänglich sind alle Flip-Flops 236 gelöscht und die Ausgänge Q, die allgemein in Fig. 10a als Ausgang 214 bezeichnet sind, sind 000 000 0. Bei dem ersten Taktimpuls kippt das Ausgangssignal des Flip-Flops 236a um. Die Ausgänge 214 repräsentieren an diesem Punkt das logische Signal 000 000 1. Es wird daher eine alternierende Reihe von Einsen und Nullen an den Ausgang Q des Flip-Flops 236a getaktet. In gleichartiger Weise ist der Takteingang des nächsten benachbarten Flip-Flops, das Flip-Flop 236b, mit dem Ausgang des Flip-Flops 236a gekoppelt und dessen Eingang ist mit dem Ausgang Q von 236a gekoppelt. Die verbleibenden Flip-Flops 236c bis g sind in gleichartiger Weise gekoppelt, so daß der gesamte Adreßbereich mit einer Anzahl von 7 Bit an den Ausgängen 214 erzeugt wird.
  • Es sei nun auf den Referenz- und Steuerzähler 222 gemäß Fig. 10e Bezug genommen. Der Referenz- und Steuerzähler 222 ist ein Rippen- bzw. Stufenzähler mit 10 Bit, der im wesentlichen gleichartig wie derjenige ist, der in Verbindung mit Fig. 10a beschrieben wurde. Die ersten sieben Flip- Flops 238a bis g, die den Flip-Flops 236a bis g entsprechen, sind in gleichartiger Weise mit den Signalen CLK, und CLR von der Oszillator- und Initialisierungsschaltung 224 gekoppelt und stellen daher eine parallele Zählung bereit. Das 8., 9. und 10. Flip-Flop 240, 242 und 244 stellen eine Steuerung für den Lese/Schreib-Betrieb für die Dateninvertierung bzw. für die Beendigung des Eigentestes bereit. Bei dem dargestellten Ausführungsbeispiel wird ein Wort mit 32 Bit angenommen und die Gestaltungsänderungen, die zur Konfigurierung der Schaltung für ein Wort mit 16 oder 8 Bit notwendig sind, werden nachstehend in Verbindung mit den Fig. 11 bzw. 12 diskutiert. ??? Wie zuvor beschrieben besteht der Speicher 70 aus 16 Zeilen und 64 Spalten. Falls daher ein Wort mit 32 Bit angenommen wird, kann der Speicher 70 betrachtet werden, als wenn er zwei Spalten von 32 Bit-Wörtern mit 16 solcher Wörter in jeder der Spalten halten würde. Wie vorstehend gleichfalls beschrieben wurde, wird auf die Zeilen im Speicher 70 durch die Adreßbits A0 bis A3 zugegriffen. Auf die Spalten mit 64 Bit im Speicher 70 wird über Bits A4 bis A6 zugegriffen, die dekodiert werden, um acht unterschiedliche Spaltenadressierungssignale zu erzeugen, von denen jedes gleichzeitig auf acht einzelne Bitspalten zugreift. Um daher auf ein Wort mit 32 Bit zuzugreifen, müssen vier solche Spaltenzugriffssignale von den acht erzeugt werden. Dies bedeutet, daß ein einzelnes Bit wie etwa A4 ausreichend ist, um anzugeben, ob man auf die erste Spalte mit 32 Bit oder die zweite Spalte mit 32 Bit innerhalb des Speichers 70 zugreift. Folglich sind die Ausgänge Q der Flip-Flops 238f und 238g gemeinsam mit dem Ausgang Q des Flip-Flops 240 mit einem NOR-Glied 246 gekoppelt. Das Ausgangssignal des Flip-Flops 238f entspricht dem Spaltenzugriffssignal AS, während das Ausgangssignal des Flip-Flops 238g dem Spaltenzugriffssignal A6 entspricht. Falls daher die Adresse sich erhöht hat, so daß entweder AS oder A6 1 ist, bedeutet dies, daß A4, d. h. das Ausgangssignal des Flip- Flops 238e, zwischen seinen zwei möglichen Zuständen zyklisch gewechselt hat und sowohl auf das erste als auch auf das zweite Wort mit 32 Bit von jeder der 16 Zeilen des Speichers 70 zugegriffen wurde. Das Ausgangssignal Q des Flip-Flops 240 bleibt jedoch niedrig, bis jede der möglichen Adressen A0 bis A6 erzeugt wurde. Bei dem nächsten Taktimpuls ändert sich der Zustand des Flip-Flops 240, was anzeigt, daß der Schreibzyklus beendet ist und daß ein Lesezyklus beginnen kann, da jede der Adressen A0 bis A6 erneut sequentiell durch den Adreß- und Datenzähler 216 in dem möglichen Bereich von Adressen erzeugt wird. Daher wird das Ausgangssignal des NOR-Glieds 246 während des anfänglichen Schreibzyklus in der Betriebsart mit 32 Bit wahr sein, bis entweder AS oder A6 auf wahr wechseln, wonach es falsch bleiben wird. Nachdem der gesamte Schreibzyklus abgearbeitet wurde, wird der Ausgang Q des Flip-Flops 240 dann das Ausgangssignal des NOR-Glieds 246 während des nachfolgenden Lesezyklus falsch halten. Das Ausgangssignal des NOR-Glieds 246 ist das Signal TEST W/ .
  • Es sei nun kurz auf Fig. 10b Bezug genommen. Das Signal TEST W/ wird als ein Eingangssignal für das NAND-Glied 248 angelegt, dessen anderes Eingangssignal ist. Der Adreß- und Datenzähler 216 ändert seinen Zustand während . Folglich wird das NAND-Glied 248 während an seiner Ansteuerung gehindert, um ein Signal zu erzeugen, das den Speicher 70 in einen Lesebetrieb zwingt, so daß sein Inhalt nicht geändert werden kann, während der Zähler 216 sich im Übergang befindet. Der Ausgang des NAND-Glieds 248 ist über den Lese/Schreib-Multiplexerkschalter 228 und den Invertierer 250 mit dem Eingang W/ des Speichers 70 gekoppelt. Daher wird in den Speicher stets dann eingeschrieben, wenn das Taktsignal niedrigen Pegel besitzt und das Signal TEST W/ wahr ist.
  • Es sei nun auf Fig. 11 Bezug genommen, wobei das NOR- Glied 246 isoliert vom Referenz- und Steuerzähler 222 dargestellt ist, um seine Eingangskonfiguration bei Benutzung in der Betriebsart mit 16 Bit zu zeigen. Wenn eine Länge des Worts von 16 Bit zugrundegelegt wird, kann der Speicher 70 konzeptionsmäßig als vier Spalten mit 16 Bit-Wörtern mit 16 Zeilen in jede Spalte ausgelegt sein. In diesem Fall sind zwei Y-Adreß-Bits A4 und A5 erforderlich, um die vier Spalten in dem Speicher 70 einzeln bzw. gezielt zu adressieren. Daher ist in Fig. 11 gezeigt, daß ein Eingang des NOR-Glieds 246, der bei dem Ausführungsbeispiel gemäß Fig. 10e als mit dem Ausgang Q des Flip-Flops 238f gekoppelt gezeigt ist, statt dessen geerdet ist. Die verbleibenden Eingänge des NOR-Glieds 246 verbleiben wie zuvor. Somit wird eine ausreichende Anzahl von unterscheidbaren Adressen während des Schreibzyklus in Übereinstimmung mit der Steuerung erzeugt, die aus dem Ausgangssignal des NOR-Glieds 246, dem Signal TEST W/ , resultiert.
  • In gleichartiger Weise ist bei Hinwendung zu Fig. 12 das NOR-Glied 246 für den Fall dargestellt, daß die Wortlänge 8 Bit beträgt. In diesem Fall ist der Speicher 70 wiederum als acht Spalten von Wörtern mit 8 Bit mit 16 Zeilen in jeder Spalte entworfen. Es sind nun alle drei Y- Adreß-Bits A4 bis A6 erforderlich, um acht unterscheidbare dekodierte Signale zu erzeugen. Das einzige Eingangssignal für das NOR-Glied 246 ist der Ausgang Q des Flip-Flops 240, das das Ende der Abfolge der Adreßgenerierung aller benutzter Bits A0 bis A6 signalisiert.
  • Während die Adressen durch den Adreß- und Datenzähler 216 während des Schreibzyklus und der Steuerung durch den Referenz- und Steuerzähler 222 erzeugt werden, werden die Daten (die die erzeugte Adresse sind) über den Dateninvertierer 204 (siehe Fig. 10f) durch den Datenmultiplexer 200 an den Dateneingangsbus 202 des Speichers 70 angelegt. Der Dateninvertierer 204 besteht aus einer Mehrzahl von EXKLU- SIV-ODER-Gliedern 252, von denen jedes einen Eingang, der mit einem entsprechenden der Signale A0 bis A6 vom Adreß- und Datenzähler 216 gekoppelt ist, und einen Eingang besitzt, der mit dem Ausgang des Flip-Flops 242 im Referenz- und Steuerzähler 222 gemäß Fig. 10e gekoppelt ist. Zurückkehrend auf Fig. 10e ist das Flip-Flop 242 das Flip- Flop der nächsten höheren Ordnung in dem Stufenzähler mit 10 Bit, das dem Flip-Flop 240 nachfolgt. Das Flip-Flop 242 steuert, wie zuvor festgestellt, die Dateninvertierung. Während des ersten Schreibzyklus ist das Ausgangssignal Q des Flip-Flops 242 wahr, wodurch die Daten, die an den Eingang des Dateninvertierers 204 angelegt werden, invertiert werden. Während eines zweiten Schreibzyklus ändert das Flip-Flop 242 den Zustand und es werden folglich die nicht invertierten Adressen als Daten in die zugegriffenen Speicherstellen eingeschrieben.
  • Jedoch werden, wie bei dem dargestellten Ausführungsbeispiel gezeigt ist, lediglich 7 Bit A0 bis A6 bei jedem Taktzyklus bereitgestellt. Diese 7 Bit werden mehrfach durch den Multiplexer 200 in die 32 Bit jeder Speicherstelle abgebildet bzw. aufgeteilt. Die Abbildung ist generell beliebig, jedoch werden bei dem dargestellten Ausführungsbeispiel die Werte der Signale A0 bis A6 auf die Speicherbitleitungen BO bis B6, die vorstehend in Verbindung mit Fig. 10f beschrieben wurden, eingegeben bzw. diesen zugeordnet. Die Bitleitung B7 wird mit dem Adreßsignal A6 gespeist. Zusätzlich werden die Signale A0 bis A6 dann jedem entsprechenden höheren Bit achter Ordnung zugeordnet. Beispielsweise wird A0 in die Bits B0, B8, B16 und B24 eingeschrieben, während A1 den Bits B1, B9, B17, B25 usw. zugeordnet wird. Das Bit A6 wird in die Speicherbits B6, B7, B14, B15, B22, B23, B30 und B31 eingeschrieben.
  • Danach wird bei dem dargestellten Ausführungsbeispiel nach dem Einschreiben des invertierten Werts der Daten in den Speicher 70 ein Lesezyklus durchgeführt, wenn das Flip- Flop 240 gemäß Fig. 10e seinen Zustand wechselt (den logischen Zustand 1 annimmt). Der Adreß- und Datenzähler 216 erzeugt erneut einen vollen Zyklus von Speicheradressen mit der Ausnahme, daß der Speicher während dieses Zyklus gelesen wird. Der Datenausgabebus 234 des Speichers 70 ist mit einer entsprechenden Anzahl von 32 EXKLUSIV-ODER-Glieder 254 gekoppelt, wie in Fig. 10g gezeigt ist, die in der Fehlererfassungslogik 220 gemäß Fig. 9 enthalten sind. Die anderen Eingangssignale der EXKLUSIV-ODER-Glieder 254 werden vom Ausgang des Dateninvertierers 204 in Übereinstimmung mit der Bit-Zuordnung, die vorstehend in Verbindung mit dem Multiplexer 200 beschrieben wurde, erhalten. Anders ausgedrückt, werden die Datenausgangsbits Q31, Q30, Q23, Q22, Q15, Q14, Q7 und Q6 jeweils paarweise in einem EXKLUSIV- ODER-Glied 254 einem Signal vom Invertierer 204 entsprechend A6 zugeordnet. Das Ausgangssignal des Glieds 254 ist mit einem großen NOR-Glied 256 gekoppelt. Daher besitzen die EXKLUSIV-ODER-Glieder 254 ein Ausgangssignal 0, solange ein gültiger Vergleich vorliegt. Solange alle EXKLUSIV- ODER-Glieder 254 ein Eingangssignal 0 an das NOR-Glied 256 anlegen, bleibt das Ausgangssignal des NOR-Glieds 256 wahr. Während eines Lesevorgangs wird, wenn ein Vergleich durchgeführt wird, das wahre Ausgangssignal des NOR-Glieds 256 durch das NAND-Glied 258, das nachstehend beschrieben wird, gekoppelt, durch dieses invertiert und als ein Eingangssignal für das NAND-Glied 260 (Fig. 10h) bereitgestellt, das gleichfalls nachstehend in größeren Einzelheiten beschrieben wird. Das NAND-Glied 260 wird während eines Lesezyklusses für einen Vergleich aktiviert und lädt den wahren Wert vom NOR-Glied 256 zu dem D-Eingang des Flip-Flops 262. Das Ausgangssignal des Flip-Flops 262, das dann, wenn das NOR-Glied 256 wahr ist, 0 ist, wird dann über ein NOR-Glied 264 geleitet, das durch ein Signal START, das bei niedrigem Pegel aktiv ist und als sein weiteres Eingangssignal dient, aktiviert ist. Schließlich wird der wahre Wert vom Ausgang des NOR-Glieds 264, das erneut dem wahren Ausgangssignal des NOR-Glieds 256 entspricht, in einem RS-Zwischenspeicher gesetzt bzw. zwischengespeichert, der allgemein mit dem Bezugszeichen 226 bezeichnet ist und dessen Ausgangssignal wiederum das Signal Bestanden/Fehler ist, das in diesem Fall falsch sein wird. Falls irgendeines der EXKLUSIV-ODER- Glieder 254 einen Fehler des Vergleichs während irgendeines Teils des Lesezykluses zeigt, wird das Ausgangssignal des großen NOR-Glieds 256 falsch sein und schließlich wäre Bestanden/Fehler wahr.
  • Die Glieder 258, 260 und 264, die vorstehend in Verbindung mit der Fehlererfassungslogik 220 beschrieben wurden, sind jeweils aktivierende Steuerglieder, die zur Sperrung eines Vergleichs oder Tests unter bestimmten Umständen dienen. Es sei beispielsweise der Zählerfehlerdetektor 218 betrachtet, der in Fig. 9 gezeigt und in Fig. 10f in einer detaillierteren schematischen Darstellung veranschaulicht ist. Der Zählerfehlerdetektor 218 besteht aus einer Mehrzahl von EXKLUSIV-ODER-Gliedern 268. Jedes EXKLUSIV-ODER- Glied 268 besitzt zwei Eingänge, von denen einer einer Adresse gegebener Ordnung vom Adreß- und Datenzähler 216 entspricht und ein weiterer der Adresse derselben Ordnung vom Referenz- und Steuerzähler 222 entspricht. Solange beide Zähler kontinuierlich übereinstimmen, bleiben die Ausgangssignale der EXKLUSIV-ODER-Glieder 268 0. Jedes dieser Ausgangssignale wird an ein NOR-Glied 270 angelegt. Solange daher gleichzeitig ein gültiger Zählstand in den Zählern 216 und 222 vorliegt, bleibt das Ausgangssignal des NOR-Glieds 270 wahr, andernfalls wird es falsch sein. Das Ausgangssignal des NOR-Glieds 270 wird als ein zweites Eingangssignal an das NAND-Glied 258 angelegt. Wie vorstehend beschrieben, ist das erste Eingangssignal des NAND-Glieds 258 das Ausgangssignal des NOR-Glieds 256, das einen gültigen Vergleich anzeigt. Falls die Zähler aus irgendwelchen Gründen nicht bei demselben Zählstand sind, wird der Vergleich durch ein falsches Ausgangssignal vom NOR-Glied 270 gekoppelt, das als ein Eingangssignal an das NAND-Glied 258 angelegt ist. Schließlich wird der wahre Wert, der am Ausgang des NAND-Glieds 258 erzeugt wird, als ein Fehlersignal am Ausgangsstift 208 auftreten.
  • Der Vergleich von Speicherinhalten mit den Daten (Adresse), die in den Speicher 70 hätten eingeschrieben werden sollen, tritt während eines Lesezyklusses auf und muß während eines Schreibzyklusses gesperrt werden. Bezugnehmend auf Fig. 10e erzeugt das NOR-Glied 272 ein solches Vergleichs-Sperrsignal. Die Eingangssignale des NOR-Glieds 272 in der Betriebsart mit 32 Bit sind ein Ausgangssignal vom Flip-Flop 240 und die Ausgangssignale von den Flip-Flops 238f und 238g, die jeweils den Adreßsignalen A5' und A6' entsprechen. Während eines Schreibzyklusses wird das des Flip-Flops 240 wahr sein. Folglich bleibt das Ausgangssignal des NOR-Glieds 272 falsch. Das Ausgangssignal des NOR-Glieds 272 wird an den zweiten Eingang des NAND- Glieds 260 angelegt, das in Verbindung mit den Fig. 10f bis 10h beschrieben wird. Daher wird das NAND-Glied 260 während eines Schreibzyklus gesperrt und irgendwelche Vergleiche, die getroffen werden, werden keine Erzeugung eines Fehlersignals am Ausgangsstift 208 hervorrufen. Während eines Lesezyklus ist das Ausgangssignal des Flip-Flops 240 falsch, wodurch ein Vergleich zugelassen und das Gate 260 aktiviert wird, solange gültige Adressen fortgesetzt erzeugt werden.
  • Da bei der Betriebsart mit einer Wortlänge von 32 Bit die Y-Adresse doppelt degeneriert bzw. rückgekoppelt ist, werden, wenn die Adresse AS und/oder A6 wahr ist, Daten nicht in den Speicher bei dem Schreibzyklus eingeschrieben und es finden keine Fehlervergleiche während des Lesezyklus statt. Bei der Betriebsart mit einer Wortlänge von 16 Bit, die einzeln degeneriert bzw. rückkoppelt, trifft dies lediglich dann zu, wenn A6 wahr ist. Bei einer Betriebsart mit einer Wortlänge von 8 Bit erfolgt ein Schreiben und ein Vergleich jeweils bei jeder Taktung des Lese- und Schreibbetriebs.
  • Die Fig. 11 und 12 zeigen erneut eine Eingangskonfiguration für das Glied 272 in der Betriebsart mit 16 bzw. 8 Bit. Bezugnehmend auf Fig. 11 ist beispielsweise einer der Eingänge des Glieds 272 geerdet und die anderen beiden Eingänge, die mit dem Ausgang des Flip-Flops 240 und dem Ausgang des Flip-Flops 238g entsprechend dem Signal A6' gekoppelt sind, bleiben gleich. In gleichartiger Weise sind bei Bezugnahme auf Fig. 12 zwei der Eingänge des NOR- Glieds 272 geerdet oder falsch bei einer Konfiguration für den Betrieb mit 8 Bit, während der verbleibende einzige Eingang mit dem Ausgang des Flip-Flops 240 gekoppelt ist.
  • Es wird nun erneut auf Fig. 10e Bezug genommen. Das 10. Flip-Flop 244 ist ein Steuer-Flip-Flop für den Testzyklus und ist das letzte Flip-Flop in dem Stufenzähler mit 10 Bit, der im Referenz- und Steuerzähler 222 enthalten ist. Gemäß dem Protokoll des Eigentestzyklus werden invertierte Daten zunächst in den Speicher unter der Steuerung durch das Flip-Flop 240 eingeschrieben und dann erneut gemäß der Bestimmung durch das Flip-Flop 240 ausgelesen. Danach werden in Übereinstimmung mit der Steuerung des dateninvertierenden Flip-Flops 242 nicht invertierte Daten aus gelesen und eingeschrieben, wie es durch die Steuerung durch das Flip-Flop 240 bestimmt wird. Nach Beendigung dieser Schreib- und Lesezyklen beendet das Eigentest-Steuer-Flip- Flop 244 dann seinen Zustand. Das Ausgangssignal des Flip-Flops 244 geht von einem falschen Ausgangssignal zu einem wahren Eingangssignal über, das als das Testende-Signal bezeichnet ist. Dieses Signal wird an die Oszillator- und Initialisierungsschaltung 224, die in Fig. 9 gezeigt ist und nun in Verbindung mit Fig. 10i in größeren Einzelheiten beschrieben wird, angelegt.
  • Es wird nun auf Fig. 10i Bezug genommen. Das Signal START wird an den Eingangsstift 206 angelegt. Das Signal START wird gleichzeitig an einen Eingang eines NOR-Glieds 274 und an den Eingang einer Reihe von Invertierern und Übertragungsgates angelegt, die gemeinsam mit dem Bezugszeichen 276 versehen sind. Folglich sind anfänglich die Eingangssignale für das NOR-Glied 274 Eins und Null, wodurch ein Ausgangssignal Null beibehalten wird, das durch den Invertierer 278 invertiert wird. Das Ausgangssignal des Invertierers 278 ist ein Löschsignal . Nach einer durch Einrichtungen 276 bestimmten Übertragungsverzögerung wird auch der zweite Eingang des NOR-Glieds 274 falsch und das Löschsignal CLR wird zu wahr. Folglich aktiviert ein Signal START ein Löschsignal mit einem Impuls, das in der gesamten Schaltung benutzt und insbesondere zur Initialisierung und Löschung der Zähler 216 und 222 eingesetzt wird. Das Signal wird auch zur Sperrung des Oszillators 284 benutzt. wird als Eingangssignal an ein NAND-Glied 280 angelegt. Wenn somit aktiv niedrigen Pegel besitzt (aktive low), ist das Glied 280 gesperrt und spricht nicht auf seine anderen Eingangssignal an, die das Testende-Signal, das am Ausgang des Flip-Flops 244 abgegriffen ist, und das Signal START sind.
  • Das Ausgangssignal des NAND-Glieds 280 wird an das NOR- Glied 282 angelegt. Der Oszillator 284 ist ein frei laufender Ringoszillator, der die Ausgangssignale CLK und erzeugt. Falls das Löschsignal nicht aktiv ist und das Signal START aktiv ist, ist das Ausgangssignal des NAND-Glieds 280 falsch. Eine Null am Eingang des NOR-Glieds 282 invertiert das Signal an dem anderen Eingang des NOR-Glieds 282, das durch eine Verzögerung aus einer geradzahligen Anzahl von Invertierern und Übertragungsgates fortschreitet, die gemeinsam mit dem Bezugszeichen 284 bezeichnet sind. Nach einer solchen Verzögerung wechselt das Eingangssignal 286 dann seinen Zustand und sein invertierter Wert wird erneut an dem Ausgang des NOR-Glieds 282 erzeugt. Folglich oszilliert das Glied 282 gemäß der Bestimmung durch die Zeitverzögerung der Einrichtungen 284 weiterhin. Der Eingang 286 ist auch mit einem Invertierer 288 und Invertierern 290 gekoppelt. Der Ausgang des Invertierers 288 ist mit dem Setz- Eingang eines RS-Zwischenspeichers 292 gekoppelt. Der Ausgang des letzten der beiden Invertierer 290 ist in gleichartiger Weise mit dem Rücksetz-Eingang des RS-Zwischenspeichers 292 gekoppelt. Der oszillierende Wert am Eingang 286 wird somit abschließend als oszillierende Setz- und Rücksetz-Eingaben für den RS-Zwischenspeicher 292 eingesetzt, der dann die Taktsignale CLK und als sein Ausgangssignal erzeugt.
  • Der gesamte Betrieb der Eigentestschaltung läßt sich nun in seiner Gesamtheit verstehen. Anfänglich wechselt ein Signal START auf aktiv niedrig am Eingang 206. Anfänglich ist das Ausgangssignal des Invertierers 278, das Lösch- (CLR)-Signal inaktiv hoch. Die Ankunft des Signals START treibt es momentan auf niedrigen Pegel mit einem Einzelimpuls. Während niedrig ist, ist das NAND-Glied 280 gesperrt und das Signal START an seinem Eingang bewirkt kein Oszillieren des Ringoszillators 284. Nachdem das Löschsignal auf inaktiv wechselt, wird das Signal START dann durch das Glied 280 geleitet und der Ringoszillator 284 beginnt zu arbeiten. Sobald die Erzeugung der Taktsignale CLK und durch den Ringoszillator 284 und insbesondere durch den Zwischenspeicher 292 beginnt, wird eine Adresse durch den Adreß- und Datenzähler 216 und den Referenz- und Steuerzähler 222 erzeugt. Diese beiden Adressen werden im Zählerfehlerdetektor 218 verglichen, der durch die EXKLUSIV-ODER- Glieder 286 gebildet ist, deren Ausgangssignale über das NOR-Glied 270 an das NAND-Glied 258 angelegt werden. Schließlich würde dann ein Fehlersignal am Ausgangsstift 208 erzeugt werden. Bei dem ersten Auftreten irgendeines Fehlersignals speichert der RS-Zwischenspeicher 266 in Fig. 10h den Fehler zwischen und der verbleibende Abschnitt des Selbsttestzyklus setzt sich zum Abschluß fort. Falls die Zähleradressen identisch sind, bewirkt der Referenz- und Steuerzähler 222 die Einschreibung der durch den Adreß- und Datenzähler 216 erzeugten Adresse in den Speicher 70 nach der Invertierung durch den Dateninvertierer 204. Die Adresse wird in den Speicher 70 als Wort mit 32, 16 oder 8 Bit in Übereinstimmung mit der metallisierten Option oder der für die Gestaltung gewählten programmierbaren Wortlänge eingeschrieben. Bei dem dargestellten Ausführungsbeispiel wurde wiederum ein Wortlänge von 32 Bit angenommen. Die Abbildung bzw. Aufteilung oder Einschreibung der Adresse mit 6 Bit von dem Adressen- und Datenzähler 216 wird in jedem Fall durch den Datenmultiplexer 200 arrangiert. Das Signal START 206 veranlaßt auch den Adreßmultiplexer 210 und Datenmultiplexer 200 zur Abkopplung des Speichers 70 von dein normalen Dateneingabe- und Ausgabebus und den Zugriff hierzu lediglich durch die interne Eigentest-Steuerschaltung. Nach dem Einschreiben der invertierten Adresse in die Adreßstellen des Speichers 70 als Daten veranlaßt der Referenz- und Steuerzähler 222 die Durchführung eines Lesezyklus, bei dem jede der Speicherstellen erneut adressiert und die darin eingeschriebenen Daten mit der invertierten Adresse in der Fehlererfassungslogik 220 verglichen werden. In dem Fall, daß irgendein Fehler auftritt, wird die Fehleranzeige in dem RS-Zwischenspeicher 266 zwischengespeichert und an dem Ausgangsstift 208 bereitgestellt. Nach dem Abschluß eines ersten Lese- und Schreibzyklus veranlaßt dann der Referenz- und Steuerzähler 222 die Durchführung eines zweiten Schreibzyklus, bei dem die nicht invertierte Adresse in den Speicher 70 eingeschrieben wird, wie sie durch den dritten Durchgang durch den Adreß- und Datenzähler 216 erzeugt wurde. Der Referenz- und Steuerzähler 222 veranlaßt erneut die Durchführung eines zweiten Lesezyklus und es wird eine vierte Reihe von Adreßsignalen durch den Adreß- und Datenzähler 216 erzeugt. Es wird auf die nicht invertierten Daten in dem Speicher 70 zugegriffen und diese werden wiederum durch die Fehlererfassungslogik 220 verglichen. Nach diesen beiden Schreib- und Lesezyklen erzeugt der Referenz- und Steuerzähler 222 ein Testende-Signal, das an das NAND-Glied 280 angelegt wird und hierdurch den Ringoszillator 284 inaktiviert. An diesem Punkt ist der Eigentestzyklus vervollständigt und beendet.

Claims (9)

1. Speicher mit programmierbarer Wortlänge,
mit einer adressierbaren Speicheranordnung (70),
einer Mehrzahl von Treibern (76), die mit der adressierbaren Speicheranordnung für die Kommunikation mit der Speicheranordnung gekoppelt sind,
einem Datenbus (182, 192), der eine Mehrzahl von Datenbusleitungen enthält, und
einem Adreßdekodierer (74), der zwischen Adreßeingänge (A4, A5, A6) und die Mehrzahl von Treibern (76) geschaltet ist, dadurch gekennzeichnet, daß die Mehrzahl von Datenbusleitungen mit der Mehrzahl von Datentreibern (76) in Übereinstimmung mit einer vorbestimmten Aufbringung einer Metallisierung mit einem einzelnen Funktionslayout gekoppelt sind, das im folgenden als eine vorbestimmte Metallmaskenkartierung bezeichnet ist, wobei der Datenbus so konfiguriert ist, daß er einer ausgewählten Wortlänge entspricht, die eine Bitlänge bzw. Bitanzahl besitzt, die gleich der Anzahl von Datenbusleitungen ist, wobei die vorbestimmte Metallmaskenkartierung die Mehrzahl von Treibern (76) auf die Datenbusleitungen aufteilt bzw. diesen zuordnet, so daß die adressierbare Speicheranordnung (70) durch die vorbestimmte Metallmaskenkartierung der Mehrzahl von Treibern (76) den Datenbusleitungen für die Kommunikation mit der Mehrzahl von Treibern (76) mit der Speicheranordnung in Übereinstimmung mit der ausgewählten Wortlänge zugeordnet wird, wobei der Adreßdekodierer (74) Treiber-Steuergates (152) und Invertierer (140 bis 150) enthält, die mit den Eingängen der Treiber- Steuergates (152) verbunden sind, wobei die Eingänge von vorbestimmten aus den Invertierern (146, 148, 150) mit Hilfe der vorbestimmten Metallmaskenkartierung entweder mit den Ausgängen von Invertierern, die die Adreßeingänge empfangen, oder mit einem vorbestimmten Potential verbunden sind, so daß die Anzahl von Treibern, auf die durch ein gegebenes Adreßsignal zugegriffen wird, an die ausgewählte Wortlänge angepaßt ist.
2. Speicher nach Anspruch 1, bei dem die adressierbare Speicheranordnung (70) ein Direktzugriffsspeicher ist und der Datenbus einen Eingangsdatenbus und einen Ausgangsdatenbus enthält, wobei der Eingangsdatenbus mit der Mehrzahl von Treibern (76) für die Koininunikation mit der Speicheranordnung in Übereinstimmung mit der vorbestimmten Metallmaskenkartierung gekoppelt ist und der Ausgangsdatenbus mit der Mehrzahl von Treibern (76) für die Kommunikation von der Speicheranordnung (70) in Übereinstimmung mit der vorbestimmten Metallmaskenkartierung gekoppelt ist.
3. Speicher nach Anspruch 2, bei dem der Direktzugriffsspeicher (70) eine Anordnung von Speicherzellen (78) ist, die eine Mehrzahl von Zeilen und eine Mehrzahl von Spalten der Speicherzellen enthält, wobei die Anzahl der Spalten der längsten Wortlänge entspricht, die durch die Speicheranordnung adressierbar ist;
und der weiterhin enthält:
eine erste Einrichtung (72) zum Auswählen einer Zeile aus der Speicheranordnung und zum Kommunizieren mit derselben, wobei die erste Einrichtung mit der Speicheranordnung gekoppelt ist;
wodurch der Speicher wahlweise zur Kommunizierung bzw. Weiterleitung eines Binärworts mit einer ausgewählten Wortlänge, die die maximale Wortlänge der Speicheranordnung in Übereinstimmung mit der vorbestimmten Metallmaskenkartierung nicht überschreitet, konfiguriert werden kann.
4. Speicher nach Anspruch 3, bei dem die Mehrzahl von Treibern (76) eine entsprechende Mehrzahl von Eingängen (182) für die Kopplung mit dem Datenbus und eine entsprechende Mehrzahl von Ausgängen (192) für die Kopplung mit dem Datenbus besitzt, und wobei die vorbestimmte Metallmaskenkartierung die Mehrzahl von Eingängen mit auf dem Datenbus ankommenden Daten koppelt und die Mehrzahl von Ausgängen mit von der Speicheranordnung abgehenden Daten koppelt, die durch die Mehrzahl von Treibern zu dem Datenbus übertragen werden.
5. Speicher nach Anspruch 3 oder 4, bei dem die Anzahl der Mehrzahl von Treibern (76) gleich einer Potenz von 2 mit einer ersten Größe ist und bei dem der Datenbus für die Übertragung eines Binärworts ausgelegt und konfiguriert ist, das eine Wortlänge besitzt, die gleich einer Potenz von 2 mit einer zweiten Größe, die kleiner als oder gleich groß wie die erste Größe ist, wobei die vorbestimmte Metallmaskenkartierung eine Mehrzahl von Treibern parallel koppelt, wobei eine Redundanz in der Anzahl der derart gekoppelten, parallel gekoppelten Treiber gleich der Potenz von 2, angehoben auf eine dritte Größe, ist, die gleich dem numerischen Unterschied zwischen der ersten und der zweiten Größe ist.
6. Speicher nach Anspruch 5, bei dem die Speicheranordnung (70) zumindest 64 adressierbare Spalten enthält, die mit einer entsprechenden Vielzahl von Treibern (76) gekoppelt sind, wobei der Datenbus eine Mehrzahl von Datenleitungen enthält, deren Anzahl einem Faktor bzw. Teiler von 64 entspricht, wobei die vorbestimmte Metallmaskenkartierung die Vielzahl von Treibern parallel mit den Datenleitungen mit einer Redundanz koppelt, die gleich der binären Ordnung bzw. Größe des Größenunterschieds zwischen der Wortlänge des Datenbus und 64 ist.
7. Speicher nach einem der vorhergehenden Ansprüche, bei dem jeder der Mehrzahl von Treibern (76) von dem Datenbus zu der Speicheranordnung über eine Schaltung mit drei Zuständen (Tristate-Schaltung) gekoppelt ist.
8. Speicher nach einem der vorhergehenden Ansprüche, bei dem die Anzahl der Mehrzahl von Datenbusleitungen ein Faktor bzw. ein Teiler der Anzahl der Mehrzahl von Treibern (76) ist, wobei die Mehrzahl von Treibern mit der Mehrzahl von Datenbusleitungen mit einer Redundanz gekoppelt ist, die der Ordnung bzw. Größe des Faktors bzw. Teilers entspricht.
9. CMOS-Gate Array-Chip mit:
einer Mehrzahl von Kernzellen, wobei jede Kernzelle jeweils zumindest eine Einrichtung des P-Typs und eine Einrichtung des N-Typs enthält, die in einer vorbestimmten Konfiguration angeordnet sind, wobei die Mehrzahl von Kernzellen in dem CMOS-Chip in zumindest zwei Gruppen angeordnet ist, wobei die Gruppen in dem Chip derart angeordnet sind, daß die interne Konfiguration der Kernzellen innerhalb einer Gruppe bezüglich einer Spiegelsymmetrieachse, die durch Kernzellen hindurchgeht, eine Spiegelsymmetrie mit Bezug zu der internen Konfiguration der Kernzellen innerhalb einer anderen Gruppe besitzt; und einer Speicheranordnung (70), die auf dem Chip ausgebildet und mit den Kernzellen gekoppelt ist;
dadurch gekennzeichnet, daß die Speicheranordnung in Übereinstimmung mit einem der Ansprüche 1 bis 8 steht.
DE3486312T 1984-07-18 1984-11-14 Speicher mit programmierbarer Wortlänge in einem Gatterfeld mit bidirektionaler Symmetrie. Expired - Fee Related DE3486312T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/632,099 US4724531A (en) 1984-07-18 1984-07-18 Gate array with bidirectional symmetry

Publications (2)

Publication Number Publication Date
DE3486312D1 DE3486312D1 (de) 1994-07-07
DE3486312T2 true DE3486312T2 (de) 1994-09-22

Family

ID=24534074

Family Applications (3)

Application Number Title Priority Date Filing Date
DE3486320T Expired - Fee Related DE3486320T2 (de) 1984-07-18 1984-11-14 Schaltung und Methode zur Selbstprüfung eines Speichers in einem Gatterfeld mit bidirektionaler Symmetrie.
DE8484904302T Expired - Fee Related DE3483971D1 (de) 1984-07-18 1984-11-14 Gate-array, das eine zweirichtungssymmetrie besitzt.
DE3486312T Expired - Fee Related DE3486312T2 (de) 1984-07-18 1984-11-14 Speicher mit programmierbarer Wortlänge in einem Gatterfeld mit bidirektionaler Symmetrie.

Family Applications Before (2)

Application Number Title Priority Date Filing Date
DE3486320T Expired - Fee Related DE3486320T2 (de) 1984-07-18 1984-11-14 Schaltung und Methode zur Selbstprüfung eines Speichers in einem Gatterfeld mit bidirektionaler Symmetrie.
DE8484904302T Expired - Fee Related DE3483971D1 (de) 1984-07-18 1984-11-14 Gate-array, das eine zweirichtungssymmetrie besitzt.

Country Status (14)

Country Link
US (1) US4724531A (de)
EP (1) EP0188431B2 (de)
JP (2) JPS61502789A (de)
KR (1) KR900000182B1 (de)
AU (2) AU560082B2 (de)
CA (1) CA1242276A (de)
DE (3) DE3486320T2 (de)
DK (1) DK324885A (de)
ES (1) ES8704039A1 (de)
IL (1) IL75514A (de)
IN (1) IN166001B (de)
IT (1) IT1182069B (de)
NO (1) NO168558C (de)
WO (1) WO1986001036A1 (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61169941A (ja) * 1985-01-22 1986-07-31 Sony Corp 記憶装置
JPS61227289A (ja) * 1985-03-30 1986-10-09 Fujitsu Ltd 半導体記憶装置
KR910001534B1 (ko) * 1986-09-08 1991-03-15 가부시키가이샤 도시바 반도체기억장치
US4922441A (en) * 1987-01-19 1990-05-01 Ricoh Company, Ltd. Gate array device having a memory cell/interconnection region
DE3718182A1 (de) * 1987-05-29 1988-12-15 Siemens Ag Verfahren und anordnung zur ausfuehrung eines selbsttestes eines wortweise organisierten rams
US4849904A (en) * 1987-06-19 1989-07-18 International Business Machines Corporation Macro structural arrangement and method for generating macros for VLSI semiconductor circuit devices
JP2659095B2 (ja) * 1987-06-30 1997-09-30 富士通株式会社 ゲートアレイ及びメモリを有する半導体集積回路装置
US5062080A (en) * 1987-08-03 1991-10-29 Motorola, Inc. Method and apparatus for enabling a memory
US5230067A (en) * 1988-05-11 1993-07-20 Digital Equipment Corporation Bus control circuit for latching and maintaining data independently of timing event on the bus until new data is driven onto
NL194182C (nl) * 1988-07-23 2001-08-03 Samsung Electronics Co Ltd Randloze moederschijf-halfgeleiderinrichting.
US5027319A (en) * 1988-09-02 1991-06-25 Motorola, Inc. Gate array macro cell
US5146428A (en) * 1989-02-07 1992-09-08 Hitachi, Ltd. Single chip gate array
US5212652A (en) * 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
US5644496A (en) * 1989-08-15 1997-07-01 Advanced Micro Devices, Inc. Programmable logic device with internal time-constant multiplexing of signals from external interconnect buses
US5255203A (en) * 1989-08-15 1993-10-19 Advanced Micro Devices, Inc. Interconnect structure for programmable logic device
US5251228A (en) * 1989-12-05 1993-10-05 Vlsi Technology, Inc. Reliability qualification vehicle for application specific integrated circuits
US5210860A (en) * 1990-07-20 1993-05-11 Compaq Computer Corporation Intelligent disk array controller
US5270964A (en) * 1992-05-19 1993-12-14 Sun Microsystems, Inc. Single in-line memory module
DE4227281C1 (de) * 1992-08-18 1994-02-10 Siemens Ag Anordnung zum Testen eines Speichers nach dem Selbsttestprinzip
US5617534A (en) * 1994-02-16 1997-04-01 Intel Corporation Interface protocol for testing of a cache memory
US5502621A (en) * 1994-03-31 1996-03-26 Hewlett-Packard Company Mirrored pin assignment for two sided multi-chip layout
JPH09107048A (ja) 1995-03-30 1997-04-22 Mitsubishi Electric Corp 半導体パッケージ
US5689466A (en) * 1995-04-07 1997-11-18 National Semiconductor Corporation Built in self test (BIST) for multiple RAMs
US6041426A (en) * 1995-04-07 2000-03-21 National Semiconductor Corporation Built in self test BIST for RAMS using a Johnson counter as a source of data
US5552721A (en) * 1995-06-05 1996-09-03 International Business Machines Corporation Method and system for enhanced drive in programmmable gate arrays
US5767565A (en) * 1996-07-22 1998-06-16 Alliance Semiconductor Corporation Semiconductor devices having cooperative mode option at assembly stage and method thereof
US5805520A (en) * 1997-04-25 1998-09-08 Hewlett-Packard Company Integrated circuit address reconfigurability
JP3797810B2 (ja) 1998-11-30 2006-07-19 松下電器産業株式会社 半導体装置
JP2002083001A (ja) * 2000-09-06 2002-03-22 Hitachi Ltd 論理回路の設計方法及びそれに使用するセルライブラリ
US6470475B2 (en) * 2000-11-23 2002-10-22 Stmicroelectronics Ltd. Synthesizable synchronous static RAM
JP2003099414A (ja) * 2001-09-21 2003-04-04 Mitsubishi Electric Corp 半導体集積回路
KR100368021B1 (ko) * 2001-11-22 2003-01-15 주식회사 메리디안 맥상분석장치
US8176370B2 (en) * 2003-09-12 2012-05-08 Broadcom Corporation Method and system for direct access memory testing of an integrated circuit
US9003168B1 (en) * 2005-02-17 2015-04-07 Hewlett-Packard Development Company, L. P. Control system for resource selection between or among conjoined-cores
US7731558B2 (en) 2007-08-15 2010-06-08 Jon Capriola Illuminated toy building structures
KR101036233B1 (ko) * 2009-09-22 2011-05-20 광운대학교 산학협력단 이차 미분 맥파의 특징점 분포를 이용한 특징점 검출 방법 및 장치
US9972395B2 (en) * 2015-10-05 2018-05-15 Silicon Storage Technology, Inc. Row and column decoders comprising fully depleted silicon-on-insulator transistors for use in flash memory systems
US10719477B1 (en) * 2019-06-20 2020-07-21 Semiconductor Components Industries, Llc Methods and system for an integrated circuit

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2123040B1 (de) * 1970-05-29 1974-05-03 Cii
US3686640A (en) * 1970-06-25 1972-08-22 Cogar Corp Variable organization memory system
GB1440512A (en) * 1973-04-30 1976-06-23 Rca Corp Universal array using complementary transistors
US3999214A (en) * 1974-06-26 1976-12-21 Ibm Corporation Wireable planar integrated circuit chip structure
US4099253A (en) * 1976-09-13 1978-07-04 Dynage, Incorporated Random access memory with bit or byte addressing capability
DE2846890A1 (de) * 1978-10-27 1980-05-08 Siemens Ag Verfahren zur ueberpruefung von speichern mit wahlfreiem zugriff
DE2948159C2 (de) * 1979-11-29 1983-10-27 Siemens AG, 1000 Berlin und 8000 München Integrierter Speicherbaustein mit wählbaren Betriebsfunktionen
US4431928A (en) * 1981-06-22 1984-02-14 Hewlett-Packard Company Symmetrical programmable logic array
US4556947A (en) * 1982-08-23 1985-12-03 Motorola, Inc. Bi-directional switching circuit

Also Published As

Publication number Publication date
EP0188431B1 (de) 1991-01-16
DK324885A (da) 1986-01-19
WO1986001036A1 (en) 1986-02-13
JPS61502789A (ja) 1986-11-27
EP0188431B2 (de) 1994-08-17
NO168558B (no) 1991-11-25
CA1242276A (en) 1988-09-20
DE3483971D1 (de) 1991-02-21
AU582939B2 (en) 1989-04-13
IN166001B (de) 1990-02-24
DK324885D0 (da) 1985-07-17
ES8704039A1 (es) 1987-03-01
DE3486312D1 (de) 1994-07-07
ES545316A0 (es) 1987-03-01
KR860001487A (ko) 1986-02-26
IT1182069B (it) 1987-09-30
DE3486320T2 (de) 1994-10-06
IL75514A (en) 1990-11-05
AU560082B2 (en) 1987-03-26
NO852621L (no) 1986-01-20
US4724531A (en) 1988-02-09
KR900000182B1 (ko) 1990-01-23
AU4339585A (en) 1986-01-23
DE3486320D1 (de) 1994-07-21
IT8548362A0 (it) 1985-07-17
AU6769587A (en) 1987-04-30
EP0188431A1 (de) 1986-07-30
IL75514A0 (en) 1985-10-31
JPH07175719A (ja) 1995-07-14
NO168558C (no) 1992-03-04

Similar Documents

Publication Publication Date Title
DE3486312T2 (de) Speicher mit programmierbarer Wortlänge in einem Gatterfeld mit bidirektionaler Symmetrie.
DE69031525T2 (de) Konfigurierbare Logikanordnung und zugehöriges Verfahren
DE69525210T2 (de) Programmierbare logikvorrichtung mit regionaler und universeller signalweglenkung
DE69127036T2 (de) Halbleiter mit verbessertem Prüfmodus
DE69802927T2 (de) Redundanzschaltung für programmierbare logikanordnung mit verschachtelten eingangsschaltkreisen
DE69028395T2 (de) Konfigurierbare zellenanordnung
DE4328605C2 (de) Halbleiterspeichereinrichtung
DE3751002T2 (de) Halbleiterspeicher.
DE3486152T2 (de) Funktionsmässig redundante logische netzwerkarchitekturen.
DE69025795T2 (de) Ultrahöchstintegrierte Schaltungsbauweise mit linearen Verbindungen
DE68923541T2 (de) Programmierbare Logikeinrichtung mit einer Vielzahl von programmierbaren Logikarrays, die sich in mosaikförmiger Anordnung zusammen mit einer Vielzahl von vermischt angeordneten Interface-Blöcken befinden.
DE69620022T2 (de) Laser-sicherungsbankstruktur
DE102011053359B4 (de) Latch-basierte Speichervorrichtung und Verfahren zum Testen derselben
DE69018563T2 (de) Speicherselbsttest.
DE3586397T2 (de) Halbleiterspeicher mit testmustergenerator.
DE4107889A1 (de) Halbleiterspeichereinrichtung mit mehreren ports
DE19639972B4 (de) Hochgeschwindigkeitstestschaltkreis für eine Halbleiterspeichervorrichtung
DE68920908T2 (de) Programmierbare Logik-Vorrichtung.
DE69129492T2 (de) Halbleiterspeicher
DE69026899T2 (de) Integriertes Halbleiterschaltungsgerät mit Prüfschaltung
DE4316283A1 (de) Halbleiterspeichervorrichtung
EP1205938B1 (de) Integrierte Schaltung mit Testbetriebsart und Verfahren zum Testen einer Vielzahl solcher integrierter Schaltungen
DE3855550T2 (de) Redundanz für Schaltungskomplex
DE69228522T2 (de) Lese-Schreibspeicher mit Prüfmodusdatenvergleich
DE4243611B4 (de) Testmodusschaltung für eine Speichervorrichtung

Legal Events

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