-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Das
Gebiet der Erfindung betrifft ein Automatisierungssystem für elektronischen
Entwurf, ein Verfahren gemäß dem Oberbegriff
des Patentanspruchs 1.
-
Hintergrund
-
Chipkonstrukteure
verwenden oft Softwaretools für
die Automatisierung elektronischen Entwurfs (EDA, electronic design
automation), um im Entwurfsprozess zu helfen und Simulation und Überprüfung eines
Chipentwurfs vor dem Bau eines Prototypen oder der Produktion zu
erlauben. Chipentwurf unter Verwendung von EDA-Softwaretools beinhaltet
im Allgemeinen einen iterativen Prozess, wobei der Chipentwurf allmählich perfektioniert
wird. Typischerweise baut der Chipkonstrukteur einen Schaltkreis
auf, indem Informationen an einer Rechner-Workstation eingegeben
werden, die im Allgemeinen hochqualitative Grafikfähigkeiten
aufweist, um Abschnitte des Schaltkreisentwurfs, wenn benötigt, anzuzeigen. Eine
Top-Down-Methodik wird allgemein unter Verwendung von Hardware-Beschreibungssprachen (HDL,
hardware description language), wie zum Beispiel Verflog® oder
VHDL zum Beispiel angewendet, mittels derer der Konstrukteur einen
integrierten Schaltkreis erzeugt, indem funktionale Komponenten des
Schaltkreises hierarchisch definiert werden, und dann jede Komponente
in immer kleinere Komponenten aufgespaltet wird.
-
Die
verschiedenen Komponenten eines integrierten Schaltkreises sind
anfänglich
durch ihre funktionalen Operationen definiert. Von der HDL- oder
einer anderen High-Level-Beschreibung
ist die tatsächliche
Logikzellen-Implementierung
typischerweise durch Logiksynthese bestimmt, die die funktionale
Beschreibung des Schaltkreises in eine spezifische Schaltkreisimplementierung
umwandelt. Die Logikzellen werden dann "platziert" (d.h. spezifische Koordinaten-Positionen
in dem Schaltkreislayout gegeben) und "geroutet" (d.h. verdrahtet oder miteinander gekoppelt
gemäß den Spezifikationen
des Konstrukteurs). Die Anordnungs- und Routing-Softwareroutinen
nehmen im Allgemeinen als ihre Eingabe eine reduzierte Netzliste
an, die von dem Logiksyntheseprozess erzeugt wurde. Diese reduzierte
Netzliste identifiziert die spezifischen Logikzelleninstanzen von
einer Ziel-Standardzellenbibliothek und beschreibt die spezifische
Zellen-an-Zellen-Verbindungsfähigkeit.
Nachdem diese spezifische Zellen-an-Zellen-Verbindungsfähigkeit
eingerichtet wurde, erzeugt die Software für physikalisches Design und
Layout eine physikalische Layoutdatei des integrierten Schaltkreises,
die die physikalische Position jeder Metallleitung (d.h. Draht)
und jedes Vias (d.h. Metallübergang
zwischen Chipschichten) aufweist. In einem letzten Schritt, vor
dem Erzeugen der Maskendatei zur Lieferung an die Herstellungseinrichtung, führt die
Software für
physikalische Verifikation und Layout-Validierung einige Entwurfsregel-Prüfungen (DRCs,
design rule checks) auf der Layoutdatei durch. Zusammen bilden diese
DRCs, was allgemein in der Industrie als "Regelstapel" (rule deck) bezeichnet wird.
-
Während der
Entwurfsregel-Prüfungen,
die in dem Regelstapel enthalten sind, muss die physikalische Layoutdatei
auf korrekte relative Positionierung von Vias und Metallleitungen überprüft werden. Zum
Beispiel sind zum Sicherstellen eines adäquaten Kontakts zwischen Vias
und Metallleitungen (wenn ein leitfähiger Pfad zwischen dem Via
und der Metallleitung verlangt ist) minimale Überlappabstände notwendig, die das Ausmaß vorschreiben,
bis zu dem das Metall über
jedes Via hervorstehen muss. Diese minimalen Überlappabstände variieren oft abhängig von
der Form des Metalls, das das Via umgibt. Als ein anderes Beispiel
einer Entwurfsregel-Prüfung sind
bestimmte minimale Abstände
zwischen Vias und Metallenden notwendig, um die Wahrscheinlichkeit
von Kurzschlüssen
oder anderen ähnlichen
Problemen in dem Endprodukt zu reduzieren. Metallenden sind im Allgemeinen
als die abschließenden Kante(n)
oder Punkt(e) definiert. Minimale Abstände sind auch notwendig für Vias,
die von Metall (auch als Vias in Einschließungen bezeichnet) umgeben
sind. Einschließungen
sind allgemein als Kopplungspunkte zwischen Vias und Metall definiert,
die nicht an einem Metallende sind (d.h. wo die Grundfläche des Vias
auf dem Metall in der Nähe
von nicht mehr als zwei Metallkanten ist). Eine andere Entwurfsregel-Prüfung betrifft
Belichtung, wobei eine Bestimmung gemacht wird, ob das Ganze oder
ein Teil eines Vias belichtet wird, d.h. nicht mit Metall bedeckt.
-
In
herkömmlichen
Technologien werden alle Vias durch Entwurfsregel-Prüfungen (DRCs)
geprüft, die
Teil des Regelstapels sind. Als Teil dieser Prozeduren wird zum
Sicherstellen, dass minimale Abstände eingehalten sind, für jedes
Metallende der Abstand von jedem Punkt an der Kante des Metallendes zu
jedem Via berechnet. Die Berechnungen, die durch diese Prozeduren
benötigt
werden, zählen leicht
Millionen. Viele dieser Berechnungen sind jedoch unnötig, da
sie bei Vias durchgeführt
werden, die offensichtlich weit von Metallenden entfernt sind. Infolgedessen
wird ziemlich viel Prozesszeit verschwendet.
-
Folglich
haben die Erfinder festgestellt, dass es vorteilhaft wäre, eine
intelligente Auswahl bereitzustellen, auf welchen Vias die vollständigen Entwurfsregel-Prüfungen durchgeführt werden
sollten, während
Vias, die keinen kompletten Satz von Entwurfsregel-Prüfungen benötigen, ausgeblendet
werden.
-
Das
US-Patent Nr. 5,581,475 offenbart ein Verfahren gemäß dem Oberbegriff
von Patentanspruch 1. Das Verfahren stellt Vermeiden von weiteren
Verarbeiten jener Kanten eines Kontakts/einer Via bereit, die im
Wesentlichen parallel zu einer Richtung von Stromfluss sind. Das
Verfahren weist auf Erzeugen von Überlappbereichen neben einem
Kontakt auf der Basis eines Abstands zwischen Seiten des Kontakts
und Seiten von benachbarten Metall. Als Nächstes wird der Kontakt erweitert
und es wird bestimmt, ob Kanten des erweiterten Kontakts innerhalb
des Überlappbereichs
sind. Falls eine Kante eines Kontakts außerhalb des Überlappbereichs
ist, wird die Kante dann zur Weiteren Verarbeitung gespeichert.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
Erfindung stellt in einem Automatisierungssystem für elektronischen
Entwurf ein Verfahren zum Auswählen
einer Untermenge oder mehrerer Untermengen von Vias bereit, auf
denen Metallenden-, Einschließungen-
und Belichtungs-Prüfungen durchgeführt werden,
mit einer verbesserten Durchführungseffizienz.
Das wird erreicht durch ein Verfahren mit den Merkmalen des Patentanspruchs 1.
Weitere Ausführungsbeispiele
der Erfindung sind in den abhängigen
Patentansprüchen
beschrieben. Ein entsprechendes Rechnerprogrammprodukt ist in Patentanspruch
16 beschrieben.
-
In
einem bevorzugten Ausführungsbeispiel empfängt ein
automatisiertes Entwurfsregel-Prüfungs-Softwaresystem
als Eingabe eine physikalische Layoutdatei für einen Schaltkreisentwurf.
Das automatisierte Entwurfsregel-Prüfungs-Softwaresystem
gibt eine Liste von Vias aus, die Entwurfsregelprüfungen auf
Verletzungen in bis zu drei Kategorien benötigen: Metallende, Einschließung und
Belichtung.
-
In
einem oder einer Mehrzahl von Ausführungsbeispielen wählt ein
automatisierter Prozess Vias aus allen Vias in einer physikalischen
Layoutdatei aus der physikalischen Layoutdatei aus, die wahrscheinlich
Entwurfsregelprüfungsprobleme
bewirken. Der Prozess wählt
dann jene Vias aus, die die Einschließungsregel verletzen und führt eine
Entwurfsregelprüfung
auf Einschließungsverletzungen an
den identifizierten Vias durch; führt eine Entwurfsregelprüfung für Metallendenverletzungen
an den potentiellen problematischen Vias durch; und führt eine Belichtungsprüfung an
den potentiell problematischen Vias durch.
-
Potentiell
problematische Vias können
identifiziert werden, indem die Abmessungen existierender Vias um
einen ersten vorgegebenen Minimalabstand erweitert werden, die Metallgebiete
heraussubtrahiert werden, und jene Vias mit übrig bleibenden Abschnitten
als potentiell problematische Vias identifiziert werden. Kandidatenvias
für eine
Einschließungs-Entwurfsregel-Prüfung können identifiziert werden,
indem die Abmessungen von potentiell problematischen Vias um einen
zweiten vorgegebenen Minimalabstand erweitert werden, das Metallgebiet heraussubtrahiert
wird, und jene Vias mit übrig
bleibenden Abschnitten als die Einschließungsentwurfsregel verletzend
identifiziert werden. Kandidatenvias für eine Metallenden-Entwurfsregel-Prüfung können identifiziert
werden, indem die Abmessungen (ausgenommen die Eckbereiche) von
potentiell problematischen Vias um den ersten vorgegebenen Minimalabstand
erweitert werden, das Metallgebiet heraussubtrahiert wird, und jene Vias
mit übrig
bleibenden Abschnitten als die Metallenden-Entwurfsregeln verletzend identifiziert
werden.
-
Weitere
Ausführungsbeispiele,
Modifikationen, Änderungen
und Verbesserungen sind auch hierin beschrieben.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein Diagramm eines Rechnersystems, das in Verbindung mit verschiedenen
Ausführungsbeispielen
der Erfindung wie hierin beschrieben verwendet werden kann.
-
2 ist
ein Diagramm eines vereinfachten integrierten Schaltkreises, wie
er unter Verwendung eines Rechnersystems, wie in 1 gezeigt,
erzeugt werden kann.
-
3 ist
ein Diagramm eines allgemeinen Prozessablaufs für einen Schaltkreisentwurf,
der verschiedene Grade einer Schaltkreisabstraktion darstellt.
-
4 ist
ein Prozessablaufdiagramm gemäß einem
bevorzugten Metallenden-, Einschließungs- und Belichtungs-Prüfungsprozess,
wie hierin beschrieben.
-
5 ist
ein Prozessablaufdiagramm gemäß einem
bevorzugten Metallenden-, Einschließungs- und Belichtungs-Prüfungsprozess,
wie hierin beschrieben, das spezifische Stufen zum Auswählen potential
problematischer Vias zeigt, im allgemeinen in Übereinstimmung mit dem Prozess
aus 4.
-
6 ist
ein Prozessablaufdiagramm gemäß einem
bevorzugten Metallenden-, Einschließungs- und Belichtungs-Prüfungsprozess,
wie hierin beschrieben, das spezifische Stufen zum Auswählen potential
problematischer Vias für
eine Einschließungs-Entwurfsregelprüfung zeigt, im allgemeinen
in Übereinstimmung
mit dem Prozess aus 4.
-
7 ist
ein Prozessablaufdiagramm gemäß einem
bevorzugten Metallenden-, Einschließungs- und Belichtungs-Prüfungsprozess,
wie hierin beschrieben, das spezifische Stufen zum Auswählen potential
problematischer Vias für
eine Metallenden-Entwurfsregelprüfung
zeigt, im allgemeinen in Übereinstimmung
mit dem Prozess aus 4.
-
8 ist
ein Diagramm, das einen beispielhaften Abschnitt eines physikalischen
Layouts-Entwurfs zeigt, mit Vias, die um einen Abstand C1 erweitert
sind.
-
9 ist
ein Diagramm, dass die erweiterten Vias aus 8 mit einem
subtrahierten Metallgebiet darstellt.
-
10 ist
ein Diagramm, das nur die ausgewählten
problematischen Vias aus 8 darstellt, die vor der Subtraktion
des Metallgebiets auf ihre erweiterten Abmessungen zurückgebracht
sind.
-
11 ist
ein Diagramm, das nur die ausgewählten
problematischen Vias aus 8 auf ihre ursprüngliche
Größe zurückgebracht
darstellt.
-
12 ist
ein Diagramm, das nur die ausgewählten
problematischen Vias aus 8 zusammen mit dem Metallgebiet
darstellt, wobei die Vias wieder um einen anderen Erweiterungsabstand
erweitert sind.
-
13 ist
ein Diagramm, das nur eines der problematischen Einschließungsvias
aus 12 mit dem subtrahierten Metallgebiet darstellt.
-
14 ist
ein Diagramm, das das gleiche ausgewählte Einschließungsvia
aus 13 darstellt, aber auf seine erweiterten Abmessungen
zurückgebracht,
bevor das Metallgebiet subtrahiert wird.
-
15 ist
ein Diagramm, das das gleiche ausgewählte Einschließungsvia
aus 13 auf seine ursprüngliche Größe zurückgebracht darstellt.
-
16 ist
ein Diagramm, das die ausgewählten
problematischen Vias aus 8 darstellt, wobei ihre Ränder nur
um einen Abstand C1 erweitert sind.
-
17 ist
ein Diagramm, das die ausgewählten
problematischen Vias aus 8 darstellt, wobei ihre Ränder nur
um einen Abstand C1 erweitert sind und das Metallgebiet subtrahiert
ist.
-
18 ist
ein Diagramm, das die ausgewählten
problematischen Vias aus 8 darstellt, wobei ihre Ränder nur
um einen Abstand C1 erweitert sind und das Metallgebiet subtrahiert
ist, und die Ränder
nach innen auf ihre ursprünglichen
Positionen erweitert sind.
-
19, 20 und 21 sind
Diagramme von Vias bezüglich
Metallleitungen oder Metallgebieten, die Beispiele von Minimalabständen zwischen dem
Via und dem Rand des Metalls darstellen.
-
DETAILLIERTE
BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSBEISPIELE
-
Bevorzugte
Ausführungsbeispiele
werden jetzt mit Bezugnahme wo notwendig auf die begleitenden Zeichnungen beschrieben.
Zuerst werden jedoch zusätzliche
allgemeine Hintergrundinformationen bereitgestellt, die Softwaretools
zur Automatisierung elektronischen Entwurfs (EDA, electronic design
automation) betreffen.
-
1 ist
ein Diagramm eines Rechnersystems, das in Verbindung mit verschiedenen
Ausführungsbeispielen
der Erfindung, wie hierin beschrieben, verwendet werden kann. Wie
in 1 gezeigt ist, weist ein Rechnersystem 100 einen
Rechner 110 auf, der mit einer Anzeige 191 und
verschiedenen Eingabe-Ausgabe-Vorrichtungen 192 gekoppelt
ist. Der Rechner 110 kann einen oder eine Mehrzahl von Prozessoren
(nicht gezeigt), genauso wie Arbeitsspeicher (z.B. RAM) in einer
Menge aufweisen, die zum Erfüllen
der Geschwindigkeits- und Verarbeitungs-Erfordernisse des Systems
ausreichend sind. Der Rechner 110 kann zum Beispiel eine SPARCTM-Workstation aufweisen, die von Sun Computers,
Inc. aus Santa Clara, Kalifornien kommerziell erhältlich ist,
oder jeden anderen geeigneten Rechner.
-
Der
Rechner 110 weist gespeicherten Programmkode auf, einschließlich, in
einem Ausführungsbeispiel,
einen Datenpfad-Floorplaner 120, einen Datenpfad-Platzierer 130 und
einen Routingplatz-Schätzer 140.
Der Datenpfad-Bodenplaner 120 stellt die Definition von
Datenpfad-Funktionen, Datenpfad-Bereichen und Beschränkungen
dieser zum Zwecke interaktiver Bodenplanungs-Vorgänge des Schaltkreis-Entwerfers, und die
Steuerung von Platzierungs-Vorgängen
des Datenpfad-Platzierers 130 bereit. Der Datenpfad-Platzierer 130 bestimmt
die Platzierung von Datenpfad-Funktionen innerhalb von Datenpfad-Bereichen,
und die Platzierung von Logikzellen-Instanzen innerhalb jeder Datenpfad-Funktion gemäß den Beschränkungen,
die von dem Schaltkreis-Entwerfer definiert sind. Der Routingplatz-Schätzer 140 schätzt Routingplatz,
der zum Routen der Datenpfad-Funktionen notwendig ist, wobei die
Platzierung solcher Funktionen von dem Datenpfad-Platzierer 130 gegeben
ist.
-
Zur
Unterstützung
der oben-genanten Systemkomponenten können ein Chip-Bodenplaner 150, ein
Global/Detail-Router 160, ein Standardzellen-Platzierer 170,
ein Logik-Synthesizer 180 und ein HDL-Editor 190 sinnvollerweise
angewendet werden. Der Betrieb des Chip-Bodenplaners 150,
des Global/Detail-Routers 160,
des Standardzellen-Platzierers 170, des Logik-Synthesizers 180 und
des HDL-Editors 190 ist herkömmlich, da der Entwurf dieser
Komponenten in der Technik der Automatisierung elektronischen Entwurfs
wohl bekannt ist. Kommerziell verfügbare Beispiele dieser Systemkomponenten sind
jeweils PreviewTM, Cell3TM,
QPlaceTM), (oder DesignPlannerTM),
Synergy (oder BuildGatesTM) bzw. VerilogTM.
-
Der
Rechner 110 ist vorzugsweise mit einer Massenspeichervorrichtung
(z.B. magnetische Disk oder Cartridge-Speicher) gekoppelt, die eine
Layout-Datenbank 195 bereitstellt, mit der die vorangegangene
Systemkomponenten in Verbindung treten. Die Layout-Datenbank 195 kann
unter Verwendung des EDIF-Datenbankstandards implementiert werden.
Der Rechner 110 kann auch einen Massenspeicher aufweisen
oder damit gekoppelt sein, der eine oder mehrere Komponentenbibliotheken
(nicht gezeigt) aufweist, die Merkmale elektrischer Komponenten
spezifizieren, die zur Verwendung in Schaltkreisentwürfen verfügbar sind.
-
Wie
vorher hierin erklärt
wurde, verwenden Chip-Entwerfer
im Allgemeinen eine Top-Down-Entwurfsmethodik, startend mit Hardware-Beschreibungssprachen
(HDL, hardware description language), wie zum Beispiel Verflog® oder
VHDL, zum Erzeugen eines integrierten Schaltkreises, indem hierarchisch
funktionale Komponenten des Schaltkreises definiert werden, und
dann jede Komponente in immer kleinere Komponenten aufgeteilt wird.
Zwei der Komponenten-Haupttypen, die in digitalen integrierten Schaltkreisen
verwendet werden, sind Datenpfade und Steuerungslogik. Steuerungslogik,
typischerweise Zufallslogik, wird zum Steuern des Betriebs der Datenpfade
verwendet. Datenpfadbereiche des Schaltkreises führen funktionale Vorgänge durch,
wie zum Beispiel mathematische oder andere Operationen.
-
Die
verschiedenen Komponenten eines integrierten Schaltkreises sind
ursprünglich
durch ihre funktionalen Operationen und relevante Eingaben und Ausgaben
definiert. Der Entwerfer kann auch grundlegende organisatorische
Informationen über die
Platzierung von Komponenten in dem Schaltkreis unter Verwendung
von Bodenplanung-Tools bereitstellen. Während dieser Entwurfs-Stufen
strukturiert der Entwerfer im Allgemeinen den Schaltkreis unter Verwendung
beträchtlicher
hierarchischer Informationen und hat typischerweise eine wesentliche
Gleichmäßigkeit
in dem Entwurf bereitgestellt.
-
Von
der HDL oder einer anderen High-Level-Beschreibung, wie vorher in
dem Hintergrundabschnitt davon erwähnt, wird die tatsächliche Logikzellenimplementierung
typischerweise durch eine Logiksynthese bestimmt, die die funktionale
Beschreibung des Schaltkreises in eine spezifische Schaltkreisimplementierung
umwandelt. Die Logikzellen werden dann platziert und geroutet, was
eine physikalische Layoutdatei ergibt.
-
Eine
weitere Erklärung
eines bestimmten Chip-Entwurfsprozesses
wird zum Beispiel im US-Patent 5,838,583 gegeben.
-
Mit
Bezugnahme auf 2 ist eine schematische Darstellung
eines vereinfachten integrierten Schaltkreises gezeigt, der durch
Schaltkreis-Entwurfsdaten repräsentiert
wird, die in der Layout-Datenbank 195 gespeichert sind.
In tatsächlichen,
realistischeren Entwürfen
integrierter Schaltkreise wäre der
integrierte Schaltkreis 200 weit komplizierter. Jedoch
ist 2 zum Zwecke der Darstellung nützlich. Wie hierin gezeigt,
weist der integrierte Schaltkreis 200 eine Mehrzahl von
Steuerungsbereichen 201, Datenpfad-Bereichen 203 und
einen Speicher 205 auf. Die verschiedenen Steuerbereiche 201,
Datenpfad-Bereiche 203 und der Speicher 205 sind über Datenbusse 207 miteinander
gekoppelt, die im Allgemeinen mehrere Bits umfassen. Jeder Datenpfadbereich 203 kann
eine Mehrzahl von Datenpfadfunktionen 209 aufweisen. Eine
Datenpfadfunktion 209 kann eine oder alle Bits verwenden,
die von dem Datenbus 207 verfügbar sind. Eine Datenpfadfunktion 209 kann
eine Mehrzahl von Zelleninstanzen 215 aufweisen, die eine
Form von Signal- oder
Logik-Transformation der Daten ermöglichen, die von dem Datenbus 207 weitergegeben
wird. Die Zelleninstanz 215 innerhalb einer Datenpfadfunktion 209 wird
im Allgemeinen auf den Daten durchgeführt, die auf der Datenpfadfunktion 209 getragen
werden.
-
Wie
in dem Schema der Layoutdatenbank 195 dargestellt, umfasst
der integrierte Schaltkreis 200 eine Mehrzahl von Instanzen
und eine Mehrzahl von Netzen. Ein Netz verbindet eine Anzahl von
Instanzen, indem Pins auf jeder der Instanzen einander zugeordnet
werden, oder, allgemeiner, indem die Eingänge oder Ausgänge einer
Anzahl von Instanzen einander zugeordnet werden.
-
3 ist
ein Diagramm eines allgemeinen Prozessablaufs für einen Schaltkreisentwurf,
der verschiedene Grade einer Schaltkreisabstraktion, wie oben beschrieben,
darstellt. Wie in 3 dargestellt, unterläuft eine
Registertransferlogik (RTL)-Datei 301 in der Form einer
HDL-Datei oder einer anderen High-Level-Funktionalbeschreibung einen
Kompilationsprozess 303, der typischerweise eine Form von Logiksynthese
aufweist und die funktionale Beschreibung des Schaltkreises in eine
spezifische Schaltkreisimplementierung umwandelt, die in der Form
einer Netzlisten-Datei 304 gespeichert werden kann. Als
Teil des Kompilationsprozesses 303, wird allgemein eine
Komponentenbibliothek 306 referenziert, die Informationen
speichert, die betreffen, welche Typen von Entwurfskomponenten verfügbar sind
und die Charakteristiken dieser Entwurfskomponenten, die zum Bestimmen
ihrer funktionalen Verbindungsfähigkeit
benötigt
werden. Bei diesem Prozessschritt kann zum Minimieren der Anzahl
von Komponenten, die in dem Schaltkreisentwurf verwendet werden,
ein Versuch zur Schaltkreisoptimierung gemacht werden. Die Netzlistendatei 304 identifiziert,
wie vorher angemerkt, im Allgemeinen die spezifischen Logikzelleninstanzen
aus einer Ziel-Standardzellen-Bibliothek und beschreibt die spezifische
Zellen-zu-Zellen-Verbindungsfähigkeit.
-
Durch
Anwenden eines in 3 gezeigten physikalischen Entwurfsprozesses 309 werden
die Logikzellen der Netzlistendatei 304 dann platziert und
geroutet, was zu einer Layout-Datei 310 führt. Die
Komponenten-Bibliothek 306 wird in dieser Prozessstufe
zum Erhalten von Informationen verwendet, die die Größen der
Gatter und anderer Komponenten betreffen, die in der Netzlistendatei 304 vorhanden
sein können.
-
Aus
der Layout-Datei 310 kann ein physikalischer Verifikationsprozess 312 laufen
gelassen werden, wie weiter in 3 dargestellt
ist, was zu einer Maskendatei 315 in zum Beispiel einem
GDSII- oder CIF-Format führt.
Die Maskendatei 315 kann einer Gießerei bereitgestellt werden
und weist genug Informationen auf, um der Gießerei damit die Herstellung eines
tatsächlichen
integrierten Schaltkreises zu erlauben.
-
In
verschiedenen hierin offenbarten Ausführungsbeispielen ist ein Prozess
zum Auswählen
von Entwurfsregel-Prüfungen
für spezifische
Vias bereitgestellt, die zusammen mit dem in 3 dargestellten
Verifikationsprozess 312 verwendet werden können. 4 ist
ein Prozessablauf zum Auswählen
und Verarbeiten von Vias, die wahrscheinlich Metallenden-, Einschließungs- und/oder
Belichtungs-Verletzungen aufweisen. Diese Vias werden nachstehend allgemein
als "potentiell
problematische Vias" bezeichnet.
-
Diese
verschiedenen Arten von problematischen Vias können mit Bezugnahme auf die 19, 20 und 21 erklärt werden.
Vias des Metallenden-Typs sind am Ende von Metallleitungen angeordnet,
wie in 19 dargestellt ist. Ein bestimmter minimaler
Abstand ist zwischen der Grundfläche
des Vias und dem "abschließenden" Ende der Metallleitung
notwendig, und dieser Minimalabstand ist in 19 durch
C1 angezeigt. Ein bestimmter Minimalabstand ist auch zwischen der
Grundfläche
des Vias und der Metallkante notwendig, und dieser Minimalabstand
ist in 19 durch C angezeigt. Vias des Einschließungstyps
sind jene Vias, die nicht am Ende von Metallleitungen sind, wie
in 20 dargestellt ist. Ein Einschließungstyp-Via
kann in der Nähe
zu zwei Metallkanten sein (aber nicht in einer Ecke), wie durch 20 dargestellt,
aber kann auch in der Nähe einer
einzelnen Metallkante oder keiner Metallkanten angeordnet sein.
Ein Minimalabstand zwischen der Grundfläche des Vias und der Metallkante
ist im Allgemeinen notwendig (der der gleiche Minimalabstand sein
kann, wie der notwendige zwischen einem Metallende-Via und einer
Metallkante), und ist in 20 mit
C markiert.
-
In
verschiedenen hierin beschriebenen Ausführungsbeispielen können Vias,
die an Ecken von Metallleitungen angeordnet sind, wie in 21 dargestellt
ist, in einer hybriden Weise behandelt werden. Zum Beispiel kann
eine der Seiten des Vias, die der Metallkante benachbart ist, behandelt
werden, als ob sie an einem Metallende angeordnet ist, während die
andere Seite des Vias, die einer Metallkante benachbart ist, als
ein Einschließungs-Via
behandelt werden kann. Folglich können solche Vias an Ecken von
Metallleitungen zwei Abstands-Erfordernisse aufweisen, eines durch
einen Minimalabstand C (von der Kante des Vias zur Metallkante)
definiert und das andere durch einen Minimalabstand C1 (von der Kante
des Vias zu einer "Abschluss"-Kante eines Metallendes)
definiert.
-
Wie
in 4 dargestellt, weist ein bevorzugter Prozess 400 für hierarchisches
Metallende-, Einschließungs-
und/oder Belichtungs-Prüfen
einen Schritt 402 zum Auswählen potentiell problematischer
Vias aus einer physikalische Layoutdatei 401, vorzugsweise
in Übereinstimmung
mit später
hierin beschriebenen (und z.B. mit Bezugnahme auf 5 dargestellten)
Techniken, auf. Nach Schritt 402 kann einer oder eine Mehrzahl
von Schritten 405, 406, 407 bzw. 410 durchgeführt werden.
In Schritt 405 werden Vias für eine Einschließungs-Entwurfsregel-Prüfung ausgewählt, vorzugsweise
auf der Basis von Kriterien, die weiter hierin erklärt (und z.B.
mit Bezugnahme auf 6 dargestellt) sind. In Schritt 410 werden Vias
für eine
Belichtungs-Entwurfsregel-Prüfung
ausgewählt,
vorzugsweise gemäß Kriterien,
die weiter hierin erklärt
sind. In Schritt 406 werden Vias für eine Metallenden-Entwurfsregel-Prüfung ausgewählt, vorzugsweise
auf der Basis von Kriterien, die weiter hierin erklärt (und
z.B. mit Bezugnahme auf 7 dargestellt) sind. In Schritt 407 werden
Entwurfsregel-Prüfungen
auf alle potentiell problematischen Vias durchgeführt, während vorzugsweise
Entwurfsregel-Prüfungen
für unproblematische
Vias vermieden werden.
-
5 stellt
einen bevorzugten Teilprozess 520 zum Auswählen potentiell
problematischer Vias zusammen mit einem bevorzugten Prozess 500 zum Auswählen und
Verarbeiten von Vias dar, die wahrscheinlich Metallenden-, Einschließungs- und/oder Belichtungs-Verletzungen
aufweisen. In einem Aspekt kann der Teilprozess 520 als
ein Herausfiltern von Vias angesehen werden, die wahrscheinlich nicht
problematisch sind, wobei jene übrig
gelassen werden, die potentiell problematisch sind. Insbesondere
wählt der
Teilprozess 520 nur jene Vias aus, die innerhalb eines
bestimmten Minimalabstands C1 von einer Kante des Metallgebiets
sind. Wie in 5 dargestellt ist, weist der
Teilprozess 520 zum Auswählen problematischer Vias erstens
einen Schritt 503 auf, wobei jedes Via systematisch in
jeder Richtung um einen vorgegebenen Erweiterungsabstand "erweitert" wird, so dass bestimmt
wird, welche Vias Metallrändern
nahe sind. Diese Erweitung ist graphisch in 8 dargestellt,
wobei die ursprünglichen
Vias 800 um den vorgegebenen Erweiterungsabstand C1 auf erweiterte
Vias 830 erweitert sind. In einem Aspekt repräsentiert
der vorgegebene Erweiterungsabstand C1 einen ausgewählten Minimalabstand,
den das Via von einer Metallkante oder einem Endpunkt aufweisen soll.
Der vorgegebene Erweiterungsabstand kann von dem Entwurfsingenieur
auf der Basis, zum Beispiel, bestimmter Herstellungserfordernisse
der Gießerei
ausgewählt
werden.
-
In
einem nächsten
Schritt 504 wird das Metallgebiet 820, gezeigt
in 8, von dem Bereich des erweiterten Vias 830 subtrahiert,
wobei nur jene verbleibenden Abschnitte 840 (siehe 9)
der erweiterten Vias 830 übrig gelassen werden, die außerhalb des
Metallgebiets 820 bleiben.
-
In
einem nächsten
Schritt 510 werden jene erweiterten Vias 830,
die außerhalb
des Metallgebiets 820 übrig
bleibendes Material aufweisen, identifiziert. In dem Beispiel würden erweiterte
Vias 830a und 830b im Schritt 510 als
interessant identifiziert werden, während ein erweitertes Via 830c ignoriert werden
würde.
In einem nächsten
Schritt 511 werden die ursprünglichen Abmessungen für die potentiell problematischen
Vias 830a und 830b wiederhergestellt. Das kann
auf einem einer Mehrzahl von Wegen erreicht werden – zum Beispiel
durch Subtrahieren des Abstands C1 von jeder der Kanten der Vias 830a, 830b,
wodurch erweiterte Vias 830a, 830b auf ihre ursprünglichen
Größen zurückgebracht
werden. Alternativ können
die ursprünglichen
Abmessungen der potentiell problematischen Vias 830a und 830b durch
Anwenden einer "geomButtOrOver"-Funktion (die alle
Formen einer ersten Schicht identifiziert, die an eine zweite Schicht
angrenzen oder diese überlappen),
wie hierin später
beschrieben, zum Erhalten der ausgemessenen Vias, und dann einer "geomAND"-Funktion (ähnlich einer Logik-UND-Operation
zwischen Schichten A und B), wie hierin später beschrieben, zum Erhalten
der ursprünglichen
Vias, wiederhergestellt werden. Die 10 und 11 bilden
die potentiell problematischen, erweiterten Vias 850 und
die potentiell problematischen Vias 860, die zu ihren ursprünglichen
Größen zurückgebracht
sind, ab. An diesem Punkt hat der Teilprozess 520 eine Menge
an potentiell problematischen Vias ausgewählt, von denen die Identitäten in einer
Tabelle oder einer anderen Datenstruktur innerhalb einer temporären Datei
gespeichert werden können,
die als Teil des Verifikationsprozesses beibehalten wird, der auf der
physikalische Layoutdatei 401 (oder 501, wie in 5 gezeigt)
ausgeführt
wird.
-
Die
Schritte 530, 540, 531 und 532 in 5 sind
jeweils analog zu den Schritten 405, 410, 406 bzw. 407,
die in 4 auftauchen.
-
6 stellt
einen bevorzugten Teilprozess 620 zum Auswählen potentiell
problematischer Vias für
eine Einschließungs-Entwurfsregel-Prüfung in Verbindung
mit einem bevorzugten Prozess 600 zum Auswählen und
Verarbeiten von Vias dar, die wahrscheinlich Metallenden-, Einschließungsund/oder Belichtungs-Verletzungen
aufweisen. Wie in 6 dargestellt, weist der Teilprozess 620 zum
Auswählen
potentiell problematischer Vias für eine Einschließungs-Entwurfsregel-Prüfung einen
ersten Schritt 605 des Erweiterns der potentiell problematischen Vias 860 auf,
die vorher durch einen vorgegebenen Erweiterungsabstand C identifiziert
wurden, was zu erweiterten Vias 865 führt. Dieser Schritt ist graphisch
in 12 für
das Beispiel dargestellt, das vorher mit Bezugnahme auf die 8 bis 11 erklärt wurde.
In einem nächsten
Schritt 606 wird das Metallgebiet 820 von den
erweiterten Vias 865 subtrahiert, was zu einem zurückbleibenden
Abschnitt 870 führt, wie
in 13 dargestellt ist. In einem nächsten Schritt 607 werden
die Vias, die Material aufweisen, das nach der Metallgebiet-Subtraktion zurückbleibt, identifiziert.
In dem Beispiel würde
das erweiterte Via 865b im Schritt 607 identifiziert
werden, während
das erweiterte Via 865a ignoriert werden würde. Im Schritt 607 werden
die zurückbleibenden
Abschnitte 870, die den erweiterten Vias zugeordnet sind,
die die Einschließungsregel
verletzen (d.h. erweitertes Via 865b) auf ihre erweiterte
Abmessung vor der am kürzesten
zurückliegenden
Metallgebiet-Subtraktion zurückgebracht,
wie in 14 dargestellt ist. In einem
nächsten
Schritt 608 werden die erweiterten Vias, die die Einschließungsregel
verletzen, auf ihre ursprüngliche
un-erweiterte Größe zurückgebracht, dargestellt
durch das Via 890 in 15, das
einer un-erweiterten Version der erweiterten Via 880 in
-
14 (d.h.
der erweiterten Via 865b in 12) entspricht.
In einem nächsten
Schritt 610 wird eine Liste der Vias, die die Einschließungsentwurfsregel
verletzen (das heißt,
die einer Metallkante zu nahe sind), zur weiteren Verarbeitung ausgegeben.
-
In
Schritt 640 wird eine Einschließungs-Entwurfsregel auf allen
Vias durchgeführt,
die im Teilprozess 620 als die Einschließungsregel
verletzend bestimmt werden, und die Ergebnisse gespeichert oder an
einen nachfolgenden Prozess ausgegeben. Jedoch wird eine Metallenden-Einschließungs-Entwurfsregel-Prüfung nicht
benötigt
und vorzugsweise nicht durchgeführt
bei den Vias, die die Einschließungs-Entwurfsregel nicht
verletzen – das
heißt
auf jenen Vias, die nicht als "zu
nahe" an einer Metallkante
angesehen werden.
-
Die
Schritte 602, 625, 630 und 635 in 6 sind
jeweils zu den Schritten 402, 406, 407 bzw. 410 analog,
die in 4 auftauchen.
-
7 stellt
einen bevorzugten Teilprozess 720 zum Auswählen potentiell
problematischer Vias für
eine Metallenden-Entwurfsregel-Prüfung in Verbindung mit einem
bevorzugten Prozess 700 zum Auswählen und Verarbeiten von Vias,
die wahrscheinlich Metallenden-, Einschließungsund/oder Belichtungs-Verletzungen
aufweisen, dar. Wie in 7 dargestellt, weist der Teilprozess 720 zum Auswählen potentiell
problematischer Vias für
eine Metallenden-Entwurfsregel-Prüfung einen
ersten Schritt 725 des geraden Erweiterns der Kanten der potentiell
problematischen Vias 860, die vorher identifiziert wurden
(zum Beispiel, durch einen Teilprozess 520, der in 5 dargestellt
ist), um einen vorgegebenen Erweiterungsabstand C1 auf, ohne die Eckabschnitte
davon zu erweitern, was zu erweiterten Vias 905 führt, wie
in 16 graphisch dargestellt ist (zum Beispiel vorher
erklärt
mit Bezugnahme auf die 8 bis 11). In
einem nächsten
Schritt 726 wird das Metallgebiet 820 von den
erweiterten Vias 905 subtrahiert, was zu zurückbleibenden
Abschnitten 910 führt,
wie in 17 dargestellt ist. In einem
nächsten
Schritt 727 werden die Vias, die zurückbleibende Abschnitte 910 aufweisen,
die nach der Metallgebietsubtraktion zurückbleiben, identifiziert. Er
erzeugt dann rechtwinklige Formen 930, indem um den vorgegebenen
Erweiterungsabstand C1 von den Außenkanten 911 des
zurückbleibenden
Abschnitts 910 geschoben wird, was zu einer Menge von rechtwinkligen
Formen 930 für
einige aber nicht alle der erweiterten Seiten der ursprünglichen
Vias 860 führt.
In einem nächsten
Schritt 729 wird eine Entwurfsregel-Prüfung
bei diesen Vias laufen gelassen, wobei nach bestimmten Merkmalen,
wie zum Beispiel "L"-förmigen Einschnitten 930 gesucht
wird, die eine Verletzung der Metallenden-Entwurfsregel anzeigen
würden.
Eine Liste der Vias, die die Metallenden-Entwurfsregel verletzen
(das heißt,
die einer Metallkante zu nahe sind), kann zur weiteren Verarbeitung
ausgegeben werden.
-
Die
Schritte 702, 705, 706 und 715 in 6 sind
jeweils analog zu den Schritten 402, 405, 410 bzw. 415,
die in 4 auftauchen.
-
In
einem Aspekt wählt
der Prozess 400, 500, 600 oder 700 die
Vias aus allen Vias in der physikalischen Layoutdatei aus, die wahrscheinlich
Probleme verursachen. Der Prozess wählt denn jene Vias aus, die
die Einschließungsregel
verletzen und führt
eine Entwurfsregel-Prüfung
auf Einschließungsverletzungen
bei den identifizierten Vias durch; führt eine Entwurfsregelprüfung auf
Metallendenverletzungen bei den potentiell problematischen Vias
durch; und führt eine
Belichtungsprüfung
bei den potentiell problematischen Vias durch.
-
Verschiedene
Ausführungsbeispiele,
wie hierin beschrieben, sind fähig,
die Zeit, die zum Prüfen
von Metallenden, Einschließungen
und Belichtungen der Vias in einer physikalischen Layoutdatei für einen
Schaltkreisentwurf in großem
Maße zu
reduzieren (zum Beispiel um einen Faktor von 100). Die Speichervoraussetzungen
zum Durchführen
solcher Entwurfsregelungen sind gleichermaßen signifikant reduziert.
Durch Auswählen
und Verarbeiten nur jener Vias, die innerhalb eines spezifizierten
Abstands von der Kante des Metalls sind, kann die Geschwindigkeit
der Entwurfsregelprüfungen
dramatisch erhöht
werden.
-
Ein
Ausführungsbeispiel
der Erfindung ist beispielhaft in den folgenden Programmieranweisungen
gezeigt, die in einem Format geschrieben sind, das von dem AssuraTM-Software-Verifikationspaket interpretiert werden
kann, das von Cadence Design Systems, Inc. aus San Jose, Kalifornien
kommerziell erhältlich
ist:
- Zeile 1 v4_9s = geomSize(vi4 0.09)
- Zeile 2 v4_m4 = geomAndNot(v4_9s m4)
- Zeile 3 v4_m4_bo = geomButtOrOver(v4_9s v4_m4)
- Zeile 4 v4_me4 = geomAnd(v4_m4_bo vi4)
- Zeile 5 v4_2s = geomSize(v4_me4 0.02)
- Zeile 6 v4m4 = geomAndNot(v4_2s m4)
- Zeile 7 v4m4_bo = geomButtOrOver(v4_2s v4m4)
- Zeile 8 v4_enc = geomAnd(v4m4_bo v4_me4)
- Zeile 9 v4el_63_0 = drc(m4 v4_enc enc < 0.02)
- Zeile 10 errorLayer(v4el_63_0 "M4 overlap V4 >= 0.02um. VI4.E.1")
- Zeile 11 v4m4_9s = geomSize(v4_me4 0.09 edges)
- Zeile 12 v4m4e = geomAndNot(v4m4_9s m4)
- Zeile 13 v4m4e_bo = geomButtOrOver(v4m4_9s v4m4e)
- Zeile 14 v4e2 = drc(v4m43_bo sepNotch < 0.05)
- Zeile 15 errorLayer(v4e2 "M4
overlap V4 at End >=
0.09um. VI4.E:2.")
- Zeile 16 v4b1 = geomAndNot(v4_enc m4)
- Zeile 17 errorLayer(v4b1 "V4
must be covered BY M4.")
-
Ein
Rechnersystem kann im Kontext eines Automatisierungssystems für elektronischen
Entwurf zum Ausführen
der obigen Programmieranweisung in Verbindung mit spezifischen Entwurfsregelstapel und
zum Operieren auf einer physikalischen Layoutdatei, die als ein
Ergebnis des Prozesses des elektronischen Entwurfs erzeugt wurde,
eingerichtet sein.
-
Aus
Erklärungsgründen wird
die Aufgabe "geomSize" zum Festlegen der
Größe eines
Polygons oder Form verwendet. Die Größenfestlegungs-Funktion kann
das Polygon oder die Form vergrößern, falls
die Einheiten positiv sind; in ähnlicher Weise
kann sie das Polygon oder die Form verkleinern, falls die Einheiten
negativ sind. Ein Beispiel des Festlegens der Größe ist wie folgt:
v4_9s
= geomSize(via4 0.09)
-
Gemäß dem obigen
Beispiel wird die via4-Form um 0,09 Mikrometer nach außen wachsen gelassen.
-
Die
Aufgabe "geomAndNot" stellt einen Differenz
(d.h. A-B)-Ausdruck dar. Falls zum Beispiel MetalA und MetalB zwei
Metallschichten sind, dann ergibt der folgende Ausdruck eine resultierende Schicht
Y, die alle Formen von A aufweist, die nicht mit einer der Formen
von B überlappt:
Y
= geomAndNot (A B)
-
Die
Aufgabe "geomAND" ist eine einfache UND-
oder Vereinigungs-Operation. Zum Beispiel ergibt der folgende Ausdruck
eine resultierende Schicht Y, die alle gemeinsamen Überlappungsbereiche
von A und B aufweist:
Y = geomAND (A B)
-
Die
Aufgabe "geomButtOrOver" identifiziert alle
Formen einer ersten Schicht (z.B. Schicht A), die angrenzen an oder überlappen
mit einer zweiten Schicht (z.B. Schicht B). Zum Beispiel ergibt
der folgende Ausdruck eine resultierende Schicht Y, die alle Formen
einer Schicht A identifiziert, die Formen in der Schicht B berühren oder überlappen:
Y
= geomButtOrOver (A B)
-
Die "drc"-Aufgabe ist eine
Entwurfsregel-Prüfungsfunktion,
die zum Prüfen
der Entwurfsregel-Integrität einer
physikalischen Layoutdatei angewendet werden kann. Die Einschließungs-Entwurfsregel-Prüfung misst
die Einschließung
von Formen in einer ersten Schicht (z.B. Schicht B) durch die Formen
auf einer zweiten Schicht (z.B. Schicht A). Diese Messung repräsentiert
den Abstand zwischen den nach innen gerichteten Kanten der Formen
auf Schicht A zu den nach außen
gerichteten Kanten von Formen auf Schicht B. In anderen Worten,
die Einschließungs-Entwurfsregel-Prüfung bestimmt
von einer Schicht A-Form eine Schicht B-Form einschließt, und
um wie viel. Zum Beispiel prüft
der folgende Ausdruck für
alle Formen auf Schicht A und Einschließungsformen auf Schicht B mit
Einschließungsgrenzen
von größer als
0 aber kleiner als 4:
Y = drc(layerA layerB 0 < enc < 4)
-
Die
Ausführung
der Zeilen 1 bis 4 der vorher genannten Programmieranweisungen bewirken
im Allgemeinen, wenn sie in einem Entwurfsregelstapel enthalten
sind, dass das Rechnersystem, im Allgemeinen gemäß den in 5 abgebildeten
Schritten, die Vias aus einer physikalischen Layoutdatei ausfiltert,
die wahrscheinlich Probleme verursachen. Die Zeilen 5 bis 8 wählen, im
Allgemeinen gemäß den in 6 erklärten Schritten,
jene Vias aus, die die Einschließungsregel verletzen. Zeile
9 führt,
wie zum Beispiel durch Schritt 640 aus 6 nahe
gelegt, eine Entwurfsregel-Prüfung
(DRC, design rule check) auf Einschließungs-Verletzungen auf der
Ausgabe von Zeile 8 durch. Zeile 10 gibt die Ergebnisse der in Zeile
8 ausgeführten
Entwurfsregel-Prüfung
aus. Die Zeilen 11 bis 14 führen,
im Allgemeinen gemäß den in 7 erklärten Schritten,
eine Entwurfsregel-Prüfung
(DRC) auf Metallendenverletzungen auf der Ausgabe von Zeile 5 durch.
Zeile 15 gibt die Ergebnisse der Entwurfsregel-Prüfung aus, die
in Zeilen 11 bis 14 durchgeführt
wurde. Zeile 16 führt
eine Belichtungs-Prüfung
auf der Ausgabe von Zeile 8 durch, und Zeile 17 gibt die Ergebnisse
davon aus.
-
Im
Einzelnen wählen
die Zeilen 1 bis 4 des vorher genannten Programms die Vias aus,
die wahrscheinlich Einschließungs-,
Metallenden- und/oder Belichtungs-Verletzungen aufweisen, die vorher mit Bezugnahme
auf Teilprozess 520 in 5 diskutiert wurden.
Die Zeilen 1 bis 4 des Programms wählen nur jene Vias aus, die
innerhalb eines bestimmten vorgegebenen Abstands C1 einer Kante
des Metallgebiets 820 (siehe 8) sind.
Zeile 1 erweitert die Außenkanten
aller Vias 800 um den Abstand C1. Zeile 2 subtrahiert den
Bereich des Metalls 820 von den erweiterten Vias 830,
wobei nur jene Abschnitte 840 der erweiterten Vias 830 zurück gelassen
werden, die außerhalb
des Metallgebiets 820 (siehe 9) waren.
Zeile 3 identifiziert jene Vias 830a, 830b, die Material
aufweisen, das nach Subtraktion des Metallgebiets 820 zurückbleibt,
während
die Vias (wie zum Beispiel Via 830c) ignoriert werden,
die kein zurückbleibendes
Material nach der Subtraktion aufweisen. Es bringt dann jene Vias
auf ihre erweiterten Ausmaße
vor der Metallgebiet-Subtraktion 860 zurück. Zeile 4
bringt jene Vias 830a, 830b auf ihre ursprünglich un-erweiterte
Größe zurück.
-
Die
Zeilen 5 bis 8 stellen eine Einschließungs-Entwurfsregel-Prüfung bereit. Zeile 5 erweitert die
Außenkanten
der ausgewählten
Vias 860 um den Abstand C, wie in 12 dargestellt
ist. Zeile 6 subtrahiert das Metallgebiet 820 von den erweiterten Vias,
wie in 13 dargestellt ist. Zeile 7
identifiziert jene erweiterten Vias 865, die übrig bleibendes
Material 870 nach der Metallgebiet-Subtraktion aufweisen und bringt jene
Vias auf ihr erweitertes Ausmaß vor der
am kürzesten
zurückliegenden Metallgebiet-Subtraktion
zurück,
wie in 14 dargestellt ist. Zeile 8 bringt
jene Vias auf ihre ursprüngliche,
un-erweiterte Größe zurück, wie
in 15 dargestellt ist. Zeile 9 lässt eine Entwurfsregel-Prüfung auf
jenen Vias laufen, die die Einschließungsregel verletzen. Zeile
10 gibt die Ergebnisse der Entwurfsregel-Prüfung aus.
-
Die
Zeilen 11 bis 15 führen
eine Metallenden-Prüfung
durch. Zeile 11 erweitert die Außenkanten der potentiell problematischen
Vias (wie durch Zeile 4 identifiziert) um den Abstand C1. Anders
jedoch als die vorherige Erweiterung, erweitert Zeile 11 die Kantenlinien
nur gerade heraus, ohne die Ecken zu erweitern, wie in 16 dargestellt
ist. Zeile 12 subtrahiert das Metallgebiet 820 von den
erweiterten Vias 904, wie in 17 dargestellt
ist. Zeile 13 identifiziert jene erweiterten Vias 905,
die Abschnitte 910 aufweisen, die nach der Metallgebiet-Subtraktion
zurückbleiben,
und erweitert ihre äußersten
Kanten um den Abstand C1 nach innen, wie in 18 dargestellt ist.
Zeile 14 lässt
zum Identifizieren besonderer Merkmale, wie zum Beispiel "L"-förmiger Einschnitte 920 (siehe 18),
die eine Verletzung der Metallendenregel anzeigen würden, eine
Entwurfsregel-Prüfung auf
diesen Vias laufen. Zeile 15 gibt die Ergebnisse des Metallenden-Prüfprozesses
aus.
-
Die
Zeilen 16 und 17 führen
eine Belichtungs-Prüfung
durch. Zeile 16 prüft
auf belichtete Vias von jenen Vias, die die Einschließungsregel
verletzen (d.h. Ausgabe von Zeile 8). Zeile 17 gibt die Ergebnisse
der Belichtungs-Entwicklungsregel-Prüfung aus.
-
Es
wird für
Fachleute offensichtlich sein, dass viele äquivalente Wege zum Durchführen der Funktionen
der "geomSize"-, "geomAndNot"-, "geomButtOrOver"- und "geomAND"- Aufgaben implementiert werden können, ohne
die grundsätzliche Funktionalität zu verändern oder
von den Prinzipien der gesamten Verfahren und Systeme zum Auswählen und
Verarbeiten potentiell problematischer Vias, die hierin beschrieben
sind, abzuweichen. In ähnliche
Weise können
andere Arten von Kriterien zum Auswählen potentiell problematischer
Vias vor dem Durchführen
von Entwurfsregelprüfungen
verwendet werden, die auf den gleichen oder ähnlichen Prinzipien des Bestimmens
der Nähe
der Vias in einer physikalischen Layoutdatei zu Grenzen oder Kanten
der Metalldrähte
und Merkmale mit denen die Vias gekoppelt sind, basieren, ohne von
den hierin erklärten neuen
Prinzipien anzuweichen.
-
Während bevorzugte
Ausführungsbeispiele der
Erfindung hierin beschrieben wurden, sind viele Änderungen möglich, die innerhalb des Konzepts und
des Umfangs der Erfindung bleiben. Solche Änderungen werden jemandem mit
gewöhnlichen Kenntnissen
in der Technologie nach der Inspektion der Beschreibung und der
Zeichnungen klar.