DE112015004558T5 - Matrixreduktion für die Lithografiesimulation - Google Patents

Matrixreduktion für die Lithografiesimulation Download PDF

Info

Publication number
DE112015004558T5
DE112015004558T5 DE112015004558.9T DE112015004558T DE112015004558T5 DE 112015004558 T5 DE112015004558 T5 DE 112015004558T5 DE 112015004558 T DE112015004558 T DE 112015004558T DE 112015004558 T5 DE112015004558 T5 DE 112015004558T5
Authority
DE
Germany
Prior art keywords
mask
matrix
edges
displaceable
mask edges
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.)
Pending
Application number
DE112015004558.9T
Other languages
English (en)
Inventor
Thomas Christopher Cecil
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.)
Synopsys Inc
Original Assignee
Synopsys 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
Application filed by Synopsys Inc filed Critical Synopsys Inc
Publication of DE112015004558T5 publication Critical patent/DE112015004558T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03FPHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
    • G03F7/00Photomechanical, e.g. photolithographic, production of textured or patterned surfaces, e.g. printing surfaces; Materials therefor, e.g. comprising photoresists; Apparatus specially adapted therefor
    • G03F7/70Microphotolithographic exposure; Apparatus therefor
    • G03F7/70425Imaging strategies, e.g. for increasing throughput or resolution, printing product fields larger than the image field or compensating lithography- or non-lithography errors, e.g. proximity correction, mix-and-match, stitching or double patterning
    • G03F7/70433Layout for increasing efficiency or for compensating imaging errors, e.g. layout of exposure fields for reducing focus errors; Use of mask features for increasing efficiency or for compensating imaging errors
    • 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]
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03FPHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
    • G03F7/00Photomechanical, e.g. photolithographic, production of textured or patterned surfaces, e.g. printing surfaces; Materials therefor, e.g. comprising photoresists; Apparatus specially adapted therefor
    • G03F7/70Microphotolithographic exposure; Apparatus therefor
    • G03F7/70425Imaging strategies, e.g. for increasing throughput or resolution, printing product fields larger than the image field or compensating lithography- or non-lithography errors, e.g. proximity correction, mix-and-match, stitching or double patterning
    • G03F7/70433Layout for increasing efficiency or for compensating imaging errors, e.g. layout of exposure fields for reducing focus errors; Use of mask features for increasing efficiency or for compensating imaging errors
    • G03F7/70441Optical proximity correction [OPC]
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03FPHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
    • G03F7/00Photomechanical, e.g. photolithographic, production of textured or patterned surfaces, e.g. printing surfaces; Materials therefor, e.g. comprising photoresists; Apparatus specially adapted therefor
    • G03F7/70Microphotolithographic exposure; Apparatus therefor
    • G03F7/70425Imaging strategies, e.g. for increasing throughput or resolution, printing product fields larger than the image field or compensating lithography- or non-lithography errors, e.g. proximity correction, mix-and-match, stitching or double patterning
    • G03F7/70466Multiple exposures, e.g. combination of fine and coarse exposures, double patterning or multiple exposures for printing a single feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Abstract

Eine Matrix wird für einen Halbleiterentwurf erstellt. Wechselwirkungen zwischen Maskenkanten beim Ausbilden von Halbleiterformen werden bestimmt und ein Graph wird erstellt, der diese Wechselwirkungen darstellt. Der Graph wird dann mit einem Färbungsalgorithmus in Gruppen partitioniert, wobei jede Gruppe eine oder mehrere nicht-wechselwirkende Maskenkanten darstellt. Eine Lithografiesimulation wird für jede Gruppe ausgeführt, bei der die Kanten dieser Gruppe gestört werden, aber die Kanten anderer Gruppen nicht verschoben werden. Die partiellen Ableitungen werden für die Kanten einer Gruppe auf der Grundlage der Simulation mit diesen gestörten Kanten berechnet und zum Belegen von Stellen in einer Jacobi-Matrix verwendet. Die Jacobi-Matrix wird dann verwendet, um ein Problem bei der optischen Nahbereichskorrektur (OPC) zu lösen, indem ein Maskenkanten-Korrekturvektor für einen gegebenen Wafer-Zielabweichungsvektor gefunden wird.

Description

  • VERWANDTE ANMELDUNGEN
  • Diese Patentanmeldung beansprucht die Priorität der US-Patentanmeldung „Matrixreduktion für die Lithografiesimulation“ Nr. 14/506,644, eingereicht am 4. Oktober 2014. Die vorstehende Anmeldung wird hiermit in Rechtssystemen, in denen dies zulässig ist, durch Bezugnahme vollständig aufgenommen.
  • GEBIET DER TECHNIK
  • Die vorliegende Erfindung betrifft allgemein den Halbleiterschaltungsentwurf und insbesondere die Lithografiesimulation von Halbleitermaskeninformationen.
  • HINTERGRUND
  • Moderne integrierte Schaltungen sind oft sehr groß und komplex und umfassen einige zehn oder sogar hundert Millionen Transistoren, sodass es schwierig und teuer ist, sie zu entwerfen und zu validieren. Der Entwurf und die Herstellung einer integrierten Schaltung umfassen viele verschiedene Schritte, von denen viele gewöhnlich mit elektronischen Design-Automatisierungswerkzeugen (EDA) ausgeführt werden, die auf einem Computer laufen. Jeder Transistor auf der integrierten Schaltung besteht aus Gebilden für die Diffusion, Polysilicium, Kontakten, Metallbeschichtung und anderen Strukturen. Es müssen auch weitere Strukturen für den Anschluss des Transistors oder zum Ausbilden anderer Schaltungselemente wie Kondensatoren erstellt werden. Bei der Ausführung der verschiedenen Schritte des Entwurfsprozesses müssen sich die Entwerfer der Einschränkungen des Herstellungsverfahrens deutlich bewusst sein. Die Formen müssen sorgfältig gestaltet werden, um die Implementierung der gewünschten Funktion der elektronischen Schaltung am resultierenden Ende der Herstellung zu ermöglichen.
  • Auf jedem Halbleiterchip gibt es zahlreiche Strukturen mit winzigen Abmessungen und aus verschiedenen Materialien in unmittelbarer Nähe zueinander. Jede dieser Strukturen hat eine gewünschte Form, in manchen Fällen Manhattan-Formen (d.h. Polygone mit orthogonalen Kanten), doch auch beliebig viele andere Formen. Die Strukturen werden mit vielen verschiedenen Techniken ausgebildet. Gewöhnlich wird die Fotolithografie zum Erzeugen von Strukturen im Chip verwendet. Eine fotolithografische Technik zum Ausbilden eines Satzes von Strukturen in einer partikularen Schicht eines Chips besteht darin, eine Materialschicht aufzubringen und dann die Schicht mit einem lichtempfindlichen Material zu beschichten. Ein Licht wird dann durch eine Maske strahlen gelassen, die über eine Vielfalt von Formen zum Abbilden der gewünschten Strukturen verfügt, um die Bereiche des lichtempfindlichen Materials selektiv zu belichten, die nicht von den Formen in der Maske bedeckt werden. Die belichteten Bereiche des lichtempfindlichen Materials werden dann, in manchen Fällen zusammen mit der Materialschicht unter diesen belichteten Bereichen, weggeätzt. Nachdem das unbelichtete lichtempfindliche Material entfernt wurde, bleiben die gewünschten Strukturen zurück. Zahlreiche andere Techniken können zum Ausbilden von Strukturen im Halbleiterchip verwendet werden, doch vielen Techniken ist die Verwendung von Masken gemein, wobei eine Maske eine oder mehrere Formen mit Kanten umfasst, die verwendet werden, um die Strukturen entweder unmittelbar oder mittelbar auf dem Chip zu erstellen. Die Formen auf der Maske müssen nicht unbedingt Formen von tatsächlichen Formen von Strukturen abbilden, doch nehmen sie eine Form an, die vom Herstellungsverfahren und den gewünschten Formen der auszubildenden Strukturen vorgegeben wird.
  • Im Zuge der technologischen Weiterentwicklung wurden immer kleinere Abmessungen, oder Strukturgrößen, bei den Masken notwendig, die bei der Lithografie verwendet werden. Da die Lithografie mit elektromagnetischer Strahlung (EMR) wie sichtbarem Licht oder ultraviolettem Licht arbeitet, um Bereiche des Chips durch eine Maske selektiv zu belichten, kann es dann, wenn die Abmessungen der gewünschten Strukturen kleiner werden als die Wellenlänge der verwendeten elektromagnetischen Strahlung, zu Wechselwirkungen zwischen der Maske und der elektromagnetischen Strahlung kommen, welche die tatsächlichen Formen der belichteten Bereiche beeinflussen und dazu führen, dass sich die belichteten Formen von den Formen auf der Maske unterscheiden. Um dem abzuhelfen, kann die Form des endgültigen belichteten Bereichs verwendet werden, um eine gewünschte Form eines Maskenelements zu erzeugen, die von der ursprünglichen Form verschieden ist.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Eine extensive Lithografiesimulation war wegen der Wechselwirkungen zwischen mehreren Maskenkanten erforderlich, welche die resultierenden Halbleiterformen beeinflussen. Probleme bei der optischen Nahbereichskorrektur (OPC) haben die Festlegung der Halbleiterformen weiter erschwert. Infolgedessen ist die Berechnung von Positionen für verschiebbare Maskenkanten eine Aufgabe, die, wenn überhaupt, nur sehr schwer zu bewältigen ist.
  • Ein computerimplementiertes Verfahren für die Entwurfsanalyse wird offenbart, umfassend: Erhalten eines Halbleiterentwurfs, der Maskendaten umfasst; Identifizieren von Zielpunkten und verschiebbaren Maskenkanten anhand der Maskendaten; Bestimmen von Wechselwirkungen zwischen den verschiebbaren Maskenkanten, wobei die Wechselwirkungen die resultierenden Halbleiterherstellungsformen beeinflussen; Aufbauen eines Graphen, der die Wechselwirkungen darstellt; Partitionieren des Graphen in eine Mehrzahl von Gruppen auf der Grundlage der Wechselwirkungen; und Ausführen der Lithografiesimulationen auf der Grundlage der Gruppen. Bei Ausführungsformen umfasst das Verfahren das Erstellen einer Matrix auf der Grundlage der verschiebbaren Maskenkanten und der Zielpunkte; und das Belegen zumindest einiger Stellen der Matrix auf der Grundlage der Lithografiesimulationen.
  • Verschiedene Merkmale, Aspekte und Vorteile verschiedener Ausführungsformen werden aus der folgenden weiteren Beschreibung besser ersichtlich.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die nachstehende detaillierte Beschreibung bestimmter Ausführungsformen kann durch Bezugnahme auf die nachstehenden Figuren verstanden werden, wobei:
  • 1 ein Ablaufdiagramm für die Matrixreduktion für die Lithografiesimulation ist;
  • 2 ein Beispiel einer Abbildung zwischen Maskenkanten und Auswertungspunkten zeigt;
  • 3 ein Beispiel einer Masken-Wechselwirkungsdistanz zeigt;
  • 4 ein Beispiel für die Matrixerstellung zeigt;
  • 5 ein Beispiel eines Wechselwirkungsgraphen zeigt;
  • 6 ein Beispiel einer Matrix mit gruppierten Spalten zeigt;
  • 7 ein Systemdiagramm für die Matrixreduktion für die Lithografiesimulation ist.
  • DETAILLIERTE BESCHREIBUNG
  • Eine einzelne integrierte Schaltung (IC), die hier alternativ als Chip oder Elektronikdesign bezeichnet wird, kann eine sehr große Anzahl von Halbleiterbauelementen wie zum Beispiel Transistoren enthalten. Da die Technologie voranschreitet, verringern sich die Abmessungen oder „Strukturgrößen“ von einzelnen Bauelementen, sodass mehr Bauelemente in einem gegebenen Bereich geschaffen werden können. Die derzeitigen minimalen Strukturgrößen bei stabilen oder ausgereiften Herstellungsverfahren sind typischerweise kleiner als die Wellenlänge von sichtbarem oder sogar ultraviolettem Licht. Viele dieser modernen Technologien verwenden Herstellungsverfahren, die sich auf lithografische oder chemische Bearbeitung stützen. Doch die immer kleiner werdenden Strukturgrößen laufen darauf hinaus, dass es zunehmend schwieriger wird, eine erfolgreiche optische Lithografie zu erreichen.
  • Eine Weise, in der Entwerfer das Problem des Aufbringens von Strukturen, die erheblich kleiner als die Wellenlängen der verfügbaren Lichtquellen sind, umgehen, ist die sorgfältige Steuerung der Maskenformen. Moderne Verfahren zur Prozessfensteroptimierung wie ILT (inverse Lithografietechnik) erzeugen feingliedrige Maskenstrukturen, die eine große Zahl von einfachen Maskenschreiber-Strukturen umfassen. Bei sehr feinen Geometrien werden die verschiedenen Maskenformen so gestaltet, dass sie miteinander wechselwirken, um erwünschte Strukturen auf dem Halbleiterchip zu erzeugen. Das heißt, dass mehrere Strukturen in der Maske einen einzelnen Punkt der gewünschten Form auf dem Chip beeinflussen können.
  • Die Wechselwirkungen zwischen Strukturen können mathematisch modelliert werden, indem man einen Betrag der Änderung bestimmt, die bei einem partikularen Abschnitt einer resultierenden Halbleiterform auf dem Chip durch eine Änderung der Lage einer Maskenkante bewirkt wird. Die Strukturwechselwirkung kann als partielle Ableitung für eine Wafer-Zielabweichung für einen Zielpunkt in Bezug auf die Maskenkantenkorrektur, oder Verschiebung, einer verschiebbaren Maskenkante quantifiziert werden. Der vollständige Satz der partiellen Ableitungen für alle Zielpunkte und alle verschiebbaren Maskenkanten kann berechnet werden, um eine Jacobi-Matrix zu erstellen, die viel weniger Lithografiesimulationen verwendet als zuvor erforderlich. Herkömmlicherweise wird mindestens eine Lithografiesimulation für jede verschiebbare Maskenkante durchgeführt. Bei der herkömmlichen Simulation wird eine Maskenkante gestört und dann wird die Simulation mit der einzelnen gestörten Maskenkante durchgeführt, um die Wirkung der Störung auf Abschnitte der resultierenden Halbleiterformen zu messen, die jedem Zielpunkt entsprechen. Da es viele tausend bewegliche Maskenkanten geben kann, kann die Simulation einzelner Kanten zu einer sehr großen Rechenlast führen. Hier werden Techniken beschrieben, um diese Rechenlast drastisch zu verringern, indem die Anzahl von Lithografiesimulationen verringert wird, die ausgeführt werden müssen, um die Jacobi-Matrix zu erstellen.
  • Bei verschiedenen Ausführungsformen wird ein Graph erzeugt, um die Wechselwirkungen zwischen den verschiebbaren Maskenkanten darzustellen. Der Graph hat einen Knoten, der jede verschiebbare Maskenkante darstellt. Wenn zwei verschiebbare Maskenkanten wechselwirken, verbindet eine Kante im Graphen die zwei Knoten, die die verschiebbaren Maskenkanten darstellen. Die Wechselwirkung zwischen den Maskenkanten kann unter Verwendung einer Matrix, der grafischen Suche und/oder anderer Techniken bestimmt werden. Die Wechselwirkungen können in einigen Fällen auch mit heuristikbasierten Abkürzungen manuell modifiziert werden. Nachdem der Graph aufgebaut wurde, wird er gefärbt, um Gruppen von Knoten zu bilden, die keine Wechselwirkung miteinander haben, wobei die verschiebbaren Maskenkanten, die von den durch die Partition zu einer einzigen Gruppe zusammengefassten Knoten dargestellt werden, mit keinen anderen verschiebbaren Maskenkanten wechselwirken, die von anderen Knoten in derselben Gruppe dargestellt werden. Das Färben wird dann verwendet, um Störungsgruppen zu erzeugen, wobei jede Störungsgruppe die verschiebbaren Maskenkanten umfasst, die mit einer Farbe des Graphen dargestellt sind (eine Gruppe von nicht-wechselwirkenden Kanten).
  • Eine Basislithografiesimulation wird ausgeführt, um resultierende Ausgangshalbleiterformen zu erzeugen. Anstatt immer nur jeweils eine verschiebbare Maskenkante zu stören und für jede gestörte Maskenkante eine Lithografiesimulation auszuführen, werden dann alle verschiebbaren Maskenkanten einer Störungsgruppe für einen einzelnen Lithografiesimulationsdurchlauf gestört. Die diesen gestörten Maskenkanten zugeordneten Spalten der Jacobi-Matrix können dann gefüllt werden, indem die Ergebnisse der Simulation mit den Daten verglichen werden, die in der farbkodierten Gruppe der nicht-wechselwirkenden Kanten vor der Störung enthalten sind. Wenn bei jeder Störungsgruppe eine Simulation durchgeführt wurde und ihre Ergebnisse verarbeitet wurden, ist die Jacobi-Matrix vollständig gefüllt. Da nur die Maskenkanten innerhalb einer Wechselwirkungsdifferenz einen erheblichen Einfluss auf eine einzelne Stelle des Halbleiterchips haben können, wird es im Vergleich zur Gesamtzahl der verschiebbaren Maskenkanten relativ wenige Wechselwirkungen zwischen den signifikanten verschiebbaren Maskenkanten geben. So können zum Färben des Graphen sehr viel weniger verschiedene Farben verwendet werden, als es insgesamt Knoten im Graphen gibt. Es wird, mit anderen Worten, sehr viel weniger Störungsgruppen geben als die Gesamtzahl von verschiebbaren Maskenkanten. Dies ermöglicht es, dass insgesamt weniger Simulationen ausgeführt werden müssen, um die Einträge der Jacobi-Matrix zu füllen, als es bei einer einfachen Implementierung mit einer Simulation je Matrixspalte erforderlich wäre.
  • Eine Ausführungsform des computerimplementierten Verfahrens für die Entwurfsanalyse umfasst das Erhalten eines Halbleiterentwurfs, der Maskendaten umfasst, und das Identifizieren von Zielpunkten und verschiebbaren Maskenkanten anhand der Maskendaten. Dann wird eine Matrix auf der Grundlage der verschiebbaren Maskenkanten und der Zielpunkte erstellt und es werden Wechselwirkungen zwischen den verschiebbaren Maskenkanten bestimmt. Wechselwirkungen zwischen verschiebbaren Maskenkanten beeinflussen die resultierenden Halbleiterherstellungsformen. Dann wird ein Graph, der Knoten, die die verschiebbaren Maskenkanten darstellen, umfasst, aufgebaut, der die Wechselwirkungen darstellt. Der Graph wird dann auf der Grundlage der Wechselwirkungen in eine Mehrzahl von Gruppen partitioniert. Die Gruppen umfassen jeweils einen oder mehrere nicht-wechselwirkende Knoten. Dann werden auf der Grundlage der Gruppen Lithografiesimulationen ausgeführt. Die Ausführung der Simulation umfasst die Ausführung einer ersten Lithografiesimulation zum Bestimmen eines erstens Satzes von resultierenden Halbleiterformen und das Stören der Positionen der durch den ersten Satz dargestellten verschiebbaren Maskenkanten. Dann wird eine weitere Lithografiesimulation ausgeführt, um einen zweiten Satz von resultierenden Halbleiterformen zu bestimmen, und die partiellen Ableitungen werden auf der Grundlage der Störungen der verschiebbaren Maskenkanten und der Differenzen zwischen den ersten resultierenden Halbleiterformen und den zweiten resultierenden Halbleiterformen berechnet. Dann können zumindest einige Stellen der Matrix mit den partiellen Ableitungen belegt werden. Auch bei den anderen farbkodierten Gruppen werden Lithografiesimulationen ausgeführt, wobei jede Lithografiesimulation Störungen auf die von einer einzelnen Gruppe des Graphen dargestellten verschiebbaren Maskenkanten anwendet und die partiellen Ableitungen für die Matrix berechnet werden.
  • 1 ist ein Ablaufdiagramm für die Matrixreduktion für die Lithografiesimulation. Der Ablauf 100 beschreibt eine Ausführungsform eines computerimplementierten Verfahrens für die Entwurfsanalyse. Der Ablauf 100 umfasst das Erhalten eines Halbleiterentwurfs, der Maskendaten 110 umfasst. Der Maskendaten umfassende Halbleiterentwurf kann durch Auslesen von einer oder mehrerer Computerdateien aus einem Computerspeichermedium, unter Verwendung eines logischen Designs zum Erzeugen eines Maskendaten umfassenden physischen Designlayouts, durch Benutzereingabe, durch Empfang einer Mitteilung über eine Kommunikationsverbindung, durch Scannen von Bildern von Masken zum Erhalten verschiedener Ebenen des Entwurfs oder mit jedem anderen Verfahren erhalten werden. Der Halbleiterentwurf kann Informationen über verschiedene Schichten des Chips umfassen, die Maskendaten umfassen, die für verschiedene Verfahrensschritte des zum Herstellen des Chips verwendeten Herstellungsverfahrens verwendet werden. Bei einigen Ausführungsformen umfasst das Layout GDSII-(Graphic Data System II)-Daten.
  • Der Ablauf 100 umfasst das Identifizieren, anhand der Maskendaten, von Zielpunkten und verschiebbaren Maskenkanten 120. Die verschiebbaren Maskenkanten sind Strukturen in der Maske, die im Computermodell verschoben werden können und einen oder mehrere Zielpunkte im endgültigen Halbleiterentwurf beeinflussen. Eine verschiebbare Maskenkante kann eine Kante eines Polygons in Maskendaten, ein Abschnitt einer Kurve mit einer nicht polygonalen Form in Maskendaten oder eine andere Struktur in den Maskendaten sein. Ein Zielpunkt ist ein Punkt auf dem Die eines Chips, der unter Verwendung von einer oder mehreren Maskenebenen der Maskendaten abgebildet sein kann. Der Zielpunkt kann ein simulierter Zielpunkt oder ein tatsächlicher Zielpunkt auf einem Chip sein. Der Zielpunkt kann bei einer Struktur einer Halbleiterherstellungsform angeordnet sein, die auf dem Chip durch fotolithografisches Abbilden unter Verwendung der Maskendaten erzeugt wurde. Der Zielpunkt kann sich auch auf einer Struktur einer gewünschten Form auf dem Chip befinden. Eine Mehrzahl von Zielpunkten kann eine resultierende Halbleiterherstellungsform beschreiben.
  • Der Ablauf 100 umfasst das Erstellen einer Matrix 130 auf der Grundlage der verschiebbaren Maskenkanten und der Zielpunkte. Das Erstellen der Matrix kann das Zuweisen von Platz für die Matrix in einem Halbleiterspeicher, einem magnetischen Speichermedium oder einem anderen Typ eines computerlesbaren Speichers umfassen. Bei mindestens einer Ausführungsform hat die Matrix eine Spalte für jede verschiebbare Maskenkante und eine Reihe für jedes Ziel. Bei einigen Ausführungsformen sind die Werte in der Matrix nach dem Erstellen der Matrix undefiniert, doch bei anderen Ausführungsformen wird die Matrix mit initialisierten Werten erstellt. Bei einigen Ausführungsformen werden die Werte in der Matrix auf einen bekannten Wert wie einem Wert ungleich Null initialisiert, nachdem die Matrix erstellt wurde. Bei mindestens einer Ausführungsform kann der Ablauf 100 ferner die Verwendung einer Protoform-Nachschlagetabelle zum Erstellen der Matrix umfassen. Eine Protoform-Nachschlagetabelle (oder Störungstabelle) kann verwendet werden, um schnell einen eindeutigen Matrixeintrag zu erzeugen.
  • Bei einigen Ausführungsformen umfasst der Ablauf 100 das Bestimmen verschiebbarer Maskenkanten, die keinen erheblichen Einfluss auf einen Abschnitt einer resultierenden Halbleiterform 132 haben. Ein erheblicher Einfluss ist eine Wirkung, die groß genug ist, um potenziell zu einem Defekt im Halbleiterchip beizutragen. Die nicht signifikanten Maskenkanten können mit einem beliebigen Verfahren bestimmt werden, doch bei einer Ausführungsform erfolgt die Bestimmung durch Vergleich der Positionen der verschiebbaren Maskenkanten zu den Zielpunkten. Wenn eine unter Vergleich befindliche verschiebbare Maskenkante weiter als eine Wechselwirkungsdistanz von einem Zielpunkt entfernt ist, wird bestimmt, dass diese verschiebbare Maskenkante keinen erheblichen Einfluss auf den Zielpunkt und somit auf den Abschnitt der resultierenden Halbleiterform hat, der diesem Zielpunkt zugeordnet ist. Die Wechselwirkungsdistanz ist eine vorbestimmte Distanz, die auf der Grundlage der verwendeten lithografischen Technik variiert. Die Wechselwirkungsdistanz kann mit einem beliebigen Verfahren bestimmt werden, einschließlich, jedoch nicht darauf beschränkt, Lithografiesimulation, physikalische Versuche und Heuristik. In einigen Fällen wird die Wechselwirkungsdistanz von einer weiteren Partei wie dem Lieferanten der lithografischen Abbildungsgeräte oder dem Halbleiterhersteller bereitgestellt. Die Wechselwirkungsdistanz kann bei einer partikularen Maskenschicht und bei einer partikularen lithografischen Technik eine Konstante sein oder sie kann eine Funktion anderer Faktoren in dieser Maskenschicht wie beispielsweise der Position in der Maske, der Größe der Maskenstruktur oder anderer Parameter sein. In Fällen, in denen die Wechselwirkungsdistanz eine Funktion ist, wird die Wechselwirkungsdistanz durch eine mathematische Funktion dargestellt, die für jeden Vergleich ausgewertet wird. Bei einigen Ausführungsformen definiert die Funktion zum Bestimmen der Wechselwirkungsdistanz, was als erheblicher Einfluss auf den Abschnitt der resultierenden Halbleiterform angesehen wird.
  • Bei einer anderen Ausführungsform wird eine geometrische Suche, die auch als geometrische Abfrage bezeichnet werden kann, zum Feststellen der verschiebbaren Maskenkanten verwendet, die sich innerhalb der Wechselwirkungsdistanz eines Zielpunkts befinden, der einen Abschnitt einer resultierenden Halbleiterform darstellt. In Bezug auf die nicht mit der geometrischen Suche identifizierten verschiebbaren Maskenkanten wird bestimmt, dass sie keinen erheblichen Einfluss auf den betreffenden Zielpunkt haben. Bei einigen Ausführungsformen gibt die geometrische Suche direkt die verschiebbaren Maskenkanten ohne erheblichen Einfluss auf den identifizierten Zielpunkt anstatt der Maskenkanten mit einem erheblichen Einfluss aus.
  • Bei noch anderen Ausführungsformen wird eine Lithografiesimulation durchgeführt, um zu bestimmen, wie stark eine partikulare verschiebbare Maskenkante die Position eines Abschnitts der resultierenden Halbleiterform beeinflusst. Wenn der Einfluss geringer als ein vorbestimmter Schwellenwert oder geringer als ein vorbestimmter Prozentsatz des insgesamt zulässigen Einflusses durch alle verschiebbaren Maskenkanten ist, dann wird in Bezug auf diese partikulare verschiebbare Maskenkante bestimmt, dass sie keinen erheblichen Einfluss auf den untersuchten Abschnitt der resultierenden Halbleiterform hat. Bei einigen Ausführungsformen ist ein erheblicher Einfluss definiert als ein festgelegtes Niveau der Empfindlichkeit der Lage des Abschnitts der resultierenden Halbleiterform gegenüber der Lage der verschiebbaren Maskenkante.
  • Bei einigen Ausführungsformen setzt sich der Ablauf 100 mit dem Nullsetzen von Stellen der Matrix 134 fort, die den bestimmten verschiebbaren Maskenkanten und dem Abschnitt der resultierenden Halbleiterform zugeordnet sind. Zumindest einige Abschnitte der resultierenden Halbleiterformen sind Zielpunkten zugeordnet. Die Matrix hat zumindest bei einigen Ausführungsformen eine einzelne Stelle, die einer partikularen verschiebbaren Maskenkante und einem partikularen Zielpunkt entspricht. Wenn in Bezug auf die partikulare verschiebbare Maskenkante bestimmt wird, dass sie keinen erheblichen Einfluss auf den Abschnitt der resultierenden Halbleiterform hat, der dem partikularen Zielpunkt zugeordnet ist, wird die entsprechende Stelle in der Matrix auf Null gesetzt. Das oben beschriebene Nullsetzen setzt voraus, dass die Matrix nicht auf Null initialisiert wurde. Bei einer alternativen Ausführungsform, bei der die Matrix auf Null initialisiert wurde, kann eine gleichwertige Funktion ausgeführt werden, indem Stellen der Matrix, die den verschiebbaren Maskenkanten zugeordnet sind, die einen erheblichen Einfluss auf den Abschnitt der resultierenden Halbleiterform haben, auf einen gegebenen von Null verschiedenen Wert gesetzt werden. Das Setzen auf von Null verschiedene Werte hat eine komplementäre Wirkung des Nullsetzens von Stellen, die nicht auf die von Null verschiedenen Werte gesetzt sind. Die von Null verschiedenen Werte erscheinen an Stellen der Matrix, die den verschiebbaren Maskenkanten zugeordnet sind, die eine resultierende Halbleiterform beeinflussen. Bei einigen Ausführungsformen kann ein von Null verschiedener Wert zumindest während einiger Phasen des Verfahrens zum Darstellen einer numerischen Null verwendet und dennoch als diese Stellen auf Null setzend angesehen werden. Auch das manuelle Belegen zumindest einiger Stellen der Matrix mit Nullen kann ausgeführt werden.
  • Der Ablauf 100 umfasst das Bestimmen von Wechselwirkungen zwischen den verschiebbaren Maskenkanten, wobei die Wechselwirkungen die resultierenden Halbleiterherstellungsformen 140 beeinflussen. Eine Wechselwirkung zwischen zwei verschiebbaren Maskenkanten liegt vor, wenn beide verschiebbaren Maskenkanten einen erheblichen Einfluss auf denselben Abschnitt der resultierenden Halbleiterform haben. In Abhängigkeit von den Details des Halbleiterentwurfs und der verwendeten lithografischen Technologie kann eine beliebige Anzahl verschiebbarer Maskenkanten mit demselben Abschnitt der resultierenden Halbleiterform wechselwirken. Die Wechselwirkungen können mit einem beliebigen Verfahren bestimmt werden. Bei einigen Ausführungsformen wird eine geometrische Suche 142 beim Bestimmen der Wechselwirkungen verwendet. Die geometrische Suche kann unter Verwendung des Satzes verschiebbarer Maskenkanten, eines Zielpunkts und einer Wechselwirkungsdistanz ausgeführt werden. Die geometrische Suche kann dann einen Teilsatz der verschiebbaren Maskenkanten ausgeben, die sich innerhalb der Wechselwirkungsdistanz des Zielpunkts befinden. Bei einer anderen Ausführungsform werden für die geometrische Suche der Satz von Zielpunkten, eine verschiebbare Maskenkante und die Wechselwirkungsdistanz bereitgestellt. Die geometrische Suche gibt dann einen Teilsatz der Zielpunkte aus, die sich innerhalb der Wechselwirkungsdistanz der verschiebbaren Maskenkante befinden. Bei einigen Ausführungsformen gibt die geometrische Suche einen Teilsatz von Elementen aus, die sich nicht innerhalb der Wechselwirkungsdistanz befinden.
  • Wenn eine Matrix erstellt wird und Stellen der Matrix auf Null gesetzt werden, die verschiebbaren Maskenkanten zugeordnet sind, die keinen erheblichen Einfluss auf einen Abschnitt der resultierenden Halbleiterform haben, kann die Matrix verwendet werden, um die Wechselwirkungen zwischen den verschiebbaren Maskenkanten wie folgt zu bestimmen: Wenn eine Reihe der Matrix mehr als einen von Null verschiedenen Eintrag hat, dann üben die von den mehreren von Null verschiedenen Einträgen dargestellten verschiebbaren Maskenkanten, d.h. die von den Spalten mit den von Null verschiedenen Einträgen dargestellten verschiebbaren Maskenkanten, eine Wechselwirkung aus, indem sie den Abschnitt der resultierenden Halbleiterherstellungsform erzeugen, der dieser Reihe der Matrix zugeordnet ist.
  • Der Ablauf 100 umfasst das Aufbauen eines Graphen 150, der die Wechselwirkungen darstellt. Der Graph kann als eine oder mehrere Datenstrukturen in einem Halbleiterspeicher, einem magnetischen Speichermedium oder einer anderen Form computerlesbarer Medien aufgebaut werden. Die Datenstrukturen können eine beliebige Form annehmen, einschließlich, aber nicht darauf beschränkt, verketteter Listen, Arrays oder Datenobjekten, und sie können in einer beliebigen Kombination zur Darstellung des Graphen verwendet werden. Bei einigen Ausführungsformen wird im Graphen ein Knoten für jede verschiebbare Maskenkante erzeugt. Kanten zwischen zwei Knoten eines derartigen Graphen werden auf der Grundlage der bestimmten Wechselwirkungen zwischen den verschiebbaren Maskenkanten erzeugt. Eine Kante zwischen zwei Knoten im Graphen kann anzeigen, dass die zwei Knoten für mindestens einen Zielpunkt wechselwirken.
  • Bei mindestens einer Ausführungsform kann der Graph unter Verwendung einer Matrix-Datenstruktur zum Darstellen zumindest eines Teils des Graphen aufgebaut werden. Die Spalten der Matrix können den verschiebbaren Maskenkanten des Halbleiterentwurfs entsprechen, wobei eine Spalte der Matrix als Knoten des Graphen fungiert. Die Reihen können jede Art von Information darstellen, doch bei zumindest einer Ausführungsform entspricht eine Reihe der Matrix einem Zielpunkt in dem Halbleiterentwurf. Die Matrix kann jeden Datentyp enthalten, einschließlich Ableitungsdaten, Nullen, Informationen zu den Graphkanten, Informationen zur Kennzeichnung des Graphen oder jeder anderen Art von Informationen in Abhängigkeit von der Ausführungsform. Bei einigen Ausführungsformen werden zusätzlich zur Matrix weitere Datenstrukturen zur Darstellung des Graphen verwendet, wie eine oder mehrere Datenstrukturen zum Speichern der Informationen zu den Knotenverbindungen, z.B. Graphkanten, und/oder ein Array zum Speichern von Knotenkennzeichnungen oder Farben.
  • Bei einigen Ausführungsformen wird der Graph direkt anhand der bestimmten Wechselwirkungen der verschiebbaren Maskenkanten aufgebaut. Bei anderen Ausführungsformen wird die Matrix erstellt und zumindest teilweise auf der Grundlage der Wechselwirkungen der verschiebbaren Maskenkanten auf Null gesetzt; dann wird der Graph anhand der Informationen in der Matrix aufgebaut. Bei Ausführungsformen, bei denen der Graph anhand der Matrix aufgebaut wird, wird ein Knoten des Graphen erzeugt, um einer Spalte der Matrix zu entsprechen, und eine Kante im Graphen wird auf der Grundlage von Paaren von Spalten mit von Null verschiedenen Werten in mindestens einer Reihe der Matrix erzeugt. Wenn beispielsweise eine Reihe vier von Null verschiedene Werte enthält, werden in dem Graphen sechs Kanten erzeugt, um jedes mögliche Paar von Werten darzustellen, die ungleich Null sind. Wenn ferner zwei verschiedene Reihen der Matrix von Null verschiedene Werte im selben Spaltenpaar enthalten, kann eine einzelne Kante zwischen den zwei entsprechenden Knoten im Graphen erzeugt werden.
  • Der Ablauf 100 setzt sich mit dem Partitionieren des Graphen 160 in eine Mehrzahl von Gruppen auf der Grundlage der Wechselwirkungen fort. Die Knoten des Graphen werden bei mindestens einer Ausführungsform derart zusammengefasst, dass die Knoten einer Gruppe nicht miteinander wechselwirken. Wurde der Graph anhand der Matrix aufgebaut, kann die nicht-wechselwirkende Gruppierung bewerkstelligt werden, indem sichergestellt wird, dass es in einer partikularen Gruppe keine zwei Knoten gibt, die einen von Null verschiedenen Eintrag in derselben Reihe der Matrix haben.
  • Bei einigen Ausführungsformen wird ein Färbungsalgorithmus zum Färben des Graphen 162 verwendet und der Graph wird auf der Grundlage der Farben der Knoten in Gruppen partitioniert. Die Verwendung eines Färbungsalgorithmus zum Färben des Graphen ist lediglich ein Sonderfall der Kennzeichnung von Graphen. Ein Färbungsalgorithmus weist den Knoten des Graphen derart eine Kennzeichnung oder „Farbe“ zu, dass keine zwei Knoten, die eine Kante des Graphen gemein haben, die gleiche Farbe haben. Da der Graph anhand der Informationen in der Matrix aufgebaut werden kann, kann der Färbungsalgorithmus die Matrixspaltenverbindungen verwenden, um Gruppierungen von nicht-wechselwirkenden Knoten die gleiche Farbe zuzuweisen. Es kann ein beliebiger Färbungsalgorithmus werden, einschließlich von Färbungsalgorithmen, die nicht die theoretisch kleinste Zahl von Farben realisieren.
  • Bei verschiedenen Ausführungsformen kann ein Kompromiss zwischen den zum Färben des Graphen erforderlichen Rechenressourcen und der Nähe der resultierenden Färbung zur theoretisch kleinsten Zahl von Farben gemacht werden. Das heißt, dass die Herabsetzung der Farbenanzahl langfristig Rechenressourcen spart, doch kann die zum Annähern an die theoretisch kleinste Zahl von Farben kurzfristig erforderliche intensive Rechenlast so bestimmt sein, dass sie alle langfristigen Vorteile überwiegt. Verschiedene Färbungsalgorithmen können bei Ausführungsformen verwendet werden, einschließlich, aber nicht darauf beschränkt, der Brute-Force-Suche, eines Löschen-Kontraktions-Algorithmus, eines sequentiellen Algorithmus mit Smallest-Last- oder Incidence-Degree-Anordnung oder eines Greedy-Algorithmus. Nachdem der Graph gefärbt wurde, kann er in Gruppen mit einer Farbe pro Gruppe partitioniert werden. Bei Ausführungsformen, bei denen die Graphenfärbung verwendet wird, sicherzustellen, dass keine zwei Knoten mit von Null verschiedenen Einträgen in einer gegebenen Reihe der Matrix gleich gefärbt sind, bedeutet, dass sich keine zwei Knoten, die wechselwirkende verschiebbare Maskenkanten darstellen, in der gleichen Gruppe befinden, also die gleiche Farbe haben.Der Ablauf 100 umfasst das Ausführen von Lithografiesimulationen 170 auf der Grundlage der Gruppen. Bei einigen Ausführungsformen wird eine Anfangslithografiesimulation ausgeführt, bei der sich alle verschiebbaren Maskenkanten in ihren ursprünglichen Positionen befinden, um die Ausgangshalbleiterformen zu bestimmen, die sich aus den ursprünglichen Maskendaten ergeben. Bei Ausführungsformen kann eine weitere Lithografiesimulation oder eine Reihe von Lithografiesimulationen für jede Gruppe des partitionierten Graphen ausgeführt werden. Wie bereits festgestellt, können alle von den Knoten der Gruppe dargestellten verschiebbaren Masken ohne Wechselwirkung untereinander gestört werden, weil eine Gruppe niemals zwei Knoten enthält, die miteinander wechselwirken. Der Ablauf 100 kann das Stören von einer oder mehreren der verschiebbaren Maskenkanten 172 für die Lithografiesimulationen umfassen. Das heißt, dass die Lithografiesimulation für eine einzelne Gruppe ausgeführt werden kann, indem alle von den Knoten in dieser Gruppe dargestellten verschiebbaren Maskenkanten vor Ausführung der Lithografiesimulation gestört werden. Bei einigen Ausführungsformen kann mehr als eine Lithografiesimulation für eine Gruppe mit verschiedenen Störungen ausgeführt werden, die auf die verschiebbaren Maskenkanten dieser Gruppe angewendet werden.
  • Die Ergebnisse der mit einer Gruppe von gestörten verschiebbaren Maskenkanten ausgeführten Lithografiesimulationen können mit den Ergebnissen der Anfangslithografiesimulation verglichen werden, um die partiellen Ableitungen einer Wafer-Zielabweichung für einen Zielpunkt in Bezug auf die Maskenkantenkorrektur oder Verschiebung einer verschiebbaren Maskenkante zu bestimmen. Die partielle Ableitung in der Gleichung zum Bestimmen der durch Kantenstörungen auf einer endgültigen Halbleiterform verursachten Wirkung stellt einen, durch Betrachtung eines Zielpunkts bestimmten, Verschiebungsbetrag eines Abschnitts der resultierenden Halbleiterform dar, der sich als Reaktion auf eine geringfügige Verschiebung einer einzelnen verschiebbaren Maskenkante ergibt. Wenn die verschiebbare Maskenkante geringfügig gestört wird, kann folglich der Betrag, den die Störung bei der resultierenden Halbleiterherstellungsform bewirkt, mit Hilfe der partiellen Ableitungen für die verschiedenen Zielpunkte vorhergesagt werden, die diese Form in Bezug auf die verschobene Maskenkante beschreiben.
  • Der Ablauf 100 umfasst das Belegen von zumindest einigen Stellen der Matrix 180 auf der Grundlage der Lithografiesimulationen. Bei einigen Ausführungsformen werden die partiellen Ableitungen, die unter Verwendung der Lithografiesimulationen berechnet werden, zum Belegen von Stellen in der Matrix verwendet. Bei zumindest einer Ausführungsform wird die partielle Ableitung für jede Stelle in der Matrix in Entsprechung mit den dargestellten gestörten verschiebbaren Maskenkanten berechnet. Bei einer derartigen Ausführungsform können partielle Ableitungen mit einem absoluten Wert, der kleiner ist als ein vorbestimmter Schwellenwert, auf Null gesetzt und als unwesentlich für die abschließende Berechnung einer Wafer-Zielabweichung ausgesondert werden. Bei einigen Ausführungsformen hat die Matrix einige auf Null gesetzte Stellen, bevor die Lithografiesimulationen ausgeführt und partielle Ableitungen für die Nicht-Null-Stellen in der Matrix berechnet werden, wobei keine weitere Berechnung für die auf Null gesetzten Stellen ausgeführt wird.
  • Bei zumindest einigen Ausführungsformen werden die Ausführung der Lithografiesimulationen mit gestörten verschiebbaren Maskenkanten einer Gruppe und das Belegen von zumindest einigen Stellen der Matrix für weitere Gruppen des Graphen wiederholt. Das Simulieren und Belegen kann für jede Gruppe des Graphen wiederholt werden. Bei einigen Ausführungsformen wird, wenn keine der von einer Knotengruppe dargestellten verschiebbaren Maskenkanten einen erheblichen Einfluss auf irgendeine resultierende Halbleiterform hat, die Gruppe übergangen, was zu Berechnungseinsparungen führt, da keine Lithografiesimulationen mit gestörten verschiebbaren Maskenkanten bei den von den Knoten dieser Gruppe dargestellten Kanten ausgeführt werden müssen.
  • Wenn die Matrix mit den partiellen Ableitungen für die verschiedenen Kombinationen von verschiebbaren Maskenkanten und Zielpunkten gefüllt ist, kann die Matrix als Jacobi-Matrix bezeichnet werden. Eine Jacobi-Matrix umfasst partielle Ableitungen, die für eine vektorwertige Funktion erster Ordnung sind. Demnach ist die Matrix bei zumindest einigen Ausführungsformen eine Jacobi-Matrix. Bei derartigen Ausführungsformen belegen die partiellen Ableitungen für eine partikulare Maskenkante eine einzige Spalte der Matrix und die partiellen Ableitungen für einen partikularen Zielpunkt belegen eine einzige Reihe der Matrix.
  • Der Ablauf 100 kann ferner die Ausführung einer optischen Nahbereichskorrektur 182 (OPC) auf der Grundlage der Simulationen umfassen. Die OPC ist ein Verbesserungsverfahren für die Fotolithografie zum Kompensieren von Abbildungsfehlern aufgrund von Beugung oder Prozesseinflüssen. Bei zumindest einer Ausführungsform wird eine Ausgangshalbleiterherstellungsform mit den Zielpunkten verglichen, die die gewünschte Halbleiterherstellungsform beschreiben. Ein Korrekturvektor kann auf der Grundlage der Unterschiede zwischen der Ausgangshalbleiterherstellungsformen und den Zielpunkten erzeugt werden. Die Jacobi-Matrix kann in Verbindung mit dem Korrekturvektor verwendet werden, um einen Verschiebungsvektor zu berechnen, der berechnet wird, um den Vektor für die optische Nahbereichskorrektur zu erzeugen. Bei einigen Ausführungsformen wird die Matrix invertiert und mit dem Korrekturvektor multipliziert, um den Verschiebungsvektor zu berechnen, der dann zum Aktualisieren der Positionen der verschiebbaren Maskenkanten verwendet wird. Folglich kann der Ablauf 100 bei einigen Ausführungsformen ferner das Aktualisieren von Positionen für die verschiebbaren Maskenkanten 184 auf der Grundlage eines Vergleichs zwischen den Zielpunkten und der auf den Lithografiesimulationen basierenden resultierenden Halbleiterherstellungsform umfassen.
  • Zum Prüfen der Richtigkeit des berechneten Korrekturvektors können die verschiebbaren Maskenkanten in einer weiteren Lithografiesimulation verwendet werden, um korrigierte resultierende Halbleiterherstellungsformen zu erzeugen. Die korrigierten resultierenden Halbleiterherstellungsformen können mit den Zielpunkten verglichen werden, um zu sehen, ob der Korrekturvektor richtig ist. Bei einigen Ausführungsformen liegen die korrigierten resultierenden Halbleiterherstellungsformen nicht nahe genug bei den Zielpunkten und das hier beschriebene computerimplementierte Verfahren für die Entwurfsanalyse wird unter Verwendung der aktualisierten verschiebbaren Maskenkanten als Ausgangspunkt iteriert. Demnach kann das Erhalten von Maskendaten in einigen Fällen Daten aus optischer Nahbereichskorrektur (OPC) und inverser Lithografietechnik (ILT) umfassen. Verschiedene Schritte im Ablauf 100 können in ihrer Reihenfolge geändert, wiederholt, weggelassen oder dergleichen werden, ohne von den offenbarten Konzepten abzuweichen. Verschiedene Ausführungsformen des Ablaufs 100 können in einem Computerprogrammprodukt enthalten sein, das in einem computerlesbaren Medium enthalten ist und Code umfasst, der von einem oder mehreren Prozessoren ausgeführt werden kann.
  • 2 zeigt ein Beispiel einer Abbildung zwischen Maskenkanten und Auswertungspunkten. Der Halbleiterentwurf 200 umfasst acht Beispielsmasken mit den Bezeichnungen M1, M2, M3, M4, M5, M6, M7 und M8 sowie fünf Beispielszielpunkte mit den Bezeichnungen P1, P2, P3, P4 und P5. Zumindest einige der Zielpunkte können gewünschte Formen für die Herstellung eines Halbleiterbauelements wie die im Beispiel dargestellte quadratische Form 202 beschreiben. Im dargestellten Beispiel sind Zielpunkte P1, P2, P3 und P4 auf den vier Kanten einer gewünschten quadratischen Form 202 angeordnet. Die verschiedenen Maskenkanten können die gewünschte Halbleiterform (hier ein Quadrat 202) beeinflussen, ein Einfluss, der durch Auswertung der Wirkungen gemessen werden kann, welche die Kantenverschiebungen auf die Zielpunkte haben. Verschiedene Techniken können verwendet werden, um zu bestimmen, welche Maskenkanten welche Zielpunkte erheblich beeinflussen, wie das Beispiel der Verwendung einer Masken-Wechselwirkungsdistanz, wie sie in 3 veranschaulicht wird.
  • 3 zeigt ein Beispiel einer Masken-Wechselwirkungsdistanz. Der gleiche Halbleiterentwurf 200 wie in 2 ist dargestellt, der die gleichen verschiebbaren Maskenkanten (M1–M8) und die gleichen Zielpunkte (P1–P5) umfasst. Eine Masken-Wechselwirkungsdistanz kann verwendet werden, um zu bestimmen, welche Zielpunkte durch welche Maskenkanten erheblich beeinflusst werden. Ein beliebiger Algorithmus-Typ kann verwendet werden, um zu bestimmen, welche Zielpunkte innerhalb einer Masken-Wechselwirkungsdistanz einer Maskenkante liegen, einschließlich, aber nicht darauf beschränkt, Lithografiesimulation, grafische Suche, geometrische Berechnungen, inverse Lithografietechnik (ILT), Maskenerzeugung und heuristische Methoden.
  • Bei zumindest einer Ausführungsform wird die Masken-Wechselwirkungsdistanz für eine verschiebbare Maskenkante durch ein Oval um die Maskenkante dargestellt, wie es durch das Oval 310 um die Maskenkante M1 im gegebenen Beispiel veranschaulicht wird. Das Oval kann dann ausgewertet werden, um zu bestimmen, welche Zielpunkte gegebenenfalls innerhalb des Ovals liegen. Wenn sich ein Zielpunkt innerhalb des Ovals befindet, wird bestimmt, dass die dem Oval zugeordnete Maskenkante einen erheblichen Einfluss auf den Zielpunkt hat. Wenn sich hingegen ein Zielpunkt außerhalb des Ovals befindet, wird bestimmt, dass die dem Oval zugeordnete Maskenkante keinen erheblichen Einfluss auf den Zielpunkt hat. Andere Ausführungsformen können andersartige Formen um die Kante, wie ein Rechteckt, oder eine durch einen festgelegten Abstand von der Kante definierte Form verwenden, um Zielpunkte innerhalb einer Wechselwirkungsdistanz der Maskenkante zu finden.
  • Bei anderen Ausführungsformen kann ein Abstand vom Zielpunkt zu einem nächstliegenden Punkt der Maskenkante berechnet und mit dem Wert der Wechselwirkungsdistanz verglichen werden, um zu bestimmen, welche Zielpunkte von der Maskenkante beeinflusst werden. Die Wechselwirkungsdistanz kann in Abhängigkeit von der Ausführungsform durch eine Konstante oder eine Gleichung dargestellt werden. Folglich kann das Bestimmen der verschiebbaren Maskenkanten, die keinen erheblichen Einfluss auf die resultierende Halbleiterform haben, das Feststellen der verschiebbaren Maskenkanten umfassen, die mehr als eine Masken-Wechselwirkungsdistanz von einem Zielpunkt entfernt sind, der der resultierenden Halbleiterform zugeordnet ist.
  • Das Bestimmen von Beziehungen zwischen Maskenkanten und Zielpunkten mit Hilfe einer Masken-Wechselwirkungsdistanz oder eines anderen Algorithmus wird durch die in den in 2 dargestellten Einflüsse veranschaulicht. Unter erneuter Bezugnahme auf 2 hat die Maskenkante M1 einen Einfluss 210 auf den Zielpunkt P5 und auch einen Einfluss 212 auf Zielpunkt P1. Ebenso hat die Maskenkante M2 einen Einfluss 214 auf den Zielpunkt P2, die Maskenkante M4 hat einen Einfluss 216 auf den Zielpunkt P2 und einen Einfluss 218 auf den Zielpunkt P3, die Maskenkante M5 hat einen Einfluss 220 auf den Zielpunkt P3 und die Maskenkante M8 hat einen Einfluss 222 auf den Zielpunkt P4. Die Maskenkanten M3, M7 und M6 haben keinen erheblichen Einfluss auf irgendeinen der dargestellten Zielpunkte P1–P5. Die fehlende Wechselwirkung kann auf Gründe zurückzuführen sein, die im Zusammenhang mit der Gesamtgröße der Kanten, dem Kantenabstand von den Zielpunkten oder anderen Faktoren in Verbindung mit dem verwendeten lithografischen Verfahren stehen.
  • Eine dieser Maskenkanten kann als Teil der Analyse der Maskenkante auf resultierenden Halbleiterformen gestört werden. Die Änderung einer Maskenkante und die resultierende Änderung der Maskenform kann als eine Protoform angesehen werden. Demnach wäre die Protoform eine geometrische Form, die einem Unterschied zwischen der Maskenform vor und nach der Störung entspricht. Eine Nachschlagetabelle kann verwendet werden, um Änderungen der Halbleiterformen zu bewerten. Die Nachschlagetabelle kann Einträge für alle Maskenstörungen oder Protoformen enthalten. Die Nachschlagetabelle liefert dann eine entsprechende Änderung der resultierenden Halbleiterform.
  • 4 zeigt ein Beispiel für die Matrixerstellung. Die beispielhafte Matrix 400 ist auf Grundlage des in 2 gezeigten Halbleiterentwurfs 200 erstellt. Die Matrix 400 ist so erstellt, dass sie fünf Reihen 410, eine Anzahl, die gleich der Anzahl der in 2 gezeigten Zielpunkte P1–P5 ist, und fünf Spalten 412 hat, gleich der Anzahl der verschiebbaren Maskenkanten M1, M2, M4, M5, M8 in 2, die einen erheblichen Einfluss auf mindestens einen dieser Zielpunkte haben. Bei einigen Ausführungsformen wird die Matrix 400 mit einer Anzahl von Spalten erstellt, die gleich der Gesamtzahl verschiebbarer Maskenkanten in den Maskendaten ist, wie beispielsweise acht Spalten, ausgehend von den acht Maskenkanten M1–M8 des in 2 gezeigten Halbleiterentwurfs 200. Bei einigen Ausführungsformen können ferner heuristische Techniken verwendet werden, um die Größe der Matrix zu reduzieren. Ein Beispiel für eine heuristische Technik wäre das Entfernen von Spalten einer Matrix auf der Grundlage einer unter einem bestimmten Schwellenwert liegenden Größe einer Maskenkante, wie Maskenkante M3 und Maskenkante M7 in 2, oder ein Anwender oder eine Anwenderin entfernt eine Spalte einer Matrix auf der Grundlage seiner oder ihrer Einsicht, dass die entsprechende Maskenkante ohne Gefahr ignoriert werden kann.
  • Bei einigen Ausführungsformen wird die Matrix 400 mit unbestimmten Werten erstellt, während die Matrix bei anderen Ausführungsformen mit initialisierten Werten erstellt wird. Die Matrix kann auf einen von Null verschiedenen Wert initialisiert werden, nachdem sie erstellt wurde. Matrixstellen, die einer verschiebbaren Maskenkante und einem nicht von diesem Maskenpunkt erheblich beeinflussten Zielpunkt entsprechen, werden dann auf Null gesetzt. Im Halbleiterentwurf 200 beeinflusst beispielsweise die Maskenkante M1 nicht die Zielpunkte P2, P3 oder P4, weshalb die 2., 3. und 4. Reihe der ersten Spalte der Matrix 400 auf Null gesetzt sind. Ebenso beeinflusst die Maskenkante M2 nicht die Zielpunkte P1, P3, P4 oder P5, weshalb die 1., 3., 4. und 5. Reihe der zweiten Spalte auf Null gesetzt sind. Die Maskenkante M3 beeinflusst keinen Zielpunkt, weshalb die Kante überhaupt nicht in die gegebene Matrix 400 eingeschlossen ist. Doch bei einigen Ausführungsformen werden nicht-wechselwirkende Kanten als Spalte einbezogen, wobei alle Einträge in der Spalte auf Null gesetzt werden. Aber bei Ausführungsformen, wie der dargestellten Ausführungsform, wird jede Spalte, die nur auf Null gesetzte Werte enthält, aus Gründen der Vereinfachung aus der Matrix eliminiert, so dass es möglich ist, Spalte M3 beim Erstellen der Matrix zu übergehen. Die Maskenkante M4 hat keinen Einfluss auf die Zielpunkte P1, P4 oder P5, weshalb die 1., 4. und 5. Reihe der dritten Spalte, die der Maskenkante M4 entspricht, auf Null gesetzt sind. Die Maskenkante M5 hat keinen Einfluss auf die Zielpunkte P1, P2, P4 oder P5, weshalb die 1., 2., 4. und 5. Reihe der vierten Spalte auf Null gesetzt sind. Die Maskenkanten M5 und M6 haben keinen Einfluss auf irgendwelche Zielpunkte, weshalb die Kanten M5 und M6 wie im Fall der Kante M3 beim Erstellen der Matrix übergangen werden. Die Maskenkante M8 hat keinen Einfluss auf die Zielpunkte P1, P2, P3 oder P5, weshalb die 1., 2., 3. und 5. Reihe der fünften Spalte auf Null gesetzt sind. Das Durchführen des Nullsetzens stellt sicher, dass alle Stellen der Matrix mit von Null verschiedenen Werten einen Einfluss auf Zielpunkte haben.
  • Bei einigen Ausführungsformen wird die Matrix mit den auf Null gesetzten Stellen zum Bestimmen von Wechselwirkungen zwischen den verschiebbaren Maskenkanten verwendet. Das Bestimmen von Wechselwirkungen kann durch Feststellen einer Reihe der Matrix mit mehr als einer nicht auf Null gesetzten Stelle erfolgen. Diejenigen verschiebbaren Maskenkanten können wechselwirken, die den Spalten entsprechen, die in einer gegebenen Reihe von Null verschiedene Werte gemeinsam haben. So enthält in der beispielhaften Matrix 400 die zweite Reihe von Null verschiedene Werte in der zweiten Spalte, die der Maskenkante M2 entspricht, und in der dritten Spalte, die der Kante M4 entspricht. Ebenso enthält die dritte Reihe von Null verschiedene Werte in der dritten Spalte, die der Maskenkante M4 entspricht, und in der vierten Spalte, die der Kante M5 entspricht. Daher kann bestimmt werden, dass die Maskenkante M2 mit der Maskenkante M4 wechselwirkt und dass die Maskenkante M4 mit der Maskenkante M5 wechselwirkt. Bei einigen Ausführungsformen können durch das Füllen Stellen belegt werden, die nicht mit Hilfe verschiedener Techniken wie Protoform-(in manchen Fällen als „Blitze“ bekannt)-Analyse auf Null gesetzt wurden, doch bei anderen Ausführungsformen werden die von Null verschiedenen Werte unverändert gelassen und später wie nachstehend beschrieben aktualisiert.
  • 5 zeigt ein Beispiel eines Wechselwirkungsgraphen. Der Graph 500 enthält Knoten, die die verschiebbaren Maskenkanten darstellen. Der erste Knoten 510 stellt die Maskenkante M1 dar, der zweite Knoten 520 stellt die Maskenkante M2 dar, der dritte Knoten 540 stellt die Maskenkante M4 dar, der vierte Knoten 550 stellt die Maskenkante M5 dar und der fünfte Knoten 580 stellt die Maskenkante M8 des Halbleiterentwurfs 200 von 2 dar.
  • Der Graph 500 wird aufgebaut, um die Wechselwirkungen der verschiebbaren Maskenkanten darzustellen. Wie vorher bestimmt wurde, besteht im Halbleiterentwurf 200 von 2 eine Wechselwirkung zwischen der verschiebbaren Maskenkante M2 und der verschiebbaren Maskenkante M4 sowie zwischen der verschiebbaren Maskenkante M4 und der verschiebbaren Maskenkante M5. Folglich sind zur Darstellung dieser Wechselwirkungen die Graphkanten im Graphen 500 enthalten. Beispielsweise verbindet eine Graphkante 524 den zweiten Knoten 520 und den dritten Knoten 540, um die Wechselwirkung zwischen der Maskenkante M2 und der Maskenkante M4 darzustellen, und eine Graphkante 545 verbindet den dritten Knoten 540 mit dem vierten Knoten 550, um die Wechselwirkung zwischen der Maskenkante M4 und der Maskenkante M5 darzustellen.
  • Bei Ausführungsformen wird der Graph 500, nachdem er aufgebaut wurde, in Gruppen partitioniert, die einen oder mehrere Knoten umfassen. Die Gruppen können derart gewählt werden, dass zwischen keinem Knoten einer Gruppe eine Wechselwirkung mit einem anderen Knoten der gleichen Gruppe besteht. Ein beliebiger Algorithmus kann verwendet werden, um die Partitionierung durchzuführen, doch bei mindestens einer Ausführungsform kann das Partitionieren einen Färbungsalgorithmus derart umfassen, dass sich nur nicht-wechselwirkende Knoten dieselbe Farbe teilen. Ein beliebiger Typ von Färbungsalgorithmus kann verwendet werden. Bei einigen Ausführungsformen kann der Färbungsalgorithmus auf einem Greedy-Algorithmus basieren.
  • Die Partitionierung des Graphen 500 in zwei Gruppen erfolgt auf der Grundlage eines Färbungsalgorithmus, der zwei Farben verwendet, also die theoretisch kleinste Zahl von Farben, die zum Färben des beispielhaften Graphen 500 verwendet werden kann. Die erste Farbgruppe enthält den ersten Knoten M1 510, den dritten Knoten M4 540 und den fünften Knoten M8 580. Die zweite Gruppe enthält den zweiten Knoten M2 520 und den dritten Knoten M5 550. Die erste Gruppe stellt die erste verschiebbare Maskenkante M1, die vierte verschiebbare Maskenkante M4 und die achte verschiebbare Maskenkante M8 dar. Die zweite Gruppe stellt die zweite verschiebbare Maskenkante M2 und die fünfte verschiebbare Maskenkante M5 dar. Die dritte verschiebbare Maskenkante M3, die sechste verschiebbare Maskenkante M6 und die siebte verschiebbare Maskenkante M7 von 2 sind in keiner Gruppe vertreten, weil keine dieser Kanten einen erheblichen Einfluss auf einen Zielpunkt im Halbleiterentwurf 200 hat.
  • Bei einigen Ausführungsformen wird die Matrix 400 mit auf Null gesetzten Stellen von 4 zum Erstellen des Graphen 500 verwendet. Bei diesen Ausführungsformen wird ein Knoten für jede Spalte der Matrix erzeugt. Zwei Knoten des Graphen werden mit einer Graphkante verbunden, wenn es mindestens eine Reihe der Matrix gibt, die in den beiden Spalten, die diesen zwei Knoten entsprechen, von Null verschiedene Werte enthält. So hat die Matrix 400 von 4 von Null verschiedene Werte in der 2. und 3. Spalte der 2. Reihe, weshalb eine Graphkante 524 verwendet wird, um den zweiten Knoten 520 mit dem dritten Knoten 540 des Graphen 500 zu verbinden. Ebenso gibt es von Null verschiedene Werte in der 3. und 4. Spalte der dritten Reihe der Matrix 400 von 4, weshalb eine weitere Graphkante 545 verwendet wird, um den dritten Knoten 540 mit dem vierten Knoten 550 des Graphen 500 zu verbinden. Nachdem der Graph erstellt wurde, kann ein Färbungsalgorithmus zum Partitionieren des Graphen 500 verwendet werden. Folglich kann der Färbungsalgorithmus Matrixspaltenverbindungen widerspiegeln.
  • Nachdem der Graph 500 partitioniert wurde, können Lithografiesimulationen auf der Grundlage der partitionierten Gruppen ausgeführt werden. Wie oben erwähnt, kann auf dem Halbleiterentwurf früh im Prozess eine Lithografiesimulation unter Verwendung der verschiebbaren Maskenkanten in ihren ursprünglichen Positionen durchgeführt werden, um resultierende Ausgangshalbleiterformen zu bestimmen. Wenn jedoch noch keine Ausgangslithografiesimulation durchgeführt wurde, kann sie ausgeführt werden, nachdem der Graph schon partitioniert wurde.
  • Bei einigen Ausführungsformen wird eine zusätzliche Lithografiesimulation für jede Gruppe des Graphen ausgeführt. Somit können die Lithografiesimulationen eine Mehrzahl von Vorwärtssimulationen umfassen. Die Wechselwirkungen zwischen den verschiebbaren Maskenkanten und den Zielpunkten können Maskenstörungsgruppen festlegen. Bei Ausführungsformen können die Maskenstörungsgruppen für die Simulation den partitionierten Gruppen im Graphen entsprechen. Bei dieser Ausführungsform werden die mit dem Knoten einer Gruppe verknüpften verschiebbaren Maskenkanten gestört oder um einen geringen Betrag verschoben, wobei die mit den Knoten der anderen Gruppen verknüpften verschiebbaren Maskenkanten in ihren ursprünglichen nicht verschobenen Positionen belassen werden, und es wird eine Lithografiesimulation durchgeführt. Folglich wird eine Mehrzahl von verschiebbaren Maskenkanten für eine Lithografiesimulation für zumindest einige der Vorwärtssimulationen gestört. Dann werden die Ergebnisse der Lithografiesimulation analysiert, um zu bestimmen, welchen Einfluss die Störungen dieser verschiebbaren Maskenkanten auf die resultierenden Halbleiterformen haben. Da keine Gruppe Knoten enthält, die direkt mit einem anderen Knoten dieser Gruppe verbunden sind, besteht zwischen keiner der mit einer Gruppe verknüpften verschiebbaren Maskenkanten eine Wechselwirkung mit irgendeiner anderen mit dieser Gruppe verknüpften verschiebbaren Maskenkante. Daher können alle mit einer einzelnen Gruppe verknüpften verschiebbaren Maskenkanten für eine einzelne Lithografiesimulation ohne jede Wechselwirkung zwischen den gestörten Kanten gestört werden. Da in vielen Fällen die Anzahl von Gruppen sehr viel kleiner als die Gesamtzahl von Knoten ist, sind viel weniger Lithografiesimulationen erforderlich als bei herkömmlichen Techniken, bei denen für jede Lithografiesimulation eine einzelne verschiebbare Kante gestört wird. Dies kann eine erhebliche Verringerung der Zeit und/oder Rechenressourcen erbringen.
  • Ableitungen können auf Grundlage jedes Lithografiesimulationsdurchlaufs berechnet werden. Eine Ableitung für jeden Zielpunkt, der von jeder gestörten verschiebbaren Maskenkante beeinflusst wird, kann durch den Vergleich der Ausgangshalbleiterformen mit den Halbleiterformen berechnet werden, die mit den verschobenen Kanten erzeugt werden. Bei einigen Ausführungsformen wird eine Ableitung mit Hilfe der einfachen Formel „Lageänderung des Abschnitts einer einem Zielpunkt entsprechenden Halbleiterform geteilt durch die durch die Störung bewirkte Lageänderung der verschiebbaren Maskenkante“ berechnet.
  • 6 zeigt ein Beispiel einer Matrix 600 mit gruppierten Spalten. Das Gruppieren einer Matrix kann auf der Partitionierung eines Graphen basieren, der der Matrix zugeordnet ist. Die auf den Partitionen des Graphen basierenden Lithografiesimulationen können Elemente der Matrix bereitstellen. Das heißt, dass die durch Stören der verschiebbaren Maskenkanten einer Gruppe berechneten Ableitungen verwendet werden können, um nicht auf Null gesetzte Stellen in den Spalten der Matrix zu belegen, die den gestörten verschiebbaren Maskenkanten entsprechen. Folglich kann die Matrix aus der Maskensynthese hervorgehen. Da die Matrix mit partiellen Ableitungen einer Vektorfunktion gefüllt wird, ist die Matrix bei derartigen Ausführungsformen eine Jacobi-Matrix. Bei einem typischen Halbleiterentwurf sind viele Stellen in der Matrix auf Null gesetzt, so dass die Matrix eine dünnbesetzte Matrix sein kann.
  • Die beispielhafte Matrix 600 basiert auf dem Halbleiterentwurf 200 von 2. Die beispielhafte Matrix kann je nach Ausführungsform direkt aus dem Graphen 500 von 5 erzeugt sein oder sie kann eine modifizierte Version der Matrix 400 von 4 darstellen. Die Matrix 600 hat fünf Reihen 610 und fünf Spalten 612. In der Matrix wurden Stellen auf Null gesetzt, um anzuzeigen, dass die einer Spalte zugeordneten verschiebbaren Maskenkanten keinen Einfluss auf den der Reihe zugeordneten Zielpunkt haben. Die Matrix 600 ist auf Grundlage der Färbung des Graphen 500 von 5 gefärbt. Die erste, die dritte und die fünfte Spalte haben eine erste Farbe 620 und die zweite und die vierte Spalte haben eine zweite Farbe 622. Die Maskenkanten M1, M4 und M8, denen die erste Farbe 620 zugewiesen ist, wechselwirken nicht miteinander, und die Maskenkanten M2 und M5, denen die zweite Farbe 622 zugewiesen ist, wechselwirken nicht miteinander.
  • Es kann eine Lithografiesimulation durchgeführt werden, bei der die Maskenkanten M1, M4 und M8, denen die erste Farbe 620 zugewiesen ist, gestört werden, jedoch die Maskenkanten M2 und M5, denen die zweite Farbe 622 zugewiesen ist, nicht verschoben werden. Die Ergebnisse der Simulation können verwendet werden, um den Wert d11, der die Ableitung ist, die die Empfindlichkeit des Zielpunkts P1 gegenüber einer Verschiebung der Maskenkante M1 zeigt, und den Wert d51 zu berechnen, der die Ableitung ist, die die Empfindlichkeit des Zielpunkts P5 gegenüber einer Verschiebung der Maskenkante M1 zeigt. Die Ergebnisse der Simulation können auch verwendet werden, um die folgenden Werte zu berechnen: d24, der die Ableitung ist, die die Empfindlichkeit des Zielpunkts P2 gegenüber einer Verschiebung der Maskenkante M4 zeigt; d34, der die Ableitung ist, die die Empfindlichkeit des Zielpunkts P3 gegenüber einer Verschiebung der Maskenkante M4 zeigt; und d48, der die Ableitung ist, die die Empfindlichkeit des Zielpunkts P4 gegenüber einer Verschiebung der Maskenkante M8 zeigt.
  • Es kann eine weitere Lithografiesimulation durchgeführt werden, bei der die Maskenkanten gestört werden, denen die zweite Farbe 622 zugewiesen ist, wobei die Maskenkanten, denen die erste Farbe 620 zugewiesen ist, in ursprüngliche Positionen gelegt sind. Die Ergebnisse der Simulation können verwendet werden, um den Wert d22, der die Ableitung ist, die die Empfindlichkeit des Zielpunkts P2 gegenüber einer Verschiebung der Maskenkante M2 zeigt, und den Wert d35 zu berechnen, der die Ableitung ist, die die Empfindlichkeit des Zielpunkts P3 gegenüber einer Verschiebung der Maskenkante M5 zeigt. Somit wird in diesem Beispiel die Jacobi-Matrix mit Hilfe von drei iterierenden Lithografiesimulationen berechnet, also einer Simulation mit den verschiebbaren Kanten in ursprünglichen Positionen und einer zusätzlichen Simulation für jede Farbe der Matrix, die Störungsgruppen von verschiebbaren Maskenkanten darstellt.
  • 7 ist ein Systemdiagramm für die Matrixreduktion für die Lithografiesimulation. Das System 700 kann einen oder mehrere Prozessoren 710 umfassen, die mit einem Speicher 712 verbunden sind, der einen beliebigen Typ von Computerspeicher umfasst, einschließlich, aber nicht darauf beschränkt, verschiedener Typen von Halbleiterspeichern – beispielsweise dynamischer Speicherbaustein mit wahlfreiem Zugriff (DRAM), Festwertspeicher (ROM) oder Flash-Speicher –, verschiedener Typen von magnetischen Speichermedien – beispielsweise Festplattenlaufwerke, Diskettenlaufwerke oder Magnetblasenspeicher – oder verschiedener Geräte für aufkommende Speichertechnologien – beispielsweise Phasenwechselspeicher, ferroelektrischer Speicher oder resistiver Speicher. Der Speicher 712 kann verwendet werden, um Computercode und Computeranweisungen sowie berechnete, temporäre und/oder permanente Computerdaten vorübergehend oder dauerhaft zu speichern. Die Daten können jeden beliebigen Typ oder alle beliebigen Typen von Daten umfassen, einschließlich von Daten für einen oder mehrere Halbleiterentwürfe, die Maskendaten umfassen. Die Halbleiterentwurfdaten können Layoutinformationen, Schichtinformationen, Maskendaten, verschiebbare Maskenkanten, Zielpunkte, Informationen für die optische Nahbereichskorrektur (OPC), Informationen für die inverse Lithografietechnik (ILT), Entwurfsinformationen, Konfigurationsinformationen, Testdaten und Anweisungen und dergleichen umfassen. Bei einigen Ausführungsformen ist auch eine Anzeige 714 eingeschlossen und sie kann eine elektronische Anzeige sein, einschließlich, aber nicht darauf beschränkt, einer Computeranzeige, eines Laptop-Bildschirms, eines Netbook-Bildschirms, eines Tablet-Bildschirms, eines Mobiltelefondisplays, einer Fernbedienung mit einer Anzeige, eines Fernsehgeräts, eines Projektors oder dergleichen. Eine Ausführungsform eines auf dem einen oder mehreren Prozessoren 710 ausgeführten Computerprogramms kann eine Entwurfsanalyse ausführen.
  • Ein Halbleiterentwurf 720 ist in einem computerlesbaren Medium gespeichert, das in jedem geeigneten Typ von Speichergerät enthalten sein kann, einschließlich eines Festplattenlaufwerks (HDD), eines Halbleiterlaufwerks (SSD) oder eines optischen Speichermediums. Der Halbleiterentwurf kann Maskendaten, verschiebbare Maskenkanten, Zielpunkte, Beschreibungen von Schichten, Hierarchien von Schichten, Beschreibungen von Rechtecken und Polygonen oder jede andere Art von Beschreibung des physikalischen Entwurfs einer integrierten Schaltung umfassen. Bei Ausführungsformen weist der Halbleiterentwurf Maskendaten auf, die Zielpunkte und verschiebbare Maskenkanten umfassen. Bei einigen Ausführungsformen umfasst der Halbleiterentwurf OPC- und ILT-Daten.
  • Ein Identifikationsmodul 730 kann in das System 700 eingeschlossen sein. Das Identifikationsmodul 730 kann zum Identifizieren von Zielpunkten und verschiebbaren Maskenkanten anhand der Maskendaten verwendet werden. Die Maskendaten können im Halbleiterentwurf 720 enthalten sein. Ein Bestimmungsmodul 740 kann in das System 700 eingeschlossen sein. Das Bestimmungsmodul 740 kann zum Bestimmen von Wechselwirkungen zwischen den verschiebbaren Maskenkanten verwendet werden, wobei die Wechselwirkungen eine resultierende Halbleiterherstellungsform beeinflussen. Das Bestimmen kann mit Hilfe einer geometrischen Suche, durch Prüfen einer Matrix oder durch die Verwendung eines anderen Algorithmus erfolgen, um zu bestimmen, zwischen welchen verschiebbaren Maskenkanten für mindestens einen Zielpunkt eine Wechselwirkung besteht. Ein Grapherstellungsmodul 750 kann ebenfalls in das System 700 eingeschlossen sein. Das Grapherstellungsmodul 750 kann zum Aufbauen eines Graphen verwendet werden, der die Wechselwirkungen zwischen verschiebbaren Maskenkanten zeigt, die mit Knoten im Graphen dargestellt werden. Das Grapherstellungsmodul 750 kann auch zum Partitionieren des Graphen in eine Mehrzahl von Gruppen auf der Grundlage der Wechselwirkungen verwendet werden. Ein Färbungsalgorithmus, der die Matrixspaltenverbindungen widerspiegelt, kann zum Partitionieren des Graphen verwendet werden. Ein Lithografiesimulationsmodul 760 kann in das System 700 eingeschlossen sein. Das Lithografiesimulationsmodul 760 kann zum Ausführen von Lithografiesimulationen auf der Grundlage der Knotengruppen verwendet werden.
  • Das System 700 kann ein Computerprogrammprodukt für die Entwurfsanalyse umfassen. Das Computerprogrammprodukt kann in einem computerlesbaren Medium enthalten sein und Code zum Erhalten eines Halbleiterentwurfs umfassen, einschließlich von Maskendaten, Code zum Identifizieren von Zielpunkten und verschiebbaren Maskenkanten anhand der Maskendaten, Code zum Bestimmen von Wechselwirkungen zwischen den verschiebbaren Maskenkanten, wobei die Wechselwirkungen eine resultierende Halbleiterherstellungsform beeinflussen, Code zum Aufbauen eines Graphen, der die Wechselwirkungen darstellt, Code zum Partitionieren des Graphen in eine Mehrzahl von Gruppen auf der Grundlage der Wechselwirkungen und Code zum Durchführen von Lithografiesimulationen auf der Grundlage der Gruppen.
  • Jedes der obenstehenden Verfahren kann auf einem oder mehreren Prozessoren in einem oder mehreren Computersystemen ausgeführt werden. Ausführungsformen können verschiedene Formen von verteiltem Rechnen, Client-Server-Rechnen und Cloud Computing umfassen. Ferner versteht sich, dass die in den Ablaufdiagrammen dieser Offenbarung abgebildeten Schritte oder Kästen nur der Veranschaulichung und Erläuterung dienen. Die Schritte können geändert, weggelassen, wiederholt oder umgeordnet werden, ohne vom Schutzumfang der vorliegenden Offenbarung abzuweichen. Außerdem kann jeder Schritt einen oder mehrere Teilschritte enthalten. Obwohl die vorstehenden Zeichnungen und die Beschreibung funktionale Aspekte des offenbarten Systems darlegen, kann keine partikulare Implementierung oder Anordnung von Software und/oder Hardware aus diesen Beschreibungen abgeleitet werden, sofern sie nicht ausdrücklich angegeben oder anderweitig klar aus dem Kontext hervorgeht. Es versteht sich, dass alle diese Anordnungen von Software und/oder Hardware in den Schutzumfang der vorliegenden Offenbarung fallen.
  • Die Abbildungen von Block- und Ablaufdiagrammen stellen Verfahren, Vorrichtungen, Systeme und Computerprogrammprodukte dar. Die Elemente und Kombinationen von Elementen in den Block- und Ablaufdiagrammen zeigen Funktionen, Schritte oder Gruppen von Schritten der Verfahren, Vorrichtungen, Systeme, Computerprogrammprodukte und/oder computerimplementierten Verfahren. Beliebige und alle derartigen Funktionen – hier allgemein als „Schaltung“, „Modul“ oder „System“ bezeichnet – können mit Computerprogrammanweisungen, mit auf Hardware für spezielle Anwendungen basierenden Computersystemen, mit Kombinationen von Hardware für spezielle Anwendungen und Computeranweisungen, mit Kombinationen von Mehrzweck-Hardware und Computeranweisungen usw. implementiert werden.
  • Eine programmierbare Vorrichtung, die eines der oben genannten Computerprogrammprodukte oder computerimplementierten Verfahren ausführt, kann einen oder mehrere Mikroprozessoren, Mikrocontroller, eingebettete Mikrocontroller, programmierbare digitale Signalprozessoren, programmierbare Geräte, programmierbare Gate-Arrays, Programmable Array Logic, Speichergeräte, anwendungsspezifische integrierte Schaltungen oder dergleichen umfassen. Alle können in geeigneter Weise verwendet oder konfiguriert werden, um Computerprogrammanweisungen zu verarbeiten, Computerlogik auszuführen, Computerdaten zu speichern usw.
  • Es versteht sich, dass ein Computer ein Computerprogrammprodukt von einem computerlesbaren Speichermedium umfassen kann und dass dieses Medium intern oder extern, herausnehmbar und austauschbar oder fest eingebaut sein kann. Außerdem kann ein Computer ein Basisdatenaustauschsystem (BIOS), Firmware, ein Betriebssystem, eine Datenbank oder dergleichen umfassen, die bzw. das eine Schnittstelle mit der hier beschriebenen Software und Hardware umfassen oder diese unterstützen kann.
  • Ausführungsformen der vorliegenden Erfindung sind weder auf herkömmliche Computeranwendungen noch auf die programmierbaren Vorrichtungen, die sie ausführen, beschränkt. Zur Veranschaulichung: Die Ausführungsformen der vorliegend beanspruchten Erfindung können einen optischen Computer, Quantencomputer, Analogrechner oder dergleichen umfassen. Ein Computerprogramm kann in einen Computer geladen werden, um eine besondere Maschine zu schaffen, die beliebige und alle der dargelegten Funktionen ausführen kann. Diese besondere Maschine stellt Mittel zur Ausführung beliebiger und aller dargelegten Funktionen bereit.
  • Jede Kombination von einem oder mehreren computerlesbaren Medien kann verwendet werden, einschließlich, aber nicht darauf beschränkt: ein nicht-flüchtiges computerlesbares Speichermedium; ein computerlesbares elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleiter-Speichermedium oder jede geeignete Kombination des Vorstehenden; eine tragbare Computerdiskette; eine Festplatte; ein Speicher mit wahlfreiem Zugriff (RAM); ein Festwertspeicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM, Flash-Speicher, MRAM, FeRAM oder Phasenwechselspeicher); ein Lichtleiter; eine tragbare Compact Disc; ein optisches Speichergerät; ein magnetisches Speichergerät; oder eine beliebige Kombination des Vorstehenden. Im Sinne dieser Schrift kann ein computerlesbares Speichermedium ein beliebiges materielles Medium sein, das ein Programm zur Verwendung mit Hilfe eines Anweisungsausführungssystem, einer Vorrichtung oder eines Geräts oder in Verbindung damit enthalten oder speichern kann.
  • Es versteht sich, dass Computerprogrammanweisungen computerausführbaren Code umfassen können. Eine Vielzahl von Sprachen zum Ausdrücken von Computerprogrammanweisungen kann, ohne Einschränkung, C, C++, Java, JavaScriptTM, ActionScriptTM, Assemblersprache, Lisp, Perl, Tcl, Python, Ruby, Hardwarebeschreibungssprachen, Datenbankprogrammiersprachen, funktionale Programmiersprachen, imperative Programmiersprachen usw. umfassen. Bei Ausführungsformen können Computerprogrammanweisungen gespeichert, kompiliert oder interpretiert werden, um auf einem Computer, einer programmierbaren Datenverarbeitungsvorrichtung, einer heterogenen Kombination von Prozessoren oder Prozessorarchitekturen usw. zu laufen. Ohne Einschränkung können Ausführungsformen der vorliegenden Erfindung die Form von Web-basierter Computersoftware annehmen, die Client-Server-Software, Software-as-a-Service, Peer-to-Peer-Software oder dergleichen umfasst.
  • Bei Ausführungsformen kann ein Computer die Ausführung von Computerprogrammanweisungen einschließlich mehrerer Programme oder Threads ermöglichen. Die Mehrzahl von Programmen oder Threads kann nahezu gleichzeitig verarbeitet werden, um die Nutzung des Prozessors zu verbessern und im Wesentlichen simultane Funktionen zu erleichtern. Durch die Implementierung können beliebige und alle hier beschriebenen Verfahren, Programmcodes, Programmanweisungen und dergleichen in einen oder mehrere Threads implementiert werden, die ihrerseits andere Threads hervorbringen können, denen selbst Prioritäten zugewiesen sein können. Bei einigen Ausführungsformen kann ein Computer diese Threads auf der Grundlage der Priorität oder einer anderen Reihenfolge verarbeiten.
  • Sofern nicht ausdrücklich angegeben oder anderweitig klar aus dem Kontext ersichtlich, können die Verben „ausführen“ und „verarbeiten“ austauschbar dazu verwendet werden, um ausführen, verarbeiten, interpretieren, kompilieren, assemblieren, verknüpfen, laden oder eine Kombination des Vorstehenden zu bezeichnen. Daher können Ausführungsformen, die Computerprogrammanweisungen, computerausführbaren Code oder dergleichen ausführen oder verarbeiten, auf jede beliebige und auf alle der beschriebenen Weisen nach Anweisungen oder nach einem Code handeln. Ferner versteht es sich, dass die dargestellten Verfahrensschritte jedes Verfahren umfassen, das geeignet ist, eine oder mehrere Parteien oder Einheiten zu veranlassen, die Schritte auszuführen. Die Parteien, die einen Schritt oder einen Teil eines Schritts ausführen, müssen sich nicht an einem bestimmten geografischen Ort oder innerhalb bestimmter Landesgrenzen befinden. Wenn beispielsweise eine in den Vereinigten Staaten befindliche Einheit veranlasst, dass ein Verfahrensschritt oder einen Teil davon außerhalb der Vereinigten Staaten ausgeführt wird, dann gilt das Verfahren kraft der verursachenden Einheit als in den Vereinigten Staaten ausgeführt.
  • Obwohl die Erfindung in Verbindung mit im Einzelnen dargelegten und beschriebenen bevorzugten Ausführungsformen offenbart wurde, sind vielfältige Änderungen und Verbesserungen daran für Fachleute ersichtlich. Demgemäß sollen die vorstehenden Beispiele nicht den Geist und den Schutzumfang der vorliegenden Erfindung einschränken; sie sind vielmehr im weitesten Sinn zu verstehen, den das Gesetz zulässt.

Claims (50)

  1. Computerimplementiertes Verfahren für die Entwurfsanalyse, umfassend: Identifizieren von Zielpunkten und verschiebbaren Maskenkanten anhand von auf einem Halbleiterentwurf basierenden Maskendaten; Bestimmen von Wechselwirkungen zwischen den verschiebbaren Maskenkanten, wobei die Wechselwirkungen die resultierenden Halbleiterherstellungsformen beeinflussen; Aufbauen eines Graphen, der die Wechselwirkungen darstellt; Partitionieren des Graphen in eine Mehrzahl von Gruppen auf der Grundlage der Wechselwirkungen; und Ausführen von Lithografiesimulationen auf der Grundlage der Mehrzahl von Gruppen.
  2. Verfahren nach Anspruch 1, ferner umfassend: Erstellen einer Matrix auf der Grundlage der verschiebbaren Maskenkanten und der Zielpunkte; und Belegen zumindest einiger Stellen der Matrix auf der Grundlage der Lithografiesimulationen.
  3. Verfahren nach Anspruch 2, das ferner die Verwendung einer Protoform-Nachschlagetabelle zum Erstellen der Matrix umfasst.
  4. Verfahren nach Anspruch 2, wobei die Matrix eine Jacobi-Matrix ist.
  5. Verfahren nach Anspruch 2, wobei die Matrix aus einer Maskensynthese resultiert.
  6. Verfahren nach Anspruch 2, wobei die Matrix eine dünnbesetzte Matrix ist.
  7. Verfahren nach Anspruch 2, das ferner die Verwendung von heuristischen Techniken zum Reduzieren der Größe der Matrix umfasst.
  8. Verfahren nach Anspruch 2, ferner umfassend: Bestimmen verschiebbarer Maskenkanten, die keinen erheblichen Einfluss auf einen Abschnitt einer resultierenden Halbleiterform haben; und Nullsetzen von Stellen der Matrix, die den bestimmten verschiebbaren Maskenkanten und dem Abschnitt der resultierenden Halbleiterform zugeordnet sind.
  9. Verfahren nach Anspruch 8, wobei das Bestimmen von Wechselwirkungen durch Feststellen einer Reihe der Matrix mit mehr als einer nicht auf Null gesetzten Stelle erfolgt, wobei beim Füllen Stellen belegt werden, die nicht auf Null gesetzt wurden.
  10. Verfahren nach Anspruch 9, wobei das Partitionieren einen Färbungsalgorithmus umfasst, der Matrixspaltenverbindungen widerspiegelt.
  11. Verfahren nach Anspruch 8, wobei das Bestimmen der verschiebbaren Maskenkanten, die keinen erheblichen Einfluss auf die resultierende Halbleiterform haben, das Feststellen der verschiebbaren Maskenkanten umfasst, die mehr als eine Masken-Wechselwirkungsdistanz von einem Zielpunkt entfernt sind, der der resultierenden Halbleiterform zugeordnet ist.
  12. Verfahren nach Anspruch 1, wobei der Graph Knoten umfasst, die die verschiebbaren Maskenkanten darstellen; die Mehrzahl von Gruppen jeweils einen oder mehrere Knoten umfasst; und kein Knoten einer Gruppe mit einem anderen Knoten der Gruppe wechselwirkt.
  13. Verfahren nach Anspruch 12, ferner umfassend: Erstellen einer Matrix auf der Grundlage der verschiebbaren Maskenkanten und der Zielpunkte; und Belegen zumindest einiger Stellen der Matrix mit partiellen Ableitungen; wobei das Ausführen der Lithografiesimulationen Folgendes umfasst: Ausführen einer ersten Lithografiesimulation zum Bestimmen von ersten resultierenden Halbleiterformen; Stören der Positionen der verschiebbaren Maskenkanten, die von einer Gruppe der Mehrzahl von Gruppen dargestellt werden; Ausführen einer weiteren Lithografiesimulation zum Bestimmen von zweiten resultierenden Halbleiterformen; und Berechnen der partiellen Ableitungen auf der Grundlage von Störungen der verschiebbaren Maskenkanten und der Unterschiede zwischen den ersten resultierenden Halbleiterformen und den zweiten resultierenden Halbleiterformen.
  14. Verfahren nach Anspruch 1, das ferner das Ausführen einer optischen Nahbereichskorrektur (OPC) auf der Grundlage der Lithografiesimulationen umfasst.
  15. Verfahren nach Anspruch 1, das ferner das Aktualisieren von Positionen für die verschiebbaren Maskenkanten auf der Grundlage eines Vergleichs zwischen den Zielpunkten und einer auf den Lithografiesimulationen basierenden resultierenden Halbleiterherstellungsform umfasst.
  16. Verfahren nach Anspruch 15, wobei die Zielpunkte gewünschte Formen für die Herstellung auf einem Halbleiterbauelement beschreiben.
  17. Verfahren nach Anspruch 1, das ferner die Verwendung einer geometrischen Suche zum Bestimmen der Wechselwirkungen umfasst.
  18. Verfahren nach Anspruch 1, das ferner das Stören von einer oder mehreren der verschiebbaren Maskenkanten für die Lithografiesimulationen umfasst.
  19. Verfahren nach Anspruch 1, wobei die Maskendaten Daten aus optischer Nahbereichskorrektur (OPC) und inverser Lithografietechnik (ILT) umfassen.
  20. Verfahren nach Anspruch 1, wobei das Partitionieren einen Färbungsalgorithmus umfasst.
  21. Verfahren nach Anspruch 20, wobei der Färbungsalgorithmus auf einem Greedy-Algorithmus basiert.
  22. Verfahren nach Anspruch 1, wobei eine Mehrzahl von verschiebbaren Maskenkanten für eine Lithografiesimulation gestört wird.
  23. Verfahren nach Anspruch 1, wobei die Wechselwirkungen zwischen den verschiebbaren Maskenkanten und den Zielpunkten Maskenstörungsgruppen festlegen.
  24. Verfahren nach Anspruch 1, wobei die Lithografiesimulationen eine Mehrzahl von Vorwärtssimulationen umfassen.
  25. Computerprogrammprodukt, das in einem computerlesbaren Medium für die Entwurfsanalyse enthalten ist, wobei das Computerprogrammprodukt Folgendes umfasst: Code zum Identifizieren von Zielpunkten und verschiebbaren Maskenkanten anhand von auf einem Halbleiterentwurf basierenden Maskendaten; Code zum Bestimmen von Wechselwirkungen zwischen den verschiebbaren Maskenkanten, wobei die Wechselwirkungen eine resultierende Halbleiterherstellungsform beeinflussen; Code zum Aufbauen eines Graphen, der die Wechselwirkungen darstellt; Code zum Partitionieren des Graphen in eine Mehrzahl von Gruppen auf der Grundlage der Wechselwirkungen; und Code zum Ausführen von Lithografiesimulationen auf der Grundlage der Mehrzahl von Gruppen.
  26. Computerprogrammprodukt nach Anspruch 25, ferner umfassend: Code zum Erstellen einer Matrix auf der Grundlage der verschiebbaren Maskenkanten und der Zielpunkte; und Code zum Belegen zumindest einiger Stellen der Matrix auf der Grundlage der Lithografiesimulationen.
  27. Computerprogrammprodukt nach Anspruch 26, das ferner Code zum Verwenden einer Protoform-Nachschlagetabelle zum Erstellen der Matrix umfasst.
  28. Computerprogrammprodukt nach Anspruch 26, ferner umfassend: Code zum Bestimmen verschiebbarer Maskenkanten, die keinen erheblichen Einfluss auf einen Abschnitt einer resultierenden Halbleiterform haben; und Code zum Nullsetzen von Stellen der Matrix, die den bestimmten verschiebbaren Maskenkanten und dem Abschnitt der resultierenden Halbleiterform zugeordnet sind.
  29. Computerprogrammprodukt nach Anspruch 28, wobei das Bestimmen von Wechselwirkungen durch Feststellen einer Reihe der Matrix mit mehr als einer nicht auf Null gesetzten Stelle erfolgt, wobei beim Füllen Stellen belegt werden, die nicht auf Null gesetzt wurden.
  30. Computerprogrammprodukt nach Anspruch 29, wobei das Partitionieren einen Färbungsalgorithmus umfasst, der Matrixspaltenverbindungen widerspiegelt.
  31. Computerprogrammprodukt nach Anspruch 28, wobei das Bestimmen der verschiebbaren Maskenkanten, die keinen erheblichen Einfluss auf die resultierende Halbleiterform haben, das Feststellen der verschiebbaren Maskenkanten umfasst, die mehr als eine Masken-Wechselwirkungsdistanz von einem Zielpunkt entfernt sind, der der resultierenden Halbleiterform zugeordnet ist.
  32. Computerprogrammprodukt nach Anspruch 25, wobei der Graph Knoten umfasst, die die verschiebbaren Maskenkanten darstellen; die Mehrzahl von Gruppen jeweils einen oder mehrere Knoten umfasst; und kein Knoten einer Gruppe mit einem anderen Knoten der Gruppe wechselwirkt.
  33. Computerprogrammprodukt nach Anspruch 32, ferner umfassend: Code zum Erstellen einer Matrix auf der Grundlage der verschiebbaren Maskenkanten und der Zielpunkte; und Code zum Belegen zumindest einiger Stellen der Matrix mit partiellen Ableitungen; wobei das Ausführen der Lithografiesimulationen Folgendes umfasst: Ausführen einer ersten Lithografiesimulation zum Bestimmen von ersten resultierenden Halbleiterformen; Stören der Positionen der verschiebbaren Maskenkanten, die von einer Gruppe der Mehrzahl von Gruppen dargestellt werden; Ausführen einer weiteren Lithografiesimulation zum Bestimmen von zweiten resultierenden Halbleiterformen; und Berechnen der partiellen Ableitungen auf der Grundlage von Störungen der verschiebbaren Maskenkanten und der Unterschiede zwischen den ersten resultierenden Halbleiterformen und den zweiten resultierenden Halbleiterformen.
  34. Computerprogrammprodukt nach Anspruch 25, das ferner Code zum Aktualisieren von Positionen für die verschiebbaren Maskenkanten auf der Grundlage eines Vergleichs zwischen den Zielpunkten und einer auf den Lithografiesimulationen basierenden resultierenden Halbleiterherstellungsform umfasst.
  35. Computerprogrammprodukt nach Anspruch 25, das ferner Code zum Verwenden einer geometrischen Suche zum Bestimmen der Wechselwirkungen umfasst.
  36. Computerprogrammprodukt nach Anspruch 25, das ferner Code zum Stören von einer oder mehreren der verschiebbaren Maskenkanten für die Lithografiesimulationen umfasst.
  37. Computerprogrammprodukt nach Anspruch 25, wobei die Wechselwirkungen zwischen den verschiebbaren Maskenkanten und den Zielpunkten Maskenstörungsgruppen festlegen.
  38. Computersystem für die Entwurfsanalyse, umfassend: einen Speicher, der Anweisungen speichert; einen oder mehrere Prozessoren, die mit dem Speicher verbunden sind, wobei der eine oder die mehreren Prozessoren für Folgendes gestaltet sind: Identifizieren von Zielpunkten und verschiebbaren Maskenkanten anhand von auf einem Halbleiterentwurf basierenden Maskendaten; Bestimmen von Wechselwirkungen zwischen den verschiebbaren Maskenkanten, wobei die Wechselwirkungen eine resultierende Halbleiterherstellungsform beeinflussen; Aufbauen eines Graphen, der die Wechselwirkungen darstellt; Partitionieren des Graphen in eine Mehrzahl von Gruppen auf der Grundlage der Wechselwirkungen; und Ausführen von Lithografiesimulationen auf der Grundlage der Mehrzahl von Gruppen.
  39. System nach Anspruch 38, wobei der eine oder die mehreren Prozessoren ferner für Folgendes gestaltet sind: Erstellen einer Matrix auf der Grundlage der verschiebbaren Maskenkanten und der Zielpunkte; und Belegen zumindest einiger Stellen der Matrix auf der Grundlage der Lithografiesimulationen.
  40. System nach Anspruch 39, wobei der eine oder die mehreren Prozessoren ferner gestaltet sind, um eine Protoform-Nachschlagetabelle zum Erstellen der Matrix zu verwenden.
  41. System nach Anspruch 39, wobei der eine oder die mehreren Prozessoren ferner für Folgendes gestaltet sind: Bestimmen verschiebbarer Maskenkanten, die keinen erheblichen Einfluss auf einen Abschnitt einer resultierenden Halbleiterform haben; und Nullsetzen von Stellen der Matrix, die den bestimmten verschiebbaren Maskenkanten und dem Abschnitt der resultierenden Halbleiterform zugeordnet sind.
  42. System nach Anspruch 41, wobei das Bestimmen von Wechselwirkungen durch Feststellen einer Reihe der Matrix mit mehr als einer nicht auf Null gesetzten Stelle erfolgt, wobei beim Füllen Stellen belegt werden, die nicht auf Null gesetzt wurden.
  43. System nach Anspruch 42, wobei das Partitionieren einen Färbungsalgorithmus umfasst, der Matrixspaltenverbindungen widerspiegelt.
  44. System nach Anspruch 41, wobei das Bestimmen der verschiebbaren Maskenkanten, die keinen erheblichen Einfluss auf die resultierende Halbleiterform haben, das Feststellen der verschiebbaren Maskenkanten umfasst, die mehr als eine Masken-Wechselwirkungsdistanz von einem Zielpunkt entfernt sind, der der resultierenden Halbleiterform zugeordnet ist.
  45. System nach Anspruch 38, wobei der Graph Knoten umfasst, die die verschiebbaren Maskenkanten darstellen; die Mehrzahl von Gruppen jeweils einen oder mehrere Knoten umfasst; und kein Knoten einer Gruppe mit einem anderen Knoten der Gruppe wechselwirkt.
  46. System nach Anspruch 45, wobei der eine oder die mehreren Prozessoren ferner für Folgendes gestaltet sind: Erstellen einer Matrix auf der Grundlage der verschiebbaren Maskenkanten und der Zielpunkte; und Belegen zumindest einiger Stellen der Matrix mit partiellen Ableitungen; wobei das Ausführen der Lithografiesimulationen Folgendes umfasst: Ausführen einer ersten Lithografiesimulation zum Bestimmen von ersten resultierenden Halbleiterformen; Stören der Positionen der verschiebbaren Maskenkanten, die von einer Gruppe der Mehrzahl von Gruppen dargestellt werden; Ausführen einer weiteren Lithografiesimulation zum Bestimmen von zweiten resultierenden Halbleiterformen; und Berechnen der partiellen Ableitungen auf der Grundlage von Störungen der verschiebbaren Maskenkanten und der Unterschiede zwischen den ersten resultierenden Halbleiterformen und den zweiten resultierenden Halbleiterformen.
  47. System nach Anspruch 38, wobei der eine oder die mehreren Prozessoren ferner gestaltet sind, um Positionen für die verschiebbaren Maskenkanten auf der Grundlage eines Vergleichs zwischen den Zielpunkten und einer auf den Lithografiesimulationen basierenden resultierenden Halbleiterherstellungsform zu aktualisieren.
  48. System nach Anspruch 38, wobei der eine oder die mehreren Prozessoren ferner gestaltet sind, um eine geometrische Suche zum Bestimmen der Wechselwirkungen zu verwenden.
  49. System nach Anspruch 38, wobei der eine oder die mehreren Prozessoren ferner gestaltet sind, um eine oder mehrere der verschiebbaren Maskenkanten für die Lithografiesimulationen zu stören.
  50. System nach Anspruch 38, wobei die Wechselwirkungen zwischen den verschiebbaren Maskenkanten und den Zielpunkten Maskenstörungsgruppen festlegen.
