Titel: Integrierter Schaltkreis
Beschreibung
Die vorliegende Erfindung betrifft einen integrierten Schaltkreis nach dem Oberbegriff des unabhängigen Anspruches. Damit befaßt sich die vorliegende Erfindung allgemein mit der Herstellung von digitalen und/oder analogen Halbleiterbauelementen und/oder optischen Bauelementen.
Aus der DE 44 16 881 C2, deren Offenbarungsgehalt durch Bezugnahme vollumfänglich eingegliedert ist, ist ein Verfahren zum Betrieb einer Datenverarbeitungseinrichtung mit programmier- und konfigurierbarer Zellstruktur bekannt. Die Datenverarbeitungsvorrichtung umfaßt eine Zellmatrix aus einer Vielzahl orthogonal zueinander angeordneter, homogen strukturierter Zellen, welche in ihrer Funktion und Vernetzung frei programmierbar sind. Es wird nicht angegeben, wie in der Praxis ein integrierter Baustein mit dieser Zellmatrix vorteilhaft hergestellt werden kann. Außerdem wird
nicht angegeben, wie die dargestellte
Datenverarbeitunseinrichtung auf einfache Weise für bestimmte Anwendungen angepaßt hergestellt werden kann.
Aus „Principles of CMOS VLSI Design von N.H. Weste und K. Eshraghian, Addison-Wesley, 2. Auflage 1993, Kapitel 8, Abschnitt 8.4.2.1 ist ein Blocklayout, d.h. ein Floorplan eines generischen, d.h. an bestimmte Anwendungen anpaßbaren PLA bekannt. Dabei wird eine Abbildung gezeigt, bei welcher eine Reihe von Zellen für unterschiedliche logische Funktionen nebeneinander angeordnet sind. Es wird weiter in Fig. 8.80 des Dokumentes eine physikalische Implementierung für einen PLA gezeigt, bei welcher zwei unterschiedliche logische Funktionsblöcke mit unterschiedlich herangeführten Anschlüssen vorgesehen sind. Auch hier ist somit nicht angegeben, wie in der Praxis ein integrierter Baustein besonders vorteilhaft hergestellt werden kann.
Es ist wünschenswert, integrierte Schaltkreise, insbesondere hochkomplexe wie jene der in der DE 44 16 881 C2 beschriebenen Art, FPGAs, Mehrprozessorsysteme, Speicher o.ä. auf einfache Weise physikalisch implementieren und anpassen zu können.
Die Aufgabe der Erfindung besteht darin, Neues für die gewerbliche Anwendung bereitzustellen.
Die Lösung dieser Aufgabe wird unabhängig beansprucht. Bevorzugte Ausführungsformen finden sich in den Unteransprüchen .
Gemäß einem ersten Aspekt der vorliegenden Erfindung wird somit vorgeschlagen, daß bei einem integrierten Schaltkreis
mit mehreren, einander benachbarten Zellen, wobei wenigstens zwei Arten von Zellen vorgesehen sind, welche Anschlüsse aufweisen, vorgesehen ist, daß die Zellen eine zur Integration einer Vielzahl logischer Elemente ausreichende Größe aufweisen, wobei zumindest an einigen der Zellen zumindest ein logisches Element programmierbar ist und die Anschlüsse an zumindest im wesentlichen übereinstimmenden Positionen der Zelle vorgesehen sind, um so eine willkürliche, d.h. sich nicht streng regulär über den Baustein wiederholende Zellartendurchmischung bei der benachbarten Anordnung der Zellen zu erlauben.
Ein erster wesentlicher Gedanke der Erfindung besteht demnach darin, daß ein integrierter hochkomplexer Schaltkreis, auf dem eine Vielzahl von unterschiedlichen logischen Funktionen realisiert ist, ohne weiteres hergestellt werden kann, indem darauf Zellblöcke definiert werden, die im Zeilbereichsinneren programmierbare logische Elemente aufweisen und nach außen hin übereinstimmend angeordnete Anschlüsse aufweisen. Dabei wurde erkannt, daß es allein dadurch, daß zwischen Bereichen für die Realisierung bestimmter Funktionen auf vorbestimmmte Weise Leiterbahnen ohne eigentliche Funktion in Form von Anschlußleitungen vorgesehen werden, die Anzahl der beim Chipentwurf zu berücksichtigenden Objekte also erhöht wird, möglich wird, verschiedene Zelltypen an beliebigen Stellen auf dem integrierten Schaltkreis anzuordnen, ohne daß der vollständige Schaltkreis von Grund auf neu entworfen werden muß .
Bei dem integrierter Schaltkreis kann mit wenigstens einer der Zellarten wenigstens ein Speicher-, Floating-Point- Rechenwerk-, Integer-Rechenwerk-, Addierer-, Multiplizierer-,
Verschlüsselungswerk-, Verbindungs-, Ein- und/oder Ausgabemittel realisiert sein. Bei dem Verschlüsselungs- bzw. Kryptographiewerk kann es sich beispielsweise um eine Schaltungsstruktur handeln, die fest oder programmierbar die Bits eines Datenwortes gegeneinander vertauscht, um eine Ver- oder Entschlüsselung vorzunehmen. Bei einem Verbindungsmittel kann vorgesehen sein, daß zugeführte Signale ohne irgendeine Veränderung auf einer gegenüberliegenden Zellseite herausgeführt werden; es sind dazu im Zellinneren z.B. ausschließlich durchgehende Leiterbahnen vorgesehen. Wenn Speichermittel vorgesehen werden, kann es sich um einen RAM-, ROM-, PROM-, EEPROM-Speicher und/oder Kombinationen vorgenannter Speichertypen handeln. Die Ein- und/oder Ausgabemittel können bei integrierten Schaltkreisen für die Computertechnik zur Kommunikation mit einem Modemanschluß, einem Netzwerkanschluß, einem Speichermittel und/oder mit einem Peripheriegeräteanschluß wie einer Maus, einem Drucker, einer Anzeige usw. dienen.
Es wird vorgeschlagen ein universelles Verdrahtungssytem einzuführen, das für den gesamten integrierten Schaltkreis zeilübergreifend definiert ist. Das Verdrahtungssystem ist dabei derart ausgestaltet, daß eine maximale Anzahl von möglichen Ressourcen derart unterstützt wird, daß auch die ungünstigste Kombination von Zellen, die den maximalen Ressourcenaufwand erfordert, einwandfrei kombiniert werden kann. Das kann zu Leitungen und Anschlüssen innerhalb einer Zelle oder eines nachfolgend beschriebenen Streifens führen, die innerhalb einer bestimmten Zelle nicht verwendet werden aber jedoch von anderen Zellen benutzt sind. Im Folgenden sollen einige wesentlichen Details nähers beschrieben werden:
Unbenutzte Eingänge, sind Signale die entsprechend des universell definierten Verdrahtungssystems als Eingang vorgesehen sind, jedoch innerhalb einer spezifischen Zelle nicht verwendet werden. Diese werden entweder nicht weiter berücksichtigt und somit nicht verdrahtet oder auf einen festen definierten Wert gelegt.
Unbenutzte Ausgänge, sind Signale die entsprechend des universell definierten Verdrahtungssystems als Ausgang vorgesehen sind, jedoch innerhalb einer spezifischen Zelle nicht verwendet werden. Diese werden entweder mit einem dem Verdrahtungssytem entsprechenden Eingang derselben Zelle verschaltet oder in geeigneter Weise nach dem Stand der Technik terminiert.
Es soll ausdrücklich darauf hingewiesen werden, daß Leitungen, die durch eine Zelle geführt werden, egal ob von der Zelle benutzt oder unbenutzt, durchaus mit einem Verstärker (Buffer) zu Verbesserung der Signalqualität und/oder Laufzeit und/oder Registern zur zeitlichen Entkopplung und/oder weiterer Logik entsprechend der jeweiligen Schaltung versehen werden können.
Bevorzugt werden die Zellen für die Integration von einer entsprechend der jeweils nach den Stand der Technik sinnvolle Anzahl von logischen Elementen, insbesondere Gattern dimensioniert sein. Dies stellt sicher, daß der zusätzliche Platzaufwand für das Vorsehen von Verbindungsleitungen der Zellen sich nicht wesentlich nachteilig auswirkt und zugleich stark unterschiedliche Zellfunktionen realsierbar sind. Es ist insbesondere möglich, wenigstens zwei verschiedene Zellarten vorzusehen, die eine entsprechend dem jeweils nach
den Stand der Technik sinnvolle Anzahl von logischen Gatteräquivalenten umfaßt. Hierbei sei erwähnt, daß einleuchtenderweise mehr als zwei unterschiedliche Zellarten auf einem einheitlich gefertigten, durchgehenden Substrat, auf welchem der integrierten Schaltkreis gebildet ist, angeordnet werden können.
Die Zellen können bevorzugt so bemaßt sein, daß wenigstens eine Kantenlänge der Zellen wenigstens das 500fache, bevorzugt wenigstens das lOOOfache der den Herstellungsprozeß charakterisierenden Gatelänge beträgt. Bei einem Herstellungsprozeß, mit welchem 0,25 μm-Strukturen herstellbar sind, kann also eine Zellkante zumindest eine Länge von 125μm aufweisen. Bevorzugt ist, wenn beide Kanten der Zelle eine bestimmte Mindestgröße nicht unterschreiten. Dazu können wenigstens zwei Kantenlängen der Zellen wenigstens das 200fache, bevorzugt wenigstens das 500fache der den Herstellungsprozeß charakterisierenden Gatelänge betragen.
Bevorzugt ist es, wenn die Zellen verschiedener Arten zumindest im wesentlichen identische Größen aufweisen, also allenfalls nichtsignifikante Größenabweichungen besitzen. Dadurch ergibt sich der Vorteil, daß die Zellen einfach aneinander anreihbar sind. Geringfügige Größenunterschiede lassen sich beispielsweise derart durch das nachträgliche Vergößern von Zellen ausgleichen, daß sämtliche Zellen der größten verwendeten entsprechen, wobei die peripheren Anschlüsse der Zellen, um die Vergrößerung verlängert werden.
Es ergibt sich ein einheitliches Zellformat mit einem weitgehend einheitlichen Busformat, bzw. Anschlußformat und Position der peripheren Anschlüsse, sodaß eine jede beliebige
Zelle geometrisch durch eine beliebig andere ersetzt werden kann, ohne beispielsweise einen geometrischen Fehler und/oder Layoutfehler und/oder offene Leitungen und/oder kurzgeschlossene Leitungen zu erzeugen. Dabei sollte nach Möglichkeit jede beliebige definierte Kombination von beliebigen Zellen zu einer funktionsfähigen Schaltung beliebiger definierter Funktion führen.
Weiterhin wird vorgeschlagen ein Zellraster vorzusehen, in welches sämtliche Zellen passen (RCEL) . Derart können nunmehr größere Zellen (XCEL) verwendet werden, indem deren Größe ein Vielfaches des Zellrasters beträgt, wobei die jeweiligen Busstrukturen und peripheren Anschlüsse im Zellraster definiert sind und auch von den XCEL eingehalten werden. Unbenutzte Verbindungen werden dabei neutral, also ohne Abzweigung durch die XCEL durchgeführt.
Weiterhin wird vorgeschlagen Streifen zwischen den Zellen (RCEL und/oder XCEL und/oder normalen Zellen) vorzusehen, die eine geringe, vorzugsweise minimale Ausdehnung aufweisen. Diese Streifen können zum Adaptieren von Leitungen und Bussen zwischen den Zellen, sowie derer spezifischer Anpassung verwendet werden, wodurch sich eine höhere Flexibilität der Schaltung ergibt. Die Vorzüge des beschriebenen Verfahrens bleiben dabei vollständig erhalten, indem üblicherweise vordefinierte und vorverdrahtete Streifen verwendet werden, die jedoch im einzelnen Sonderfall per Position einfach modifiziert werden können. Alternativ können diese Streifen zu Beginn Undefiniert und insbesondere leer sein, sodaß diese effizient durch einen Router nach dem Stand der Technik nach Positionierung der Zellen und Streifen derart geroutet werden können, daß sich eine sinnvolle fehlerfreie und definitionsgemäße Verbindung zwischen den Zellen ergibt.
Durch die vorgeschlagene Struktur und Anordnung von Zellen ist insbesonders ein lokales Routing der Streifen, ohne Interaktion zwischen mehreren Streifen, möglich. Hierdurch wird der Routing- und Test-Aufwand, sowie die dazu benötigte Zeit, erheblich reduziert.
Die Anschlüsse werden bevorzugt zumindest einen der Anschlüsse Versorgungsspannung und/oder Masse, und/oder zumindest eine Zell-Ein- und/oder Ausgabeleitung umfassen, wobei es insbesondere möglich ist, daß die Zell-Ein- und/oder Ausgabeleitung einen Teil eines Ein- und/oder Ausgabebusses darstellt und/oder eine Taktleitung umfaßt. In diesem Fall werden die für jeweilige Bits vorgesehen Zu- und/oder Ableitungen an jeweils hinreichend korrespondierenden Stellen längs der Zellwand angeordnet sein. Dies ermöglicht es, daß zwei oder mehr voneinander unabhängige Busse an die Zelle herangeführt werden und/oder durch diese hindurch laufen, ohne daß Signaltransferprobleme relevant werden.
Es ist bevorzugt, zumindest einige der Zellanschlüsse am Zellrand anzuordnen. Dies erlaubt eine kachelartige Nebeneinanderordnung der Bauelemente, was herstellungstechnisch günstig ist. Die kachelartige Nebeneinanderordnung wird bevorzugt ohne Überlappung der Einzelelemente erreicht, was das Layout weiter vereinfacht. Die Anschlüsse sind dabei vollständig bis zum Rand geführt, so daß auf der Maske Anschlüsse benachbarter Zellen aneinander stoßen und im integrierten Schaltkreis ineinander übergehen.
Alternativ und/oder zusätzlich können zumindest einige der Zellanschlüsse auf der Zellober- und/oder Unterseite
angeordnet sein. Dies erlaubt es, zumindest zwei Lagen Zellen übereinander vorzusehen. Bei einer Zellstruktur gemäß DE 44 16 881 können insbesondere die Rechenwerke wie Multiplizierer, Addierer usw. in einer ersten Lage und die damit verbundenen Steuerautomaten, d.h. Statemachines, in der zweiten Lage angeordnet werden.
Die Zellen des integrierten Schaltkreises können jeweils einzeln den Designtools verarbeitet werden. Insbesondere die Layout-Funktionen „plazieren" und „routen" sind je Zelle durchführbar, wobei jeweils nur eine einzige Zelle je Gattung bearbeitet werden muß, selbst dann, wenn diese Zelle mehrfach auf dem integrierten Schaltkreis vorhanden ist. Selbiges gilt für sämtliche weiteren Funktionen, sowie insbesondere auch für geometrische und elektrische Überprüfungen, sowie Simulationen und Characterisierungen. Die Ergebnisse der einzelnen Arbeitsschritte werden für jede Zelle gespeichert.
Durch dieses Vorgehen ist der Designaufwand und die Designzeit erheblich minimiert.
Nach dem Zusammenfügen der Zellen müssen gegebenenfalls nur noch Strukturen außerhalb der Zellen bearbeitet werden. Für Prüfungen sind nur noch die Zellränder und/oder - Überlappungen zu berücksichtigen.
Für die Simulation, Überprüfung, Characterisierung und weiterer Arbeitsschritte zur Fertigstellung des gesamten integrierten Schaltkreises werden die vorher gespeicherten Daten der einzelnen Zellen jeweils als Vorgaben in die jeweiligen Routinen einbezogen, sodaß eine erneute Bearbeitung der Zellen entfallen kann. Insbesondere, da
mehrfach vorkommende identische Zellen nur einmal vorher bearbeitet wurden, sinkt der Aufwand erheblich.
Die Erfindung wird im folgenden nur beispielsweise anhand der Zeichnung erläutert. In dieser zeigt:
Fig. 1 einen integrierten Schaltkreis der vorliegenden
Erfindung; Fig. 2 einen Ausschnitt aus dem integrierten Schaltkreis mit einer einzelnen Zellen; Fig. 3 verschiedene Zellen des erfindungsgemäßen integrierten Schaltkreises mit jeweiligen logischen Elementen; Fig. 4 Anordnung von Zellen mit Streifen zur Verbindung; Fig. 5 Mögliche Funktionen eines Streifens; Fig. 6 Mögliche Verbindungsstrukturen innerhalb einer
Zelle; Fig. 7 Designflow innerhalb eines Designtools; Fig. 8 Zellraster mit verschiedenen Zellgrößen.
Nach Fig. 1 umfaßt ein allgemein mit 1 bezeichneter integrierter Schaltkreis 1 eine Reihe unterschiedlicher Arten von Zellen 2a-2e mit jeweiligen logischen Elementen 3a-3e. Die einzelnen Zellen sind voneinander abgegrenzt, wie durch Grenzlinien 4 veranschaulicht. An den Zellen sind Anschlüsse 5a-5d vorgesehen, die die Zellen 2a-2e über die Grenzlinien hinweg mit den jeweiligen Nachbarzellen bzw. nach außen verbinden.
Bei den Zellen 2a handelt es sich um Speicherzellen 2a, die für die wahlfreie Speicherung von Daten, d.h. für Lese- und/oder Schreiboperationen ausgelegt sind. Bei der Zelle 2b handelt es sich um eine I/O-Zelle 2b, d.h. um eine Eingabe-
Ausgabe-Einheit-Zelle 2b. Die I/O-Zelle 2b ist dazu ausgebildet, eine Ein- und/oder Ausgabe zu einem oder mehreren Peripheriegeräten wie einer Maus, einem Trackball, einem Touchpad, einem Drucker, einem Modem, einer Kamera, einem Anzeigegerät und/oder einer Grafikkarte vorzusehen. Bei den Zellen 2c handelt es sich um Floating-Point-Unit-Zellen 2c, d.h. Gleitkomma-Einheit-Zellen 2c, die dazu ausgebildet sind, Gleitkomma-Rechenoperationen auf Daten durchzuführen, die Gleitkomma-Zahlen repräsentieren. Bei den Zellen 2d handelt es sich um Rechenwerk-Zellen 2d, die dazu ausgelegt sind, logische Operationen sowie arithmetische Operationen auf Daten durchzuführen, die logische Operanden bzw. ganze Zahlen repräsentieren. Bei den Zellen 2e handelt es sich um multiplizierende Zellen 2e, die Zahlen repräsentierende Daten multiplikativ miteinander verknüpfen.
Jede der Zellen 2a bis 2e ist aus einer Vielzahl von Gattern (nicht gezeigt) in per se bekannter Weise aufgebaut. Diese Gatter bilden die logischen Elemente 3a-3e der Zellen. Von den Gattern sind zumindest einige in jeder Zelle während der Laufzeit programmierbar, um eine jeweils erforderliche Aufgabe mit der Zelle ausführen zu können.
Die Grenzlinien 4 zwischen den Zellen müssen nicht durch eine reale Struktur implementiert sein. Vielmehr können sie durch einen zwischen den eng beieinander liegenden Gattern und anderen Bestandteilen der Zellen 2a bis 2e angeordneten und nur von den Leitungen der Anschlüsse 5 durchquerten Freiraum definiert sein, der bei einem guten Entwurf eine allenfalls geringe Ausdehnung besitzt. Dabei können die gegebenenfalls nur gedachten Grenzlinien 4 so angeordnet werden, daß die einzelnen Zellen 2a bis 2e zumindest im wesentlichen identische Größen besitzen. Die Grenzlinien 4 bilden dabei
ein die jeweilige Zelle 2 umschreibendes Viereck 6, welches Seiten 4a-4d aufweist, vgl. Fig. 2.
Nach den Fig. 2 und 3 sind an jeder der Seiten 4a bis 4d Anschlüsse 5a-5d vorgesehen, die die Zellen 2a-2e an mit den jeweiligen Nachbarzellen verbinden bzw. vom integrierten Schaltkreis nach außen führen und/oder an den Außenseiten der Außenzellen des integrierten Schaltkreises 1 auf geeignete Weise abgeschlossen sind.
Anschluß 5a stellt einen aus Eingangsleitungen 7a und Ausgangsleitungen 7b bestehenden Busanschluß 5a dar. Anschluß 5c stellt einen aus Eingangsleitungen 8b und Ausgangsleitungen 8a bestehenden Busanschluß 5c dar. Im Inneren der Zelle 2d sind Schalter vorgesehen, um wahlweise Daten von den Eingangsleitungen 7a des Busanschlusses 5a zu den Ausgangsleitungen 8a des Busanschlusses 5c zu übertragen und/oder andere Daten mit gleichem Datenformat an die Ausgangsleitungen 8a zu übertragen. Es ist somit ein interner Bus 9 vorgesehen. Die Eingangsleitungen 7a und die Ausgangsleitungen 8a sind bis unmittelbar an den durch die Grenzlinie 4a bzw 4c definierten Zellrand geführt. Die Eingangsleitungen 7a liegen dabei zugleich so genau gegenüber den jeweiligen Ausgangsleitungen 8a, daß bei
Nebeneinanderanordnung zweier Zellen Ausgangsleitungen 8a der ersten Zelle mit Eingangsleitungen 7a der zweiten Zelle in elektrisch leitender Verbindung stehen.
In entsprechender Weise sind am Anschluß 5a noch Ausgangsleitungen 7b vorgesehen, die mit Eingangsleitungen 8b des Anschlusses 5c korrespondieren wie zuvor für das Ein/Ausgangsleitungspaar 7a, 8a erläutert. Weiter korrespondieren die an der Seite 4b vorgesehenen Ein- und Ausgangsleitungen
des Anschlußes 5b mit Ausgangs- und Eingangsleitungen des Anschlusses 5d der Seite 4d.
Im Inneren der Zelle 2d sind ein Rechenwerk 10 für die Verknüpfung von auf den Eingangsleitungen der Anschlüsse 5 einlaufenden Daten sowie ein zugehöriger Steuerautomat 11 und eine Reihe interner Verbindungen 12a bis 12c zwischen diesen untereinander und zur Verbindung derselben mit dem Bus 9 in per se bekannter Weise vorgesehen.
Nach Fig. 3 weisen die Zellen 2a bis 2e der verschiedenen Zellarten identische Größen auf wie durch die identische Größe der die Zelle umschreibenden Grenzlinien 4 veranschaulicht. Die Anschlussleitungen 5 aller Zellen 2a bis 2e sind jeweils bis an die Zellgrenze 4 herangeführrt, wo sie an den jeweils gleichen Positionen liegen. Die interne Verbindungen zwischen den Anschlüssen 5 an einer Zelle 2 untereinander und zu den in der Zelle vorgesehenen logischen Elementen kann dabei von Zelle zu Zelle variieren.
Fig. 4 zeigt eine Anordnung von Zellen (0401), die durch Streifen (0402) miteinander verbunden sind. Die Streifen sind beispielsweise für folgende Funktionen verwendbar:
• Individuelle Verdrahtung von Zellen untereinander
• Terminierung von Leitungen
• Definieren von offenen Eingängen
• Einstellen von Konstanten
• Ausgleichen von unterschiedlichen Zellgrößen
Figur 5 zeigt einige Verdrahtungs-Beispiele für Streifen (0503) . 0501 und 0502 stellen zwei Zellen dar, die gleich oder unterschiedlich sein können. Mehrere Ausgänge von 0501 werden als Bus direkt an 0502 weitergeleitet (0504) . Bei 0505
wird ein Ausgang an mehrere Eingänge verdrahtet. Es soll explizit angemerkt sein, daß in diesem Fall auch Ausgang und/oder Eingänge einzeln oder gemeinsam als bidirektionale Leitungen ausgestaltet sein können. 0506 zeigt eine einfache Verdrahtung, bei der die Leitung nicht direkt verdrahtet ist, sondern von einer Position bei 0501 zu einer anderen Position bei 0502 führt. 0508 zeigt einen über einen Widerstand nach H-Pegel terminierten Ausgang. 0509 zeigt eine offen bidirektionale Leitung. Ein mit H-Pegel definierter Eingang ist mit 0510 dargestellt. 0507 zeigt zwei gedrehte Signale, die zudem an andere Positionen geleitet werden. 0512 zeigt einen mit L-Pegel definierten Eingang. 0513 zeigt eine über einen Widerstand mit L-Pegel definierte bidirektionale Leitung. 0511 zeigt einen offenen Eingang. Es soll angeführt werden, daß auch andere als die beispielhaft dargestellten Verdrahtungsarten und Kombinationen möglich sind.
Insbesondere können in den Streifen beispielsweise auch Treiber, Register, Dekoder und andere aktive Elemente untergebracht werden. Für den Test von Bausteinen ist der Einsatz von Teststrukturen und -anschlüssen und Kennungen (z.B. Barcodes) in den Streifen denkbar.
Figur 6 zeigt eine mögliche Verdrahtung von universellen Leitungen in einer Zelle 0601. Eine erste beispielhafte Leitung ist direkt durch die Zelle geführt (0602) und besitzt einen möglichen Anschluß an die Zelle (0603) . Eine weitere Leitung (0604) ist durch ein aktives Element (0605) durch die Zelle geführt und besitzt ebenfalls eine mögliche Abzweigung (0606) .
Das aktive Element kann beliebig ausgestaltet sein, beispielsweise als
• Treiber
• Register
• Daisy Chain Logik
Figur 7 zeigt die Neuerung in dem Designflow des beschriebenen Verfahrens. Ein beliebiger Flow verarbeitet zunächst die einzelnen Zellen, wobei mehrfache identische Zellen nur einmal verarbeitet werden müssen (0701) . Die Ergebnisse werden gespeichert (0702) . In der nachfolgenden Bearbeitung des gesamten integrierten Schaltkreis wird die globale Verarbeitung durchgeführt, wobei die einzelnen Zellen nicht erneut verarbeitet werden müssen, sondern die jeweils erforderlichen Daten aus der Datenbank (0702) gelesen werden.
Figur 8 zeigt ein Zellraster (0801) zum Design einer Grundstruktur. Einzelne Zellen können exakt dem Raster entsprechen (0802), eventuell durch Verwendung von Streifen zum Ausgleich der Dimensionen. Weiterhin können Zellen als ein Vielfaches des Rasters dimensioniert sein (0803, 0804) oder eine beliebige in das Raster passende Form aufweisen (0805) .
Der integrierte Schaltkreis der vorliegenden Erfindung wird hergestellt wie folgt:
Zunächst werden die für einen spezifischen Anwendefall erforderlichen Speicherkapazitäten, Rechenleistungen, EinAusgabe-Anforderungen usw. des integrierten Schaltkreises 1 bestimmt. Dann wird ermittelt, mit welchen Schaltungen wie Speicher-, Floating-Point-Rechenwerk-, Integer-Rechenwerk-, Addierer-, Multiplizierer-, Verschlüsselungswerk-, Verbindungs-, Ein- und/oder Ausgabeschaltungen usw. diese Funktionen realisierbar sind. Diese Schaltungen werden nun blockweise zusammengefaßt, um jeweilige Zellarten zu
definieren, z.B. RAM-Zellen (Speicherzelle für wahlfreien Zugriff) , I/O-Zellen, Floating-Point-Unit-Zellen, Rechenwerk- Zellen, multiplizierende Zellen usw. Gegebenenfalls wird dabei geprüft, ob diese Funktionen schon für früher hergestellte integrierte Schaltkreise bereitgestellt wurden. Es wird dabei versucht, die gewünschten Funktionen so auf unterschiedliche Zellarten zu verteilen, daß alle Zellarten eine zumindest näherungsweise einen gleichen Flächenbedarf aufweisen. Die Zellart mit dem höchsten Flächenbedarf bestimmt dabei die Größe aller Zellarten.
Nach der Funktionsaufteilung auf verschiedene Zellarten 2a bis 2e werden die zwischen den Zellen benötigten Anschlußleitungen 5 bestimmt. Dann wird eine räumliche Anordnung der Anschlußleitungen 5 an den Zellen festgelegt. Die Zellen der jeweiligen Zellarten 2a bis 2e werden dann jeweils entworfen, ohne daß eine weitere Beeinflussung durch den Entwurf der anderen Zellarten erfolgt. Dabei werden vom Inneren der Zellen 2 Leitungsanschlüsse 5 bis an den Zellrand 4 gelegt. Von den in den verschiedenen Zellarten vorgesehenen Gattern werden dabei gegebenenfalls einige in jeder Zelle so entworfen, daß sie während der Laufzeit programmierbar sind, um eine jeweils erforderliche Aufgabe mit der Zelle ausführen zu können. Dies ist dann der Fall, wenn beispielsweise die Verbindungsstruktur veränderbar ist, d.h. die ausgewerteten Anschlüsse und/oder die Funktion eines Rechenwerkes usw. verändert werden kann.
Dies geschieht für alle Zellarten nacheinander, sofern nicht auf Entwürfe für früher hergestellte integrierte Schaltkreise zurückgegrif en werden kann. Stellt sich dabei heraus, daß der Platzbedarf für die größte Zellart nicht ausreicht, können alle Zellen einfach dadurch vergrößert werden, daß die
Anschlußleitungen 5 entsprechend verlängert werden oder es werden unterschiedlich dimensionierte Streifen verwendet. Dies ermöglicht es insbesondere, in großen Gruppen einen parallelen Entwurf aller Zellarten gleichzeitig vorzunehmen.
Es wird dann die Funktionsfähigkeit und/oder Geometrie jeder einzelnen Zellart für sich überprüft, ohne daß die Funktionsfähigkeit und/oder Geometrie anderer Zellarten gleichzeitig mitgeprüft werden müßte. Dies verringert den Gesamtrechenaufwand für die Überprüfung des integrierten Schaltkreises wesentlich und ermöglicht so den einfachen Entwurf hochkomplexer Schaltkreise aus sich regulär wiederholenden, selbst komplexen Einheiten.
Nach Abschluß des Entwurfes der letzten fertigzustellenden Zellart wird ein Gesamtentwurf erstellt, bei dem die verschiedenen Zellarten so nebeneinander plaziert werden, daß die entsprechenden Ein- und Ausgangsleitungen in elektrisch leitende Verbindung stehen. Danach werden erforderlichenfalls die elektrischen Verbindungen zwischen den Zellen funktioneil und/oder geometrisch überprüft. Auch hierfür ist der Überprüfungsaufwand sehr gering, insbesondere deshalb, da zumeist jede Kante zwischen den Zellen (oder jeder Streifen) einzeln geprüft werden kann.
Erforderlichenfalls werden weitere, sich nicht wiederholende Einheiten vorgesehen, wie Überspannungsschutzschaltungen, Die seals, d.h. Chipabschlüsse, Leitungsabschlüsse für am Schaltkreisrand liegende Anschlussleitungen, Teststrukturen, Interfacestrukturen, Steuerungen, Speicher, usw. So kann für einen tatsächlichen Entwurf einer Schaltung nach DE 44 16.881 C2 ein einzelner Konfigurationsmanager vorgesehen werden, der
eine von den anderen Zellarten abweichende Anschlussleitungsanordnung besitzt .
Auf diese Weise kann ein integrierter Schaltkreis für einen spezifischen Zweck in sehr kurzer Zeit entworfen und zur Herstellung gegeben werden. Die Herstellung selbst erfolgt dann auf konventionelle Weise.
Es sei darauf hingewiesen, daß neben oder anstelle der in den Fig. 1 und 3 gezeigten Zellarten auch andere verwendbar sind. Beispielsweise ist es möglich, anstelle von zwei verschiedenen Zellarten, von denen die erste Gleitkomma- Operationen und die zweite arithmetische Verknüpfungen ganzer Zahlen durchführt, lediglich eine einzige Zellart zur Implementierung dieser Funktionen vorzusehen, mit der beide Operationsarten ausgeführt werden können.
Es sei darauf hingewiesen, daß die Zellen nicht zwingend viereckig ausgebildet werden müssen. Insbesondere sind andere Ausgestaltungen anderen Zellformen verwendbar, welche eine überdeckende Neben- bzw. Übereinander-Anordnung erlauben. So ist die Verwendung sechs- oder dreieckiger Zellen denkbar. Weiter ist es denkbar, zwei oder mehr Zellformen zu mischen, z.B. Dreiecke mit Trapezen. Es werden dann die Anschlüsse an den Zellgrenzen für alle Zellformen so positioniert, daß eine nachbarschaftliche Anordnung der verschiedenen Zellformen wie gewünscht möglich wird. Auch damit liegen also die Anschlüsse an zumindest im wesentlichen übereinstimmenden Positionen der Zelle, um so die erfindungsgemäße Zellartendurchmischung bei der benachbarten Anordnung der Zellen zu ermöglichen.
Es sei darauf hingewiesen, daß die korrespondierenden Ein- und Ausgangsleitungen auf benachbarten Seiten der Zellen
nicht zwingend über eine Busstruktur verbunden werden müssen, So ist es insbesondere möglich, andere als die auf der einen Seite eingespeisten Daten auf der gegenüberliegenden auszugeben. Die Daten können z.B. durch das Rechenwerk verändert werden.
Es sei darauf hingewiesen, daß die Verdrahtung neben einer herkömmlichen elektrischen Ausgestaltung auch durch optische Mittel ausgeführt sein kann.
Bezugszeichenliste
1= integrierter Schaltkreis
2= Zellenarten
2a= RAM-Zelle (Speicherzelle für wahlfreien Zugriff)
2b= I/O-Zelle (Eingabe-Ausgabe-Einheit-Zelle)
2c= Floating-Point-Unit-Zelle (Gleitkomma-Einheit-Zelle)
2d= Rechenwerk-Zelle (ALU)
2e= Multiplizierende Zelle
3= logische Elemente der Zellen 2a-2e
4= Zellgrenze a,b,c,d= Seiten der Zelle = Anschlüsse an den Zellen 2 a,b,c,d= Busanschlüsse an den Seiten = umschreibendes Viereck 6 a= Eingangsleitungen am Busanschluß 5a a= Ausgangsleitungen am Busanschluß 5c = interner Bus 0=Rechenwerk der Zelle 2d 1= Steuerautomat 11 der Zelle 2d 2 interne Verbindungen in Zelle 2d