-
HINTERGRUND
-
Technisches Gebiet
-
Diese Offenbarung betrifft die Entwurfsautomatisierung elektronischer Systeme (EDA, von englisch: electronic design automation). Diese Veröffentlichung bezieht sich im Besonderen auf eine Integration einer Modellierung mit einer Stromnetzwerksynthese zur Stromversorgungsnetzjustierung.
-
Stand der Technik
-
Fortschritte in der Verfahrenstechnologie und ein praktisch unstillbares Verlangen nach Unterhaltungselektronik waren der Antrieb für eine rasante Zunahme von Größe und Komplexität beim Entwurf integrierter Schaltungen (IC). Die Effizienz von Schaltungsentwurfsprozessen ist sehr wichtig, da sie die Markteinführungszeit für Chipentwürfe verkürzt.
-
Modellierung (englisch: shaping) bezieht sich auf einen Schritt eines Schaltungsentwurfsprozesses, bei dem Formen, Größen und/oder Positionen von Layoutpartitionen (englisch: physical partition; auch als Blöcke bekannt) des Chipentwurfs festgelegt werden. Mit Stromversorgungsnetz (PG, von englisch: power grid) wird ein Schaltkreis zur Versorgung von Schaltkreiselementen eines Chipentwurfs mit Versorgungsspannungen und Massepotenzialen bezeichnet. Stromnetzwerksynthese (PNS, für englisch: power network synthesis) bezieht sich auf einen Schritt bei einem Schaltungsentwurfsprozess, bei dem das PG für den Schaltungsentwurf erzeugt wird.
-
Bei einem typischen Schaltungsentwurfsprozess erfolgt die Modellierung lange vor der PNS. Das Erstellen eines zu den Formen, Größen und Positionen der Layoutpartitionen, die während der Modellierung festgelegt wurden, konsistenten PG-Netzwerks ist sehr schwierig.
-
KURZBESCHREIBUNG
-
Einige der in dieser Schrift beschriebenen Ausführungsformen geben Systeme und Verfahren zum Durchführen einer Modellierung eines Chipentwurfs auf Basis von Platzierungsbedingungen an, die auf Basis der Struktur des PG erzeugt werden. Hierdurch kann die Modellier-Engine Layoutpartitionen an dem PG ausrichten.
-
Bei einigen Ausführungsformen kann ein System (z. B. ein Computer) einen Satz von PG-Strategien empfangen (der Satz von PG-Strategien kann eine oder mehrere PG-Strategien enthalten), der eine Struktur eines bei dem Chipentwurf zu verwendenden PGs spezifiziert. Das System kann eine Justieroption empfangen, welche die Art der geforderten Ausrichtung angibt, wobei das System auch Informationen über Metallisierungsschichten empfangen kann. Bei einigen Ausführungsformen kann der Satz von PG-Strategien zum Erzeugen des PG einen Ausgangspunkt, einen Abstand, eine Richtung und eine Wiederholzahl festlegen. Anschließend kann das System auf Basis des Satzes von PG-Strategien (und wahlweise auch auf Basis der Justieroption und/oder der Metallisierungsschichtinformation) einen Satz von Platzierungsbedingungen erzeugen, wobei der Satz von Platzierungsbedingungen beim Modellieren verwendet wird.
-
Das System kann dann ein Modellieren des Chipentwurfs unter Verwendung des Satzes von Platzierungsbedingungen durchführen. Der Satz von Platzierungsbedingungen kann umfassen: (1) eine Platzierungsbedingung, die fordert, dass eine Mittellinie einer Layoutpartition z. B. eine Instanz eines mehrfach-instanziierten-Blocks (MIB) an einer Mittellinie einer PG-Leitung ausgerichtet werden muss, (2) eine Platzierungsbedingung, die fordert, dass eine bestimmte Kante einer Layoutpartition einen bestimmten Versatz zu einer PG-Leitung aufweisen muss (siehe z. B. 3B und/oder (3) eine Platzierungsbedingung, die fordert, dass ein Referenzpunkt einer Layoutpartition an einem Gitterpunkt eines Gitters ausgerichtet werden muss.
-
KURZBESCHREIBUNG DER FIGUREN
-
1 veranschaulicht eine Integration einer Modellierung mit einer PNS gemäß einiger der in dieser Schrift erläuterten Ausführungsformen.
-
2 veranschaulicht ein Beispiel eines Chipentwurfs mit mehreren MIB-Instanzen unterschiedlicher Orientierung gemäß einiger der in dieser Schrift erläuterten Ausführungsformen.
-
3A veranschaulicht ein Beispiel einer Justierung einer MIB-Instanz durch eine Modellier-Engine unter Verwendung einer Ausrichtung durch Umdrehen-vor-Ort (englisch: flippable-in-place alignment) gemäß einiger der in dieser Schrift erläuterten Ausführungsformen.
-
3B veranschaulicht ein Beispiel einer Justierung einer MIB-Instanz durch eine Modellier-Engine unter Verwendung einer Justierung mit festem Versatz (englisch: fixed-offset-from-boundary alignment) zum Rand gemäß einiger der in dieser Schrift erläuterten Ausführungsformen.
-
4A veranschaulicht ein Beispiel einer Justierung einer MIB-Instanz durch eine Modellier-Engine unter Verwendung mehrerer Gitter gemäß einiger der in dieser Schrift erläuterten Ausführungsformen.
-
4B veranschaulicht ein Beispiel einer Justierung einer MIB-Instanz durch eine Modellier-Engine unter Verwendung eines einzigen Gitters gemäß einiger der in dieser Schrift erläuterten Ausführungsformen.
-
5 veranschaulicht ein Verfahren zur Durchführung einer Modellierung gemäß einiger der in dieser Schrift erläuterten Ausführungsformen.
-
6 veranschaulicht ein Computersystem gemäß einiger der in dieser Schrift erläuterten Ausführungsformen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die nachfolgend vorgelegte Beschreibung, die im Kontext einer bestimmten Anwendung und deren Anforderungen erstellt wurde, ermöglicht einem Fachmann Ausführung und Gebrauch der Erfindung. Fachleute werden ohne Weiteres erkennen, dass die offenbarten Ausführungsformen in verschiedenster Weise modifiziert und die in dieser Beschreibung definierten allgemeinen Prinzipien auf andere Ausführungsformen und Anwendungen übertragen werden können, ohne Kern und Umfang der vorliegenden Erfindung zu verlassen. Daher ist die in dieser Schrift offenbarte Erfindung bzw. sind die in dieser Schrift offenbarten Erfindungen nicht auf die vorgestellten Ausführungsformen beschränkt, sondern weisen den breitesten, mit den hierin offenbarten Prinzipien und Merkmalen noch vereinbaren, Umfang auf.
-
Übersicht über einen Prozess zur Entwurfsautomatisierung elektronischer Systeme (EDA)
-
Ein EDA-Prozess kann zum Erzeugen eines Chipentwurfs verwendet werden. Nach Abschluss des Chipentwurfs können zur Herstellung integrierter Schaltkreischips Fertigung, Aufbau und Montage folgen. Ein EDA-Prozess kann mehrere Schritte umfassen, wobei jeder Schritt die Verwendung von einem oder mehreren EDA-Programmierwerkzeugen umfassen kann. Einige EDA-Schritte und Programmierwerkzeuge werden nachfolgend beschrieben. Die angeführten Beispiele für EDA-Schritte und Programmierwerkzeuge dienen lediglich der Veranschaulichung und sind nicht dazu bestimmt, Ausführungsformen auf offenbarte Ausbildungen zu beschränken.
-
Einige EDA-Programmierwerkzeuge ermöglichen Schaltungsentwicklern die Beschreibung der Funktionalität, die realisiert werden soll. Diese Werkzeuge ermöglichen Schaltungsentwicklern auch die Durchführung von ”Was-Wäre-Wenn”-Planungen zur Weiterentwicklung der Funktionalität, Kostenprüfung usw.. Bei der logischen Modellierung und der Funktionalitätsprüfung kann Code in einer Hardwarebeschreibungssprache (HDL, von englisch: hardware description language), z. B. System Verilog, geschrieben und der Entwurf auf seine funktionelle Richtigkeit geprüft werden; beispielsweise kann der Entwurf dahingehend geprüft werden, ob er die korrekten Ausgaben erzeugt.
-
Während der Synthese und zum Testen des Entwurfs kann der HDL-Code unter Verwendung von einem oder mehreren EDA-Programmierwerkzeugen in eine Netzliste übersetzt werden. Die Netzliste kann auf die Zieltechnologie optimiert werden und es können Tests zum Prüfen der fertigen Chips entworfen und ausgeführt werden. Während der Verifikation der Netzliste kann die Netzliste auf ihre Konformität mit zeitlichen Randbedingungen und ihre Übereinstimmung mit dem HDL-Code geprüft werden.
-
Während der Entwurfsplanung kann ein Gesamtlageplan des Chips erstellt und das zeitliche Verhalten und die Globalverdrahtung können analysiert werden. Bei der Umsetzung des Layouts können Schaltungselemente in dem Layout positioniert (Platzieren) und elektrisch verbunden werden (Verdrahten).
-
Während der Analyse und Extraktion kann die Funktionalität des Schaltkreises auf Transistorebene verifiziert und parasitäre Effekte können extrahiert werden. Während der Layoutverifikation kann der Entwurf geprüft werden, um die Fehlerfreiheit für die Fertigung, elektrische Aspekte, lithographische Aspekte usw. zu gewährleisten.
-
Bei der Verbesserung der Auflösung können am Layout geometrische Manipulationen vorgenommen werden, um die Herstellbarkeit des Entwurfs zu verbessern. Bei der Maskendatenerstellung können die Entwurfsdaten zur Herstellung von Masken ausgegeben werden (tape-out), die bei der Herstellung verwendet werden.
-
Mit PNS zur PG-Justierung integrierte Modellierung
-
Bei einem typischen Schaltungsentwurfsprozess werden während der Modellierung Formen, Größen und Positionen der Layoutpartitionen festgelegt. In einigen Fällen, kann eine Layoutpartition bereits eine vorgegebene Form und/oder Größe aufweisen (z. B., da die Layoutpartition zu einer anderen Zeit oder an einem anderen Ort erstellt wurde und in den aktuellen Chipentwurf unverändert eingefügt wird). In solchen Fällen bezeichnet ein ”Modellierungs”-Vorgang lediglich ein Bestimmen einer Position für die Layoutpartition (d. h. ein Ausführen eines Platzierens), sodass die Layoutpartition zum PG-Netzwerk justiert ist. Als Nächstes werden in den Layoutpartitionen Makrozellen und Standardzellen platziert. Während der PNS wird dann ein PG-Netzwerk erzeugt, wobei die PNS gewährleisten muss, dass die Versorgungs- und Masseleitungen korrekt zu den Layoutpartitionen justiert sind. Schließlich werden die Layoutpartitionen mit dem PG-Netzwerk versehen, sodass die Versorgungs- und Massepotenziale zu den Schaltungselementen der Layoutpartitionen geführt werden können.
-
Eine korrekte Justierung des PG-Netzwerks zu den Layoutpartitionen lässt sich nur schwer sicherstellen, wobei dies bei Chipentwürfen, die MIBs enthalten, noch schwieriger ist. Ein MIB ist eine Layoutpartition der im Chipentwurf mehrere Instanzen aufweist. Ein MIB kann im Allgemeinen beliebige Schaltkreise umfassen, z. B. eine Schaltung zur Ausführung einer bestimmten Funktion oder eines bestimmten Funktionssatzes. Ein Prozessorkern kann zum Beispiel ein MIB sein. Die Orientierung verschiedener Instanzen eines MIBs kann gleich oder unterschiedlich sein; eine Instanz eines MIBs kann z. B. ein gedrehtes und/oder gespiegeltes Bild einer anderen Instanz sein. Weist ein Chipentwurf MIBs auf, dann muss der Prozess zum Erzeugen des PG-Netzwerks alle MIB-Orientierungen berücksichtigen, damit die Leitungen des PG-Netzwerks, wenn die MIBs mit dem PID-Netzwerk versehen werden, optimal zum Zuführen von Versorgungs- und Massepotenzialen an die Schaltungselemente innerhalb der MIB-Instanzen angeordnet sind.
-
Um die PG-Justierung der Layoutpartitionen, z. B. MIB-Instanzen, einfacher zu gestalten, integrieren einige der hierin beschriebenen Ausführungsformen die Modellierung in die PNS. Bei einigen Ausführungsformen ist die Modellier-Engine in die PG-Netzwerkerzeugungs-Engine integriert, sodass die Modellier-Engine die Positionen der Leitungen in dem vom Anwender spezifizierten PG-Netzwerk schätzt und diese Information nutzt, um die Modellier-Engine beim Formen und Justieren der Layoutpartitionen zu unterstützen. Eine Integration von Modellier-Engine und PNS-Engine ermöglicht ein Ausbilden von Blockformen beim Modellieren, die eine oder mehrere anwenderspezifische PG-Strategien erfüllen. Die Integration ermöglicht dem Modellierer auch ein Optimieren der Ausrichtung von MIBs in einer Weise, dass das PG-Netzwerk der MIBs symmetrisch ist. Da der Schritt zum Erzeugen des PG-Netzwerks die anwenderspezifische PG-Strategie nutzt, die auch beim Modellieren angenommen wurde, sind die MIBs während der PNS bereits optimal oder nahezu optimal zum PG-Netz justiert.
-
1 veranschaulicht, wie das Modellieren gemäß einiger hierin beschriebener Ausführungsformen mit der PNS integriert werden kann. Ein PG-Analysator der Modellier-Engine 108 kann drei Eingaben erhalten: einen Satz von PG-Strategien 102, eine Justieroption 104 und eine Metallisierungsschichtinformation 106.
-
Der Satz von PG-Strategien 102 spezifiziert die Struktur des Stromversorgungsnetzes. Der Satz von PG-Strategien kann zum Beispiel den Ausgangspunkt, den Leitungsabstand (d. h. den Abstand zwischen zwei Leitermitten), die Richtung (d. h. horizontal oder vertikal) und Wiederholzahl (d. h. die Anzahl der zu erzeugenden Leitungen) festlegen. Bei einigen Ausführungsformen kann die Struktur des Stromversorgungsnetzes unter Verwendung von Systemen und Verfahren spezifiziert werden, die in der am 22. März 2013 eingereichten US-Anmeldung Nr. 13/849,427 der Erfinder Yan Lin, Yi-Min Jiang, Phillip H. Tai und Lin Yuan mit dem Titel ”Pattern-based power-and-ground routing and via creation” beschrieben sind, deren Inhalte hierin vollständig und zu allen Zwecken durch Bezugnahme aufgenommen sind.
-
Die Justieroption 104 spezifiziert die während des Modellierens zu verwendende Art der Justierung. Die Justieroption 104 kann zum Beispiel festlegen, dass der Abstand zwischen einer bestimmten Kante der Layoutpartition und einer Leitung des Stromversorgungsnetzes einem bestimmten Versatzwert entspricht. Um ein weiteres Beispiel anzugeben, kann die Justieroption 104 festlegen, dass die Mittellinie der Layoutpartition an einer Netzlinie ausgerichtet wird. Die Justieroption 104 kann, um noch ein weiteres Beispiel anzugeben, auf ein Justiergitter Bezug nehmen und fordern, dass eine bestimmte Ecke (oder ein beliebiger anderer Referenzpunkt) einer Layoutpartition oder einer MIB-Instanz beim Platzieren an einem der Gitterpunkte des Justiergitters positioniert wird. Die Metallisierungsschichtinformation 106 kann zum Beispiel die zum Erzeugen des PG verwendeten Metallisierungsschichten und die bei einer jeweiligen Metallisierungsschicht bevorzugte Leitungsrichtung angeben.
-
Auf Grundlage dieser Eingaben kann der PG-Analysator der Modellier-Engine 108 einen Satz von Platzierungsbedingungen 110 erzeugen, die anschließend von der Modellier-Engine 112 verwendet werden. Die Platzierungsbedingungen 110 gewährleisten, dass die Modellier-Engine 112 die MIBs an Stellen platziert, die am PG-Gitter ausgerichtet sind.
-
Bei einigen Ausführungsformen können die Platzierungsbedingungen 110 in Form eines Gitters festgelegt werden. Bei diesen Ausführungsformen platziert die Modellier-Engine 112 die Layoutpartitionen (z. B. MIBs) so, dass eine der Ecken (oder ein beliebiger vom Anwender auf der Layoutpartition bestimmter Referenzpunkt) an einem Gitterpunkt ausgerichtet ist.
-
2 veranschaulicht ein Beispiel für einen Chipentwurf gemäß einiger der hierin beschriebenen Ausführungsformen, der mehrere MIB-Instanzen mit unterschiedlichen Orientierungen aufweist. Der Chipentwurf 202 enthält vier unterschiedlich orientierte MIB-Instanzen. Die MIB-Instanz R0 kann die Vorlage-MIB-Instanz sein (die Bezeichnung ”R0” bezieht sich auf eine Drehung von 0°). Die MIB-Instanz MY kann ein an der Y-Achse gespiegeltes Abbild der Vorlage-MIB-Instanz, die MIB-Instanz MX ein an der X-Achse gespiegeltes Abbild der Vorlage-MIB-Instanz und die MIB-Instanz R180 kann eine um 180° gedrehte Version der Vorlage-MIB-Instanz sein.
-
Bei einigen Ausführungsformen können die Platzierungsbedingungen 110 vier verschiedene Gitter umfassen, wobei jedes der Gitter einer bestimmten Orientierung der MIB-Instanz entspricht. Bei diesen Ausführungsformen justiert die Engine 112 während des Modellierens jede der MIB-Instanzen (z. B. die in 2 gezeigten vier MIB-Instanzen) unter Verwendung des zur Orientierung der MIB-Instanz passenden Gitters.
-
3A veranschaulicht ein Beispiel für ein Ausrichten einer MIB-Instanz durch eine Modellier-Engine einer Ausrichtung durch Umdrehen-vor-Ort gemäß einiger der hierin beschriebenen Ausführungsformen. Eine Modellier-Engine kann das PG 312 auf Basis eines vom Anwender zur Verfügung gestellten Satzes von PG-Strategien erstellen. Die schattierten Leitungen, z. B. die Leitungen 308 und 314, können mit einer Spannungsversorgung (d. h. eine Versorgungsspannung) und die schraffierten Leitungen, z. B. Leitung 310, können mit einem Massepotential belegt sein.
-
PG 312 kann auf Basis der folgenden anwenderspezifischen PG-Strategie erzeugt werden: der Versatz zur Y-Achse beträgt ”yo” (dies gibt den Ausgangspunkt an), der Abstand in Richtung der Y-Achse beträgt ”yp”, die Richtung ist horizontal (dies gibt die Richtung der Leitungen an) und die Wiederholzahl beträgt sechs. Bei dieser PG-Strategie wird angenommen, dass die Leitungen jeweils abwechselnd mit einem Versorgungs- bzw. Massepotential belegt sind und dass der Abstand in Richtung der Y-Achse die Distanz zwischen den Mittellinien einer Versorgungsleitung und einer Masseleitung angibt. Dass auch andere Muster zum Festlegen der PG-Struktur verwendet werden können, ist für einen Fachmann natürlich offensichtlich. Zum Beispiel können für die Versorgungs- und Masseleitungen bei anderen Ausführungsformen Versatz und Abstand unabhängig voneinander festgelegt werden und/oder die Versorgungs- und Masseleitungen können sich in verschiedene Richtungen erstrecken (zum Beispiel können die Versorgungsleitungen in vertikaler Richtung und die Masseleitungen in horizontaler Richtung verlaufen).
-
Es wird darauf hingewiesen, dass die Modellier-Engine das PG 312 in dem Chipentwurf nicht wirklich erstellt, d. h., dass die Leitungen im PG 312 noch nicht Teil des Chipentwurfs sind. Die Modellier-Engine erzeugt vielmehr eine Repräsentation des PG 312, die zum Ausrichten von MIB-Instanzen an dem PG 312 während der Modellierung verwendet werden können. Das Stromversorgungsnetz wird dem Chipentwurf während der PNS hinzugefügt, die wie oben erläutert einen im Entwurfsprozess üblicherweise später (d. h. in Bezug auf die Modellierung) durchzuführenden Schritt darstellt.
-
Nach dem Erzeugen des PG 312 kann die Modellier-Engine dann MIB-Instanzen gemäß der mit der Justieroption 104 festgelegten Art der Ausrichtung platzieren. 3A veranschaulicht zum Beispiel, wie MIB-Instanzen entsprechend einer Umdrehen-vor-Ort-Justieroption platziert werden können. Bei dieser Justieroption wird die Mittelinie der MIB-Instanz an der Mittellinie einer PG-Leitung 308 ausgerichtet, die mit einer Versorgungsspannung belegt ist. Zum Beispiel wird die Mittellinie der MIB-Instanz 302 an der Mittellinie der PG-Leitung 308 ausgerichtet, die mit einer Versorgungsspannung belegt ist. Dieses Justagebeispiel dient lediglich der Veranschaulichung und nicht zur Einschränkung des Umfangs des hier Offenbarten. Bei einem anderen Beispiel kann die Mittellinie der MIB-Instanz an der Mittellinie der PG-Leitung ausgerichtet werden, die mit einem Massepotenzial belegt ist.
-
Die Leitung 306 veranschaulicht die Position der PG-Leitung 308 innerhalb der MIB-Instanz 302 (die Positionen der anderen Leitungen innerhalb der MIB-Instanzen wurden in 3A ebenfalls dargestellt). Es wird darauf hingewiesen, dass durch ein Umdrehen der MIB-Instanz 302 an der X-Achse oder Y-Achse (d. h. ein Erzeugen eines an der X-Achse oder Y-Achse gespiegelten Abbildes) die relative Positionierung der PG-Leitungen im Inneren der MIB-Instanz 302 nicht verändert wird, da die Positionen der PG-Leitungen innerhalb der MIB-Instanz 302 in Bezug auf die Mittellinie der MIB-Instanz 302 symmetrisch sind. Die MIB-Instanz 304 ist zum Beispiel eine umgedrehte Version der MIB-Instanz 302 (MIB-Instanz 304 ist ein an der Y-Achse gespiegeltes Abbild der MIB-Instanz 302). Die Modellier-Engine kann die MIB-Instanz 304 so platzieren, dass die Mittellinie der MIB-Instanz 304 an der Mittellinie der PG-Leitung 314 ausgerichtet ist.
-
3B veranschaulicht ein Beispiel für eine Justierung einer MIB-Instanz durch eine Modellier-Engine unter Verwendung einer Justierung mit festem Versatz zum Rand gemäß einiger der hierin beschriebenen Ausführungsformen. Bei dieser Justieroption wird eine MIB-Instanz 302 an den PG-Leitungen so ausgerichtet, dass der Abstand zwischen einer bestimmten Kante der MIB-Instanz 302 und der Mittellinie einer mit einem Massepotenzial belegten PG-Leitung einem feststehenden Versatzwert entspricht. Zum Beispiel entspricht der Abstand zwischen der unteren Kante der MIB-Instanz 302 und der Mittellinie einer mit Massepotenzial belegten PG-Leitung 310 einem festen Versatz 316. Dieses Justagebeispiel dient lediglich der Veranschaulichung und nicht zur Einschränkung des Umfangs des hier Offenbarten. Bei einem anderen Beispiel kann eine bestimmte Kante der MIB-Instanz mit einem Versatz zur Mittellinie einer PG-Leitung ausgerichtet werden, die mit einer Versorgungsspannung belegt ist. Wie 3B zu entnehmen kann die MIB-Instanz 304 auch an einer anderen Masseleitung ausgerichtet werden.
-
4A veranschaulicht ein Beispiel einer Justierung einer MIB-Instanz durch eine Modellier-Engine unter Verwendung mehrerer Gitter gemäß einiger der hierin beschriebenen Ausführungsbeispiele. Bei einigen Ausführungsformen können die Platzierungsbedingungen unter Verwendung von mehreren Gittern festgelegt werden. Genauer gesagt kann die Modellier-Engine eine Layoutpartition (z. B. eine MIB-Instanz) so platzieren, dass ein bestimmter Referenzpunkt der Layoutpartition (z. B. eine bestimmte Ecke der Layoutpartition) an einem Gitterpunkt angeordnet ist. Es wird darauf hingewiesen, dass unterschiedliche Orientierungen einer MIB unter Umständen unter Verwendung verschiedener Gitter platziert werden müssen. Zum Beispiel kann das Gitter 410 wie in 4A gezeigt die Gitterpunkte (jeder Kreuzungspunkt des Gitters 410 kann ein Gitterpunkt sein) festlegen, die beim Platzieren einer MIB-Instanz mit einer R0-Orientierung (d. h. eine MIB-Instanz, die um 0° gedreht wurde) verwendet werden sollen, während das Gitter 412 die Gitterpunkte festlegen kann, die beim Platzieren einer MIB-Instanz mit einer MX-Orientierung (d. h. einer MIB-Instanz, die einem durch Spiegelung an der X-Achse erhaltenen Abbild entspricht) verwendet werden sollen. In gleicher Weise kann die Modellier-Engine auch mit anderen Gittern für andere Orientierungen, z. B. für eine R180- oder MY-Orientierung ausgestattet sein. MIB 402 weist eine R0-Orientierung auf und wurde daher unter Verwendung des Gitters 410 platziert, indem der Referenzpunkt 404 des MIB 402 an einem Gitterpunkt des Gitters 410 ausgerichtet wurde. MIB 406 weist eine MX-Orientierung auf und wurde daher unter Verwendung des Gitters 412 platziert, indem der Referenzpunkt 408 an einem Gitterpunkt des Gitters 412 ausgerichtet wurde. Es wird darauf hingewiesen, dass sich die Referenzpunkte 404 und 408 an derselben relativen Position des MIB (Referenzpunk 404 befindet sich bei der R0-Orientierung an der linken unteren Ecke, die äquivalent zur oberen rechten Ecke der MX-Orientierung ist) befinden.
-
4B veranschaulicht ein Beispiel einer Justierung einer MIB-Instanz durch eine Modellier-Engine unter Verwendung von nur einem Gitter gemäß einiger der hierin beschriebenen Ausführungsformen. Bei einigen Ausführungsformen können die Platzierungsbedingungen unter Verwendung eines einzigen Gitters festgelegt werden. Insbesondere kann die Modellier-Engine eine Layoutpartition (unabhängig von der Orientierung) so platzieren, dass sich ein bestimmter Referenzpunkt der Layoutpartition an einem Gitterpunkt befindet. Wie in 4B gezeigt kann das Gitter 420 die Gitterpunkte (jeder der Kreuzungspunkte des Gitters 420 kann ein Gitterpunkt sein) bestimmen, die beim Platzieren einer MIB-Instanz zu verwenden sind. Das einzige Gitter ist so angeordnet, dass das PG in Bezug auf das Gitter symmetrisch ist, d. h., das PG ändert sich nicht, wenn es um irgendeine der Gitterlinien herum umgedreht wird. Es wird darauf hingewiesen, dass das PG 312 in Bezug auf das Gitter 420 symmetrisch ist.
-
Nachdem das einzige Gitter festgelegt wurde, kann jeder Referenzpunkt der MIB-Instanz zum Andocken an dem Gitter ausgewählt werden. Beispielsweise kann der Referenzpunkt 422 des eine R0-Orientierung aufweisenden MIB 402 gewählt werden. MIB 402 kann unter Verwendung des Gitters 420 platziert werden, indem der Referenzpunkt 422 des MIB 402 an einem Gitterpunkt des Gitters 420 ausgerichtet wird. Obwohl MIB 406 eine MX-Orientierung aufweist, kann dieser ebenfalls unter Verwendung des Gitters 420 platziert werden, indem der Referenzpunkt 424 (der sich in dem MIB an derselben relativen Position befindet) an einem Gitterpunkt des Gitters 420 ausgerichtet wird.
-
Bei einigen Ausführungsformen müssen beim Modellieren, Verschieben und/oder Bestimmen der Größe einer MIB-Instanz durch einen Anwender alle Objekte, die in den MIB ”gedrückt” werden (z. B. die PG-Leitungen), in Bezug auf eine jede MIB-Instanz justiert werden. Wenn in dem MIB zum Beispiel eine elektrische Verbindung zwischen einer PG-Leitung (d. h. das ”Objekt”) und einem Schaltungselement erzeugt werden muss, dann muss die PG-Leitung in den MIB ”gedrückt” (zu beachten ist hierbei, dass sich die PG-Leitungen in der logischen Hierarchie ”außerhalb” des MIB befinden können und daher in den MIB ”gedrückt” werden müssen) werden. Bei diesen Ausführungsformen wird der Gitterabstand des MIB-Gitters (d. h. der Abstand zwischen zwei Linien des Gitters in einer bestimmten Richtung) durch das kleinste gemeinsame Vielfache aller Objekte bestimmt, die in den Block ”gedrückt” werden. Wiederholt sich zum Beispiel ein erstes Objekt alle f Längeneinheiten und ein zweites Objekt alle s Längeneinheiten, dann kann der Gitterabstand des Gitters auf das kleinste gemeinsame Vielfache von f und s gesetzt werden. Ursprung und Versatz des Gitters können durch einen Anwender festgelegt werden, wenn der Anwender bestimmt, welche MIB-Instanz zum Erzeugen des Gitters verwendet werden soll. Nachdem Gitterursprung und -versatz auf Basis der bestimmten MIB-Instanz festgelegt wurden, können zur Unterstützung von Spiegelungen mehrere Varianten des Gitters erzeugt werden. Zum Beispiel kann das Gitter selbst gegenüber dem Ursprung gespiegelt und/oder gedreht werden, um Gitter zu erzeugen, die mit den MX-, MY- und R180-Varianten des Grundgitters korrespondieren.
-
Bei einigen Ausführungsformen kann die Modellier-Engine mit den MIB-Gittern wie nachfolgend erläutert interagieren. Wie oben ausgeführt wurde, spezifiziert ein Anwender zunächst die Objekte (z. B. PG-Leitungen), die voraussichtlich in den MIB ”gedrückt” werden. Dann kann auf Basis der Objekte der Gitterabstand bestimmt werden (z. B. durch Berechnung des kleinsten gemeinsamen Vielfachen). Daraufhin kann die Modellier-Engine die beste MIB-Instanz auswählen (z. B. abhängig vom Chipentwurfskontext in der Umgebung der MIB-Instanz die beste MIB-Orientierung auswählen) und den Gitterversatz festlegen. Anschließend kann die Modellier-Engine, abhängig von der Orientierung der zu legalisierenden Instanz, alle MIB-Instanzen auf Basis der verschiedenen Gitter (R0, MX, MY, R180) legalisieren.
-
Bei Ausführungsformen, bei denen die Modellier-Engine MIB-Gitter zum Platzieren von MIB-Instanzen verwendet, kann der Entwurfsprozess folgendermaßen gestaltet sein. Der Entwurfsprozess kann damit beginnen, dass die Modellier-Engine alle MIB-Instanzen auf Basis eines geeigneten MIB-Gitters (z. B. auf Basis des MIB-Gitters, das mit der Orientierung der MIB-Instanz korrespondiert) platziert. Anschließend kann der Anwender MIB-Instanzen verschieben (z. B. unter Verwendung einer graphischen Benutzerschnittstelle eines Lageplanwerkzeugs) und das Werkzeug kann die MIB-Instanzen wie von der Modellier-Engine festgelegt an dem richtigen Gitter andocken. Das Werkzeug kann das Gitter, wenn der Anwender die Orientierung einer MIB-Instanz verändert, entsprechend ändern und die MIB-Instanz an dem neuen Gitter andocken.
-
Das Werkzeug kann dem Anwender auch ein Umdefinieren des MIB-Gitters durch Auswählen einer MIB-Instanz mithilfe von Kontextmenüs ermöglichen. Es wird darauf hingewiesen, dass bei einem Umdefinieren des MIB-Gitters auf Basis von einer der MIB-Instanzen die anderen MIB-Instanzen ihre Legalisierung verlieren, da sie von der Modellier-Engine auf Basis des älteren Gittersatzes platziert wurden. Bei einigen Ausführungsformen kann das Werkzeug eine Legalisierungsfunktionalität aufweisen, die es einem Anwender ermöglicht, das umdefinierte Gitter zum Legalisieren der anderen MIB-Instanzen zu verwenden.
-
5 veranschaulicht ein Verfahren zur Durchführung einer Modellierung gemäß einiger der hierin beschriebenen Ausführungsformen. Das Verfahren kann mit dem Empfangen eines Satzes von PG-Strategien beginnen, der eine Struktur eines PG beschreibt, die bei einem Chipentwurf verwendet werden soll (Vorgang 502). Bei einigen Ausführungsformen kann der Satz von PG-Strategien zum Erzeugen des PGs einen Ausgangspunkt, einen Abstand, eine Richtung und eine Wiederholzahl festlegen. Bei einigen Ausführungsformen kann das Verfahren beim Vorgang 502 zusätzliche Informationen erhalten, beispielsweise eine Justieroption, welche die Art der erforderlichen Justierung angibt, und Informationen zu den Metallisierungsschichten. Als Nächstes kann das Verfahren auf Basis des Satzes von PG-Strategien einen Satz von Platzierungsbedingungen erzeugen (Vorgang 504). Der Satz von Platzierungsbedingungen kann während des Modellierens und auch zum Legalisieren (wenn der Anwender den Chipentwurf z. B. manuell bearbeitet) verwendet werden. Bei Ausführungsformen, die während des Vorgangs 502 zusätzliche Informationen empfangen, kann das Verfahren während des Vorgangs 504 auf Basis des Satzes von PG-Strategien und der zusätzlichen Information, z. B. der Justieroption und/oder der Metallisierungsschichtinformation, einen Satz von Platzierungsbedingungen erzeugen. Das Verfahren kann dann die Modellierung oder Legalisierung unter Verwendung des Satzes von Platzierungsbedingungen durchführen (Vorgang 506). Bei einigen Ausführungsformen kann das Verfahren insbesondere eine Anfrage zum Ändern von Form, Größe und/oder Position einer Layoutpartition des Chipentwurfs empfangen. Das Verfahren kann daraufhin Form, Größe und/oder Position der Layoutpartition der Anfrage entsprechend ändern und die modifizierte Layoutpartition anschließend auf Basis des Satzes von Platzierungsbedingungen legalisieren (z. B. durch Justieren der Position der modifizierten Layoutpartition so, dass die Platzierungsbedingungen des Satzes erfüllt sind). Der Satz von Platzierungsbedingungen kann umfassen: (1) eine Platzierungsbedingung, die fordert, dass eine Mittellinie einer Layoutpartition (z. B. eine MIB-Instanz) an einer Mittellinie einer PG-Leitung (siehe z. B. 3A) ausgerichtet werden muss, (2) eine Platzierungsbedingung, die fordert, dass eine bestimmte Kante einer Layoutpartition einen bestimmten Versatz zu einer PG-Leitung aufweisen muss (siehe z. B. 3B) und/oder (3) eine Platzierungsbedingung, die fordert, dass ein Referenzpunkt einer Layoutpartition an einem Gitterpunkt eines Gitters ausgerichtet werden muss (siehe z. B. 4).
-
Computersystem
-
6 veranschaulicht ein Computersystem gemäß einiger der in dieser Offenbarung beschriebenen Ausführungsformen. Das Computersystem 602 kann einen Prozessor 604, einen Speicher 606 und eine Speichereinrichtung 608 aufweisen. Das Computersystem 602 kann mit einer Anzeigevorrichtung 614, einer Tastatur 610 und einem Zeigegerät 612 verbunden sein. In der Speichereinrichtung 608 können das Betriebssystem 616, das Anwendungsprogramm 618 und Daten 620 gespeichert sein. Die Daten 620 können Eingaben umfassen, die von dem Anwendungsprogramm 618 benötigt werden, und/oder Ausgaben, die von dem Anwendungsprogramm 618 erzeugt werden.
-
Das Computersystem 602 kann einige oder mehrere der in dieser Schrift implizit oder explizit offenbarten Vorgänge automatisch (oder mit Anwendereingaben) ausführen. Zum Beispiel kann das Computersystem 602 das Anwendungsprogramm 618 in den Speicher 606 laden und das Anwendungsprogramm daraufhin zum Durchführen einer Modellierung verwendet werden, die mit einer PNS zur PG-Justierung integriert ist.
-
ABSCHLIESSENDE FESTSTELLUNGEN
-
Die oben vorgelegte Beschreibung ermöglicht einem Fachmann Ausführung und Gebrauch der Ausführungsformen. Fachleute werden ohne Weiteres erkennen, dass die offenbarten Ausführungsformen in verschiedenster Weise modifiziert und die in dieser Beschreibung definierten allgemeinen Prinzipien auf andere Ausführungsformen und Anwendungen übertragen werden können, ohne Kern und Umfang der vorliegenden Offenbarung zu verlassen. Daher ist die vorliegende Erfindung nicht auf die vorgestellten Ausführungsformen beschränkt, sondern weist den breitesten mit den hier offenbarten Prinzipien und Merkmalen noch vereinbaren Umfang auf.
-
Datenstrukturen und Code, die in dieser Offenbarung beschrieben wurden, können teilweise oder vollständig auf einem computerlesbaren Speichermedium und/oder einem Hardwaremodul und/oder einer Hardwarevorrichtung gespeichert sein. Ein computerlesbares Speichermedium umfasst, ohne darauf beschränkt zu sein, einen flüchtigen Speicher, einen nichtflüchtigen Speicher, eine magnetische und optische Speichervorrichtung wie beispielsweise ein Plattenlaufwerk, ein Magnetband, CDs (compact discs), DVDs (digital versatile oder digital video discs), oder andere derzeit bekannte oder in Zukunft entwickelte Medien, auf denen Code und/oder Daten gespeichert werden können. Die in dieser Offenbarung beschriebenen Hardwaremodule oder Vorrichtungen umfassen, ohne darauf beschränkt zu sein, anwendungsspezifische integrierte Schaltungen (ASICs), Field Programmable Gate Arrays (FPGAs), eigene oder mitbenutzte Prozessoren und/oder andere derzeit bekannte oder in Zukunft entwickelte Hardwaremodule oder -vorrichtungen.
-
Die in dieser Offenbarung beschriebenen Verfahren und Prozesse können teilweise oder vollständig in Form von Code und/oder Daten vorliegen, die in einem computerlesbaren Speichermedium oder einer computerlesbaren Speichereinrichtung gespeichert sind, sodass, wenn ein Computersystem den Code und/oder die Daten einliest und ausführt, das Computersystem die entsprechenden Verfahren und Prozesse ausführt. Die Verfahren und Prozesse können teilweise oder vollständig in Form von Hardwaremodulen oder -vorrichtungen vorliegen, sodass die Hardwaremodule bzw. -vorrichtungen nach der Aktivierung die entsprechenden Verfahren und Prozesse ausführen. Es wird darauf hingewiesen, dass die Verfahren und Prozesse in Form einer Kombination aus Code, Daten und Hardwaremodulen bzw. Hardwarevorrichtungen vorliegen können.
-
Die vorhergehende Beschreibung von Ausführungsformen der vorliegenden Erfindung wurde lediglich zum Zwecke der Veranschaulichung und der Erläuterung vorgestellt. Sie soll nicht erschöpfend sein oder die vorliegende Erfindung auf die offenbarten Formen beschränken. Daher wird ein Fachmann viele Modifikationen und Abänderungen erkennen. Zudem dient die oben dargelegte Offenbarung nicht einer Beschränkung der vorliegenden Erfindung. Der Umfang der vorliegenden Erfindung wird durch die beiliegenden Ansprüche definiert.