DE112015004558.9T 2014-10-04 2015-10-02 Matrixreduktion für die Lithografiesimulation Pending DE112015004558T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/506,644 US10430543B2 (en) 2014-10-04 2014-10-04 Matrix reduction for lithography simulation
US14/506,644 2014-10-04
PCT/US2015/053660 WO2016054477A1 (en) 2014-10-04 2015-10-02 Matrix reduction for lithography simulation

Publications (1)

Publication Number Publication Date
DE112015004558T5 true DE112015004558T5 (de) 2017-06-14

Family

ID=55631586

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015004558.9T Pending DE112015004558T5 (de) 2014-10-04 2015-10-02 Matrixreduktion für die Lithografiesimulation

Country Status (4)

Country Link
US (1) US10430543B2 (de)
KR (1) KR102545529B1 (de)
DE (1) DE112015004558T5 (de)
WO (1) WO2016054477A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671786B2 (en) * 2016-11-29 2020-06-02 Taiwan Semiconductor Manufacturing Co., Ltd. Method of modeling a mask by taking into account of mask pattern edge interaction
US10466586B2 (en) 2016-11-29 2019-11-05 Taiwan Semiconductor Manufacturing Co., Ltd. Method of modeling a mask having patterns with arbitrary angles
US10898986B2 (en) * 2017-09-15 2021-01-26 Applied Materials, Inc. Chattering correction for accurate sensor position determination on wafer
US10809629B2 (en) * 2018-08-31 2020-10-20 Taiwan Semiconductor Manufacturing Company, Ltd. Method and apparatus for computing feature kernels for optical model simulation
US11061321B1 (en) 2019-06-24 2021-07-13 Synopsys, Inc. Obtaining a mask using a cost function gradient from a Jacobian matrix generated from a perturbation look-up table
US10846448B1 (en) * 2019-11-19 2020-11-24 Mentor Graphics Corporation Limited basis quantum particle definitions in applications of quantum computing to electronic design automation processes
US11907631B2 (en) * 2020-09-24 2024-02-20 Synopsys, Inc. Reset domain crossing detection and simulation

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3409493B2 (ja) * 1995-03-13 2003-05-26 ソニー株式会社 マスクパターンの補正方法および補正装置
JP3934719B2 (ja) * 1995-12-22 2007-06-20 株式会社東芝 光近接効果補正方法
US6081658A (en) 1997-12-31 2000-06-27 Avant! Corporation Proximity correction system for wafer lithography
US6928634B2 (en) 2003-01-02 2005-08-09 Yuri Granik Matrix optical process correction
US7471375B2 (en) 2003-02-11 2008-12-30 Asml Netherlands B.V. Correction of optical proximity effects by intensity modulation of an illumination arrangement
US7234129B2 (en) * 2004-09-29 2007-06-19 Synopsys, Inc. Calculating etch proximity-correction using object-precision techniques
US7207029B2 (en) * 2004-09-29 2007-04-17 Synopsys, Inc. Calculating etch proximity-correction using image-precision techniques
US7349066B2 (en) * 2005-05-05 2008-03-25 Asml Masktools B.V. Apparatus, method and computer program product for performing a model based optical proximity correction factoring neighbor influence
JP4413825B2 (ja) 2005-07-13 2010-02-10 株式会社東芝 潜像計算方法、マスクパターン作成方法および半導体装置の製造方法
US7953582B2 (en) 2006-11-21 2011-05-31 Cadence Design Systems, Inc. Method and system for lithography simulation and measurement of critical dimensions
US7802226B2 (en) 2007-01-08 2010-09-21 Mentor Graphics Corporation Data preparation for multiple mask printing
US7707538B2 (en) 2007-06-15 2010-04-27 Brion Technologies, Inc. Multivariable solver for optical proximity correction
JP5408852B2 (ja) * 2007-08-09 2014-02-05 株式会社日立ハイテクノロジーズ パターン測定装置
US7831954B2 (en) 2007-09-25 2010-11-09 Synopsys, Inc. Flash-based updating techniques for high-accuracy high efficiency mask synthesis
US7617478B2 (en) 2007-09-25 2009-11-10 Synopsys, Inc. Flash-based anti-aliasing techniques for high-accuracy high efficiency mask synthesis
US8209161B2 (en) 2008-12-31 2012-06-26 Cadence Design Systems, Inc. Method, system, and computer program product for lithography simulation in electronic design automation
US8516402B1 (en) * 2011-08-22 2013-08-20 Cadence Design Systems, Inc. Method and apparatus for automatically fixing double patterning loop violations
US9679095B1 (en) * 2013-02-19 2017-06-13 Mentor Graphics, A Siemens Business Layout decomposition for multiple patterning lithography

