-
Hintergrund der Erfindung
-
Integrierte Schaltkreise weisen normalerweise Tausende von Komponenten auf, die komplizierte Wechselbeziehungen haben. Diese Schaltkreise werden im Allgemeinen mit hoch automatisierten Verfahren entworfen, die als elektronische Entwurfsautomatisierung (electronic design automation; EDA) bekannt sind. EDA beginnt mit einer Funktionsspezifikation, die in einer Hardwarebeschreibungssprache (hardware description language; HDL) bereitgestellt wird, und fährt mit der Spezifikation eines Schaltkreisdesigns fort, der die Spezifikation von elementaren Schaltkreiskomponenten, die als Zellen bezeichnet werden, die physische Anordnung der Zellen und die Verdrahtung umfasst, die die Zellen miteinander verbindet. Die Zellen implementieren logische oder andere elektronische Funktionen unter Verwendung einer speziellen Integrierter-Schaltkreis-Technologie.
-
EDA kann in eine Reihe von Phasen unterteilt werden, wie etwa Synthese, Platzierung, Trassierung (Routing) usw. Jeder dieser Schritte kann das Auswählen von Zellen aus einer Zellenbibliothek umfassen. Normalerweise kann eine sehr große Anzahl von unterschiedlichen Schaltkreisdesigns, die verschiedene Zellenkombinationen verwenden, eine Funktionsspezifikation für einen Schaltkreis erfüllen. Ein Latch-up ist eine Art von Kurzschluss, der gelegentlich in integrierten Schaltkreisen auf Grund von parasitären Bipolartransistoren auftritt, die durch benachbarte Verbindungsstellen in dem integrierten Schaltkreis entstehen. EDA-Tools können Abgriffzellen in integrierten Schaltkreisdesigns umfassen, die eine Body-Vorspannung von Transistoren zum Vermeiden des Latch-up bereitstellen können.
-
-
Kurze Beschreibung der Zeichnungen
-
Aspekte der vorliegenden Erfindung lassen sich am besten anhand der nachstehenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen verstehen. Es ist zu beachten, dass entsprechend der üblichen Praxis in der Branche verschiedene Elemente nicht maßstabsgetreu gezeichnet sind. Vielmehr können der Übersichtlichkeit der Erörterung halber die Abmessungen der verschiedenen Elemente beliebig vergrößert oder verkleinert sein.
- 1 ist ein Blockdiagramm, das ein Beispiel für ein Verarbeitungssystem gemäß einigen Ausführungsformen zeigt.
- 2 ist ein Prozessablaufdiagramm, das Aspekte eines Beispiels für ein Integrierter-Schaltkreis-Designverfahren gemäß einigen Ausführungsformen zeigt.
- Die 3A, 3B und 3C zeigen Aspekte eines Beispiels für einen Integrierter-Schaltkreis-Lageplan gemäß einigen Ausführungsformen.
- 4 zeigt Aspekte eines weiteren Beispiels für einen Integrierter-Schaltkreis-Lageplan gemäß einigen Ausführungsformen.
- 5 ist ein Prozessablaufdiagramm, das Aspekte eines Beispiels für ein Integrierter-Schaltkreis-Designverfahren gemäß einigen Ausführungsformen zeigt.
- 6 ist eine schematische Darstellung, die ein Beispiel für ein Standard-Layout-Zellenmodell gemäß einigen Ausführungsformen zeigt.
- 7 ist eine schematische Darstellung, die ein weiteres Beispiel für ein Standard-Layout-Zellenmodell gemäß einigen Ausführungsformen zeigt.
- 8 zeigt ein Beispiel für ein Zellenmodellierungsverfahren gemäß einigen Ausführungsformen.
- 9 zeigt ein weiteres Beispiel für ein Zellenmodellierungsverfahren gemäß einigen Ausführungsformen.
- 10 zeigt Aspekte eines weiteren Beispiels für ein Abgriffzellen-Modellierungsverfahren gemäß einigen Ausführungsformen.
- Die 11 bis 14 zeigen verschiedene Beispiele für Abgriffzellen-Konfigurationen gemäß einigen Ausführungsformen.
- 15 ist ein Prozessablaufdiagramm, das Aspekte eines Beispiels für ein Integrierter-Schaltkreis-Designverfahren gemäß einigen Ausführungsformen zeigt.
- 16 ist ein Prozessablaufdiagramm, das Aspekte eines weiteren Beispiels für ein Integrierter-Schaltkreis-Designverfahren gemäß einigen Ausführungsformen zeigt.
- 17 zeigt ein Beispiel für eine zweidimensionale Benutzerschnittstellen-Darstellung gemäß einigen Ausführungsformen.
- 18 zeigt ein Beispiel für eine dreidimensionale Benutzerschnittstellen-Darstellung gemäß einigen Ausführungsformen.
-
Detaillierte Beschreibung
-
Die nachstehende Beschreibung liefert viele verschiedene Ausführungsformen oder Beispiele zum Implementieren verschiedener Merkmale des bereitgestellten Gegenstands. Nachstehend werden spezielle Beispiele für Komponenten und Anordnungen beschrieben, um die vorliegende Erfindung zu vereinfachen. Darüber hinaus können in der vorliegenden Erfindung Bezugszahlen und/oder -buchstaben in den verschiedenen Beispielen wiederholt werden. Diese Wiederholung dient der Einfachheit und Übersichtlichkeit und schreibt an sich keine Beziehung zwischen den verschiedenen erörterten Ausführungsformen und/oder Konfigurationen vor.
-
Darüber hinaus können hier räumlich relative Begriffe, wie etwa „darunter befindlich“, „unter“, „untere(r)“/„unteres“, „darüber befindlich“, „obere(r)“/„oberes“ und dergleichen, zur einfachen Beschreibung der Beziehung eines Elements oder einer Struktur zu einem oder mehreren anderen Elementen oder Strukturen verwendet werden, die in den Figuren dargestellt sind. Die räumlich relativen Begriffe sollen zusätzlich zu der in den Figuren dargestellten Orientierung andere Orientierungen der in Gebrauch oder in Betrieb befindlichen Vorrichtung umfassen. Die Vorrichtung kann anders ausgerichtet werden (um 90 Grad gedreht oder in einer anderen Orientierung), und die räumlich relativen Deskriptoren, die hier verwendet werden, können ebenso entsprechend interpretiert werden.
-
EDA-Tools und -Verfahren (EDA: elektronische Entwurfsautomatisierung - electronic design automation) erleichtern den Entwurf (oder das Design), die Aufteilung und die Platzierung von mikroelektronischen integrierten Schaltkreisen auf einem Halbleitersubstrat. Dieser Prozess umfasst normalerweise das Umwandeln einer Verhaltensbeschreibung des Schaltkreises in eine Funktionsbeschreibung, die dann in logische Funktionen untergliedert wird und unter Verwendung einer Standard-Layout-Zellenbibliothek in Zellen gemappt wird. Nach dem Mappen wird eine Synthese durchgeführt, um den Strukturentwurf in ein physisches Layout umzuwandeln, ein Taktbaum zum Synchronisieren der Strukturelemente wird erstellt, und der Entwurf wird nach dem Layout optimiert.
-
1 ist ein Blockdiagramm, das ein Beispiel für ein Verarbeitungssystem 100 gemäß einigen Ausführungsformen zeigt, die hier offenbart sind. Das Verarbeitungssystem 100 kann zum Implementieren eines EDA-Systems bei verschiedenen Verfahren verwendet werden, die hier erörtert werden. Das Verarbeitungssystem 100 weist eine Verarbeitungseinheit 110 auf, wie etwa einen Desktop-Computer, eine Workstation, einen Laptop, eine dedizierte Einheit, die für eine bestimmte Anwendung angepasst ist, ein Smartphone, ein Tablet oder dergleichen. Das Verarbeitungssystem 100 kann mit einem Display 114 und einer oder mehreren Eingabe-/Ausgabe-Vorrichtungen 112, wie etwa einer Maus, einer Tastatur, einem Touchscreen, einem Drucker usw., ausgerüstet sein. Die Verarbeitungseinheit 110 kann außerdem einen Hauptprozessor (CPU) 120, einen Speicher 122, ein Massenspeichergerät 124, einen Video-Adapter 126 und eine E/A-Schnittstelle 128 aufweisen, die mit einem Bus 130 verbunden sind.
-
Der Bus 130 kann eine oder mehrere Arten von Bus-Architekturen umfassen, wie etwa einen Speicherbus oder einen Speicher-Controller, einen peripheren Bus oder einen Videobus. Der CPU 120 kann jede Art von elektronischen Datenprozessoren umfassen, und der Speicher 122 kann jede Art von Systemspeicher umfassen, wie etwa einen statischen Direktzugriffsspeicher (SRAM), dynamischen Direktzugriffsspeicher (DRAM) oder einen Festspeicher (ROM).
-
Das Massenspeichergerät 124 kann jede Art von Speichervorrichtung umfassen, die so konfiguriert ist, dass sie Daten, Programme und andere Informationen speichert und die Daten, Programme und anderen Informationen über den Bus 130 zugreifbar macht. Das Massenspeichergerät 124 kann zum Beispiel eine Festplatte, eine Magnetplatteneinheit, ein optisches Plattenlaufwerk, einen Flash-Speicher und/oder dergleichen umfassen.
-
Der Begriff „maschinenlesbares Medium“, der hier verwendet wird, kann Computerspeichermedien umfassen, wie etwa den Systemspeicher und die Speichervorrichtungen, die vorstehend genannt worden sind. Computerspeichermedien können flüchtige und nichtflüchtige, Wechsel- und Nicht-Wechsel-Medien umfassen, die in einem Verfahren oder einer Technologie zum Speichern von Informationen implementiert werden, wie etwa maschinenlesbare Befehle, Datenstrukturen oder Programmmodule. Der Speicher 122 und das Massenspeichergerät 124 sind Beispiele für Computerspeichermedien (z. B. Speicher). Das Massenspeichergerät 124 kann außerdem eine Bibliothek von Standard-Layout-Zellen speichern, wie später näher dargelegt wird.
-
Computerspeichermedien können einen RAM, einen ROM, einen elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM), einen Flash-Speicher oder eine andere Speichertechnologie, eine CD-ROM, eine DVD oder einen anderen optischen Speicher, Magnetkassetten, ein Magnetband, einen Plattenspeicher oder andere magnetische Speichervorrichtungen oder einen anderen Herstellungsartikel umfassen, der zum Speichern von Informationen verwendet werden kann und für das Verarbeitungssystem 100 zugreifbar ist. Alle diese Computerspeichermedien können Teil des Verarbeitungssystems 100 sein. Computerspeichermedien verwenden keine Trägerwellen oder anderen verbreiteten oder modulierten Datensignale.
-
Kommunikationsmedien können von maschinenlesbaren Befehlen, Datenstrukturen, Programmmodulen oder anderen Daten in einem modulierten Datensignal, wie etwa einer Trägerwelle oder einem anderen Transportmechanismus, verkörpert werden und umfassen alle Datenübertragungsmedien. Der Begriff „moduliertes Datensignal“ kann zum Beschreiben eines Signals verwendet werden, das eine oder mehrere Eigenschaften hat, die so festgelegt oder geändert werden, dass Informationen in dem Signal codiert werden. Beispielhaft und nicht beschränkend können Kommunikationsmedien drahtgebundene Medien, wie etwa eine drahtgebundene Netzwerkverbindung oder eine direktverdrahtete Verbindung, und drahtlose Medien umfassen, wie etwa akustische, Hochfrequenz-, Infrarot- und andere drahtlose Medien.
-
Der Video-Adapter 126 und die E/A-Schnittstelle 128 stellen Schnittstellen zum Verbinden von externen Ein- und Ausgabevorrichtungen mit der Verarbeitungseinheit 110 bereit. Wie in 1 gezeigt ist, sind Beispiele für Ein- und Ausgabevorrichtungen das Display 114, das mit dem Video-Adapter 126 und der E/A-Vorrichtung 112 (wie etwa einer Maus, einer Tastatur, einem Drucker oder dergleichen) verbunden ist, die mit der E/A-Schnittstelle 128 verbunden sind. Es können auch andere Vorrichtungen mit der Verarbeitungseinheit 110 verbunden werden, und es können weitere oder weniger Schnittstellenkarten verwendet werden. Zum Beispiel kann eine serielle Schnittstellenkarte (nicht dargestellt) zum Bereitstellen einer seriellen Schnittstelle für einen Drucker verwendet werden. Die Verarbeitungseinheit 110 kann außerdem eine Netzwerk-Schnittstelle 140 aufweisen, die eine drahtgebundene Verbindung mit einem lokalen Netzwerk (LAN) oder einem Großraumnetzwerk (WAN) 116 und/oder eine drahtlose Verbindung sein kann.
-
Ausführungsformen des Verarbeitungssystems 100 können andere Komponenten aufweisen. Zum Beispiel kann das Verarbeitungssystem 100 Stromquellen, Kabel, ein Motherboard, Wechselspeichermedien und dergleichen aufweisen. Diese weiteren Komponenten, die nicht dargestellt sind, werden als Teil des Verarbeitungssystems 100 angesehen.
-
In einigen Beispielen wird ein Software-Code von dem CPU 120 abgearbeitet, um einen Nutzer-Entwurf zu analysieren, um ein physisches Layout eines integrierten Schaltkreises zu erzeugen. Der Software-Code ist für den CPU 120 über den Bus 130 von dem Speicher 122, dem Massenspeichergerät 124 oder dergleichen oder rechnerfern über die Netzwerk-Schnittstelle 140 zugreifbar. Außerdem wird in einigen Beispielen das physische Layout des integrierten Schaltkreises (IC) auf Grund eines funktionellen IC-Entwurfs erzeugt, der bei verschiedenen Verfahren und Prozessen, die von dem Software-Code implementiert werden, über die E/A-Schnittstelle 128 empfangen werden kann und/oder in dem Speicher 122 oder 124 gespeichert werden kann.
-
Eine Standardzelle kann ein gesamtes Bauelement, wie etwa einen Transistor, eine Diode, einen Kondensator, einen Widerstand oder einen Induktor, oder eine Gruppe von mehreren Bauelementen umfassen, die so eingerichtet sind, dass sie eine bestimmte Funktion erzielen, wie etwa die eines Inverters, eines Flipflops, einer Speicherzelle oder eines Verstärkers. Durch Verwenden von Standard-Layout-Zellen lässt sich ein funktioneller Entwurf nicht nur einfacher konzipieren, sondern auch die Verifikationszeit für die Entwurfsregelprüfung (DRC) der Layout-Elemente in dem IC kann verkürzt werden, da eine Standardzelle, die über das gesamte Layout hinweg wiederholt wird, bei der DRC nur einmal geprüft werden kann, statt jede Instanziierung einzeln zu prüfen. Das System 100 ist so konfiguriert, dass es auf Grund der erhaltenen IC-Funktionsbeschreibung Standard-Layout-Zellen aus der Zellenbibliothek auswählt.
-
2 zeigt allgemein einen beispielhaften IC-Entwurf und ein Herstellungsverfahren 200, das von dem Verarbeitungssystem 100 zum Erzeugen eines physischen Layouts von einem Verhaltens- oder funktionellen Entwurf implementiert werden kann, der von einem Nutzer geliefert wird. Ein Nutzer-Entwurf 202 spezifiziert das gewünschte Verhalten oder die gewünschte Funktion des Schaltkreises auf Grund verschiedener Signale oder Impulse, die an die Eingänge des Gesamtentwurfs angelegt werden, und er kann in einer geeigneten Programmiersprache geschrieben werden. Der Entwurf 202 kann von einem Nutzer über die E/A-Schnittstelle 128 in die Verarbeitungseinheit 110 (siehe 1) hochgeladen werden. Alternativ kann der Entwurf 202 hochgeladen werden und/oder in dem Speicher 122 oder dem Massenspeichergerät 124 gespeichert werden, oder der Entwurf 202 kann von einem entfernten Nutzer über die Netzwerk-Schnittstelle 140 hochgeladen werden.
-
An dem Entwurf wird eine Synthese 204 durchgeführt, bei der das Verhalten und/oder die Funktionen, die von dem Entwurf 202 verlangt werden, in eine funktionell äquivalente logische Gate-Ebene-Schaltkreisbeschreibung umgewandelt werden, indem der Entwurf an Standard-Layout-Zellen, wie etwa aus einer oder mehreren Zellenbibliotheken 208, angepasst wird. Die Zellenbibliothek 208 enthält eine Liste von vorentworfenen Komponenten, oder funktionellen Zellen, die jeweils eine festgelegte Funktion erfüllen können. Die Zellen werden in der Zellenbibliothek 208 als Informationen gespeichert, die Folgendes umfassen: interne Schaltkreiselemente, die verschiedenen Verbindungen mit diesen Schaltkreiselementen und eine vorentworfene physische Layout-Struktur, die die Einheitshöhe jeder Zelle zusammen mit gewünschten Betriebsspannungsleitungen, Dotierungsstoffen, Wannen usw. der Zelle umfasst. Außerdem kann die gespeicherte Zelle auch eine Form der Zelle, Positionen für Außenanschlüsse, Verzögerungseigenschaften, Energieverbrauch usw. umfassen. Die Synthese 204 führt zu einer funktionell äquivalenten logischen Gate-Ebene-Schaltkreisbeschreibung, wie etwa einer Gate-Ebene-Netzliste 206. Die Zellenbibliothek 208 kann zum Beispiel in einer oder mehreren Datenbanken gespeichert werden, die in dem Massenspeichergerät 124 enthalten sind. Auf Grund der Gate-Ebene-Netzliste 206 kann eine fotolithografische Maske 210 erzeugt werden, die zum Herstellen eines integrierten Schaltkreis 212 verwendet wird.
-
Die Zellenbibliothek 208 kann außerdem Abgriffzellen umfassen. Abgriffzellen verhindern den unerwünschten Latch-up von integrierten Schaltkreisen, der auf parasitäre Bipolartransistoren zurückzuführen sein kann, die in integrierten Schaltkreisen hergestellt sind. Durch die Abgriffzellen werden n-Wannenbereiche mit VDD-Betriebsspannungsleitungen verbunden, und p-Wannenbereiche oder p-Substrate werden mit VSS-Betriebsspannungsleitungen (normalerweise elektrischer Erde) verbunden.
-
In einigen Beispielen wird ein Entwurfs-„Lageplan“ ermittelt, der eine Mehrzahl von Zeilen umfasst, in denen die Standard-Layout-Zellen angeordnet werden. Die 3A bis 3C zeigen verschiedene Iterationen eines beispielhaften Lageplans 300. Der Lageplan 300 stellt das Layout für einen integrierten Schaltkreis bereit, der nach dem in 2 gezeigten Verfahren hergestellt werden würde. Der Lageplan 300 zeigt somit die Anordnung von funktionellen Zellen 310 und Abgriffzellen 312 in Zeilen 304 auf einem Substrat 302.
-
Bei einigen Chipentwurfsverfahren kann ein festgelegter maximaler Abgriffabstand spezifiziert werden, und Abgriffzellen werden entsprechend in dem Lageplan verteilt. Dieser maximale Abgriffabstand kann zum Beispiel unter Verwendung von Testchips mit Matrizen von Invertern bestimmt werden, die einen Worst-Case-Latch-up-Zustand erzeugen, um Zellenplatzierungen so festzulegen, dass ein Latch-up vermieden wird. In Abhängigkeit von dem tatsächlichen Funktionsentwurf für das herzustellende IC-Bauelement bestimmen diese maximalen Abgriffabstände jedoch nicht die potentielle Latch-up-Anfälligkeit über reale Zellenverteilungen für einen bestimmten Entwurf hinweg. Das kann dazu führen, dass zu viele Abgriffzellen bereitgestellt werden, was eine Platzverschwendung dort verursacht, wo eine niedrigere Abgriffdichte ausreichen würde, und kann weiterhin zu einer zeitlichen Leistungsminderung, wie etwa bei Hochleistungsprodukten, führen. Bei diesen Hochleistungs-Entwürfen kann eine höhere Abgriffdichte in Konflikt mit der optimalen Zellenplatzierung geraten, sodass kritische Verdrahtungswege verlängert werden. Außerdem können einige Bereiche mit zu wenigen Abgriffzellen versehen werden, was zu einem Latch-up führt.
-
Gemäß einigen Aspekten der vorliegenden Erfindung wird die Latch-up-Anfälligkeit für normale Platzierungs- und Trassierungs-Blöcke (P&R-Blöcke) eines Lageplans bestimmt. Außerdem werden Lösungen für kritische Latch-up-Bereiche vorgeschlagen.
-
In 3A werden in einigen Beispielen die Abgriffzellen 312 zunächst an bestimmten Positionen in den Zeilen 304 angeordnet. In dem in 3A gezeigten Beispiel werden die Abgriffzellen 312 zunächst so positioniert, dass sie vertikal in Spalten auf beiden Seiten des Lageplans 300 sowie in einer vertikalen Spalte in dem mittleren Bereich des Lageplans 300 verlaufen. Es ist zu beachten, dass der Lageplan 300 außerdem Positionen 306 aufweist, an denen es keine funktionellen Zellen 310 oder Abgriffzellen 312 gibt, die zuerst platziert werden.
-
4 zeigt einen weiteren Anfangs-Lageplan 400 vor der Platzierung der funktionellen Zellen 310. In dem Beispiel von 4 umfassen bestimmte Zeilen 304 des Lageplans 400 nur Abgriffzellen 312. Das Substrat 302 des in 4 gezeigten Lageplans 400 definiert einen Außenumfang mit einer ersten oder oberen Grenze 402 und einer zweiten oder unteren Grenze 404 gegenüber der ersten Grenze 402. In dem in 4 gezeigten Lageplan 400 umfassen eine erste Zeile 304a direkt benachbart zu der oberen Grenze 402 und eine zweite Zeile 304b direkt benachbart zu der unteren Grenze 404 nur Abgriffzellen 312. Außerdem umfasst eine weitere Zeile 304c, die horizontal durch die Mitte des Lageplans 400 verläuft, nur Abgriffzellen 312. Durch Hinzufügen solcher dedizierter Zeilen von Abgriffzellen wird die Gefahr eines Latch-up in IC-Bauelementen stark verringert, ohne dass eine erhebliche Fläche in dem Lageplan 400 verbraucht wird. Das dargestellte Beispiel zeigt drei horizontale Zeilen von Abgriffzellen, aber bei anderen Ausführungsformen können mehr oder weniger Zeilen von Abgriffzellen vorgesehen werden. Normalerweise werden Abgriffzellen in vertikalen Spalten in dem gesamten Lageplan bereitgestellt. Die Zeilen 304, die in dem Beispiel von 4 gezeigt sind, umfassen nur Abgriffzellen, sodass der Lageplan zusätzliche Abgriffzellen im Vergleich zu herkömmlichen Abgriffzellen-Implementierungen bereitstellt. Außerdem trägt gleichmäßiges Beabstanden der Abgriffzellen-Zeilen 304 von der oberen und der unteren Grenze 402 und 404 zum weiteren Verringern der Latch-up-Gefahr bei.
-
Kommen wir nun zu 5, in der weitere Aspekte eines beispielhaften Verfahrens 220 zum Entwerfen eines integrierten Schaltkreises erläutert werden. Verschiedene Schritte des Verfahrens 220 werden zum Beispiel von dem Prozessor 120 und dem System 100 ausgeführt, die in 1 gezeigt sind. In einem Schritt 222 werden Standard-Layout-Zellenmodelle für jede der in einer Zellenbibliothek 232 gespeicherten Standard-Layout-Zellen erzeugt. Die Zellenmodelle können ebenfalls in der Zellenbibliothek 232 gespeichert werden.
-
Die 6 und 7 stellen Aspekte des Zellenmodell-Erzeugungsprozesses für funktionelle Standard-Layout-Zellen 310 bzw. Abgriffzellen 312 konzeptionell dar, wie in dem Schritt 222 von 5 angegeben ist. Wie in 6 gezeigt ist, können p-Wannen 612 und n-Wannen 610 für die funktionellen Zellen 310 unter Verwendung von verteilten Widerständen 614 bzw. 616 modelliert werden. Um Gleich- und Wechselströme der Zellen 310 zu charakterisieren, sind Stromquellen 620 zum Injizieren von Strom in jede Wanne 610 und 612 vorgesehen. Bei einigen Implementierungen wird der Strom in der Mitte der Zelle 310 injiziert. 7 zeigt ein Modell für eine Abgriffzelle 312, bei dem die p-Wanne 612 und die n-Wanne 610, die zusammenhängend sind, durch die verteilten Widerstände 614 und 616 modelliert werden. Um den Aufnahmewiderstand zu modellieren, werden Widerstände 622 und 624 in der Mitte der Zellenwiderstände 614 und 616 zwischen jeweilige Spannungsquellen VDD und VSS geschaltet. Die Modelle, die in den 6 und 7 gezeigt sind, stellen einfache und elegante Modelle zum Charakterisieren von Gleich- und Wechselströmen der Zellen 310 und 312 dar. In anderen Beispielen können weitere Komponenten, wie etwa Kondensatoren und Induktoren, in die Modelle integriert werden, um gegebenenfalls weitere Aspekte der Zellen zu charakterisieren.
-
Die 8 und 9 zeigen weitere Aspekte des Zellenmodellierungsprozesses. Die 8 und 9 zeigen jeweils einen Teil eines Lageplans 300, der funktionelle Standard-Layout-Zellen 310 und Abgriffzellen 312 sowie VDD- und VSS-Spannungsquellen aufweist. Die Standard-Layout-Zellen 310 und die Abgriffzellen 312 werden jeweils so modelliert, wie es in Verbindung mit den 6 und 7 dargelegt worden ist. In den 8 und 9 sind Modelldarstellungen 340 bzw. 341 der dargestellten Zellen unter dem Lageplan 300 gezeigt, wobei die Widerstände 616 die p-Wanne simulieren. Die Modelle der funktionellen Zellen 310 weisen die Stromquellen 620 auf, die Strom von der Mitte der Zellen 310 in die Widerstände 616 injizieren, die die p-Wanne 612 darstellen, um das Verhalten der entsprechenden funktionellen Zellen 310 zu simulieren. Die Modelle weisen weiterhin Füllzellen 311 auf, die einfach eine Freifläche in dem Lageplan ausfüllen und keinen Strom in die Wanne injizieren. Anhand der modellierten Aspekte der Standard-Layout-Zellen und anderer Faktoren, wie etwa Leckverlust und Widerstand (Abstand zwischen Abgriffzellen 312 und funktionellen Zellen 310), kann ein Spannungsabfall an den verschiedenen p-Wannen und n-Wannen des Lageplans ermittelt werden. Der Einfachheit halber sind nur p-Wannen in den Modellen dargestellt, die in den 8 und 9 gezeigt sind. In anderen Beispielen können die Modelle auch n-Wannen aufweisen.
-
10 zeigt ein weiteres Modellierungsbeispiel, in dem Zellen mit mehreren Höhen modelliert werden. Höhere Zellen injizieren Strom in mehrere p-Wannen- und n-Wannen-Segmente. Somit injiziert eine Ein-Höhen-Zelle 310a Strom nur in eine einzige Wanne. Eine Doppel-Höhen-Zelle 310b ist symmetrisch. Zur Modellierung wird unterstellt, dass der Strom gleichmäßig in die mehreren Wannensegmente verteilt wird. Eine Drei-Höhen-Zelle 310c ist nicht symmetrisch. Somit wird jedes Wannensegment einzeln charakterisiert, wenn Zellenmodelle erzeugt werden.
-
Wenn ein Spannungsabfall an einer p-Wanne oder einer n-Wanne einen festgelegten Wert an einer gegebenen Position überschreitet, steigt die Latch-up-Gefahr an dieser Position. In einigen Beispielen ist es wahrscheinlich, dass eine lokale Wannenspannung, die größer als 0,5 V ist, einen Latch-up verursacht.
-
Kommen wir wieder zu 5 zurück, in der in einem Schritt 224 das funktionelle Schaltkreisdesign durch das System 100 empfangen wird. Anhand des Funktionsentwurfs wird in einem Schritt 226 ein erster Lageplan, wie etwa der in 3A gezeigte Lageplan 300, erzeugt. Unter Verwendung der Modelle für die funktionellen Zellen 310 und die Abgriffzellen 312 werden mögliche Latch-up-Positionen identifiziert, wie in einem Schritt 228 angegeben wird. Latch-up-Positionen können zum Beispiel auf Grund des ermittelten Spannungsabfalls identifiziert werden. In einem Schritt 230 wird auf Grund der ermittelten Latch-up-Positionen der Lageplan 300 modifiziert. Das Modifizieren des Lageplans kann zum Beispiel das Verschieben von funktionellen Zellen 310 und/oder Abgriffzellen 312, das Hinzufügen weiterer Abgriffzellen 312, das Verwenden anderer Arten von Abgriffzellen 312 usw. umfassen, um die identifizierten Latch-up-Probleme anzugehen.
-
3B zeigt ein Beispiel, in dem der Lageplan 300 durch Hinzufügen weiterer Abgriffzellen 310a zu einigen der Freiflächen 306 modifiziert worden ist, um die ermittelten potentiellen Latch-up-Bereiche anzugehen. In 3C sind weitere kleinere Abgriffzellen 310b zu kleineren Freiflächen 306 hinzugefügt worden. Das Bestimmen der Positionen und Größen für die hinzugefügten Abgriffzellen wird später näher erörtert.
-
Die 11 bis 14 zeigen Beispiele für verschiedene Abgriffzellen 310, die bei verschiedenen Ausführungsformen verwendet werden. Bei bestimmten Ausführungsformen weist eine Standard-Abgriffzelle 310 zwei p-Wannen-Kontakte 802 und zwei n-Wannen-Kontakte 800 auf, wie in 11 gezeigt ist. Wie vorstehend dargelegt worden ist, werden die Abgriffzellen 310 zum Vermeiden eines unerwünschten Latch-up von integrierten Schaltkreisen verwendet, der auf parasitäre Bipolartransistoren zurückzuführen sein kann, die in den integrierten Schaltkreisen hergestellt sind. Die Abgriffzellen 310 stellen somit p-Wannen-Kontakte 802 zum Verbinden der p-Wanne oder des p-Substrats mit den VSS-Betriebsspannungsleitungen dar. Die n-Wannen-Kontakte 800 werden zum Verbinden der n-Wannenbereiche oder n-Substrate mit den VDD-Betriebsspannungsleitungen verwendet. Durch Bereitstellen weiterer p-Wannen- und/oder n-Wannen-Kontakte kann zwar die Größe der Zelle vergrößert werden, aber die zusätzlichen Kontakte verringern den Widerstand, sodass zusätzliche Strompfade zum Reduzieren des Latch-up ermöglicht werden.
-
Um den Kontaktwiderstand an den Lageplan-Positionen, die kritisch für einen Latch-up sind, zu verringern, können größere Abgriffzellen mit zusätzlichen Kontakten verwendet werden, wie etwa die in 12 gezeigte Abgriffzelle 310, die vier p-Wannen-Kontakte 802 und vier n-Wannen-Kontakte 800 hat. Die größere Abgriffzelle 310, die in 12 gezeigt ist, kann zum Beispiel auch in einer (2+6)-Konfiguration (zwei n-Wannen- / sechs p-Wannen-Kontakte), wie in 13 gezeigt ist, oder in einer (6+2)-Konfiguration konfiguriert werden, wie in 14 gezeigt ist, und zwar mit der gleichen Zellen-Grundfläche wie bei der in 11 gezeigten Variante. Dies ermöglicht einen niedrigeren Kontaktwiderstand mit p-Wannen- oder n-Wannen-Kontakten, wie es zum Reduzieren des Latch-up gewünscht wird. Daher könnte die (2+2)-Abgriffzelle 310 von 11 für nichtkritische Latch-up-Bereiche der Grundfläche verwendet werden, während die größeren Abgriffzellen-Anordnungen, wie etwa 4+4, 2+6, 6+2 usw., für kritische Latch-up-Bereiche verwendet werden könnten.
-
15 zeigt weitere Aspekte eines beispielhaften IC-Entwurfsverfahrens 240. Wie in den 2 und 5 gezeigt ist, wird ein Funktionsentwurf erhalten. In einem Schritt 242 wird anhand des erhaltenen Entwurfs eine Blockplatzierungsdatei gelesen, in einem Schritt 244 werden Zellendaten für die entsprechenden funktionellen Zellen 310 aus der Zellenbibliothek abgerufen, und in einem Schritt 246 wird eine Technologiedatei gelesen. Aspekte der funktionellen Zellen 310 und der Abgriffzellen 312 werden unter Verwendung der in den 6 bis 9 gezeigten Modelle modelliert, wie etwa das Erzeugen eines Netzwerks von Stromquellen und Widerständen für die Zellen, die die verschiedenen Wannen und Abgriffkontakte modellieren, wie in einem Schritt 248 angegeben ist.
-
Dann wird der Lageplan geprüft, und in einem Schritt 250 wird auf Grund der im Schritt 248 gewonnenen Modell-Informationen der Spannungsabfall an den Wannenpositionen auf Grund der Modelle und anderer Faktoren ermittelt, wie vorstehend in Verbindung mit den 6 bis 9 dargelegt worden ist. Wenn der Spannungsabfall an einer Wannenposition einen festgelegten Wert überschreitet, z. B. 0,5 V in einigen Beispielen, wird eine potentielle Latch-up-Position identifiziert. Auf diese Weise können potentielle Latch-up-Positionen in einem Lageplan ermittelt werden. In einem Schritt 252 werden auf Grund der ermittelten Latch-up-Positionen verfügbare Positionen zum Einfügen von zusätzlichen Abgriffzellen identifiziert. Wie in den 3A bis 3C gezeigt ist, können verfügbare Positionen zum Platzieren von zusätzlichen Abgriffzellen 312 die Freiflächen 306 in dem Lageplan 300 umfassen, in denen bisher keine funktionellen Zellen 310 und Abgriffzellen 312 angeordnet gewesen sind. In einigen Beispielen werden dann die Spannungsabfall-Berechnungen des Schritts 250 wiederholt, um die Identifizierung und Reduzierung der Latch-up-Positionen fortzusetzen.
-
In einigen Beispielen können die funktionellen Zellen 310 in Reaktion auf die Ermittlung der Latch-up-Position verschoben werden, um zusätzlichen Platz zum Einfügen weiterer Abgriffzellen zu schaffen, wie in einem Schritt 254 angegeben ist. Der Latch-up-Positions-Identifikationsprozess 250 kann nach dem Schritt 254 wiederholt werden, um Latch-up-Hotspots weiter zu reduzieren. Somit stellt der in 15 gezeigte Prozess einen iterativen Prozess zum Angehen und Beseitigen von potentiellen Latch-up-Hotspots dar.
-
16 ist ein Ablaufdiagramm, das noch weitere Aspekte des offenbarten Entwurfsverfahrens zeigt, und zwar einen Abgriffzellen-Einfügungsprozess 260. Der Prozess 260 beginnt mit einem Block 262, in dem der bestehende Lageplan zum Beispiel entsprechend dem in 15 gezeigten Prozess bewertet wird. Wenn keine Latch-up-Positionen identifiziert werden, sind keine Änderungen an dem Lageplan erforderlich, und der bestehende Lageplan wird verwendet, wie in einem Schritt 264 angegeben ist.
-
Wenn Latch-up-Positionen identifiziert werden, wird der Lageplan 300 modifiziert. In einem Schritt 266 werden eine oder mehrere Abgriffzellen 312 des bestehenden Lageplans 300 mit anderen Abgriffzellen-Konfigurationen getauscht. Zum Beispiel kann eine normale (2+2)-Abgriffzelle, wie etwa die in 11 gezeigte, durch eine größere Abgriffzelle, wie etwa die in den 12 bis 14 gezeigten Abgriffzellen, ersetzt werden. Bei einigen Implementierungen ist das dargestellte Verfahren ein iterativer Prozess zum Finden eines optimalen Gleichgewichts zwischen mehreren Faktoren, wie etwa der Latch-up-Gefahr, dem Leckverlust, der Lageplangröße usw. Zum Beispiel können zahlreiche weitere Abgriffzellen und/oder größere Abgriffzellen in dem vorstehend beschriebenen Schritt 266 hinzugefügt werden. Zwar kann dadurch die Latch-up-Gefahr erheblich verringert werden, aber die zusätzlichen und/oder größeren Abgriffzellen können zu anderen Problemen führen, wie etwa Leckverlust oder inakzeptables Vergrößern der Lageplangröße. Daher wird, wenn keine Latch-up-Bereiche identifiziert werden, nach dem Schritt 266 in einem Schritt 268 der Gesamtleckstrom für den Lageplan 300 auf Grund der Informationen zu den funktionellen Zellen 310 ermittelt, die während des Modellierungsprozesses 248 von 15 gewonnen worden sind. In einigen Beispielen werden weitere Berechnungen durchgeführt, wie etwa das Ermitteln der Layout-Gesamtgröße des Lageplans.
-
Auf Grund des Leckstroms und der Layout-Größe, die in dem Schritt 268 ermittelt worden sind, können in einem Schritt 270 Abgriffabstände so eingestellt werden, dass die Lageplanfläche besser genutzt werden kann, wie etwa durch Reduzieren des Leckstroms und der Layout-Größe. Wenn in dem Schritt 266 Latch-up-Positionen identifiziert werden, kann der Schritt 270 so ausgeführt werden, dass Abgriffabstände geändert werden, um identifizierte Latch-up-Hotspots anzugehen.
-
Wenn nach dem Schritt 270 keine Latch-up-Bereiche identifiziert werden, werden in einem Schritt 272 der Gesamtleckstrom für den Lageplan 300 und die Layout-Gesamtgröße des Lageplans erneut berechnet, um das Lageplan-Layout zu optimieren, wie vorstehend dargelegt worden ist. Wenn nach dem Schritt 270 Latch-up-Bereiche oder - Hotspots identifiziert werden, werden in einem Schritt 274 Bereiche in der Nähe der identifizierten Latch-up-Positionen analysiert, um Freiflächen 306 in der Nähe der Latch-up-Bereiche zu identifizieren. Dann können Abgriffzellen 312 in diesen Bereichen eingefügt werden, um die Latch-up-Positionen anzugehen.
-
Wenn nach dem Schritt 274 keine Latch-up-Bereiche identifiziert werden, werden in einem Schritt 276 der Gesamtleckstrom für den Lageplan 300 und die Layout-Gesamtgröße des Lageplans erneut berechnet, um das Bauelement-Layout zu optimieren. Weiterhin werden der Gesamtleckstrom und die Layout-Größe, die in den Schritten 268, 272 und 276 berechnet worden sind, miteinander verglichen, um die Lageplan-Anordnung mit der kleinsten Layout-Fläche und dem niedrigsten Leckstrom bei entsprechender Verringerung der Latch-up-Gefahr auszuwählen.
-
Wenn nach dem Schritt 274 Latch-up-Hotspots identifiziert werden, können in einem Schritt 278 funktionelle Zellen in dem Latch-up-Bereich umgeordnet werden, um Platz zum Einfügen weiterer Abgriffzellen zu schaffen. Nach dem Schritt 278 kann der Prozess 260 wiederholt werden, um das beste Lageplan-Layout zu identifizieren, das Latch-up-Probleme vermeidet.
-
Gemäß noch weiteren Aspekten der Erfindung werden Latch-up-Positionen an einer Benutzerschnittstelle angezeigt, um das Lösen von Latch-up-Problemen zu unterstützen. Die Benutzerschnittstelle kann über das Display 114 des in 1 gezeigten Systems 100 angezeigt werden. Die 17 und 18 zeigen beispielhafte Benutzerschnittstellen 820 und 821, an denen Wannenspannungen 822 für Teile der Zeilen 304 des Lageplans 300 angezeigt werden. Die Benutzerschnittstelle 820 von 17 zeigt eine zweidimensionale Darstellung, während die Benutzerschnittstelle 821 von 18 eine dreidimensionale Darstellung ermöglicht. In einem Bereich 824 übersteigt die Wannenspannung 0,5 V, was einen kritischen Latch-up-Bereich kennzeichnet. Dieser Bereich 824 kann somit mit verschiedenen beispielhaften Verfahren in Angriff genommen werden, die hier zum Eliminieren von kritischen Latch-up-Bereichen offenbart werden.
-
Verschiedene beispielhafte Ausführungsformen stellen somit Verfahren zum Ermitteln der Latch-up-Gefahr für Platzierungs- und Trassierungsblöcke bereit und bieten dem Schaltkreis-Designer eine grafische Darstellung der Latch-up-Anfälligkeit über den Entwurf hinweg an. Außerdem werden Verfahren zum Verringern der Latch-up-Gefahr in kritischen Bereichen eines Entwurfs sowie Optionen zum Minimieren des zusätzlichen Platzbedarfs für Abgriffzellen in nicht-kritischen Bereichen des Entwurfs bereitgestellt. Offenbarte Beispiele zeigen außerdem anpassungsfähige Lösungen auf, die so maßgeschneidert werden, dass sie zu der Größe der Latch-up-Gefahr passen und den zusätzlichen Platzbedarf für Abgriffzellen minimieren.
-
Offenbarte Ausführungsformen umfassen einen integrierten Schaltkreis, der ein Substrat aufweist, das ein Außenumfang mit einer ersten Grenze und einer zweiten Grenze gegenüber der ersten Grenze definiert. Mehrere Schaltkreiselemente sind in oder auf dem Substrat in einer Mehrzahl von Zeilen angeordnet. Die Schaltkreiselemente werden von Standard-Layout-Zellen definiert, die aus einer Zellenbibliothek ausgewählt werden. Die Standard-Layout-Zellen umfassen Abgriffzellen, und die Mehrzahl von Zeilen umfasst eine erste Zeile, die nur Abgriffzellen umfasst.
-
Gemäß weiteren offenbarten Ausführungsformen umfasst ein Verfahren zum Entwerfen eines integrierten Schaltkreises das Empfangen eines Integrierten-Schaltkreis-Designs. Ein Lageplan für das Integrierte-Schaltkreis-Design wird festgelegt. Der Lageplan umfasst eine Anordnung einer Mehrzahl von funktionellen Zellen, wobei jede der funktionellen Zellen so konfiguriert ist, dass sie eine vorgegebene Funktion erfüllt. Der Lageplan umfasst außerdem eine Mehrzahl von Abgriffzellen. In dem Lageplan werden potentielle Latch-up-Positionen ermittelt, und die Anordnung der funktionellen Zellen und/oder der Abgriffzellen wird auf Grund der ermittelten potentiellen Latch-up-Positionen modifiziert.
-
Gemäß noch weiteren offenbarten Ausführungsformen weist ein Integriertes-Schaltkreis-Designsystem einen Prozessor und ein maschinenlesbares Medium auf, auf die der Prozessor zugreifen kann. Das maschinenlesbare Medium speichern eine Zellenbibliothek, die eine Mehrzahl von funktionellen Zellen, die so konfiguriert sind, dass sie eine vorgegebene Funktion erfüllen, und eine Mehrzahl von Abgriffzellen definiert, sowie Befehle, die beim Abarbeiten mit dem Prozessor ein Verfahren zum Entwerfen eines integrierten Schaltkreises implementieren. Das Verfahren umfasst das Empfangen eines Integrierten-Schaltkreis-Designs und das Auswählen mehrerer der funktionellen Zellen aus der Zellenbibliothek auf Grund des funktionellen Integrierten-Schaltkreis-Designs. Die Mehrzahl von funktionellen Zellen wird in einem Lageplan angeordnet, und eine Mehrzahl von Abgriffzellen wird an festgelegten Positionen des Lageplans angeordnet. Es werden potentielle Latch-up-Positionen in dem Lageplan ermittelt.