DE102007018622A1 - Layout-Zellen, Layout-Zellenanordnung, Verfahren zum Erzeugen einer Layout-Zelle, Verfahren zum Erzeugen einer Layout-Zellenanordnung, Computerprogrammprodukte - Google Patents

Layout-Zellen, Layout-Zellenanordnung, Verfahren zum Erzeugen einer Layout-Zelle, Verfahren zum Erzeugen einer Layout-Zellenanordnung, Computerprogrammprodukte Download PDF

Info

Publication number
DE102007018622A1
DE102007018622A1 DE102007018622A DE102007018622A DE102007018622A1 DE 102007018622 A1 DE102007018622 A1 DE 102007018622A1 DE 102007018622 A DE102007018622 A DE 102007018622A DE 102007018622 A DE102007018622 A DE 102007018622A DE 102007018622 A1 DE102007018622 A1 DE 102007018622A1
Authority
DE
Germany
Prior art keywords
layout cell
layout
cell
child
geometric information
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.)
Ceased
Application number
DE102007018622A
Other languages
English (en)
Inventor
Matthias Koefferlein
Burkhard Ludwig
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.)
Qimonda AG
Original Assignee
Qimonda AG
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 Qimonda AG filed Critical Qimonda AG
Publication of DE102007018622A1 publication Critical patent/DE102007018622A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

Eine Layout-Zelle weist Layout-Zellen-Information auf, welche Information über mindestens eine Komponente aufweist. Ferner weist die Layout-Zelle einen Layout-Zellen-Identifikator auf, welcher die Layout-Zelle identifiziert. Der Layout-Zellen-Identifikator weist geometrische Informationen über die Layout-Zelle auf.

Description

  • Die Erfindung betrifft Layout-Zellen, eine Layout-Zellenordnung, ein Verfahren zum Erzeugen einer Layout-Zelle, ein Verfahren zum Erzeugen einer Layout-Zellenanordnung und Computerprogrammprodukte.
  • In einem modernen Entwurfssystem werden geometrische Layout-Daten in einer hierarchischen Form präsentiert. In diesem Fall werden üblicherweise Layout-Blöcke in Layout-Zellen gruppiert, welche in, dem Layout als Ganzes platziert werden können. Eine Layout-Zelle kann in diesem Zusammenhang transformiert und dupliziert werden. Die Verwendung von Layout-Zellen resultiert einerseits in einer Reduktion der Datenmenge, welche zu verarbeiten ist, und andererseits in einer Partitionierung des resultierenden Layouts. Das Partitionieren eines Layouts ermöglicht es, selbst komplexe Entwürfe zu verarbeiten mittels einer Abstraktion der Entwurfsaufgabe auf unterschiedliche Abstraktionsebenen.
  • Wenn die geometrischen Daten mittels eines externen Programms verarbeitet werden, beispielsweise in dem „Entwurfsregel-Überprüfen" ("Design Rule Check") oder einer Nachverarbeitung ("Post Processing"), tritt es im Allgemeinen häufig auf, dass die erzeugte Hierarchie in der Datenstruktur zerstört wird, da es erforderlich sein kann, Layout-Zellen in unterschiedlichen Umgebungen beispielsweise unterschiedlich zu adressieren. Dies würde die Abstraktion und die Datenstruktur einer Layout-Zellenanordnung zerstören. Das Zerstören der erzeugten Hierarchie in der Datenstruktur kann auch bezeichnet werden als das „Erzeugen von Varianten". Jedoch kann es wünschenswert sein, die Resultate der Verarbeitung der Datenstrukturen einer Layout-Zellenanordnung im Rahmen einer graphischen Darstellung mittels des externen Programms zu präsentieren, beispielsweise im Rahmen des ausgedruckten Layouts. Es kann beispielsweise wünschenswert sein, die Resultate des „Entwurfsregel-Überprüfens" in einem Layout-Editor anzuzeigen. In diesem Fall wäre es erforderlich, geometrische Information von einer modifizierten Hierarchie zurück zu transformieren in die „ursprüngliche Hierarchie".
  • Die Transformation, im Folgenden auch bezeichnet als Abbilden, der Hierarchieebenen wird üblicherweise durchgeführt unter Verwendung von Namen. Es wird angenommen, dass eine Layout-Zelle in einer eindeutigen Weise bezeichnet wird, und dass es möglich ist, auf die ursprüngliche Hierarchie zu schließen mittels des Namens der modifizierten Hierarchie.
  • Jedoch ist es nicht immer möglich, den Schluss auf die originale Hierarchie in einer korrekten Weise durchzuführen. Der Grund hierfür kann darin zu sehen sein, dass Layout-Zellennamen unter Umständen modifiziert werden müssen, beispielsweise auf Grund von Einschränkungen der verwendeten Dateiformate, oder dass spezifische Layout-Zellen mit identischen Namen in dem Layout in unterschiedlichen Ausführungsformen auftreten können (so genannte parametrisierbare Layout-Zellen).
  • Ein anderes Problem des Abbildens basierend auf den Layout-Zellennamen kann gesehen werden darin, dass eine geometrische Korrektheit in diesem Fall nicht garantiert ist. Die Geometrie wird bestimmt von der Instantiierung einer Layout-Zelle. Der Name der Layout-Zelle ist lediglich eine Orientierungsrichtlinie für den Nutzer.
  • Gemäß einem Ausführungsbeispiel der Erfindung wird eine Layout-Zelle bereitgestellt mit einer Layout-Zelleninformation, welche Information über mindestens eine Komponente aufweist. Die Layout-Zelle weist ferner einen Layout-Zellen-Identifikator auf, welcher die Layout-Zelle identifiziert, wobei der Layout-Zellen-Identifikator geometrische Information über die Layout-Zelle aufweist.
  • Gemäß einem anderen Ausführungsbeispiel der Erfindung wird eine Layout-Zellenanordnung bereitgestellt, mit einer Mehrzahl von Layout-Zellen, wobei jede Layout-Zelle Layout-Zelleninformation aufweist mit Information über mindestens eine Komponente. Ferner weist jede Layout-Zelle der Layout-Zellen einen Layout-Zellen-Identifikator auf, welcher die Layout-Zelle identifiziert, wobei der Layout-Zellen-Identifikator geometrische Information über die Layout-Zelle aufweist. Gemäß einem anderen Ausführungsbeispiel der Erfindung wird eine Layout-Zelle bereitgestellt mit Layout-Zelleninformation, welche aufweist Information über mindestens eine Komponente, sowie mit einem Layout-Zellen-Identifikator, welcher die Layout-Zelle identifiziert, wobei der Layout-Zellen-Identifikator mindestens einen Hash-wert einer geometrischen Information über die Layout-Zelle bezüglich einer anderen Layout-Zelle aufweist.
  • Gemäß einem anderen Ausführungsbeispiel der Erfindung wird ein Verfahren zum Herstellen einer Layout-Zelle bereitgestellt, bei dem Layout-Zelleninformation erzeugt wird mit Information über mindestens eine Komponente. Ferner wird ein Layout-Zellen-Identifikator erzeugt, welcher die Layout-Zelle identifiziert unter Verwendung von geometrischer Information über die Layout-Zelle.
  • Gemäß einem anderen Ausführungsbeispiel der Erfindung wird ein Verfahren zum Erzeugen einer Layout-Zellenanordnung bereitgestellt, bei der mindestens eine Eltern-Layout-Zelle erzeugt wird. Ferner wird mindestens eine Kinder-Layout-Zelle der mindestens einen Eltern-Layout-Zelle erzeugt. Weiterhin wird ein Layout-Zellenanordnungs-Identifikator erzeugt, welcher die Layout-Zellenanordnung identifiziert unter Verwendung von geometrischer Information über die Kind-Layout-Zelle.
  • Gemäß noch einem anderen Ausführungsbeispiel der Erfindung wird ein Verfahren zum Erzeugen einer Layout-Zellenanordnung bereitgestellt, bei der mindestens eine Eltern-Layout-Zelle erzeugt wird und mindestens eine Kind-Layout-Zelle der mindestens einen Eltern-Layout-Zelle erzeugt wird. Ferner wird ein Layout-Zellenanordnungs-Identifikator erzeugt, welcher die Layout-Zellenanordnung identifiziert unter Verwendung von geometrischer Information über die Kind-Layout-Zelle, wobei die mindestens eine Eltern-Layout-Zelle die mindestens eine Kind-Layout-Zelle mittels eines Transformations-Operators referenziert.
  • Gemäß einem anderen Ausführungsbeispiel der Erfindung wird ein Verfahren zum Erzeugen einer Layout-Zellenanordnung bereitgestellt, bei dem mindestens eine Eltern-Layout-Zelle erzeugt wird sowie mindestens eine Kind-Layout-Zelle der mindestens einen Eltern-Layout-Zelle. Ferner wird ein Layout-Zellenanordnungs-Identifikator erzeugt, welcher die Layout-Zellenanordnung identifiziert unter Verwendung von geometrischer Information über die Kind-Layout-Zelle der mindestens einen Eltern-Layout-Zelle, wobei die mindestens eine Kind-Layout-Zelle referenziert wird unter Verwendung einer zugehörigen Datenstruktur.
  • Ferner werden Computerprogrammprodukte bereitgestellt, welche bei deren Ausführung mittels eines Prozessors die jeweiligen Schritte der oben beschrieben Verfahren aufweisen.
  • Gemäß einem Ausführungsbeispiel der Erfindung wird anschaulich eine Layout-Zelle bereitgestellt, welche mit garantierter geometrischer Korrektheit abgebildet bzw. transformiert werden kann.
  • Beispielhafte Ausgestaltungen der Erfindung ergeben sich aus den abhängigen Ansprüchen.
  • Die beschriebenen Ausgestaltungen der Erfindung betreffen, soweit sinnvoll, die Layout-Zellen, die Layout-Zellenanordnungen, die Verfahren zum Erzeugen einer Layout-Zelle sowie die Verfahren zum Erzeugen einer Layout-Zellenanordnung.
  • Gemäß einem Ausführungsbeispiel der Erfindung weist die mindestens eine Komponente eine elektronische Komponente auf.
  • Die Layout-Zelle kann eine Layout-Zelle eines elektronischen Schaltkreises aufweisen.
  • Beispielsweise weist die Layout-Zelle eine Layout-Zelle eines elektronischen Speicher-Schaltkreises auf.
  • Alternativ oder zusätzlich kann die Layout-Zelle eine Layout-Zelle eines elektronischen Logik-Schaltkreises aufweisen.
  • Die mindestens eine Komponente kann eine Komponente sein, ausgewählt aus einer Gruppe von elektronischen Komponenten bestehend aus:
    • – mindestens einem Kontakt;
    • – mindestens einer Leiterbahn;
    • – mindestens einer elektrisch nicht-aktiven Komponente;
    • – mindestens einer Alignment-Markierung;
    • – mindestens einem Widerstand;
    • – mindestens einem Kondensator;
    • – mindestens einer Induktivität;
    • – mindestens einem Transistor;
    • – mindestens einer Speicherzelle; und
    • – jeder beliebigen Kombination der oben beschriebenen Komponenten.
  • Der Layout-Zellen-Identifikator kann mindestens einen Hash-Wert der geometrischen Information über die Layout-Zelle enthalten.
  • Weiterhin kann die geometrische Information über die Layout-Zelle geometrische Information bezüglich einer anderen Layout-Zelle aufweisen.
  • Gemäß einer anderen Ausgestaltung der Erfindung ist es vorgesehen, dass der Layout-Zellen-Identifikator einen eindeutigen Identifikator der Layout-Zelle aufweist.
  • Die geometrische Information über die Layout-Zelle kann geometrische Information von mindestens einer Eigenschaft der folgenden Eigenschaften der Layout-Zelle enthalten:
    • – eine Position der Layout-Zelle;
    • – eine Versetzung der Layout-Zelle;
    • – eine Rotation der Layout-Zelle; und
    • – eine Spiegelung der Layout-Zelle.
  • Die Layout-Zellen können hierarchisch in der Layout-Zellenanordnung angeordnet sein, wobei die Layout-Zellenanordnung mindestens eine Eltern-Layout-Zelle und mindestens eine Kind-Layout-Zelle aufweist.
  • Die geometrische Information über eine Kind-Layout-Zelle kann geometrische Information bezüglich einer anderen Kind-Layout-Zelle enthalten.
  • Ferner kann die geometrische Information über eine Kind-Layout-Zelle geometrische Information bezüglich einer Eltern-Layout-Zelle enthalten.
  • Gemäß einer anderen Ausgestaltung der Layout-Zellenanordnung kann es vorgesehen sein, dass eine Mehrzahl von Kind-Layout-Zellen vorgesehen sind, wobei mindestens zwei Kind-Layout- Zellen der Mehrzahl von Kind-Layout-Zellen derselben Eltern-Layout-Zelle sind.
  • Der Layout-Zellen-Identifikator kann einen eindeutigen Identifikator der jeweiligen Layout-Zelle aufweisen.
  • Ferner kann der Layout-Zellen-Identifikator mindestens einen Hash-Wert der geometrischen Information über die jeweilige Layout-Zelle enthalten.
  • Die geometrische Information über die Layout-Zelle kann geometrische Information über mindestens eine der folgenden Eigenschaften über die Layout-Zelle aufweisen:
    • – eine Position der Kind-Layout-Zelle innerhalb der Eltern-Layout-Zelle;
    • – eine Versetzung der Kind-Layout-Zelle innerhalb der Eltern-Layout-Zelle bezüglich einer Referenz-Position;
    • – eine Rotation der Kind-Layout-Zelle innerhalb der Eltern-Layout-Zelle; und/oder
    • – eine Spiegelung der Kind-Layout-Zelle innerhalb der Eltern-Layout-Zelle.
  • Beim Erzeugen des Layout-Zellenanordnungs-Identifikators kann mindestens ein Hash-Wert der geometrischen Information über die Kind-Layout-Zelle ermittelt werden.
  • Weiterhin kann es zum Bestimmen des mindestens einen Hash-Werts der geometrischen Information über die Kind-Layout-Zelle vorgesehen sein, dass ein erster Teil-Hash-Wert der geometrischen Information über die Kind-Layout-Zelle bestimmt wird, und dass ein zweiter Teil-Hash-Wert der geometrischen Information über die Eltern-Layout-Zelle und den ersten Teil-Hash-Wert ermittelt wird.
  • Weiterhin kann das Ermitteln des mindestens einen Hash-Werts durchgeführt werden unter Verwendung einer Einweg-Hash-Funktion.
  • Der mindestens eine Hash-Wert kann einen Vektor mit zwei Dimensionen aufweisen.
  • Weiterhin kann es vorgesehen sein, dass der Transformations-Operator ein kommutativer Transformations-Operator ist oder einen solchen aufweist.
  • Ferner kann der Transformations-Operator einen assoziativen Transformations-Operator aufweisen oder ein solcher sein.
  • Der Transformations-Operator kann sein mindestens einer der folgenden Operatoren:
    • – ein Summen-Operator;
    • – ein Exklusiv-ODER-Operator; oder
    • – ein Multiplikations-Operator.
  • Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im Folgenden näher erläutert.
  • Es zeigen
  • 1 eine Computereinrichtung mit einem Integrierter-Schaltkreis-Layout-Entwurfs-Werkzeug und einem Integrierter-Schaltkreis-Layout-Verifikations-Werkzeug gemäß einem Ausführungsbeispiel der Erfindung;
  • 2 ein Diagramm, in welchem die Rück-Transformation von Layout-Verifikationsdaten in Layout-Entwurfsdaten gemäß einem Ausführungsbeispiel der Erfindung dargestellt ist;
  • 3A eine Layout-Zellenanordnung gemäß einem Ausführungsbeispiel der Erfindung;
  • 3B die Layout-Zellenanordnung gemäß 3A in einer Graphen-Repräsentation gemäß einem Ausführungsbeispiel der Erfindung;
  • 4A eine modifizierte Layout-Zellenanordnung gemäß einem Ausführungsbeispiel der Erfindung;
  • 4B die modifizierte Layout-Zellenanordnung gemäß 4A in einer Graphen-Darstellung gemäß einem Ausführungsbeispiel der Erfindung;
  • 5 ein Ablaufdiagramm, in welchem ein beispielhafter Layout-Entwurfsprozess gemäß einem Ausführungsbeispiel der Erfindung dargestellt ist;
  • 6 ein Ablaufdiagramm, in dem ein beispielhafter Layout-Verifikationsprozess gemäß einem Ausführungsbeispiel der Erfindung dargestellt ist;
  • 7 ein Ablaufdiagramm, in dem ein beispielhaftes Verfahren zum Erzeugen einer Entwurfs-Layout-Zelle gemäß einem Ausführungsbeispiel der Erfindung dargestellt ist;
  • 8 ein Ablaufdiagramm, in dem ein beispielhaftes Verfahren zum Erzeugen einer Entwurfs-Layout-Zellenanordnung gemäß einem Ausführungsbeispiel der Erfindung dargestellt ist;
  • 9A eine Layout-Zellenanordnung gemäß einem Ausführungsbeispiel der Erfindung; und
  • 9B die Layout-Zellenanordnung gemäß 9A in einer Graphen-Darstellung gemäß einem Ausführungsbeispiel der Erfindung.
  • Im Rahmen dieser Beschreibung werden die Begriffe "verbunden", "angeschlossen" sowie "gekoppelt" verwendet zum Beschreiben sowohl einer direkten als auch einer indirekten Verbindung, eines direkten oder indirekten Anschlusses sowie einer direkten oder indirekten Kopplung. In den Figuren werden identische oder ähnliche Elemente mit identischen Bezugszeichen versehen, soweit dies zweckmäßig ist.
  • In den folgenden Ausführungsbeispielen werden Verfahren und Vorrichtungen beschrieben mit Bezug auf das Herstellen von integrierten Schaltkreisen. Es ist jedoch darauf hinzuweisen; dass die beschriebenen Techniken angewendet werden können auf die Herstellungsprozesse und/oder Entwurfsprozesse zum Herstellen und/oder Entwerfen einer jeden integrierten Einrichtung. Integrierte Einrichtungen enthalten integrierte Schaltkreise, Mikromaschinen, Dünnschichtstrukturen wie beispielsweise Plattenlaufwerksköpfe, Biochips wie beispielsweise Gen-Chips, mikroelektromechanische Systeme (MEMS) oder jedes andere Produkt, welches unter Verwendung von Lithographietechniken hergestellt wird.
  • In einem Ausführungsbeispiel der Erfindung ist die Layout-Zelle eine Layout-Zelle eines elektronischen Schaltkreises, beispielsweise eine Layout-Zelle eines elektronischen Speicher-Schaltkreises, alternativ beispielsweise eine Layout-Zelle eines elektronischen Logik-Schaltkreises.
  • Die mindestens eine Komponente kann ausgewählt sein aus einer Gruppe von Komponenten, beispielsweise elektronischen Komponenten, wobei die Gruppe von Komponenten besteht aus mindestens einem Kontakt, mindestens einer Leiterbahn, mindestens einer elektrischen nicht-aktiven Komponente wie beispielsweise mindestens einer Alignment-Markierung, mindestens einem Widerstand, mindestens einer Kapazität, mindestens einer Induktivität, mindestens einem Transistor, oder mindestens einer Speicherzelle oder einer beliebigen Kombination der oben beschriebenen Komponenten.
  • Die verschiedenen Ausführungsbeispiele der Erfindung können in Software implementiert werden, d.h. beispielsweise mittels eines oder einer Mehrzahl entsprechend eingerichteter Computerprogramme, in Hardware, d.h. mittels einer oder mehrerer entsprechend eingerichteter elektronischer Schaltkreise oder in jeder beliebigen hybriden Form, d.h. in beliebigen Teilen, teilweise in Software und teilweise in Hardware.
  • l zeigt eine Computereinrichtung 100 gemäß einem Ausführungsbeispiel der Erfindung, wobei die Computereinrichtung 100 eine zentrale Verarbeitungseinheit (Central Processing Unit, CPU) 102 sowie eine Graphik-Verarbeitungseinheit 104 aufweist. Die Verarbeitungseinheiten 102, 104 weisen beide mindestens jeweils einen Mikroprozessor auf. Die zentrale Verarbeitungseinheit 102 wird verwendet und ist eingerichtet zum Durchführen der allgemeinen Aufgaben und die optionale Graphik-Verarbeitungseinheit 104 wird verwendet und ist eingerichtet zum Ausführen der speziellen Graphik-Berechnungs-orientierten Aufgaben, beispielsweise für den Einsatz in einem computerunterstützten (Computer Aided Design, CAD)-Layout-Entwurfsprozess zum Ermitteln des Layouts eines integrierten Schaltkreises zum anschließenden Herstellen des entwickelten Schaltkreises auf einem Wafer, beispielsweise einem Halbleiter-Wafer, beispielsweise einem Silizium-Wafer.
  • Die Computereinrichtung 100 kann ein Personal Computer sein oder eine Workstation, in alternativen Ausführungsformen kann die Computereinrichtung 100 gebildet werden von einer Mehrzahl von Computern, welche miteinander gekoppelt sein können, beispielsweise mittels eines lokalen Netzwerks (Local Area Network, LAN) oder eines Weitverkehrsnetz-Netzwerks (Wide Area Network, WAN).
  • Die Computereinrichtung 100 gemäß einem Ausführungsbeispiel der Erfindung weist einen Nur-Lese-Speicher (ROM) 106 auf zum Speichern der Hochfahr-Routinen der Computereinrichtung 100. Ferner sind eine Mehrzahl von Vielfachzugriffsspeichern (flüchtig wie auch nicht-flüchtig) (RAM) vorgesehen, gemäß einem Ausführungsbeispiel der Erfindung mit einem ersten Vielfachzugriffsspeicher 108 zum Speichern des Programm-Codes der Computergramme der jeweiligen Layout-Prozesse, welche im Folgenden näher erläutert werden, und einem zweiten Vielfachzugriffsspeicher 110 zum Speichern der Daten, welche von den Computerprogrammen der jeweiligen Layout-Prozesse, welche im Folgenden näher erläutert werden, verwendet werden.
  • Ferner weist die Computereinrichtung 100 gemäß einem Ausführungsbeispiel der Erfindung ein Layout-Entwurfs-Werkzeug oder eine Mehrzahl von Layout-Entwurfs-Werkzeugen 112 (wie gewünscht) auf, welche die jeweiligen Layout-Entwurfsprozesse bereitstellen, welche im Folgenden näher erläutert werden, und ein Layout-Verifikations-Werkzeug oder eine Mehrzahl von Layout-Verifikations-Werkzeugen 114 (wie gewünscht), welche die jeweiligen Layout-Verifikationsprozesse bereitstellen, welche im Folgenden näher erläutert werden.
  • Die Komponenten der oben beschriebenen Computereinrichtung 100 sind miteinander mittels eines Datenbusses oder mittels einer Mehrzahl von Datenbussen und/oder mittels eines Steuerbusses oder einer Mehrzahl von Steuerbussen 116 gekoppelt.
  • Mittels einer Eingabe/Ausgabe-Schnittstelle oder mittels einer Mehrzahl von Eingabe/Ausgabe-Schnittstellen 118, welche ebenfalls in der Computereinrichtung 100 vorgesehen ist/sind, ist die Computereinrichtung 100 mit mehreren Peripherieeinheiten verbunden, beispielsweise mit einer Anzeige 120, einer Tastatur 122 und/oder einer Computermaus 124. Es ist anzumerken, dass jede beliebige andere Eingabeeinrichtung (wie beispielsweise ein Trackball, ein Touchscreen, etc.) oder Ausgabeeinrichtung (wie beispielsweise ein Drucker, Lautsprecher, etc.) in einer alternativen Ausführungsform der Erfindung vorgesehen sein können.
  • Wenn ein integrierter Schaltkreis entwickelt wird, ist ein Zugangspunkt in dem Entwurfsablauf ein RTL (Register-Transistor-Logik)-Modell 202 (siehe Blockdiagramm 200 in 2) eines elektronischen Entwurfs oder eines elektronischen Systems. Die physikalische Implementierung des elektronischen Entwurfs kann dann ein integrierter Schaltkreis sein (IC), ein Teil eines integrierten Schaltkreises, oder mehrere integrierte Schaltkreise auf einer Platine.
  • Das RTL-Modell 202 beschreibt die Funktion des elektronischen Systems unter Verwendung einer Hardware-Beschreibungssprache (Hardware Description Language, HDL) wie beispielsweise Verflog oder VHDL. Das RTL-Modell 202 kann entweder direkt von dem System-Designer geschrieben werden oder kann von einem Verhaltensmodell erzeugt werden unter Verwendung einer Verhaltenssynthese. Zusätzlich kann das RTL-Modell 202 direkt aus internen Datenstrukturen eines Verhaltensmodells extrahiert werden, ohne dass eine RTL-Modell-Konstruktion durchgeführt wird.
  • Unter Verwendung des RTL-Modells 202 als Eingangsdaten wird ein Layout-Entwurfsprozess 204 durchgeführt, welcher im Folgenden näher erläutert wird. Der Layout-Entwurfsprozess 204 wird durchgeführt von dem einen Layout-Entwurfs-Werkzeug oder der Mehrzahl von Layout-Entwurfs-Werkzeugen 112 in einer Layout-Entwurfsumgebung. Als ein Ergebnis des Layout-Entwurfsprozesses 204 werden exportierte Layout-Entwurfsdaten (beispielsweise eine Layout-Entwurfsdatei) 206 von dem einen Layout-Entwurfs-Werkzeug oder von der Mehrzahl von Layout-Entwurfs-Werkzeugen 112 bereitgestellt.
  • Die exportierten Layout-Entwurfsdaten 206 werden in ein Layout-Verarbeitungs-Werkzeug eingegeben, beispielsweise in einen Layout-Verifikationsprozess 208, welcher im Folgenden näher erläutert wird. Der Layout-Verifikationsprozess 208 wird durchgeführt von dem einen Layout-Verifikations-Werkzeug oder von der Mehrzahl von Layout-Verifikations-Werkzeugen 114.
  • In einem Ausführungsbeispiel der Erfindung wird angenommen, dass ein Ergebnis des Layout-Verifikationsprozesses 208, auch bezeichnet als Layout-Verifikations-Ergebnisdaten 210 (beispielsweise eine Layout-Verifikations-Ergebnisdatei) rückgekoppelt werden sollen in den Layout-Entwurfsprozess 204. Ferner wird angenommen, dass der Layout-Verifikationsprozess 208 mindestens einen Teil der Struktur, beispielsweise der hierarchischen Struktur, der exportierten Layout-Entwurfsdaten 206 zerstört oder zumindest verändert, so dass die Layout-Verifikations-Ergebnisdaten 210 nicht wieder direkt von dem Layout-Entwurfs-Werkzeug oder der von der Mehrzahl von Layout-Entwurfs-Werkzeugen 112 verwendet werden können.
  • Deshalb wird eine Rück-Transformation 212 vorgesehen zum Transformieren der Layout-Verifikations-Ergebnisdaten 210 in ein Format, welches von dem einen Layout-Entwurfs-Werkzeug oder von der Mehrzahl von Layout-Entwurfs-Werkzeugen 112 verarbeitet werden kann.
  • Beispielsweise kann es erforderlich sein, die Hierarchien der Layout-Zellen-Instanzen einer Mehrzahl von Layout-Zellen abzubilden, allgemein kann es erforderlich sein, die Beziehungen zwischen mehreren Layout-Zellen-Instanzen einer Mehrzahl von Layout-Zellen abzubilden. Für den Fall, dass das Format der Daten, welche in das Layout-Entwurfs-Werkzeug oder in die Mehrzahl von Layout-Entwurfs-Werkzeugen 112 eingegeben werden, kompatibel ist, kann der Nutzer des einen Layout- Entwurfs-Werkzeugs oder der Mehrzahl von Layout-Entwurfs-Werkzeugen 112 die Daten in einer graphischen Darstellung auf der Anzeigeeinheit 120 betrachten und ist in der Lage, die dargestellten Daten in einer zweckmäßigen Weise zu verarbeiten unter Verwendung eines „CAD"-Werkzeugs, nämlich des einen Layout-Entwurfs-Werkzeug oder der Mehrzahl von Layout-Entwurfs-Werkzeugen 112.
  • Auf diese Weise verwendet die Rück-Transformation 212 die Layout-Verifikations-Ergebnisdaten 210 als ihre Eingabe und bildet sie ab auf transformierte Layout-Verifikations-Ergebnisdaten 214, welche dann eingegeben werden in das eine Layout-Entwurfs-Werkzeug oder die Mehrzahl von Layout-Entwurfs-Werkzeugen 112, in anderen Worten, in den Layout-Entwurfsprozess 204.
  • Beispielsweise sind die Layout-Verifikations-Ergebnisdaten 210 Daten, welche aus einem Entwurfs-Regel-Überprüfen resultieren, welches durchgeführt wird in dem Layout-Verifikationsprozess 208. Die Ergebnisse des Entwurfs-Regel-Überprüfens sollten in dem Layout-Editor des einen Layout-Entwurfs-Werkzeugs oder der Mehrzahl von Layout-Entwurfs-Werkzeugen 112 dargestellt werden.
  • 3A zeigt ein Beispiel einer Layout-Zellenanordnung 300 mit einer Hierarchie einer Mehrzahl von Layout-Zellen-Instanzen. Eine Layout-Zellen-Instanz ist eine konkrete Instantiierung einer Layout-Zelle. Mit anderen Worten wird eine Layout-Zelle beschrieben unter Verwendung der allgemeinen Form der Layout-Zelle und die Komponenten, welche in der Layout-Zelle enthalten sind, enthalten Parameter, mit denen es möglich ist, die konkrete Länge, Breite, allgemein gesprochen, die Größe einer jeweiligen instantiierten Layout-Zelle, d.h. der Layout-Zellen-Instanz, zu variieren.
  • In einem Ausführungsbeispiel der Erfindung weist die Layout-Zellenanordnung 300 eine Mehrzahl von Hierarchieebenen auf, beispielsweise drei Layout-Zellen-Hierarchieebenen 302, 304, 306, wobei jede Layout-Zellen-Hierarchieebene 302, 304, 306 mindestens eine Layout-Zellen-Instanz aufweist.
  • Jede Layout-Zellen-Instanz der Mehrzahl von Layout-Zellen-Instanzen weist eine Beschreibung mindestens einer Komponente auf, beispielsweise mindestens einer elektronischen Komponente, welche in der Layout-Zellen-Instanz enthalten ist, die Form der mindestens einen Komponente, die Anordnung der mindestens einen Komponente innerhalb der Layout-Zellen-Instanz, die jeweilige Eigenschaft, beispielsweise elektrischen Eigenschaften, der mindestens einen Komponente.
  • Wie beschrieben wurde, kann die mindestens eine Komponente eine nicht-elektronische Komponente oder eine elektronische Komponente sein. Es ist anzumerken, dass ferner eine oder mehr nicht-elektronische Komponenten und eine oder mehr elektronische Komponenten in einer Layout-Zellen-Instanz vorgesehen sein können.
  • Beispielsweise kann die nicht-elektronische Komponente ein elektrischer Kontakt oder eine Leiterbahn oder eine elektrisch nicht-aktive Komponente wie beispielsweise eine Alignment-Markierung sein.
  • Die mindestens eine elektronische Komponente in einer Layout-Zelle kann eine oder mehr der folgenden elektronischen Komponenten sein:
    • – mindestens ein Widerstand;
    • – mindestens ein Kondensator;
    • – mindestens eine Induktivität;
    • – mindestens ein Transistor;
    • – mindestens eine Speicherzelle,
    • – eine Kombination der oben beschriebenen Komponenten.
  • In einem Ausführungsbeispiel der Erfindung weist die unterste Layout-Zellen-Hierarchieebene 302 der Layout-Zellenanordnung 300 drei Layout-Zellen-Instanzen 308 der ersten Ebene auf, wobei jede Layout-Zellen-Instanz 308 der ersten Ebene einen Transistor 310 aufweist, welcher in der jeweiligen Layout-Zellen-Instanz 308 der ersten Ebene angeordnet ist und eine L-Form aufweist. Jede Layout-Zellen-Instanz 308 der ersten Ebene der Mehrzahl von Layout-Zellen-Instanzen 308 der ersten Ebene weist ferner die Information über die Position des Transistors 310 innerhalb des Körpers der Layout-Zellen-Instanz 308 der ersten Ebene auf. Die Layout-Zellen-Instanzen 308 der ersten Ebene werden auch mit dem Symbol „A" bezeichnet.
  • Ferner weist die mittlere Layout-Zellen-Hierarchieebene 304 eine zweite Layout-Zellen-Instanz 312 auf, welche ihrerseits zwei Layout-Zellen-Instanzen 308 der ersten Ebene enthält, welche nebeneinander angeordnet sind. Der zweiten Layout-Zellen-Instanz 312 ist die Information zugeordnet, dass sie zwei erste Layout-Zellen-Instanzen 308 enthält und die räumliche Information hinsichtlich ihrer Anordnung oder Position innerhalb des Körpers der zweiten Layout-Zellen-Instanz 312, anders ausgedrückt, der Layout-Zellen-Instanz 312 der zweiten Ebene (in 3A symbolisiert mittels erster Pfeile 316). In diesem Ausführungsbeispiel der Erfindung wird die räumliche Information angezeigt unter Verwendung des untersten linken Punktes der zweiten Layout-Zellen-Instanz 312 als Referenzposition (in anderen Worten als die Ursprungskoordinate der zweiten Layout-Zellen-Instanz 312) und unter Verwendung einer relativen räumlichen Informationsanzeige. Die Layout-Zellen-Instanz 312 der zweiten Ebene wird auch mit dem Symbol „B" bezeichnet.
  • Die oberste Layout-Zellen-Hierarchieebene 306 weist eine dritte Layout-Zellen-Instanz 314 auf, welche die zweite Layout-Zellen-Instanz 312 enthält sowie die dritte der ersten Layout-Zellen-Instanzen 308, welche nicht in die zweite Layout-Zellen-Instanz 312 gruppiert worden ist, wobei die zweite Layout-Zellen-Instanz 312 und die dritte der ersten Layout-Zellen-Instanzen 308 nebeneinander angeordnet sind. Der dritten Layout-Zellen-Instanz 314 ist die Information zugeordnet, dass die dritte Layout-Zellen-Instanz 314 die zweite Layout-Zellen-Instanz 312 enthält sowie die dritte der ersten Layout-Zellen-Instanzen 308, sowie die räumliche Information hinsichtlich ihrer Anordnung oder Positionierung innerhalb des Körpers der dritten Layout-Zellen-Instanz 314, anders ausgedrückt der Layout-Zellen-Instanz 314 der dritten Ebene (in 3A symbolisiert mittels zweiter Pfeile 318). In diesem Ausführungsbeispiel der Erfindung wird die räumliche Information angezeigt unter Verwendung des untersten linken Punktes der dritten Layout-Zellen-Instanz 314 als eine Referenzposition (mit anderen Worten als die Ursprungskoordinate der dritten Layout-Zellen-Instanz 314) und unter Verwendung einer relativen räumlichen Informationsanzeige. Die dritte Layout-Zellen-Instanz 314 wird auch bezeichnet mit dem Symbol „TOP".
  • 3B zeigt einen Layout-Zellen-Baum 350 der Layout-Zellenanordnung 300 aus 3A. Der Layout-Zellen-Baum 350 weist drei Schichten entsprechend den oben beschriebenen Ebenen auf, wobei die Layout-Zellen-Instanz 314 der dritten Ebene „TOP" den Wurzelknoten des Layout-Zellen-Baums 350 darstellt. Die Layout-Zellen-Instanz 312 der zweiten Ebene „B" und die dritte Layout-Zellen-Instanz 308 der Layout-Zellen-Instanz 308 der ersten Ebene „A" sind in der mittleren Schicht des Layout-Zellen-Baums 350 positioniert. Die erste Layout-Zellen-Instanz 308 und die zweite Layout-Zellen-Instanz 308 der Layout-Zellen-Instanzen 308 der ersten Ebene „A" sind in der untersten Schicht des Layout-Zellen-Baums 350 angeordnet. Die Beziehung zwischen den Layout-Zellen-Instanzen 308, 312, 314 der unterschiedlichen Ebenen werden symbolisiert mittels Pfeilen, wobei jeder Pfeil (auch bezeichnet als eine gerichtete Kante) bedeutet, dass die Layout-Zellen-Instanz einer Ebene, welche angeordnet ist an dem Beginn eines Pfeils die jeweilige Layout-Zellen-Instanz der Ebene enthält, welche Layout-Zellen-Instanz an dem Ende des Pfeils angeordnet ist.
  • Die Layout-Zellenanordnung 300 aus 3A ist, wie oben beschrieben worden ist, ein Beispiel der exportierten Layout-Entwurfsdaten 206.
  • 4A zeigt ein Beispiel einer modifizierten Layout-Zellenanordnung, welche der Layout-Zellenanordnung 300 aus 3A entspricht, wobei die mittlere Layout-Zellen-Hierarchieebene 304 mit der Layout-Zellen-Instanz 312 der zweiten Ebene „B" entfernt worden ist. Bis auf diesen Unterschied ist die modifizierte Layout-Zellenanordnung 400 gleich der Layout-Zellenanordnung 300 aus 3A und deshalb werden die identischen Elemente hier nicht erneut beschrieben. Die modifizierte Layout-Zellenanordnung 400 aus 4A ist, wie oben beschrieben worden ist, ein Beispiel der Layout-Verifikations-Ergebnisdaten 210.
  • Ferner weisen die Layout-Zellen-Instanzen 308 der ersten Ebene „A" Information auf (in 4A symbolisiert mittels eines Rechtecks 402), dass sie Gegenstand der Rück-Transformation 212 sind und abgebildet werden sollen derart, dass diese Information und damit auch die gesamten Layout-Verifikations-Ergebnisdaten 210 beispielsweise verarbeitet werden können mittels des einen Layout-Entwurfs-Werkzeugs oder der Mehrzahl von Layout-Entwurfs-Werkzeugen 112. Es ist anzumerken, dass die räumliche Information über die Anordnung der Layout-Zellen-Instanzen 308 der ersten Ebene innerhalb der Layout-Zellen-Instanz 312 der zweiten Ebene und die räumliche Information über die Anordnung der Layout-Zellen-Instanz 312 der zweiten Ebene innerhalb der Layout-Zellen-Instanz 314 der dritten Ebene ersetzt worden ist mit räumlicher Information über die Anordnung der Layout-Zellen-Instanzen 308 der ersten Ebene innerhalb der Layout-Zellen-Instanz 314 der dritten Ebene (in 4A symbolisiert mittels dritter Pfeile 404). In diesem Ausführungsbeispiel der Erfindung wird die räumliche Information angezeigt unter Verwendung des untersten linken Punktes der Layout-Zellen-Instanz 314 der dritten Ebene als Referenzposition (in anderen Worten als Ursprungskoordinate der Layout-Zellen-Instanz 314 der dritten Ebene) und unter Verwendung einer relativen räumlichen Informationsanzeige.
  • 4B zeigt einen modifizierten Layout-Zellen-Baum 450 der modifizierten Layout-Zellenanordnung 400 aus 4A. Der modifizierte Layout-Zellen-Baum 450 weist nun nurmehr zwei Schichten auf entsprechend den oben beschriebenen Ebenen (es ist anzumerken, dass die mittlere Schicht entfernt worden ist), wobei die Layout-Zellen-Instanz 314 der dritten Ebene „TOP" den Wurzelknoten des modifizierten Layout-Zellen-Baums 450 repräsentiert. Die drei Layout-Zellen-Instanzen 308 der ersten Ebene „A" sind in der obersten Schicht des modifizierten Layout-Zellen-Baums 450 angeordnet. Die Beziehung zwischen den Layout-Zellen-Instanzen 308, 314 der beiden Ebenen wird mittels Pfeilen symbolisiert, wobei jeder Pfeil (auch bezeichnet als eine gerichtete Kante) bedeutet, dass die Layout-Zellen-Instanz derjenigen Ebene, welche Layout-Zellen-Instanz an dem Beginn des Pfeils angeordnet ist, die jeweilige Layout-Zellen-Instanz derjenigen Ebene enthält, welche Layout-Zellen-Instanz an dem Ende des Pfeils angeordnet ist.
  • 5 zeigt ein Ausführungsbeispiel des Layout-Entwurfs-Prozesses 204 gemäß einem Ausführungsbeispiel der Erfindung.
  • Als ein Beispiel wird ein Schritt durchgeführt (Schritt 502) aufweisend ein Entwerfen und Platzieren der Komponenten und der Layout-Zellen-Instanzen, wobei die Komponenten und die Layout-Zellen-Instanzen erzeugt und platziert werden, wie benötigt, unter Verwendung eines vorbestimmten Grundrisses und gemäß den Layout-Richtlinien, welche für den jeweilig zu entwerfenden integrierten Schaltkreis vorgesehen sind, und gemäß der jeweiligen Technologie, die zum Herstellen des integrierten Schaltkreises verwendet wird.
  • Dann wird ein Schritt "Berücksichtigen spezieller Entwurfsanforderungen" durchgeführt (Schritt 502), wobei kritische Elemente und Methodikelemente berücksichtigt werden und die Platzierung der Layout-Zellen-Instanzen beispielsweise verfeinert wird.
  • Schließlich werden die Verbindungen zwischen den Layout-Zellen-Instanzen vervollständigt (Schritt 506).
  • 6 zeigt ein Ausführungsbeispiel des Layout-Verifikationsprozesses 208.
  • Als ein Beispiel wird ein Schritt durchgeführt, welcher ein Überprüfen von Entwurfsregeln (Entwurfsregeln-Überprüfung, Design Rules Check, DRC) durchgeführt mittels des einen Layout-Verifikations-Werkzeugs oder mittels der Mehrzahl von Layout-Verifikations-Werkzeuge 114. Der Entwurfsregel-Verifikationsschritt (Schritt 602) überprüft, ob alle Polygone der Layout-Zellen-Instanzen und alle Schichten einer vordefinierten und gespeicherten Layout-Datenbank alle vordefinierten Herstellungs-Prozessregeln erfüllen. Die Entwurfsregeln definieren die Grenzen eines herstellbaren Entwurfs inklusive Breiten-Regeln und Zwischenraum-Regeln. In einem Ausführungsbeispiel der Erfindung werden verschiedene Methodiken, Verbindungen und Entwurfsregeln ebenfalls überprüft.
  • Dem Entwurfsregeln-Überprüfen nachfolgend wird ein Schritt durchgeführt „Layout gegen Schaltbild-Verifikation" (Layout versus Schematic verification, LVS) (Schritt 604), wobei in diesem Schritt überprüft wird, ob der Entwurf korrekt verschaltet ist. Das Schaltbild ist der Referenz-Schaltkreis und das Layout wird gegen diesen geprüft. Beispielsweise wird das Folgende verifiziert:
    • – elektrische Verbindbarkeit aller Signale, einschließlich Eingangssignale, Ausgangssignale und Energiesignale mit ihren entsprechenden Einrichtungen (beispielsweise elektronischen Komponenten).
    • – Einrichtungs-Größen: Transistorweite und Transistorlänge, Widerstandsgrößen, Kondensatorgrößen.
    • – Identifikation von zusätzlichen Komponenten und Signalen, welche nicht in dem Schaltbild enthalten waren, beispielsweise schwebende Knoten (floating Knoten).
  • Dann wird optional eine Überprüfung elektrischer Regeln (Electrical Rules Check) durchgeführt (Schritt 606). Überprüfte elektrische Regeln können beschränkt sein auf Fehler in der Verschaltung von einer Einrichtung einschließlich beispielsweise:
    • – nicht verbundene, teilweise verbundene oder zusätzliche Einrichtungen;
    • – deaktivierte Transistoren;
    • – schwebende Knoten;
    • – Kurzschlüsse;
    • – spezielle Überprüfungen, die an anderer Stelle nicht überprüft werden, beispielsweise das Überprüfen von Antennen-Regeln.
  • Dann kann der Entwurf gedruckt werden und visuell inspiziert, anders ausgedrückt, überprüft werden (Schritt 608). Eine visuelle Überprüfung wird gegen die Layout-Richtlinien und gegen spezielle Regeln durchgeführt.
  • 7 zeigt ein Ablaufdiagramm, in dem ein beispielhaftes Verfahren zum Erzeugen einer Entwurfs-Layout-Zelle gemäß einem Ausführungsbeispiel der Erfindung dargestellt ist.
  • In diesem Ausführungsbeispiel der Erfindung weist der Schritt des Entwerfens und Platzierens der Komponente, beispielsweise der elektronischen Komponenten, und der Layout-Zellen-Instanzen (Schritt 502) auf ein Erzeugen von Layout-Zellen-Information, wobei die Layout-Zellen-Information Information über mindestens eine Komponente enthält (Schritt 702), gefolgt von einem Erzeugen eines Layout-Zellen-Identifikators, welcher die Layout-Zelle identifiziert unter Verwendung von geometrischer Information über die Layout-Zelle (Schritt 704).
  • 8 zeigt ein Ablaufdiagramm eines beispielhaften Verfahrens zum Erzeugen einer Entwurfs-Layout-Zellenanordnung gemäß einem Ausführungsbeispiel der Erfindung, wobei mindestens eine Eltern-Layout-Zelle erzeugt wird (Schritt 802). Ferner wird mindestens eine Kind-Layout-Zelle, in einem Ausführungsbeispiel der Erfindung, eine Mehrzahl von Kind-Layout-Zellen, der mindestens einen Eltern-Layout-Zelle erzeugt (Schritt 804). Dann wird ein Layout-Zellenanordnungs-Identifikator erzeugt, welcher die Layout-Zellenanordnung identifiziert unter Verwendung von geometrischen Informationen über die Kind-Layout-Zelle, wobei die mindestens eine Eltern-Layout-Zelle die mindestens eine Kind-Layout-Zelle referenziert mittels eines Transformations-Operators (Schritt 806).
  • In einem Ausführungsbeispiel der Erfindung wird die geometrische Korrektheit der Layout-Zellen-Instanzen selbst nach dem Abbilden erreicht mittels Identifizierens einer Layout-Zelle nicht nur unter Verwendung eine Namens, sondern unter Verwendung eines „flachen" Satzes der Layout-Zellen-Instanzen hinsichtlich der obersten Layout-Zellen-Instanz, in anderen Worten, hinsichtlich der Wurzel-Layout-Zellen-Instanz. In diesem Fall kann eine geometrische Information direkt von der Layout-Zellen-Instanz der modifizierten Layout-Zellenanordnung 400 auf die entsprechende Layout-Zelle-Anordnung 300 der ursprünglichen Hierarchie während der Rück-Transformation 212 abgebildet werden. Das Ergebnis der Abbildung beschreibt dieselbe Information auf der Ebene des Chip-Layouts und garantiert das geometrisch korrekte Abbilden. Dies kann mit einem rein namenbasierten Zuordnen der Layout-Zellen nicht gewährleistet werden.
  • In einem anderen Ausführungsbeispiel der Erfindung, zusätzlich zu den oben beschriebenen Ausführungsbeispielen, kann eine mögliche Mehrdeutigkeit der Zuordnung der Layout-Zellen zusätzlich verhindert werden durch Verwendung einer eindeutigen Zuordnung einer Kind-Layout-Zellen-Instanz oder einer Mehrzahl von Kind-Layout-Zellen-Instanzen zu ihrer entsprechenden Eltern-Zellen-Instanz. Aus einer eindeutigen Abbildung einer Kind-Zelle kann eine eindeutige Abbildung von Eltern-Zellen abgeleitet werden. Eine Eltern-Layout-Zellen-Instanz ist eine Layout-Zellen-Instanz, welche eine Layout-Zellen-Instanz oder eine Mehrzahl von Layout-Zellen-Instanzen enthält, welche auch bezeichnet werden als Kind-Layout-Zellen-Instanzen. Beispielsweise ist die Layout-Zellen-Instanz 312 der zweiten Ebene „B" eine Kind-Layout-Zellen-Instanz der Layout-Zellen-Instanz 314 der dritten Ebene „TOP" 314.
  • Auf diese Weise kann ein Binden mittels Zellennamen mit den oben beschriebenen Nachteilen vermieden werden.
  • In einem Ausführungsbeispiel der Erfindung wird dies erreicht unter Verwendung eines Verfahrens, mit dem ein schnelles Auffinden von Layout-Zellen mit identischen (flachen) Instantiierungen ermöglicht wird. In diesem Fall sollte es vermieden werden, die Zellen-Instanzen explizit abzuflachen, da dies in einer großen Datenmenge in einer gemeinsamen Tiefe der Layout-Zellen-Hierarchien resultieren würde, in anderen Worten, der Layout-Zellen-Bäume, welche üblicherweise bis zu mehrere zehn Hierarchieebenen aufweisen, beispielsweise bis zu ungefähr 10 bis ungefähr 30 Hierarchieebenen.
  • In einem Ausführungsbeispiel der Erfindung basiert die Implementierung auf einer spezifischen Hash-Funktion, welche sehr effizient implementiert werden kann zum Reduzieren des Suchraums und auf einem exakten Vergleich der „implizit abgeflachten" Instantiierung der Layout-Zellen, wobei nur eine kleine Anzahl flacher Versuche auftreten wird aufgrund der Vorauswahl unter Verwendung des Hash-Werts, welcher erzeugt worden ist unter Verwendung der Hash-Funktion, welche im Folgenden näher erläutert wird.
  • Es ist anzumerken, dass jede beliebige andere Funktion mit einem gleichen Effekt hinsichtlich der geometrischen korrekten Abbildung in alternativen Ausführungsformen der Erfindung verwendet werden kann.
  • In einem Ausführungsbeispiel der Erfindung ist die Reihenfolge der Layout-Zellen-Instanzen in der Layout-Zellenanordnung und in der modifizierten Layout-Zellenanordnung, in welcher sie während des Vergleichs verarbeit werden, die Gleiche.
  • Dies kann beispielsweise dadurch erreicht werden, dass die Hash-Funktion, welche im Folgenden näher erläutert wird, verwendet wird, oder dadurch, dass zusätzlich ein Sortierkriterium bereitgestellt und durchgeführt wird, wobei ein Beispiel eines solchen Sortierkriteriums ebenfalls im Folgenden näher erläutert wird.
  • Beispielsweise können die Layout-Zellen-Instanzen zunächst gemäß ihrer x-Position bezüglich der Wurzel-Layout-Zellen-Instanz oder bezüglich eines vorbestimmten Koordinaten-Systems sortiert werden (sie können beispielsweise sortiert werden gemäß aufsteigenden x-Positions-Werten oder gemäß absteigenden x-Positions-Werten). Dann werden die Layout-Zellen-Instanzen mit demselben x-Positions-Wert zusätzlich sortiert gemäß ihrer y-Position bezüglich der Wurzel-Layout-Zellen-Instanz oder bezüglich des vorbestimmten Koordinatensystems (sie können beispielsweise sortiert werden gemäß aufsteigenden y-Positions-Werten oder gemäß absteigenden y-Positions-Werten). Dann können die Layout-Zellen-Instanzen mit demselben x-Positions-Wert und demselben y-Positions-Wert zusätzlich sortiert werden gemäß ihrem Rotations-Wert bezüglich des vorbestimmten Koordinatensystems (sie können beispielsweise sortiert werden gemäß „Im-Uhrzeigersinn"-Rotations-Werten oder gemäß „Gegen-den-Uhrzeigersinn"-Rotations-Werten). Ferner können die Layout-Zellen-Instanzen mit demselben x-Positions-Wert, demselben y-Positions-Wert und demselben Rotations-Wert zusätzlich sortiert werden gemäß ihrem Spiegelungs-Wert.
  • Nachdem die Layout-Zellen-Instanzen in eindeutiger Weise sortiert worden sind kann jede beliebige Hash-Funktion verwendet werden, beispielsweise sichere Hash-Funktionen wie beispielsweise MD5 oder SHA-1.
  • Ferner ist anzumerken, dass jede Art einer assoziativen Datenstruktur gemäß einem Ausführungsbeispiel der Erfindung verwendet werden kann, in welchem Fall beispielsweise schnelle Übereinstimmungsfindungs-Algorithmen (Matching-Algorithmen) vorgesehen sein können wie beispielsweise ein binärer Suchalgorithmus in einer Binärbaum-Datenstruktur.
  • Nun wird ein Verfahren zum effizienten Berechnen eines Hash-Werts eines hierarchisch organisierten Datensatzes beschrieben, beispielsweise die hierarchische Darstellung von geometrischen Daten für Chip-Entwürfe, in anderen Worten, beispielsweise Layout-Zellenanordnungs-Daten.
  • Unter Hash-Werten, auch bezeichnet als Prüfsummen, sind beispielsweise verkürzte Präsentationen komplexer Datensätze zu verstehen. Sie bilden die Basis vieler Algorithmen zur effizienten Mustererkennung in einer Konsistenzprüfung wie auch für assoziative Datenstrukturen in der Form so genannter Hash-Karten. Ein Hash-Wert ist eindeutig einem Datensatz zugeordnet, aber nicht notwendigerweise umgekehrt. Die Effizienz, mit der der Hash-Wert berechnet werden kann, ist ein wichtiges Leistungsmerkmal der Qualität des Algorithmus. Üblicherweise existieren keine spezifischen Anforderungen für den Hash-Wert selbst. Jedoch sollte der Hash-Wert in dem Objektraum stark variieren, der berücksichtigt wird, um zwischen unterschiedlichen Konfigurationen so effizient wie möglich unterscheiden zu können.
  • In einem Ausführungsbeispiel der Erfindung wird eine Hash-Funktion bereitgestellt, welche die Geometrie eines Layouts beschreibt und nicht die Organisation wie beispielsweise Hierarchie, Reihenfolge der Speicherung der Objekte („flache" Geometrie-Äquivalenz), etc.
  • Im Folgenden ist unter einem hierarchisch organisierten Datensatz eine Struktur mit den folgenden Eigenschaften zu verstehen:
    Ein Satz von Objekten G(i) ist organisiert in einer „Zelle" C, d.h. C = G(1), ..., G(n).
  • Eine Zelle kann, zusätzlich zum Referenzieren von Objekten, auch zusätzliche Zellen referenzieren („Kinder-Zellen") mittels eines Transformations-Operators, d.h. C = G(1), ..., G(n), T(1)·C(1), ... T(m)·C(m).
  • Eine der Zellen wird nicht weiter referenziert; dies ist die Ursprungszelle („oberste Zelle") des Layout-Zellen-Baums.
  • Die erweiterte („flache") Repräsentation einer Zelle C wird erhalten mittels Ersetzens der Kind-Zellen-Instanzen einer Zelle mit ihren Objekten und mittels Anwendens der entsprechenden Transformation auf jedes Objekt. Dieses Verfahren kann wiederholt werden in einer rekursiven Weise solange, bis die jeweilige Zelle keine Kind-Zellen-Instanzen mehr aufweist. Das Ergebnis dieses Verfahrens ist ein Satz von Objekten F(1), ..., F(p), welches dieselbe Information darstellt wie die hierarchische Repräsentation.
  • Die hierarchische Repräsentation wird hauptsächlich verwendet für die Datenreduktion: Objekt-Sätze, welche sich voneinander nur in einer Transformation unterscheiden, können in derselben Zelle gehalten werden, welche dann mehrere Male mit unterschiedlichen Transformationen instantiiert wird.
  • Das Berechnen eines Hash-Werts über einen solchen hierarchisch repräsentierten Objekt-Satz sollte unabhängig von der hierarchischen Repräsentation sein. Der Algorithmus sollte denselben Hash-Wert bereitstellen, unabhängig davon, ob der Objekt-Satz in einer hierarchischen Repräsentation oder in einer äquivalenten flachen Repräsentation bereitgestellt wird, d.h. es sollte gelten: H(C) = H(F(1), ..., F(p)).
  • In einem Ausführungsbeispiel der Erfindung ist eine zusätzliche Einschränkung darin zu sehen, dass der Hash-Wert unabhängig von der Reihenfolge der Objekte sein sollte, d.h. es sollte gelten: H(G(1), G(2)) = H(G(2), G(1)).
  • Ein effizientes Verfahren kann definiert werden, indem der Hierarchie-Baum interpretiert wird als ein arithmetischer Klammerausdruck in einem spezifischen Raum.
  • Um dies zu erreichen, wird ein Hash-Wert verwendet, auf dem eine Operation „+" definiert ist derart, dass gilt: H(G(1), G(2)) = H(G(1)) + H(G(2)).
  • Ferner ist ein Abbilden der Transformationen in dem Objektraum auf die Transformationen der Hash-Werte definiert wie folgt:
    T → U, derart, dass H(T·G) = U·H(G).
  • Ferner wird eine Darstellung für die Transformation U gewählt, für die eine Assoziativität gilt, d.h. für die gilt: U·(H(1) + H(2)) = U·H(1) + U·H(2).
  • Auf diese Weise kann das Berechnen eines Hash-Werts für eine Layout-Zelle durchgeführt werden in einer rekursiven Weise gemäß der folgenden Gleichung: H(C) = H(G(1)) + ... + H(G(n)) + U(1)·H(C(1)) + ... + U(m)·H(C(m)).
  • In diesem Fall entspricht U(1) der Transformation T(1) in dem Hash-Raum.
  • 9A zeigt eine Layout-Zellenanordnung 900 gemäß einem anderen Ausführungsbeispiel der Erfindung, welches verwendet wird zum Darstellen, wie die Hierarchie der Layout-Zellenanordnung 900 auf einen arithmetischen Ausdruck abgebildet wird.
  • 9A zeigt ein Beispiel einer Layout-Zellenanordnung mit einer Hierarchie einer Mehrzahl von Layout-Zellen-Instanzen.
  • In diesem Ausführungsbeispiel der Erfindung weist die Layout-Zellenanordnung 900 eine Mehrzahl von Hierarchieebenen auf, beispielsweise drei Layout-Zellen-Hierarchieebenen 902, 904, 906, wobei jede Layout-Zellen-Hierarchieebene 902, 904, 906 mindestens eine Layout-Zellen-Instanz aufweist.
  • Jede Layout-Zellen-Instanz der Mehrzahl von Layout-Zellen-Instanzen weist eine Beschreibung mindestens einer Komponente auf, die Form der mindestens einen Komponente, die Anordnung der mindestens einen Komponente innerhalb der Layout-Zellen-Instanz, die jeweiligen Eigenschaften der mindestens einen Komponente.
  • Die mindestens eine Komponente in einer Layout-Zelle kann eine oder mehrere der folgenden elektronischen Komponenten sein:
    • – mindestens ein Kontakt;
    • – mindestens eine Leiterbahn;
    • – mindestens eine elektrisch nicht-aktive Komponente;
    • – mindestens eine Alignment-Markierung;
    • – mindestens ein widerstand;
    • – mindestens ein Kondensator;
    • – mindestens eine Induktivität;
    • – mindestens ein Transistor;
    • – mindestens eine Speicherzelle;
    • – eine Kombination der oben beschriebenen Komponenten.
  • In diesem Ausführungsbeispiel der Erfindung weist die unterste Layout-Zellen-Hierarchieebene 902 der Layout-Zellenanordnung 900 fünf Layout-Zellen-Instanzen 908 der ersten Ebene auf, wobei jede Layout-Zellen-Instanz 908 der ersten Ebene einen Transistor 910 aufweist, welcher in der Layout-Zellen-Instanz 908 der ersten Ebene angeordnet ist und eine L-Form aufweist. Jede Layout-Zellen-Instanz 908 der ersten Ebene weist ferner die Information über die Position des Transistors 910 innerhalb des Körpers der Layout-Zellen-Instanz 908 der ersten Ebene auf. Die Layout-Zellen-Instanzen 908 der ersten Ebene werden auch mit dem Symbol „A" bezeichnet.
  • Ferner weist die mittlere Layout-Zellen-Hierarchieebene 904 zwei Layout-Zellen-Instanzen 912 der zweiten Ebene auf, wobei jede Layout-Zellen-Instanz 912 der zweiten Ebene zwei der Layout-Zellen-Instanzen 908 der ersten Ebene enthält, welche nebeneinander in derselben Weise angeordnet sind. Die Layout-Zellen-Instanzen 912 der zweiten Ebene haben eine ihnen zugeordnete Information, dass sie zwei Layout-Zellen-Instanzen 908 der ersten Ebene enthalten und die räumliche Information über ihre Anordnung oder Position innerhalb des Körpers der Layout-Zellen-Instanz 912 der zweiten Ebene. In diesem Ausführungsbeispiel der Erfindung wird die räumliche Information angezeigt unter Verwendung des untersten linken Punktes der jeweiligen Layout-Zellen-Instanz 912 der zweiten Ebene als Referenz-Position (in anderen Worten als die Ursprungskoordinate der jeweiligen Layout-Zellen-Instanz 912 der zweiten Ebene) und unter Verwendung einer relativen räumlichen Informationsanzeige. Die Layout-Zellen-Instanz 912 der zweiten Ebene wird auch bezeichnet mit dem Symbol „B".
  • Die oberste Layout-Zellen-Hierarchieebene 906 weist eine Layout-Zellen-Instanz 914 der dritten Ebene auf, welche die Layout-Zellen-Instanzen 914 der zweiten Ebene enthält und die fünfte der Layout-Zellen-Instanzen 908 der ersten Ebene, welche nicht in die Layout-Zellen-Instanz 912 der zweiten Ebene gruppiert worden ist, wobei die zweite Layout-Zellen-Instanz 912 der zweiten Ebene und die fünfte Layout-Zellen-Instanz der Layout-Zellen-Instanz 908 der ersten Ebene nebeneinander angeordnet sind. Der Layout-Zellen-Instanz 914 der dritten Ebene ist die Information zugeordnet, dass sie zwei der Layout-Zellen-Instanz 912 der zweiten Ebene enthält und die fünfte Layout-Zellen-Instanz der Layout-Zellen-Instanz 908 der ersten Ebene, sowie die räumliche Information bezüglich ihrer Anordnung oder Position innerhalb des Körpers der Layout-Zellen-Instanz 914 der dritten Ebene. In diesem Ausführungsbeispiel der Erfindung wird die räumliche Information angezeigt unter Verwendung des untersten linken Punktes der Layout-Zellen-Instanz 914 der dritten Ebene als eine Referenz-Position (in anderen Worten als die Ursprungskoordinate der Layout-Zellen-Instanz 914 der dritten Ebene) und unter Verwendung einer relativen räumlichen Informationsanzeige. Die Layout-Zellen-Instanz 914 der dritten Ebene wird auch bezeichnet mit dem Symbol „TOP".
  • 9B zeigt einen Layout-Zellen-Baum 950 der Layout-Zellenanordnung 900 aus 9A. Der Layout-Zellen-Baum 950 weist drei Schichten auf entsprechend den oben beschriebenen Ebenen, wobei die Layout-Zellen-Instanz 914 der dritten Ebene „TOP" den Wurzelknoten des Layout-Zellen-Baums 950 darstellt. Die Layout-Zellen-Instanzen 912 der zweiten Ebene „B" und die fünfte Layout-Zellen-Instanz der Layout-Zellen-Instanzen 908 der ersten Ebene „A" sind in der mittleren Schicht des Layout-Zellen-Baums 950 angeordnet. Die erste bis vierte Layout-Zellen-Instanz der Layout-Zellen-Instanzen 908 der ersten Ebene „A" sind in der untersten Schicht des Layout-Zellen-Baums 950 angeordnet. Die Beziehung zwischen den Layout-Zellen-Instanzen 908, 912, 914 der verschiedenen Ebenen wird mittels Pfeilen symbolisiert, wobei jeder Pfeil (auch bezeichnet als gerichtete Kante) bedeutet, dass die Layout-Zellen-Instanz der Ebene, welche an dem Beginn des Pfeils angeordnet ist, die jeweilige Layout-Zellen-Instanz der Ebene enthält, welche an dem Ende des Pfeils angeordnet ist. Ein jeweiliger Transformations-Operator T(1), T(2), T(3), T(4), T(5), welcher einem jeweiligen Pfeil zugeordnet ist, ist ebenfalls in 9B dargestellt.
  • Das Abbilden und damit das Berechnen des Hash-Werts werden durchgeführt unter Verwendung der folgenden Gleichung: H(TOP) = U3·H(B) + U4·H(B) + U5·H(A), wobei H(B) = U1·H(A) + U2·H(A).
  • Es ist anzumerken, dass es in diesem Ausführungsbeispiel lediglich erforderlich ist, den Ausdruck, welcher die Layout-Zellen-Instanz „B" repräsentiert, einmal zu evaluieren.
  • Eine effiziente Implementierung dieses Verfahrens wird möglich, wenn die Zellen in einer „Bottom-Up"-Reihenfolge angeordnet sind (d.h., die Kind-Layout-Zellen sind vor ihren Eltern-Layout-Zellen). In diesem Fall kann der Hash-Wert berechnet werden und zwischengespeichert werden für eine Layout-Zellen-Instanz. Wenn der Hash-Wert der Eltern-Layout-Zellen berechnet wird, können die Hash-Werte der Kind-Layout-Zellen direkt verwendet werden, ohne dass es erforderlich ist, diese neu zu berechnen.
  • Das Berechnen des Hash-Werts ist in diesem Fall linear abhängig von der Anzahl von Objekten, unabhängig von ihrer hierarchischen Organisation und insbesondere unabhängig davon, wie groß der Grad der Kompression der hierarchischen Repräsentation ist.
  • Eine spezifische Implementierung, welche sehr gut geeignet ist für das Anwenden bei geometrischen Aufgaben in dem technischen Feld eines Chip-Layouts, verwendet die folgenden Abbildungen:
    Hash-Werte sind zwei-dimensionale Vektoren (x, y). Die Addition ist wie üblich definiert: H = H(1) + H(2) = (x(1) + x(2), y(1) + y(2)).
  • Die verwendete Arithmetik ist eine Integer-Arithmetik, bei der Vorzeichen berücksichtigt werden und weist eine vorbestimmte Bitbreite auf (beispielsweise Modulo 232).
  • Transformationen sind geometrische Transformationen wie beispielsweise Spiegelung, Translation, Rotation, mit einer Beschränkung auf einer Rotation um Vielfache von 90 Grad.
  • Dieselben Transformationen werden in dem Hash-Raum verwendet (U = T).
  • Diese spezifische Implementierung ermöglicht eine sehr effiziente Implementierung in einer 32-Bit-Integer-Arithemik.
  • Für die Rück-Transformation 212 werden die Zellen, welche einen gewünschten Hash-Wert aufweisen, gesucht.
  • In einem Ausführungsbeispiel der Erfindung wird ein iterativer Algorithmus bereitgestellt, bei dem Mehrdeutigkeiten aufgelöst werden mittels einer Analyse der Beziehungen der Kind-Layout-Zellen. Wenn eine Kind-Layout-Zelle eindeutig einer anderen Kind-Layout-Zelle zugeordnet ist, dann sind ihre Eltern-Layout-Zellen ebenfalls eindeutig einander zugeordnet, wenn die Kind-Layout-Zellen eindeutig einer Eltern-Layout-Zelle zugeordnet werden können. In einer alternativen Ausführungsform der Erfindung kann ein Name einer jeweiligen Layout-Zelle ebenfalls bereitgestellt werden und kann verwendet werden, um Mehrdeutigkeiten aufzulösen. Jedoch ist in diesen Ausführungsbeispielen der Erfindung die geometrische Korrektheit garantiert im Gegensatz zu der Verwendung von einer rein namenbasierten Zuordnung.

Claims (33)

  1. Layout-Zelle, • mit einer Layout-Zellen-Information, welche Information über mindestens eine Komponente aufweist; und • mit einem Layout-Zellen-Identifikator, welcher die Layout-Zelle identifiziert, wobei der Layout-Zellen-Identifikator geometrische Information über die Layout-Zelle aufweist.
  2. Layout-Zelle gemäß Anspruch 1, wobei die mindestens eine Komponente eine elektronische Komponente aufweist.
  3. Layout-Zelle gemäß Anspruch 1 oder 2, wobei die Layout-Zelle eine Layout-Zelle eines elektronischen Schaltkreises aufweist.
  4. Layout-Zelle gemäß Anspruch 3, wobei die Layout-Zelle eine Layout-Zelle eines elektronischen Speicher-Schaltkreises aufweist.
  5. Layout-Zelle gemäß Anspruch 3 oder 4, wobei die Layout-Zelle eine Layout-Zelle eines elektronischen Logik-Schaltkreises aufweist.
  6. Layout-Zelle gemäß einem der Ansprüche 1 bis 5, wobei die mindestens eine Komponente eine Komponente aufweist, welche ausgewählt ist aus einer Gruppe von elektronischen Komponenten bestehend aus: • mindestens einem Kontakt; • mindestens einer Leiterbahn; • mindestens einer elektrisch nicht-aktive Komponente; • mindestens einer Alignment-Markierung; • mindestens einem Widerstand; • mindestens einem Kondensator; • mindestens einer Induktivität; • mindestens einem Transistor; • mindestens einer Speicherzelle; und • einer Kombination der oben beschriebenen Komponenten.
  7. Layout-Zelle gemäß einem der Ansprüche 1 bis 6, wobei der Layout-Zellen-Identifikator mindestens einen Hash-Wert der geometrischen Information über die Layout-Zelle aufweist.
  8. Layout-Zelle gemäß einem der Ansprüche 1 bis 7, wobei die geometrische Information über die Layout-Zelle geometrische Information bezüglich einer anderen Layout-Zelle aufweist.
  9. Layout-Zelle gemäß einem der Ansprüche 1 bis 8, wobei der Layout-Zellen-Identifikator einen eindeutigen Identifikator der Layout-Zelle aufweist.
  10. Layout-Zelle gemäß einem der Ansprüche 1 bis 9, wobei die geometrische Information über die Layout-Zelle geometrische Information mindestens einer der folgenden Eigenschaften der Layout-Zelle aufweist: • eine Position der Layout-Zelle; • eine Versetzung der Layout-Zelle; • eine Rotation der Layout-Zelle; und • eine Spiegelung der Layout-Zelle.
  11. Layout-Zellenanordnung, mit einer Mehrzahl von Layout-Zellen, wobei jede Layout-Zelle der Mehrzahl von Layout-Zellen aufweist: • eine Layout-Zellen-Information mit einer Information über mindestens eine Komponente; • einen Layout-Zellen-Identifikator, welcher die Layout-Zelle identifiziert, wobei der Layout-Zellen- Identifikator geometrische Information über die Layout-Zelle aufweist.
  12. Layout-Zellenanordnung gemäß Anspruch 11, wobei die Layout-Zellen hierarchisch in der Layout-Zellenanordnung angeordnet sind, wobei die Layout-Zellenanordnung mindestens eine Eltern-Layout-Zelle und mindestens eine Kind-Layout-Zelle aufweist.
  13. Layout-Zellenanordnung gemäß Anspruch 12, wobei die geometrische Information über eine Kind-Layout-Zelle aufweist geometrische Information bezüglich einer anderen Kind-Layout-Zelle.
  14. Layout-Zellenanordnung gemäß Anspruch 12 oder 13, wobei die geometrische Information über eine Kind-Layout-Zelle aufweist geometrische Information bezüglich einer Eltern-Layout-Zelle.
  15. Layout-Zellenanordnung gemäß Anspruch 14, ferner aufweisend: eine Mehrzahl von Kind-Layout-Zellen, wobei mindestens zwei Kind-Layout-Zellen der Mehrzahl von Kind-Layout-Zellen Kind-Layout-Zellen derselben Eltern-Layout-Zelle sind.
  16. Layout-Zellenanordnung gemäß einem der Ansprüche 11 bis 15, wobei der Layout-Zellen-Identifikator einen eindeutigen Identifikator der jeweiligen Layout-Zelle aufweist.
  17. Layout-Zellenanordnung gemäß einem der Ansprüche 11 bis 16, wobei der Layout-Zellen-Identifikator mindestens einen Hash-Wert der geometrischen Information über die jeweilige Layout-Zelle aufweist.
  18. Layout-Zellenanordnung gemäß einem der Ansprüche 11 bis 17, wobei die geometrische Information über die Layout-Zelle geometrische Information über mindestens eine der folgenden Eigenschaften der Layout-Zelle aufweist: • eine Position der Kind-Layout-Zelle innerhalb der Eltern-Layout-Zelle; • eine Verschiebung der Kind-Layout-Zelle innerhalb der Eltern-Layout-Zelle bezüglich einer Referenz-Position; • eine Rotation der Kind-Layout-Zelle innerhalb der Eltern-Layout-Zelle; und/oder • eine Spiegelung der Kind-Layout-Zelle innerhalb der Eltern-Layout-Zelle.
  19. Layout-Zelle, • mit einer Layout-Zellen-Information, welche Information über mindestens eine Komponente aufweist; • mit einem Layout-Zellen-Identifikator, welcher die Layout-Zelle identifiziert, wobei der Layout-Zellen-Identifikator mindestens einen Hash-Wert über eine geometrische Information über die Layout-Zelle bezüglich einer anderen Layout-Zelle aufweist.
  20. Verfahren zum Erzeugen einer Layout-Zelle, • bei dem Layout-Zellen-Information erzeugt wird, welche Information über mindestens eine Komponente aufweist; • bei dem ein Layout-Zellen-Identifikator erzeugt wird, welcher die Layout-Zelle identifiziert unter Verwendung geometrischer Information über die Layout-Zelle.
  21. Verfahren zum Erzeugen einer Layout-Zellenanordnung, • bei dem mindestens eine Eltern-Layout-Zelle erzeugt wird; • bei dem mindestens eine Kind-Layout-Zelle der mindestens einen Eltern-Layout-Zelle erzeugt wird; und • bei dem ein Layout-Zellenanordnungs-Identifikator erzeugt wird, welcher die Layout-Zellenanordnung identifiziert unter Verwendung von geometrischer Information über die Kind-Layout-Zelle.
  22. Verfahren gemäß Anspruch 21, wobei zum Erzeugen des Layout-Zellenanordnungs-Identifikators mindestens ein Hash-Wert der geometrischen Information über die Kind-Layout-Zelle ermittelt wird.
  23. Verfahren gemäß Anspruch 22, wobei das Ermitteln des mindestens einen Hash-Werts der geometrischen Information über die Kind-Layout-Zelle aufweist: • Ermitteln eines ersten Teil-Hash-Werts der geometrischen Information über die Kind-Layout-Zelle; und • Ermitteln eines zweiten Teil-Hash-Werts der geometrischen Information über die Eltern-Layout-Zelle und den ersten Teil-Hash-Wert.
  24. Verfahren gemäß Anspruch 22 oder 23, wobei zum Ermitteln des mindestens einen Hash-Werts eine Einweg-Hash-Funktion verwendet wird.
  25. Verfahren gemäß einem der Ansprüche 22 bis 24, wobei der mindestens eine Hash-Wert einen Vektor mit mindestens zwei Dimensionen aufweist.
  26. Verfahren zum Erzeugen einer Layout-Zellenanordnung, • bei dem mindestens eine Eltern-Layout-Zelle erzeugt wird; • bei dem mindestens eine Kind-Layout-Zelle der mindestens einen Eltern-Layout-Zelle erzeugt wird; und • bei dem ein Layout-Zellenanordnungs-Identifikator erzeugt wird, welcher die Layout-Zellenanordnung identifiziert unter Verwendung geometrischer Information über die Kind-Layout-Zelle, wobei die mindestens eine Eltern-Layout-Zelle die mindestens eine Kind-Layout-Zelle referenziert mittels eines Transformations-Operators.
  27. Verfahren gemäß Anspruch 26, wobei der Transformations-Operator einen kommutativen Transformations-Operator aufweist.
  28. Verfahren gemäß Anspruch 26 oder 27, wobei der Transformations-Operator einen assoziativen Transformations-Operator aufweist.
  29. Verfahren gemäß einem der Ansprüche 26 bis 28, wobei der Transformations-Operator mindestens einen Transformations-Operator der folgenden Transformations-Operatoren aufweist: • einen Summen-Operator, • einen Exklusiv-ODER-Operator, • einen Multiplikations-Operator.
  30. Verfahren zum Erzeugen einer Layout-Zellenanordnung, • bei dem mindestens eine Eltern-Layout-Zelle erzeugt wird; • bei dem mindestens eine Kind-Layout-Zelle der mindestens einen Eltern-Layout-Zelle erzeugt wird; und • bei dem ein Layout-Zellenanordnungs-Identifikator erzeugt wird, welcher die Layout-Zellenanordnung identifiziert unter Verwendung geometrischer Information über die Kind-Layout-Zelle, wobei die mindestens eine Eltern-Layout-Zelle die mindestens eine Kind-Layout-Zelle referenziert unter Verwendung einer assoziativen Datenstruktur.
  31. Verfahren zum Ermitteln eines Layout-Zellen-Identifikators für eine Layout-Zelle, bei dem geometrische Information über die Layout-Zelle gehashed wird, womit ein Hash-wert erzeugt wird.
  32. Computerprogrammprodukt zum Erzeugen einer Layout-Zelle, welches, wenn es ausgeführt wird von einem Prozessor, aufweist: • Erzeugen von Layout-Zellen-Information, welche Information über mindestens eine Komponente aufweist; • Erzeugen eines Layout-Zellen-Identifikators, welcher die Layout-Zelle identifiziert unter Verwendung von geometrischer Information über die Layout-Zelle.
  33. Computerprogrammprodukt zum Erzeugen einer Layout-Zellenanordnung, welches, wenn es von einem Prozessor ausgeführt wird, aufweist: • Erzeugen mindestens einer Eltern-Layout-Zelle; • Erzeugen mindestens einer Kind-Layout-Zelle der mindestens einen Eltern-Layout-Zelle; und • Erzeugen mindestens eines Layout-Zellenanordnungs-Identifikators, welcher die Layout-Zellenanordnung identifiziert unter Verwendung von geometrischer Information über die Kind-Layout-Zelle, wobei die mindestens eine Eltern-Layout-Zelle die mindestens eine Kind-Layout-Zelle mittels eines Transformations-Operators referenziert.
DE102007018622A 2006-05-30 2007-04-19 Layout-Zellen, Layout-Zellenanordnung, Verfahren zum Erzeugen einer Layout-Zelle, Verfahren zum Erzeugen einer Layout-Zellenanordnung, Computerprogrammprodukte Ceased DE102007018622A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/443,478 2006-05-30
US11/443,478 US20070283306A1 (en) 2006-05-30 2006-05-30 Layout cells, layout cell arrangement, method of generating a layout cell, method of generating a layout cell arrangement, computer program products

Publications (1)

Publication Number Publication Date
DE102007018622A1 true DE102007018622A1 (de) 2007-12-06

Family

ID=38650681

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007018622A Ceased DE102007018622A1 (de) 2006-05-30 2007-04-19 Layout-Zellen, Layout-Zellenanordnung, Verfahren zum Erzeugen einer Layout-Zelle, Verfahren zum Erzeugen einer Layout-Zellenanordnung, Computerprogrammprodukte

Country Status (2)

Country Link
US (1) US20070283306A1 (de)
DE (1) DE102007018622A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080148200A1 (en) * 2006-12-14 2008-06-19 Christian Von Mueffling Method for checking the layout of an integrated circuit
JP2008269242A (ja) * 2007-04-19 2008-11-06 Nec Electronics Corp レイアウトデータのデータ構造及びレイアウト検証プログラム
KR101397685B1 (ko) * 2012-02-29 2014-05-26 주식회사 팬택 사용자 단말 및 사용자 단말의 화면 표시방법
US10354039B1 (en) * 2016-12-30 2019-07-16 Cadence Design Systems, Inc. Method, system, and computer program product for implementing legal placement with contextual awareness for an electronic design
US10515180B1 (en) 2016-12-30 2019-12-24 Cadence Design Systems, Inc. Method, system, and computer program product to implement snapping for an electronic design
US10503858B1 (en) 2016-12-30 2019-12-10 Cadence Design Systems, Inc. Method, system, and computer program product for implementing group legal placement on rows and grids for an electronic design
US10402530B1 (en) 2016-12-30 2019-09-03 Cadence Design Systems, Inc. Method, system, and computer program product for implementing placement using row templates for an electronic design
US10452807B1 (en) 2017-03-31 2019-10-22 Cadence Design Systems, Inc. Method, system, and computer program product for implementing routing aware placement for an electronic design
US10515177B1 (en) 2017-06-29 2019-12-24 Cadence Design Systems, Inc. Method, system, and computer program product for implementing routing aware placement or floor planning for an electronic design
US10747932B2 (en) 2018-08-09 2020-08-18 International Business Machines Corporation Smart placement, visualization and optimization methodology for component placement and planning

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145117A (en) * 1998-01-30 2000-11-07 Tera Systems Incorporated Creating optimized physical implementations from high-level descriptions of electronic design using placement based information
DE10100168A1 (de) * 2001-01-04 2002-07-18 Infineon Technologies Ag Entwurf von Schaltungen mit Abschnitten unterschiedlicher Versorgungsspannung
US7024640B2 (en) * 2001-06-29 2006-04-04 Koninklijke Philips Electronics N.V. Integrated circuit cell identification
US6857117B2 (en) * 2002-01-31 2005-02-15 Cadence Design Systems, Inc. Method and apparatus for producing a circuit description of a design
US7093228B2 (en) * 2002-12-20 2006-08-15 Lsi Logic Corporation Method and system for classifying an integrated circuit for optical proximity correction
US7284211B2 (en) * 2003-04-16 2007-10-16 Lsi Corporation Extensible IO testing implementation
US7028276B2 (en) * 2003-09-10 2006-04-11 Lsi Logic Corporation First time silicon and proto test cell notification
US20060101368A1 (en) * 2004-09-08 2006-05-11 Mentor Graphics Corporation Distributed electronic design automation environment
US7299445B2 (en) * 2004-10-29 2007-11-20 Synopsys, Inc. Nonlinear receiver model for gate-level delay calculation
US7254788B2 (en) * 2004-10-29 2007-08-07 Synopsys, Inc. Nonlinear driver model for multi-driver systems
JP4165712B2 (ja) * 2004-11-10 2008-10-15 シャープ株式会社 データフローグラフの同一サブグラフ検出装置、高位合成装置、データフローグラフの同一サブグラフ検出方法、データフローグラフの同一サブグラフ検出制御プログラムおよび可読記録媒体
US7716611B2 (en) * 2004-11-13 2010-05-11 Mentor Graphics Corporation Logic injection
US7363596B1 (en) * 2005-04-27 2008-04-22 Altera Corporation Methods for storing and naming static library cells for lookup by logic synthesis and the like
US7584450B2 (en) * 2006-02-17 2009-09-01 Synopsys, Inc. Method and apparatus for using a database to quickly identify and correct a manufacturing problem area in a layout
US8516418B2 (en) * 2006-06-30 2013-08-20 Oracle America, Inc. Application of a relational database in integrated circuit design
US8453083B2 (en) * 2006-07-28 2013-05-28 Synopsys, Inc. Transformation of IC designs for formal verification
US10643015B2 (en) * 2006-10-09 2020-05-05 Mentor Graphics Corporation Properties in electronic design automation
US7788612B2 (en) * 2007-03-30 2010-08-31 Taiwan Semiconductor Manufacturing Company, Ltd. System, method, and computer program product for matching cell layout of an integrated circuit design

Also Published As

Publication number Publication date
US20070283306A1 (en) 2007-12-06

Similar Documents

Publication Publication Date Title
DE102007018622A1 (de) Layout-Zellen, Layout-Zellenanordnung, Verfahren zum Erzeugen einer Layout-Zelle, Verfahren zum Erzeugen einer Layout-Zellenanordnung, Computerprogrammprodukte
DE60008264T2 (de) Datenaustausch zwischen cad-systemen
TWI236607B (en) A common data model representing a circuit that will be fabricated on an integrated circuit chip
DE102015117026B4 (de) Verfahren zur Parameterextraktion und System dafür
DE10143101A1 (de) Verfahren zur Validierung von Simulationsergebnissen eines Systems sowie darauf aufbauender Äquivalenzvergleich digitaler Schaltungen
DE102020115968A1 (de) Systeme und verfahren für multi-bit-speicher mit eingebetteter logik
DE102018132853A1 (de) Verfahren für einen Layout-Entwurf und basierend auf demselben hergestellte Halbleitervorrichtung
US11681854B2 (en) Generation of layout including power delivery network
US20130198712A1 (en) Canonical Signature Generation For Layout Design Data
US7546565B2 (en) Method for comparing two designs of electronic circuits
DE102019124928A1 (de) Integriertes schaltungsdesign unter verwendung von fuzzy-maschinenlernen
EP0909421B1 (de) Verfahren und anordnung zur rechnergestützten ermittlung einer systemzusammenhangsfunktion
DE102019125900B4 (de) Metallschnittgebiet-positionierungsverfahren und system
DE10138142A1 (de) Verfahren zur Analyse einer integrierten elektrischen Schaltung
DE102014019627A1 (de) Bestimmungsverfahren zur Widerstandskapazität für Mehrfachstrukturierungs
DE102015102034A1 (de) Verfahren zum Analysieren von Ergebnissen in einem Entwurfsautomatisierungsablauf für elektronische Systeme, Computersystem und Computerprogrammprodukt
DE102004003092A1 (de) Verfahren zum Auflösen nicht richtig angepaßter Parameter bei einem rechnergestützten Entwurf für integrierte Schaltungen
DE10313949A1 (de) Schaltungsentwurfsduplizierungssystem
DE102004003100A1 (de) Verfahren zum Auflösen nicht richtig angepaßter graphischer Symbole bei einem rechnergestützten Entwurf integrierter Schaltungen
DE102016104839A1 (de) Layoutüberprüfungssystem und -verfahren
DE102022132158A1 (de) Verfahren, system und computerprogrammprodukt zum entwerfen von integrierten schaltkreisen
DE10206658B4 (de) Verfahren zum Überprüfen einer integrierten elektrischen Schaltung
DE112017004431T5 (de) Partitionierung unter verwendung einer korrelations-metaheuristik
DE102004020869A1 (de) System und Verfahren zum Bestimmen eines Signalnamens auf höchster Ebene in einem hierarchischen VLSI-Entwurf
WO2006125431A1 (de) Verfahren zur erzeugung und/oder einprägung eines wiedergewinnbaren kryptographischen schlüssels bei der herstellung einer topographischen struktur

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection