WO2001018695A2 - Method for comparing mask data of integrated circuits using a computer - Google Patents

Method for comparing mask data of integrated circuits using a computer Download PDF

Info

Publication number
WO2001018695A2
WO2001018695A2 PCT/DE2000/002972 DE0002972W WO0118695A2 WO 2001018695 A2 WO2001018695 A2 WO 2001018695A2 DE 0002972 W DE0002972 W DE 0002972W WO 0118695 A2 WO0118695 A2 WO 0118695A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
cells
compared
mask
contained
Prior art date
Application number
PCT/DE2000/002972
Other languages
German (de)
French (fr)
Other versions
WO2001018695A3 (en
Inventor
Wolfgang Meier
Original Assignee
Infineon Technologies 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 Infineon Technologies Ag filed Critical Infineon Technologies Ag
Publication of WO2001018695A2 publication Critical patent/WO2001018695A2/en
Publication of WO2001018695A3 publication Critical patent/WO2001018695A3/en

Links

Classifications

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

Definitions

  • a circuit design is usually first created in which it is specified which components are provided and which switching behavior the integrated circuit should have. Based on this circuit design, a layout is created that describes the geometric shape and arrangement of all components of the circuit.
  • the components include in particular doped areas, insulating structures, conductive structures, metallization levels, contacts, etc.
  • the layout is the basis for creating mask sets, which are subsequently used in the technological manufacture of the integrated circuit.
  • a mask set is usually described by a file that contains a geometric description of all the masks required for the manufacture of the integrated circuit.
  • the data contained in this file is also referred to as mask data.
  • the different masks of a mask set are distinguished by mask numbers.
  • the mask data are mostly described in a hierarchical form. This means that sections of the masks that are repeated are saved in cells.
  • An instance often also called a cell call, is stored for the cells, which defines the geometric arrangement and orientation of the cell and the cell to be used.
  • a cell can contain further cells, which are referred to as subcells.
  • a cell graph in which no cell directly or indirectly references itself is often used to describe the hierarchy, or an instance builder that contains the individual instances of the time len can be seen.
  • the top level is referred to as the top cell, which, including all subcells, represents the data of the mask set.
  • Mask data are described in different formats, all of which have the same basic structure:
  • the geometry of individual structures is described by basic geometric elements such as polygons, rectangles or the like.
  • a mask number is assigned to each of these basic elements and all basic elements with the same mask number form the description of a mask of the mask set.
  • the hierarchical structure of mask data enables a very compact description of the mask data of circuits with regularly repeating structures. For example, for a DRAM arrangement, a memory cell is only written once and instantiated over several hierarchical levels instead of repeating the same data many times.
  • the mask data is of central importance in the entire design process. It is therefore often necessary to compare different data sets that describe the same mask set with one another and to determine any differences that may exist. This is particularly necessary to verify the mask data after a manual change of the design data in a layout editor. It must be determined whether only the intended changes have been made. Such comparisons are also necessary to check whether different programs interpret the mask data identically. For example, after the data has been converted back and forth between different formats, a comparison must be made for geometric differences be performed. Although several teams include cooperation partners, in the design process ligt BETEI ⁇ must be determined during data exchange, what exactly has changed.
  • the data must also be recognizable as different masks in the common file. Different masks are generally distinguished by mask numbers. If the masks to be compared now have matching mask numbers in the different data records, then mask numbers have to be changed in the common file in order to meet the requirement of the different mask numbers. This requires time-consuming intermediate sections. In addition, only individual masks can be compared in one step. It is not possible to compare complete sets of masks in one step.
  • the invention is therefore based on the problem of specifying a method for comparing mask data of integrated circuits which can also be carried out for large integrated circuits in a reasonable time and which allows the comparison of hierarchically structured data sets with not necessarily isomorphic hierarchies.
  • names are given cells m contained in the first data set are linked in a first ordered tree.
  • Names of cells contained in the second data set are concatenated in a second ordered tree.
  • names which are assigned to one another are sought in the first tree and in the second tree.
  • the associated cells assigned to one another are registered as pairs to be compared. Subsequently, the instances contained in the cells are compared for the pairs to be compared.
  • a protocol is generated that contains cells and instances that only occur in one of the data records.
  • the result of the method is thus a list of the differences in the hierarchical structure of the data in the first data set and in the second data set.
  • data that is covered with non-isomorphic hierarchies can be compared with each other.
  • the data of the first data set and the data of the second data set at the beginning of the process m a format converted in the targeted to the data j in each case of a cell can be accessed.
  • Mask data is usually described in the so-called GDSII format, which does not meet this requirement.
  • the names are assigned by assigning the same names in the first tree and in the second tree to one another.
  • differently named cells can be assigned to each other.
  • the names of the cells contained in the first data record and in the second data record are preferably read into a working memory of the computer, the first ordered tree and the second ordered tree each being arranged alphabetically.
  • pairs are compared in each case the data and data of the instances of the associated cells that are described in the associated cells and that are only m one of the cells are included to compare. Differences found in the comparison are summarized in a third data record that can be output. All pairs to be compared are preferably processed, whereby the processing begins at the lowest hierarchical level. This means that a pair to be compared is only processed when the comparison of the instances directly and indirectly contained therein has already been carried out.
  • the comparison of the data is preferably carried out using a Boolean EXOR link.
  • This optimized data set is used to produce the mask set.
  • the mask set in turn is used to manufacture an integrated circuit.
  • FIG. 1 shows two data sets that describe a mask set.
  • Figure 2 shows two ordered trees with cell names.
  • Figure 3 shows the pairing of instances within a cell.
  • Figure 4 shows data when comparing cells in pairs.
  • FIG. 5 shows data when comparing cells in pairs with expanded called cells.
  • a mask set is described by a first data set M and a second data set M '. Both the first data record M and the second data record M 'have a hierarchical structure.
  • the first data record M contains cells A, B, C, cell A being punched twice and cell C m once. Furthermore, cell A of the first data record M contains further geometric structures.
  • the data record M ' contains the cells A, B, C, where m of the cell A, the cell B is twice and the cell C is m twice.
  • the data of the first data record M and the second data record M ' are in the GDSII format. In the first step, they are converted into an internal format in which the data of one cell can be specifically accessed.
  • identical names are searched for in both trees and the associated cells are registered as a pair to be compared.
  • differently named cells of the two data records can also be assigned to one another.
  • the assignment of the names is stored, for example, in a table.
  • the instances contained therein are compared. Two instances are assigned to another if the cells called in the instances are assigned to one another as a pair and if all transformation parameters of the instances match.

Abstract

Mask data is arranged in a first set and a second set of hierarchically structured data. To compare the sets of data, names of cells contained therein are respectively interlinked in a sequenced data tree. Related names are searched in the different trees and corresponding cells are recorded as pairs to be compared. Entities contained in cells of the matching data which is to be compared are compared in order to determine differences in hierarchical form. In order to determine any differences in data, the data described in the appropriate cells of the matching data which is to be compared is compared with entities corresponding thereto which are contained in only one of the cells. Preferably, the processing can start from the lowest level in the hierarchy.

Description

Beschreibungdescription
Verfahren zum Vergleich von Maskendaten integrierter Schaltungen mit Hilfe eines RechnersMethod for comparing mask data of integrated circuits using a computer
Bei der Realisierung hochintegrierter Schaltungen wird üblicherweise zunächst ein Schaltungsentwurf erstellt, in dem spezifiziert ist, welche Bauelemente vorgesehen sind und welches Schaltverhalten die integrierte Schaltung aufweisen soll. Ausgehend von diesem Schaltungsentwurf wird ein Layout erstellt, das die geometrische Form und Anordnung aller Komponenten der Schaltung beschreibt. Zu den Komponenten sind insbesondere dotierte Gebiete, isolierende Strukturen, leitende Strukturen, Metallisierungsebenen, Kontakte, etc. zu zählen. Das Layout ist die Grundlage zur Erstellung von Maskensätzen, die nachfolgend bei der technologischen Herstellung der integrierten Schaltung verwendet werden.When realizing highly integrated circuits, a circuit design is usually first created in which it is specified which components are provided and which switching behavior the integrated circuit should have. Based on this circuit design, a layout is created that describes the geometric shape and arrangement of all components of the circuit. The components include in particular doped areas, insulating structures, conductive structures, metallization levels, contacts, etc. The layout is the basis for creating mask sets, which are subsequently used in the technological manufacture of the integrated circuit.
Ein Maskensatz wird dabei in der Regel durch eine Datei be- schrieben, die eine geometrische Beschreibung aller für die Fertigung der integrierten Schaltung erforderlichen Masken enthält. Die in dieser Datei enthaltenen Daten werden auch als Maskendaten bezeichnet. Die verschiedenen Masken eines Maskensatzes werden durch Mas ennummern unterschieden.A mask set is usually described by a file that contains a geometric description of all the masks required for the manufacture of the integrated circuit. The data contained in this file is also referred to as mask data. The different masks of a mask set are distinguished by mask numbers.
Im Hinblick auf die großen Datenmengen, die zur Beschreibung eines Maskensatzes erforderlich sind, werden die Maskendaten zumeist in hierarchischer Form beschrieben. Das heißt, es werden Ausschnitte der Masken, die sich wiederholen, in Zel- len gespeichert. Zu den Zellen wird eine Instanz, häufig auch Zellaufruf genannt, gespeichert, die die geometrische Anordnung und die Orientierung der Zelle und die einzusetzende Zelle festlegt. Dabei kann eine Zelle weitere Zellen enthalten, die als Subzellen bezeichnet werden. Zur Beschreibung der Hierarchie wird häufig ein Zellgraph verwendet, in dem sich keine Zelle direkt oder indirekt selbst referenziert, oder ein Instanzenbauir., dem die einzelnen Instanzen der Zei- len zu entnehmen sind. Die oberste Ebene wird als Topzelle bezeichnet, die inklusive aller Subzellen die Daten des Maskensatzes repräsentiert.In view of the large amounts of data that are required to describe a mask set, the mask data are mostly described in a hierarchical form. This means that sections of the masks that are repeated are saved in cells. An instance, often also called a cell call, is stored for the cells, which defines the geometric arrangement and orientation of the cell and the cell to be used. A cell can contain further cells, which are referred to as subcells. A cell graph in which no cell directly or indirectly references itself is often used to describe the hierarchy, or an instance builder that contains the individual instances of the time len can be seen. The top level is referred to as the top cell, which, including all subcells, represents the data of the mask set.
Die Beschreibung von Maskendaten erfolgt m unterschiedlichen Formaten, die alle denselben prinzipiellen Aufbau haben: Die Geometrie einzelner Strukturen wird durch geometrische Grundelemente wie zum Beispiel Polygone, Rechtecke oder dergleichen beschrieben. Jedem dieser Grundelemente wird eine Maskennummer zugeordnet und alle Grundelemente mit derselben Maskennummer bilden die Beschreibung einer Maske des Maskensatzes .Mask data are described in different formats, all of which have the same basic structure: The geometry of individual structures is described by basic geometric elements such as polygons, rectangles or the like. A mask number is assigned to each of these basic elements and all basic elements with the same mask number form the description of a mask of the mask set.
Bei hierarchischem Aufbau der Maskendaten werden auch Grunde- lemente mit unterschiedlichen Maskennummern zu einer Zelle zusammengefaßt .With the hierarchical structure of the mask data, basic elements with different mask numbers are also combined to form a cell.
Der hierarchische Aufbau von Maskendaten ermöglicht eine sehr kompakte Beschreibung der Maskendaten von Schaltungen mit re- gelmaßig sich wiederholenden Strukturen. So wird zum Beispiel für eine DRAM - Anordnung eine Speicherzelle nur einmal beschrieben und über mehrere Hierarchiestufen instanziert, statt dieselben Daten vielfach zu wiederholen.The hierarchical structure of mask data enables a very compact description of the mask data of circuits with regularly repeating structures. For example, for a DRAM arrangement, a memory cell is only written once and instantiated over several hierarchical levels instead of repeating the same data many times.
Die Maskendaten sind im gesamten Designprozeß von zentraler Bedeutung. Daher besteht häufig die Notwendigkeit, verschiedene Datensätze, die denselben Maskensatz beschreiben, miteinander zu vergleichen und gegebenenfalls bestehende Unterschiede zu festzustellen. Dieses ist insbesondere erforder- lieh zur Verifikation der Maskendaten nach einer manuellen Änderung der Entwurfsdaten m einem Layout-Editor. Dabei muß festgestellt werden, ob wirklich nur die beabsichtigten Änderungen vorgenommen wurden. Derartige Vergleiche sind auch erforderlich, um zu überprüfen, ob unterschiedliche Programme die Maskendaten identisch interpretieren. Zum Beispiel nach einer Hin - und Herwandlung der Daten zwischen unterschiedlichen Formaten muß ein Vergleich auf geometrische Unterschiede durchgeführt werden. Auch wenn verschiedene Teams, zum Beispiel bei Kooperationspartnern, an dem Entwurfsprozeß betei¬ ligt sind muß beim Datenaustausch festgestellt werden, was genau geändert wurde.The mask data is of central importance in the entire design process. It is therefore often necessary to compare different data sets that describe the same mask set with one another and to determine any differences that may exist. This is particularly necessary to verify the mask data after a manual change of the design data in a layout editor. It must be determined whether only the intended changes have been made. Such comparisons are also necessary to check whether different programs interpret the mask data identically. For example, after the data has been converted back and forth between different formats, a comparison must be made for geometric differences be performed. Although several teams include cooperation partners, in the design process ligt BETEI ¬ must be determined during data exchange, what exactly has changed.
Bei einem geometrischen Vergleich von Maskendaten müssen folgende Kriterien erfüllt sein: Es sollen nur solche Unterschiede in den Daten gemeldet werden, die tatsächlich zu Unterschieden auf den Masken führen. Wird zum Beispiel eine komplizierte geometrische Figur, zum Beispiel eine L - förmi- ge Struktur, einerseits durch ein Polygon und andererseits durch mehrere Grundelemente, zum Beispiel zwei Rechtecke, beschrieben, so sind die zugehörigen Maskendaten unterschiedlich. Die resultierenden Maskengeometrien sind jedoch iden- tisch.When comparing mask data geometrically, the following criteria must be met: Only those differences in the data that actually lead to differences on the masks should be reported. If, for example, a complicated geometric figure, for example an L-shaped structure, is described on the one hand by a polygon and on the other hand by several basic elements, for example two rectangles, the associated mask data are different. The resulting mask geometries are, however, identical.
Ferner soll ein geometrischer Vergleich möglich sein, wenn in beiden Datensätzen die Maskendaten hierarchisch aufgebaut sind, die dabei verwendeten Hierarchien jedoch nicht isomorph sind. Gegebenenfalls sollen Unterschiede im hierarchischen Aufbau festgestellt werden können.Furthermore, a geometrical comparison should be possible if the mask data are structured hierarchically in both data records, but the hierarchies used are not isomorphic. If necessary, it should be possible to determine differences in the hierarchical structure.
Schließlich soll der Vergleich von Datensätzen auch für Maskendaten, die für große Schaltungen mit mehrere Millionen Transistoren verwendet werden, in möglichst kurzer Zeit erfolgen können.Finally, the comparison of data sets for mask data, which are used for large circuits with several million transistors, should also be possible in the shortest possible time.
Verfahren für den Vergleich geometrischer Daten sind lange bekannt (siehe z. B. Lauther U., Proc. 18th Design Automation Conference, 1981, pp.555-562 ) . Sie sind insbesondere Bestandteil aller CAD Systeme für die Layout Verifikation. Dabei werden die Daten zweier Masken durch eine Boole'sche Operation verknüpft. Das Ergebnis wird in Form von einer neuen, abgeleiteten Maske ausgegeben. Eine EXOR - Verknüpfung (Exklu- sives Oder) liefert die geometrischen Unterschiede zwischen den betrachteten Masken. Die bekannten Verfahren weisen den Nachteil auf, daß nur jeweils zwei Masken innerhalb eines Satzes von Maskendaten, daß heißt innerhalb einer Datei, verglichen werden können. Der Vergleich von Masken aus zwei unterschiedlichen Dateien ist daher nur über Umwege möglich: Die zu vergleichenden Masken müssen zuvor in eine gemeinsame Datei übertragen werden. Dabei müssen die Daten auch in der gemeinsamen Datei als unterschiedliche Masken erkennbar sein. Unterschiedliche Masken werden im allgemeinen über Maskennummern unterschieden. Haben nun die zu vergleichenden Masken in den verschiedenen Datensätzen übereinstimmende Maskennummern, so müssen in der gemeinsamen Datei Maskennummern verändert werden, um das Erfordernis der unterschiedlichen Maskennummern zu erfüllen. Dieses erfordert zeitraubende Zwischen- schπtte. Außerdem können nur einzelne Masken in einem Schritt verglichen werden. Der Vergleich kompletter Masken- satze in einem Schritt ist nicht möglich.Methods for comparing geometric data have long been known (see, for example, Lauther U., Proc. 18 th Design Automation Conference, 1981, pp. 555-562). In particular, they are part of all CAD systems for layout verification. The data of two masks are linked by a Boolean operation. The result is output in the form of a new, derived mask. An EXOR link (exclusive or) provides the geometric differences between the masks under consideration. The known methods have the disadvantage that only two masks within each Set of mask data, that is, within a file, can be compared. The comparison of masks from two different files is therefore only possible via detours: The masks to be compared must first be transferred to a common file. The data must also be recognizable as different masks in the common file. Different masks are generally distinguished by mask numbers. If the masks to be compared now have matching mask numbers in the different data records, then mask numbers have to be changed in the common file in order to meet the requirement of the different mask numbers. This requires time-consuming intermediate sections. In addition, only individual masks can be compared in one step. It is not possible to compare complete sets of masks in one step.
Ferner ist in vielen bekannten Verfahren nur ein sogenannter flacher Vergleich möglich. Das heißt hierarchisch aufgebaute Daten können nicht m der hierarchischen Beschreibungsform verglichen werden. Sie müssen zuvor expandiert werden. Das heißt die Daten einer Zelle werden für jede in Instanz voll- standig übernommen. Das fuhrt zu größeren Datenmengen und dazu, daß die Daten ein und derselben Zelle für jede Instanz erneut verglichen werden. Dafür sind extrem lange Laufzeiten, oft von mehreren Tagen, erforderlich. Für heutige Designs ist ein flacher Vergleich praktisch nicht durchfuhrbar.Furthermore, only a so-called flat comparison is possible in many known methods. This means that hierarchically structured data cannot be compared in the hierarchical description form. They need to be expanded beforehand. This means that the data of a cell are completely adopted for each instance. This leads to larger amounts of data and to the fact that the data of one and the same cell are compared again for each instance. This requires extremely long terms, often of several days. A flat comparison is practically not feasible for today's designs.
In Meier W., Proc. lΞt European Design Automation Conference, Glasgow, 1990, pp . 382-386 sind hierarchische Verfahren für die Verarbeitung geometrischer Daten, insbesondere bei der Layout Verifikation, vorgeschlagen worden. Dabei wird im Prinzip jede m den Daten beschriebene Zelle nur einmal bearbeitet. Das Ergebnis wird für alle Instanzen der Zelle wieder verwendet. Auch in diesem Verfahren kann jedoch nur ein Da- tensatz als Eingabe verwendet werden. Für den geometrischen Vergleich sind jedoch zwei Datensatze als Eingabe erforderlich. Die gemeinsame Behandlung zweier hierarchisch aufgebau- ter Datensatze mit nicht isomorphen Hierarchien ist auch bei diesem Verfahren nicht möglich.In Meier W., Proc. l Ξt European Design Automation Conference, Glasgow, 1990, pp. 382-386, hierarchical methods for the processing of geometric data, in particular for layout verification, have been proposed. In principle, each cell described in the data is processed only once. The result is used again for all instances of the cell. However, only one data record can also be used as input in this method. However, two data sets are required as input for the geometric comparison. The joint treatment of two hierarchically structured ter records with non-isomorphic hierarchies is also not possible with this method.
Der Erfindung liegt daher das Problem zugrunde, ein Verfahren zum Vergleich von Maskendaten integrierter Schaltungen anzugeben, das auch für große integrierte Schaltungen in vertretbarer Zeit durchfuhrbar ist und das den Vergleich von hierarchisch aufgebauten Datensätzen mit nicht notwendigerweise isomorphen Hierarchien erlaubt.The invention is therefore based on the problem of specifying a method for comparing mask data of integrated circuits which can also be carried out for large integrated circuits in a reasonable time and which allows the comparison of hierarchically structured data sets with not necessarily isomorphic hierarchies.
Dieses Problem wird erfmdungsgemaß gelost durch ein Verfahren gemäß Anspruch 1. Weitere Ausgestaltungen in der Erfindung gehen aus den übrigen Ansprüchen hervor.This problem is solved according to the invention by a method according to claim 1. Further developments in the invention emerge from the remaining claims.
Zum Vergleich von Maskendaten integrierter Schaltungen, die m einem ersten Datensatz, in dem die Daten eines Maskensatzes in hierarchischer Form beschrieben sind, und in einem zweiten Datensatz, m dem die Daten des Maskensatzes m hierarchischer Form beschrieben sind, enthalten sind, werden Na- en von m dem ersten Datensatz enthaltenen Zellen m einem ersten geordneten Baum verkettet. Namen von im zweiten Datensatz enthaltenen Zellen werden m einem zweiten geordneten Baum verkettet. Anhand einer vorgegebenen Zuordnung werden einander zugeordnete Namen m dem ersten Baum und m dem zweiten Baum gesucht. Die zugehörigen einander zugeordneten Zellen werden als zu vergleichende Paare registriert. Anschließend werden für die zu vergleichenden Paare m den Zellen enthaltene Instanzen verglichen. Es wird ein Protokoll erzeugt, das Zellen und Instanzen, die jeweils nur in einem der Datensatze vorkommen, enthalt. Das Ergebnis des Verfahrens ist somit eine Aufstellung αer Unterschiede im hierarchischen Aufbau der Daten m dem ersten Datensatz und m dem zweiten Datensatz. Somit können Daten, die mit nicht isomorphen Hierarchien besenrieben werden, miteinander verglichen werden. Falls erforderlich, werden die Daten des ersten Datensatzes und die Daten des zweiten Datensatzes zu Beginn des Verfahrens m ein Format umgewandelt, bei dem gezielt auf die Daten jeweils einer Zelle zugegriffen werden kann. Üblicherweise werden Maskendaten im sogenannten GDSII - Format beschrieben, das dieses Erfordernis nicht erfüllt.To compare mask data of integrated circuits which are contained in a first data set in which the data of a mask set are described in a hierarchical form and in a second data set in which the data of the mask set are described in a hierarchical form, names are given cells m contained in the first data set are linked in a first ordered tree. Names of cells contained in the second data set are concatenated in a second ordered tree. On the basis of a predefined assignment, names which are assigned to one another are sought in the first tree and in the second tree. The associated cells assigned to one another are registered as pairs to be compared. Subsequently, the instances contained in the cells are compared for the pairs to be compared. A protocol is generated that contains cells and instances that only occur in one of the data records. The result of the method is thus a list of the differences in the hierarchical structure of the data in the first data set and in the second data set. In this way, data that is covered with non-isomorphic hierarchies can be compared with each other. If necessary, the data of the first data set and the data of the second data set at the beginning of the process m a format converted in the targeted to the data j in each case of a cell can be accessed. Mask data is usually described in the so-called GDSII format, which does not meet this requirement.
Gemäß einer Ausgestaltung der Erfindung erfolgt die Zuordnung der Namen dadurch, daß gleiche Namen m dem ersten Baum und in dem zweiten Baum einander zugeordnet werden. Alternativ können unterschiedlich benannte Zellen einander zugeordnet werden. In diesem Fall ist es vorteilhaft, die Zuordnung der Namen m einer Tabelle zu hinterlegen, auf die für die Zuordnung zugegriffen werden kann.According to one embodiment of the invention, the names are assigned by assigning the same names in the first tree and in the second tree to one another. Alternatively, differently named cells can be assigned to each other. In this case, it is advantageous to store the assignment of the names in a table that can be accessed for the assignment.
Vorzugsweise werden die Namen der im ersten Datensatz und im zweiten Datensatz enthaltenen Zellen in einen Arbeitsspeicher des Rechners eingelesen, wobei der erste geordnete Baum und der zweite geordnete Baum jeweils alphabetisch geordnet wer- den .The names of the cells contained in the first data record and in the second data record are preferably read into a working memory of the computer, the first ordered tree and the second ordered tree each being arranged alphabetically.
Es liegt im Rahmen der Erfindung, beim Vergleich der Instanzen zwei Instanzen dann einander zuzuordnen, wenn die darin aufgerufenen Zellen einander zugeordnet sind und wenn alle Transformationsparameter, das heißt die geometrische Anordnung und die Orientierung der Zelle, der Instanzen übereinstimmen.It is within the scope of the invention to assign two instances to one another when comparing the instances if the cells called therein are assigned to one another and if all transformation parameters, that is to say the geometric arrangement and orientation of the cell, of the instances match.
Sollen beim Vergleich der Maskendaten nicht nur Unterschiede m den Hierarchien sondern auch geometrische Unterschiede festgestellt werden, so ist es vorteilhaft, für die zu vergleichenden Paare jeweils die m den zugehörigen Zellen beschriebenen Daten und Daten derjenigen Instanzen der zugehörigen Zellen, die nur m einer der Zellen enthalten sind, zu vergleichen. Beim Vergleich gefundene Unterschiede werden m einem dritten Datensatz zusammengefaßt, der ausgegeben werden kann. Dabei werden vorzugsweise alle zu vergleichenden Paare abgearbeitet, wobei die Bearbeitung bei der untersten Hierarchiestufe beginnt. Das heißt ein zu vergleichendes Paar wird erst dann abgearbeitet, wenn der Vergleich der darin direkt und indirekt enthaltenen Instanzen bereits erfolgt ist.If not only differences in the hierarchies but also geometric differences are to be determined when comparing the mask data, then it is advantageous for the pairs to be compared in each case the data and data of the instances of the associated cells that are described in the associated cells and that are only m one of the cells are included to compare. Differences found in the comparison are summarized in a third data record that can be output. All pairs to be compared are preferably processed, whereby the processing begins at the lowest hierarchical level. This means that a pair to be compared is only processed when the comparison of the instances directly and indirectly contained therein has already been carried out.
In diesem Verfahren werden bei Unterschieden in der Hierarchie im ersten Datensatz und im zweiten Datensatz die Daten derjenigen Zellen hinzugefugt, die nur in einem der Datens tze m der zu vergleichenden Zelle aufgerufen werden. Es erfolgt somit ein Expandieren der Daten nur dort, wo Unterschiede m den Hierarchien vorliegen. Die Vergrößerung der Datenmenge wird daher auf die Falle begrenzt, in denen sie aufgrund der unterschiedlichen Hierarchie unbedingt erforderlich ist. Daher ist das Verfahren mit vertretbarem Zeitaufwand durchfuhrbar.In this method, if there are differences in the hierarchy in the first data record and in the second data record, the data of those cells are added which are only called up in one of the data records of the cell to be compared. The data is therefore only expanded where there are differences in the hierarchies. The increase in the amount of data is therefore limited to the cases in which it is absolutely necessary due to the different hierarchy. The process can therefore be carried out with a reasonable amount of time.
Der Vergleich der Daten erfolgt vorzugsweise unter Verwendung einer Boole' sehen EXOR - Verknüpfung.The comparison of the data is preferably carried out using a Boolean EXOR link.
Es liegt im Rahmen der Erfindung, ausgehend vom Ergebnis des Vergleichs einen optimierten Datensatz für den Maskensatz zu erstellen. Dieser optimierte Datensatz wird zur Herstellung des Maskensatzes verwendet. Der Maskensatz wiederum wird zur Fertigung einer integrierten Schaltung eingesetzt.It is within the scope of the invention to create an optimized data set for the mask set based on the result of the comparison. This optimized data set is used to produce the mask set. The mask set in turn is used to manufacture an integrated circuit.
Im folgenden wird die Erfindung anhand eines Ausfuhrungsbei- spiels, das m den Figuren dargestellt ist, naher erläutert.The invention is explained in more detail below on the basis of an exemplary embodiment which is illustrated in the figures.
Figur 1 zeigt zwei Datensatze, die einen Maskensatz beschreiben.FIG. 1 shows two data sets that describe a mask set.
Figur 2 zeigt zwei geordnete Baume mit Zellennamen. Figur 3 zeigt die paarweise Zuordnung von Instanzen innerhalb einer Zelle. Figur 4 zeigt Daten beim paarweisen Vergleich von Zellen.Figure 2 shows two ordered trees with cell names. Figure 3 shows the pairing of instances within a cell. Figure 4 shows data when comparing cells in pairs.
Figur 5 zeigt Daten beim paarweisen Vergleich von Zellen mit expandierten aufgerufenen Zellen.FIG. 5 shows data when comparing cells in pairs with expanded called cells.
Ein Maskensatz wird durch einen ersten Datensatz M und einen zweiten Datensatz M' beschrieben. Sowohl der erste Datensatz M als auch der zweite Datensatz M' ist hierarchisch aufgebaut. Der erste Datensatz M enthalt Zellen A, B, C, wobei in der Zelle A die Zelle B zweimal und die Zelle C einmal m- stanziert wird. Ferner enthalt die Zelle A des ersten Datensatzes M weitere geometrische Strukturen.A mask set is described by a first data set M and a second data set M '. Both the first data record M and the second data record M 'have a hierarchical structure. The first data record M contains cells A, B, C, cell A being punched twice and cell C m once. Furthermore, cell A of the first data record M contains further geometric structures.
Der Datensatz M' enthalt die Zellen A, B, C, wobei m der Zelle A die Zelle B zweimal und die Zelle C zweimal mstan- ziert ist.The data record M ' contains the cells A, B, C, where m of the cell A, the cell B is twice and the cell C is m twice.
Die Daten des ersten Datensatzes M und des zweiten Datensatzes M' liegen in dem GDSII Format vor. Im ersten Schritt wer- den sie in ein internes Format umgewandelt, bei dem gezielt auf die Daten jeweils einer Zelle zugegriffen werden kann.The data of the first data record M and the second data record M 'are in the GDSII format. In the first step, they are converted into an internal format in which the data of one cell can be specifically accessed.
Nachfolgend werden die Namen der m dem ersten Datensatz M und im zweiten Datensatz M' enthaltenen Zellen A, B, C m den Arbeitsspeicher des Rechners eingelesen. F r jeden Datensatz M, M' getrennt werden die Namen m einem alphabetisch geordneten Baum verkettet ( siehe Figur 2) .The names of the cells A, B, C m contained in the first data record M and in the second data record M 'are read into the working memory of the computer. For each data record M, M ', the names m are linked in an alphabetically ordered tree (see FIG. 2).
Nachfolgend werden identische Namen m beiden Bäumen gesucht und die zugehörigen Zellen als zu vergleichendes Paar registriert. Alternativ können auch unterschiedlich benannte Zellen der beiden Datensatze einander zugeordnet werden. In diesem Fall wird die Zuordnung der Namen zum Beispiel m einer Tabelle hinterlegt.In the following, identical names are searched for in both trees and the associated cells are registered as a pair to be compared. Alternatively, differently named cells of the two data records can also be assigned to one another. In this case, the assignment of the names is stored, for example, in a table.
Für jedes zu vergleichende Paar von Zellen werden die darin enthaltenen Instanzen verglichen. Zwei Instanzen werden ein- ander zugeordnet, wenn die in den Instanzen aufgerufenen Zellen einander als Paar zugeordnet sind und wenn alle Transfor- mationsparameter der Instanzen übereinstimmen. In Zelle A des ersten Datensatzes M werden die Zelle B mit den Transformationsparametern X = 10, Y = 100, die Zelle B mit den Transformationsparametern X = 10, Y = 500 und die Zelle C mit den Transformationsparametern X = 300, Y = 550 aufgerufen. Weitere Instanzen enthalt die Zelle A des ersten Datensatzes M nicht.For each pair of cells to be compared, the instances contained therein are compared. Two instances are assigned to another if the cells called in the instances are assigned to one another as a pair and if all transformation parameters of the instances match. In cell A of the first data record M, cell B is called with the transformation parameters X = 10, Y = 100, cell B with the transformation parameters X = 10, Y = 500 and cell C with the transformation parameters X = 300, Y = 550 , Cell A of the first data record M does not contain any further instances.
In der Zelle A des zweiten Datensatzes M' werden die Zelle B mit den Transformationsparametern X = 10, Y = 100, die Zelle B mit den Transformationparametern X = 10, Y = 500, die Zelle C mit den Transformationsparametern, X = 300, Y = 150 und die Zelle C mit den Transformationsparametern X = 300, Y = 550 mstanziert. Der Vergleich der Zelle A des ersten Datensatzes M und des zweiten Datensatzes M' zeigt, daß die Zelle C mit den Transformationsparametern X = 300, Y = 150 nur in der Zelle A des zweiten Datensatzes M' auftritt (siehe Figur 3) .In cell A of the second data record M ', cell B with the transformation parameters X = 10, Y = 100, cell B with the transformation parameters X = 10, Y = 500, cell C with the transformation parameters, X = 300, Y = 150 and the cell C is punched with the transformation parameters X = 300, Y = 550. The comparison of cell A of the first data record M and the second data record M ' shows that the cell C with the transformation parameters X = 300, Y = 150 only occurs in cell A of the second data record M ' (see FIG. 3).
Nachfolgend werden die Unterschiede im hierarchischen Aufbau protokolliert. Es wird aufgeführt, daß die Instanz der Zelle C mit den Transformationparametern X = 300, Y = 150 nur in Zelle A des zweiten Datensatzes M' enthalten ist.The differences in the hierarchical structure are recorded below. It is shown that the instance of cell C with the transformation parameters X = 300, Y = 150 is only contained in cell A of the second data record M '.
Zum geometrischen Vergleich der Maskendaten werden alle Paare einander zugeordneter Zellen miteinander verglichen. Dabei beginnt der Vergleich bei der untersten hierarchischen Ebene, daß heißt bei den Zellen B und C (siehe Figur 4) . Für die Zellen B und C wird die geometrische Beschreibung verglichen. Der Vergleich erfolgt zum Beispiel durch eine Boole'sche EXOR- Verknüpfung. Nach Abschluß des Vergleichs der Zellen B und C der untersten hierarchischen Ebene werden die Zellen A der nächst höheren hierarchischen Ebene des ersten Datensat- zes M und des zweiten Datensatzes M' verglichen (siehe Figur 5) . Dabei wird m dem zweiten Datensatz M' die mit den Trans- formationspara etern X = 300, Y = 150 mstanzierte Zelle C, die in dem ersten Datensatz M nicht enthalten ist, expandiert, daß heißt die Daten dieser Zelle C werden explizit m die Zelle A aufgenommen. Nachfolgend wird der geometrische Vergleich der Daten wiederum durch eine Boole'sche EXOR - Verknüpfung durchgeführt.For the geometric comparison of the mask data, all pairs of cells assigned to one another are compared with one another. The comparison begins at the lowest hierarchical level, that is to say with cells B and C (see FIG. 4). For cells B and C, the geometric description is compared. The comparison is carried out, for example, using a Boolean EXOR operation. After the comparison of cells B and C of the lowest hierarchical level has been completed, cells A of the next higher hierarchical level of the first data record M and the second data record M 'are compared (see FIG. 5). In this case, the second data record M 'is the cell C, which is punched with the transformation parameters X = 300, Y = 150. that is not contained in the first data record M expands, that is to say the data of this cell C are explicitly recorded in cell A. The geometric comparison of the data is then carried out again using a Boolean EXOR operation.
Die be m Vergleich der Daten gefundenen Unterschiede werden in geometrischer Form zu einer abgeleiteten Maske zusammengefaßt, deren Daten m einem dritten Datensatz enthalten sind. The differences found in the comparison of the data are combined in geometric form to form a derived mask, the data of which are contained in a third data set.

Claims

Patentansprüche claims
1. Verfahren zum Vergleich von Maskendaten integrierter Schaltungen mit Hilfe eines Rechners, - bei dem für einen ersten Datensatz, in dem die Daten eines Maskensatzes in hierarchischer Form beschrieben sind, und für einen zweiten Datensatz, in dem die Daten des Maskensatzes in hierarchischer Form beschrieben sind, Namen von im ersten Datensatz enthaltenen Zellen in einem ersten ge- ordneten Baum und Namen von im zweiten Datensatz enthaltenen Zellen in einem zweiten geordneten Baum verkettet werden,1. Method for comparing mask data of integrated circuits with the aid of a computer, in which for a first data set in which the data of a mask set are described in a hierarchical form and for a second data set in which the data of the mask set are described in a hierarchical form names of cells contained in the first data record are linked in a first ordered tree and names of cells contained in the second data record in a second ordered tree,
- bei dem anhand einer vorgegebenen Zuordnung einander zugeordnete Namen in dem ersten Baum und in dem zweiten Baum gesucht werden und einander zugeordnete Zellen als zu vergleichende Paare registriert werden,in which names assigned to one another are searched for in the first tree and in the second tree on the basis of a predetermined assignment and cells assigned to one another are registered as pairs to be compared,
- bei dem für die zu vergleichenden Paare in den Zellen enthaltene Instanzen verglichen werden,in which the instances contained in the cells are compared for the pairs to be compared,
- bei dem ein Protokoll erzeugt wird, das Zellen und Instan- zen, die jeweils nur in einem der Datensätze vorkommen, enthält .- in which a protocol is generated that contains cells and instances that only occur in one of the data records.
2. Verfahren nach Anspruch 1, bei dem die Daten des ersten Datensatzes und die Daten des zweiten Datensatzes zu Beginn des Verfahrens in ein Format umgewandelt werden, bei dem gezielt auf die Daten jeweils einer Zelle zugegriffen werden kann.2. The method according to claim 1, in which the data of the first data set and the data of the second data set are converted at the beginning of the method into a format in which the data of one cell can be specifically accessed.
3. Verfahren nach Anspruch 1 oder 2, bei dem gleiche Namen im ersten geordneten Baum und im zweiten geordneten Baum einander zugeordnet werden.3. The method of claim 1 or 2, wherein the same names in the first ordered tree and in the second ordered tree are assigned to each other.
4. Verfahren nach Anspruch 1 oder 2, bei dem die Zuordnung der Namen im ersten geordneten Baum und im zweiten geordneten Baum in einer Tabelle enthalten sind.4. The method of claim 1 or 2, wherein the assignment of the names in the first ordered tree and in the second ordered tree are contained in a table.
5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem die Namen der im ersten Datensatz und im zweiten Datensatz enthaltenen Zellen in einen Arbeitsspeicher des Rechners eingelesen werden und der erste geordnete Baum und der zweite geordnete Baum jeweils alphabetisch geordnet werden.5. The method according to any one of claims 1 to 4, in which the names of the cells contained in the first data record and in the second data record are read into a working memory of the computer and the first ordered tree and the second ordered tree are each arranged alphabetically.
6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem beim Vergleich der Instanzen zwei Instanzen einander zugeordnet werden, wenn die darin aufgerufenen Zellen einander zugeordnet sind und wenn alle Transformationsparameter der Instanzen übereinstimmen.6. The method according to any one of claims 1 to 5, in which, when comparing the instances, two instances are assigned to one another, if the cells called therein are assigned to one another and if all transformation parameters of the instances match.
7. Verfahren nach einem der Ansprüche 1 bis 6,7. The method according to any one of claims 1 to 6,
- bei dem für die zu vergleichenden Paare jeweils die in den zugehörigen Zellen beschriebenen Daten und Daten derjeni- gen Instanzen der zugehörigen Zellen, die nur in einer der Zellen enthalten sind, verglichen werden,in which for the pairs to be compared the data described in the associated cells and data of those instances of the associated cells which are only contained in one of the cells are compared,
- bei dem beim Vergleich gefundene Unterschiede in einem dritten Datensatz zusammengefaßt werden.- In which the differences found in the comparison are summarized in a third data set.
8. Verfahren nach Anspruch 7, bei dem alle zu vergleichenden Paare abgearbeitet werden, wobei ein zu vergleichendes Paar erst dann bearbeitet wird, wenn der Vergleich der darin direkt und indirekt enthaltenen Instanzen bereits erfolgt ist.8. The method according to claim 7, in which all pairs to be compared are processed, a pair to be compared being processed only when the comparison of the instances directly and indirectly contained therein has already been carried out.
9. Verfahren nach Anspruch 7 oder 8, bei dem der Vergleich der Daten unter Verwendung einer Booleschen EXOR - Verknüpfung erfolgt.9. The method according to claim 7 or 8, in which the comparison of the data is carried out using a Boolean EXOR operation.
10. Verfahren nach einem der Ansprüche 1 bis 9, bei dem ausgehend vom Ergebnis des Vergleichs ein optimierter Datensatz für den Maskensatz erstellt wird.10. The method according to any one of claims 1 to 9, in which, based on the result of the comparison, an optimized data set for the mask set is created.
11. Verfahren nach Anspruch 10, bei dem unter Verwendung des optimierten Datensatzes der Maskensatz hergestellt wird und unter Verwendung des Maskensatzes eine integrierte Schaltung hergestellt wird. 11. The method according to claim 10, in which the mask set is produced using the optimized data set and an integrated circuit is produced using the mask set.
PCT/DE2000/002972 1999-09-03 2000-08-31 Method for comparing mask data of integrated circuits using a computer WO2001018695A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19942159 1999-09-03
DE19942159.5 1999-09-03

Publications (2)

Publication Number Publication Date
WO2001018695A2 true WO2001018695A2 (en) 2001-03-15
WO2001018695A3 WO2001018695A3 (en) 2001-09-13

Family

ID=7920738

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2000/002972 WO2001018695A2 (en) 1999-09-03 2000-08-31 Method for comparing mask data of integrated circuits using a computer

Country Status (1)

Country Link
WO (1) WO2001018695A2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5249133A (en) * 1991-04-10 1993-09-28 Sun Microsystems, Inc. Method for the hierarchical comparison of schematics and layouts of electronic components
US5559718A (en) * 1994-04-28 1996-09-24 Cadence Design Systems, Inc. System and method for model-based verification of local design rules
US5671399A (en) * 1994-07-04 1997-09-23 Siemens Aktiengesellschaft Method for hierarchic logic verification of VLSI circuits

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5249133A (en) * 1991-04-10 1993-09-28 Sun Microsystems, Inc. Method for the hierarchical comparison of schematics and layouts of electronic components
US5559718A (en) * 1994-04-28 1996-09-24 Cadence Design Systems, Inc. System and method for model-based verification of local design rules
US5671399A (en) * 1994-07-04 1997-09-23 Siemens Aktiengesellschaft Method for hierarchic logic verification of VLSI circuits

Also Published As

Publication number Publication date
WO2001018695A3 (en) 2001-09-13

Similar Documents

Publication Publication Date Title
DE102006037162B4 (en) Method and apparatus and their use for testing the layout of an electronic circuit
DE102007042752B4 (en) Method for analyzing the reliability of technical installations using physical models
DE102015200694A1 (en) METHOD, COMPUTER SYSTEM AND COMPUTER-READABLE STORAGE MEDIUM FOR PRODUCING A LAYOUT OF AN INTEGRATED CIRCUIT
DE112013006769T5 (en) Flow program component generation program and flow program component generation device
WO2008025719A1 (en) Method for producing a size-optimized delta file
DE10138142B4 (en) Method for analyzing an integrated electrical circuit
DE4423367A1 (en) Highly integrated circuit hierarchical logic verification method
DE102018128696A1 (en) Program comparison device and program comparison method
DE10129654B4 (en) Method, apparatus and computer program product for determining effects of design changes
DE102005039394B4 (en) A method of searching for potential errors of an integrated circuit layout
WO2001018695A2 (en) Method for comparing mask data of integrated circuits using a computer
EP1068580B1 (en) Method for comparing electric circuits
DE10206658B4 (en) Method for checking an integrated electrical circuit
EP1516234A2 (en) Information generation system for product formation
EP1248430B1 (en) Method and device for generating filter masks for checking relevance of features
EP1159655B1 (en) Automation system with automation objects consisting of modular components
DE10303186B4 (en) Method for simulating an electrical circuit
EP2264626B1 (en) Method and device for efficient searching for at least one query data element
DE60035644T2 (en) Sequence planning of the non-integer simulation time for mixed-signal simulation
DE102007006184B3 (en) Method for computer-aided operation of technical network, involves characterizing network at each time by network condition that comprises multiple of parameters in network
EP0927400B1 (en) Computer-aided method for optimized arrangement of technical components in a topology to be defined in advance
DE10324565A1 (en) Process and device to design micro electronic circuits by means of high- level-synthesis has capability to plan circuits with as little power loss as possible
EP0727748A1 (en) Method and device for multilayer unsupervised learning by using a hierarchy of neural nets
EP1674953A1 (en) System and method for reusing of design related data
DE102005023145B4 (en) Method for simulating and examining an electrical circuit and storage medium

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): JP KR US

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): JP KR US

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP