-
GEBIET DER ERFINDUNG
-
Die Erfindung betrifft den Entwurf
integrierter Schaltungen und genauer ein Verfahren und eine Vorrichtung
zur Repräsentation
von Polygonen in einem Layout einer integrierten Schaltung.
-
HINTERGRUND
DER ERFINDUNG
-
Im Zusammenhang mit dem Entwurf integrierter
Schaltungen (IC – integrated
circuit) ist ein "Layout" ein Satz geometrischer Muster, typischerweise
in Gestalt von Polygonen, die die Größe und den Ort unterschiedlicher
Materialarten angeben, die während
der Herstellung eines IC zur Erzeugung von Halbleiterelementen und
elektrischen Verbindungen zwischen den Elementen verwendet werden.
Beispielsweise kann ein Diffusionsfenster eines IC in einem Layout
durch ein Polygon oder mehrere Polygone repräsentiert werden, die von einer
Herstellungsanlage als "Diffusionsschichtgeometrie" interpretiert werden.
Andere Materialschichten und Merkmale, wie beispielsweise Kontakte
oder Durchführungen, können in
einem IC-Layout auf ähnliche
Weise repräsentiert
werden. Die Polygone in einem IC-Layout müssen einen Satz von Entwurfsregeln
erfüllen,
die Mindestgrößen für bestimmte
Materialarten und auch Mindestanforderungen für den Abstand zwischen unterschiedlichen
Materialarten definieren. Der Satz von Entwurfsregeln gibt auch
Größen- und
Abstandsanforderungen für
andere Layoutmerkmale wie beispielsweise Kontakte an.
-
Manchmal werden IC-Layouts unter
Verwendung eines Systems zum computergestützten Entwurf (CAD) von Hand
gezeichnet. Diese Vorgehensweise ist für den Entwurf von IC-Layouts
mit relativ wenigen Einheiten oft geeignet. Moderne Herstellungstechnologien
erlauben es jedoch, mehrere Millionen Transistoren auf einem einzigen
Siliziumsubstrat anzuordnen. Das Zeichnen eines IC-Layouts mit Millionen von
Transistoren von Hand ist nicht praktikabel, weil es auch dann überaus viel
Zeit benötigen würde, wenn
standardisierte Zellen zur Verringerung der Anzahl einzelner zu
zeichnender Transistoren verwendet werden. Es sind daher unterschiedliche computerbasierte
IC-Layout-Entwurfswerkzeuge entwickelt worden, um die Erzeugung
von IC-Layouts zu automatisieren. Blattzellen-Kompaktifizierungswerkzeuge
und Blattzellen-Synthesewerkzeuge sind zwei Arten von Layout-Entwurfswerkzeugen.
Im Zusammenhang mit IC-Layouts bezeichnet der Begriff "Blattzelle"
(leaf cell) eine Transistorgruppe, typischerweise von zwei Transistoren
bis mehreren Hundert Transistoren, die zusammen eine bestimmte Funktion,
wie beispielsweise eine logische NAND-Operation oder das Speichern
eines Informationsbits, ausführen.
-
Blattzellen-Kompaktifizierungswerkzeuge werden
verwendet, um die Größe eines
bestehenden IC-Layouts zu verringern. Die meisten Blattzellen-Kompaktifizierungswerkzeuge
kompaktifizieren ein Layout entweder in vertikaler oder horizontaler Richtung,
indem sie überschüssigen Leerraum
zwischen den Polygonen entfernen. Eine "vollständige" Kompaktifizierung wird
manchmal ausgeführt,
indem ein Layout zunächst
in horizontaler Richtung und dann in vertikaler Richtung komprimiert
wird. Die meisten Blattzellen-Kompaktifizierungswerkzeuge sind jedoch
auch in der Lage, die Koordinaten der Polygonpunkte in einem IC-Layout
zu verändern,
bis sie die Entwurfsregeln für
einen bestimmten Herstellungsprozeß erfüllen, wodurch die Werkzeuge
auch zum Übertragen
eines bestehenden Layouts von einem gegenwärtigen Entwurfsregelsatz auf
einen neuen Entwurfsregelsatz hilfreich sind. Trotz des Nutzens
von Blattzellen-Kompaktifizierungswerkzeugen ist auch ein kompaktifiziertes
Layout größer als vergleichbare
von Hand gezeichnete Zellen, weil die Kompaktifizierung im allgemeinen
ein eindimensionaler Vorgang ist. Auch behalten Kompaktifzierungswerkzeuge
die bestehende Layoutstruktur bei, auch wenn nicht-lineare Änderungen
der Entwurfsregeln (z. B. eine proportional vergrößerte Metallüberlappung
um einen Kontakt) menschliche Layout-Entwerfer oft veranlassen,
beim Zeichnen eines Layouts mit diesen neuen Entwurfsregeln andere
Entscheidungen zu treffen.
-
Anders als Blattzellen-Kompaktifizierungswerkzeuge
haben Blattzellen-Synthesewerkzeuge die Fähigkeit, ein neues Blattzellenlayout
basierend auf einer Netzliste auf Transistorebene, die die Größe von Transistoren
und die elektrischen Verbindungen zwischen den Transistoren angibt,
zu erzeugen. Weil ein Layout-Synthesesystem eine bestehende Layoutstruktur
nicht zu erhalten braucht, kann es die Entwurfsregeln oder Schaltungsanforderungen
in vollem Umfang vorteilhaft ausnutzen, z. B., indem Transistoren
umgeordnet werden, Transistoren in abwechselnden Spalten angeordnet
werden, oder die Leitungsführung
neu angelegt wird, wenn Ressourcen frei werden. Viele Layout-Synthesesysteme
verwenden als abschließenden
Schritt bei der Erzeugung eines Layouts eine Kompaktifizierung,
aber sie können
dennoch kompaktere Layouts erzeugen als die entsprechenden Systeme,
die nur bestehende Layouts kompaktifizieren.
-
Die meisten IC-Layout-Entwurfswerkzeuge erzeugen
eine interne Repräsentation
der in einem Layout enthaltenen Polygone. Zwei Vorgehensweisen zum
Repräsentieren
von Polygonen in einem IC-Layout sind die allgemeine Polygon-Vorgehensweise
und die Leitungs- oder Pfad-Vorgehensweise.
-
Die allgemeine Polygon-Vorgehensweise verwendet
eine einzige Punktliste, die Rechtecke oder Trapezoide darstellt,
welche zum Erzeugen der in einem IC-Layout enthaltenen Polygone
verwendet werden. Jedes Rechteck oder Trapezoid hat parallele Seiten
mit gleicher Orientierung und wird durch vier Punkte definiert.
Komplexe Polygone werden repräsentiert,
indem mehrere Trapezoide einander benachbart angeordnet werden.
Die allgemeine Polygon-Vorgehensweise ist arbiträr und stellt die Flexibilität zur Repräsentation
jedweder Layoutgeometrie bereit. Bei den Trapezoiden gibt es keine
bevorzugte Orientierung oder "Drehrichtung". Das heißt, daß auf ein
Trapezoid nicht im Hinblick auf eine bestimmte Ecke Bezug genommen
wird, und daß die
Seiten eines Trapezoids nicht z. B. im Hinblick auf den Stromfluß geordnet
sind. Die Beliebigkeit bewirkt jedoch, daß die allgemeine Polygon-Vorgehensweise schwierig
in Software zu implementieren ist. Weil die meiste Synthesesoftware
die Anzahl von Punkten begrenzt, die in einem einzigen Polygon enthalten sein
können,
müssen
einige komplexe Polygone mit vielen Trapezoiden in kleinere Polygone
aufgebrochen werden. Das Erfordernis, ein Polygon in viele Trapezoide
oder Rechtecke aufzubrechen, verschleiert dessen Zweck, und es ist
schwierig, nützliche
Eigenschaften wie z. B. den Widerstand oder die Transistoreinheitengröße zu bestimmen.
Auch können
relativ einfache Veränderungen
der Polygone zu einer umfangreichen Umstrukturierung der Trapezoidrepräsentation
führen.
Wegen der Komplexität
der Algorithmen, die zur Verarbeitung nicht-orthogonaler, aus Trapezoiden
zusammengesetzter Geometriestrukturen erforderlich sind, verwenden
viele Werkzeuge nur Rechtecke. Es werden viele Trapezoide oder Rechtecke
benötigt,
um alle bis auf die einfachsten Polygone zu repräsentieren, und nützliche
Operationen wie z. B. das Einfügen
einer Kurve in eine Leitung sind schwierig, weil sie keine unmittelbare Entsprechung
in einer Liste zusammengefügter
Trapezoide haben. Schließlich
wird in einigen Implementierungen der allgemeinen Polygon-Vorgehensweise der
gesamte Entwurfsraum repräsentiert,
einschließlich
allen ungenutzten Platzes zwischen Polygonen, was die Polygonanzahl
erhöht
und mehr Daten zur Repräsentation
des Layouts erfordert.
-
Die Leitungs- oder Pfadvorgehensweise
repräsentiert
Polygone unter Verwendung einer Mittellinie und einer Polygonbreite
für jeden
Punkt entlang der Mittellinie. Diese Vorgehensweise kann wegen ihrer
Einfachheit leicht in Synthesewerkzeugen implementiert werden, und
sie kann die Leitungsführung zwischen
Diffusionsinseln vereinfachen. Auch können die Breite und der Widerstand
eines Pfads leicht berechnet werden. Die meisten Layoutgeometriestrukturen
können
dargestellt werden, ohne Leitungen zusammenzufügen oder Leitungen nebeneinander
anzuordnen, und diese Vorgehensweise wird in vielen Leitungsführungswerkzeugen
verwendet. Die Pfadvorgehensweise erfordert jedoch, daß Polygone parallele
Seiten aufweisen, was sie für
komplexere Formen, wie beispielsweise achteckförmige Kontakte, unregelmäßig geformte
Diffusionsinseln oder Leitungen mit sich verändernder Breite ungeeignet macht.
-
US-A-5,640,497 beschreibt ein Verfahren zum
Einrichten von Polygondaten zur Erzeugung eines neuen Layouts, das
neue Entwurfsregeln erfüllt. Das
Polygon besteht aus "Schichten" von Rechtecken. Die Rechtecke und
"Schichten" werden bearbeitet, um die neuen Entwurfsregeln zu erfüllen.
-
US-A-5,113,451 beschreibt ein Vertahren zum
Markieren von Polygonen eines geometrischen Layouts. Das Markieren
ertordert, daß das
Polygon abgetastet wird und daß jeder
Abtastlinie temporäre Zahlen
zugeordnet werden. Die Polygone werden dann gemäß mindestens einem Kriterium
sortiert.
-
Angesichts des Erfordernisses, Polygone
in IC-Layout-Synthesewerkzeugen zu repräsentieren, und angesichts der
Begrenzungen existierender Vorgehensweisen, ist eine alternative
Vorgehensweise zum Repräsentieren
von Polygonen in einem IC-Layout sehr wünschenswert.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Gemäß einem Aspekt der Erfindung
wird eine Vorgehensweise zum Erzeugen einer Datenrepräsentation
eines IC-Layouts bereitgestellt. Das Computersystem weist einen
Speicher und einen oder mehrere mit dem Speicher gekoppelte Prozessoren
auf. Der Speicher weist eine Reihe von Befehlen auf, die, wenn sie
von dem einen oder den mehreren Prozessoren ausgeführt werden,
den einen oder die mehreren Prozessoren dazu veranlassen, mehrere
Schritte, wie in Anspruch 1 definiert, auszuführen.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Ausführungsformen der Erfindung
sind als Beispiele, und nicht in beschränkender Weise, in den Figuren
der beigefügten
Zeichnungen dargestellt, in denen gleiche Bezugszeichen sich auf ähnliche
Elemente beziehen und in denen:
-
1 zeigt
eine kanonische Orientierung gemäß einem
Ausführungsbeispiel
der Erfindung;
-
2 zeigt
ein gerichtetes Liniensegment und einen benachbarten Punkt gemäß einem
Ausführungsbeispiel
der Erfindung;
-
3 zeigt
eine Leitung gemäß einem
Ausführungsbeispiel
der Erfindung;
-
4A zeigt
eine Datenstruktur für
einen Punkt gemäß einem
Ausführungsbeispiel
der Erfindung;
-
4B zeigt
eine Datenstruktur für
ein gerichtetes Liniensegment gemäß einem Ausführungsbeispiel
der Erfindung;
-
4C zeigt
eine Datenstruktur für
ein Leitungssegment gemäß einem
Ausführungsbeispiel der
Erfindung;
-
4D zeigt
eine Datenstruktur für
eine Leitung gemäß einem
Ausführungsbeispiel
der Erfindung;
-
4E zeigt
eine Datenstruktur für
ein Polygon gemäß einem
Ausführungsbeispiel
der Erfindung;
-
4F zeigt
eine Datenstruktur für
eine Verzweigung gemäß einem
Ausführungsbeispiel
der Erfindung;
-
4G zeigt
eine Datenstruktur für
eine Seitenabzweigung gemäß einem
Ausführungsbeispiel der
Erfindung;
-
5 zeigt
ein aus Leitungssegmenten zusammengesetztes Polygon gemäß einem
Ausführungsbeispiel
der Erfindung;
-
6A–6E zeigen einen Satz von
Datenstrukturen, die dem Polygon von 5 gemäß einem Ausführungsbeispiel
der Erfindung zugeordnet sind;
-
7 zeigt
ein zweites aus Leitungssegmenten gebildetes Polygon gemäß einem
Ausführungsbeispiel
der Erfindung;
-
8 zeigt
eine aus Leitungssegmenten gebildete Diffusionsinsel gemäß einem
Ausführungsbeispiel
der Erfindung;
-
9A zeigt
ein gerichtetes Liniensegment und einen Orientierungsschlüssel gemäß einem
Ausführungsbeispiel
der Erfindung;
-
9B zeigt
ein Leitungssegment und einen Orientierungsschlüssel gemäß einem Ausführungsbeispiel
der Erfindung;
-
10 zeigt
einen Abschnitt eines unter Verwendung von Leitungssegmenten erzeugten
IC-Layouts gemäß einem
Ausführungsbeispiel
der Erfindung;
-
11 zeigt
die Verwendung einer Ausschlußzone
zum Bestimmen des Polygonabstands gemäß einem Ausführungsbeispiel
der Erfindung;
-
12 ist
ein Flußdiagramm,
das ein Verfahren zum Ausführen
einer Abstandsüberprüfung zwischen
Polygonen gemäß einem
Ausführungsbeispiel der
Erfindung zeigt;
-
13A zeigt
eine unter Verwendung von Leitungssegmenten gebildete Leitung gemäß einem Ausführungsbeispiel
der Erfindung;
-
13B zeigt
eine Polygonrepräsentation der
Leitung von 13A gemäß einem
Ausführungsbeispiel
der Erfindung; und
-
14 ist
ein Blockdiagramm eines Computersystems, auf dem Ausführungsbeispiele
der Erfindung implementiert werden können.
-
DETAILBESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Eine neue Vorgehensweise zur Repräsentation
von Polygonen in einem IC-Layout wird beschrieben. In der folgenden
Beschreibung werden zum Zwecke der Erläuterung genaue Einzelheiten
angeführt,
um für
ein gründliches
Verständnis
der Ertindung zu sorgen. Es ist jedoch klar, daß die Erfindung ohne diese
speziellen Einzelheiten ausgeführt
werden kann. In anderen Fällen
werden gut bekannte Strukturen und Vorrichtungen als Blockdiagramme dargestellt,
um eine unnötige
Verschleierung der Erfindung zu vermeiden.
-
FUNKTIONSÜBERBLICK
-
Allgemein werden gemäß einem
Ausführungsbeispiel
der Erfindung die Polygone eines IC-Layouts durch eine Leitung oder
mehrere Leitungen repräsentiert,
die jeweils durch ein Leitungssegment oder mehrere Leitungssegmente
repräsentiert werden.
Jedes Leitungssegment wird aus einem Paar gerichteter Liniensegmente
gebildet. Eine neue Datenstrukturhierarchie wird bereitgestellt,
um Daten zu verwalten, die die Leitungen, Leitungssegmente und gerichteten
Liniensegmente repräsentieren.
Die Datenstrukturhierarchie wird während der IC-Layout-Synthese
verwendet, um Gültigkeitsüberprüfungen bezüglich des
IC-Layouts durchzuführen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1) Kanonische Orientierung
-
Wie in 1 dargestellt,
bezieht sich die kanonische Orientierung allgemein auf die Richtung
der IC-Layout-Geometriestrukturen bezüglich eines vorgegebenen Orientierungsschlüssels 100.
Gemäß einem
Ausführungsbeispiel
der Endung kann eine IC-Layout-Geometriestruktur in einer von acht
kanonischen Richtungen orientiert sein, wobei jede kanonische Richtung
ein Mehrfaches von 45° darstellt. Beginnend
oben an dem Orientierungsschlüssel 100 und
im Uhrzeigersinn fortschreitend, sind die kanonischen Orientierungen
(oben), (oben, rechts), (rechts), (unten, rechts), (unten), (unten,
links), (links) und (oben, links).
-
Zusätzlich dazu, daß die IC-Layout-Geometrie
in einer kanonischen Orientierung ausgerichtet ist, wird auch die
Beziehung zwischen Merkmalen des IC-Layouts anhand einer kanonischen
Richtung beschrieben. Beispielsweise wird, wie in 2 dargestellt, ein Liniensegment 200 durch
Endpunkte 202 und 204 definiert. Gemäß einem
Ausführungsbeispiel
der Erfindung beruht die kanonische Orientierung des Liniensegments 200 auf
der Position des Endpunkts 204 bezüglich dem Endpunkt 202.
Somit ist das Liniensegment 200 in die (oben, rechts)-Richtung
orientiert oder gerichtet, wie durch den Richtungspfeil 205 angezeigt.
Es gibt keine Einschränkungen
hinsichtlich der Richtung, in die ein Liniensegment zeigen kann.
Beispielsweise wäre,
wenn sich der Endpunkt 204 unterhalb und links des Endpunkts 202 befinden
würde,
die kanonische Orientierung des Liniensegments 200 dann
(unten, links). Ferner ist der Punkt 206 links (links)
des Liniensegments 200 angeordnet; während der Punkt 208 oberhalb
und rechts (oben; rechts) des Liniensegments 200 angeordnet
ist. Diese Vorgehensweise ist nützlich,
um zu bestimmen, ob der Abstand zwischen dem Liniensegment 200 und
dem Punkt 206 einen Satz vorbestimmter Abstandskriterien,
wie hier im folgenden beschrieben, erfüllt.
-
Wie vorher einführend erläutert, werden IC-Layout-Polygone
durch eine Leitung oder mehrere Leitungen repräsentiert, und jede Leitung
wird durch ein Leitungssegment oder mehrere Leitungssegmente repräsentiert.
Gemäß einem
Ausführungsbeispiel
der Erfindung weist jedes Leitungssegment vier Seiten auf, zwei
seitliche Seiten (links und rechts) und zwei Endseiten (erste und
zweite). Die seitlichen Seiten werden durch ein Paar gerichteter Kanten
repräsentiert,
die im wesentlichen in der gleichen Richtung orientiert sind, aber
die nicht notwendigerweise parallel zu sein brauchen oder zusammenfallende
Endpunkte aufzuweisen brauchen. Gemäß einem Ausführungsbeispiel
der Erfindung müssen
die linken und rechten Seiten jeweils mit einem Vielfachen eines
45°-Winkels
zueinander stehen, aber die Endseiten können jeweils irgendeinen Winkel
zueinander aufweisen. Im allgemeinen werden die Endseiten an den
offenen Enden der Leitung ein Mehrfaches von 45° aufweisen, wäh rend die
"inneren" Endseiten jeden beliebigen Winkel aufweisen können. Wie
bei Liniensegmenten können
Leitungssegmente in jede beliebige Richtung zeigen, wie oben unter
Hinweis auf 1 beschrieben.
Gemäß einem
Ausführungsbeispiel
der Erfindung dürfen nicht
alle Punkte auf einem Leitungssegment aufeinanderfallen, um sicherzustellen,
daß jede
Seite eine Länge
ungleich null und eine definierte Richtung aufweist.
-
3 zeigt
eine Leitung 300, die aus einem Leitungssegment 302 und
einem mit dem Leitungssegment 302 in einem 45°-Winkel verbundenen
Leitungssegment 304 gemäß einem
Ausführungsbeispiel
der Erfindung gebildet ist. Das Leitungssegment 302 ist
aus einer ersten gerichteten Kante 306, die die linke Seite
des Leitungssegments 302 bildet, und einer zweiten gerichteten
Kante 308, die die rechte Seite des Leitungssegments 302 bildet,
aufgebaut. Das Leitungssegment 302 weist auch eine erste
Endseite 310 und eine zweite Endseite 312 auf.
Beide gerichteten Kanten 306 und 308 zeigen in
die Richtung (unten). Somit zeigt das Leitungssegment 302 auch
in die Richtung (unten).
-
Das Leitungssegment 304 ist
aus einer ersten gerichteten Kante 314 und einer zweiten
gerichteten Kante 316 gebildet. Beide gerichteten Kanten 314, 316 sind
in die Richtung (unten, rechts) gerichtet und bewirken somit, daß das Leitungssegment 304 in die
Richtung (unten, rechts) gerichtet ist. Das Leitungssegment 304 weist
eine mit der zweiten Endseite des Leitungssegments 302 zusammenfallende erste
Endseite 312 und eine zweite Endseite 318 auf.
-
2) Datenstrukturen
-
Gemäß einem Ausführungsbeispiel
der Erfindung wird eine neue Datenstrukturarchitektur zur Repräsentation
von Polygonen in einem IC-Layout, wie durch 4A–4G veranschaulicht, bereitgestellt. Gemäß einem
Ausführungsbeispiel
der Erfindung wird jedes Polygon in einem IC-Layout durch eine Leitung
oder mehrere Leitungen repräsentiert.
Jede Leitung wird durch ein Leitungssegment oder mehrere Leitungssegmente
repräsentiert,
von denen jedes durch ein Paar gerichteter Linien segmente repräsentiert
wird. Jedes Leitungssegment verweist auf die Leitung, in der es
enthalten ist, und jede Leitung verweist auf ein Polygon, in dem
sie enthalten ist. Somit kann bei einem gegebenen Verweis auf ein
einziges Leitungssegment ein gesamtes Polygon aufgefunden und bearbeitet
werden.
-
4A veranschaulicht
den Inhalt einer Punkt-Datenstruktur 400 gemäß einem
Ausführungsbeispiel
der Erfindung. Die Punkt-Datenstruktur 400 gibt den Ort
eines Punkts in einem IC-Layout an, indem die X-und Y-Koordinaten
(X-KOORDINATE, Y-KOORDINATE) für
einen Punkt eines IC-Layouts angegeben werden.
-
4B veranschaulicht
den Inhalt einer Datenstruktur 410 für ein gerichtetes Liniensegment. Die
Datenstruktur 410 für
ein gerichtetes Liniensegment gibt sowohl einen ersten Endpunkt
(ENDE1) als auch einen zweiten Endpunkt (ENDE2) des entsprechenden
gerichteten Liniensegments an. Die Datenstruktur 410 für das gerichtete
Liniensegment gibt auch eine Richtung (RICHTUNG) eines gerichteten Liniensegments
an. Wie oben beschrieben, kann ein gerichtetes Liniensegment in
irgendeine von acht vordefinierten Richtungen, wie in 1 dargestellt, gerichtet
sein.
-
Die Datenstruktur 410 für ein gerichtetes
Liniensegment gibt auch einen Ortho-Anzeiger (ORTHO) und einen Oktant-Anzeiger
(OKTANT) an. Der Ortho-Anzeiger ist ein Boole'scher Anzeiger (boolean flag),
der anzeigt, ob ein gerichtetes Liniensegment mit einem Winkel,
der ein Mehrfaches von 90° ist, ausgerichtet
ist, während
der Oktant-Anzeiger ein Boole'scher Anzeiger ist, der angibt, ob
ein gerichtetes Liniensegment mit einem Winkel, der ein Mehrfaches
von 45° ist,
ausgerichtet ist. Gemäß einem
Ausführungsbeispiel
der Erfindung ist, wenn weder der Ortho- noch der Oktant-Anzeiger
gesetzt sind, das gerichtete Liniensegment dann in einem "ungewöhnlichen"
Winkel, d. h., anders als 45° oder
90°, ausgerichtet,
was in manchen Umständen
Gleitkommaarithmetik ertordert, um Koordinaten des gerichteten Liniensegments
zu berechnen.
-
4C zeigt
den Inhalt einer Leitungssegment-Datenstruktur 420, die
eine linke Kante (LINKE KANTE) und eine rechte Kante (RECHTE KANTE) eines
Leitungs segments angibt. Sowohl die linke Kante als auch die rechte
Kante verweisen jeweils auf eine Datenstruktur 410 für ein gerichtetes
Liniensegment. Die Leitungssegment-Datenstruktur 420 weist
auch einen Verweis auf das nächste
Leitungssegment (NÄCHSTES
LEITUNGSSEGMENT) und das vorherige Leitungssegment (VORHERIGES LEITUNGSSEGMENT)
in der Leitung auf und bildet somit eine doppelt verkettete Liste.
Die Leitungssegment-Datenstruktur für das erste Leitungssegment
in einer Leitung enthält
die Angabe eines vorbestimmten Wertes, um anzuzeigen, daß das Leitungssegment
nicht auf ein vorheriges Leitungssegment verweist. Gemäß einem
Ausführungsbeispiel
der Erfindung wird ein Wert NULL als vorbestimmter Wert verwendet.
Auf ähnliche
Weise enthält
die Leitungssegment-Datenstruktur für das letzte Leitungssegment
in einer Leitung einen vorbestimmten Wert, um anzuzeigen, daß das Leitungssegment
nicht auf ein nächstes
Leitungssegment verweist. Auch wenn ein Ausführungsbeispiel der Leitungs-Datenstruktur 420 im
Zusammenhang mit einer doppelt verketteten Liste beschrieben worden
ist, ist keine doppelt verkettete Liste erforderlich.
-
Die Leitungssegment-Datenstruktur 420 weist
auch einen Verweis auf eine das Leitungssegment enthaltende Elternleitung
(ELTERNLEITUNG) und einen Verweis (VERZWEIGUNG) auf eine Verzweigungs-Datenstruktur
auf, die von Bedeutung ist, wenn eine offene Endseite des gegenwärtigen Leitungssegments
eine seitliche Seite einer anderen Leitung berührt, um eine Verzweigung zu
bilden. Der Inhalt einer Verzweigungs-Datenstruktur wird unten noch
beschrieben. Verzweigungs-Datenstrukturen werden für Leitungssegmente,
die keine Verzweigung aufweisen, nicht angelegt, um Speicher zu
sparen.
-
4D zeigt
den Inhalt einer Leitungs-Datenstruktur 430. Die Leitungs-Datenstruktur 430 enthält die Angabe
eines Verweises auf ein Elternpolygon (ELTERNPOLYGON) und eine Zweignummer (ZWEIGNUMMER),
die die Leitung angibt. Die Leitungs-Datenstruktur 430 gibt
auch eine Begrenzungsbox (bounding box–BBX) an, die alle Leitungssegmente
der Leitung umfaßt.
Eine Begrenzungsbox erlaubt schnelle Bereichsabfragenüberprüfungen,
so daß auch
dann, wenn eine Leitung von einer Bereichsabfrage ermittelt wird,
kein Segment in der Leitung überprüft zu werden
braucht, wenn sich kein Leitungssegment in der Leitung nahe genug
am Abfragepunkt befindet. Gemäß einem
Ausführungsbeispiel
der Erfindung wird eine Begrenzungsbox (BBX) als vier ganzzahlige
Werte implementiert, die der linken, unteren, rechten und oberen
Koordinate der Begrenzungsbox entsprechen.
-
Die Leitungs-Datenstruktur 430 weist
auch je einen Verweis auf das erste Leitungssegment (ERSTES LEITUNGSSEGMENT)
und das letzte Leitungssegment (LETZTES LEITUNGSSEGMENT) in der Leitung
und ebenso je einen Verweis auf eine mit dem ersten Ende verbundene
Leitung (MIT ERSTEM ENDE VERBUNDENE LEITUNG) und eine mit dem zweiten
Ende verbundene Leitung (MIT ZWEITEM ENDE VERBUNDENE LEITUNG) auf.
-
4E zeigt
den Inhalt einer Polygon-Datenstruktur 440, die eine Begrenzungsbox
(BBX) und ein Feld mit Zweignummern (FELD MIT ZWEIGNUMMERN) angibt,
das alle in einem Polygon beinhalteten Leitungen durch ihre Zweignummern
angibt, wie oben im Hinblick auf die Leitungs-Datenstruktur 430 beschrieben.
Gemäß einem
Ausführungsbeispiel
der Erfindung weist die Polygon-Datenstruktur 440 auch einen
Verweis auf die entsprechende Prozeßschicht (SCHICHT) für das Polygon
und eine Polygonnummer (POLYGONNUMMER) auf, die zur eindeutigen Kennzeichnung
des Polygons verwendet wird. Beispielsweise kann diese Information
mit einer Liste verwendet werden, die alle Polygone für eine bestimmte
Prozeßschicht
angibt.
-
4F zeigt
den Inhalt einer Verzweigungs-Datenstruktur 450, die verwendet
wird, wenn gemäß einem
Ausführungsbeispiel
der Erfindung ein Zweig in einem Polygon gebildet wird. Ein Zweig
wird gebildet, wenn eine offene Endseite eines Leitungssegments
eine seitliche Seite einer anderen Leitung berührt. Die Verzweigungs-Datenstruktur 450 gibt
einen Verweis auf das Eltern-Leitungssegment (ELTERN-LEITUNGSSEGMENT)
und Verweise auf andere Leitungssegmente an, die mit dem ersten
Ende (ENDE1-ZWEIG) bzw. dem zweiten Ende (ENDE2-ZWEIG) des Leitungssegments
verbunden sind. Die Verzweigungsstruktur 450 weist auch
je einen Verweis auf den ersten und den letzten linken Zweig (ERSTER
LINKER ZWEIG, LETZTER LINKER ZWEIG) und den ersten und den letzten
rechten Zweig (ERSTER RECHTER ZWEIG, LETZTER RECHTER ZWEIG), die
von einem Leitungssegment abgehen, auf. Das heißt, daß diese Datenstrukturelemente
auf eine Seitenabzweigungsstruktur verweisen, wenn ein bestimmtes
Leitungssegment andere Leitungssegmente aufweist, die sich an einer
der Seiten des Leitungssegments mit diesem schneiden. Gemäß einem
Ausführungsbeispiel
der Erfindung kann jedwede Anzahl von Zweigen mit einer seitlichen
Seite eines Leitungssegments verbunden werden, aber die Endseite
einer Leitung kann nur mit einem einzigen anderen Leitungssegment
verbunden werden.
-
4G zeigt
den Inhalt einer Seitenabzweigungsstruktur 460, die je
einen Verweis sowohl auf ein Leitungssegment (ANDERES LEITUNGSSEGMENT),
das Teil des mit dem Eltern-Leitungssegment verbundenen Zweigs ist,
als auch auf das Liniensegment (ELTERN-LINIENSEGMENT) in dem Eltern-Leitungssegment
angibt, an das das andere Leitungssegment angeschlossen ist. Die
Seitenabzweigungs-Struktur 460 gibt auch an, ob das andere
Leitungssegment an der linken Seite des Eltern-Leitungssegments anschließt, und
zwar auf Grundlage eines Boole'schen Anzeigers (AN LINKER KANTE). Die
Seitenabzweigungs-Struktur 460 weist auch je einen Verweis
auf die Datenstrukturen für
den nächsten
Seitenzweig (NÄCHSTER
SEITENZWEIG) und den vorherigen Seitenzweig (VORHERIGER SEITENZWEIG)
und auch auf den ersten Seitenpunkt (ERSTER SEITENPUNKT) und den
zweiten Seitenpunkt (ZWEITER SEITENPUNKT) auf, die die Orte auf
dem Eltern-Leitungssegment angeben, an denen das andere Leitungssegment
anknüpft.
Die Seitenpunkte sind beim Sortieren der Seitenzweiglisten hilfreich;
der erste Seitenpunkt ist näher
am Ende1 des Eltern-Leitungssegments.
-
Die oben erwähnten Datenstrukturen werden nun
mit Hinweis auf 5 und
ein aus drei Leitungen, LEITUNG A, LEITUNG B und
LEITUNG C, gebildetes Polygon 500 gemäß einem
Ausführungsbeispiel
der Erfindung beschrieben. Jede Leitung, LEITUNG A, LEITUNG B und
LEITUNG C, besteht aus einem einzigen Leitungssegment,
bezeichnet mit LEITUNGSSEGMENT A, LEITUNGSSEGMENT B und
LEITUNGSSEGMENT C.
-
Das LEITUNGSSEGMENT A ist
aus zwei gerichteten Liniensegmenten a1 und a2 gebildet, die beide in die Richtung
(oben) gerichtet sind, wie durch die Richtungspfeile angezeigt.
Das LEITUNGSSEGMENT B ist aus gerichteten Liniensegmenten b1 und b2 gebildet,
die beide in die Richtung (links) gerichtet sind. Die LEITUNG B ist
mit der LEITUNG A bei dem gerichteten Liniensegment a1 an einem durch die Punkte d1 und d2 definierten
Ort zusammengefügt. Das
LEITUNGSSEGMENT C ist aus gerichteten Liniensegmenten c1 und c2 gebildet,
die beide in die Richtung (rechts) gerichtet sind. Die LEITUNG C
vereinigt sich mit LEITUNG A bei dem gerichteten Liniensegment a1 an einer durch die Punkte e1 und e2 definierten
Stelle. Begrenzungsboxen BBXA , BBXB , BBXC definieren
den Inhalt von LEITUNG A, LEITUNG B bzw. LEITUNG C,
und eine Begrenzungsbox BBXp definiert
den Inhalt des Polygons 500.
-
Gemäß einem Ausführungsbeispiel
der Erfindung weisen alle Leitungen in einem Polygon eine gemeinsame
logische Zuordnung auf. Beispielsweise können, bei einem bestimmten
Polygon, alle Leitungen physisch zusammenhängend sein und gemeinsame elektrische
Eigenschaften aufweisen. Bei einem anderen Polygon brauchen die
Leitungen nicht eine gemeinsame physische Zuordnung aufzuweisen,
aber sie können
elektrisch verbunden sein, wie dies beispielsweise bei einer Gruppe
von Kontakten der Fall ist. Andererseits kann ein Satz Leitungen auch
logisch in ein Polygon gruppiert werden, weil es bequem ist, diese
Leitungen ein einziges, gemeinsames Polygon einnehmen zu lassen.
Beispielsweise können,
auch wenn sie nicht physisch oder elektrisch miteinander in Beziehung
stehen, alle Polysilizium-Gates (polysilicon gates) einer Diffusionsinsel
in ein einziges Polygon aufgenommen werden, weil ist bequem ist,
alle Polysilizium-Gates einer Diffusionsinsel zusammen zu verarbeiten.
-
Der Satz von Datenstrukturen, die
zur Repräsentation
des Polygons 500 gemäß einem
Ausführungsbeispiel
der Erfindung erzeugt werden, ist in 6A–6E gezeigt. 6A zeigt eine Polygon-Datenstruktur 600 für das Polygon 500.
Die Polygon-Datenstruktur 600 gibt
an, daß das
Polygon 500 drei Leitungen enthält: LEITUNG A, LEITUNG B und
LEITUNG C. Die Polygon-Datenstruktur 600 gibt
auch an, daß das Polygon 500 Diffusionsschicht-Geometriestrukturen
repräsentiert
und die Polygonnummer 1 hat.
-
Eine Leitungs-Datenstruktur 610 wird
für die LEITUNG A erzeugt.
Auf ähnliche
Weise werden Leitungs-Datenstrukturen 620, 630 für die LEITUNGEN B bzw. C erzeugt.
Eine Leitungssegment-Datenstruktur 640 wird für das LEITUNGSSEGMENT A erzeugt. Eine
Leitungssegment-Datenstruktur 650 wird für das LEITUNGSSEGMENT B erzeugt.
Schließlich wird
eine Leitungs-Datenstruktur 660 für das LEITUNGSSEGMENT C erzeugt.
Auf ähnliche
Weise werden Verzweigungs-Datenstrukturen 660, 670 und 680 für jedes
Leitungssegment erzeugt. Zusätzlich werden
zwei Seitenzweig-Datenstrukturen 690 und 695 für das LEITUNGSSEGMENT A erzeugt,
weil LEITUNG B und LEITUNG C entlang der gerichteten Kante a1 von LEITUNG A mit LEITUNG A verbunden sind.
-
7 zeigt
ein Polygon 700, das aus zwei Leitungen 702 und 704 gemäß einem
Ausführungsbeispiel
der Erfindung gebildet ist. Die Leitungen 702 und 704 sind
aus einem Satz Leitungssegmente gebildet, die jeweils aus einem
Paar gerichteter Liniensegmente gebildet sind. Die Richtung der
gerichteten Liniensegmente ist durch Pfeile 706 angegeben.
-
Das Polygon 700 weist mehrere
unterschiedliche Arten von IC-Layout-Geometriestrukturen auf; die
unter Verwendung von Leitungssegmenten gebildet sind, welche, gemäß einem
Ausführungsbeispiel der
Erfindung, entweder Polysilizium- oder Metallschicht-Gometriestrukturen
repräsentieren.
Eine Kontakteinfassung 708 ist über einen Hin-und-her-führenden
Pfad 710 mit der Leitung 704 verbunden. Die Leitung 704 weist
eine achteckige Kontakteinfassung 712 auf, die aus drei
Leitungssegmenten 714, 715 und 716 gebildet
ist. Gemäß einem
Ausführungsbeispiel
der Erfindung, und wie durch die Leitungssegmente 714 und 716 veranschaulicht,
brauchen gerichtete Liniensegmente, die zur Konstruktion eines Leitungssegments
verwendet werden, nicht parallel zu sein oder Endpunkte zu haben,
die mit benachbarten Segmenten zusammenfallen. Dieser Aspekt der
Erfindung gestattet die Konstruktion einer breiten Vielfalt von
IC-Layout-Geometriestrukturen.
-
8 zeigt
eine IC-Layout-Diffusionsinsel 800, die gemäß einem
Ausführungsbeispiel
der Erfindung aus Leitungssegmenten gebildet ist. Die Diffusionsinsel 800 weist
Diffusionsbereiche 802 auf, die Diffusionsgeometriestrukturen
darstellen. Die Diffusionsinsel 800 weist auch Polysiliziumbereiche 804 auf,
die Polysiliziumgeometriestrukturen darstellen. Die Diffusionsinsel 800 weist
auch eine Reihe Kontakte 806 auf. Schließlich weist
die Diffusionsinsel 800 einen Senkenverbindungsteil (well
tie) 808 auf, der einen Kontakt 810 umfaßt.
-
Die Diffusionsinsel 800 wird
durch drei Polygone repräsentiert.
Trotz der unregelmäßigen Gestalt der
Diffusionsinsel 800 enthält ein Polygon alle Diffusionsbereiche 802 und
ist aus einem Leitungssegment 812, einem Leitungssegment 814 und
einem Leitungssegment 816 gebildet. Ein weiteres Polygon enthält alle
Polysiliziumbereiche 804 und ist aus vier Leitungen gebildet,
eine für
jedes Polysilizium-Gate. Ein weiteres Polygon enthält alle
Kontakte 806 und auch den in dem Senkenverbindungsteil 808 enthaltenen
Kontakt 810. Die Kontakte 806 können wegen ihrer
gemeinsamen elektrischen Eigenschaften in einem einzigen Polygon
definiert werden, oder sie können,
als Alternative, als separate Polygone definiert werden. Beispielsweise
können,
wenn ein Polysilizium-Gate mehr als einen Kontakt auf einer Seite
aufweist, die Kontakte auf dieser Seite als ein Polygon, mit einer
Leitung pro Kontaktbereich (Rechteck/Achteck etc.), repräsentiert
werden.
-
3) Verwendung von Datenstrukturen
während
der IC-Layout-Synthese
-
Gemäß einem Ausführungsbeispiel
der Erfindung werden die oben beschriebenen Datenstrukturen während der
IC-Layout-Synthese verwendet, um zu überprüfen, daß bestimmte Eigenschaften eines
Layouts, wie beispielsweise Polygonbreiten, Abstände und Kontaktumfassungen,
vorbestimmte Entwurtsregeln erfüllen.
Das Konzept der kanonischen Richtung wie hier beschrieben ist ein
wichtiger Aspekt dieser Art von Überprüfung, weil
es dazu beiträgt,
die in dem Layout benötigte
Anzahl vollständiger Überprüfungen zu
minimieren. Im Zusammenhang mit der IC-Layout-Überprüfung bezieht sich eine vollständige Prüfung auf
den Vorgang, alle Seiten eines Polygons hinsichtlich eines anderen
in dem IC-Layout enthaltenen Objekts zu prüfen, im Gegensatz beispielsweise
zur Überprüfung nur
der dem anderen Objekts nächsten
Seite des Polygons.
-
a. Bestimmen der kanonischen
Richtung von einem Liniensegment zu einem Punkt
-
Gemäß einem Ausführungsbeispiel
der Erfindung werden bis zu drei Halbebenen-Überprüfungen verwendet,
um die kanonische Richtung von einem gerichteten Liniensegment zu
einem beliebigen Punkt zu bestimmen. Die erste Halbebenen-Überprüfung bestimmt, ob sich der
beliebige Punkt links, rechts oder überhalb des gerichteten Liniensegments befindet.
Die zweite Halbebenen-Überprüfung bestimmt,
ob sich der beliebige Punkt über
oder unter dem ersten Endpunkt des gerichteten Liniensegments befindet.
Die dritte Halbebenen-Überprüfung bestimmt,
ob sich der beliebige Punkt über
oder unter dem zweiten Endpunkt des gerichteten Liniensegments befindet.
Indem die Ergebnisse der drei Halbebenen-Überprüfungen ausgewertet werden,
wird jede Unklarheit hinsichtlich des Orts des beliebigen Punkts
bezüglich
des gerichteten Liniensegments aufgelöst.
-
Jede Halbebenen-Überprüfung beinhaltet die Berechnung
des inneren Produkts (dot product) des beliebigen Punkts bezüglich des
gerichteten Liniensegments. Ein Liniensegment, das die Grenze der Halbebene
darstellt, wird um 90° gegen
den Uhrzeigersinn gedreht, und der beliebige Punkt wird auf das neue
Liniensegment projiziert. Das Vorzeichen des inneren Produkts gibt
dann an, ob sich der beliebige Punkt links von der Halbebenengrenze(+1),
auf der Grenze (0) oder rechts von der Grenze (–1) befindet. Die drei Halbebenengrenzen
sind das ursprüngliche Liniensegment,
ein durch den ersten Endpunkt verlaufendes und um 90° gedrehtes
Liniensegment, und ein durch den zweiten Endpunkt verlaufendes und um
90° gedrehtes
Liniensegment.
-
Beispielsweise zeigt 9A ein gerichtetes Liniensegment 900,
das durch einen ersten Endpunkt 902 und einen zweiten Endpunkt 904 definiert ist.
Die Bereiche um das gerichtete Liniensegment 900 entsprechen
dem Orientierungsschlüssel 100 von 1. Genauer definiert der
Bereich 906 einen Bereich, der sich im. Hinblick auf das gerichtete
Liniensegment 900 oben (oben) befindet. Der Bereich 908 definiert
einen Bereich, der sich oben und rechts (oben, rechts) des gerichteten
Liniensegments 900 befindet. Der Bereich 910 definiert
einen Bereich, der sich hinsichtlich des gerichteten Liniensegments 900 rechts
(rechts) befindet. Der Bereich 912 definiert einen Bereich,
der sich unterhalb und rechts (unten, rechts) des gerichteten Liniensegments 900 befindet. Der
Bereich 914 definiert einen Bereich, der sich im Hinblick
auf das gerichtete Liniensegment 900 unten (unten) befindet.
Der Bereich 916 definiert einen Bereich, der sich unterhalb
und links (unten, links) des gerichteten Liniensegments 900 befindet.
Der Bereich 918 definiert einen Bereich, der sich links
vom gerichteten Liniensegment 900 befindet. Schließlich definiert
der Bereich 920 einen Bereich, der sich oberhalb und links
(oben, links) des gerichteten Liniensegments 900 befindet.
-
Um die kanonische Richtung zwischen
einem beliebigen Punkt 925 und dem gerichteten Liniensegment 900 zu
bestimmen, werden bis zu drei Halbebenen-Überprüfungen verwendet. Die erste Halbebenen-Überprüfung bestimmt,
ob sich der Punkt 925 links, rechts oder über dem
gerichteten Liniensegment 900 befindet. Wie in 9A gezeigt, befindet sich
der Punkt 925 links von dem gerichteten Liniensegment 900.
Dies heißt,
daß nach
Beendigung der ersten Halbebenen-Überprüfung der Punkt 925 in
den Bereichen 916, 918 oder 920 gelegen
sein kann.
-
Die zweite Halbebenen-Überprüfung bestimmt,
ob sich der Punkt 925 über
oder unter dem ersten Endpunkt 902 des gerichteten Liniensegments 900 befindet.
Das Ergebnis der zweiten Halbebenen-Überprüfung zeigt an, daß sich der
Punkt 925 über
dem ersten Endpunkt 902 befindet, was bedeutet, daß der Punkt 925 nicht
in dem Bereich 916 gelegen sein kann und entweder. im Bereich 918 oder im
Bereich 920 gelegen sein muß. Die dritte Halbebenen-Überprüfung bestimmt,
ob sich der Punkt 925 über
oder unter dem zweiten Endpunkt 904 befindet. Wie dargestellt,
zeigt die dritte Halbebenen-Überprüfung an,
daß sich
der Punkt 925 unter dem zweiten Endpunkt 904 befindet,
was heißt,
daß der
Punkt 925 in dem Bereich 918, oder links vom gerichteten
Liniensegment 900, gelegen sein muß.
-
b. Bestimmen der kanonischen
Richtung von einem Leitungssegment zu einem Punkt
-
Um Abstandsüberprüfungen während der IC-Layout-Prüfung auszuführen, müssen Abstände zwischen
Polygonen bestimmt und dann mit den von den angewandten Entwurfsregeln
geforderten Mindestzwischenräumen
verglichen werden. Typischerweise wird eine Abstandsüberprüfung zwischen
einem Polygon und einem ausgewählten
Punkt auf einem anderen Polygon ausgeführt.
-
Gemäß einem Ausführungsbeispiel
der Erfindung wird ein Verfahren bereitgestellt, um die kanonische
Richtung von einem Leitungssegment zu einem Punkt zu bestimmen,
so daß höchstens
nur zwei Seiten eines Polygons hinsichtlich des Punkts überprüft werden
müssen.
Bis zu vier Überprüfungen der
kanonischen Richtung von Segmentseiten zu dem beliebigen Punkt werden
ausgeführt,
um die kanonische Richtung von einem Leitungssegment zu einem Punkt
zu bestimmen und um jedwede Unsicherheit aufzulösen, die der Frage zuzuordnen
ist, ob sich der Punkt innerhalb oder außerhalb des Leitungssegments
befindet.
-
9B zeigt
ein Leitungssegment 952, das durch eine linke Seite 956,
eine rechte Seite 958, eine erste Endseite 960 und
eine zweite Endseite 962 definiert wird. Die Bereiche um
das Leitungssegment 952 entsprechen dem Orientierungsschlüssel 100 von 1. Genauer definiert der
Bereich 964 einen Bereich, der sich im Hinblick auf das
Leitungssegment 952 oben (oben) befindet. Der Bereich 966 definiert
einen Bereich, der sich im Hinblick auf das Leitungssegment 952 oben
und rechts (oben, rechts) befindet. Der Bereich 968 definiert
einen Bereich, der sich im Hinblick auf das Leitungssegment 902 rechts (rechts)
befindet. Der Bereich 970 definiert einen Bereich, der
sich im Hinblick auf das Leitungssegment 952 unten und
rechts (unten, rechts) befindet. Der Bereich 972 definiert
einen Bereich, der sich im Hinblick auf das Leitungssegment 952 unten
(unten) befindet. Der Bereich 974 definiert einen Bereich,
der sich im Hinblick auf das Leitungssegment 952 unten und
links (unten, links) befindet. Schließlich definiert der Bereich 976 einen
Bereich, der sich im Hinblick auf das Leitungssegment 952 links
(links) befindet. Der Bereich 978 definiert einen Bereich,
der sich im Hinblick auf das Leitungssegment 952 oben und
links (oben, links) befindet.
-
Zum Beispiel sei die kanonische Richtung von
dem Leitungssegment 952 zu einem Punkt 980 zu
bestimmen. Eine erste kanonische Richtungsüberprüfung von Punkt 980 im
Hinblick auf die linke Seite 956 wird durchgeführt, um
zu bestimmen, ob sich der Punkt 980 links, rechts oder
oberhalb der linken Seite 956 befindet. In dieser Situation
zeigt die erste kanonische Richtungsüberprüfung an, daß sich der Punkt 980 rechts
von der linken Seite 956 befindet. Somit muß sich der
Punkt 980, basierend auf den Ergebnissen der ersten kanonischen
Richtungsüberprüfung, im
Bereich 964, 966, 968, 970, 972 oder innerhalb
des Leitungssegments 952 befinden.
-
Eine zweite kanonische Richtungsüberprüfung von
Punkt 980 im Hinblick auf die rechte Seite 958 wird
durchgeführt,
um zu bestimmen, ob sich der Punkt 980 links, rechts oder über der
rechten Seite 958 befindet. In dieser Situation zeigt die
zweite kanonische Richtungsüberprüfung an,
daß sich
der Punkt 980 links von der rechten Seite 958 befindet. Somit
muß der
Punkt 980, basierend auf den Ergebnissen der ersten und
der zweiten ausgeführten.
kanonischen Richtungsüberprüfung, in
den Bereichen 964, 972 oder innerhalb des Leitungssegments 952 gelegen
sein.
-
Eine dritte kanonische Richtungsüberprüfung des
Punkts 980 im Hinblick auf die erste Endseite 960 wird
ausgeführt,
um zu bestimmen, ob sich der Punkt 980 links, rechts oder über der
ersten Endseite 960 befindet. In dieser Situation zeigt
die dritte kanonische Richtungsüberprüfung an,
daß sich
der Punkt 980 links von der ersten Endseite 960 befindet.
Daher muß,
basierend auf den Ergebnissen der drei kanonischen Richtungsüberprüfungen,
der Punkt 980 im Bereich 972, oder (unten) im
Hinblick auf das Leitungssegment 952, gelegen sein.
-
Für
das spezielle gerade beschriebene Szenario waren nur drei kanonische
Richtungsüberprüfungen erforderlich,
um die kanonische Richtung von einem Leitungssegment zu einem Punkt
eindeutig zu bestimmen. In manchen Situationen ist jedoch eine vierte
kanonische Richtungsüberprüfung erforderlich, um
die kanonische Rich tung zwischen einem Leitungssegment und einem
Punkt endgültig
zu bestimmen. Wenn beispielsweise die dritte kanonische Richtungsüberprüfung des
Punkts 980 im Hinblick auf die erste Endseite 960 anzeigt,
daß sich
der Punkt 980 rechts von der ersten Endseite 960 befindet,
dann ist eine vierte kanonische Richtungsüberprüfung des Punkts 980 im
Hinblick auf die zweite Endseite 962 erforderlich, um zu
bestimmen, ob sich der Punkt 970 in dem Bereich 964 oder
innerhalb des Leitungssegments 952, oder auf ihm, befindet.
-
Die kanonische Richtung von den Leitungssegmentseiten
zu dem beliebigen Punkt 980 wird verwendet, um sicherzustellen,
daß die
Bereiche 964, 966, 968, 970, 972, 974, 976 und 978 sich
nicht verengen, wenn der Abstand des beliebigen Punkts 980 zum
Leitungssegment 952 zunimmt. Dies kann immer dann geschehen,
wenn der Winkel zwischen zwei benachbarten Seiten größer als
90° ist.
-
c. Abstandsüberprüfungen
-
Gemäß einem Ausführungsbeispiel
der Endung wird eine Vorgehensweise zum Ausführen von Abstandsüberprüfungen zwischen
Polygonen, die unter Verwendung von Leitungssegmenten und kanonischen
Richtungen erzeugt worden sind, bereitgestellt. 10 zeigt ein IC-Layout 1000,
das eine Diffusionsinsel 1002 und eine Diffusionsinsel 1004 enthält. Die
Diffusionsinsel 1002 weist ein Polygon 1005 auf,
das eine Diftusionsgeometriestruktur darstellt und das aus einem
einzigen Leitungssegment gebildet ist. Auf ähnliche Weise weist die Diffusionsinsel 1004 ein
Polygon 1009 auf, das Diffusionsgeometriestruktur repräsentiert
und das aus einem einzigen Leitungssegment gebildet ist.
-
Gemäß einem Ausführungsbeispiel
der Erfindung wird eine Abstandsüberprüfung zwischen
parallelen, überlappenden
Seiten von Leitungssegmenten dadurch durchgeführt, daß der orthogonale Abstand zwischen
den Leitungen mit dem von den anwendbaren Entwurfsregeln geforderten
Mindestabstand verglichen wird. Beispielsweise beinhaltet das Ausführen einer
Abstandsüberprüfung zwischen
dem Polygon 1005 und dem Polygon 1009 das Berechnen eines
orthogonalen Abstands zwischen Punkten a1 und a2 auf einem gerichteten Liniensegment a und Punkten b1 und b2 auf
einem Liniensegment b, und dann das Vergleichen des berechneten
Abstands mit dem durch die Entwurfsregeln angegebenen Mindestabstand.
Wenn der berechnete Abstand den durch die Entwurfsregeln angegebenen
Mindestabstand nicht erfüllt,
dann muß eines
der Polygone 1005 oder 1009 verschoben werden.
Wenn beispielsweise der Abstand zwischen dem Polygon 1005 und dem
Polygon 1009 den durch die Entwurfsregeln angegebenen Mindestabstand
nicht erfüllt,
dann kann das Polygon 1005 nach unten bewegt werden, um den
Abstand zwischen dem Polygon 1005 und dem Polygon 1009 zu
vergrößern. Als
Alternative kann das Polygon 1009 in die Richtung nach
oben bewegt werden.
-
Zum Berechnen des Abstands zwischen nicht-überlappenden
Leitungen werden die nächstliegenden
Ecken zwischen den beiden Leitungen verwendet, und statt eines orthogonalen
Abstands wird ein nicht-orthogonaler oder Manhattan-Abstand verwendet.
Der Begriff Manhattan-Abstand bezeichnet einen Abstand, bei dem
jede Einheit eine Einheit weit in der X-Richtung und eine Einheit
weit in der Y-Richtung ist. Der sich ergebende Richtungsvektor ist
dann einer der Vektoren (oben, links), (oben, rechts), (unten, rechts)
oder (unten, links). Wenn der Abstand den durch die Entwurfsregeln
angegebenen Mindestabstand nicht erfüllt, dann wird eines der Polygone
in eine Richtung bewegt, die den beiden gegenüberliegenden Seiten einer der
Ecken entgegengesetzt ist.
-
Beispielsweise werde in 10 eine Diffusions-nach-Polysilizium-Abstandsüberprüfung zwischen
Punkt b1 auf dem Polygon 1009 und
Punkt c1 auf einem Polygon 1010 durchgeführt. Wenn
der Abstand zwischen den Punkten b1 und c1 den durch die Entwurfsregeln angegebenen
Mindestabstand nicht erfüllt,
dann wird das Polygon 1010 in die Richtung (unten, links)
bewegt, weil eine der nächsten
Seiten 1014 des Polygons 1010 nach oben gerichtet
ist und die andere der nächstliegenden
Seiten 1016 nach rechts gerichtet ist. Auf ähnliche
Weise könnte
das Polygon 1009 in die Richtung (oben, rechts) bewegt werden.
-
Sobald eine Abstandsverletzung erkannt worden
ist und die Richtung bestimmt worden ist, in die eines der Polygone
bewegt werden muß,
um die Entwurfsregeln zu erfüllen,
muß die
Strecke bestimmt werden, um die das Polygon bewegt werden muß, um die
Mindestabstandsanforderungen zu erfüllen. Gemäß einem Ausführungsbeispiel
der Erfindung wird eine neue Vorgehensweise zum Bestimmen der Strecke
bereitgestellt, um Layoutgeometriestrukturen zum Erfüllen einer
Abstandsanforderung neu anzuordnen. Allgemein beinhaltet die Vorgehensweise
das Erzeugen einer "Ausschlußzone"
um die Layoutgeometriestruktur, um den Mindestabstand zu definieren,
der zwischen dieser Layoutgeometriestruktur und anderen Layoutgeometriestrukturen
beibehalten werden muß,
um den von den Entwurfsregeln geforderten Mindestabstand zu erfüllen. Diese
Vorgehensweise hängt
nicht von irgendeiner besonderen Datenstrukturarchitektur ab. Wenn
sich ein Punkt, der Teil der anderen Geometriestrukturen ist, innerhalb
der Ausschlußzone
befindet, dann besteht eine Abstandsübertretung.
-
Wie in 11 dargestellt,
ist ein Leitungssegment 1100 zumindest teilweise aus zwei
gerichteten Liniensegmenten 1102 und 1104 gebildet,
die sich in einem Punkt 1105 treffen. Um die Ausschlußzone zu bilden,
werden zwei Linien 1106 und 1108 entlang der Richtungsvektoren
der Liniensegmente 1102 und 1104 erzeugt, und
zwar so von den gerichteten Liniensegmenten 1102, 1104 getrennt,
daß die
Entwurfsregeln erfüllt
werden. Die Linien 1106 und 1108 werden durch
eine Bewegung nach außen
vom Punkt 1105 aus in eine Richtung, die senkrecht zur
Richtung der gerichteten Liniensegmente 1102 und 1104 ist,
gebildet. Wenn die gerichteten Liniensegmente 1102 und 1104 senkrecht
aufeinander stehen, dann wird eine dritte Linie 1110 konstruiert,
die die Linien 1106 und 1108 verbindet. Die Linien 1106, 1108 und 1110 bilden
eine Ausschlußzone 1112 um
das Leitungssegment 1100. Wenn die gerichteten Liniensegmente 1102 und 1104 orthogonal
sind, beruht die Anordnung der Linien 1106 und 1108 im
Hinblick auf die gerichteten Liniensegmente 1102 und 1104 auf dem
kartesischen Breiten-, Abstands- oder Umfassungswert. Die Anordnung
der dritten Linie 1110 beruht auf der Manhattan-Breite,
dem Manhattan-Abstand
oder den Manhattan-Umfassungen, wie von den Entwurfsregeln angegeben.
In dem Maße,
wie die Regel hinsichtlich der Manhattan-Breite, des Manhattan- Abstands oder der
Manhattan-Umfassungen im Verhältnis
zur kartesischen Regel zunimmt, bewegt sich die Linie 1110 von
dem Leitungssegment 1100 nach außen, während die Linien 1106 und 1108 an
ihren Stellen verbleiben. Im Grenzfall kann sich die Linie 1110 bis
zu dem Schnittpunkt der Linien 1106 und 1108 nach
außen
bewegen.
-
Wenn andererseits die gerichteten
Liniensegmente 1102 und 1104 nicht-orthogonal
sind, basiert die Anordnung der Linien 1106 und 1108 im
Hinblick auf die gerichteten Liniensegmente 1102 und 1104 auf
dem kartesischen Breiten-, Abstands- oder Umfassungswert dividiert
durch die Quadratwurzel von zwei und aufgerundet auf den nächsten ganzzahligen
Wert, um den Manhattan-Abstand bereitzustellen, der zum Erreichen
des geforderten kartesischen Abstands erforderlich ist.
-
Die Vorgehensweise zum Neu-Anordnen
eines Leitungssegments, um gemäß einem
Ausführungsbeispiel
der Erfindung eine Abstandsanforderung zu erfüllen, wird nun unter Hinweis
auf das Flußdiagramm
von 12 beschrieben.
Nach dem Start in Schritt 1200 werden in Schritt 1202 zwei
Linien 1106 und 1108 entlang der Richtungsvektoren
der beiden Liniensegmente, die das Leitungssegment bilden, konstruiert.
In Schritt 1204 wird bestimmt, ob die gerichteten Liniensegmente 1102, 1104 zueinander
senkrecht stehen. Falls dies der Fall ist, dann wird in Schritt 1206 bestimmt,
ob die gerichteten Liniensegmente 1102, 1104 orthogonal
sind. Wenn die gerichteten Liniensegmente 1102, 1104 sowohl
senkrecht aufeinander stehen als auch orthogonal sind, dann wird
in Schritt 1208 der Manhattan-Abstand verwendet, um eine
dritte Linie 1110 im Hinblick auf die beiden konstruierten
Linien anzuordnen.
-
Wenn andererseits in Schritt 1204 festgestellt
wurde, daß die
gerichteten Liniensegmente 1102, 1104 nicht senkrecht
aufeinander stehen, dann umfaßt
die Ausschlußzone
die gerichteten Liniensegmente 1106 und 1108,
und der Vorgang ist in Schritt 1214 abgeschlossen. Wenn
jedoch in Schritt 1206 festgestellt wurde, daß die gerichteten
Liniensegmente 1102, 1104 nicht orthogonal sind,
dann wird in Schritt 1210 der Ort der dritten Linie 1110 im
Hinblick auf die ersten beiden konstruierten Linien auf Grundlage
des von den Entwurfsregeln angegebenen kartesischen Mindestabstands
(Produkt der Quadratwurzel von 2 – SQRT(2) – und des Manhattan-Abstands,
aufgerundet) festgelegt.
-
Dann wird in Schritt 1212 die
dritte Linie 1110 konstruiert und zwischen den gerichteten
Liniensegmenten 1102 und 1104 angeordnet. Der
Vorgang ist in Schritt 1214 abgeschlossen. Diese Vorgehensweise
kann auch verwendet werden, um Polygonbreiten und Kontaktumfassungen
zu überprüfen und
zu korrigieren.
-
d. Erzeugen von Polygonausgaben
-
Gemäß einem Ausführungsbeispiel
der Erfindung wird die Fähigkeit
bereitgestellt, basierend auf der hier beschriebenen Datenstrukturhierarchie Polygonausgaben
zu erzeugen. Diese Vorgehensweise erzeugt weniger Polygone als die
alternative Vorgehensweise, ein Polygon für jedes Leitungssegment zu
erzeugen. Die Erzeugung weniger Polygone verringert den Zeitaufwand,
der zum Ausführen
von Analyseprogrammen wie beispielsweise Entwurfsregelüberprüfungen,
Schaltungsextraktion und Maskenherstellung erforderlich ist. In
dem Umfeld von Programmpaketen zum computergestützten Entwerten können weniger
Polygone auch das Betrachten eines Layouts vereinfachen, weil sich
weniger Polygone auf dem Bildschirm befinden. Allgemein umfaßt die Vorgehensweise
das Auswerten der Leitungssegment-Datenstrukturen für jede Leitung,
um kollineare Punktesätze
zu identifizieren, die dann kombiniert werden, um die Anzahl der
Polygone zu verringern. Gemäß einem
Ausführungsbeispiel
der Erfindung werden die linken Seiten zusammenhängender Leitungssegmente ausgewertet,
und dann werden die rechten Seiten der gleichen zusammenhängenden Leitungssegmente
ausgewertet.
-
Beispielsweise zeigt 13A eine Leitung 1300, die aus
drei zusammenhängenden
Leitungssegmenten 1302, 1304 und 1306 gemäß einem
Ausführungsbeispiel
der Erfindung gebildet ist. Die linke Seite des Leitungssegments 1302 ist
durch ein gerichtetes Liniensegment A definiert, das seinerseits
durch Endpunkte a1 und a2 definiert ist. Die linke Seite des Leitungssegments 1304 ist
durch ein gerichtetes Liniensegment b definiert, das seinerseits
durch Endpunkte b1 und b2 definiert ist.
-
Die linke Seite des Leitungssegments 1306 ist
durch ein gerichtetes Liniensegment c definiert, das seinerseits
durch Endpunkte c1 und c2 definiert ist. Um eine Polygondarstellung
der Leitung 1300 gemäß einem
Ausführungsbeispiel
der Erfindung zu erzeugen, werden kollineare Sätze von Punkten entlang der
linken und der rechten Seiten der Leitungssegmente 1302, 1304, 1306 kombiniert.
Weil das gerichtete Liniensegment a kollinear mit dem gerichteten
Liniensegment b ist, können
die Punkte a2 und b1 eliminiert werden, wodurch im Ergebnis
eine einzige linke Seite entlang den Leitungssegmenten 1302 und 1304 erzeugt
wird. Auf ähnliche
Weise können
die Punkte b2 und c1 , da sie aufeinander liegen, durch
einen einzigen Punkt ersetzt werden. 13B zeigt eine
Polygonrepräsentation 1308 der
Leitung 1300 von 13A,
nachdem kollineare Punktesätze
gemäß einem
Ausführungsbeispiel.
der Erfindung kombiniert worden sind.
-
Manche Verfahren zur Polygonverarbeitung definieren
eine Maximalzahl von Polygonpunkten pro Polygon. In diesem Fall
ist die Anzahl von Segmenten, die gemäß dieser Vorgehensweise verfolgt
werden können,
auf die Maximalzahl der zulässigen
Polygone geteilt durch vier begrenzt. Wenn die Anzahl der Leitungssegmente
für eine
gegebene Leitung diese Anzahl übersteigt,
dann werden zusätzliche Polygone
verwendet, um diese Leitung zu repräsentieren.
-
HARDWAREÜBERSICHT
-
14 ist
ein Blockschaltbild, das ein Computersystem 1400 veranschaulicht,
in dem eine Ausführungsform
der Erfindung implementiert werden kann. Das Computersystem 1400 weist
einen Bus 1402 oder einen anderen Kommunikationsmechanismus
zum Übermitteln
von Informationen und einen mit dem Bus 1402 gekoppelten
Prozessor 1404 zum Verarbeiten von Informationen auf. Das
Computersystem 1400 umfaßt auch einen Hauptspeicher 1406,
wie beispielsweise einen Speicher mit wahlfreiem Zugriff (RAM) oder
eine andere dynamische Speichereinrichtung, der mit dem Bus 1402 gekoppelt
ist, um Informationen und Befehle, die vom Prozessor 1404 ausgeführt werden
sollen, zu speichern. Der Hauptspeicher 1406 kann auch
verwendet werden, um während
der Ausführung
von Befehlen, die von dem Prozes sor 1404 ausgeführt werden
sollen, temporäre
Variablen und andere Zwischeninformationen zu speichern. Das Computersystem 1400 weist
ferner einen Nur-Lese-Speicher
(ROM) 1408 oder eine andere statische Speichereinrichtung
auf, der/die mit dem Bus 1402 gekoppelt ist, um statische
Informationen und Befehle für
den Prozessor 1404 zu speichern. Eine Speichereinrichtung 1410,
wie beispielsweise eine magnetische Platte oder optische Platte, ist
vorgesehen und mit dem Bus 1402 gekoppelt, um Informationen
und Befehle zu speichern.
-
Das Computersystem 1400 kann über den Bus 1402 mit
einer Anzeige 1412 gekoppelt sein, beispielsweise einer
Elektronenstrahlröhre
(CRT – cathode
ray tube), um Informationen einem Computerbenutzer anzuzeigen. Eine
Eingabeeinrichtung 1414, die alphanumerische und andere
Tasten aufweist, ist mit dem Bus 1402 gekoppelt, um dem
Prozessor 1404 Informationen und Befehlsauswahlen zu übermitteln.
Eine andere Art von Benutzereingabeeinrichtung ist eine Cursorsteuerung 1416,
wie beispielsweise eine Maus, eine Rollkugel oder Cursorrichtungstasten,
um Richtungsinformationen und Befehlsauswahlen an den Prozessor 1404 zu übermitteln und
um die Cursorbewegung auf der Anzeige 1412 zu steuern.
Diese Eingabeeinrichtung weist typischerweise zwei Freiheitsgrade
in zwei Achsen auf, nämlich
einer ersten Achse (z. B. x) und einer zweiten Achse (z. B. y),
was es der Einrichtung ermöglicht,
Positionen in einer Ebene anzugeben.
-
Die Erfindung betrifft die Verwendung
des Computersystems 1400 für die Repräsentation von Polygonen in
einem IC-Layout. Gemäß einem
Ausführungsbeispiel
der Erfindung wird durch das Computersystem 1400 die Polygonrepräsentation
in einem IC-Layout ansprechend darauf bereitgestellt, daß der Prozessor 1404 Sequenzen
von Befehlen ausführt,
die im Hauptspeicher 1406 enthalten sind. Solche Befehle
können
von einem anderen computerlesbaren Medium, wie beispielsweise der
Speichereinrichtung 1410, in den Hauptspeicher 1406 eingelesen
werden. Das computerlesbare Medium ist jedoch nicht auf Vorrichtungen
wie die Speichereinrichtung 1410 beschränkt. Beispielsweise kann das
computerlesbare Medium eine Diskette, eine flexible Platte, Festplatte,
Magnetband oder irgendein anderes magnetisches Medium, eine CD-ROM,
irgendein anderes optisches Medium, Lochkarten, Loch streifen, irgendein
anderes physisches Medium mit Lochmustern, ein RAM, ein PROM, ein
EPROM, ein FLASH-EPROM, irgendeinen anderen Speicherchip oder ein
anderes Speichermodul, eine Trägerwelle wie
unten beschrieben, oder irgendein anderes Medium, von dem ein Computer
lesen kann, sein.
-
Die Ausführung der im Hauptspeicher 1406 enthaltenen
Befehlssequenzen veranlaßt
den Prozessor 1404, die oben beschriebenen Verfahrensschritte
auszuführen.
In Ausführungsalternativen kann
eine festverdrahtete Schaltung statt oder in Kombination mit Softwarebefehlen
verwendet werden, um die Erfindung zu implementieren. Daher sind Ausgestaltungen
der Erfindung nicht auf irgendeine bestimmte Kombination von Hardwareschaltungen und
Software beschränkt.
-
Das Computersystem 1400 weist
auch eine mit dem Bus 1402 gekoppelte Kommunikationsschnittstelle 1418 auf.
Die Kommunikationsschnittstelle 1418 stellt eine Datenkommunikationsverbindung
in beide Richtungen mit einer Netzwerkverbindung 1420 bereit,
die mit einem lokalen Netzwerk 1422 verbunden ist. Beispielsweise
kann die Kommunikationsschnittstelle 1418 eine Karte für ein Digitalnetzwerk
mit integrierten Diensten (ISDN) oder ein Modem sein, um eine Datenübertragungsverbindung mit
einer Telefonleitung entsprechenden Typs bereitzustellen. Als weiteres
Beispiel kann die Kommunikationsschnittstelle 1418 eine
Karte für
ein lokales Netzwerk (LAN) sein, um eine Datenkommunikationsverbindung
zu einem passenden LAN bereitzustellen. Auch drahtlose Verbindungen
können
implementiert werden. In jeder solchen Implementierung sendet und
empfängt
die Kommunikationsschnittstelle 1418 elektrische, elektromagnetische
oder optische Signale, die digitale Datenströme übertragen, welche unterschiedliche
Arten von Informationen darstellen.
-
Die Netzwerkverbindung 1420 sorgt
typischerweise für
eine Datenübermittlung über ein
Netzwerk oder mehrere Netzwerke zu anderen Datenvorrichtungen. Beispielsweise
kann die Netzwerkverbindung 1420 eine Verbindung über das
lokale Netzwerk 1422 mit einem Hintergrundcomputer 1424 oder
einer von einem Internet-Dienstleister (Internet Service Provider-
ISP) 1426 betriebenen Datenausrüstung bereitstellen. Der ISP 1426 stellt
seinerseits Datenübertragungsdienste über das
weltweite Datenpaket-Kommunikationsnetzwerk bereit, das nun allgemein
als das "Internet" 1428 bezeichnet wird. Das lokale Netzwerk 1422 und
das Internet 1428 benutzen beide elektrische, elektromagnetische
oder optische Signale, die digitale Datenströme übertragen. Die Signale über die
unterschiedlichen Netzwerke und die Signale auf der Netzwerkverbindung 1420 und
durch die Kommunikationsschnittstelle 1418, die die digitalen
Daten an und von dem Computersystem 1400 übertragen,
sind beispielhafte Formen von Trägerwellen,
die die Informationen übertragen.
-
Das Computersystem 1400 kann
Nachrichten senden und Daten, einschließlich Progammcode, empfangen,
und zwar über
das Netzwerk oder die Netzwerke, die Netzwerkverbindung 1420 und
die Kommunikationsschnittstelle 1418. Bei dem Internet-Beispiel
kann ein Server 1430 einen angeforderten Code für ein Anwendungsprogramm über das
Internet 1428, den ISP 1426, das lokale Netzwerk 1422 und
die Kommunikationsschnittstelle 1418 übertragen. Gemäß der Erfindung
sorgt ein solches heruntergeladenes Anwendungsprogramm für die Repräsentation
von Polygonen in einem IC-Layout, wie hier beschrieben.
-
Der empfangene Code kann von dem
Prozessor 1404 beim Empfang ausgeführt werden, und/oder er kann
in der Speichereinrichtung 1410 oder in einem anderen nicht-flüchtigen
Speicher zur späteren
Ausführung
gespeichert werden. Auf diese Weise kann das Computer-System 1400 Anwendungsprogrammcode
in Gestalt einer Trägerwelle
erhalten.
-
Auch wenn Ausführungsbeispiele der Erfindung
zum Zwecke der Veranschaulichung im Zusammenhang mit IC-Layouts,
die Transistoren aufweisen, beschrieben worden sind, ist die Erfindung
für IC-Layouts
anwendbar, die integrierte Schaltungskomponenten oder -elemente
jedweden Typs aufweisen, wie beispielsweise Widerstände, Kondensatoren,
Logikgatter oder irgendeinen anderen Typ von IC-Elementen.
-
Die Erfindung liefert mehrere Vorteile
gegenüber
früheren
Vorgehensweisen zur Repräsentation von
Polygonen in einem IC-Layout. Erstens können auch die komplexesten
Geometriestrukturen unter Verwendung von Leitungssegmenten repräsen tiert werden,
einschließlich
achteckiger Kontaktumfassungen und unregelmäßig geformter Diffusionsinseln.
Auch erleichtert die Repräsentation
von Polygonen unter Verwendung von Leitungssegmenten die geometrische
Analyse wie beispielsweise die Abstands- und Umfassungsüberprüfung. Leitungssegmente
sind für
die geometrische Analyse bequem nutzbar, weil die meisten offenen
Polygonkanten bekannt sind und die Breiten-, Abstands- und Umfassungsüberprüfungen nur
gültig
sind, wenn sie auf offene Polygonkanten angewendet werden. Viele
der horizontalen Kanten in einer Datenbank mit Trapezoiden sind
tatsächlich
polygonintern, und die Analysesoftware muß beträchtliche Arbeit aufwenden,
um die externen Kanten zu finden. Leitungssegmente können auch
viele übliche
Layoutformen unmittelbar repräsentieren
und erlauben dadurch die einfache Implementierung komplexerer Regeln
(wie beispielsweise der Ausschließungszone). Beispielsweise
kann ein Polysilizium-Gate das Erfordernis aufweisen, daß seine
Breite größer ist,
wenn das Gate-Polygon in einem Winkel kreuzt. Weil das Gate-Polygon
unmittelbar aus Leitungssegmenten gebildet ist, ist es einfach,
diese Regel Segment für
Segment durchzusetzen, indem die Liniensegmentrichtungen überprüft werden
und indem sichergestellt wird, daß ihr Abstand größer ist,
wenn ihre Winkel nicht-orthogonal sind. Die Leitungssegment-Vorgehensweise
erleichtert auch eine vergleichsweise einfache elektrische Analyse
wie beispielsweise eine Widerstandsüberprüfung, weil es die Verwendung
von Leitungssegmenten erlaubt, den Widerstand einer Leitung schnell
zu berechnen. Die Leitungssegment-Vorgehensweise ist auch gut geeignet,
um in Computersoftware implementiert zu werden, weil Leitungssegmente
einfach in Datenstrukturen repräsentiert
werden können.
Der Vorteil von Leitungssegmenten ist, daß sie in ihrer Gestalt allgemein
vervendeten Layoutstrukturen viel näher kommen, so daß viel weniger von
ihnen benötigt
werden, um diese Strukturen zu repräsentieren, und es ist viel
weniger wahrscheinlich, daß die
Gestalt eines Objekts nach Sichtung von nur einer oder zwei Datenstrukturen
nicht offensichtlich ist. Bei Trapezoiden und Rechtecken kann eine kleine
Veränderung
der Polygonform bewirken, daß die
Trapezoid-Datenstrukturen die gesamte Strecke bis zur anderen Seite
des Polygons verändert
werden, wodurch es schwierig wird, mit dem Polygon als einer Einheit
zu arbeiten.
-
In der obigen Beschreibung ist die
Erfindung unter Hinweis auf spezielle Ausführungsbeispiele der Erfindung
beschrieben worden. Es ist jedoch offensichtlich, daß verschiedene
Modifikationen und Änderungen
vorgenommen werden können,
ohne den allgemeineren Geist und Bereich der Erfindung zu verlassen.
Die Beschreibung und die Zeichnungen sollen demgemäß zur Veranschaulichung,
und nicht als Einschränkungen,
angesehen werden.