DE60116769T2 - Verfahren und system zur hierarchischen metallenden-, einschliessungs- und belichtungsprüfung - Google Patents

Verfahren und system zur hierarchischen metallenden-, einschliessungs- und belichtungsprüfung Download PDF

Info

Publication number
DE60116769T2
DE60116769T2 DE60116769T DE60116769T DE60116769T2 DE 60116769 T2 DE60116769 T2 DE 60116769T2 DE 60116769 T DE60116769 T DE 60116769T DE 60116769 T DE60116769 T DE 60116769T DE 60116769 T2 DE60116769 T2 DE 60116769T2
Authority
DE
Germany
Prior art keywords
vias
metal
extended
design rule
design
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60116769T
Other languages
English (en)
Other versions
DE60116769D1 (de
Inventor
B. Muni San Jose MOHAN
E. Kevin Los Altos MOYNIHAN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cadence Design Systems Inc
Original Assignee
Cadence Design Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=24440885&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE60116769(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Cadence Design Systems Inc filed Critical Cadence Design Systems Inc
Application granted granted Critical
Publication of DE60116769D1 publication Critical patent/DE60116769D1/de
Publication of DE60116769T2 publication Critical patent/DE60116769T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Container Filling Or Packaging Operations (AREA)
  • Investigating And Analyzing Materials By Characteristic Methods (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)

Description

  • 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.

Claims (16)

  1. Rechnerimplementiertes Verfahren zum Auswählen einer Untermenge von Vias auf denen eine oder eine Mehrzahl von Metallenden-, Einschließungs- und Belichtungs-Entwurfsregel-Prüfungen durchgeführt wird, wobei das Verfahren die Schritte aufweist: Empfangen einer physikalischen Layoutdatei, die eine Beschreibung eines Diagramms eines physikalischen Layouts eines Schaltkreisentwurfs aufweist, wobei das Diagramm des physikalischen Layouts eine Mehrzahl von Vias aufweist; und Erweitern von einigen oder allen Vias in dem Diagramm des physikalischen Layouts, so dass eine Mehrzahl von erweiterten Vias erzeugt wird; gekennzeichnet dadurch, dass das Verfahren ferner aufweist: Subtrahieren von Metallgebieten, die von den erweiterten Vias bedeckt sind, von den erweiterten Vias; und Auswählen der einigen oder aller Vias als einer Untermenge von Vias für Entwurfsregel-Prüfungen oder weiteres Überwachen, wobei diese Vias erweiterten Vias mit einem Bereich entsprechen, der nach Subtraktion der von den erweiterten Vias bedeckten Metallgebiete zurückbleibt.
  2. Verfahren gemäß Anspruch 1, wobei der Schritt des Subtrahierens von Metallgebieten, die von den erweiterten Vias bedeckt sind, von den erweiterten Vias den Schritt des Anwendens einer logischen "Und Nicht"-Funktion auf die erweiterten Vias und die Metallgebiete in solch einer Weise aufweist, um das Gebiet der erweiterten Vias und nicht die Metallgebiete auszuwählen.
  3. Verfahren gemäß Anspruch 1, wobei die erweiterten Vias auf ihre ursprüngliche geometrische Größe vor der Entwurfsregel-Prüfungsverarbeitung zurückgebracht werden.
  4. Verfahren gemäß Anspruch 1, ferner aufweisend den Schritt des Ausführens von Entwurfsregel-Prüfungen auf der Untermenge von Vias.
  5. Verfahren gemäß Anspruch 1, wobei das Erweitern der einigen oder aller Vias in dem Diagramm des physikalischen Layouts ein Erweitern aller Vias um einen ersten Minimalabstand, der als Spielraum zwischen Vias und Metallleitungsenden benötigt wird, oder um einen zweiten Minimalabstand, der als Spielraum zwischen Vias und Metallkanten benötigt wird, aufweist, je nachdem, welcher Abstand größer ist.
  6. Verfahren gemäß Anspruch 5, ferner aufweisend die Schritte: Erweitern der Untermenge von Vias um einen dritten Minimalabstand, der als Spielraum zwischen Vias und Kanten von Metallumschließungen benötigt wird, wodurch eine zweite Mehrzahl von erweiterten Vias erzeugt wird; Subtrahieren von Metallgebieten, die von der zweiten Mehrzahl von erweiterten Vias bedeckt sind, von der zweiten Mehrzahl von erweiterten Vias; und Auswählen nur dieser Vias als einer zweiten Untermenge von Vias für Entwurfsregel-Überprüfungen bezüglich Umschließungsregelverletzungen, die der zweiten Mehrzahl von erweiterten Vias mit einem Gebiet entsprechen, das nach Subtraktion der Metallgebiete, die von der zweiten Mehrzahl von erweiterten Vias bedeckt werden, zurückbleibt.
  7. Verfahren gemäß Anspruch 6, wobei die zweite Untermenge von Vias für Entwurfsregel-Prüfungen bezüglich Umschließungsregelverletzungen auf ihre ursprüngliche geometrische Größe vor dem Entwurfsregel- Überprüfungsverarbeiten bezüglich Umschließungsregelverletzungen zurückgeführt wird.
  8. Verfahren gemäß Anspruch 1, ferner aufweisend die Schritte: Erweitern der Untermenge von Vias um einen dritten Minimalabstand, der als Spielraum zwischen Vias und Kanten von Metallenden benötigt wird, wodurch eine zweite Mehrzahl von erweiterten Vias erzeugt wird; Subtrahieren von Metallgebieten, die von der zweiten Mehrzahl von erweiterten Vias bedeckt sind, von der zweiten Mehrzahl von erweiterten Vias; und Auswählen, nur dieser Vias als einer zweiten Untermenge von Vias für Entwurfsregel-Überprüfungen bezüglich Metallendenregelverletzungen, die der zweiten Mehrzahl von erweiterten Vias mit einem Gebiet entsprechen, das nach Subtraktion der Metallgebiete, die von der zweiten Mehrzahl von erweiterten Vias bedeckt sind, zurückbleibt.
  9. Verfahren gemäß Anspruch 8, wobei die zweite Untermenge von Vias für Entwurfsregel-Prüfungen bezüglich Umschließungsregelverletzungen auf ihre ursprüngliche geometrische Größe vor dem Entwurfsregel-Überprüfungsverarbeiten bezüglich Metallendenregelverletzungen zurückgeführt wird.
  10. Verfahren gemäß Anspruch 1, wobei das Erweitern der einigen oder aller Vias in dem Diagramm des physikalischen Layouts das Erweitern von einigen aber nicht allen Vias in dem Diagramm des physikalischen Layouts aufweist.
  11. Verfahren gemäß Anspruch 10, ferner aufweisend das Identifizieren der einigen der Vias vor dem Schritt des Erweiterns.
  12. Verfahren gemäß Anspruch 11, wobei das Identifizieren der einigen der Vias das Identifizieren von Vias in dem Diagramm eines physikalischen Layouts aufweist, die innerhalb eines vorgegebenen Minimalabstands von Metallgrenzen sind.
  13. Verfahren gemäß Anspruch 11, wobei das Identifizieren der einigen der Vias das Erweitern von allen Vias in dem Diagramm des physikalischen Layouts um einen vorgegebenen Minimalabstand aufweist.
  14. Verfahren gemäß Anspruch 1, wobei alle Vias in dem Diagramm des physikalischen Layouts erweitert werden.
  15. Verfahren gemäß Anspruch 14, ferner aufweisend das Auswählen von Vias aus der Untermenge von Vias als einer zweiten Untermenge von Vias für Entwurfsregelprüfungen.
  16. Rechnerprogrammprodukt, das ein Medium aufweist, wobei das Medium einen Satz von Anweisungen aufweist, wobei eine Ausführung desselben mittels eines Prozessors bewirkt, dass das Verfahren gemäß einem der Ansprüche 1 bis 15 ausgeführt wird.
DE60116769T 2000-07-03 2001-06-20 Verfahren und system zur hierarchischen metallenden-, einschliessungs- und belichtungsprüfung Expired - Lifetime DE60116769T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US609459 2000-07-03
US09/609,459 US6536023B1 (en) 2000-07-03 2000-07-03 Method and system for hierarchical metal-end, enclosure and exposure checking
PCT/US2001/019733 WO2002003261A1 (en) 2000-07-03 2001-06-20 Method and system for hierarchical metal-end, enclosure and exposure checking

Publications (2)

Publication Number Publication Date
DE60116769D1 DE60116769D1 (de) 2006-04-06
DE60116769T2 true DE60116769T2 (de) 2006-11-02

Family

ID=24440885

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60116769T Expired - Lifetime DE60116769T2 (de) 2000-07-03 2001-06-20 Verfahren und system zur hierarchischen metallenden-, einschliessungs- und belichtungsprüfung

Country Status (7)

Country Link
US (1) US6536023B1 (de)
EP (1) EP1305744B1 (de)
JP (1) JP2004502259A (de)
AT (1) ATE316267T1 (de)
AU (1) AU2001271353A1 (de)
DE (1) DE60116769T2 (de)
WO (1) WO2002003261A1 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19900980C1 (de) * 1999-01-13 2000-05-11 Siemens Ag Verfahren und Anordnung zur Verifikation eines Layouts einer integrierten Schaltung mit Hilfe eines Rechners sowie dessen Anwendung zur Herstellung einer integrierten Schaltung
US7080329B1 (en) * 2002-01-22 2006-07-18 Cadence Design Systems, Inc. Method and apparatus for identifying optimized via locations
US6892368B2 (en) * 2002-06-10 2005-05-10 Sun Microsystems, Inc. Patching technique for correction of minimum area and jog design rule violations
US6922822B2 (en) * 2002-07-19 2005-07-26 Hewlett-Packard Development Company, L.P. Verifying proximity of ground vias to signal vias in an integrated circuit
US6871332B2 (en) * 2002-07-23 2005-03-22 Sun Microsystems, Inc. Structure and method for separating geometries in a design layout into multi-wide object classes
US6792586B2 (en) * 2002-07-23 2004-09-14 Sun Microsystems, Inc. Correction of spacing violations between wide class objects of dummy geometries
US6883149B2 (en) * 2002-09-30 2005-04-19 Sun Microsystems, Inc. Via enclosure rule check in a multi-wide object class design layout
US6832360B2 (en) * 2002-09-30 2004-12-14 Sun Microsystems, Inc. Pure fill via area extraction in a multi-wide object class design layout
US6804808B2 (en) * 2002-09-30 2004-10-12 Sun Microsystems, Inc. Redundant via rule check in a multi-wide object class design layout
US6895568B2 (en) 2002-09-30 2005-05-17 Sun Microsystems, Inc. Correction of spacing violations between pure fill via areas in a multi-wide object class design layout
JP3924550B2 (ja) * 2003-05-22 2007-06-06 Necエレクトロニクス株式会社 半導体装置及びレイアウト装置及び方法並びにプログラム
US7007258B2 (en) * 2003-06-13 2006-02-28 Sun Microsystems, Inc. Method, apparatus, and computer program product for generation of a via array within a fill area of a design layout
JP4296051B2 (ja) * 2003-07-23 2009-07-15 株式会社リコー 半導体集積回路装置
US7096447B1 (en) 2003-10-15 2006-08-22 Sun Microsystems, Inc. Method and apparatus for efficiently locating and automatically correcting certain violations in a complex existing circuit layout
US7448012B1 (en) 2004-04-21 2008-11-04 Qi-De Qian Methods and system for improving integrated circuit layout
US20060030965A1 (en) * 2004-07-20 2006-02-09 Williams Brett H Method and apparatus for automating VLSI modifications made after routing has been performed
US20060090144A1 (en) * 2004-10-27 2006-04-27 Lsi Logic Corporation Method of automating place and route corrections for an integrated circuit design from physical design validation
CN100461169C (zh) * 2005-06-28 2009-02-11 华为技术有限公司 一种硬件设计经验规则查询***
US7380227B1 (en) * 2005-10-28 2008-05-27 Sun Microsystems, Inc. Automated correction of asymmetric enclosure rule violations in a design layout
US7698676B1 (en) * 2005-11-10 2010-04-13 Qi-De Qian Method and system for improving manufacturability of integrated devices
JP2007164536A (ja) * 2005-12-14 2007-06-28 Toshiba Corp 半導体集積回路の設計支援システム、半導体集積回路の設計方法、半導体集積回路の設計支援プログラム及び半導体集積回路の製造方法
US7519929B2 (en) * 2006-06-23 2009-04-14 Sun Microsystems, Inc. Method and computer program product for interlayer connection of arbitrarily complex shapes under asymmetric via enclosure rules
US8987916B2 (en) 2011-11-28 2015-03-24 Freescale Semiconductor, Inc. Methods and apparatus to improve reliability of isolated vias
US8656336B2 (en) * 2012-02-27 2014-02-18 Globalfoundries Inc. Pattern based method for identifying design for manufacturing improvement in a semiconductor device
CN103426866B (zh) * 2012-05-17 2016-08-31 中芯国际集成电路制造(上海)有限公司 围栏间隔的设计规则测试电路
US8703507B1 (en) 2012-09-28 2014-04-22 Freescale Semiconductor, Inc. Method and apparatus to improve reliability of vias
CN103164568B (zh) * 2012-12-04 2018-03-20 天津蓝海微科技有限公司 版图验证规则中金属层的测试向量针对不同工艺的可复用生成方法
US8984449B1 (en) * 2013-09-16 2015-03-17 Oracle International Corporation Dynamically generating jog patches for jog violations
US9747404B2 (en) 2015-07-23 2017-08-29 United Microelectronics Corp. Method for optimizing an integrated circuit layout design
US9885951B2 (en) 2015-12-11 2018-02-06 International Business Machines Corporation Structure design generation for fixing metal tip-to-tip across cell boundary
CN115577672B (zh) * 2022-11-17 2023-03-14 深圳鸿芯微纳技术有限公司 通孔单元的确定方法、装置、电子设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05181934A (ja) * 1991-12-10 1993-07-23 Fujitsu Ltd 半導体装置のレイアウトデータ検証方法
JPH06125007A (ja) * 1992-10-12 1994-05-06 Fujitsu Ltd 半導体装置のレイアウトデータ検証方法
JPH0721239A (ja) * 1993-06-22 1995-01-24 Nec Corp デザインルールチェック実行装置
US5581475A (en) * 1993-08-13 1996-12-03 Harris Corporation Method for interactively tailoring topography of integrated circuit layout in accordance with electromigration model-based minimum width metal and contact/via rules
JP3079936B2 (ja) * 1995-02-24 2000-08-21 松下電器産業株式会社 レイアウトの検証方法およびその装置
US5629861A (en) * 1995-05-19 1997-05-13 International Business Machines Corporation Nested maximum space computation and efficient generation of nested shape complementation
US5812415A (en) * 1996-04-05 1998-09-22 Cadence Design Systems, Inc. Method and apparatus for enhancing performance of design verification systems
US6275971B1 (en) * 1997-09-30 2001-08-14 Philips Electronics North America Corporation Methods and apparatus for design rule checking

Also Published As

Publication number Publication date
EP1305744B1 (de) 2006-01-18
EP1305744A1 (de) 2003-05-02
ATE316267T1 (de) 2006-02-15
US6536023B1 (en) 2003-03-18
DE60116769D1 (de) 2006-04-06
JP2004502259A (ja) 2004-01-22
EP1305744A4 (de) 2004-04-14
WO2002003261A1 (en) 2002-01-10
AU2001271353A1 (en) 2002-01-14

Similar Documents

Publication Publication Date Title
DE60116769T2 (de) Verfahren und system zur hierarchischen metallenden-, einschliessungs- und belichtungsprüfung
DE69824765T2 (de) Polygondarstellung im Layout eines integrierten Schaltkreises
DE102015200694A1 (de) Verfahren, computersystem und computerlesbares speichermedium zum erzeugen eines layouts eines integrierten schaltkreises
US8719754B1 (en) System and method to generate re-useable layout components from schematic components in an IC design with hierarchical parameters
US8984465B1 (en) Methods, systems, and articles of manufacture for automatically assigning track patterns to regions for physical implementation of an electronic design
DE10025583A1 (de) Verfahren zur Optimierung integrierter Schaltungen, Vorrichtung zum Entwurf von Halbleitern und Programmobjekt zum Entwerfen integrierter Schaltungen
DE102019116952B4 (de) Integrierte-schaltkreis-struktur, layout-schaubild-verfahren und system
DE112013005820T5 (de) Graphische Benutzerschnittstelle für ein Werkzeug zur Lageplanerstellung bei der Entwurfsautomatisierung elektronischer Systeme
DE102020115968A1 (de) Systeme und verfahren für multi-bit-speicher mit eingebetteter logik
US11334705B2 (en) Electrical circuit design using cells with metal lines
DE102007018622A1 (de) Layout-Zellen, Layout-Zellenanordnung, Verfahren zum Erzeugen einer Layout-Zelle, Verfahren zum Erzeugen einer Layout-Zellenanordnung, Computerprogrammprodukte
DE112021002870T5 (de) Halbleiterschaltungs-entwurf und einheits-pin-anordnung
DE102019125900B4 (de) Metallschnittgebiet-positionierungsverfahren und system
DE102015102034A1 (de) Verfahren zum Analysieren von Ergebnissen in einem Entwurfsautomatisierungsablauf für elektronische Systeme, Computersystem und Computerprogrammprodukt
EP1146393B1 (de) Verfahren zur Herstellung von Masken für die Fertigung von Halbleiterstrukturen
DE102004003092A1 (de) Verfahren zum Auflösen nicht richtig angepaßter Parameter bei einem rechnergestützten Entwurf für integrierte Schaltungen
DE102022132158A1 (de) Verfahren, system und computerprogrammprodukt zum entwerfen von integrierten schaltkreisen
EP1543452B1 (de) Verfahren zum bestimmen der anordnung von kontaktflächen auf der aktiven oberseite eines halbleiterchips
US11301614B1 (en) Feasibility analysis of engineering change orders
DE102004003100A1 (de) Verfahren zum Auflösen nicht richtig angepaßter graphischer Symbole bei einem rechnergestützten Entwurf integrierter Schaltungen
DE10313949A1 (de) Schaltungsentwurfsduplizierungssystem
DE112013005783T5 (de) Mit Stromnetzwerksynthese (PNS) zur Stromversorgungsnetz(PG)-Justierung integriertes Modellieren
DE112013005831T5 (de) Netzlistenabstraktion
US10296695B1 (en) Method, system, and computer program product for implementing track patterns for electronic circuit designs
DE102020130212A1 (de) Verfahren zum deterministischen Clustering und Packing für Random-Logik auf programmierbaren integrierten Schaltungen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition