DE3884282T2 - Makro-Struktur und Verfahren zum Herstellen von Makros für VLSI-Halbleiterschaltungen. - Google Patents

Makro-Struktur und Verfahren zum Herstellen von Makros für VLSI-Halbleiterschaltungen.

Info

Publication number
DE3884282T2
DE3884282T2 DE88107077T DE3884282T DE3884282T2 DE 3884282 T2 DE3884282 T2 DE 3884282T2 DE 88107077 T DE88107077 T DE 88107077T DE 3884282 T DE3884282 T DE 3884282T DE 3884282 T2 DE3884282 T2 DE 3884282T2
Authority
DE
Germany
Prior art keywords
cell
cells
generating
column
word
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
DE88107077T
Other languages
English (en)
Other versions
DE3884282D1 (de
Inventor
Anthony Gus Aipperspach
Douglas Michael Dewanz
Joseph Michael Fitzgerald
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE3884282D1 publication Critical patent/DE3884282D1/de
Publication of DE3884282T2 publication Critical patent/DE3884282T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Static Random-Access Memory (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf sehr hochintegrierte (VLSI) Halbleiterschaltungsbauelemente und insbesondere auf eine Makro-Struktur und ein Verfahren zum Herstellen von Makros für VLSI-Halbleiterschaltungen.
  • VLSI-Halbleiterschaltungsbauelemente definieren typischerweise komplexe Systeme, die eine äußerst hohe Anzahl von Schaltkreisen und Mehrfachfunktions-Makros beinhalten. Der Ausdruck Schaltkreis bezeichnet eine Entität, die aus einer oder zwei Zellen oder Gebieten aus Silizium besteht, die Schaltkreiskomponenten enthalten. Der Ausdruck Makro bezeichnet eine Entität, die aus vielen, für eine spezielle Funktion, wie einen Speicher oder eine programmierbare logische Matrix (PLA) , angeordneten Zellen besteht.
  • Aufgrund der Komplexität und der äußerst hohen Anzahl von Schaltkreiskomponenten oder Zellen, die auf einein Halbleitersubstrat in einem VLSI-Bauelement oder -Chip enthalten sein muß, ist eine kundenspezifische Entwurfsmethode nicht durchführbar. Die auf dem Fachgebiet bekannte, kundenspezifische Entwurfsmethode kann als eine Technik definiert werden, bei der durch individuelles Entwerfen der Komponentenpositionen und Metallisierungsverbindungen für jeden Schaltkreis maximaler Nutzen aus der Fläche des Halbleitersubstrats oder Chips für die auf einem bestimmten Substrat oder Chip implementierten Schaltkreise erzielt werden soll. Bei der kundenspezifischen Entwurfsmethode unterliegt der Chipdesigner keiner Beschränkung und hat im wesentlichen völlige Freiheit, den Entwurf so zu optimieren, daß Dichte- und Leistungserfordernissen der Anwendung entsprochen wird. Diese Vorteile werden jedoch von den inhärenten Mängeln der erforderlichen Entwurfszeit und den Entwurfskosten überwogen.
  • Mehrere verschiedene Entwurfsmethoden wurden zur Reduzierung der Mängel der kundenspezifischen Entwurfsmethode auf diesem Gebiet vorgeschlagen und verwendet. Eine erfolgreiche Methode ist eine in Donze et al, "Masterimage Approach to VLSI Design", IEEE Computer publication, Dezember 1983, Seiten 18 bis 25 und des weiteren in Donze et al, "PHILO - A VLSI DESIGN SYSTEM", IEEE-ACM Nineteenth Annual Automation Design Proceedings, 1982 beschriebene Mutterbildmethode. Das in diesen Veröffentlichungen beschriebene PLA-Makro-Erzeugungsprogramm versetzt den Chipdesigner in die Lage, durch Variieren der horizontalen Richtung bei fester vertikaler Richtung verschiedene große PLA-Makros zu erzeugen. Das PLA-Makro mit der ausgewählten Größe wird vor dem physischen Entwurf des Chips entworfen und als eine Entität in einer Entwurfsbibliothek abgespeichert.
  • Das Mutterbild-Rechnerentwurfssystem verwendet die Bibliothek mit vorentworfenen Schaltkreisen und Funktions-Makros. Ein Gesamtchipbild für ein spezielles VLSI-Bauelement wird unter Verwendung ausgewählter Schaltkreise und Makros aus der Bibliothek erzeugt, die auf dem Chipbild angeordnet und dann automatisch verdrahtet werden, um eine für die Herstellung der Masken für das gewünschte System notwendige physische Darstellung zu erzeugen. Automatische Anordnungs- und Verdrahtungsprogramme bestehen aus Anordnungs-, globalen Verdrahtungs- und detaillierten Verdrahtungs-Unterprogrammen. Ein Verzögerungszeit-Berechnungs/Optimierungs-Programm wird in Verbindung mit diesen Unterprogrammen zum Optimieren der Leistungscharakteristika für das gewünschte System verwendet.
  • Statische Speicher mit wahlfreiem Zugriff (RAMs) finden in VLSI- Halbleiterbauelementen breite Verwendung. Gegenwärtige Mutterbild-Rechnerentwurfssysteme erzeugen Halbleiterchipentwürfe unter Verwendung von verfügbaren RAM-Makro-Versionen mit festen Abmessungen. Viele der vorentworfenen RAM-Makros wurden durch kundenspezifische Entwurfstechnik mit hoher Schaltkreisdichte entworfen, um die Halbleiterfläche zu minimieren und hohe Leistungscharakteristika für die Speicher zu liefern. Obwohl sie individuelle RAM-Makros fester Abmessung mit den Vorteilen hoher Integrationsdichte und hoher Geschwindigkeit bereitstellt, erleichtert diese kundenspezifische RAM-Makro-Entwurfsmethode die Erzeugung oder den Entwurf eines individuellen RAM-Makros mit einer ausgewählten Speicherkapazität nicht. Im Gegenteil, das Erzeugen eines Entwurfs oder einer physischen Darstellung für ein spezielles RAM-Makro mit einer speziellen gewünschten Speicherkapazität ist normalerweise eine sehr zeitraubende und schwierige Aufgabe. Demgemäß wählen Chipdesigner typischerweise eines der verfügbaren RAM-Makros aus der Bibliothek aus, das für seine spezielle Anwendung eine ausreichende Größe aufweist.
  • Der Artikel "Automatic Ram Macro Design System" von P.S. Balasubramanian et al, IBM Technical Disclosure Bulletin, Vol. 24, Nr. 2, Juli 1981, Seiten 950 bis 951 beschreibt ein Verfahren zum Erzeugen eines Speichers mit wahlfreiem Zugriff (RAM), bei dem die berechneten Abmessungen des RAMs mit vom Benutzer eingegebenen, kritischen Abmessungen verglichen werden. Wenn eine berechnete Abmessung größer als die vom Benutzer eingegebene Abmessung ist, wird die nicht-kritische Abmessung modifiziert.
  • Der Artikel "The algorithmic generation of ROM Macrocells" von B.W. Jinks et al, International Symposium on VLSI Technology, Systems and Applications, Proceedings of Technical Papers, 8. bis 10. Mai 1985, Seiten 190 bis 193 beschreibt einen Algorithmus für den Entwurf von ROM-Mikrozellen, wobei der Algorithmus lediglich Informationen über die ROM-Datentabelle und die Anzahl von x Adreßbits, y Adreßbits und die Wortlänge benötigt. Das ROM mit minimaler Fläche wird für einen speziellen Wert der Anzahl von x Adreßbits erhalten.
  • Die Hauptaufgabe der Erfindung besteht in der Bereitstellung eines Verfahrens nach Anspruch 1.
  • Eine weitere Aufgabe der Erfindung besteht in der Bereitstellung einer Makro-Struktur, die effektiv und effizient für eine ausgewählte Speicherkapazität mit einer ausgewählten Anzahl von Worten und einer ausgewählten Anzahl von Bits pro Wort konfiguriert werden kann. Weitere wesentliche Ziele dieser Erfindung sind folgende: Bereitstellung einer verbesserten Makro-Struktur für ein integriertes Halbleiterschaltungsbauelement mit einem Halbleitersubstrat und zwei Metallisierungsebenen zur Definition von Leiterbahnen; Bereitstellung einer Makro-Struktur, um eine ausgewählte Konfiguration eines Funktionsfeldes zu ermöglichen, welche die Halbleiterfläche effektiv zur Optimierung sowohl der Dichte als auch der Leistung ausnutzt; Bereitstellung einer Makro-Anordnung, die eine Optimierung der Leistung durch selektive Nutzung der Halbleiterfläche erlaubt; Bereitstellung einer Makro-Konfiguration, deren Nutzung in einer Mutterbild-Zellenmatrix auf dem Halbleiterchip erleichtert ist, wobei die Makro- Zellen sich in der Größe von den Mutterbildzellen unterscheiden; Bereitstellung einer verbesserten Makro-Anordnung, um den Entwurfsvorgang für ein Makro mit einer ausgewählten Speicherkapazität zu vereinfachen; und Bereitstellung einer Makro-Anordnung, welche die Verwendung eines Mutterbild-Rechnerentwurfssystems zum Erzeugen ihrer physischen Entwurfsdarstellung erleichtert.
  • Kurz gesagt, werden die obigen und weitere Ziele und Vorteile der vorliegenden Erfindung mit einem Makro-Erzeugungsverfahren und einer Makro-Struktur für ein VLSI-Halbleiterschaltungsbauelement erreicht. Ein Funktions-Makro ist durch eine Mehrzahl von in einem Halbleitersubstrat gebildeten Schaltungsblöcken definiert. Die Schaltungsblöcke beinhalten wenigstens einen Steuerblock und wenigstens einen Speicherblock. Jeder Steuerblock und jeder Speicherblock umfaßt eine Mehrzahl vordefinierter Bereiche. Der Steuerblock beinhaltet einen Steuerbereich, einen Bitdecoderbereich, einen Wortdecoderbereich und einen Wortselektorbereich. Jeder Speicherblock beinhaltet einen Speicherbereich, einen Bitselektorbereich und einen Lese-, Zwischenspeicher- und Treiberbereich. Einer aus einer Mehrzahl abgespeicherter, vorgegebener Bitdecoder ist selektiv für den Bitdecoderbereich unter Berücksichtigung einer berechneten minimalen Zellenfläche für die resultierende Makro-Konfiguration vorgesehen. Alternativ wird ein festgestellter Bitdecoder ausgewählt, der eine optimale hohe Geschwindigkeit oder gewünschte Leistung für die resultierende Makro-Konfiguration bereitstellt. Jeder Bitdecoder weist eine einheitliche Eingangs- und Ausgangs-Verbindungskonfiguration auf. Eine erforderliche Anzahl von Speicherblöcken wird, angepaßt an den ausgewählten Bitdecoder, für die ausgewählte Anzahl von Bits pro Wort bestimmt. Eine erforderliche Anzahl von Wortselektoren und Speichermatrixunterbereichen wird, angepaßt an den ausgewählten Bitdecoder, für die ausgewählte Anzahl von Worten festgestellt.
  • Die vorliegende Erfindung zusammen mit den obigen und weiteren Zielen und Vorteilen wird am besten aus der folgenden detaillierten Beschreibung der bevorzugten Ausführungsform der Erfindung ersichtlich werden, in der auf die beigefügten Zeichnungen Bezug genommen wird, wobei:
  • Fig. 1 eine vergrößerte Draufsicht auf einen Halbleiterchip mit Mehrfach-Makros ist, die gemäß der vorliegenden Erfindung angeordnet sind;
  • Fig. 2 eine Blockdiagrammansicht einer Speicheranordnung mit wahlfreiem Zugriff und Einfachzugriffsmöglichkeit gemäß der vorliegenden Erfindung ist;
  • Fig. 3 eine zu Fig. 2 ähnliche Ansicht für eine Speicheranordnung mit wahlfreiem Zugriff und Doppelzugriffsmöglichkeit ist;
  • Fig. 4A bis 4D Prinzipskizzendarstellungen verschiedener Bitdecoderbereiche der Anordnungen der Figuren 2 und 3 sind;
  • Fig. 5A bis 5D den Figuren 4A bis 4D ähnliche Darstellungen verschiedener Bitselektorbereiche sind;
  • Fig. 6A eine Prinzipskizzendarstellung eines Wortdecoderbereichs der Anordnungen der Figuren 2 und 3 ist;
  • Fig. 6B eine zu 6A ähnliche Ansicht eines Wortselektorbereichs ist;
  • Fig. 7A bis 7C vergrößerte, ausschnittweise Draufsichten sind, die zusammen, bei vertikaler Ausrichtung mit Fig. 7A unten, Fig. 7B in der Mitte und Fig. 7C oben, ein Speicher-Makro mit wahlfreiem Zugriff und Einfachzugriffsmöglichkeit der Fig. 1 darstellen;
  • Fig. 8A bis 8C den Figuren 7A bis 7C ähnliche Ansichten sind, die Teile eines Speicher-Makros mit wahlfreiem Zugriff und Doppelzugriffsmöglichkeit darstellen;
  • Fig. 9 ein Diagramm ist, das die Verschachtelungsstruktur für das Makro-Erzeugungsprogramm darstellt; und
  • Fig. 10A bis 10C Flußdiagramme sind, die von einem Programm zum Erzeugen von Makros durchgeführte, logische Schritte darstellen.
  • Nun bezugnehmend auf Fig. 1 ist dort ein exemplarisches Layout eines VLSI-Chips 10 dargestellt. Die vorliegende Erfindung stellt eine Makro-Struktur bereit, die mit verschiedenen integrierten Schaltkreistechnologien genutzt werden kann. Verschiedene übliche, bekannte Photolithographieprozesse können zum Bilden von Bauelementen in einem Halbleitersubstrat benutzt werden. Zum Bilden der Metallisierungsschichten zur Verdrahtung der Bauelemente werden bekannte Prozesse verwendet. Eine detaillierte Beschreibung derartiger üblicher Prozesse ist zum Verständnis der Prinzipien der vorliegenden Erfindung nicht erforderlich. Der VLSI-Chip 10 kann zum Beispiel durch eine Feldeffekttransistor(FET)-Technik mit einer üblichen Komplementär-Metall-Oxid- Halbleiter (CMOS) -Technologie unter Verwendung zweier Metallisierungsschichten gebildet werden.
  • Im Chipbild 10 legt ein erstes Metallisierungsniveau M1 Verdrahtungsleitungen fest, die sich üblicherweise in einer X-Richtung (in Fig. 1 horizontal) erstrecken. Ein zweites Metallisierungsniveau M2 legt Verdrahtungsleitungen fest, die sich üblicherweise in einer Y-Richtung senkrecht zu den Leitungen des ersten Niveaus M1 (in Fig. 1 vertikal) erstrecken. Somit sind die ersten und zweiten Verdrahtungsleitungen in einer X-Y-Matrix oder Raster regelmäßig angeordnet. Das Chipbild 10 ist innerhalb dieses Rastersystems definiert. Das Raster weist Abmessungen auf, die einem Verdrahtungsrasterabstand des ersten Metallniveaus M1 von zum Beispiel 3,2 Mikrometer mal einem Verdrahtungsrasterabstand des zweiten Metallniveaus M2 von 4,4 Mikrometer entsprechen.
  • Ein Stromverteilungssystem ist durch Paare von +5 Volt Stromversorgungs- und Erdungs(M2)-Leitungen 12 und 14 bereitgestellt, um Leistung in Y-Richtung innerhalb des Chips 10 zu verteilen, wodurch, wie gezeigt, der Chip 10 in vier gleichartige Quadranten unterteilt wird. Eine Mehrzahl von +5 Volt Stromversorgungs- und Erdungs(M1)-Leitungen 16 und 18 sind mit den M2- Leitungen 12 und 14 verbunden und verteilen Leistung in X-Richtung. Die M1-Leitungen 16 und 18 sind in einer Mehrzahl von mit 19 bezeichneten Gruppen aus jeweils einem Paar von Erdungs-Leitungen 18 mit einer in der Mitte positionierten Spannungsversorgungs-Leitung 16 angeordnet. Die stromführenden M1-Leitungen 19 sind in Y-Richtung voneinander beabstandet, um eine Verdrahtungsbucht 20 zu definieren, die sich in X-Richtung zwischen jeder angrenzenden stromführenden Leitungsgruppe 19 erstreckt.
  • Eine Halbleitersubstratfläche mit einer Standardgröße wird verwendet, um innerhalb des Chipbildes 10 eine Einheitszelle 21 wie jene, die mit gestrichelten Linien markiert ist, zu definieren. Der Ausdruck "Zelle" bezieht sich für sich genommen auf die Standard-Bildzelle 21, die eine Mehrzahl von aktiven und passiven Bauelementen enthalten kann, die zum Aufbau von Schaltkreisen innerhalb des Chips 10 verwendeten Schaltkreisgrundelemente definieren. Jede Zelle 21 besitzt eine feste horizontale X-Abmessung oder Breite, die einer vorgegebenen Anzahl von M2-Leitungen entspricht, sowie eine feste, vertikale Y-Abmessung oder Höhe, die einer vorgegebenen Anzahl von M1-Leitungen entspricht. Eine Mehrzahl von Einheitszellenpositionen sind in einer Matrixanordnung innerhalb des Rastersystems des Chips 10 durch Doppelreihen innerhalb jeder der leistungsführenden M1-Leitungsgruppen 19 zur Verbindung mit den Spannungsversorgungs- und Erdungs-Leitungen 16 und 18 definiert. Jede Zelle 21 besitzt einen an die Verdrahtungsbucht 20 angrenzenden physischen Zellenrand, und logische Betriebsanschlüsse sind an bekannten X-Y-Positionen entlang dieses Zellenrands angeordnet.
  • Der VLSI-Chip 10 enthält mit 22 und 24 bezeichnete Mehrfach-Makros. Die dargestellten Makros 22 und 24 stellen typische Konfigurationen bereit, die durch ein Makro-Erzeugungsprogramm gemäß der Prinzipien der vorliegenden Erfindung erzeugt werden können. Es können in einfacher Weise mehrere unterschiedliche Feld-Makros konfiguriert werden, um eine minimierte Gesamtfläche zu belegen und genau eine ausgewählte Speicherkapazität einer ausgewählten Anzahl von Worten und einer ausgewählten Anzahl von Bits pro Wort zu liefern. Zwecks Erläuterung wird die Erfindung in Verbindung mit Speichern mit wahlfreiem Zugriff mit Einfachanschluß und Doppelanschluß RAM1 und RAM2 beschrieben, es sollte jedoch verstanden werden, daß die Prinzipien der vorliegenden Erfindung nicht auf RAM-Makros beschränkt sind.
  • Fig. 2 stellt ein RAM1-Makro mit Einfachzugriffsmöglichkeit dar, das gemäß der vorliegenden Erfindung angeordnet und in seiner Gesamtheit mit dem Bezugszeichen 22 bezeichnet ist. Das RAM1-Makro 22 enthält einen Steuerblock 26 und eine festgestellte Zahl von vollständigen, mit 28 bezeichneten Speicherblöcken (1) bis (F), von denen in Fig. 2 ein Speicherblock 28 gezeigt ist. Das RAM1-Makro 22 kann in Abhängigkeit von der für den Speicher ausgewählten Speicherkapazität, wie später hinsichtlich der Figuren 10A bis 10C beschrieben wird, einen mit 30 bezeichneten Teilspeicherblock enthalten.
  • Der Steuerblock 26 besitzt einen Steuerbereich 32 zum Erzeugen von Taktsignalen, einen Bitdecoderbereich 34 zum Decodieren von Bitadreßeingängen, einen Wortdecoderbereich 36 zum Decodieren von Wortadreßeingängen und einen Wortleitungs-Selektorbereich 38 zum Erzeugen von Wortleitungssignalen in Reaktion auf die decodierten Wortadreßsignale. Jeder Speicherblock 28 beinhaltet einen Speicherzellen-Matrixbereich 40 zum Speichern von Daten, einen Bitleitungs-Selektorbereich 42 zum Erzeugen von Bitleitungssignalen in Reaktion auf die decodierten Bitadreßsignale sowie einen mit 44 bezeichneten Abtast-, Zwischenspeicher- und Treiberbereich zum Abtasten und Zwischenspeichern von Schreib- Lese-Daten und Treiben der Datenausgänge. Der Teilspeicherblock schließt in ähnlicher Weise einen Speicherzellen-Matrixbereich 46, einen Bitleitungs-Selektorbereich 48 und einen Abtast-, Zwischenspeicher- und Treiberbereich 50 ein.
  • M2-Leitungen werden zum Verbinden des Steuerblocks 26 mit jedem der Speicherblöcke 28 und 30 verwendet, wie in den Figuren 7A bis 7C und 8A bis 8C gezeigt. Wortleitungen vom Wortleitungs-Selektorbereich 38 greifen auf jeden der Speicherzellen-Matrixbereiche 40 und 46 der Mehrfach-Speicherblöcke 28 und 30 zu. Decodierte Bitadreßleitungen zum Bitselektorbereich 42 und Taktleitungen zum Abtast-Zwischenspeicher-Treiberbereich 44 werden vom Bitdecoderbereich 34 beziehungsweise dem Steuerbereich 32 des Steuerblocks 26 zur Verfügung gestellt. Polysilizium-Bitleitungen von den Bitleitungs-Selektorbereichen 42 und 48 greifen auf die Speicherzellen-Matrixbereiche 40 und 46 der jeweiligen, ebenfalls in den Figuren 7A bis 7C und 8A bis 8C gezeigten Speicherblöcke 28 und 30 zu.
  • Fig. 3 stellt ein RAM2-Makro mit Doppelzugriffsmöglichkeit dar, das gemäß den Prinzipien der vorliegenden Erfindung angeordnet und in seiner Gesamtheit mit dem Bezugszeichen 24 bezeichnet ist. Das RAM2-Makro 24 enthält einen ersten und einen zweiten Steuerblock 52 und 54 sowie eine festgestellte Zahl von vollständigen, mit 56 bezeichneten Speicherblöcken (1) bis (F), von denen in Fig. 3 ein Speicherblock 56 gezeigt ist. Das RAM2-Makro 24 kann in Abhängigkeit von der ausgewählten Speicherkapazität für das Speicher-Makro, wie im Zusammenhang mit den Figuren 10A bis 10C beschrieben wird, in ähnlicher Weise einen Teilspeicherblock 58 beinhalten. Steuerblöcke 52 und 54 erlauben unabhängige SchreibLese-Vorgänge des RAM2-Makros 24. Der Steuerblock 52 steuert Lese-Vorgänge und der Steuerblock 54 steuert Schreib- Vorgänge.
  • Der Steuerblock 52 enthält einen Lesesteuerbereich 60, einen Bitdecoderbereich 62, einen Wortdecoderbereich 68 und einen Wortselektorbereich 70. Der Steuerblock 54 beinhaltet einen Schreibsteuerbereich 72, einen Bitdecoderbereich 74, einen Wortdecoderbereich 76 und einen Wortselektorbereich 78. Jeder vollständige Speicherblock 56 weist einen Speicherzellen-Matrixbereich 80, einen Bitselektorbereich 82 und einen Abtast-, Zwischenspeicher- und Treiberbereich 84 auf. Die einzelne Teilmatrix 58 schließt in ähnlicher Weise einen Speicherzellen-Matrixbereich 86, einen Bitselektorbereich 88 und einen Abtast-, Zwischenspeicher- und Treiberbereich 90 ein.
  • Sowohl das RAM1- als auch das RAM2-Makro sind so angeordnet, daß sie für eine exakte Bereitstellung einer ausgewählten Speicherkapazität einer ausgewählten Anzahl von Worten M und einer ausgewählten Anzahl von Bits pro Wort N ausgelegt sind. Jeder der Wortleitungs-Selektorbereiche 38, 70 und 78 und der entsprechenden Speicherbereiche 40, 46, 80 und 86 enthalten eine festgestellte, benötigte Mehrzahl von Unterbereichen (2) bis (W) für die ausgewählte Anzahl von Worten M, wie später im Zusammenhang mit den Figuren 10A bis 10C beschrieben wird.
  • Jeder Speicherunterbereich (2) bis (W) innerhalb eines vollständigen Speicherblocks 28 und 56 stellt einen Speicher für eine vorgegebene Anzahl von Bits, zum Beispiel von acht Bits, bereit. In ähnlicher Weise stellt jeder der Speicherunterbereiche (2) bis (W) innerhalb eines Teilspeicherblocks 38 und 58 einen Speicher für eine ausgewählte von einer Mehrzahl vorgegebener Bitanzahlen bereit. Zum Beispiel kann ein spezieller Speicherunterbereich eines Teilspeicherblocks eine ausgewählte Anzahl von zwei, vier oder sechs Bits bereitstellen.
  • Jeder Bitdecoderbereich 34 des RAM1-Makros 22 und der Bitdecoderbereiche 62 und 74 des RAM2-Makros 24 wird selektiv durch einen von einer Mehrzahl vordefinierter Bitdecoder bereitgestellt, welche die Gesamtkonfiguration oder Gestalt des RAM-Makros, wie nun beschrieben werden wird, bestimmen.
  • In den Figuren 4A bis 4D sind exemplarische Bitdecoder, die auswählbar in den Bitdecoderbereichen 34 oder 62 und 74 zum Erzeugen eines dichtgepackten RAM1- oder RAM2-Makros 22 oder 24 mit einer bestimmten M x N Speicherkapazität verwendet werden, schematisch dargestellt. Ein 2:1 Bitdecoder 92, der einen einzelnen Bitadreßeingang B0 und logische Funktionsgatter zur Bereitstellung von zwei Bitauswahlausgängen BS0 und BS1 beinhaltet, ist in Fig. 4A schematisch gezeigt. 4:1, 8:1 und 16:1 Bitdecoder 94, 96 und 98 sind in den Figuren 4B, 4C beziehungsweise 4D gezeigt. Wie schematisch gezeigt, enthält der 4:1 Bitdecoder 94 zwei Bitadreßeingänge B0 und B1 und logische Funktionsgatter zur Bereitstellung von vier Bitauswahlausgängen BS0, BS1, BS2 und BS3. In ähnlicher Weise beinhaltet der 8:1 Bitdecoder 96 drei Bitadreßeingänge B0 bis B2 und stellt acht Bitauswahlausgänge BS0 bis BS7 bereit. Der 16:1 Bitdecoder 98 schließt vier Bitadreßeingänge B0 bis B3 ein und stellt acht Bitauswahlausgänge BS0 bis BS3 und CS0 bis CS4 bereit.
  • Die Steuerblöcke 36, 52 und 54, welche die Bitdecoderbereiche 34, 62 und 74 enthalten, besitzen vier vordefinierte X-Y-Eingangsstellen für logische Betriebsanschlüsse (LSTs) an dem an eine Verdrahtungsbucht 20 angrenzenden Seitenrand zur Verbindung mit den vier möglichen B0 bis B3 Bitadreßsignaleingängen. Acht mögliche vordefinierte X-Y-Ausgangsstellen sind für jeden der Bitdecoderbereiche 34, 62 und 74 zur Verbindung mit den Bitselektorbereichen jedes der vollständigen und der Teilspeicherblöcke 28, 30, 56 und 58 festgelegt. Wie hinsichtlich der Figuren 7A bis 7C und 8A bis 8C gezeigt und beschrieben, definieren Leitungen aus dem zweiten Metall M2 die erforderliche Verbindungsverdrahtung zwischen den Bitdecoderbereichen der Steuerblöcke 26, 52 und 54 und den Bitselektorbereichen der Speicherblöcke 28, 30, 56 und 58.
  • Die Figuren 5A bis 5D stellen mit 100, 102, 104 und 106 bezeichnete 2:1, 4:1, 8:1 und 16:1 Bitselektoren dar, die in Verbindung mit den entsprechenden Bitdecodern 92, 94, 96 und 98 der Figuren 4A bis 4D verwendet werden. Der Bitselektor 100 weist zwei Bitleitungspaare auf, die auf den Speicherzellen-Matrixbereich innerhalb eines bestimmten Speicherblocks zugreifen. Die Bitauswahlausgänge BS0 und BS1 des 2:1 Bitdecoders 92 sind mit dem Bitselektor 100 verbunden, der Wahr- und Komplementär-Ausgänge BLT und BLC bereitstellt, die an den Abtast-, Zwischenspeicherund Treiberbereich innerhalb des Speicherblocks angelegt werden. Der Bitselektor 102 ist entsprechend zur Verwendung mit einem 4:1 Bitdecoder 94 angeordnet. Der Bitselektor 102 beinhaltet vier Bitleitungspaare und verwendet die Bitauswahlausgänge BS0 bis BS3 zur Bereitstellung der Ausgaben an BLT und BLC. Der Bitselektor 104 ist zur Verwendung mit einem 8:1 Bitdecoder 96 angeordnet und schließt acht Bitleitungspaare ein, welche die Bitauswahlausgänge BS0 bis BS7 verwenden. Der Bitselektor 106 ist zur Verwendung mit dem 16:1 Bitdecoder 98 angeordnet und enthält eine erste Selektorstufe von vier 4:1 Bitselektoren 102, die sechzehn Bitleitungspaare beinhalten, die auf die zwei Speicherzellen-Matrixbereiche angrenzender vollständiger Speicherblöcke 28 und 56 zugreifen, wobei die Bitauswahlausgänge BS0 bis BS3 verwendet werden. Eine zweite Stufe aus einem 4:1 Bitselektor 102 enthält vier Verbindungsleitungspaare mit den vier Bitselektoren 102 der ersten Stufe, wobei die Bitselektorausgänge CS0 bis CS3 des Bitdecoders 98 verwendet werden, um die Bitselektorausgaben an BLT und BLC bereitzustellen.
  • Fig. 6A gibt eine schematische Darstellung eines Wortdecoders (108) wieder, der innerhalb der Wortdecoderbereiche 36, 68 und 76 verwendet werden kann. Der dargestellte Wortdecoder 108 empfängt eine Wortadreßeingabe A0 und stellt decodierte Wortauswahlausgänge AC0 und AT0 bereit. Mehrfach-Wortdecoder 108 werden innerhalb des Wortdecoderbereichs in Abhängigkeit von der Anzahl an Wortleitungs-Selektorunterbereichen W für das RAM1- oder das RAM2-Makro bereitgestellt. Zum Beispiel werden für vierundsechzig Wortleitungs-Selektorunterbereiche sechs Wortdecoder 108 mit den Wortadreßeingängen A0 bis A5 verwendet. Jeder der einen Wortdecoderbereich 36, 68 und 76 enthaltenden Steuerblöcke enthält vordefinierte, an die Verdrahtungsbucht 20 angrenzende X-Y-Eingangsstellen für LSTs zur Verbindung mit den Wortadreßeingängen. Jeder Wortdecoderbereich 36, 68 und 76 besitzt vordefinierte Randpunkte für die maximal mögliche Anzahl an decodierten Wortauswahlausgängen AC0 bis AC5 und AT0 bis AT5.
  • Fig. 6B gibt eine schematische Darstellung eines entsprechenden Wortleitungsselektors 110 wieder, der mit dem exemplarischen Wortdecoder 108 verwendet wird. Wie gezeigt, besitzt der Wortleitungsselektor 110 eine erste Stufe mit fünf Eingängen A1 bis A5 und eine zweite Stufe mit den decodierten Wortauswahlausgängen AC0, AT0, um die Wortauswahlausgänge WL0-WL1 für den Zugriff zu den entsprechenden Speicherzellen-Matrixunterbereichen bereitzustellen. Für eine RAM-Konfiguration, die lediglich zwei Wortleitungs-Selektorunterbereiche einschließt, kann die erste Stufe des Wortleitungsselektors 110 mit einem einzelnen Eingang versehen sein, wobei die fünf Eingänge A1 bis A5 der ersten Stufe zweiunddreißig mögliche Kombinationen der Wortdecoderausgänge bereitstellen.
  • Fig. 7A beinhaltet eine Legende, welche die Schattierungen zeigt, welche die Schichten oder Maskenebenen des Chips 10 darstellen, die nun vor der Beschreibung der exemplarischen Makro- Strukturen der Figuren 7A bis 7C und 8A bis 8C kurz beschrieben werden. Eine Diffusionsebene (RX) des Chips 10 ist durch die in dem Kästchen 112 gezeigte Schattierung gekennzeichnet. Eine einzelne, ohmsche Leitschicht aus Polysilizium (P1) , die zur Bildung vergrabener Leiterbahnen zum Verbinden innerhalb der aktiven Makro-Zellenflächen und zur Verbindung der logischen Serviceanschlüsse der Makro-Zellen mit der Schicht aus dem ersten Metall M1 verwendet wird, ist wie in Kästchen 114 gezeigt schattiert. Die Leitungen aus dem ersten Metall M1 sind durch sich horizontal erstreckende, nicht schattierte M1-Leitungen dargestellt, wie in Kästchen 116 gezeigt. Eine Maskenebene (CA) definiert leitende Kontaktlöcher zur Verbindung zwischen der Schicht 114 aus Polysilizium P1 und sowohl der Diffusions(RX)-Ebene 112 als auch der Schicht 116 aus dem ersten Metall M1, wie in Kästchen 118 gezeigt. N+- und p+-Halbleiterbauelemente befinden sich unmittelbar anschließend an die Verbindungen der CA-Ebene 118 zwischen der P1-Schicht 114 und der RX-Schicht 112. In dem exemplarischen CMOS-Chip 10 sind die Kontakte zum Polysilizium und zu den Diffusionsgebieten ungefähr ein Mikrometer mal ein Mikrometer groß. Die Schicht aus dem zweiten Metall M2 ist durch vertikal verlaufende, nicht schattierte M2-Leitungen, wie im Kästchen 120 gezeigt, dargestellt. Eine Maskenebene (NV) definiert leitende Kontaktlöcher zur Verbindung zwischen den M1- und M2-Leitungen an ausgewählten Punkten, die wie im Kästchen 122 gezeigt schattiert sind.
  • In den Figuren 7A bis 7C ist ein exemplarisches RAM1Makro mit Einfachzugriffsmöglichkeit 22 von Fig. 1 bei vertikaler Ausrichtung mit 7A unten, 7B in der Mitte und 7C oben gezeigt. In Fig. 7A ist ein exemplarischer Steuerblock 26 dargestellt, der Bereiche 32, 34, 36 und 38 einschließt. Der Steuerblock 26 kann als eine Matrix aus einer ersten und einer zweiten, allgemein mit 124 und 126 bezeichneten, Zeile mit einer Anzahl von mit den Bezugszeichen 128, 130, 132 und 134 bezeichneten Spalten angesehen werden. Jede Spalte beider Zeilen ist durch ausgewählte Makro-Zellen einer Mehrzahl vordefinierter Makro-Zellen festgelegt, die einzeln eine Mehrzahl von entsprechenden Halbleiterstruktur- und M1-Schaltkreiszellen (PERLEV1) und Verdrahtungszellen aus dem zweiten Metall M2 (PERLEV2) einschließen, wie später bezüglich der Figuren 9 und 10A bis 10C beschrieben wird.
  • Diese entsprechenden vordefinierten Schaltkreiszellen und Makro-Verdrahtungszellen sind in einer Steuerbibliotheksfamilie gespeichert.
  • Bei Betrachtung von links nach rechts ist die erste Spalte 128 in Zeile 124 durch eine ausgewählte entsprechende Schaltkreisund Verdrahtungszelle einer Mehrzahl vordefinierter Makro-Zwischenraumzellen, die in der Steuerbibliotheksfamilie enthalten sind, festgelegt. Eine spezielle Makro-Zwischenraumzelle wird ausgewählt, so daß der sich ergebende Rand des Steuerblocks 26 an eine Standard-Bildzelle 21 innerhalb des Rastersystems des Chips 10 stößt oder zu ihr paßt. Die zweite und die dritte Spalte 130 und 132 in Zeile 124 sind durch PERLEV1- und PERLEV2-Wortleitungs-Selektorzellen 110 definiert, die getrennt entsprechend ungerader oder gerader Spaltenposition gespeichert sind. Die letzte Spalte 134 von Zeile 124 ist durch ausgewählte PERLEV1- und PERLEV2-Bitdecoderzellen definiert, die einem ausgewählten der 2:1, 4:1, 8:1 oder 16:1 Bitdecoder 92, 94, 96 oder 98 entsprechen. Innerhalb des Bitdecoderbereichs 34 ist für das exemplarische RAM1-Makro 22 der Figuren 7A bis 7C der 2:1 Bitdecoder 92 gezeigt.
  • Die Zeile 126 der Steuerblockmatrix ist in ähnlicher Weise festgelegt und beinhaltet eine ausgewählte Makro-Leerzelle an der Spaltenposition 128, eine Niedrigadreßbit-AC1-Personifizierungszelle an der Spaltenposition 130, eine Adreßbit-AC1-Personifizierungszelle an der Spaltenposition 132 und eine ausgewählte Makro-EINGABE/AUSGABE(E/A)-Zelle an der Spaltenposition 134. Die AC0- und AC1-Adreßbit-Personifizierungszellen sind innerhalb der Wortleitungs-Selektorzellen 110 ineinander verschachtelt.
  • Innerhalb der ausgewählten I/O-Zelle sind der Wortdecoderbereich 36 und der Steuerbereich 32 ineinander verschachtelt. Die Makro- Leerzelle der Spalte 128 ist so ausgewählt, daß der untere Rand des Steuerblocks 26 an den physischen Zellenrand der an die Verdrahtungsbucht 20 angrenzenden Bildzelle 21 paßt.
  • Eine Mehrzahl von logischen Serviceanschlüssen (LSTs) 138 ist entlang des an die Verdrahtungsbucht 20 angrenzenden I/O-Zellenrandes der Spalte 134 angeordnet. Eine X-Y-Position ist für jeden der erforderlichen LSTs vordefiniert, die zur Verbindung mit den exemplarischen möglichen acht Bitadreßeingängen B0 bis B7 und sechs Wortadreßeingängen A0 bis A5 mit ausgewählten, zur Verbindung mit Adreßeingangssignalen verwendeten LSTs verwendet wird. In dem exemplarischen RAM-Makro 22 der Figuren 7A bis 7C sind drei LSTs 138 zur Verbindung mit dem einzelnen Bitadreßeingang B0 für den 2:1 Bitdecoder 92 und den Wortadreßeingängen A0 und A1 für die Wortdecoder 108 verwendet.
  • Eine Mehrzahl von Ausgangsstellen ist für jeden der exemplarischen möglichen acht Bitauswahlausgängen BSO bis BS7 oder BS0-BS3 und CS0 bis CS3 innerhalb des Bitdecoderbereichs 34 mit einem bestimmten, selektiv zur Definition des Bereichs benutzten Bitdecoder 92, 94, 96 und 98 vordefiniert. Im 2:1 Bitdecoder 92 sind die Bitauswahlausgänge BS0 und BS1 mit einem Paar von M2-Leitungen 140 an den vordefinierten Stellen von Kontaktlöchern 122 verbunden. Die Zeitgeber- und Taktsignale des Steuerbereichs 34 werden an die M2-Leitungen 142 an der vordefinierten Stelle von Kontaktlöchern 122 angelegt.
  • Eine erste und zweite Ausgangsstelle ist für jede der Wortleitungs-Selektorzellen 110 innerhalb des Bereichs 38 vordefiniert.
  • Die Wortauswahlausgänge WL0 und WL1 der Wortleitungs-Selektorzelle 110 in Spalte 130 sind mit einem Paar von M2-Leitungen 144 an den vordefinierten Stellen von Kontaktlöchern 122, wie gezeigt, verbunden. In ähnlicher Weise ist ein Paar von M2-Leitungen 146 mit den Wortleitungsausgängen WL2 und WL3 der Wortleitungs-Selektorzelle 110 bei Spalte 132 verbunden.
  • In Fig. 7B ist ein exemplarischer, die Bereiche 40, 42 und 44 einschließender Speicherblock 28 dargestellt. Der Speicherblock 28 kann in ähnlicher Weise als eine Matrix einer ersten und zweiten, allgemein mit 150 und 152 bezeichneten Zeile betrachtet werden, welche die vertikal ausgerichteten Spalten 128, 130, 132 und 134 enthält. Die erste Zeile 150 ist durch ausgewählte Leerzellen für jede der Spaltenpositionen definiert. Die Leerzellenzeile 150 ist so ausgewählt, daß der untere Rand des Speicherblocks 28 zum physischen Zellenrand der an die Verdrahtungsbucht 20 angrenzenden Bildzelle 21 paßt. Die Zeile 152 beinhaltet eine ausgewählte Zwischenraumzelle bei der Spaltenposition 128, eine erste Speichermatrixzelle bei der Spaltenposition 130, eine zweite Speichermatrixzelle bei der Spaltenposition 132 und eine ausgewählte Makro-I/O-Zelle bei der Spaltenposition 134. Die acht Bits hohen ersten und zweiten Speichermatrixzellen sind einzeln innerhalb der Makro-Zellenbibliothek entsprechend geraden und ungeraden Spaltenpositionen gespeichert. Innerhalb der I/O-Zelle sind bei der Spaltenposition 134 der Bitselektorbereich 42 und der Abtast-, Zwischenspeicher- und Treiberbereich 44 miteinander verschachtelt. Innerhalb der Bereiche 40, 42 und 44 ist eine Mehrzahl von Stellen zur Verbindung mit den M2- Steuersignalleitungen 144, 146, 140 und 142 vordefiniert, wie durch die Stelle der Kontaktlöcher 122 gezeigt ist.
  • Jede der Speichermatrixzellen bei den Spaltenpositionen 130 und 132 erzeugt acht Ausgangsbits. Vier 2:1 Bitselektoren 100 sind innerhalb des Bitselektorbereichs 42 der ausgewählten I/O-Zelle bei der Spaltenposition 134 verwendet, um die Leitungspaare mit acht Bits bereitzustellen. Leitungspaare mit acht Bits werden an vordefinierten Stellen vom Bitselektorbereich 42 zu den Speichermatrixzellen durch Polysiliziumleitungen 114 bereitgestellt. Im dargestellten Speicherblock 28 sind vier Abtast-, Zwischenspeicher- und Schreibtreibereinheiten innerhalb des Bereichs 44 mit Dateneingangs-LSTs 154, die an vordefinierten X-Y-Positionen entlang eines oberen und unteren, an die Verdrahtungsbuchten 20 angrenzenden I/O-Zellenrandes vorgesehen sind, bereitgestellt. In ähnlicher Weise sind Datenausgangs-LSTs an vordefinierten X-Y-Positionen entlang den oberen und unteren Rändern der I/O- Zelle bei der Spaltenposition 134 bereitgestellt.
  • Fig. 7C sieht einen exemplarischen, die Bereiche 46, 48 und 50 einschließenden Teilspeicherblock 30 vor. Der Teilspeicherblock 30 enthält eine Leerzellenzeile 158 und eine zweite Zeile 160, die bei der Spaltenposition 128 eine Zwischenraumzelle, bei den Spalten 130 und 132 eine erste und zweite Speichermatrixzelle und bei der Spaltenposition 134 eine I/O-Zelle beinhaltet. Jede der dargestellten Speichermatrixzellen innerhalb des Bereichs 46 liefert zwei Ausgangsbits. Innerhalb des Bitselektorbereichs 48 ist ein einzelner 2:1 Bitselektor 100 verwendet. Zwei Paare von Polysilizium bis Bitselektorleitungen greifen, wie gezeigt, auf die Speichermatrixzellen zu. Ein Dateneingangs-LST 162 und ein Datenausgangs-LST 164 sind an vorgegebenen Positionen entlang des unteren, an die Verdrahtungsbucht 20 angrenzenden I/O-Zellenrandes angeordnet. Innerhalb der Bereiche 46, 48 und 50 ist, wie gezeigt, eine Mehrzahl von Stellen zur Verbindung mit den M2-Steuersignalleitungen 144, 146, 140 und 142 durch die Kontaktlöcher 122 bereitgestellt.
  • Die Figuren 8A bis 8C stellen exemplarische Bereiche eines RAM2-Makros mit Doppelzugriffsmöglichkeit 24 von Fig. 1 dar. In Fig. 8A ist ein exemplarischer Lesesteuerblock 52 dargestellt, der die Bereiche 60, 62, 68 und 70 einschließt. Fig. 8B sieht einen entsprechenden exemplarischen Steuerblock 56 mit Bereichen 80, 82 und 84 vor. Fig. 8C stellt einen exemplarischen, die Bereiche 72, 74, 76 und 78 einschließenden Schreibsteuerblock 54 dar. In den exemplarischen Lese- und Schreibsteuerblöcken 52 und 54 sind erste und zweite Wortleitungs-Selektoren 110 gezeigt, was somit in insgesamt vier Spalten resultiert, die mit den gleichen Bezugszeichen 128, 130, 132 und 134, wie sie für das RAM1-Makro 22 der Figuren 7A bis 7C verwendet wurden, bezeichnet sind. Nun bezugnehmend auf Fig. 8A, enthält der Lesesteuerblock 52 eine erste und eine zweite Zeile, die allgemein mit den Bezugszeichen 168 und 170 bezeichnet sind und jeweils die Spalten 128, 130, 132 und 134 beinhalten. Die erste Zeile 128 beinhaltet in der ersten Spalte 128 eine Zwischenraumzelle, in den nächsten zwei folgenden Spalten 130 und 132 Wortselektorzellen 110 und in der letzten Spalte 134 eine ausgewählte 8:1 Bitdecoderzelle 96. Die zweite Zeile 170 beinhaltet in der ersten Spalte 128 eine Leerzelle, in den nächsten folgenden Spalten 130 und 132 Wortadreß-Personifizierungszellen und in der letzten Spalte 134 eine I/O-Zelle, die den Wortdecoderbereich 68 und den Lese-Steuerbereich 20 einschließt. Eingangs-LSTs 172 sind entlang des an die Verdrahtungsbucht 20 angrenzenden I/O-Zellenrandes der Spalte 134 zur Verbindung von den Bit- und Wortadreßeingängen zum Lesesteuerblock 52 angeordnet. in dem exemplarischen Lesesteuerblock 52 der Fig. 8A sind fünf LSTs 178 zur Verbindung mit den drei Bitadreßeingängen B0 bis B2 und den Wortadreßeingängen A0 und A1 verwendet. Im 8:1 Bitdecoder 96 sind die acht Bitauswahlausgänge BS0 bis BS1 mit entsprechenden acht M2-Leitungen 174 an der vordefinierten Stelle von Kontaktlöchern 122 verbunden. In ähnlicher Weise sind Taktleitungen vom Lesesteuerbereich 60 mit einer Mehrzahl von M2-Leitungen 176 an den ausgewählten Stellen von Kontaktlöchern 122 verbunden. Im Wortselektorbereich 70 sind die Wortleitungsausgänge WL0 und WL1 mit einem Paar von M2-Leitungen 178 an der vordefinierten Stelle von Kontaktlöchern 122 innerhalb der Wortselektorzelle 110 bei der Spaltenposition 130 verbunden. Desgleichen sind die Wortleitungsausgänge WL2 und WL3 mit einem Paar von M2-Leitungen an den vordefinierten Stellen von Kontaktlöchern 122 innerhalb der Wortselektorzelle der Spalte 132 verbunden. Fig. 8B stellt einen vollständigen Speicherblock 56 dar, der mit dem Lesesteuerblock 52 und dem Schreibsteuerblock 54 verwendet wird. Der Speicherblock 56 ist durch eine erste Zeile 182 von ausgewählten Leerzellen bei den Spalten 128, 130, 132 und 134 definiert. Eine zweite Zeile 184 beinhaltet in der ersten Spalte 128 eine Zwischenraumzelle, in den nächstfolgenden Spalten 130 und 132 Speichermatrixzellen und in der letzten Spalte 134 eine I/O-Zelle. Innerhalb der ausgewählten I/O-Zelle sind der Bitselektorbereich 82 und der Abtast-, Zwischenspeicher- und Treiberbereich 84 ineinander verschachtelt. Der Bitselektorbereich 82 enthält eine 8:1 Bitselektorzelle 104, die acht Polysilizium-Bitleitungspaare bereitstellt, auf die acht Bit hohen Speichermatrixzellen innerhalb des Bereichs 80 zugreifen. Eine einzelne Abtast-, Zwischenspeicher- und Schreibtreibereinheit ist innerhalb des Bereichs 84 mit den BLT- und BLC-Ausgängen des Bitselektorbereichs 104 gezeigt, die durch M1-Leitungen innerhalb der I/O-Zelle bereitgestellt werden. Ein Dateneingangs-LST 186 ist an einer vordefinierten X-Y-Position entlang des I/O-Zellenrandes der Spalte 134 zur Verbindung mit einem Dateneingangssignal vorgesehen. In ähnlicher Weise ist ein Datenausgangs-LST 188 für das Datenausgangssignal vorgesehen.
  • Fig. 8C stellt den Schreibsteuerblock 54 dar, der eine erste und eine zweite Zeile 190 und 192 einschließt. Die Zeile 190 beinhaltet eine erste Spalte 128 mit einer ersten Zwischenraumzelle, nächstfolgenden Spalten 130 und 132 mit Wortselektoren 110 und die letzte Spalte 134 mit dem Bitdecoder 74. Die Zeile 192 beinhaltet in der ersten Spalte 128 eine Leerzelle, in den nächstfolgenden Spalten 130 und 132 Adreßbit-Personifizierungszellen und in der letzten Spalte 134 die ausgewählte I/O-Zelle, die den Wortdecoderbereich 76 und den Schreibsteuerbereich 72 einschließt. Angrenzend an den I/O-Zellenrand der Spalte 134 ist eine Mehrzahl von LSTs 194 zur Verbindung mit den Bit- und Wortadreßeingängen angeordnet. Der exemplarische Schreibsteuerblock 54 beinhaltet entsprechende LSTs 194 zur Verbindung mit den verwendeten Bitadreßeingängen B0 bis B3 und den Wortadreßeingängen A0 und A1. Die Bitauswahlausgänge des 8:1 Bitdecoders 96 sind an den vordefinierten Stellen der Kontaktlöcher 122 zur Verbindung mit acht M2-Leitungen 196 vorgesehen. Zeittaktsignale vom Schreibsteuerbereich 72 sind an den vordefinierten Stellen von Kontaktlöchern 122 zur Verbindung mit den M2-Leitungen 198 vorgesehen. Im Wortleitungsselektor 110 der Spalte 130 sind die Wortleitungsausgänge WL0 und WL1 mit einem Paar von M2-Leitungen 200 an den vordefinierten Stellen der Kontaktlöcher 122 verbunden. Desgleichen sind die Wortleitungsausgänge WL2 und WL3 mit einem Paar von M2-Leitungen 202 an den vordefinierten Stellen von Kontaktlöchern 122 innerhalb der Spalte 132 verbunden. Die Schreibsteuersignale sind mit den Speicherblöcken 56 durch die M2-Leitungen 196, 198, 200 und 202, wie in Fig. 8B gezeigt, verbunden.
  • Das Verfahren der vorliegenden Erfindung zum Erzeugen von Makros kann vorteilhafterweise in ein als Engineering Design System (EDS) von IBM bekanntes computerunterstütztes Entwurfs-Automatisierungssystem implementiert werden. Das EDS von IBM ist in Worthman, "Design Automation: VLSI SYSTEMS DESIGNS USERS GUIDE TO DESIGN AUTOMATION", Seiten 14 bis 22, 1987 beschrieben. Die Offenbarung der oben erwähnten Veröffentlichung wird hier durch Verweis einbezogen. Kurz gesagt, verwendet dieses EDS ein Zentralrechnersystem, speziell das IBM-System/370, und eine Programmbibliothek für einen interaktiven, physischen Entwurfsprozeß von VLSI-Chips.
  • Nun bezugnehmend auf Fig. 9 ist dort ein Diagramm gezeigt, das eine Schachtelungsstruktur für das Makro-Erzeugungsprogramm der Erfindung darstellt. Eine Mehrzahl von Parallelprozessoren, die durch untere Blöcke (xxxPA0, xxxP10 und xxxBD) dargestellt sind, werden durchgeführt, um die physische Darstellung für ein durch einen oberen Block (PRIME) dargestelltes, spezielles Makro zu erzeugen. Eine Mehrzahl von vordefinierten Makrozellen ist in einer Entwurfsbibliothek gespeichert, die eine Mehrzahl von Familien zur Definition jedes der Unterbereiche und Bereiche innerhalb der Steuerblöcke 26, 52 und 54, der vollständigen Speicherblöcke 28 und 56 und der Teilspeicherblöcke 30 und 58 einschließt. Die vordefinierten Makrozellen enthalten standardisierte PERLEV1-Schaltkreis- und PERLEV2-Verdrahtungs-Layouts für jeden Bereich und Unterbereich. Ein spezielles RAM1- oder RAM2-Makro ist durch festgestellte Makro-Zellen aus diesen vordefinierten Makro-Zellen definiert, die zu den Bildzellen 21, wie in den Figuren 1, 7A bis 7C und 8A bis 8C dargestellt, verschiedene Größen aufweisen. Die vordefinierten Makro-Zellen enthalten einzeln entsprechende PERLEV2-Verdrahtungszellen aus dem zweiten Metall M2, die in Verbindung mit kombinierten PERLEV1- Halbleiter- und M1-Verdrahtungszellen verwendet werden, da das zweite Metall definiert oder real vorhanden sein muß, um die Makro-Struktur bezüglich des physischen Entwurfs und das spezielle Makro global zu prüfen.
  • Signaleingänge zzzEIN, die Adreß- und Dateneingangs-Signalverbindungen einschließen, sind beim Block xxxPA0 zur Definition von Eingangs-LSTs gekennzeichnet. Signalausgänge zzzAUS für Datenausgangs-Signalverbindungen sind bei einem Block xxxP10 zur Definition von Ausgangs-LSTs gekennzeichnet. Eine zweite Metallebene (PERLEV2) xxxWRG und eine Schaltkreisebene (PERLEV1) xxxCKT sind getrennt eingefügt, um eine Körperzelle xxxBD zu definieren. Ein sich aus diesen parallelen Prozessen bei den Blöcken xxxPA0, xxxP10 und xxxBD ergebendes spezielles Makro ist beim Block PRIME in Form einer Bibliotheksentität definiert, die zur Verwendung im VLSI-Chip 10 ausgewählt werden kann.
  • Nun bezugnehmend auf die Figuren 10A bis 10C, sind dort Flußdiagramme gezeigt, die logische Schritte darstellen, die von dem Makro-Erzeugungsprogramm gemäß den Merkmalen der Erfindung durchgeführt werden. Das Makro-Erzeugungsunterprogramm GROW startet mit dem Identifizieren der Benutzerwahleingaben bezüglich der Anzahl von Worten M, der Anzahl von Bits N pro Wort und der Einzel- oder Doppelzugriffsmöglichkeit für ein spezielles M x N RAM1- oder RAM2-Makro. Eine optimale Konfiguration für das ausgewählte M x N RAM-Makro wird durch Berechnen einer Makrofläche und -leistung bestimmt, die sich aus jedem der vier möglichen Bitdecoder 2:1, 4:1, 8:1 und 16:1 wie folgt ergeben.
  • Eine Gesamtzahl und der Typ von erforderlichen Speicherblöcken werden zuerst durch Multiplizieren der Anzahl von Bits pro Wort (N * D)/8 = A bestimmt, wobei jeweils D = 2, 4, 8 und 16 für einen 2:1, 4:1, 8:1 und 16:1 Bitdecoder ist. Ein ganzzahliger Anteil des sich ergebenden Werts von A entspricht der erforderlichen Anzahl von vollständigen, hohen, mit F bezeichneten 8- Bit-Speicherblöcken. Eine Teilspeichermatrix ist erforderlich, wenn der sich ergebende Wert A einen Bruchteil beinhaltet. Der Wert des Bruchteils von A bestimmt, wenn erforderlich, die Größe einer Teilmatrix. Wenn eine Teilmatrix nicht erforderlich ist, wird ein die Zellenfläche für eine Teilmatrix repräsentierender Wert P gleich Null gesetzt. Für ein RAM1 mit Einfachzugriffsmöglichkeit mit einem Bruchteil von A gleich 0,25 wird eine Teilmatrix von 2 Bits durch einen mit P = 1 bezeichneten, 1 Zelle hohen Teilinatrixbereich definiert. Andernfalls wird, wenn ein Bruchteil von A gleich 0,50 oder 0,75 ist, eine Matrix von 4 Bits oder eine Matrix von 6 Bits durch einen mit P = 2 bezeichneten, 2 Zellen hohen Teilmatrixbereich definiert. Für ein RAM2 mit Doppelzugriffsmöglichkeit ist jede erforderliche Teilmatrix von 2, 4 oder 6 Bits durch einen 2 Zellen hohen Teilmatrixbereich mit P = 2 definiert. Zum Beispiel ist für eine ausgewählte Anzahl M von Worten gleich vierundsechzig und für eine ausgewählte Anzahl N von Bits pro Wort gleich neun, d. h. für ein 64 x 9 RAM1 und RAM2, jeweils A = 2,25, 4,5, 9 und 18 für D = 2, 4, 8 und 16. Sowohl für die RAM1- als auch die RAM2-Makros beträgt die sich ergebende Anzahl von vollständigen Speicherblöcken F = 2, 4, 9 und 18. Für das RAM1-Makro beträgt jeweils die Zellenhöhe für den sich ergebenden Teilspeicherblock P = 1, 2, 0 und 0. In ähnlicher Weise ist für das RAM2-Makro P = 2, 2, 0 und 0.
  • Als nächstes wird eine erforderliche Anzahl von Wortselektoren W für jeden der Bitdecoder 92, 94, 96 und 98 durch Berechnen von W = (M/D)/2 für D = 2, 4, 8 und 16 bestimmt. Der Wert für W muß eine gerade Zahl und größer oder gleich 2 sein, so daß jede sich ergebende ungerade Zahl um eins erhöht würde. Für das 64 x 9 RAM1 und RAM2 Beispiel ist jeweils W 32, 16, 8 und 4 für D = 2, 4, 8 und 16. Wenn die erforderliche Anzahl von Speichermatrizen F und P sowie Wortselektoren W berechnet ist, wird anschließend eine aus jedem der vier Bitdecoder resultierende horizontale und vertikale Zellenausdehnung bestimmt. Die horizontale Zellenausdehnung wird durch die folgende Berechnung bestimmt:
  • X = c1 + c2 + (W * H),
  • wobei c1 eine vorgegebene Gesamtkonstante, zum Beispiel gleich 17, und c2 für eine Zwischenraumzelle, die zum Angleichen eines Bildzellenrandes verwendet wird, gleich 1 sowie H ein horizontaler Periodizitätswert ist, der durch die relative Breite einer Makro-Matrixzelle zu einer Bildzelle bestimmt wird und zum Beispiel gleich 2,25 ist. Der sich ergebende Wert ist jeweils X = 90, 54, 36 und 27 mit D = 2, 4, 8, 16 für das ausgewählte 64 x 9 RAM1- oder RAM2-Makro.
  • Die vertikale Zellenausdehnung wird durch die folgende Berechnung bestimmt:
  • Y = 2 * CB + (2 * F) + P,
  • wobei die Konstante 2 gleich der Steuerbereichshöhe für jeden der Steuerblöcke CB und F die Anzahl der vollständigen Speicherblöcke, jeder 2 Zellen hoch, sowie P gleich 0, 1 oder 2 für die Zellenhöhe der Teilmatrix ist. Zum Beispiel ist für das Beispiel des 64 x 9 RAM1 CB gleich 1, so daß der sich ergebende Wert für Y gleich 7 mit D 2 und Y = 12, 20, 38 mit D = 4, 8 beziehungsweise 16 ist. In ähnlicher Weise ist für das Beispiel des 64 x 9 RAM2 CB gleich 2, was einen Wert für Y von 10 mit D = 2 und Y = 14, 22, 40 mit D = 4, 8 beziehungsweise 16 zur Folge hat.
  • Nun wird die sich ergebende, jedem 2:1, 4:1, 8:1 und 16:1 Bitdecoder entsprechende Zellenfläche bestimmt durch Berechnen von:
  • C = 2 + W,
  • Für das Beispiel des 64 x 9 RAM1-Makros ist S = 630, 648, 720 und 1026 für D = 2, 4, 8 beziehungsweise 16. In ähnlicher Weise ist für das ausgewählte 64 x 9 RAM2-Makro S = 900, 756, 792 und 1080 für D 2, 4, 8 und 16.
  • Für jede sich ergebende Makro-Konfiguration wird durch Berechnen der Verzögerungszeit für jede durch übliche Simulationsprogramme eine Leistungs-Charakteristik bestimmt.
  • Schließlich wird eine erforderliche Anzahl von Zeilen von M2- Verdrahtungs-WB3-Familien-Zellen für Verbindungen über die Verdrahtungsbuchten hinweg durch die folgende Berechnung bestimmt:
  • WC = (BW - 2 * CH)/HP,
  • wobei BW gleich der Ausdehnung der Verdrahtungsbucht, zum Beispiel 227,2 Mikrometer oder 192,0 Mikrometer, CH gleich der Matrixzellenhöhe, zum Beispiel 92,8 Mikrometer, und HP gleich der horizontalen Verdrahtungsperiodizität oder dem M1-Verdrahtungsrasterabstand, zum Beispiel 3,2 Mikrometer ist. Werden die oben beispielhaft angeführten Werte verwendet, ist die sich ergebende Anzahl von Verdrahtungsbuchtzeilen WC gleich 17 mit BW gleich 227,2 Mikrometer und WC ist gleich 2 mit BW gleich 194 Mikrometer.
  • Nun bezugnehmend auf Fig. 10B, setzen sich die aufeinanderfolgenden Schritte beim mit A bezeichneten Anfangspunkt fort. An dieser Stelle wird einer der Bitdecoder 92, 94, 96 und 98 zur Verwendung in dem M x N RAM1- oder RAM2-Makro, das erzeugt wird, ausgewählt. Ein spezieller Bitdecoder kann, um eine Makro-Konfiguration mit einer minimalen Fläche zu liefern, durch Vergleichen der berechneten Makro-Fläche S für jeden der Bitdecoder 92, 94, 96 und 98 und Auswählen des speziellen Bitdecoders, der eine festgestellte minimale Fläche S zur Folge hat, ausgewählt werden. Alternativ kann ein bestimmter Bitdecoder ausgewählt werden, der ein gewünschtes, vom Chipdesigner spezifiziertes Leistungsniveau liefert. Die für jede, den Bitdecodern 92, 94, 96 und 98 entsprechende Makro-Konfiguration bestimmten Leistungscharakteristika werden, um den gewünschten Leistungswert zu identifizieren, verglichen, und ein Bitdecoder, der in dem gewünschten Leistungswert resultiert, wird ausgewählt. Alternativ kann, wenn nichts anderes spezifiziert ist, ein bestimmter Bitdecoder aus einer Vorgabetabelle mit den der ausgewählten Anzahl von Worten entsprechenden Bitdecodern 92, 94, 96 und 98 ausgewählt werden. Es folgt eine exemplarische Vorgabetabelle für die RAM1- und RAM2-Konfiguration: RAM1 M Worte Bit Decoder RAM2 M Worte
  • Der ausgewählte Bitdecoder wird dann verwendet, um die Anzahl von Spalten C für die Makro-Konfiguration durch die folgende Berechnung zu bestimmen:
  • C = 2 + W,
  • wobei W gleich einer erforderlichen Anzahl von Wortselektoren ist und die Konstante 2 für eine erste Spalte und eine letzte Spalte steht.
  • Sind der Bitdecoder und die Anzahl von Spalten bestimmt, beginnt die physische Entwurfsbeschreibung des speziellen RAM1- oder RAM2-Makros mit dem Steuerblock 26 oder dem Lesesteuerblock 52. Ein erster Steuerblockstreifen oder -zeile wird aufeinanderfolgend von der ersten bis zur letzten Spaltenposition durch aus einer Steuer- oder Lesesteuer-Familienbibliothek ausgewählte Makrozellen definiert. Wie hinsichtlich der Figuren 7A und 8A dargestellt und beschrieben, ist eine erste Spalte (C1) durch eine ausgewählte Zwischenraumzelle definiert. Eine zweite Spalte (C2) ist durch eine Wortleitungs-Selektorzelle für eine gerade Spalte definiert. Eine dritte Spalte (C3) ist durch eine Wortleitungs- Selektorzelle für eine ungerade Spalte definiert. Nachfolgende Spalten von der nächsten bis zur letzten Spalte (C-1) werden aufeinanderfolgend durch der Spaltenposition entsprechende gerade und ungerade Wortleitungs-Selektorzellen definiert. Eine letzte Spalte (C) ist durch die ausgewählte Bitdecoderzelle definiert.
  • Als nächstes wird eine erforderliche Anzahl von Substreifen oder nachfolgenden Zeilen zur Personifizierung der Wortleitungs-Selektorzellen entsprechend den Wortadreßeingabebits A1 bis A5 bestimmt. Ein Wortadreß-Eingangsbit niedriger Ordnung A0 wird "vorpersonifiziert" oder innerhalb der Wortleitungs-Selektorzellen eingefügt, so daß zum Beispiel für das vordefinierte Minimum von zwei Wortleitungs-Selektorzellen eine dem Wortadreß-Eingangsbit A1 entsprechende nachfolgende Zeile oder eine zweite Zeile erforderlich ist, wie in den Figuren 7A und 8A gezeigt. Des weiteren sind zum Beispiel für zweiunddreißig Wortleitungs- Selektorzellen fünf nachfolgende Zeilen erforderlich, wobei jede nachfolgende Zeile für jeweils einen der Wortadreßeingänge A1 bis A5 vorgesehen ist.
  • Eine zweite Zeile enthält die durch eine Leerzelle definierte erste Spalte C1. Die nächstfolgenden Spalten C2 - (C-1) sind durch Wahr- und Komplementär-Wortadreß-A1-Personifizierungszellen entsprechend gerader und ungerader Spaltenposition definiert. Die letzte Spalte C der zweiten Zeile ist durch eine ausgewählte I/O-Zelle definiert. Für ein RAM1-Makro enthält die I/O-Zelle der Spalte C den Wortdecoderbereich 36 und den Steuerbereich 32. In ähnlicher Weise beinhaltet für ein RAM2-Makro die I/O-Zelle der Spalte C den Lesewort-Decoderbereich 68 und den Lesesteuerbereich 60. Eine spezielle I/O-Zelle wird entsprechend der Anzahl von Wortadreßdecodern 108, die für die verwendeten von den Wortadreßeingängen A0 bis A5 abhängig von der Anzahl der Wortleitungs-Selektorzellen erforderlich sind, entweder für ein RAM1- oder ein RAM2-Makro ausgewählt.
  • Jede der nächstfolgenden Zeile oder Zeilen beinhaltet die durch eine Leerzelle definierte erste Spalte C1, nächstfolgende, durch Wahr- und Komplementär-Personifizierungszellen für Wortadressen definierte Spalten C2 - (C-1) und die durch eine Leerzelle definierte letzte Spalte C. Ein anwachsendes Wortadreßbit niedriger Ordnung wird für die folgenden Zeilen verwendet, zum Beispiel A2 für eine dritte Zeile und A5 für eine sechste Zeile.
  • Als nächstes wird sequentiell ein Verdrahtungsbuchtstreifen oder -zeile von der ersten Spalte C1 bis zur letzten Spalte C durch ausgewählte Makro-Zellen aus einer Verdrahtungsbucht-Familienbibliothek definiert. Die erste Verdrahtungsbuchtzeile enthält die durch eine Leerzelle definierte erste Spalte C1. Die nächsten Spalten C2 - (C-1) sind entsprechend gerader und ungerader Spaltenposition durch Matrizenbuchtmetall-Makro-Zellen definiert. Die letzte Spalte C ist durch eine Matrizenbuchtmetall-Makro-Zelle definiert, die entsprechend dem ausgewählten Bitdecoder gewählt ist. Die PERLEV1-Schaltkreiszellen sind durch ausgewählte Verdrahtungsbucht-Familienleerzellen für jede Spaltenposition definiert. Nachfolgende identische Verdrahtungsbuchtzeilen werden wie erforderlich definiert. Die erforderliche Anzahl von Verdrahtungsbuchtzeilen ist gleich dem früher berechneten Wert WC.
  • Nun auf Fig. 10C bezugnehmend, setzen sich die aufeinanderfolgenden Schritte dem mit B bezeichneten Anfangspunkt folgend fort. Ein erster vollständiger Speicherblock 28 oder 56 wird nun definiert. Ein erster Speicherblockstreifen oder -zeile wird aufeinanderfolgend von der ersten bis zur letzten Spaltenposition durch aus einer ausgewählten Speicherfamilienbibliothek gewählte Makro-Zellen definiert. Eine Speicherfamilienbibliothek wird selektiv für den auf den ausgewählten Bitdecoder ansprechenden, vollständigen Speicherblock verwendet, zum Beispiel mit einer entsprechenden Familie für einen ausgewählten 16:1 Bitdecoder und einer entsprechenden Familie für jeden der 2:1, 4:1 oder 8:1 Bitdecoder.
  • Wie in den Figuren 7B und 8B dargestellt, ist eine erste Zeile durch ausgewählte Leerzellen für jede der Spalten C1 - C definiert. Eine zweite Zeile schließt die durch eine ausgewählte Leerzelle definierte erste Spalte C1 ein. Nächstfolgende Spalten C2 - (C-1) sind durch einer geraden oder ungeraden Spaltenposition entsprechende Speichermatrixzellen definiert. Die letzte Spalte C ist durch eine ausgewählte I/O-Zelle definiert, die auf den ausgewählten Bitdecoder anspricht. Innerhalb der I/O-Zelle der Spalte C sind der Bitselektorbereich 42 und der Abtast-, Zwischenspeicher- und Schreibbereich 44 für das RAM1 eingefügt.
  • Wenn festgestellt wird, daß ein weiterer vollständiger Speicherblock erforderlich ist, werden anschließend die erforderlichen Verdrahtungsbuchtzeilen und der nächste Speicherblock definiert.
  • Nach der Definition des letzten erforderlichen vollständigen Speicherblocks werden dann, wenn ein Teilspeicherblock erforderlich ist, die erforderlichen Verdrahtungsbuchtzeilen vor der Definition des Teilspeicherblocks festgelegt. Der Teilspeicherblock wird aus einer der erforderlichen Teilmatrixgröße entsprechenden, ausgewählten Teilspeicherfamilie festgelegt, zum Beispiel für eine mit 2, 4 oder 6 Bits. Der Teilspeicherblock enthält identische Typen von Zellen für jede der Spalten der identischen ersten und zweiten Zeilen, wie für den vollständigen Speicherblock beschrieben. Nach der Definition des Teilspeicherblocks ist das RAM1-Makro vollendet. Ansonsten ist, wenn ein Teilspeicherblock nicht erforderlich ist, das RAM1-Makro mit dem letzten definierten vollständigen Speicherblock vollendet.
  • Für ein ausgewähltes RAM2-Makro werden dann nach der Definition eines erforderlichen Teilspeicherblocks oder, falls nicht erforderlich, nach der Definition des letzten vollständigen Speicherblocks die erforderlichen Verdrahtungsbuchtzeilen wiederholt. Dann wird ein Schreibsteuerblock 54 für das RAM2-Makro definiert. Wie in Fig. 8C dargestellt, wird der Schreibsteuerblock 54 durch erste und zweite Zeilen definiert, welche die identischen Typen von Zellen an den Spaltenpositionen wie der Lesesteuerblock 52 aufweisen, außer daß dieser von einer Lesesteuerfamilie ausgewählt ist.
  • Mehrere unterschiedliche Speicherkapazitäten können für ein gewünschtes RAM1 und RAM2 bereitgestellt werden. Zum Beispiel kann das RAM1-Makro 22 für 16 K Speicherkapazität für 1 K Worte durch 36 Bits pro Wort und das RAM2-Makro 24 für 8 K Speicherkapazität für bis zu 512 Worte und 36 Bits pro Wort konfiguriert werden.

Claims (28)

1. Verfahren zum Erzeugen eines Schaltkreis-Makros mit einer ausgewählten Speicherkapazität in einem Rechnerentwurfssystem zum Erzeugen physischer Entwurfsdarstellungen für VLSI-Halbleiterschaltungsbauelemente (10) des Typs mit einer Matrixanordnung von doppelzeiligen Zellenpositionen innerhalb eines Gitters von ersten und zweiten leitenden Bahnen (12, 14, 16, 18), die sich in einer ersten und zweiten orthogonalen Richtung erstrecken, wobei das Verfahren von dem Typ ist, der den Schritt des Feststellens einer ausgewählten Anzahl von Worten und einer ausgewählten Anzahl von Bits pro Wort für das Schaltkreis-Makro beinhaltet, dadurch gekennzeichnet, daß es des weiteren die folgenden Schritte umfaßt:
Auswählen eines aus einer Mehrzahl vorgegebener, abgespeicherter Bitdecoder (34) zur Verwendung in dem Schaltkreis-Makro;
Feststellen einer erforderlichen Anzahl von Speicherblöcken (1-F; 28) für die ausgewählte Anzahl von Bits pro Wort, die auf den ausgewählten Bitdecoder ansprechen, durch Multiplizieren der ausgewählten Anzahl von Bits pro Wort mit einer ausgewählten Anzahl von Bitdecoderausgängen;
Dividieren des Multiplikationsergebnisses durch eine vordefinierte Zahl zum Feststellen einer erforderlichen Anzahl von vollständigen Speicherblöcken, wobei die vordefinierte Zahl einer Anzahl von Bits für einen vollständigen Speicherblock entspricht, und
Feststellen eines Bruchteils ungleich Null des Multiplikationsergebnisses, um einen erforderlichen Teilspeicherblock (30) zu bestimmen;
Feststellen einer erforderlichen Anzahl von Spalten für die ausgewählte Anzahl von Worten, die auf den ausgewählten Bitdecoder ansprechen, durch Dividieren der ausgewählten Anzahl von Worten durch die ausgewählte Anzahl von Bitdecoderausgängen und
Erhöhen des Divisionsergebnisses um einen vordefinierten ganzzahligen Wert;
Festlegen wenigstens eines auf die festgestellte Anzahl von Spalten ansprechenden Steuerblocks (26) durch Feststellen einer erforderlichen Anzahl von Zeilen für den auf die festgestellte Anzahl von Spalten ansprechenden Steuerblock;
sequentielles Erzeugen einer ersten Zeile (124), die eine erste Spalte aus einer Abstandszelle, darauffolgende Spalten aus Wortselektorzellen und eine letzte Spalte aus einer ausgewählten Bitdecoderzelle beinhaltet;
sequentielles Erzeugen einer zweiten Zeile (126), welche die erste Spalte aus einer leeren Zelle, die darauffolgenden Spalten aus Personifizierungszellen für Wortadressen und die letzte Spalte aus einer EINGABE/AUSGABE-Zelle beinhaltet, und
sequentielles Erzeugen von erforderlichen nachfolgenden Zeilen, welche die erste Spalte aus einer leeren Zelle, die darauffolgenden Spalten aus Personifizierungszellen für Wortadressen und die letzte Spalte aus einer leeren Zelle beinhalten;
Definieren der festgestellten Anzahl von auf die festgestellte Anzahl von Spalten ansprechenden Speicherblöcken durch nachfolgendes Erzeugen einer ersten Zeile, die eine erste Spalte bis zu einer letzten Spalte aus leeren Zellen beinhaltet; sequentielles Erzeugen einer zweiten Zeile, die eine erste Spalte aus einer Abstandszelle, darauffolgende Spalten aus Speichermatrixzellen und eine letzte Spalte aus einer EINGABE/AUSGABE-Zelle beinhaltet, um jeden Speicherblock der festgestellten Anzahl von Speicherblöcken zu definieren, und Feststellen des erforderlichen Teilspeicherblocks, Feststellen einer auf den festgestellten erforderlichen Teilspeicherblock ansprechenden Matrixgröße und Definieren des erforderlichen Teilspeicherblocks durch eine der Speichermatrixzellenfamilien, der auf die festgestellte Teilmatrixgröße anspricht, und Feststellen einer erforderlichen Anzahl von Verdrahtungszwischenraumzeilen (20) zum Verbinden zwischen benachbarten Blöcken der Steuerblöcke (26) und der Speicherblöcke (28).
2. Verfahren zum Erzeugen eines Schaltkreis-Makros nach Anspruch 1, dadurch gekennzeichnet, daß der Schritt zum Auswählen eines aus einer Mehrzahl vorgegebener, abgespeicherter Bitdecoder zur Verwendung in dem Schaltkreis-Makro die folgenden Schritte beinhaltet:
Berechnen einer sich ergebenden Fläche für das Schaltkreis-Makro für jeden einer Mehrzahl vorgegebener, abgespeicherter Bitdecoder;
Vergleichen der berechneten Flächen, um eine minimale Fläche festzustellen, und
Auswählen des die festgestellte minimale Fläche ergebenden Bitdecoders.
3. Verfahren zum Erzeugen eines Schaltkreis-Makros nach Anspruch 2, dadurch gekennzeichnet, daß der Schritt zum Berechnen einer sich ergebenden Fläche für das Schaltkreis- Makro für jeden einer Mehrzahl vorgegebener, abgespeicherter Bitdecoder die folgenden Schritte beinhaltet:
Berechnen einer resultierenden Anzahl von Wortselektoren (38) für die ausgewählte Anzahl von Worten;
Multiplizieren der berechneten Anzahl von Wortselektoren mit einem vordefinierten Wert und Erhöhen des Multiplikationsergebnisses um eine vorgegebene Anzahl von Zellen (21), um eine horizontale Zellenausdehnung festzustellen;
Berechnen einer resultierenden Anzahl von Speicherblöcken für die ausgewählte Anzahl von Bits pro Wort;
Multiplizieren der berechneten Anzahl von Speicherblöcken mit einer entsprechenden Anzahl von Zellen und Erhöhen des Multiplikationsergebnisses um eine vorgegebene Anzahl von Zellen, um eine vertikale Zellenausdehnung festzustellen, und
Multiplizieren der festgestellten horizontalen Ausdehnung mit der festgestellten vertikalen Ausdehnung, um die Makro-Zellenfläche zu bestimmen.
4. Verfahren zum Erzeugen eines Schaltkreis-Makros nach Anspruch 1, dadurch gekennzeichnet, daß der Schritt zum Auswählen eines aus einer Mehrzahl vorgegebener, abgespeicherter Bitdecoder zur Verwendung in dem Schaltkreis-Makro des weiteren die folgenden Schritte beinhaltet:
Feststellen wenigstens eines Leistungswertes für das resultierende Schaltkreis-Makro für jeden der Mehrzahl vorgegebener, abgespeicherter Bitdecoder;
Vergleichen der festgestellten Leistungswerte, um einen gewünschten Leistungswert festzustellen, und
Auswählen des den gewünschten Leistungswert ergebenden Bitdecoders.
5. Verfahren zum Erzeugen eines Schaltkreis-Makros nach Anspruch 4, dadurch gekennzeichnet, daß jede der Zellen eine Zelle in einer ersten Ebene und eine entsprechende Zelle in einer zweiten Ebene beinhaltet, wobei die Zelle in der ersten Ebene eine Halbleitersubstratebene und eine Schaltkreiszelle aus einem ersten Metall und die entsprechende Zelle in der zweiten Ebene eine Verdrahtungszelle aus einem zweiten Metall umfaßt.
6. Verfahren zum Erzeugen eines Schaltkreis-Makros nach Anspruch 5, dadurch gekennzeichnet, daß die aufeinanderfolgenden Spalten von Wortselektorzellen selektiv durch eine erste und eine zweite Wortselektorzelle entsprechend ungerader und gerader Spaltenposition definiert sind.
7. Verfahren zum Erzeugen eines Schaltkreis-Makros nach Anspruch 6, dadurch gekennzeichnet, daß aufeinanderfolgende Spalten von Personifizierungszellen für Wortadressen selektiv durch eine echte und eine komplementäre Personifizierungszelle für Wortadressen entsprechend ungerader und gerader Spaltenposition definiert sind.
8. Verfahren zum Erzeugen eines Schaltkreis-Makros nach Anspruch 7, dadurch gekennzeichnet, daß die EINGABE/AUSGABE- Zelle der letzten Spalte der zweiten Zeile selektiv durch eine aus einer Mehrzahl vorgegebener, abgespeicherter EINGABE/AUSGABE-Zellen definiert ist, die auf die festgestellte Anzahl von Spalten anspricht.
9. Verfahren zum Erzeugen eines Schaltkreis-Makros nach Anspruch 8, dadurch gekennzeichnet, daß jede der Zellen eine Zelle in einer ersten Ebene und eine entsprechende Zelle in einer zweiten Ebene beinhaltet, wobei die Zelle in der ersten Ebene eine Halbleitersubstratebene und eine Schaltkreiszelle aus einem ersten Metall und die entsprechende Zelle in der zweiten Ebene eine Verdrahtungszelle aus einem zweiten Metall umfaßt.
10. Verfahren zum Erzeugen eines Schaltkreis-Makros nach Anspruch 9, dadurch gekennzeichnet, daß jeder der Speicherblöcke durch eine aus einer Mehrzahl von Speichermatrix- Zellenfamilien definiert ist, die auf den ausgewählten Bitdecoder ansprechen.
11. Verfahren zum Erzeugen eines Schaltkreis-Makros nach Anspruch 10, dadurch gekennzeichnet, daß die letzte Spalte der zweiten Zeile selektiv durch eine aus einer Mehrzahl vorgegebener, abgespeicherter EINGABE/AUSGABE-Zellen definiert ist, die auf den ausgewählten Bitdecoder anspricht.
12. Verfahren zum Erzeugen eines Schaltkreis-Makros nach Anspruch 11, dadurch gekennzeichnet, daß die aufeinanderfolgenden Spalten von Speichermatrixzellen der zweiten Zeile selektiv durch eine erste und eine zweite Speichermatrixzelle entsprechend ungerader und gerader Spaltenposition definiert sind.
13. Verfahren zum Erzeugen eines Schaltkreis-Makros nach Anspruch 12, dadurch gekennzeichnet, daß es des weiteren die folgenden Schritte beinhaltet:
sequentielles Erzeugen einer ersten Zeile, die eine erste Spalte aus einer leeren Zelle, darauffolgende Spalten aus Matrixzwischenraum-Metallzellen und eine letzte Spalte aus einer EINGABE/AUSGABE-Zelle aus Matrixzwischenraummetall umfaßt, und
sequentielles Erzeugen identischer nachfolgender Zeilen, die auf die festgestellte erforderliche Anzahl von Verdrahtungszwischenraumzeilen ansprechen.
14. Verfahren zum Erzeugen eines Schaltkreis-Makros nach Anspruch 13, dadurch gekennzeichnet, daß die erzeugte erforderliche Anzahl von Verdrahtungszwischenraumzeilen eine Verdrahtungszelle aus einem zweiten Metall umfaßt.
15. Rechnerentwurfssystem zum Erzeugen physischer Entwurfsdarstellungen für VLSI-Halbleiterschaltungsbauelemente des Typs mit einer Matrixanordnung von doppelzeiligen Zellenpositionen innerhalb eines Gitters von ersten und zweiten leitenden Bahnen (12, 14, 16, 18), die sich in einer ersten und zweiten orthogonalen Richtung erstrecken, wobei das System Mittel zum Feststellen einer ausgewählten Anzahl von Worten und einer ausgewählten Anzahl von Bits pro Wort für das Schaltkreis-Makro beinhaltet, dadurch gekennzeichnet, daß das System des weiteren umfaßt:
Mittel zum Auswählen eines aus einer Mehrzahl vorgegebener, abgespeicherter Bitdecoder (34) zur Verwendung in dem Schaltkreis-Makro;
Mittel zum Feststellen einer erforderlichen Anzahl von Speicherblöcken (1-F; 28) für die ausgewählte Anzahl von Bits pro Wort, die auf den ausgewählten Bitdecoder ansprechen, durch Multiplizieren der ausgewählten Anzahl von Bits pro Wort mit einer ausgewählten Anzahl von Bitdecoderausgängen;
Mittel zum Dividieren des Multiplikationsergebnisses durch eine vordefinierte Zahl zum Feststellen einer erforderlichen Anzahl von vollständigen Speicherblöcken, wobei die vordefinierte Zahl einer Anzahl von Bits für einen vollständigen Speicherblock entspricht, und
Mittel zum Feststellen eines Bruchteils ungleich Null des Multiplikationsergebnisses, um einen erforderlichen Teilspeicherblock (30) zu bestimmen;
Mittel zum Feststellen einer erforderlichen Anzahl von Spalten für die ausgewählte Anzahl von Worten, die auf den ausgewählten Bitdecoder ansprechen, durch Dividieren der ausgewählten Anzahl von Worten durch die ausgewählte Anzahl von Bitdecoderausgängen und
Mittel zum Erhöhen des Divisionsergebnisses um einen vordefinierten ganzzahligen Wert;
Mittel zum Festlegen wenigstens eines auf die festgestellte Anzahl von Spalten ansprechenden Steuerblocks (26) durch Feststellen einer erforderlichen Anzahl von Zeilen für den auf die festgestellte Anzahl von Spalten ansprechenden Steuerblock;
Mittel zum sequentiellen Erzeugen einer ersten Zeile (124), die eine erste Spalte aus einer Abstandszelle, darauffolgende Spalten aus Wortselektorzellen und eine letzte Spalte aus einer ausgewählten Bitdecoderzelle beinhaltet;
Mittel zum sequentiellen Erzeugen einer zweiten Zeile (126), welche die erste Spalte aus einer leeren Zelle, die darauffolgenden Spalten aus Personifizierungszellen für Wortadressen und die letzte Spalte aus einer EINGABE/AUSGABE-Zelle beinhaltet, und
Mittel zum sequentiellen Erzeugen von erforderlichen nachfolgenden Zeilen, welche die erste Spalte aus einer leeren Zelle, die darauffolgenden Spalten aus Personifizierungszellen für Wortadressen und die letzte Spalte aus einer leeren Zelle beinhalten;
Mittel zum Definieren der festgestellten Anzahl von auf die festgestellte Anzahl von Spalten ansprechenden Speicherblöcken durch nachfolgendes Erzeugen einer ersten Zeile, die eine erste Spalte bis zu einer letzten Spalte aus leeren Zellen beinhaltet;
Mittel zum sequentiellen Erzeugen einer zweiten Zeile, die eine erste Spalte aus einer Abstandszelle, darauffolgende Spalten aus Speichermatrixzellen und eine letzte Spalte aus einer EINGABE/AUSGABE-Zelle beinhaltet, um jeden Speicherblock der festgestellten Anzahl von Speicherblöcken zu definieren, und Mittel zum Feststellen des erforderlichen Teilspeicherblocks, Mittel zum Feststellen einer auf den festgestellten erforderlichen Teilspeicherblock ansprechenden Matrixgröße und Mittel zum Definieren des erforderlichen Teilspeicherblocks durch eine der Speichermatrixzellenfamilien, der auf die festgestellte Teilmatrixgröße anspricht, und Mittel zum Feststellen einer erforderlichen Anzahl von Verdrahtungszwischenraumzeilen (20) zum Verbinden zwischen benachbarten Blöcken der Steuerblöcke (26) und der Speicherblöcke (28).
16. Rechnerentwurfssystem zum Erzeugen eines Schaltkreis-Makros nach Anspruch 15, dadurch gekennzeichnet, daß die Mittel zum Auswählen eines aus einer Mehrzahl vorgegebener, abgespeicherter Bitdecoder zur Verwendung in dem Schaltkreis- Makro die folgenden Schritte beinhalten:
Mittel zum Berechnen einer sich ergebenden Fläche für das Schaltkreis-Makro für jeden einer Mehrzahl vorgegebener, abgespeicherter Bitdecoder;
Mittel zum Vergleichen der berechneten Flächen, um eine minimale Fläche festzustellen, und
Mittel zum Auswählen des die festgestellte minimale Fläche ergebenden Bitdecoders.
17. Rechnerentwurfssystem zum Erzeugen eines Schaltkreis-Makros nach Anspruch 16, dadurch gekennzeichnet, daß die Mittel zum Berechnen einer sich ergebenden Fläche für das Schaltkreis-Makro für jeden einer Mehrzahl vorgegebener, abgespeicherter Bitdecoder die folgenden Schritte beinhalten:
Mittel zum Berechnen einer resultierenden Anzahl von Wortselektoren (38) für die ausgewählte Anzahl von Worten;
Mittel zum Multiplizieren der berechneten Anzahl von Wortselektoren mit einem vordefinierten Wert und Erhöhen des Multiplikationsergebnisses um eine vorgegebene Anzahl von Zellen (21), um eine horizontale Zellenausdehnung festzustellen;
Mittel zum Berechnen einer resultierenden Anzahl von Speicherblöcken für die ausgewählte Anzahl von Bits pro Wort;
Mittel zum Multiplizieren der berechneten Anzahl von Speicherblöcken mit einer entsprechenden Anzahl von Zellen und Erhöhen des Multiplikationsergebnisses um eine vorgegebene Anzahl von Zellen, um eine vertikale Zellenausdehnung festzustellen, und
Mittel zum Multiplizieren der festgestellten horizontalen Ausdehnung mit der festgestellten vertikalen Ausdehnung, um die Makro-Zellenfläche zu bestimmen.
18. Rechnerentwurfssystem zum Erzeugen eines Schaltkreis-Makros nach Anspruch 15, dadurch gekennzeichnet, daß die Mittel zum Auswählen eines aus einer Mehrzahl vorgegebener, abgespeicherter Bitdecoder zur Verwendung in dem Schaltkreis- Makro des weiteren beinhalten:
Mittel zum Feststellen wenigstens eines Leistungswertes für das resultierende Schaltkreis-Makro für jeden der Mehrzahl vorgegebener, abgespeicherter Bitdecoder;
Mittel zum Vergleichen der festgestellten Leistungswerte, um einen gewünschten Leistungswert festzustellen, und
Mittel zum Auswählen des den gewünschten Leistungswert ergebenden Bitdecoders.
19. Rechnerentwurfssystem zum Erzeugen eines Schaltkreis-Makros nach Anspruch 18, dadurch gekennzeichnet, daß jede der Zellen eine Zelle in einer ersten Ebene und eine entsprechende Zelle in einer zweiten Ebene beinhaltet, wobei die Zelle in der ersten Ebene eine Halbleitersubstratebene und eine Schaltkreiszelle aus einem ersten Metall und die entsprechende Zelle in der zweiten Ebene eine Verdrahtungszelle aus einem zweiten Metall umfaßt.
20. Rechnerentwurfssystem zum Erzeugen eines Schaltkreis-Makros nach Anspruch 19, dadurch gekennzeichnet, daß die aufeinanderfolgenden Spalten von Wortselektorzellen selektiv durch eine erste und eine zweite Wortselektorzelle entsprechend ungerader und gerader Spaltenposition definiert sind.
21. Rechnerentwurfssystem zum Erzeugen eines Schaltkreis-Makros nach Anspruch 20, dadurch gekennzeichnet, daß aufeinanderfolgende Spalten von Personifizierungszellen für Wortadressen selektiv durch eine echte und eine komplementäre Personifizierungszelle für Wortadressen entsprechend ungerader und gerader Spaltenposition definiert sind.
22. Rechnerentwurfssystem zum Erzeugen eines Schaltkreis-Makros nach Anspruch 21, dadurch gekennzeichnet, daß die EINGABE/AUSGABE-Zelle der letzten Spalte der zweiten Zeile selektiv durch eine aus einer Mehrzahl vorgegebener, abgespeicherter EINGABE/AUSGABE-Zellen definiert ist, die auf die festgestellte Anzahl von Spalten anspricht.
23. Rechnerentwurfssystem zum Erzeugen eines Schaltkreis-Makros nach Anspruch 22, dadurch gekennzeichnet, daß jede der Zellen eine Zelle in einer ersten Ebene und eine entsprechende Zelle in einer zweiten Ebene beinhaltet, wobei die Zelle in der ersten Ebene eine Halbleitersubstratebene und eine Schaltkreiszelle aus einem ersten Metall und die entsprechende Zelle in der zweiten Ebene eine Verdrahtungszelle aus einem zweiten Metall umfaßt.
24. Rechnerentwurfssystem zum Erzeugen eines Schaltkreis-Makros nach Anspruch 23, dadurch gekennzeichnet, daß jeder der Speicherblöcke durch eine aus einer Mehrzahl von Speichermatrix-Zellenfamilien definiert ist, die auf den ausgewählten Bitdecoder ansprechen.
25. Rechnerentwurfssystem zum Erzeugen eines Schaltkreis-Makros nach Anspruch 24, dadurch gekennzeichnet, daß die letzte Spalte der zweiten Zeile selektiv durch eine aus einer Mehrzahl vorgegebener, abgespeicherter EINGABE/AUSGABE-Zellen definiert ist, die auf den ausgewählten Bitdecoder anspricht.
26. Rechnerentwurfssystem zum Erzeugen eines Schaltkreis-Makros nach Anspruch 25, dadurch gekennzeichnet, daß die aufeinanderfolgenden Spalten von Speichermatrixzellen der zweiten Zeile selektiv durch eine erste und eine zweite Speichermatrixzelle entsprechend ungerader und gerader Spaltenposition definiert sind.
27. Rechnerentwurfssystem zum Erzeugen eines Schaltkreis-Makros nach Anspruch 26, dadurch gekennzeichnet, daß es des weiteren beinhaltet:
Mittel zum sequentiellen Erzeugen einer ersten Zeile, die eine erste Spalte aus einer leeren Zelle, darauffolgende Spalten aus Matrixzwischenraummetallzellen und eine letzte Spalte aus einer EINGABE/AUSGABE-Zelle aus Matrixzwischenraummetall umfaßt, und
Mittel zum sequentiellen Erzeugen identischer nachfolgender Zeilen, die auf die festgestellte erforderliche Anzahl von Verdrahtungszwischenraumzeilen ansprechen.
28. Rechnerentwurfssystem zum Erzeugen eines Schaltkreis-Makros nach Anspruch 27, dadurch gekennzeichnet, daß die erzeugte erforderliche Anzahl von Verdrahtungszwischenraumzeilen eine Verdrahtungszelle aus einem zweiten Metall umfaßt.
DE88107077T 1987-06-19 1988-05-03 Makro-Struktur und Verfahren zum Herstellen von Makros für VLSI-Halbleiterschaltungen. Expired - Fee Related DE3884282T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/064,030 US4849904A (en) 1987-06-19 1987-06-19 Macro structural arrangement and method for generating macros for VLSI semiconductor circuit devices

Publications (2)

Publication Number Publication Date
DE3884282D1 DE3884282D1 (de) 1993-10-28
DE3884282T2 true DE3884282T2 (de) 1994-04-21

Family

ID=22053113

Family Applications (1)

Application Number Title Priority Date Filing Date
DE88107077T Expired - Fee Related DE3884282T2 (de) 1987-06-19 1988-05-03 Makro-Struktur und Verfahren zum Herstellen von Makros für VLSI-Halbleiterschaltungen.

Country Status (4)

Country Link
US (1) US4849904A (de)
EP (1) EP0295410B1 (de)
JP (1) JPH0760442B2 (de)
DE (1) DE3884282T2 (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5182719A (en) * 1988-06-09 1993-01-26 Hitachi, Ltd. Method of fabricating a second semiconductor integrated circuit device from a first semiconductor integrated circuit device
US5452231A (en) * 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
US5109353A (en) * 1988-12-02 1992-04-28 Quickturn Systems, Incorporated Apparatus for emulation of electronic hardware system
US5329470A (en) * 1988-12-02 1994-07-12 Quickturn Systems, Inc. Reconfigurable hardware emulation system
US5210701A (en) * 1989-05-15 1993-05-11 Cascade Design Automation Corporation Apparatus and method for designing integrated circuit modules
US5353243A (en) 1989-05-31 1994-10-04 Synopsys Inc. Hardware modeling system and method of use
US5369593A (en) 1989-05-31 1994-11-29 Synopsys Inc. System for and method of connecting a hardware modeling element to a hardware modeling system
JP2575564B2 (ja) * 1991-03-05 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 自動マクロ最適順序化方法
US5225991A (en) * 1991-04-11 1993-07-06 International Business Machines Corporation Optimized automated macro embedding for standard cell blocks
US5341310A (en) * 1991-12-17 1994-08-23 International Business Machines Corporation Wiring layout design method and system for integrated circuits
US5680583A (en) * 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
US5638288A (en) * 1994-08-24 1997-06-10 Lsi Logic Corporation Separable cells having wiring channels for routing signals between surrounding cells
US5587923A (en) * 1994-09-07 1996-12-24 Lsi Logic Corporation Method for estimating routability and congestion in a cell placement for integrated circuit chip
US5798541A (en) * 1994-12-02 1998-08-25 Intel Corporation Standard semiconductor cell with contoured cell boundary to increase device density
US5631842A (en) * 1995-03-07 1997-05-20 International Business Machines Corporation Parallel approach to chip wiring
US5768146A (en) * 1995-03-28 1998-06-16 Intel Corporation Method of cell contouring to increase device density
US5764954A (en) * 1995-08-23 1998-06-09 International Business Machines Corporation Method and system for optimizing a critical path in a field programmable gate array configuration
US5841967A (en) * 1996-10-17 1998-11-24 Quickturn Design Systems, Inc. Method and apparatus for design verification using emulation and simulation
JP3938220B2 (ja) * 1996-11-29 2007-06-27 富士通株式会社 大規模集積回路装置の製造方法及び大規模集積回路装置
US6389379B1 (en) 1997-05-02 2002-05-14 Axis Systems, Inc. Converification system and method
US6134516A (en) * 1997-05-02 2000-10-17 Axis Systems, Inc. Simulation server system and method
US6421251B1 (en) 1997-05-02 2002-07-16 Axis Systems Inc Array board interconnect system and method
US6009256A (en) * 1997-05-02 1999-12-28 Axis Systems, Inc. Simulation/emulation system and method
US6026230A (en) * 1997-05-02 2000-02-15 Axis Systems, Inc. Memory simulation system and method
US6321366B1 (en) 1997-05-02 2001-11-20 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
US5960191A (en) 1997-05-30 1999-09-28 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US5970240A (en) * 1997-06-25 1999-10-19 Quickturn Design Systems, Inc. Method and apparatus for configurable memory emulation
JP3597706B2 (ja) * 1997-07-25 2004-12-08 株式会社東芝 ロジック混載メモリ
US6018622A (en) * 1997-09-24 2000-01-25 Sun Microsystems, Inc. Method for reducing circuit area by grouping compatible storage devices
US6247166B1 (en) 1998-06-25 2001-06-12 International Business Machines Corporation Method and apparatus for assembling array and datapath macros
JP4601737B2 (ja) * 1998-10-28 2010-12-22 株式会社東芝 メモリ混載ロジックlsi
US6305005B1 (en) * 1999-01-14 2001-10-16 Xilinx, Inc. Methods to securely configure an FPGA using encrypted macros
US6324676B1 (en) 1999-01-14 2001-11-27 Xilinx, Inc. FPGA customizable to accept selected macros
US6301695B1 (en) * 1999-01-14 2001-10-09 Xilinx, Inc. Methods to securely configure an FPGA using macro markers
US6539533B1 (en) * 2000-06-20 2003-03-25 Bae Systems Information And Electronic Systems Integration, Inc. Tool suite for the rapid development of advanced standard cell libraries
US7024653B1 (en) * 2000-10-30 2006-04-04 Cypress Semiconductor Corporation Architecture for efficient implementation of serial data communication functions on a programmable logic device (PLD)
US6658544B2 (en) 2000-12-27 2003-12-02 Koninklijke Philips Electronics N.V. Techniques to asynchronously operate a synchronous memory
US6768684B2 (en) * 2002-01-25 2004-07-27 Sun Microsystems, Inc. System and method for small read only data
JP3741053B2 (ja) * 2002-02-18 2006-02-01 ソニー株式会社 画像処理装置
US7062740B2 (en) * 2003-05-22 2006-06-13 Taiwan Semiconductor Manufacturing Co., Ltd. System and method for reducing design cycle time for designing input/output cells
JP2006049782A (ja) * 2004-08-09 2006-02-16 Matsushita Electric Ind Co Ltd 半導体集積回路装置のレイアウト方法
US8856704B2 (en) * 2010-11-22 2014-10-07 Industry-University Cooperation Foundation Hanyang University Layout library of flip-flop circuit
US9305905B2 (en) * 2013-09-06 2016-04-05 Micron Technology, Inc. Apparatuses and related methods for staggering power-up of a stack of semiconductor dies
CN114388018A (zh) 2020-12-14 2022-04-22 台湾积体电路制造股份有限公司 存储装置
DE102021109480A1 (de) 2020-12-14 2022-06-15 Taiwan Semiconductor Manufacturing Co., Ltd. Speichervorrichtung

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5961944A (ja) * 1982-09-30 1984-04-09 Fujitsu Ltd マスタスライス集積回路の製造方法
JPS59155954A (ja) * 1983-02-24 1984-09-05 Mitsubishi Electric Corp 半導体メモリ装置
US4598386A (en) * 1984-04-18 1986-07-01 Roesner Bruce B Reduced-area, read-only memory
ATE47928T1 (de) * 1984-05-14 1989-11-15 Ibm Halbleiterspeicher.
US4724531A (en) * 1984-07-18 1988-02-09 Hughes Aircraft Company Gate array with bidirectional symmetry

Also Published As

Publication number Publication date
EP0295410A3 (en) 1989-08-09
US4849904A (en) 1989-07-18
DE3884282D1 (de) 1993-10-28
JPS6481075A (en) 1989-03-27
EP0295410B1 (de) 1993-09-22
JPH0760442B2 (ja) 1995-06-28
EP0295410A2 (de) 1988-12-21

Similar Documents

Publication Publication Date Title
DE3884282T2 (de) Makro-Struktur und Verfahren zum Herstellen von Makros für VLSI-Halbleiterschaltungen.
DE69105334T2 (de) Gestapelte Bitleitungs-Architektur für Speicherzellenmatrix hoher Dichte vom Typ "cross-point".
DE3650323T2 (de) VLSI-Chip und Verfahren zur Herstellung.
DE4122829C2 (de) Halbleiterspeichereinrichtung
DE69933493T2 (de) Zugriffsstruktur für hochintegrierten Festwertspeicher
DE3941926C2 (de) Halbleiterspeichereinrichtung
DE3538530C2 (de)
DE69829092T2 (de) Festwertspeicher
DE2307739A1 (de) Monolithisch integrierte speicherzelle
DE4433695A1 (de) Dynamische Halbleiterspeichervorrichtung
DE69911102T2 (de) Verbesserte dynamische Direktzugriffspeicherschaltung und Herstellungsverfahren
DE3872737T2 (de) Verfahren zur kombinierung von "gate array"-schaltungen mit standardschaltungen auf ein gemeinsames halbleiterplaettchen.
DE3939337A1 (de) Halbleiterspeichereinrichtung mit einer mehrzahl von speicherfeldern mit verbessertem peripherem schaltkreisbereich und verbesserter verbindungsanordnung
DE19723432B4 (de) Halbleiterspeicher-Bauelement mit Bänken
DE4128568A1 (de) Mehrschichten-verdrahtungsverfahren zur modifikation am chip fuer einen hochintegrierten halbleiterschaltkreis (lsi)
DE4312651C2 (de) Dram
DE102020130215A1 (de) Techniken zum Transponieren einer Matrix durch Verwenden eines Speicherblocks
DE69120906T2 (de) Speisespannungsleitungsanordnung in einer Halbleiterspeicheranordnung
DE4126050A1 (de) Anordnung einer wortleitungstreiberstufe fuer eine halbleiterspeicheranordnung
DE3586718T2 (de) Festwertspeicher mit interdigitalen bitzeilen.
DE60101164T2 (de) Halbleiterspeicher und steuerungsverfahren dazu
DE102010037216B4 (de) Homogene Zellenanordnung
DE102021117736A1 (de) Reihenweises tracking von referenzerzeugung für speichervorrichtungen
DE69121527T2 (de) Blockslöschbare Flasch-EPROM-Speicheranordnung mit einer einzigen Metallschicht
DE10101630B4 (de) Halbleiterspeicherbauelement mit Eingabe-/Ausgabeleitungsstruktur

Legal Events

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