Also Published As

Publication number Publication date
KR102545529B1 (ko) 2023-06-19
WO2016054477A1 (en) 2016-04-07
US10430543B2 (en) 2019-10-01
KR20170106952A (ko) 2017-09-22
US20160098511A1 (en) 2016-04-07

Similar Documents

Publication Publication Date Title
DE112015004558T5 (de) Matrixreduktion für die Lithografiesimulation
DE102018117836B4 (de) Verfahren zum Herstellen von Halbleitern und Verwendung von Ätzeffektvorhersagen
DE69824765T2 (de) Polygondarstellung im Layout eines integrierten Schaltkreises
DE102006037162B4 (de) Verfahren und Vorrichtung und deren Verwendung zur Prüfung des Layouts einer elektronischen Schaltung
KR101711695B1 (ko) 마스크 패턴의 결정 방법, 기록 매체, 및 정보 처리 장치
DE102014108739B4 (de) Layoutentwurfsverfahren für Doppelstrukturierung
DE102015200694A1 (de) Verfahren, computersystem und computerlesbares speichermedium zum erzeugen eines layouts eines integrierten schaltkreises
DE112016003554T5 (de) Vor-silizium entwurfsregelbewertung
DE102013106541A1 (de) System zum Entwerfen einer Halbleitervorrichtung, die hergestelle Vorrichtung und Verfahren zur Verwendung des Systems
DE102009038844A1 (de) Verfahren zur Abschätzung eines Leckstroms in einem Halbleiterbauelement
DE102016114812A1 (de) Mehrfachstrukturierungsverfahren für halbleiter-bauelemente
DE102019116952A1 (de) Integrierte-schaltkreis-struktur, layout-schaubild-verfahren und system
DE102021205714A1 (de) System und verfahren zum kombinieren von differenzierbaren partiellen differentialgleichungslösern und neuronalen graphennetzen zur fluidflussvorhersage
DE102018116911A1 (de) Verfahren zur Erzeugung von Quellcode
DE112011102331T5 (de) Verfahren zum schnellen Schätzen bindender Lithografiestrukturen in einem Layout einer integrierten Schaltung
DE102005003001B4 (de) Verfahren zur Korrektur des optischen Proximity-Effektes
EP3830660B1 (de) Verfahren und assistenzsystem zur parametrisierung eines anomalieerkennungsverfahrens
EP2245564B1 (de) Verfahren und system zur qualifizierung von cad-objekten
DE102020105745A1 (de) Werkzeuge und verfahren zur aerodynamischen optimierung dergeometrie von fahrzeugkarosserien
DE102019121285A1 (de) Systeme und Verfahren zur Lokalisierung systematischer Fehler mittels physical failure analysis (PFA)
DE102014113629A1 (de) Verfahren zur Erzeugung eines modifizierten Layouts für Parameterextraktion
DE112021003254T5 (de) Abgleichen von mustern in speicherarrays
DE102014019627A1 (de) Bestimmungsverfahren zur Widerstandskapazität für Mehrfachstrukturierungs
DE19626984C1 (de) Verfahren zur rechnergestützten Ermittlung einer Systemzusammenhangsfunktion
DE102015110656A1 (de) Verfahren und Vorrichtung zum Quantifizieren von Freimaßtoleranzen und der Prozessfähigkeit unabhängig von Bezugspunkten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication