WO2005109256A2 - Methos and apparatus for designing integrated circuit layouts - Google Patents

Methos and apparatus for designing integrated circuit layouts Download PDF

Info

Publication number
WO2005109256A2
WO2005109256A2 PCT/US2005/014983 US2005014983W WO2005109256A2 WO 2005109256 A2 WO2005109256 A2 WO 2005109256A2 US 2005014983 W US2005014983 W US 2005014983W WO 2005109256 A2 WO2005109256 A2 WO 2005109256A2
Authority
WO
WIPO (PCT)
Prior art keywords
environment
pretabulated
layout
feature
modification
Prior art date
Application number
PCT/US2005/014983
Other languages
French (fr)
Other versions
WO2005109256A3 (en
Inventor
Louis K. Scheffer
Steven Teig
Original Assignee
Cadence Design Systems, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/836,582 external-priority patent/US7254798B2/en
Priority claimed from US10/836,581 external-priority patent/US7082588B2/en
Application filed by Cadence Design Systems, Inc. filed Critical Cadence Design Systems, Inc.
Priority to EP05740554A priority Critical patent/EP1759322A4/en
Priority to JP2007511456A priority patent/JP5147391B2/en
Publication of WO2005109256A2 publication Critical patent/WO2005109256A2/en
Publication of WO2005109256A3 publication Critical patent/WO2005109256A3/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
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03FPHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
    • G03F1/00Originals for photomechanical production of textured or patterned surfaces, e.g., masks, photo-masks, reticles; Mask blanks or pellicles therefor; Containers specially adapted therefor; Preparation thereof
    • G03F1/36Masks having proximity correction features; Preparation thereof, e.g. optical proximity correction [OPC] design processes

Definitions

  • An integrated circuit is a device (e.g., a semiconductor device) that includes many electronic components, such as transistors, resistors, diodes, etc. These components are often interconnected to form multiple circuit components, such as gates, cells, memory units, arithmetic units, controllers, decoders, etc.
  • An IC includes multiple layers of wiring that interconnect its electronic and circuit components. Traditionally, IC's use preferred direction (“PD”) wiring models, which specify a preferred wiring direction for each of their wiring layers. In preferred direction wiring models, the preferred direction typically alternates between successive wiring layers.
  • PD preferred direction
  • a PD wiring model is the PD Manhattan wiring model, which specifies alternating layers of preferred-direction horizontal and vertical wiring.
  • Another example of a PD wiring model is the PD diagonal wiring model, which specifies alternating layers of preferred- direction diagonal wiring.
  • the PD diagonal wiring model can allow for shorter wiring distances than the PD Manhattan wiring model and can decrease the total wirelength needed to interconnect the electronic and circuit components of an IC.
  • Design engineers design IC's by transforming logical or circuit descriptions of the IC's into geometric descriptions, called layouts. To create layouts, design engineers typically use electronic design automation ("EDA”) applications. These applications provide sets of computer- based tools for creating, editing, and analyzing IC design layouts.
  • EDA electronic design automation
  • IC layouts include geometric representations of IC elements that are to be fabricated on a wafer, such as IC components, interconnect lines, via pads, etc.
  • IC layouts typically include several geometries such as (1) circuit modules (i.e., geometric representations of electronic or circuit IC components) with pins, (2) interconnect lines (i.e., geometric representations of wiring) that connect the pins of the circuit modules on a same layer, and (3) vias (i.e., geometric representations of non-planar wiring) that connect the pins of the circuit modules across different layers.
  • a lithographic plate is created based on the IC layout so that the photomask contains the various geometries of the IC layout.
  • the various geometries contained on the photomask represent the IC elements (such as IC components, interconnect lines, via pads, etc.) to be created on a wafer in a particular circuit pattern, the wafer forming the base of the integrated circuit.
  • the wafer will typically have a protective insulation layer and a light-sensitive photoresist layer placed on top.
  • a light source and lens are used to focus light through the photomask onto the photoresist layer of the wafer so that selected areas of the photoresist layer are modified (typically weakened or strengthened).
  • the circuit pattern represented on the photomask is "imprinted" on the photoresist layer of the wafer.
  • the modified areas of the photoresist layer (as well as the insulation layer beneath) is then etched away to produce the IC elements of the desired circuit pattern.
  • multiple layers of the IC are created.
  • Disparity between a geometry designed in a layout and the resulting fabricated geometry is also caused by diffracted light that strikes the geometry from surrounding geometries, the light being diffracted off the surrounding geometries during the photomask processing of the surrounding geometries.
  • This diffracted light can cause distortions or inaccuracies in the appearance of a geometry with which it makes contact.
  • RET there is a degree of unpredictability in the fabrication of geometries on a wafer.
  • Figure 1 shows an example of the variation that may result between an original geometry 105 as designed in an IC layout (and replicated on a photomask) and a fabricated geometry 120 actually produced on a wafer.
  • the original geometry 105 has five features of interest that are indicated by dots: four corner features 110 and one line-point feature 112.
  • the fabricated geometry 120 has four rounded corners 125 and a curved line segment 127.
  • the corners 125 of a geometry 120 produced on a wafer will have substantial error (i.e., will differ substantially from the comers 110 of the original geometry 105).
  • line segments of a fabricated geometry 120 can also have substantial error and be curved instead of straight, as shown in the example of Figure 1.
  • modifications are made to geometries in the IC layout (and replicated on a photomask) to adjust for the errors in the resulting geometries fabricated on the wafer.
  • Figure 2 shows an example of modifications (correcting shapes) 230 placed on the original geometry 105 and a fabricated geometry 235 actually produced on the wafer.
  • the modifications 230 are placed at the corner features 110 of the original geometry 105 which produces less rounded corners 240 in the fabricated geometry 235.
  • a modification 230 is also placed at the line-point feature 112 of the original geometry 105 which produces a less curved line segment 242 in the fabricated geometry 235. Note that although the fabricated geometry 235 produced through use of the modifications 230 is closer in appearance to the original geometry 105, there is still some disparity between the fabricated geometry 235 and the original geometry 105.
  • modifications are made to original geometries to produce only satisfactory resulting geometries that are within an allowable threshold of variance from the original geometries.
  • the first is a simulation-based approach where initial modifications are made to an original geometry in a layout and a computed simulation is performed on the original geometry to produce a simulated geometry. The simulated geometry is used to judge whether the modifications to the original geometry are satisfactory or not. If the modification to the original geometry has not produced a satisfactory simulated geometry, the modification is adjusted (e.g., made larger or smaller) and another simulated geometry is produced. This process is iterated until a satisfactory simulated geometry is produced.
  • the simulation-based approach requires that every geometry in a layout be iteratively simulated until a satisfactory geometry is produced. Considering that there may be billions of such geometries on a single layout, this approach can be very time intensive.
  • the second approach is a rule-based approach where modification rules are typically developed by an IC designer by hand. Such rules define what modifications are to be made to geometries in different situations.
  • the rule-based approach is not as time-intensive as the simulation-based approach, a large number of rules must be developed to cover the various situations that may arise in an IC layout.
  • each modification rule may be complex and cumbersome to develop and apply. As such, there is a need for a simple and efficient method for determining a modification to a geometry in a layout that is calculated to produce a satisfactory geometry when fabricated on a wafer. ⁇
  • Some embodiments of the invention provide a method for modifying features in an IC layout using a library of pretabulated models, each model containing a modification to a feature calculated to produce a satisfactory feature on a wafer. Each model also contains an environment of the feature that includes a geometry on which the feature is located and zero or more neighboring geometries.
  • a method for modifying features in an IC layout includes 1) selecting a feature in a layout for modification, 2) identifying an environment containing the feature, 3) identifying a model in a pretabulated library containing a matching environment, 4) retrieving a modification to the feature from the matching model, and 5) applying the modification to the feature in the layout.
  • the matching model also contains other data, such as simulated environment data, re-simulated environment data, electrical characteristic data, and/or an adjustment equation or function data.
  • the method retrieves (at step 4), any or all of the other types of data contained in the matching model.
  • a method for building a library of pretabulated models includes 1) creating a set of example pretabulated environments, each pretabulated environment containing a feature and one or more geometries, 2) selecting a current environment in the set, 3) creating and applying a modification to the current feature in the current environment, 4) simulating the current environment with the modification, 5) repeating steps 3 and 4 until a satisfactory simulation of the current environment and current feature is achieved, 6) creating a model of the current environment by storing data of the current environment (with the last modification made) to the model, and 7) repeating steps 2 through 6 until all environments in the set are processed.
  • a set of environments in the library is tailored towards layouts having a particular preferred-direction wiring, such as Manhattan or diagonal preferred-direction wiring. In some embodiments, a set of environments in the library is tailored towards layouts not having a particular preferred-direction wiring, such as layouts designed in analog.
  • Some embodiments of the invention provide an alternative method for modifying features in an IC layout using a library of pretabulated models, the alternative method including 1) selecting a feature in the layout for modification, 2) identifying a layout environment containing the feature, 3) determining if a model in the library contains a matching environment, 4) if so, retrieving and applying a modification to the feature from the matching model, 5) if not, determining if a model in the library contains an environment within a predetermined variance from the layout environment, 6) if so, retrieving and applying a modification to the feature from the "matching" model, and 7) if not, creating and storing a new model in the library for the layout environment.
  • the method uses a conventional rule-based approach to determine a modification to the feature in the layout when a matching model is not found in the library.
  • the method is performed without a prior pretabulated library being created, but rather, simultaneously creates a library while modifying features in a layout, i.e., creates a pretabulated library "on-the-fly" during runtime when it is used to modify a layout.
  • a model in the pretabulated library contains pretabulated environment data describing a pretabulated environment containing a feature, one or more geometries, and a modification to the feature.
  • the model also contains simulated environment data describing a simulated environment that is a prediction of how the pretabulated environment will appear once fabricated on a wafer assuming no processing variations. In some embodiments, the model also contains re-simulated environment data describing a re-simulated environment that is a prediction of how the pretabulated environment will appear once fabricated on a wafer assuming one or processing variations. Some embodiments provide an alternative library building method for building a pretabulated library of models, each model containing simulated environment data and/or re- simulated environment data.
  • the library building method includes 1) creating a set of example pretabulated environments, each pretabulated environment containing a feature, 2) selecting a current environment in the set, 3) determining a modification to a feature in the current environment that produces a satisfactory simulated environment, 4) creating a model of the current environment by storing data of the current environment to the model, 5) storing simulated environment data describing the satisfactory simulated environment to the model, 6) producing a re-simulated environment of the current environment reflecting one or more process variations, 7) storing re-simulated environment data describing the re-simulated environment to the model, and 8) repeating steps 2 through 7 until all environments in the set are processed.
  • the model also contains electrical characteristic data describing an electrical characteristic (such as capacitance, inductance, or resistance) of the pretabulated environment.
  • each model contains a characteristic equation that expresses an electrical characteristic of the pretabulated environment as a function of dimensions and placement of one or more geometries in the pretabulated environment and/or as a function of one or more process variations.
  • Some embodiments provide an alternative library building method for building a library containing capacitance equations, the method including 1) creating a set of example pretabulated environments, each pretabulated environment containing a pair of neighboring geometries, 2) selecting a current environment in the set, 3) simulating the current environment to produce an initial environment, 4) performing a three-dimensional (3D) electromagnetic simulation on the initial environment to find an initial capacitance (C 0 ) between the pair of neighboring geometries, 5) performing a re-simulation on the current environment taking into consideration example values of one or more process variations to produce a changed environment, 6) determining a distance difference ( ⁇ W) between the distances of the pair of neighboring geometries in the changed environment and the initial environment, 7) performing a 3D simulation on the changed environment to find a capacitance value (C) between the pair of neighboring geometries, 8)
  • the model also contains adjustment equation or function data describing an adjustment equation or function that uses at least one geometry coverage percentage of a specific area in a design layout to determine an adjustment to a pretabulated modification in the model.
  • Some embodiments provide an adjustment method for modifying geometries in an IC layout using a library of pretabulated models in conjunction with a predetermined adjustment equation or function. For each feature in the layout, the method includes 1) identifying a current environment containing the feature, 2) identifying a model in the library containing a matching environment, 3) retrieving, from the matching model, a modification to the feature and a predetermined adjustment equation used to adjust the modification, the adjustment equation containing one or more predetermined coefficients and one or more variables being geometry coverage percentages of particular areas in the layout, 4) determining geometry coverage percentages of areas specified in the adjustment equation, 5) determining an adjustment to be made to the modification using the adjustment equation, 6) applying the adjustment to the modification, and 7) applying the adjusted modification to the feature.
  • Some embodiments provide a library building method to produce a library containing predetermined adjustment equations or functions.
  • the method includes 1) performing a simulation on the environment taking into consideration one or more example geometry coverage values of particular regions surrounding the feature, 2) adjusting the initial modification, 3) repeating steps 1 and 2 until a satisfactory simulation is produced, 4) determining a sum adjustment made to the initial modification, 5) storing the sum adjustment value and the one or more geometry coverage values as an example result, 6) repeating steps 1 through 5 a predetermined number times to produce a set of example results, 7) determining an adjustment equation that considers all example results in the set and explains how the sum adjustment value is derived from the one or more geometry coverage values, and 8) storing the adjustment equation to a model for the environment.
  • geometries in an upper layout for an upper layer of an IC are modified using information relating to a lower layout for a lower layer of the IC. In some embodiments, geometries in the upper layout are modified using a density map of the lower layout. In some embodiments, geometries in a layout for a layer of an IC are modified based on topographic data (vertical deviation data) of the layout/layer. Some embodiments provide a method for modifying a layout for an upper layer of an IC using information relating to a layout for a lower layer of the IC.
  • the method includes 1) receiving an upper layout for an upper layer of an IC, the layout containing features and modifications to features, 2) retrieving data of a lower layout for a lower layer of the IC, 3) producing a density map of the lower layout indicating a percentage of geometry coverage in sub- regions of the lower layout, 4) selecting a current feature (having a modification) in the upper layout, 5) retrieving, from the density map, the percentage of geometry coverage of the sub- region of the lower layout that is below the current feature, 6) determining an estimate of vertical deviation of the current feature based on the geometry coverage percentage, 7) determining an alteration to the modification of the current feature based on the vertical deviation, 8) applying the alteration to the modification of the current feature, and 9) repeating steps 4 through 8 until all features in the upper layout are processed.
  • Figure 1 shows an example of the variation that may result between an original geometry as designed in an IC layout and a fabricated geometry actually produced on a wafer.
  • Figure 2 shows an example of modifications placed on the original geometry and a fabricated geometry actually produced on the wafer.
  • Figure 3 is a flowchart of a general design method for designing integrated circuit layouts.
  • Figure 4 shows a top-view diagram of a sub-region of a layout containing geometries that represent various IC elements such as circuit modules, interconnect lines, or via pads that are to be fabricated on a wafer.
  • Figure 5 shows a top-view diagram of a sub-region of a layout containing a primary geometry containing a current feature and an environment surrounding the cu ⁇ ent feature.
  • Figure 6 is a conceptual diagram of a model containing descriptive data of a pretabulated environment that matches the layout environment of Figure 5, the model being stored in a pretabulated library of models.
  • Figure 7 is a flowchart of a layout modification method for modifying geometries in an IC layout using a library of pretabulated models.
  • Figure 8 is a flowchart of a method for building a library of pretabulated models.
  • Figures 9A-9F show examples of environments that may be created for a Manhattan preferred wiring layout.
  • Figures 10A-10C show examples of environments that may be created for a diagonal preferred wiring layout.
  • Figures 11A-11C show examples of environments that may be created for an analog designed layout.
  • Figure 12 is a flowchart of a matching method for identifying a model containing a pretabulated environment that matches a layout environment.
  • Figures 13A-13H illustrate eight different orientations of a layout environment 1305, each orientation being equivalent.
  • Figure 14 is a flowchart of an alternative layout modification method for modifying geometries in an IC layout using a library of pretabulated models.
  • Figure 15 shows a conceptual diagram of data that is stored in a model of the pretabulated library.
  • Figure 16 is a flow chart of an alternative library building method for building a pretabulated library of models, each model containing simulated environment data and/or re- simulated environment data.
  • Figure 17A shows a simulation result of the pretabulated environment that does not reflect any process variations.
  • Figure 17B shows a simulation result of the same pretabulated environment of Figure 17A taking into consideration one or more process variations.
  • Figure 18 is a flowchart of an alternative library building method for producing a library containing predetermined capacitance equations.
  • Figure 19 is a flow chart of an adjustment method for modifying geometries in an IC layout using a library of pretabulated models in conjunction with a predetermined adjustment equation or function.
  • Figure 20 shows a top-view diagram of a sub-region of a layout containing various geometries, a current feature, and three radius regions surrounding the current feature.
  • Figure 21 is a flowchart of an alternative library building method used to produce a library containing predetermined adjustment equations or functions.
  • Figure 22 is a flowchart of an altering method for altering modifications to geometries in a layout for an upper layer of an IC using information relating to a layout for a lower layer of the IC.
  • Figure 23 shows a top-view diagram of a portion of a lower layout that has been divided into sub-regions.
  • Figure 24 conceptually illustrates a computer system with which some embodiments of the invention are implemented.
  • Section IE describes alternative methods of modifying geometries in an IC layout using the library of pretabulated models.
  • Section IV describes other data that can be contained in a model of the library, such as simulation data or electrical data of the environment described in the model.
  • Section V describes methods of modifying geometries in an IC layout using the library of pretabulated models in conjunction with equation or function-based methods.
  • Section VI describes methods for modifying geometries in a layout for a layer of an IC using information relating to a layout for another layer of the IC.
  • SECTION I GENERAL METHOD FOR DESIGNING, TERMS, AND CONCEPTS Figure 3 is a flowchart of a general design method 300 for designing integrated circuit layouts.
  • the method 300 can be implemented, for example, by an electronic design automation ("EDA") application that creates, edits, or analyzes IC design layouts.
  • EDA electronic design automation
  • the general design method 300 begins when an original design layout is received (at 305) that contains a plurality of geometries, each geometry having zero or more features.
  • the original design layout is typically designed by design engineers.
  • Modifications to geometries and features of the layout are then determined and applied to the design layout to produce (at 310) a modified layout.
  • modifications to a layout are determined using a library of pretabulated models, each model containing a modification to be applied to a geometry or feature in the layout (as described in Section -H).
  • the library of models is pretabulated so as to produce a modified layout that results in a satisfactory simulated layout, i.e., a simulated layout that is within a predetermined threshold of variance from the original layout (received at 305) in appearance. Note that the following steps 315 through 330 of the method 300 are completely optional.
  • a simulated layout of the modified layout is then produced (at 315) using a simulator program.
  • the simulated layout is used to verify that the modified layout produces a satisfactory simulated layout.
  • the simulated layout is a prediction of how the modified layout will appear once fabricated on a wafer and is produced by a simulator program that assumes no processing variations (i.e., assumes "normal" processing conditions).
  • the simulator program in producing the simulated layout, the simulator program considers various factors, such as the properties of the photoresist layer, the effect of the optics of the exposing machine, the properties of the light source, the properties of the etching machines used in the photomasking process, etc. The method then determines (at 325) whether the simulated layout is satisfactory, i.e., within a predetermined threshold of variance from the original layout (received at 305) in appearance. If not, an error has occurred as the modified layout is produced using a pretabulated library of models designed to produce a satisfactory simulated layout. If the modified layout produces a satisfactory simulated layout, the method proceeds to step 330.
  • the method produces a re-simulated layout of the modified layout using a simulator program that takes into consideration one or more process variations (i.e., variations that occur during the fabrication of an IC).
  • the simulator program considers the same factors as for step 315 (e.g., the properties of the photoresist layer, the effect of the optics of the exposing machine used in the photomasking process, etc.) in addition to one or more specific process variations.
  • the re-simulated layout is also a prediction of how the modified layout will appear once fabricated on a wafer but is produced by a simulator program that assumes one or more processing variations, such as variations in lens focus or light exposure (light dosage) during the photomasking process.
  • the re- simulated layout reflects one or more processing variations and may vary significantly in appearance from the simulated layout. For example, geometries in the re-simulated layout may be thinner, thicker, or be shaped differently than corresponding geometries in the simulated layout.
  • the re-simulated layout provides a prediction of how the modified layout will appear once fabricated considering a specific process variation having a specific value (e.g., lens focus variation having a defocus value of +10 ⁇ m).
  • one or more re-simulated layouts are produced (at 330).
  • the general design method 300 then ends.
  • the re-simulated layout (produced at 330) typically provides a highly accurate prediction of how the modified layout with actually appear once fabricated.
  • the re- simulated layout may be used by a design engineer to determine whether further modifications are to be made to the modified layout.
  • the re-simulated layout may be input to various layout analysis programs, for example, to calculate electrical characteristics of the modified layout.
  • models of a pretabulated library contain data describing the simulation results of step 315 and/or the re-simulation results of step 330 (including a specific value for a specific process variation).
  • models of a pretabulated library contain data describing the simulation results of step 315 and/or the re-simulation results of step 330 (including a specific value for a specific process variation).
  • the IC design layout (received 305) will typically include several geometries such as (1) circuit modules (i.e., geometric representations of electronic or circuit IC components) with pins, (2) interconnect lines (i.e., geometric representations of wiring) that connect the pins of the circuit modules on a same layer, and (3) vias (i.e., geometric representations of non-planar wiring) that connect the pins of the circuit modules across different layers.
  • a via includes (1) one pad on each of the two layers that it traverses and (2) a cut that is the three-dimensional hole between the two layers.
  • a via pad has a particular shape when viewed from above and can comprise a geometry on an IC layer.
  • Figure 4 shows a top-view diagram of a sub-region 405 of a layout containing geometries 410 that may represent various IC elements such as circuit modules, interconnect lines, or via pads that are to be fabricated on a wafer.
  • a geometry 410 may contain a feature 415 (indicated by dots), such as a comer (i.e., a point at which two sides of the geometry meet and form an angle of 90 degrees), a bend (i.e., a point at which two sides of the geometry meet and form an angle other than 90 degrees) or a point on a side of a geometry 410 (i.e., a line-point feature).
  • a geometry containing a feature that is currently being processed by the methods of the present invention is referred to as a primary geometry.
  • Geometries neighboring the primary geometry are referred to as neighboring geometries.
  • Figure 5 shows a top-view diagram of a sub-region 505 of a layout containing a primary geometry 512 containing a current feature 515 and an environment 520 surrounding the current feature 515.
  • Various neighboring geometries 510 are also shown located about the current feature 515.
  • the environment 520 is a sub-region of a layout having a predetermined size and includes the current feature 515, part or all of the primary geometry 512 on which the current feature is located, and part or all of zero or more neighboring geometries 510.
  • the shape of the environment 520 is a four-sided polygon. In other embodiments, however, the environment 520 has another geometric shape, such as a circle or an octagon. In some embodiments, the environment 520 is a square with the current feature 515 placed in the center.
  • Figure 6 is a conceptual diagram of a model 600 containing descriptive data of a pretabulated environment 605 that matches the layout environment 520 of Figure 5, the model being stored in a pretabulated library of models.
  • the pretabulated environment 605 has a predetermined size.
  • a model contains dimensions and placement data describing the environment surrounding a feature, a modification of the feature, the primary geometry on which the feature is located, and zero or more neighboring geometries that are included in the environment.
  • the descriptive data includes coordinate values of the feature, the modification, the primary geometry, and the zero or more neighboring geometries, the coordinate values being in relation to the position of the feature in the environment (e.g., where the feature is located in the center of the environment and has x and y coordinate values of 0, 0).
  • the environment 605 described in the model 600 contains a current feature 610, a modification 615 of the current feature 610, a primary geometry 612, and one neighboring geometry 614.
  • a feature in an IC layout is processed by determining a layout environment surrounding the feature, finding a model in a pretabulated library having a matching pretabulated environment, and applying a modification contained in the model to the feature in the layout environment.
  • the feature 515 of Figure 5 can be processed by determining the layout environment 520 surrounding the feature 515, finding the model 600 (of Figure 6) having a pretabulated environment 605 that matches the layout environment 520, and applying the modification 615 contained in the model 600 to the feature 515 in the layout environment 520.
  • a processed region 530 is identified about the feature 515, the feature 515 being located in the center of the processed region 530.
  • the processed region 530 indicates that the modification made to the feature 515 is sufficient for the processed region 530 and processing of other features within the processed region 530 is unnecessary.
  • the processed region 530 may be larger or smaller in size than the environment 520 surrounding the feature 515.
  • the processed region 530 may be used to help select other features for processing (as discussed below in relation to Figure 7). Note that determining the dimensions and placement of a modification that produces a satisfactory feature on a wafer is based in large part by the environment surrounding the feature, such as the dimensions and placement of the primary and neighboring geometries. In other words, the environment surrounding the feature affects the modification that needs to be made to the feature to produce a satisfactory feature on the wafer.
  • a "layout" feature, geometry, environment, or modification refers to a feature, geometry, environment, or modification as found in a layout.
  • a "pretabulated” feature, geometry, environment, or modification is a feature, geometry, environment, or modification that is described in a pretabulated model, the model being stored in a library of pretabulated models.
  • a "simulated” feature, geometry, environment, or layout of is a prediction of how a feature, geometry, environment, or layout will appear once fabricated on a wafer and is produced by a simulator program that assumes no processing variations (i.e., assumes "normal” processing conditions).
  • a "re-simulated" feature, geometry, environment, or layout of is a prediction of how a feature, geometry, environment, or layout will appear once fabricated on a wafer and is produced by a simulator program that assumes one or more processing variations.
  • a re-simulated feature, geometry, environment, or layout does not necessarily mean that the feature, geometry, environment, or layout has been simulated before, but is used as a term to indicate a simulation reflecting one or more processing variations.
  • a fabricated feature, geometry, environment, or layout is a feature, geometry, environment, or layout actually produced on a wafer.
  • a model is said to contain a feature, geometry, environment, modification, equation, etc. when it contains data describing the feature, geometry, environment, modification, equation, etc.
  • An environment is said to contain a geometry when it contains all or only a portion of the geometry.
  • Figure 7 is a flowchart of a layout modification method 700 for modifying geometries in an IC layout using a library of pretabulated models, each model containing a modification to be applied to a geometry or feature in the IC layout.
  • the layout modification method 700 comprises step 310 of the general design method 300 (of Figure 3). As such, the method 700 receives a design layout and produces a modified layout.
  • the method 700 can be implemented, for example, by an electronic design automation (“EDA”) application that creates, edits, or analyzes IC design layouts.
  • EDA electronic design automation
  • the method 700 starts when it receives (at 705) an IC design layout having one or more geometries, each geometry containing zero or more features to be modified. The method then selects (at 710) a current feature in the layout for modification. In some embodiments, the method 700 first selects comer and bend features for processing, and after all comer and bend features have been processed, the method 700 then selects other features, such as line-point features, for processing. The method 700 then determines (at 712) if the current feature is located within a processed region. If so, the method 700 proceeds to step 710 where another current feature is selected. If not, the method 700 continues at step 715.
  • the method then identifies (at 715) a current environment in the layout containing the current feature, the current layout environment having a predetermined size.
  • the current environment may be identified, for example, by setting the shape of the current environment as a square having a predetermined size and positioning the square so that the current feature is in the center.
  • the current environment contains the current feature and one or more layout geometries.
  • a current environment is identified in another manner, for example, by using a different shape.
  • An example of step 715 is shown in Figure 5 where an environment 520 surrounding a current feature 515 is identified.
  • the method then identifies (at 720) a model containing a pretabulated environment that matches the current layout environment, the model being contained in a library of pretabulated models.
  • the pretabulated environment has a predetermined size that is equal to the predetermined size of the current layout environment.
  • Each model in the library is created for a specific feature (pretabulated feature) in a specific environment (pretabulated environment), the environment containing the feature, one or more geometries, and a modification to the feature.
  • a method for building a library of pretabulated models is discussed below in relation to Figure 8. By comparing the dimensions and placement of the one or more geometries in the current environment with the one or more geometries in a pretabulated environment in a model, a model containing a pretabulated environment that matches the layout environment is found.
  • a method for identifying a matching model is discussed below in relation to Figure 12.
  • a matching model is found in the library.
  • the method then retrieves (at 725), from the matching model, data describing the pretabulated modification for a pretabulated feature, the pretabulated modification being designed to produce a fabricated feature on a wafer that is within a predetermined variance from the current layout feature and the pretabulated feature.
  • the pretabulated modification produces a simulated feature that is within a predetermined variance from the pretabulated feature.
  • the matching model also contains other data of the pretabulated environment, such as simulated environment data, re-simulated environment data, electrical characteristic data, and/or an adjustment equation or function data (as described in Section IV).
  • the method retrieves (at 725), any or all of the other types of data contained in the matching model. These other types of data may be used, for example, by a design engineer to determine how the pretabulated environment is predicted to appear once fabricated, the electrical characteristics of the pretabulated environment, etc.
  • the pretabulated modification is then applied (at 730) to the current feature in the design layout.
  • the pretabulated modification has been created (as discussed below in relation to Figure 8) based upon a pretabulated feature and environment in order to produce a satisfactory fabricated feature on a wafer. Since the pretabulated feature and environment have been determined to match the current feature and environment in the layout, applying the pretabulated modification to the current feature should also produce a satisfactory feature once the feature is fabricated on a wafer.
  • the method then identifies (at 732) a processed region about the current feature.
  • the processed region indicates that the modification made to the current feature is sufficient for the processed region and processing of other features within the processed region are unnecessary.
  • An example of step 732 is shown in Figure 5 where a processed region 530 about a current feature 515 is identified.
  • the layout modification method 700 identifies (at 720) a model containing a pretabulated environment that matches a current layout environment, the model being contained in a library of pretabulated models.
  • Figure 8 is a flowchart of a method 800 for building a library of pretabulated models. Figure 8 is described in relation to Figures 5, 6, 9A-9F, 10A-10C, and l lA- l lC.
  • the method 800 begins by creating a set of pretabulated environments for the library, each pretabulated environment containing a feature (such as a comer or bend), a primary geometry on which the feature is located, and zero or more neighboring geometries.
  • the set of pretabulated environments created for a library will cover a broad range of environments that may be found on an IC layout.
  • the set of environments will typically cover a multitude of various feature and geometry configurations that can be encountered on an IC layout.
  • a library or set of environments is tailored towards layouts having a particular preferred-direction wiring.
  • IC's use preferred direction wiring models, which specify a preferred wiring direction for each of their wiring layers. For example, a layer may have Manhattan or diagonal preferred-direction wiring. Or, in the case of ICs that are designed in analog, a layer may have no preferred-direction wiring.
  • a layout for a layer having Manhattan preferred wiring will, for the most part, have
  • FIGS 9A-9F show examples of environments 905 that may be created for a Manhattan preferred wiring layout.
  • each environment 905 contains a feature 910, a primary geometry 915 on which the feature 910 is located, and zero or more neighboring geometries 920.
  • the sides of the geometries 915 and 920 are horizontal or vertical in orientation.
  • a layout for a layer having diagonal preferred-direction wiring will, for the most part, have geometries having sides that are diagonal in orientation (i.e., form an angle of
  • FIGS 10A-10C show examples of environments 1005 that may be created for a diagonal preferred wiring layout.
  • each environment 1005 contains a feature 1010, a primary geometry 1015 on which the feature 1010 is located, and zero or more neighboring geometries 1020. Note that the sides of the geometries 1015 and 1020 are diagonal in orientation. Or, in the case of ICs that are designed in analog, a layer may have no preferred-direction wiring.
  • FIGS 11A-11C show examples of environments 1105 that may be created for an analog designed layout.
  • each environment 1105 contains a feature 1110, a primary geometry 1115 on which the feature 1110 is located, and zero or more neighboring geometries 1120.
  • the method 800 determines (at steps 810 through 835) a modification that is to be applied to a feature of each pretabulated environment that is predicted to produce a satisfactory feature once the feature is fabricated on a wafer.
  • a modification to a feature in an environment is based upon the primary geometry and any neighboring geometries contained in the environment. In other words, the geometries surrounding the feature affect the modification that is calculated for the feature.
  • the method 800 selects an environment in the set of pretabulated environments as a cu ⁇ ent pretabulated environment. The method then creates and applies (at 815) a modification to the feature in the current pretabulated environment. In some embodiments, method creates and applies a modification using techniques well known in the art. A simulation is then performed (at 820) on the current pretabulated environment which contains the modification to the feature.
  • the simulation can be performed, for example, by a simulator that receives as input the current pretabulated environment and produces a cu ⁇ ent simulated environment.
  • the current simulated environment is a prediction of how the current pretabulated environment (which contains the modification to the feature) will appear once fabricated on a wafer.
  • the simulator assumes no processing variations (i.e., assumes "normal" processing conditions).
  • the method determines (at 825) whether the results of the simulation are satisfactory, i.e., whether the current simulated environment contains a simulated feature that is within a predetermined threshold of variance in appearance from the pretabulated feature contained in the current pretabulated environment.
  • step 815 the method creates and applies another modification to the feature in the current pretabulated environment and performs another simulation on the current pretabulated environment (which contains the new modification to the feature).
  • the method iterates steps 815 through 825 until a satisfactory simulated environment is produced. If the method determines (at 825 - Yes) that the results of the simulation are satisfactory, the method then creates (at 830) a model of the current pretabulated environment and stores data of the current pretabulated environment to the model.
  • the model of the current pretabulated environment is a data structure that stores data describing the current pretabulated environment, wherein the current pretabulated environment contains the last modification made to the feature in the current pretabulated environment (i.e., the modification that produced the satisfactory simulation result).
  • Figure 9A-9F, 10A-10C, and 11A-11C show examples of modifications 925, 1025, and 1125 of features 910, 1010, and 1110 contained in pretabulated environments 905, 1005, and 1 105. Note that for the sake of simplicity, the modifications 925, 1025, and 1125 shown in these are four-sided polygons, although in other embodiments, a modification contained a pretabulated environment is of another shape.
  • the method determines (at 835) whether the current pretabulated environment is the last pretabulated environment in the set of pretabulated environment. If not, the method proceeds to step 810 where the method selects a next environment in the set of pretabulated environments as a next current pretabulated environment. If so, the method ends.
  • Method for Finding a Matching Pretabulated Environment As stated above, the layout modification method 700 identifies (at 720) a model containing a pretabulated environment that matches a current layout environment, the model being contained in a library of pretabulated models.
  • a single layout environment can have eight different orientations (appearances), wherein the eight orientations are equivalent in the sense that a same modification applied to a feature in each orientation would affect the feature in the same way when the feature is simulated or fabricated.
  • a pretabulated environment of a model is determined to "match" a layout environment when it matches any of the layout environment's eight orientations. This is based on the proposition that a modification described in the matching model that is applied to a feature in each orientation produces the same feature when the feature is simulated or fabricated.
  • the eight different orientations of a layout environment can be produced through rotating and reflecting a single orientation of the layout environment.
  • Figures 13A-13H illustrate eight different orientations of a layout environment 1305, each orientation being equivalent.
  • Figures 13B-13D show rotated orientations of the layout environment 1305 shown in Figure 13A ( Figure 13A
  • FIG. 13D shows a 270° clockwise rotation of the layout environment 1305 shown in Figure 13A).
  • Figure 13E shows a reflected orientation of the layout environment 1305 shown in Figure 13 A, a
  • reflected orientation of a layout environment being an orientation that is reflected across a 45° axis of the layout environment (i.e., an interchange of x and y coordinates of the layout environment).
  • Figures 13F-13H show rotated orientations of the layout environment 1305 shown
  • Figure 13E Figure 13F shows a 90° clockwise rotation
  • Figure 13G shows a 180° clockwise
  • Figure 13F shows a 270° clockwise rotation of the layout environment 1305 shown
  • a canonical orientation of a layout environment has a primary geometry (on which a feature of the layout environment is located) located in the lower-left portion of the layout environment.
  • a different definition of a canonical orientation is used. Note that each layout environment has two canonical orientations since there are two orientations of each layout environment where the primary geometry is located in the lower-left portion of the layout environment.
  • Figures 13A and 13E both show canonical orientations of a layout environment 1305.
  • the first canonical orientation of the layout environment is achieved by rotating the layout environment until the primary geometry is located in the lower-left portion of the layout environment.
  • the method compares (at 1210) the layout environment in its first canonical orientation to pretabulated environments in models of the pretabulated library.
  • the layout environment in its first canonical orientation can be compared to a pretabulated environment, for example, by comparing the dimensions and placements of the primary geometries and any neighboring geometries contained in the layout and pretabulated environments.
  • the layout environment in its first canonical orientation is compared to a pretabulated environment using a two step comparison process.
  • the layout and pretabulated environments are divided into sub-regions.
  • the layout and pretabulated environments are divided into 16 sub-regions.
  • the percentage of geometry coverage in each sub-region is then determined for each sub-region of both environments.
  • the percentage of geometry coverage in a sub-region is the area covered by primary and neighboring geometries in the sub-region divided by the total area of the sub-region multiplied by 100.
  • a two-bit number reflecting the percentage of geometry coverage in the sub-region is determined.
  • the two-bit number is set to 00 when the percentage of geometry coverage is equal to 0-25%, set to 01 when the percentage of geometry coverage is equal to 25-50%, set to 10 when the percentage of geometry coverage is equal to 50- 75%, and set to 11 when the percentage of geometry coverage is equal to 75-100%.
  • the two-bit numbers for the sub-regions of the layout and pretabulated environments are then combined to produce a combined bit number for each environment.
  • two-bit numbers for 16 sub-regions of the layout and pretabulated environments are combined to produce a 32 bit number for each environment.
  • the layout and pretabulated environments are divided into a number of sub-regions other than 16 sub-regions.
  • the combined bit number for each environment is other than a 32 bit number. The method then determines (at 1215) if a model having a pretabulated environment matching the layout environment has been found in the pretabulated library.
  • the layout modification method 700 then retrieves (at 725) data describing a pretabulated modification from the matching model. If not, the method then reduces (at 1220) the layout environment to a second canonical orientation.
  • the second canonical orientation of the layout environment is achieved by reflecting the first canonical orientation across a 45° axis of the first canonical orientation (i.e., by interchanging the x and y coordinates of the first canonical orientation).
  • the method finds (at 1225) a model, in the pretabulated library, having a pretabulated environment matching the layout environment in its second canonical orientation.
  • the matching pretabulated environment is found by comparing the dimensions and placements of the primary geometries and any neighboring geometries contained in the layout and pretabulated environments. In other embodiments, the matching pretabulated environment is found by comparing the layout and pretabulated environments using the two step comparison process described above. The method then ends, whereby the layout modification method 700 then retrieves (at 725) data describing a pretabulated modification from the matching model. Note that in the matching method 1200 described above, each model in the library contains a pretabulated environment that can be matched to any of eight equivalent orientations that can be encountered in the layout, the eight different orientations being matched to the pretabulated environment through the rotating and reflecting processes of the matching method 1200.
  • a single layout environment can have 8 different orientations (appearances).
  • a single layout environment can have 2, 4, or 16 different orientations, depending on the symmetry of the light source used in the photomasking process and whether 45 degree and 0 degree libraries can be combined. For example, if the light source is completely symmetrical, a single layout environment can have 16 different orientations.
  • it is assumed that a model having a pretabulated environment matching the layout environment is found.
  • Other embodiments, discussed below in Section III consider the case where no matching model is found in the library.
  • FIG 14 is a flowchart of an alternative layout modification method 1400 for modifying geometries in an IC layout using a library of pretabulated models.
  • the alternative method 1400 comprises step 310 of the general design method 300 (of Figure 3). As such, the method 1400 receives a design layout and produces a modified layout.
  • the method 1400 can be implemented, for example, by an electronic design automation ("EDA") application that creates, edits, or analyzes IC design layouts.
  • EDA electronic design automation
  • the alternative method 1400 contains several steps that are similar to steps performed in the layout modification method 700 of Figure 7. Only those steps that differ from the layout modification method 700 are discussed in detail here.
  • the method 1400 starts when it receives (at 705) an IC design layout having one or more geometries, each geometry containing zero or more features to be modified. The method then selects (at 710) a current feature in the layout for modification. The method then identifies (at 715) a current environment in the layout containing the current feature. The method then determines (at 1420) whether a model having a pretabulated environment that matches the current layout environment is contained in a library of pretabulated models. This can be determined, for example, using the matching method 1200 (discussed above in relation to Figure 12) for identifying a matching model.
  • the method 1400 then retrieves (at 725), from the matching model, data describing a pretabulated modification and applies (at 730) the pretabulated modification to the current feature.
  • the matching model also contains other data of the pretabulated environment, such as simulated environment data, re-simulated environment data, electrical characteristic data, and/or an adjustment equation or function data (as described in Section IN).
  • the method retrieves (at 725), any or all of the other types of data contained in the matching model.
  • the method 1400 determines (at 1422) whether a model having a pretabulated environment that is within a predetermined variance threshold from the current layout environment is contained in the library of pretabulated models. To make this determination, the method determines, for example, whether the dimensions and locations of the geometries of the current layout environment are within a predetermined variance from the dimensions and locations of the geometries of a pretabulated environment in the library.
  • the model having the pretabulated environment that is within the predetermined variance threshold is considered a "matching" model and the method 1400 continues at step 725 where it retrieves, from the "matching" model, data describing a pretabulated modification and applies (at 730) the pretabulated modification to the current feature. If the method 1400 determines (at 1422 - No) that a model having a pretabulated environment that is within a predetermined variance threshold from the current layout environment is not contained in the library, the current layout environment is considered a "new" environment and the method proceeds to step 1425.
  • the method creates a new model for the "new" environment and the current feature by performing, for example, steps 815 to 830 of the library building method 800 of Figure 8.
  • the new model is stored to the library that contains a pretabulated environment that replicates the "new" environment and a pretabulated modification for a pretabulated feature that replicates the current feature.
  • the method applies (at 1430) the pretabulated modification to the current feature in the design layout.
  • the method determines (at 735) if the current feature is the last feature on the design layout. If so, the method ends. If not, the method proceeds to step 710 where a next current feature in the layout is selected for processing.
  • the method 14 does not perform step 1422, but rather, creates (at 1425) a new model for the "new" environment directly after this determination.
  • the method 14 does not perform steps 1422, 1425, and 1430, but rather, uses a conventional rule-based approach to determine a modification to the current feature in the layout.
  • the method 14 does not perform steps 1425 and 1430, but rather, uses a conventional rule-based approach to determine a modification to the current feature in the layout.
  • the method 1400 is performed without a prior pretabulated library being created.
  • the method 1400 simultaneously creates a pretabulated library (by creating models for the pretabulated library at step 1425) while modifying features in a layout. As such, the method 1400 creates a pretabulated library "on-the-fly" during runtime when it is used to modify a layout.
  • the models of the pretabulated library created during runtime would typically be stored to a cache having relatively faster read and write times.
  • the method would determine (at 1420 and 1422) whether a matching or "matching" model is contained in the library, the library containing only models having pretabulated environments that replicate environments that have previously been encountered/identified in the layout during the layout modification process. If a matching or "matching" model is not found, a new model for the new environment would then be created (at 1425).
  • a model in the library contains data describing a pretabulated environment containing a feature, a modification to the feature, a primary geometry on which the feature is located, and zero or more neighboring geometries.
  • a model in the library is a data structure that stores data describing a pretabulated environment (for example, in terms of dimensions and placement of objects in the pretabulated environment).
  • further data is included in the model such as data describing simulation results and/or re-simulation results.
  • Figure 15 shows a conceptual diagram of data that is stored in a model 1500 of the pretabulated library.
  • the model 1500 contains pretabulated environment data 1505 describing a pretabulated environment containing a feature, a modification to the feature, a primary geometry, and zero or more neighboring geometries.
  • the model 1500 also contains simulated environment data 1510 describing a simulated environment that is a prediction of how the pretabulated environment will appear once fabricated on a wafer assuming no processing variations.
  • the model 1500 also contains re-simulated environment data 1515 describing a re-simulated environment that is a prediction of how the pretabulated environment will appear once fabricated on a wafer assuming one or processing variations.
  • the model 1500 also contains electrical characteristic data 1520 describing an electrical characteristic of the pretabulated environment.
  • the model 1500 also contains adjustment equation or function data 1525 describing an adjustment equation or function that uses geometry coverage percentages of particular areas in a design layout to determine an adjustment to a pretabulated modification in the model (as described below in Section V).
  • the model 1500 contains any or all of the various types of data 1505, 1510, 1515, 1520, and 1525. By storing such data in each model, the various types of data 1505, 1510, 1515, 1520, and 1525 are readily available for use by design engineers (e.g., to determine how the pretabulated environment is predicted to appear once fabricated, the electrical characteristics of the pretabulated environment, etc.) without having to perform further time-costly operations to derive the various types of data.
  • the pretabulated environment data 1505 would contain data describing a modification to an environment
  • the simulated environment data 1510 and re-simulated environment data 1515 would contain data describing how the environment will most likely appear when fabricated after the modification is applied, wherein the re-simulated environment data 1515 would reflect one or more process variations and the simulated environment data 1510 would not.
  • a model containing simulated environment data 1510 and/or re-simulated environment data 1515 can provide a design engineer not only a description of a modification to be applied to an environment, but also data describing prediction(s) of how the environment (with the modification applied) will actually appear when fabricated.
  • FIG. 16 is a flow chart of an alternative library building method 1600 for building a pretabulated library of models, each model containing simulated environment data and/or re-simulated environment data.
  • the method 1600 of Figure 16 is identical to the library building process 800 up to step 830 of the process 800.
  • pretabulated environment data is stored to a model after iterations of modifications and simulations produce (at steps 815 to 825) a satisfactory simulated environment.
  • the simulations are performed (at 820) on a current pretabulated environment (which contains a modification to a feature) by a simulator that assumes no processing variations (i.e., assumes "normal" processing conditions).
  • the method 1600 then stores (at 1605) data describing the satisfactory simulated environment (simulated 1 environment data) to the model. Recall that the satisfactory simulated environment is the simulation result of the pretabulated environment containing the last modification made to the feature in the pretabulated environment.
  • the method then produces (at 1615) a re-simulated environment of the current pretabulated environment (which contains the last modification to the feature and which produced a satisfactory simulated environment) using a simulator program that takes into consideration one or more process variations.
  • the simulator program in producing the re- simulated environment, the simulator program considers a specific process variation (e.g., lens defocus or light dosage) having a specific value.
  • a set of two or more re-simulated environments are produced (at 1610) for a single pretabulated environment, the set of two or more re-simulated environments reflecting a set of values for a specific process variation.
  • a plurality of re- simulated environments are produced for a single pretabulated environment, wherein each re- simulated environment is produced by a simulator that considers a range of different values for a specific process variation.
  • a re-simulated environment may be produced to reflect each defocus value of -6, -3, +3, +6, thereby resulting in a total of four re-simulated environments for a single pretabulated environment.
  • the re-simulated environment is a prediction of how the modified environment will appear once fabricated on a wafer but is produced by a simulator program that assumes one or more processing variations, such as variations in lens focus or light exposure (light dosage) during the photomasking process.
  • the re-simulated environment reflects one or more processing variations and may vary significantly in appearance from the simulated environment.
  • the method then stores (at 1615) data describing the re-simulated environment (re- simulated environment data) to the model.
  • data relating to any specific process variations and any specific values of the process variations reflected by the re-simulated environment is also stored to the model.
  • the plurality of re-simulated environments is stored to the model.
  • data relating to any specific process variations and any specific values of the process variations reflected by the re-simulated environment is associated with the re-simulated environment and stored to the model. For example, where a particular re-simulated environment reflects a defocus value of +6, data indicating a defocus value of +6 is associated with the particular re-simulated environment and stored to the model.
  • a separate model is created for each re-simulated environment in the plurality of re-simulated environments, the model storing data describing the re-simulated environment and data relating to any specific process variations and any specific values of the process variations reflected by the re-simulated environment.
  • the method 1600 performs only step 1605 and not steps 1610 and 1615 so that only simulated environment data is stored to the model. In other embodiments, the method 1600 performs only steps 1610 and 1615 and not step 1605 so that only re-simulated environment data is stored to the model.
  • Electrical Characteristic Data Introduction the model 1500 also contains electrical characteristic data 1520 describing one or more electrical characteristics of the pretabulated environment In some embodiments, model 1500 contains an equation (characteristic equation) relating to a specific electrical characteristic of the pretabulated environment.
  • the characteristic equation expresses a specific electrical characteristic of the pretabulated environment as a function of dimensions and placement of one or more geometries in the pretabulated environment and/or as a function of one or more process variations.
  • the characteristic equation relates to a capacitance characteristic of the environment, although, in other embodiments, the characteristic equation relates to another electrical characteristic of the environment, such as inductance or resistance.
  • the process variations of lens defocus and light dosage are considered, although, in other embodiments, other process variations are considered.
  • the pretabulated environment contains two or more geometries and the characteristic equation (capacitance equation) relates to the capacitance between two geometries in the environment.
  • the capacitance equation describes the capacitance between two geometries in the pretabulated environment as a function of the distance between the two geometries and one or more process variations (such as lens defocus or light dosage).
  • a re-simulated environment that reflects one or more processing variations may vary significantly in appearance from a simulated environment that does not take into account any processing variations. For example, geometries in the re-simulated environment may be thinner, thicker, or be shaped differently than corresponding geometries in the simulated environment.
  • Figures 17A and 17B show simulation results of a same pretabulated environment containing a first pair of neighboring geometries 1715 and a second pair of neighboring geometries 1720. Nearby geometries in an environment can produce interaction (capacitance) between the geometries, the amount of interaction being affected by the distance between the neighboring geometries.
  • Figure 17A shows a simulation result 1705 of the pretabulated environment that does not reflect any process variations.
  • FIG 17A there is a first distance 1717 between the first pair of geometries 1715 and a second distance 1722 between the second pair of geometries 1720.
  • a capacitance between the first pair of geometries 1715 is determined in large part by the first distance 1717 between the geometries 1715 and a capacitance between the second pair of geometries 1720 is determined in large part by the second distance 1722 between the geometries 1720.
  • Figure 17B shows a simulation result 1735 of the same pretabulated environment of Figure 17A taking into consideration one or more process variations (such as lens defocus or light dosage).
  • Figure 17B shows a simulated environment 1735 that is changed from the simulated environment 1705 shown in Figure 17A.
  • the capacitance between two geometries in an environment can be calculated given a change in distance ( ⁇ W) between two geometries.
  • the first capacitance equation does not express capacitance as a function of process variations (which are the causes of the change in distance( ⁇ W)).
  • the capacitance between neighboring geometries is affected by the distance between the geometries, and one or more process variations affect the distance between the geometries (since process variations can cause geometries to become thinner or thicker), the capacitance between neighboring geometries can be seen a function of the distance between the geometries and one or more process variations.
  • C 0 is a capacitance (initial capacitance) of the initial environment that reflects no process variations (i.e., where ⁇ W, ⁇ PVi, etc. all equal zero), ki, k 2; etc. are predetermined sensitivity coefficients
  • ⁇ W is the difference in distance between the two geometries from the initial environment to a changed environment
  • ⁇ PVi is the difference in values of a specific process variation reflected in the initial environment and the changed environment.
  • ⁇ W may be equal to the distance between the two geometries in the changed environment minus the distance between the two geometries in the initial environment.
  • ⁇ PVi may be equal to the val ⁇ e of a specific process variation reflected in the changed environment minus the value of the specific process variation reflected in the initial environment (which, in some embodiments, is always equal to zero).
  • the value of Co is adjusted/shifted or set to a predetermined value to correct or minimize error in the capacitance equation.
  • a capacitance equation describing the capacitance characteristics of an environment is stored to a model containing the environment, the model being contained in a pretabulated library of models.
  • the capacitance equation expresses capacitance between two geometries in the environment as a function of a change in distance between the two geometries.
  • the capacitance equation expresses capacitance as a function of a change in distance between the two geometries and one or more process variations.
  • the library building method 800 of Figure 8 can be modified to build a library of pretabulated models where each model contains a pretabulated environment and a predetermined capacitance equation describing capacitance characteristics of the pretabulated environment.
  • an alternative library building method 1800 shown as a flowchart in Figure 18
  • a current environment that produces a satisfactory simulated environment is achieved, the satisfactory simulated environment being referred to as an initial environment.
  • a model is then created which stores (at step 830 of the library building method 800) data describing the current environment.
  • the alternative library building method 1800 begins when it receives (at 1805) the initial environment.
  • An example of an initial environment is shown in Figure 17A.
  • the initial environment contains at least one pair of neighboring geometries with a particular distance between them.
  • the initial environment contains two or more pairs of neighboring geometries, each with a particular distance between them.
  • the method then performs (at 1807) a three-dimensional electromagnetic simulation (3D simulation) on the initial environment to find an initial capacitance (Co) between one pair of neighboring geometries in the initial environment.
  • the method performs a 3D simulation on the initial environment to find initial capacitances between two or more pairs of neighboring geometries in the initial environment.
  • the 3D simulation is performed by a three-dimensional electromagnetic simulator program that solves Maxwell equations, as is well known in the art.
  • another type of simulation is performed to determine the initial capacitance (Co).
  • a counter is then set (at 1810) to zero, the counter being used to count the number of iterations of the method and to stop the iterations once a predetermined number of X iterations are completed.
  • a re-simulation is then performed (at 1815) on the cu ⁇ ent environment to produce a changed environment, the re-simulation taking into consideration example process variation values of defocus and dosage.
  • An example of a changed initial nvironment is shown in Figure 17B.
  • the re-simulation is performed by a simulator that takes into consideration specific example values of lens defocus and light dosage.
  • the pair of neighboring geometries will be different in appearance than from the initial environment (e.g., they will appear thinner, thicker, or different in shape). As such, a distance between the pair of neighboring geometries in the changed environment will most likely be different than the distance between the pair of neighboring geometries in the initial environment.
  • the initial and changed environments contain two or more pairs of neighboring geometries, each distance between the two or more pairs of geometries being changed from the initial environment to the changed environment.
  • the method determines (at 1820) a difference ( ⁇ W) between the distances of the pair of neighboring geometries in the changed environment and the initial environment.
  • the difference ( ⁇ W) is determined by comparing the pair of neighboring geometries in the changed environment and the initial environment. For example, ⁇ W may be equal to the distance between the pair of geometries in the changed environment minus the distance between the pair of geometries in the initial environment.
  • the method determines a difference ( ⁇ W) between the distances of two or more pairs of neighboring geometries in the changed environment and the initial environment.
  • the method then performs (at 1825) a 3D or other simulation on the changed environment to find a capacitance value (C) between the pair of neighboring geometries in the changed environment.
  • the method performs a 3D or other simulation on the changed environment to find a capacitance for each of two or more pairs of neighboring geometries in the changed environment.
  • the method then stores (at 1835) the capacitance value (C) (determined at step 1825), the difference ( ⁇ W) in distances (determined at step 1820), and specific values for lens defocus and light dosage (used in the re-simulation at step 1815) as an example result for the pair of neighboring geometries.
  • the method stores capacitance values (Cs) and specific values for lens defocus and light dosage for two or more pairs of neighboring geometries.
  • the method determines (at 1840) if the counter is equal to X. If not, the method increments (at 1845) the counter and determines (at 1847) new example defocus and dosage values. A re-simulation is then performed (at 1815) on the initial environment taking into consideration the new example defocus and dosage values. If the method determines (at 1840 - Yes) that the counter is equal to X, the method proceeds to step 1850.
  • the method has stored (at 1835) a set of example results (equal to X), each example result having a capacitance (C), distance difference ( ⁇ W), defocus, and dosage value.
  • the set of example results cover a range of capacitance (C), distance difference ( ⁇ W), defocus, and dosage values.
  • the method determines (at 1850) a capacitance equation that considers all X example results and expresses capacitance between the pair of geometries as a function of distance difference ( ⁇ W), defocus, and dosage.
  • the method determines a capacitance equation for two or more pairs of geometries.
  • the capacitance equation is determined automatically, without the need for human intervention.
  • the method determines the capacitance equation using mathematical modeling methods or computer learning methods (discussed below in Section V).
  • ⁇ DF is equal to the defocus value reflected in a changed environment and ⁇ dosage is equal to the dosage value reflected in the changed environment.
  • the method then stores (at 1855) the determined capacitance equation to the model created in step 830 of Figure 8. In some embodiments, the stores two or more determined capacitance equation to the model. The method then ends.
  • the alternative library building method 1800 is performed separately from the library building method 800 of Figure 14. In this embodiment, the method 1800 receives (at 1805) an initial environment that is a simulated environment produced by other methods, such as conventional layout design methods. The method 1800 receives a set of such simulated environments and produces a set of models in a library, each model containing a predetermined capacitance equation.
  • the method 1800 considers one or more different process variations other than lens defocus and light dosage. In these embodiments, the method 1800 considers one or more different process variations when performing (at 1815) the re-simulation, stores (at 1835) specific values for the one or more different process variations, and determines (at 1850) the capacitance equation considering the one or more different process variations.
  • the method 1800 does not determine (at 1850) a capacitance equation, but rather, stores (at 1855) the set of example results determined and stored at steps 1815 through 1847, each example result having a capacitance (C), distance difference ( ⁇ W), defocus, and dosage value.
  • the method 1800 does not perform (at 1815) the re- simulation of the initial environment, but rather, creates a changed environment where the pair of neighboring geometries has a particular distance between them so that the distance difference ( ⁇ W) between the pair of neighboring geometries in the initial and changed environments is equal to a predetermined difference. As such, through multiple iterations, the method 1800 creates a set of changed environments that produce a set of distance differences ( ⁇ Ws).
  • models in the pretabulated library of models contain descriptions of pretabulated environments that are of a predetermined size.
  • the predetermined size of the pretabulated environments is kept to a reasonable size (since the larger the predetermined size of the pretabulated environments, the greater the number of pretabulated environments required in the library to cover the greater number of variations in geometry dimensions and placement that can occur).
  • the predetermined size of the pretabulated environments in the library determines the size of an environment that is identified on a design layout, the layout environment containing a feature that is to be modified. Geometries lying outside the layout environment, however, also affect how the feature will appear once fabricated, although to a lesser degree than the geometries lying inside the layout environment.
  • information relating to geometries (outside geometries) lying outside a layout environment is used to adjust a modification contained in a model (having a pretabulated environment that matches the layout environment) that is to be applied to a feature in the layout environment.
  • information relating to geometries lying between a first radius distance and a second radius distance from the feature in the layout environment is used to adjust the modification contained in a model.
  • a modification contained in the model is adjusted according to a predetermined adjustment equation or function that uses geometry coverage percentages of particular areas in the design layout, the adjustment equation or function being contained in the model.
  • Figure 19 is a flow chart of an adjustment method 1900 for modifying geometries in an IC layout using a library of pretabulated models in conjunction with a predetermined adjustment equation or function.
  • Each model in the library contains a modification to be applied to a geometry or feature in the IC layout and a predetermined adjustment equation or function that is used to adjust the modification.
  • the method 1900 can be implemented, for example, by an electronic design automation ("EDA") application that creates, edits, or analyzes IC design layouts.
  • EDA electronic design automation
  • the adjustment method 1900 of Figure 19 has many similar steps to the layout modification method 700 of Figure 7 and only those steps that differ are discussed in detail here. Figure 19 is described in relation to Figure 20.
  • the adjustment method 1900 comprises step 310 of the general design method 300 (of Figure 3).
  • the method 1900 receives a design layout and produces a modified layout.
  • the method 1900 starts when it receives (at 1905) an IC design layout having one or more geometries, each geometry containing zero or more features to be modified.
  • the method selects (at 1910) a current feature in the layout for modification.
  • the method identifies (at 1915) a current environment in the layout containing the current feature, the current layout environment having a predetermined size.
  • the method identifies (at 1920) a model containing a pretabulated environment that matches the current layout environment, the model being contained in a library of pretabulated models.
  • Each model in the library contains data describing a pretabulated environment which includes a feature, a primary geometry on which the specific feature is located, and zero or more neighboring geometries.
  • Each model in the library also contains data describing a pretabulated modification to the pretabulated feature and a predetermined adjustment equation or function used to adjust the pretabulated modification.
  • a method for building a library of pretabulated models, each model containing a predetermined adjustment equation or function is discussed below in relation to Figure 21. The method then retrieves (at 1925), from the matching model, data describing the pretabulated modification and the predetermined adjustment equation or function for adjusting the pretabulated modification.
  • the matching model also contains other data of the pretabulated environment, such as simulated environment data, re-simulated environment data, and/or electrical characteristic data (as described in Section IV).
  • the method retrieves (at 1925), any or all of the other types of data contained in the matching model.
  • the adjustment equation or function contains one or more predetermined coefficients and one or more variables being geometry coverage percentages of particular areas in the design layout.
  • the adjustment equation or function is the form: where A is the adjustment to be made to the pretabulated modification, ki , k 2, etc. are predetermined coefficients, and F ⁇ , F 2j etc. are geometry coverage percentages of particular areas in the design layout.
  • the adjustment equation or function is of a different form.
  • the method determines (at 1930) geometry coverage percentages of particular areas in the design layout specified in the adjustment equation or function.
  • a geometry coverage percentage specified in the adjustment equation or function is of a region in the design layout between an inner predetermined radius distance and an outer predetermined radius distance from the cu ⁇ ent feature, these regions being referred to as radius regions.
  • the geometry coverage percentage of a radius region is equal to the area covered by geometries in the radius region divided by the total area of the radius region multiplied by 100.
  • Figure 20 shows a top-view diagram of a sub-region 2005 of a layout containing various geometries 2007, a current feature 2015, and three radius regions 2020, 2025, and 2030 surrounding the current feature 2015.
  • a first radius region 2020 spans from a first radius distance 2035 to a second radius distance 2040 from the current feature 2015
  • a second radius region 2025 spans from the second radius distance 2040 to a third radius distance 2045 from the current feature 2015
  • a third radius region 2030 spans from the third radius distance 2045 to a fourth radius distance 2050 from the current feature 2015.
  • a geometry coverage percentage can be determined for each radius region 2020, 2025, and 2030. The method then determines (at 1935) the adjustment to be made to the pretabulated modification using the adjustment equation or function and the geometry coverage percentages specified in the adjustment equation or function.
  • the predetermined equation is in the form: where A is the adjustment to be made to the pretabulated modification, ki , k 2, and k 3 are predetermined coefficients, and Fi, F 2> and F 3 are geometry coverage percentages of the first, second, and third radius regions 2020, 2025, and 2030, respectively. After the values for the geometry coverage percentages Fi, F 2 , and F 3 are determined, these values are input to the equation to determine the adjustment (A) to be made to the pretabulated modification.
  • the adjustment may be expressed, for example, as a percentage amount that the modification be increased or decreased, or a distance that each side of the modification is to be increased or decreased.
  • the method then applies (at 1940) the calculated adjustment to the pretabulated modification (for example, by increasing or decreasing the modification by the calculated amount) to produce an adjusted modification.
  • the adjusted modification is then applied (at 1945) to the current feature in the design layout.
  • the method determines (at 1950) if the current feature is the last feature on the design layout. If so, the method ends. If not, the method proceeds to step 1910 where a next current feature in the layout is selected for processing.
  • the adjustment method 1900 identifies (at 1920) a model containing a pretabulated environment that matches a current layout environment, the model being contained in a library of pretabulated models.
  • Each model in the library contains a pretabulated environment having a pretabulated modification and a predetermined adjustment equation or function used to adjust the pretabulated modification.
  • the adjustment equation or function contains one or more predetermined coefficients and one or more variables being geometry coverage percentages of particular areas .in the design layout.
  • the library building method 800 of Figure 8 can be modified to build a library of pretabulated models where each model contains a pretabulated environment having a pretabulated modification and a predetermined adjustment equation or function used to adjust the pretabulated modification.
  • an alternative library building method 2100 shown as a flowchart in Figure 21
  • a current pretabulated environment having a modification to a feature that produces a satisfactory simulated environment is achieved, the modification being referred to as an initial modification.
  • a model is then created which stores (at step 830 of the library building method 800) the current pretabulated environment.
  • the alternative library building method 2100 begins when it receives (at 2105) the current pretabulated environment having the initial modification.
  • a counter is then set (at 2110) to zero, the counter being used to count the number of iterations of the method and to stop the iterations once a predetermined number of X iterations are completed.
  • a simulation is then performed (at 2115) on the current pretabulated environment which contains a modification to a feature, the simulation taking into consideration one or more example geometry coverage values of particular regions surrounding the feature.
  • the example geometry coverages are of regions between an inner predetermined radius distance and an outer predetermined radius distance from the feature.
  • three example geometry coverages of three radius regions may be considered in the simulation (see Figure 20).
  • the example geometry coverages will vary through a broad range of values. For example, if three example geometry coverages of three radius regions are considered, the geometry coverages may be 5%, 5%, 5% on a first itera «tion, 5%, 5%, 10% on a second iteration,
  • the simulation can be performed, for example, by a simulator that receives as input the current pretabulated environment and one or more geometry coverage values to produce a current simulated environment.
  • the current simulated environment is a prediction of how the current pretabulated environment will appear once fabricated on a wafer considering the modification applied to the feature in the current pretabulated environment and the one or more example geometry coverage values.
  • the method determines (at 2120) whether the results of the simulation are satisfactory, i.e., whether the simulated environment contains a simulated feature that is within a predetermined threshold of variance in appearance from the pretabulated feature contained in the current pretabulated environment.
  • step 2125 the method adjusts the modification to the feature in the current pretabulated environment and performs another simulation on the current pretabulated environment.
  • the method iterates steps 2115 through 2125 until a satisfactory simulated environment is produced, the satisfactory simulated environment being produced by a last modification. If method determines (at 2120 - Yes) that the results of the simulation are satisfactory, the method then determines (at 2130) a sum adjustment made to the initial modification (received at step 2105), the combination of the sum adjustment and initial modification being applied to the pretabulated feature and having produced a satisfactory simulated feature.
  • the sum adjustment can be determined, for example, by comparing the area of the last modification that produced the satisfactory simulation and the area of the initial modification, the difference between the two modifications being the sum adjustment made to the initial modification.
  • the sum adjustment is expressed as a numerical value, for example, as a percentage amount.
  • the method then stores (at 2135) the sum adjustment value and the one or more geometry coverage values as an example result.
  • the method determines (at 2140) if the counter is equal to X. If not, the method increments (at 2145) the counter and determines (at 2147) new example geometry coverage values.
  • a simulation is then performed (at 2115) on the cu ⁇ ent pretabulated environment taking into consideration the one or more new example geometry coverage values.
  • step 2150 the method has stored (at 2135) a number of example results equal to X, each example result having a sum adjustment value and one or more geometry coverage values.
  • the method determines (at 2150) an adjustment equation or function that considers all X example results and explains how the sum adjustment value is derived from the one or more geometry coverage values.
  • other measurement values of the regions surrounding the feature are used by the method to determine an adjustment equation or function that explains how the sum adjustment value is derived.
  • the adjustment equation or function is determined automatically, without the need for human intervention.
  • the method determines the adjustment equation or function using mathematical modeling methods. For example, each of the X number of example results can be put in the following equation form:
  • A k ⁇ F, + k 2 F 2 ...
  • A is the sum adjustment
  • k] k 2 , etc. are coefficients
  • Fi, F 2 ⁇ etc. are geometry coverage values.
  • Traditional data fitting methods (such as least square fitting method) can then be applied to the resulting X number of equations to determine the best values for the coefficients ki , k 2, etc.
  • the method determines the adjustment equation or function using computer learning methods. For example, each of the X number of example results can be inputted to a computer learning program (such as a neural network) that produces an adjustment function, the adjustment function explaining how the sum adjustment value is derived from the one or more geometry coverage values.
  • a computer learning program such as a neural network
  • the computer learning program In the computer learning method, no single mathematical model (e.g., linear, least square fit, etc.) is assumed and the number of coefficients (k] ( k 2) etc.) to be contained in the adjustment function is not predetermined (as in the mathematical model method). As such, the computer learning program considers any mathematical model and any number of coefficients in creating an adjustment function that explains the example results.
  • the resulting adjustment function can have any equation form or may be in the form of a flowchart or internal model. Also, the resulting adjustment function contains the best values for any coefficients in the adjustment function. Once the values of the coefficients of the adjustment equation or function are determined, the adjustment equation or function is determined.
  • the adjustment equation or function can then be used, for example, by the adjustment method 1900 to determine (at 1935) an adjustment to be made to a pretabulated modification. Since the coefficients of the adjustment equation or function are predetermined, the adjustment can be calculated by inputting the geometry coverage percentages specified in the adjustment equation or function.
  • the method then stores (at 2155) the determined adjustment equation or function to the model created in step 830 of Figure 8, the model containing data describing the current pretabulated environment. The method then ends.
  • the lower layer goes through a polishing process where the metal and the photoresist material surrounding the metal are ground down. Since the metal is softer than the photoresist material, a layer having a relatively high metal coverage will be polished down to a height that is lower than a layer having a relatively low metal coverage.
  • a sub-region of an upper layer that is located directly above a sub-region of a lower layer having an above "average” metal coverage sits at a vertical level that is below "normal”
  • a sub-region of the upper layer that is located directly above a sub-region of a lower layer having a below “average” metal coverage sits at a vertical level that is above "normal.”
  • the vertical level i.e., vertical deviation from flatness or "normal” level
  • Variations in the vertical level at which an upper layer sits affects how the IC elements on the upper layer appear once fabricated.
  • a light source and lens are used to focus light through a photomask onto a photoresist layer to imprint IC elements on the photoresist layer where the weakened areas of the photoresist layer are then etched away to produce the IC elements. If there are variations in the vertical level at which a layer sits, the light that strikes the layer during the photomask process can not be in focus across the entire layer (since the distance to the lens through which the light is focused changes). Rather, the light will have various levels of defocus across the layer.
  • light striking a sub-region of a layer having a below "normal" vertical level may be said to have a defocus value of -DF.
  • the variations in metal coverage of a lower layer of an IC causes variations in the vertical level at which an upper layer of the IC sits, which in turn causes variations in the level of light defocus the photomask processing of the upper layer, which in turn causes substantial disparity between geometries designed on a layout for the upper layer and geometries actually fabricated (as IC elements) on a wafer.
  • geometries in a layout for a layer of an IC are modified based on topographic data (vertical deviation data) of the layer.
  • a layout designed to be fabricated on an upper layer of an IC is modified using information relating to a layout designed to be fabricated on another layer of the IC.
  • Figure 22 is a flowchart of an altering method 2200 for altering modifications to geometries in a layout for an upper layer of an IC using information relating to a layout for a lower layer of the IC.
  • the method 2200 can be implemented, for example, by an electronic design automation ("EDA") application that creates, edits, or analyzes IC design layouts.
  • EDA electronic design automation
  • Figure 22 is described in relation to Figure 23.
  • the method 2200 begins when it receives (at 2205) a layout (upper layout) for an upper layer of an IC (i.e., a layer that is to be fabricated on the IC other than the bottom layer), the layout containing geometries, features, and modifications to features.
  • a layout upper layout
  • the upper layout is produced by using a pretabulated library of models (as discussed above in Section II.
  • upper layout is produced by using different methods, such as conventional layout design methods.
  • the method 2200 then retrieves (at 2210) data of a layout (lower layout) for a lower layer of the IC (i.e., a layer that is to be fabricated on the IC lower than the upper layer).
  • the data of the lower layout describes geometries on the lower layout and include dimension and placement data of the geometries.
  • the method then produces (at 2215) a density map of the lower layout, the density map indicating a percentage of geometry coverage in each sub-region of the lower layout.
  • the percentage of geometry coverage for a sub-region is defined as the area covered by geometries in the sub-region divided by the total area of the sub- region multiplied by 100.
  • the percentage of geometry coverage for a sub-region reflects the metal coverage of the sub-region when the geometries in the sub-region are later fabricated as IC elements on a wafer.
  • the method produces (at 2215) another description (other than a density map) of the properties of the lower layout, such as a function, wavelet, etc.
  • the method 2200 produces (at 2215) a density map of the lower layout by 1) dividing the lower layout into sub-regions, and 2) for each sub-region, dete ⁇ nining the percentage of geometry coverage in the sub-region.
  • Figure 23 shows a top-view diagram of a portion 2300 of a lower layout containing geometries 2305 that may represent various IC elements such as circuit modules, interconnect lines, or via pads that are to be fabricated on a wafer. As shown in Figure 23, the portion 2300 of the lower layout is divided into sub-regions 2310. In some embodiments, for each sub-region 2310, a percentage of geometry coverage is determined. After producing a density map of the lower layout, the method then selects (at 2220) a
  • the method retrieves (at 2225), from the density map, the percentage of geometry coverage of the sub-region of the lower layout that is designed to be fabricated below the current feature.
  • a first area on a first layer of an IC having the same span of x and y coordinates as a second area on a second different layer of the IC will be fabricated directly above or below second area, the first and second areas being referred to as corresponding areas.
  • the method may perform step 2225 by 1) determining the x and y coordinates of the current feature, 2) determining a corresponding sub-region of the lower layout having a span of x and y coordinates that encompasses the x and y coordinates of the current feature, and 3) retrieving the percentage of geometry coverage of the corresponding sub-region. Using the percentage of geometry coverage in the corresponding sub-region of the lower layout, the method then determines (at 2230) an estimate of vertical deviation from "normal" or flatness of the current feature on the upper layout, i.e., the distance that the current feature is estimated to sit at a vertical level away from a "normal" vertical level once fabricated on a wafer.
  • the "normal" vertical level is predetermined, for example, by setting the "normal" vertical level to a vertical level that a feature on an upper layer is estimated to sit (once fabricated) when a corresponding sub-region in a lower layout has a predetermined "average" percentage of geometry coverage, e.g., 25%, 50%, etc.
  • the method determines the estimate of vertical deviation of the current feature on the upper layout using a set of rules in a predetermined look-up table.
  • the look-up table lists various geometry coverage percentages of a sub-region on a lower layout and correlates each geometry coverage percentage with a particular estimate of vertical deviation for a corresponding feature on an upper layout.
  • the look-up table may correlate a 5% geometry coverage of a sub-region on a lower layout with a +10nm estimate of vertical deviation for a corresponding feature on an upper layout, a 20% geometry coverage of a sub-region on a lower layout with a +2nm estimate of vertical deviation for a corresponding feature on an upper layout, a 75% geometry coverage of a sub-region on a lower layout with a -7nm estimate of vertical deviation for a corresponding feature on an upper layout, etc.
  • the method 2200 determines (at 2235) an alteration to the modification of the current feature based on the estimate of vertical deviation of the cu ⁇ ent feature.
  • the method determines the alteration to the modification of the current feature using a set of rules in a predetermined look-up table.
  • the look-up table lists various estimates of vertical deviation for a feature and correlates each estimate with a particular alteration that is to be applied to a modification of the feature.
  • the alteration may be expressed, for example, as a percentage amount that the modification of the current feature is to be increased or decreased, or a distance that each side of the modification of the current feature is to be increased or decreased.
  • the look-up table may correlate a +10nm estimate of vertical deviation for a feature with an increase of 5% to the modification of the feature, a +5nm estimate of vertical deviation for a feature with an increase of 2nm to a each side of the modification of the feature, etc.
  • the look-up table used in step 2235 may be created by performing simulations on various features (having modifications) at various vertical deviations and determining the effect of the vertical deviations on the features and any alterations to the modifications of the features that should be made. For example, through simulations, it may be determined that a +10nm vertical deviation of a feature pushes the feature inward by 5nm, and thus a 5nm to a particular side of the modification of the feature is needed.
  • the simulations of the features described above can be performed by a simulator program that takes into account the process variation of lens defocus, the level of lens defocus being related to the level of vertical deviation of the feature (as discussed above).
  • the method does not determine (at 2230) an estimate of vertical deviation, but rather determines (at 2235) an alteration to the modification of the current feature directly from the percentage of geometry coverage in the corresponding sub-region of the lower layout. This can be performed, for example, using a set of rules in a predetermined look-up table that lists various geometry coverage percentages in the lower layout and correlates each geometry coverage percentage with a particular alteration that is to be applied to a modification of the feature.
  • the look-up table may correlate a 30% geometry coverage with a 2nm increase in the modification.
  • the method 2200 determines (at 2235) an alteration to the modification of the cu ⁇ ent feature
  • the method 2200 applies (at 2240) the alteration to the modification of the cu ⁇ ent feature.
  • the method determines (at 2245) whether the cu ⁇ ent feature is the last feature in the upper layout. If not, the method proceeds to step 2220 and selects a next cu ⁇ ent feature (having a modification) in the upper layout for processing. If so, the method ends.
  • Several methods of the present invention may be adapted to incorporate some of the processing features of the altering method 2200 of Figure 22.
  • the general design method 300 for designing integrated circuit layouts (described in relation to Figure 3) can be so adapted.
  • a satisfactory layout producing a satisfactory simulated layout is achieved, the satisfactory layout having features with modifications.
  • the altering method 2200 of Figure 22 can then be used to alter the modifications to the features in the satisfactory layout, the alterations being based on information relating to a layout designed for a lower layer of the IC.
  • the layout modification method 700 for modifying geometries in an IC layout using a library of pretabulated models (described in relation to Figure 7) can also be so adapted.
  • a design layout having pretabulated modifications applied to features in a design layout is produced.
  • the altering method 2200 of Figure 22 can then be used to alter the pretabulated modifications to the features in the design layout, the alterations being based on information relating to a layout designed for a lower layer of the IC.
  • the library building method 800 for building a library of pretabulated models (described in relation to Figure 8) can also be adapted to alter the pretabulated modifications in the pretabulated models.
  • the pretabulated models of library contain features designed for a layout of an upper layer of an IC.
  • the library building method 800 is adapted so that, after step 825, various examples of geometry coverage percentages (e.g., 5%, 10%, 15%, etc.) that may exist in a layout designed for a lower layer of the IC are determined. For each example of geometry coverage, an alteration of the pretabulated modification is determined.
  • various examples of geometry coverage percentages e.g., 5%, 10%, 15%, etc.
  • a pretabulated library of models can be created where some or all models contain a modification of a feature that is based, in part, on information relating to a layout designed for a lower layer of an IC (i.e., a layer that is to be fabricated on a layer lower than the feature).
  • FIG. 24 conceptually illustrates a computer system with which some embodiments of the invention are implemented.
  • Computer system 2400 includes a bus 2405, a processor 2410, a system memory 2415, a read-only memory 2420, a permanent storage device 2425, input devices 2430, and output devices 2435.
  • the bus 2405 collectively represents all system, peripheral, and chipset buses that support communication among internal devices of the computer system 2400.
  • the bus 2405 communicatively connects the processor 2410 with the read-only memory 2420, the system memory 2415, and the permanent storage device 2425. From these various memory units, the processor 2410 retrieves instructions to execute and data to process in order to execute the processes of the invention.
  • the read-only-memory (ROM) 2420 stores static data and instructions that are needed by the processor 2410 and other modules of the computer system.
  • the permanent storage device 2425 is a read-and-write memory device. This device is a non-volatile memory unit that stores instruction and data even when the computer system 2400 is off.
  • Some embodiments of the invention use a mass-storage device (such as a magnetic or optical disk and its co ⁇ esponding disk drive) as the permanent storage device 2425.
  • a removable storage device such as a floppy disk or zip® disk, and its co ⁇ esponding disk drive
  • the system memory 2415 is a read-and-write memory device.
  • the system memory is a volatile read-and- write memory, such as a random access memory.
  • the system memory stores some of the instructions and data that the processor needs at runtime.
  • the invention's processes are stored in the system memory 2415, the permanent storage device 2425, and/or the read-only memory 2420.
  • the bus 2405 also connects to the input and output devices 2430 and 2435.
  • the input devices enable the user to communicate information and select commands to the computer system.
  • the input devices 2430 include alphanumeric keyboards and cursor-controllers.
  • the output devices 2435 display images generated by the computer system. For instance, these devices display IC design layouts.
  • the output devices include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD).
  • bus 2405 also couples computer 2400 to a network 2465 through a network adapter (not shown).
  • the computer can be a part of a network of computers (such as a local area network ("LAN”), a wide area network ("WAN”), or an Intranet) or a network of networks (such as the Internet).
  • LAN local area network
  • WAN wide area network
  • Intranet a network of networks
  • the Internet a network of networks
  • Any or all of the components of computer system 2400 may be used in conjunction with the invention.
  • any other system configuration may also be used in conjunction with the invention.
  • the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. Thus, one of ordinary skill in the art would, understand that the invention is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims.

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)
  • Semiconductor Integrated Circuits (AREA)

Abstract

A method for modifying an IC layout using a library of pretabulated models, each model containing an environment with a feature, one or more geometries, and a modification to the feature that is calculated to produce a satisfactory feature on a wafer. The model may also contain a simulation of the environment reflecting no processing variations and/or a re-simulation of the environment reflecting one or more processing variations. The model may also contain data describing an electrical characteristic of the environment as a function of one or more process variations and/or data describing an adjustment equation that uses geometry coverage percentages of particular areas in the layout to determine an adjustment to the modification. In some embodiments, an upper layout for an upper of an IC are modified using information (such a density map) relating to a lower layout for a lower layer of the IC.

Description

METHOD AND APPARATUS FOR DESIGNING INTEGRATED CIRCUIT LAYOUTS
FIELD OF THE INVENTION The present invention is directed towards method and apparatus for designing integrated circuit layouts. BACKGROUND OF THE INVENTION An integrated circuit ("IC") is a device (e.g., a semiconductor device) that includes many electronic components, such as transistors, resistors, diodes, etc. These components are often interconnected to form multiple circuit components, such as gates, cells, memory units, arithmetic units, controllers, decoders, etc. An IC includes multiple layers of wiring that interconnect its electronic and circuit components. Traditionally, IC's use preferred direction ("PD") wiring models, which specify a preferred wiring direction for each of their wiring layers. In preferred direction wiring models, the preferred direction typically alternates between successive wiring layers. One example of a PD wiring model is the PD Manhattan wiring model, which specifies alternating layers of preferred-direction horizontal and vertical wiring. Another example of a PD wiring model is the PD diagonal wiring model, which specifies alternating layers of preferred- direction diagonal wiring. The PD diagonal wiring model can allow for shorter wiring distances than the PD Manhattan wiring model and can decrease the total wirelength needed to interconnect the electronic and circuit components of an IC. Design engineers design IC's by transforming logical or circuit descriptions of the IC's into geometric descriptions, called layouts. To create layouts, design engineers typically use electronic design automation ("EDA") applications. These applications provide sets of computer- based tools for creating, editing, and analyzing IC design layouts. IC layouts include geometric representations of IC elements that are to be fabricated on a wafer, such as IC components, interconnect lines, via pads, etc. As such, IC layouts typically include several geometries such as (1) circuit modules (i.e., geometric representations of electronic or circuit IC components) with pins, (2) interconnect lines (i.e., geometric representations of wiring) that connect the pins of the circuit modules on a same layer, and (3) vias (i.e., geometric representations of non-planar wiring) that connect the pins of the circuit modules across different layers. To fabricate an IC after designing of the IC layout is completed, a lithographic plate (photomask) is created based on the IC layout so that the photomask contains the various geometries of the IC layout. The various geometries contained on the photomask represent the IC elements (such as IC components, interconnect lines, via pads, etc.) to be created on a wafer in a particular circuit pattern, the wafer forming the base of the integrated circuit. The wafer will typically have a protective insulation layer and a light-sensitive photoresist layer placed on top. A light source and lens are used to focus light through the photomask onto the photoresist layer of the wafer so that selected areas of the photoresist layer are modified (typically weakened or strengthened). In doing so, the circuit pattern represented on the photomask is "imprinted" on the photoresist layer of the wafer. The modified areas of the photoresist layer (as well as the insulation layer beneath) is then etched away to produce the IC elements of the desired circuit pattern. Through multiple stages of designing, photomasking (lighting), and etching, multiple layers of the IC are created. Typically, however, there is substantial disparity in the geometries as originally designed in the IC layout (and replicated on the photomask) and the resulting fabricated geometries actually produced on a wafer through the photomasking and etching processes. The disparity between the geometries designed in a layout and the resulting fabricated geometries is largely due to the fact that, in recent years, geometry dimensions have become smaller than the wavelength of light used in the photomasking process, thus making accurate reproduction of geometry dimensions problematic. In response, various optical methods, such as Resolution Enhancement Techniques (RET), have been developed to allow more accurate reproduction of geometry dimensions at sizes smaller than the wavelength of light used in the photomasking process. Use of Resolution Enhancement Techniques in IC fabrication, however, do not guarantee that geometries actually fabricated on a wafer will resemble (within a predetermined toleration threshold) the geometries originally designed in an IC layout. Disparity between a geometry designed in a layout and the resulting fabricated geometry is also caused by diffracted light that strikes the geometry from surrounding geometries, the light being diffracted off the surrounding geometries during the photomask processing of the surrounding geometries. This diffracted light can cause distortions or inaccuracies in the appearance of a geometry with which it makes contact. As such, with or without the use of RET, there is a degree of unpredictability in the fabrication of geometries on a wafer. Figure 1 shows an example of the variation that may result between an original geometry 105 as designed in an IC layout (and replicated on a photomask) and a fabricated geometry 120 actually produced on a wafer. In the example of Figure 1 , the original geometry 105 has five features of interest that are indicated by dots: four corner features 110 and one line-point feature 112. As shown in Figure 1, the fabricated geometry 120 has four rounded corners 125 and a curved line segment 127. Typically in IC fabrication, the corners 125 of a geometry 120 produced on a wafer will have substantial error (i.e., will differ substantially from the comers 110 of the original geometry 105). Also, line segments of a fabricated geometry 120 can also have substantial error and be curved instead of straight, as shown in the example of Figure 1. Conventionally, modifications are made to geometries in the IC layout (and replicated on a photomask) to adjust for the errors in the resulting geometries fabricated on the wafer. Figure 2 shows an example of modifications (correcting shapes) 230 placed on the original geometry 105 and a fabricated geometry 235 actually produced on the wafer. As shown in Figure 2, the modifications 230 are placed at the corner features 110 of the original geometry 105 which produces less rounded corners 240 in the fabricated geometry 235. A modification 230 is also placed at the line-point feature 112 of the original geometry 105 which produces a less curved line segment 242 in the fabricated geometry 235. Note that although the fabricated geometry 235 produced through use of the modifications 230 is closer in appearance to the original geometry 105, there is still some disparity between the fabricated geometry 235 and the original geometry 105. Typically, modifications are made to original geometries to produce only satisfactory resulting geometries that are within an allowable threshold of variance from the original geometries. Presently, there are two methods for creating modifications to original geometries in layouts. The first is a simulation-based approach where initial modifications are made to an original geometry in a layout and a computed simulation is performed on the original geometry to produce a simulated geometry. The simulated geometry is used to judge whether the modifications to the original geometry are satisfactory or not. If the modification to the original geometry has not produced a satisfactory simulated geometry, the modification is adjusted (e.g., made larger or smaller) and another simulated geometry is produced. This process is iterated until a satisfactory simulated geometry is produced. The simulation-based approach, however, requires that every geometry in a layout be iteratively simulated until a satisfactory geometry is produced. Considering that there may be billions of such geometries on a single layout, this approach can be very time intensive. The second approach is a rule-based approach where modification rules are typically developed by an IC designer by hand. Such rules define what modifications are to be made to geometries in different situations. Although the rule-based approach is not as time-intensive as the simulation-based approach, a large number of rules must be developed to cover the various situations that may arise in an IC layout. Also, each modification rule may be complex and cumbersome to develop and apply. As such, there is a need for a simple and efficient method for determining a modification to a geometry in a layout that is calculated to produce a satisfactory geometry when fabricated on a wafer. ■
SUMMARY OF THE INVENTION Some embodiments of the invention provide a method for modifying features in an IC layout using a library of pretabulated models, each model containing a modification to a feature calculated to produce a satisfactory feature on a wafer. Each model also contains an environment of the feature that includes a geometry on which the feature is located and zero or more neighboring geometries. In some embodiments, a method for modifying features in an IC layout includes 1) selecting a feature in a layout for modification, 2) identifying an environment containing the feature, 3) identifying a model in a pretabulated library containing a matching environment, 4) retrieving a modification to the feature from the matching model, and 5) applying the modification to the feature in the layout. In some embodiments, the matching model also contains other data, such as simulated environment data, re-simulated environment data, electrical characteristic data, and/or an adjustment equation or function data. In these embodiments, the method retrieves (at step 4), any or all of the other types of data contained in the matching model. In some embodiments, a method for building a library of pretabulated models includes 1) creating a set of example pretabulated environments, each pretabulated environment containing a feature and one or more geometries, 2) selecting a current environment in the set, 3) creating and applying a modification to the current feature in the current environment, 4) simulating the current environment with the modification, 5) repeating steps 3 and 4 until a satisfactory simulation of the current environment and current feature is achieved, 6) creating a model of the current environment by storing data of the current environment (with the last modification made) to the model, and 7) repeating steps 2 through 6 until all environments in the set are processed. In some embodiments, a set of environments in the library is tailored towards layouts having a particular preferred-direction wiring, such as Manhattan or diagonal preferred-direction wiring. In some embodiments, a set of environments in the library is tailored towards layouts not having a particular preferred-direction wiring, such as layouts designed in analog. Some embodiments of the invention provide an alternative method for modifying features in an IC layout using a library of pretabulated models, the alternative method including 1) selecting a feature in the layout for modification, 2) identifying a layout environment containing the feature, 3) determining if a model in the library contains a matching environment, 4) if so, retrieving and applying a modification to the feature from the matching model, 5) if not, determining if a model in the library contains an environment within a predetermined variance from the layout environment, 6) if so, retrieving and applying a modification to the feature from the "matching" model, and 7) if not, creating and storing a new model in the library for the layout environment. In some embodiments, rather than performing steps 5 through 7, the method uses a conventional rule-based approach to determine a modification to the feature in the layout when a matching model is not found in the library. In some embodiments, the method is performed without a prior pretabulated library being created, but rather, simultaneously creates a library while modifying features in a layout, i.e., creates a pretabulated library "on-the-fly" during runtime when it is used to modify a layout. In some embodiments, a model in the pretabulated library contains pretabulated environment data describing a pretabulated environment containing a feature, one or more geometries, and a modification to the feature. In some embodiments, the model also contains simulated environment data describing a simulated environment that is a prediction of how the pretabulated environment will appear once fabricated on a wafer assuming no processing variations. In some embodiments, the model also contains re-simulated environment data describing a re-simulated environment that is a prediction of how the pretabulated environment will appear once fabricated on a wafer assuming one or processing variations. Some embodiments provide an alternative library building method for building a pretabulated library of models, each model containing simulated environment data and/or re- simulated environment data. In these embodiments, the library building method includes 1) creating a set of example pretabulated environments, each pretabulated environment containing a feature, 2) selecting a current environment in the set, 3) determining a modification to a feature in the current environment that produces a satisfactory simulated environment, 4) creating a model of the current environment by storing data of the current environment to the model, 5) storing simulated environment data describing the satisfactory simulated environment to the model, 6) producing a re-simulated environment of the current environment reflecting one or more process variations, 7) storing re-simulated environment data describing the re-simulated environment to the model, and 8) repeating steps 2 through 7 until all environments in the set are processed. In some embodiments, the model also contains electrical characteristic data describing an electrical characteristic (such as capacitance, inductance, or resistance) of the pretabulated environment. In some embodiments, each model contains a characteristic equation that expresses an electrical characteristic of the pretabulated environment as a function of dimensions and placement of one or more geometries in the pretabulated environment and/or as a function of one or more process variations. Some embodiments provide an alternative library building method for building a library containing capacitance equations, the method including 1) creating a set of example pretabulated environments, each pretabulated environment containing a pair of neighboring geometries, 2) selecting a current environment in the set, 3) simulating the current environment to produce an initial environment, 4) performing a three-dimensional (3D) electromagnetic simulation on the initial environment to find an initial capacitance (C0) between the pair of neighboring geometries, 5) performing a re-simulation on the current environment taking into consideration example values of one or more process variations to produce a changed environment, 6) determining a distance difference (ΔW) between the distances of the pair of neighboring geometries in the changed environment and the initial environment, 7) performing a 3D simulation on the changed environment to find a capacitance value (C) between the pair of neighboring geometries, 8)
storing the capacitance value (C), the distance difference (ΔW), and the example values of the one or more process variations as an example result, 9) repeating steps 5 through 8 a predetermined number of times to produce a set of example results, 10) determining a capacitance equation that considers all example results in the set, 11) storing the capacitance equation to a model for the current environment, and 12) repeating steps 2 through 11 until all environments in the set are processed. In some embodiments, the model also contains adjustment equation or function data describing an adjustment equation or function that uses at least one geometry coverage percentage of a specific area in a design layout to determine an adjustment to a pretabulated modification in the model. Some embodiments provide an adjustment method for modifying geometries in an IC layout using a library of pretabulated models in conjunction with a predetermined adjustment equation or function. For each feature in the layout, the method includes 1) identifying a current environment containing the feature, 2) identifying a model in the library containing a matching environment, 3) retrieving, from the matching model, a modification to the feature and a predetermined adjustment equation used to adjust the modification, the adjustment equation containing one or more predetermined coefficients and one or more variables being geometry coverage percentages of particular areas in the layout, 4) determining geometry coverage percentages of areas specified in the adjustment equation, 5) determining an adjustment to be made to the modification using the adjustment equation, 6) applying the adjustment to the modification, and 7) applying the adjusted modification to the feature. • Some embodiments provide a library building method to produce a library containing predetermined adjustment equations or functions. For each pretabulated environment (containing an initial modification to a feature) in a set of pretabulated environments, the method includes 1) performing a simulation on the environment taking into consideration one or more example geometry coverage values of particular regions surrounding the feature, 2) adjusting the initial modification, 3) repeating steps 1 and 2 until a satisfactory simulation is produced, 4) determining a sum adjustment made to the initial modification, 5) storing the sum adjustment value and the one or more geometry coverage values as an example result, 6) repeating steps 1 through 5 a predetermined number times to produce a set of example results, 7) determining an adjustment equation that considers all example results in the set and explains how the sum adjustment value is derived from the one or more geometry coverage values, and 8) storing the adjustment equation to a model for the environment. In some embodiments, geometries in an upper layout for an upper layer of an IC are modified using information relating to a lower layout for a lower layer of the IC. In some embodiments, geometries in the upper layout are modified using a density map of the lower layout. In some embodiments, geometries in a layout for a layer of an IC are modified based on topographic data (vertical deviation data) of the layout/layer. Some embodiments provide a method for modifying a layout for an upper layer of an IC using information relating to a layout for a lower layer of the IC. The method includes 1) receiving an upper layout for an upper layer of an IC, the layout containing features and modifications to features, 2) retrieving data of a lower layout for a lower layer of the IC, 3) producing a density map of the lower layout indicating a percentage of geometry coverage in sub- regions of the lower layout, 4) selecting a current feature (having a modification) in the upper layout, 5) retrieving, from the density map, the percentage of geometry coverage of the sub- region of the lower layout that is below the current feature, 6) determining an estimate of vertical deviation of the current feature based on the geometry coverage percentage, 7) determining an alteration to the modification of the current feature based on the vertical deviation, 8) applying the alteration to the modification of the current feature, and 9) repeating steps 4 through 8 until all features in the upper layout are processed.
BRIEF DESCRIPTION OF THE DRAWINGS The novel features of the invention are set forth in the appended claims. However, for purpose of explanation, several embodiments of the invention are set forth in the following figures. Figure 1 shows an example of the variation that may result between an original geometry as designed in an IC layout and a fabricated geometry actually produced on a wafer. Figure 2 shows an example of modifications placed on the original geometry and a fabricated geometry actually produced on the wafer. Figure 3 is a flowchart of a general design method for designing integrated circuit layouts. Figure 4 shows a top-view diagram of a sub-region of a layout containing geometries that represent various IC elements such as circuit modules, interconnect lines, or via pads that are to be fabricated on a wafer. Figure 5 shows a top-view diagram of a sub-region of a layout containing a primary geometry containing a current feature and an environment surrounding the cuπent feature. Figure 6 is a conceptual diagram of a model containing descriptive data of a pretabulated environment that matches the layout environment of Figure 5, the model being stored in a pretabulated library of models. Figure 7 is a flowchart of a layout modification method for modifying geometries in an IC layout using a library of pretabulated models. Figure 8 is a flowchart of a method for building a library of pretabulated models. Figures 9A-9F show examples of environments that may be created for a Manhattan preferred wiring layout. Figures 10A-10C show examples of environments that may be created for a diagonal preferred wiring layout. Figures 11A-11C show examples of environments that may be created for an analog designed layout. Figure 12 is a flowchart of a matching method for identifying a model containing a pretabulated environment that matches a layout environment. Figures 13A-13H illustrate eight different orientations of a layout environment 1305, each orientation being equivalent. Figure 14 is a flowchart of an alternative layout modification method for modifying geometries in an IC layout using a library of pretabulated models. Figure 15 shows a conceptual diagram of data that is stored in a model of the pretabulated library. Figure 16 is a flow chart of an alternative library building method for building a pretabulated library of models, each model containing simulated environment data and/or re- simulated environment data. Figure 17A shows a simulation result of the pretabulated environment that does not reflect any process variations. Figure 17B shows a simulation result of the same pretabulated environment of Figure 17A taking into consideration one or more process variations. Figure 18 is a flowchart of an alternative library building method for producing a library containing predetermined capacitance equations. Figure 19 is a flow chart of an adjustment method for modifying geometries in an IC layout using a library of pretabulated models in conjunction with a predetermined adjustment equation or function. Figure 20 shows a top-view diagram of a sub-region of a layout containing various geometries, a current feature, and three radius regions surrounding the current feature. Figure 21 is a flowchart of an alternative library building method used to produce a library containing predetermined adjustment equations or functions. Figure 22 is a flowchart of an altering method for altering modifications to geometries in a layout for an upper layer of an IC using information relating to a layout for a lower layer of the IC. Figure 23 shows a top-view diagram of a portion of a lower layout that has been divided into sub-regions. Figure 24 conceptually illustrates a computer system with which some embodiments of the invention are implemented.
DETAILED DESCRIPTION OF THE INVENTION In the following description, numerous details are set forth for purpose of explanation. However, one of ordinary skill in the art will realize that the invention may be practiced without the use of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order not to obscure the description of the invention with unnecessary detail. The description that follows is divided into six sections. A general method for designing integrated circuit layouts and general terms and concepts are discussed below in Section I. Section II then describes methods for modifying geometries in an IC layout using a library of pretabulated models, each model describing an environment (a sub-region of the IC layout) and a modification to be applied to a geometry or feature in the environment. Section IE describes alternative methods of modifying geometries in an IC layout using the library of pretabulated models. Section IV describes other data that can be contained in a model of the library, such as simulation data or electrical data of the environment described in the model. Section V describes methods of modifying geometries in an IC layout using the library of pretabulated models in conjunction with equation or function-based methods. And Section VI describes methods for modifying geometries in a layout for a layer of an IC using information relating to a layout for another layer of the IC. SECTION I: GENERAL METHOD FOR DESIGNING, TERMS, AND CONCEPTS Figure 3 is a flowchart of a general design method 300 for designing integrated circuit layouts. The method 300 can be implemented, for example, by an electronic design automation ("EDA") application that creates, edits, or analyzes IC design layouts. The general design method 300 begins when an original design layout is received (at 305) that contains a plurality of geometries, each geometry having zero or more features. The original design layout is typically designed by design engineers. Modifications to geometries and features of the layout are then determined and applied to the design layout to produce (at 310) a modified layout. In some embodiments, modifications to a layout are determined using a library of pretabulated models, each model containing a modification to be applied to a geometry or feature in the layout (as described in Section -H). The library of models is pretabulated so as to produce a modified layout that results in a satisfactory simulated layout, i.e., a simulated layout that is within a predetermined threshold of variance from the original layout (received at 305) in appearance. Note that the following steps 315 through 330 of the method 300 are completely optional. A simulated layout of the modified layout is then produced (at 315) using a simulator program. The simulated layout is used to verify that the modified layout produces a satisfactory simulated layout. The simulated layout is a prediction of how the modified layout will appear once fabricated on a wafer and is produced by a simulator program that assumes no processing variations (i.e., assumes "normal" processing conditions). In some embodiments, in producing the simulated layout, the simulator program considers various factors, such as the properties of the photoresist layer, the effect of the optics of the exposing machine, the properties of the light source, the properties of the etching machines used in the photomasking process, etc. The method then determines (at 325) whether the simulated layout is satisfactory, i.e., within a predetermined threshold of variance from the original layout (received at 305) in appearance. If not, an error has occurred as the modified layout is produced using a pretabulated library of models designed to produce a satisfactory simulated layout. If the modified layout produces a satisfactory simulated layout, the method proceeds to step 330. The modified layout that produced the satisfactory simulated layout can then be used to build a photomask that contains the various geometries and modifications of the modified layout. At step 330, the method produces a re-simulated layout of the modified layout using a simulator program that takes into consideration one or more process variations (i.e., variations that occur during the fabrication of an IC). In some embodiments, in producing the re-simulated layout, the simulator program considers the same factors as for step 315 (e.g., the properties of the photoresist layer, the effect of the optics of the exposing machine used in the photomasking process, etc.) in addition to one or more specific process variations. The re-simulated layout is also a prediction of how the modified layout will appear once fabricated on a wafer but is produced by a simulator program that assumes one or more processing variations, such as variations in lens focus or light exposure (light dosage) during the photomasking process. As such, in comparison to the simulated layout (produced at 315), the re- simulated layout reflects one or more processing variations and may vary significantly in appearance from the simulated layout. For example, geometries in the re-simulated layout may be thinner, thicker, or be shaped differently than corresponding geometries in the simulated layout. In some embodiments, the re-simulated layout provides a prediction of how the modified layout will appear once fabricated considering a specific process variation having a specific value (e.g., lens focus variation having a defocus value of +10ήm). In some embodiments, one or more re-simulated layouts are produced (at 330). The general design method 300 then ends. Note that the re-simulated layout (produced at 330) typically provides a highly accurate prediction of how the modified layout with actually appear once fabricated. As such, the re- simulated layout may be used by a design engineer to determine whether further modifications are to be made to the modified layout. In addition, the re-simulated layout may be input to various layout analysis programs, for example, to calculate electrical characteristics of the modified layout. However, such programs would require considerable time to reproduce the re- simulations performed at step 330. In some embodiments, as described in Section IV, models of a pretabulated library contain data describing the simulation results of step 315 and/or the re-simulation results of step 330 (including a specific value for a specific process variation). By storing the simulation results of step 315 and/or the re-simulation results of step 330, these simulation results do not need to be reproduced, thus saving processing time. This can make it practical for uses (such as interactive viewing by a designer) where it was not practical before. The IC design layout (received 305) will typically include several geometries such as (1) circuit modules (i.e., geometric representations of electronic or circuit IC components) with pins, (2) interconnect lines (i.e., geometric representations of wiring) that connect the pins of the circuit modules on a same layer, and (3) vias (i.e., geometric representations of non-planar wiring) that connect the pins of the circuit modules across different layers. A via includes (1) one pad on each of the two layers that it traverses and (2) a cut that is the three-dimensional hole between the two layers. A via pad has a particular shape when viewed from above and can comprise a geometry on an IC layer. Figure 4 shows a top-view diagram of a sub-region 405 of a layout containing geometries 410 that may represent various IC elements such as circuit modules, interconnect lines, or via pads that are to be fabricated on a wafer. A geometry 410 may contain a feature 415 (indicated by dots), such as a comer (i.e., a point at which two sides of the geometry meet and form an angle of 90 degrees), a bend (i.e., a point at which two sides of the geometry meet and form an angle other than 90 degrees) or a point on a side of a geometry 410 (i.e., a line-point feature). As used herein, a geometry containing a feature that is currently being processed by the methods of the present invention is referred to as a primary geometry. Geometries neighboring the primary geometry are referred to as neighboring geometries. Figure 5 shows a top-view diagram of a sub-region 505 of a layout containing a primary geometry 512 containing a current feature 515 and an environment 520 surrounding the current feature 515. Various neighboring geometries 510 are also shown located about the current feature 515. The environment 520 is a sub-region of a layout having a predetermined size and includes the current feature 515, part or all of the primary geometry 512 on which the current feature is located, and part or all of zero or more neighboring geometries 510. In the example shown in Figure 5, the shape of the environment 520 is a four-sided polygon. In other embodiments, however, the environment 520 has another geometric shape, such as a circle or an octagon. In some embodiments, the environment 520 is a square with the current feature 515 placed in the center. Figure 6 is a conceptual diagram of a model 600 containing descriptive data of a pretabulated environment 605 that matches the layout environment 520 of Figure 5, the model being stored in a pretabulated library of models. The pretabulated environment 605 has a predetermined size. In some embodiments, a model contains dimensions and placement data describing the environment surrounding a feature, a modification of the feature, the primary geometry on which the feature is located, and zero or more neighboring geometries that are included in the environment. In some embodiments, the descriptive data includes coordinate values of the feature, the modification, the primary geometry, and the zero or more neighboring geometries, the coordinate values being in relation to the position of the feature in the environment (e.g., where the feature is located in the center of the environment and has x and y coordinate values of 0, 0). In the example shown in Figure 6, the environment 605 described in the model 600 contains a current feature 610, a modification 615 of the current feature 610, a primary geometry 612, and one neighboring geometry 614. In some embodiments, a feature in an IC layout is processed by determining a layout environment surrounding the feature, finding a model in a pretabulated library having a matching pretabulated environment, and applying a modification contained in the model to the feature in the layout environment. For example, the feature 515 of Figure 5 can be processed by determining the layout environment 520 surrounding the feature 515, finding the model 600 (of Figure 6) having a pretabulated environment 605 that matches the layout environment 520, and applying the modification 615 contained in the model 600 to the feature 515 in the layout environment 520. In some embodiments, after processing a feature 515 in a layout, a processed region 530 is identified about the feature 515, the feature 515 being located in the center of the processed region 530. The processed region 530 indicates that the modification made to the feature 515 is sufficient for the processed region 530 and processing of other features within the processed region 530 is unnecessary. The processed region 530 may be larger or smaller in size than the environment 520 surrounding the feature 515. The processed region 530 may be used to help select other features for processing (as discussed below in relation to Figure 7). Note that determining the dimensions and placement of a modification that produces a satisfactory feature on a wafer is based in large part by the environment surrounding the feature, such as the dimensions and placement of the primary and neighboring geometries. In other words, the environment surrounding the feature affects the modification that needs to be made to the feature to produce a satisfactory feature on the wafer. This is due to diffracted light that strikes the feature from the surrounding geometries, the light being diffracted off the surrounding geometries during photomask processing of the surrounding geometries. However, the farther away on a layout a surrounding geometry is to a feature, the less it affects the modifications made to the feature (since the amount of diffracted light that reaches the feature is less). These factors should considered when predetermining the size of the environment. Following below is a list of terms and definitions used in this specification. A "layout" feature, geometry, environment, or modification refers to a feature, geometry, environment, or modification as found in a layout. A "pretabulated" feature, geometry, environment, or modification is a feature, geometry, environment, or modification that is described in a pretabulated model, the model being stored in a library of pretabulated models. A "simulated" feature, geometry, environment, or layout of is a prediction of how a feature, geometry, environment, or layout will appear once fabricated on a wafer and is produced by a simulator program that assumes no processing variations (i.e., assumes "normal" processing conditions). A "re-simulated" feature, geometry, environment, or layout of is a prediction of how a feature, geometry, environment, or layout will appear once fabricated on a wafer and is produced by a simulator program that assumes one or more processing variations. A re-simulated feature, geometry, environment, or layout does not necessarily mean that the feature, geometry, environment, or layout has been simulated before, but is used as a term to indicate a simulation reflecting one or more processing variations. A fabricated feature, geometry, environment, or layout is a feature, geometry, environment, or layout actually produced on a wafer. A model is said to contain a feature, geometry, environment, modification, equation, etc. when it contains data describing the feature, geometry, environment, modification, equation, etc. An environment is said to contain a geometry when it contains all or only a portion of the geometry.
SECTION II: MODIFYING GEOMETRIES USING A PRETABULATED LIBRARY Layout Modification Method Using a Library of Pretabulated Models: Figure 7 is a flowchart of a layout modification method 700 for modifying geometries in an IC layout using a library of pretabulated models, each model containing a modification to be applied to a geometry or feature in the IC layout. The layout modification method 700 comprises step 310 of the general design method 300 (of Figure 3). As such, the method 700 receives a design layout and produces a modified layout. The method 700 can be implemented, for example, by an electronic design automation ("EDA") application that creates, edits, or analyzes IC design layouts. The method 700 starts when it receives (at 705) an IC design layout having one or more geometries, each geometry containing zero or more features to be modified. The method then selects (at 710) a current feature in the layout for modification. In some embodiments, the method 700 first selects comer and bend features for processing, and after all comer and bend features have been processed, the method 700 then selects other features, such as line-point features, for processing. The method 700 then determines (at 712) if the current feature is located within a processed region. If so, the method 700 proceeds to step 710 where another current feature is selected. If not, the method 700 continues at step 715. The method then identifies (at 715) a current environment in the layout containing the current feature, the current layout environment having a predetermined size. The current environment may be identified, for example, by setting the shape of the current environment as a square having a predetermined size and positioning the square so that the current feature is in the center. The current environment contains the current feature and one or more layout geometries. In other embodiments, a current environment is identified in another manner, for example, by using a different shape. An example of step 715 is shown in Figure 5 where an environment 520 surrounding a current feature 515 is identified. The method then identifies (at 720) a model containing a pretabulated environment that matches the current layout environment, the model being contained in a library of pretabulated models. The pretabulated environment has a predetermined size that is equal to the predetermined size of the current layout environment. Each model in the library is created for a specific feature (pretabulated feature) in a specific environment (pretabulated environment), the environment containing the feature, one or more geometries, and a modification to the feature. A method for building a library of pretabulated models is discussed below in relation to Figure 8. By comparing the dimensions and placement of the one or more geometries in the current environment with the one or more geometries in a pretabulated environment in a model, a model containing a pretabulated environment that matches the layout environment is found. A method for identifying a matching model (i.e., a model having a pretabulated environment matching the current layout environment) is discussed below in relation to Figure 12. In this embodiment, it is assumed that a matching model is found in the library. Other embodiments, discussed below in Section in, consider the case where no matching model is found in the library. The method then retrieves (at 725), from the matching model, data describing the pretabulated modification for a pretabulated feature, the pretabulated modification being designed to produce a fabricated feature on a wafer that is within a predetermined variance from the current layout feature and the pretabulated feature. Also, as discussed below, the pretabulated modification produces a simulated feature that is within a predetermined variance from the pretabulated feature. In some embodiments, the matching model also contains other data of the pretabulated environment, such as simulated environment data, re-simulated environment data, electrical characteristic data, and/or an adjustment equation or function data (as described in Section IV). In these embodiments, the method retrieves (at 725), any or all of the other types of data contained in the matching model. These other types of data may be used, for example, by a design engineer to determine how the pretabulated environment is predicted to appear once fabricated, the electrical characteristics of the pretabulated environment, etc. The pretabulated modification is then applied (at 730) to the current feature in the design layout. The pretabulated modification has been created (as discussed below in relation to Figure 8) based upon a pretabulated feature and environment in order to produce a satisfactory fabricated feature on a wafer. Since the pretabulated feature and environment have been determined to match the current feature and environment in the layout, applying the pretabulated modification to the current feature should also produce a satisfactory feature once the feature is fabricated on a wafer. The method then identifies (at 732) a processed region about the current feature. The processed region indicates that the modification made to the current feature is sufficient for the processed region and processing of other features within the processed region are unnecessary. An example of step 732 is shown in Figure 5 where a processed region 530 about a current feature 515 is identified. The method then determines (at 735) if the current feature is the last feature on the design layout. If so, the method ends. If not, the method proceeds to step 710 where a next current feature in the layout is selected for processing. Building the Library of Pretabulated Models: As stated above, the layout modification method 700 identifies (at 720) a model containing a pretabulated environment that matches a current layout environment, the model being contained in a library of pretabulated models. Figure 8 is a flowchart of a method 800 for building a library of pretabulated models. Figure 8 is described in relation to Figures 5, 6, 9A-9F, 10A-10C, and l lA- l lC. The method 800 begins by creating a set of pretabulated environments for the library, each pretabulated environment containing a feature (such as a comer or bend), a primary geometry on which the feature is located, and zero or more neighboring geometries. Typically, the set of pretabulated environments created for a library will cover a broad range of environments that may be found on an IC layout. The set of environments will typically cover a multitude of various feature and geometry configurations that can be encountered on an IC layout. In some embodiments, a library or set of environments is tailored towards layouts having a particular preferred-direction wiring. As discussed above, IC's use preferred direction wiring models, which specify a preferred wiring direction for each of their wiring layers. For example, a layer may have Manhattan or diagonal preferred-direction wiring. Or, in the case of ICs that are designed in analog, a layer may have no preferred-direction wiring. A layout for a layer having Manhattan preferred wiring will, for the most part, have
geometries having sides that are horizontal or vertical in orientation (i.e., form an angle of 0° or
90° with respect to one of the coordinate axes of the layout which are typically parallel with the
layout's boundary and/or the boundary of the layout's expected IC). As such, a library or set of environments tailored towards a Manhattan preferred wiring layout will contain environments having geometries with horizontal or vertical sides. Figures 9A-9F show examples of environments 905 that may be created for a Manhattan preferred wiring layout. As shown in Figures 9A-9F, each environment 905 contains a feature 910, a primary geometry 915 on which the feature 910 is located, and zero or more neighboring geometries 920. Note that the sides of the geometries 915 and 920 are horizontal or vertical in orientation. In contrast, a layout for a layer having diagonal preferred-direction wiring will, for the most part, have geometries having sides that are diagonal in orientation (i.e., form an angle of
45° or 135° with respect to one of the coordinate axes of the layout). As such, a library or set of environments tailored towards diagonal preferred wiring layout will contain environments having geometries with diagonal sides. Figures 10A-10C show examples of environments 1005 that may be created for a diagonal preferred wiring layout. As shown in Figures 10A-10C, each environment 1005 contains a feature 1010, a primary geometry 1015 on which the feature 1010 is located, and zero or more neighboring geometries 1020. Note that the sides of the geometries 1015 and 1020 are diagonal in orientation. Or, in the case of ICs that are designed in analog, a layer may have no preferred-direction wiring. As such, a library or set of environments tailored towards analog designed ICs will contain environments having geometries of any shape or orientation. Figures 11A-11C show examples of environments 1105 that may be created for an analog designed layout. As shown in Figures 11A-4 IC, each environment 1105 contains a feature 1110, a primary geometry 1115 on which the feature 1110 is located, and zero or more neighboring geometries 1120. After a set of environments is created (at step 805), the method 800 then determines (at steps 810 through 835) a modification that is to be applied to a feature of each pretabulated environment that is predicted to produce a satisfactory feature once the feature is fabricated on a wafer. A modification to a feature in an environment is based upon the primary geometry and any neighboring geometries contained in the environment. In other words, the geometries surrounding the feature affect the modification that is calculated for the feature. At step 810, the method 800 selects an environment in the set of pretabulated environments as a cuπent pretabulated environment. The method then creates and applies (at 815) a modification to the feature in the current pretabulated environment. In some embodiments, method creates and applies a modification using techniques well known in the art. A simulation is then performed (at 820) on the current pretabulated environment which contains the modification to the feature. The simulation can be performed, for example, by a simulator that receives as input the current pretabulated environment and produces a cuπent simulated environment. The current simulated environment is a prediction of how the current pretabulated environment (which contains the modification to the feature) will appear once fabricated on a wafer. In some embodiments, the simulator assumes no processing variations (i.e., assumes "normal" processing conditions). The method then determines (at 825) whether the results of the simulation are satisfactory, i.e., whether the current simulated environment contains a simulated feature that is within a predetermined threshold of variance in appearance from the pretabulated feature contained in the current pretabulated environment. If not, the method proceeds to step 815 where the method creates and applies another modification to the feature in the current pretabulated environment and performs another simulation on the current pretabulated environment (which contains the new modification to the feature). The method iterates steps 815 through 825 until a satisfactory simulated environment is produced. If the method determines (at 825 - Yes) that the results of the simulation are satisfactory, the method then creates (at 830) a model of the current pretabulated environment and stores data of the current pretabulated environment to the model. In some embodiments, the model of the current pretabulated environment is a data structure that stores data describing the current pretabulated environment, wherein the current pretabulated environment contains the last modification made to the feature in the current pretabulated environment (i.e., the modification that produced the satisfactory simulation result). Figure 9A-9F, 10A-10C, and 11A-11C show examples of modifications 925, 1025, and 1125 of features 910, 1010, and 1110 contained in pretabulated environments 905, 1005, and 1 105. Note that for the sake of simplicity, the modifications 925, 1025, and 1125 shown in these are four-sided polygons, although in other embodiments, a modification contained a pretabulated environment is of another shape. The method then determines (at 835) whether the current pretabulated environment is the last pretabulated environment in the set of pretabulated environment. If not, the method proceeds to step 810 where the method selects a next environment in the set of pretabulated environments as a next current pretabulated environment. If so, the method ends. Method for Finding a Matching Pretabulated Environment: As stated above, the layout modification method 700 identifies (at 720) a model containing a pretabulated environment that matches a current layout environment, the model being contained in a library of pretabulated models. Figure 12 is a flowchart of a matching method 1200 for identifying a model containing a pretabulated environment that matches a layout environment, the model being contained in a library of pretabulated models. Figure 12 comprises step 720 of the layout modification method 700. Figure 12 is described in relation to Figures 13A-13H. The method 1200 begins when an environment in a layout is identified (step 715 of Figure 7), the layout environment containing a feature, a primary geometry on which the specific feature is located, and zero or more neighboring geometries. Note that a single layout environment can have eight different orientations (appearances), wherein the eight orientations are equivalent in the sense that a same modification applied to a feature in each orientation would affect the feature in the same way when the feature is simulated or fabricated. As such, as described herein, a pretabulated environment of a model is determined to "match" a layout environment when it matches any of the layout environment's eight orientations. This is based on the proposition that a modification described in the matching model that is applied to a feature in each orientation produces the same feature when the feature is simulated or fabricated. The eight different orientations of a layout environment can be produced through rotating and reflecting a single orientation of the layout environment. Figures 13A-13H illustrate eight different orientations of a layout environment 1305, each orientation being equivalent. Figures 13B-13D show rotated orientations of the layout environment 1305 shown in Figure 13A (Figure
13B shows a 90° clockwise rotation, Figure 13C shows a 180° clockwise rotation, and Figure
13D shows a 270° clockwise rotation of the layout environment 1305 shown in Figure 13A).
Figure 13E shows a reflected orientation of the layout environment 1305 shown in Figure 13 A, a
reflected orientation of a layout environment being an orientation that is reflected across a 45° axis of the layout environment (i.e., an interchange of x and y coordinates of the layout environment). Figures 13F-13H show rotated orientations of the layout environment 1305 shown
in Figure 13E (Figure 13F shows a 90° clockwise rotation, Figure 13G shows a 180° clockwise
rotation, and Figure 13F shows a 270° clockwise rotation of the layout environment 1305 shown
in Figure 13E). After an environment in a layout is identified the method then reduces (at 1205) the layout environment to a first canonical orientation. In some embodiments, a canonical orientation of a layout environment has a primary geometry (on which a feature of the layout environment is located) located in the lower-left portion of the layout environment. In other embodiments, a different definition of a canonical orientation is used. Note that each layout environment has two canonical orientations since there are two orientations of each layout environment where the primary geometry is located in the lower-left portion of the layout environment. For example, Figures 13A and 13E both show canonical orientations of a layout environment 1305. In some embodiments, the first canonical orientation of the layout environment is achieved by rotating the layout environment until the primary geometry is located in the lower-left portion of the layout environment. The method then compares (at 1210) the layout environment in its first canonical orientation to pretabulated environments in models of the pretabulated library. In some embodiments, the layout environment in its first canonical orientation can be compared to a pretabulated environment, for example, by comparing the dimensions and placements of the primary geometries and any neighboring geometries contained in the layout and pretabulated environments. In other embodiments, the layout environment in its first canonical orientation is compared to a pretabulated environment using a two step comparison process. In the first step, the layout and pretabulated environments are divided into sub-regions. In some embodiments, the layout and pretabulated environments are divided into 16 sub-regions. The percentage of geometry coverage in each sub-region is then determined for each sub-region of both environments. The percentage of geometry coverage in a sub-region is the area covered by primary and neighboring geometries in the sub-region divided by the total area of the sub-region multiplied by 100. For each sub-region, a two-bit number reflecting the percentage of geometry coverage in the sub-region is determined. In some embodiments, the two-bit number is set to 00 when the percentage of geometry coverage is equal to 0-25%, set to 01 when the percentage of geometry coverage is equal to 25-50%, set to 10 when the percentage of geometry coverage is equal to 50- 75%, and set to 11 when the percentage of geometry coverage is equal to 75-100%. The two-bit numbers for the sub-regions of the layout and pretabulated environments are then combined to produce a combined bit number for each environment. In some embodiments, two-bit numbers for 16 sub-regions of the layout and pretabulated environments are combined to produce a 32 bit number for each environment. If the two combined bit numbers are the same, then, in the second step, the dimensions and placements of the primary geometries and any neighboring geometries contained in the layout and pretabulated environments are compared. In other embodiments, other methods of calculating a hash function may be used. In other embodiments, the layout and pretabulated environments are divided into a number of sub-regions other than 16 sub-regions. In some embodiments, the combined bit number for each environment is other than a 32 bit number. The method then determines (at 1215) if a model having a pretabulated environment matching the layout environment has been found in the pretabulated library. If so, the method ends, whereby the layout modification method 700 then retrieves (at 725) data describing a pretabulated modification from the matching model. If not, the method then reduces (at 1220) the layout environment to a second canonical orientation. In some embodiments, the second canonical orientation of the layout environment is achieved by reflecting the first canonical orientation across a 45° axis of the first canonical orientation (i.e., by interchanging the x and y coordinates of the first canonical orientation). The method then finds (at 1225) a model, in the pretabulated library, having a pretabulated environment matching the layout environment in its second canonical orientation. In some embodiments, the matching pretabulated environment is found by comparing the dimensions and placements of the primary geometries and any neighboring geometries contained in the layout and pretabulated environments. In other embodiments, the matching pretabulated environment is found by comparing the layout and pretabulated environments using the two step comparison process described above. The method then ends, whereby the layout modification method 700 then retrieves (at 725) data describing a pretabulated modification from the matching model. Note that in the matching method 1200 described above, each model in the library contains a pretabulated environment that can be matched to any of eight equivalent orientations that can be encountered in the layout, the eight different orientations being matched to the pretabulated environment through the rotating and reflecting processes of the matching method 1200. As such, the rotating and reflecting processes of the matching method 1200 allows for the storage of only one pretabulated environment in the pretabulated library for any of eight equivalent orientations encountered in the layout, thus reducing the storage space required to store the pretabulated library. In the embodiments described above, a single layout environment can have 8 different orientations (appearances). In other embodiments, a single layout environment can have 2, 4, or 16 different orientations, depending on the symmetry of the light source used in the photomasking process and whether 45 degree and 0 degree libraries can be combined. For example, if the light source is completely symmetrical, a single layout environment can have 16 different orientations. In the embodiments discussed in Section π, it is assumed that a model having a pretabulated environment matching the layout environment is found. Other embodiments, discussed below in Section III, consider the case where no matching model is found in the library.
SECTION HI: ALTERNATIVE METHODS OF MODIFYING GEOMETRIES IN AN IC
LAYOUT USING THE LIBRARY OF PRETABULATED MODELS. Figure 14 is a flowchart of an alternative layout modification method 1400 for modifying geometries in an IC layout using a library of pretabulated models. The alternative method 1400 comprises step 310 of the general design method 300 (of Figure 3). As such, the method 1400 receives a design layout and produces a modified layout. The method 1400 can be implemented, for example, by an electronic design automation ("EDA") application that creates, edits, or analyzes IC design layouts. The alternative method 1400 contains several steps that are similar to steps performed in the layout modification method 700 of Figure 7. Only those steps that differ from the layout modification method 700 are discussed in detail here. The method 1400 starts when it receives (at 705) an IC design layout having one or more geometries, each geometry containing zero or more features to be modified. The method then selects (at 710) a current feature in the layout for modification. The method then identifies (at 715) a current environment in the layout containing the current feature. The method then determines (at 1420) whether a model having a pretabulated environment that matches the current layout environment is contained in a library of pretabulated models. This can be determined, for example, using the matching method 1200 (discussed above in relation to Figure 12) for identifying a matching model. If a matching model is found, the method 1400 then retrieves (at 725), from the matching model, data describing a pretabulated modification and applies (at 730) the pretabulated modification to the current feature. In some embodiments, the matching model also contains other data of the pretabulated environment, such as simulated environment data, re-simulated environment data, electrical characteristic data, and/or an adjustment equation or function data (as described in Section IN). In these embodiments, the method retrieves (at 725), any or all of the other types of data contained in the matching model. If a matching model is not found (at 1420 - No), the method 1400 then determines (at 1422) whether a model having a pretabulated environment that is within a predetermined variance threshold from the current layout environment is contained in the library of pretabulated models. To make this determination, the method determines, for example, whether the dimensions and locations of the geometries of the current layout environment are within a predetermined variance from the dimensions and locations of the geometries of a pretabulated environment in the library. If so, the model having the pretabulated environment that is within the predetermined variance threshold is considered a "matching" model and the method 1400 continues at step 725 where it retrieves, from the "matching" model, data describing a pretabulated modification and applies (at 730) the pretabulated modification to the current feature. If the method 1400 determines (at 1422 - No) that a model having a pretabulated environment that is within a predetermined variance threshold from the current layout environment is not contained in the library, the current layout environment is considered a "new" environment and the method proceeds to step 1425. At step 1425, the method creates a new model for the "new" environment and the current feature by performing, for example, steps 815 to 830 of the library building method 800 of Figure 8. The new model is stored to the library that contains a pretabulated environment that replicates the "new" environment and a pretabulated modification for a pretabulated feature that replicates the current feature. The method then applies (at 1430) the pretabulated modification to the current feature in the design layout. The method then determines (at 735) if the current feature is the last feature on the design layout. If so, the method ends. If not, the method proceeds to step 710 where a next current feature in the layout is selected for processing. In an alternative embodiment, after a matching model is determined (at 1420 - No) not to be contained in the library, the method 14 does not perform step 1422, but rather, creates (at 1425) a new model for the "new" environment directly after this determination. In an alternative embodiment, after a matching model is determined (at 1420 - No) not to be contained in the library, the method 14 does not perform steps 1422, 1425, and 1430, but rather, uses a conventional rule-based approach to determine a modification to the current feature in the layout. In an alternative embodiment, after a "matching" model is determined (at 1422 - No) not to be contained in the library, the method 14 does not perform steps 1425 and 1430, but rather, uses a conventional rule-based approach to determine a modification to the current feature in the layout. In a further embodiment, the method 1400 is performed without a prior pretabulated library being created. In this embodiment, the method 1400 simultaneously creates a pretabulated library (by creating models for the pretabulated library at step 1425) while modifying features in a layout. As such, the method 1400 creates a pretabulated library "on-the-fly" during runtime when it is used to modify a layout. The models of the pretabulated library created during runtime would typically be stored to a cache having relatively faster read and write times. In this embodiment, the method would determine (at 1420 and 1422) whether a matching or "matching" model is contained in the library, the library containing only models having pretabulated environments that replicate environments that have previously been encountered/identified in the layout during the layout modification process. If a matching or "matching" model is not found, a new model for the new environment would then be created (at 1425). SECTION IV: ALTERNATIVE DATA STORED IN A MODEL OF THE LIBRARY As described in Section II, a model in the library contains data describing a pretabulated environment containing a feature, a modification to the feature, a primary geometry on which the feature is located, and zero or more neighboring geometries. In some embodiments, a model in the library is a data structure that stores data describing a pretabulated environment (for example, in terms of dimensions and placement of objects in the pretabulated environment). In some embodiments, further data is included in the model such as data describing simulation results and/or re-simulation results. Figure 15 shows a conceptual diagram of data that is stored in a model 1500 of the pretabulated library. As shown in Figure 15, the model 1500 contains pretabulated environment data 1505 describing a pretabulated environment containing a feature, a modification to the feature, a primary geometry, and zero or more neighboring geometries. In some embodiments, the model 1500 also contains simulated environment data 1510 describing a simulated environment that is a prediction of how the pretabulated environment will appear once fabricated on a wafer assuming no processing variations. In some embodiments, the model 1500 also contains re-simulated environment data 1515 describing a re-simulated environment that is a prediction of how the pretabulated environment will appear once fabricated on a wafer assuming one or processing variations. In some embodiments, the model 1500 also contains electrical characteristic data 1520 describing an electrical characteristic of the pretabulated environment. In some embodiments, the model 1500 also contains adjustment equation or function data 1525 describing an adjustment equation or function that uses geometry coverage percentages of particular areas in a design layout to determine an adjustment to a pretabulated modification in the model (as described below in Section V). In some embodiments, the model 1500 contains any or all of the various types of data 1505, 1510, 1515, 1520, and 1525. By storing such data in each model, the various types of data 1505, 1510, 1515, 1520, and 1525 are readily available for use by design engineers (e.g., to determine how the pretabulated environment is predicted to appear once fabricated, the electrical characteristics of the pretabulated environment, etc.) without having to perform further time-costly operations to derive the various types of data. Simulated Environment and Re- Simulated Environment Data As an example of how the first three types of data would differ, the pretabulated environment data 1505 would contain data describing a modification to an environment, whereas the simulated environment data 1510 and re-simulated environment data 1515 would contain data describing how the environment will most likely appear when fabricated after the modification is applied, wherein the re-simulated environment data 1515 would reflect one or more process variations and the simulated environment data 1510 would not. As such, a model containing simulated environment data 1510 and/or re-simulated environment data 1515 can provide a design engineer not only a description of a modification to be applied to an environment, but also data describing prediction(s) of how the environment (with the modification applied) will actually appear when fabricated. This simulation data can thus be readily available without having to perform a further time-costly simulation or re- simulation on the model environment. The simulated environment data 1510 and the re-simulated environment data 1515 for a model 1500 can be generated and stored through a modification of the library building process 800 of Figure 8. Figure 16 is a flow chart of an alternative library building method 1600 for building a pretabulated library of models, each model containing simulated environment data and/or re-simulated environment data. The method 1600 of Figure 16 is identical to the library building process 800 up to step 830 of the process 800. At step 830 of the process 800, pretabulated environment data is stored to a model after iterations of modifications and simulations produce (at steps 815 to 825) a satisfactory simulated environment. The simulations are performed (at 820) on a current pretabulated environment (which contains a modification to a feature) by a simulator that assumes no processing variations (i.e., assumes "normal" processing conditions). After step 830, the method 1600 then stores (at 1605) data describing the satisfactory simulated environment (simulated1 environment data) to the model. Recall that the satisfactory simulated environment is the simulation result of the pretabulated environment containing the last modification made to the feature in the pretabulated environment. The method then produces (at 1615) a re-simulated environment of the current pretabulated environment (which contains the last modification to the feature and which produced a satisfactory simulated environment) using a simulator program that takes into consideration one or more process variations. In some embodiments, in producing the re- simulated environment, the simulator program considers a specific process variation (e.g., lens defocus or light dosage) having a specific value. In other embodiments, a set of two or more re-simulated environments are produced (at 1610) for a single pretabulated environment, the set of two or more re-simulated environments reflecting a set of values for a specific process variation. In these embodiments, a plurality of re- simulated environments are produced for a single pretabulated environment, wherein each re- simulated environment is produced by a simulator that considers a range of different values for a specific process variation. For example, a re-simulated environment may be produced to reflect each defocus value of -6, -3, +3, +6, thereby resulting in a total of four re-simulated environments for a single pretabulated environment. The re-simulated environment is a prediction of how the modified environment will appear once fabricated on a wafer but is produced by a simulator program that assumes one or more processing variations, such as variations in lens focus or light exposure (light dosage) during the photomasking process. As such, in comparison to the simulated environment (produced at 820), the re-simulated environment reflects one or more processing variations and may vary significantly in appearance from the simulated environment. For example, geometries in the re-simulated environment may be thinner, thicker, or be shaped differently than corresponding geometries in the simulated environment. The method then stores (at 1615) data describing the re-simulated environment (re- simulated environment data) to the model. In some embodiments, data relating to any specific process variations and any specific values of the process variations reflected by the re-simulated environment (i.e., considered by the simulator producing the re-simulated environment) is also stored to the model. In the embodiments where a plurality of re-simulated environments are produced for a single pretabulated environment, the plurality of re-simulated environments is stored to the model. For each re-simulated environment in the plurality of re-simulated environments, data relating to any specific process variations and any specific values of the process variations reflected by the re-simulated environment is associated with the re-simulated environment and stored to the model. For example, where a particular re-simulated environment reflects a defocus value of +6, data indicating a defocus value of +6 is associated with the particular re-simulated environment and stored to the model. In other embodiments, a separate model is created for each re-simulated environment in the plurality of re-simulated environments, the model storing data describing the re-simulated environment and data relating to any specific process variations and any specific values of the process variations reflected by the re-simulated environment. In some embodiments, the method 1600 performs only step 1605 and not steps 1610 and 1615 so that only simulated environment data is stored to the model. In other embodiments, the method 1600 performs only steps 1610 and 1615 and not step 1605 so that only re-simulated environment data is stored to the model. Electrical Characteristic Data Introduction In some embodiments, the model 1500 also contains electrical characteristic data 1520 describing one or more electrical characteristics of the pretabulated environment In some embodiments, model 1500 contains an equation (characteristic equation) relating to a specific electrical characteristic of the pretabulated environment. In some embodiments, the characteristic equation expresses a specific electrical characteristic of the pretabulated environment as a function of dimensions and placement of one or more geometries in the pretabulated environment and/or as a function of one or more process variations. In the embodiments described below, the characteristic equation relates to a capacitance characteristic of the environment, although, in other embodiments, the characteristic equation relates to another electrical characteristic of the environment, such as inductance or resistance. Also, in the embodiments described below, the process variations of lens defocus and light dosage are considered, although, in other embodiments, other process variations are considered. In some embodiments, the pretabulated environment contains two or more geometries and the characteristic equation (capacitance equation) relates to the capacitance between two geometries in the environment. In some embodiments, the capacitance equation describes the capacitance between two geometries in the pretabulated environment as a function of the distance between the two geometries and one or more process variations (such as lens defocus or light dosage). As discussed in relation to Figures 3 and 16, a re-simulated environment that reflects one or more processing variations may vary significantly in appearance from a simulated environment that does not take into account any processing variations. For example, geometries in the re-simulated environment may be thinner, thicker, or be shaped differently than corresponding geometries in the simulated environment. When neighboring geometries in an environment become thinner or thicker, the distance between the neighboring geometries changes and hence the capacitance between the neighboring geometries changes. Figures 17A and 17B show simulation results of a same pretabulated environment containing a first pair of neighboring geometries 1715 and a second pair of neighboring geometries 1720. Nearby geometries in an environment can produce interaction (capacitance) between the geometries, the amount of interaction being affected by the distance between the neighboring geometries. Figure 17A shows a simulation result 1705 of the pretabulated environment that does not reflect any process variations. As shown in Figure 17A, there is a first distance 1717 between the first pair of geometries 1715 and a second distance 1722 between the second pair of geometries 1720. A capacitance between the first pair of geometries 1715 is determined in large part by the first distance 1717 between the geometries 1715 and a capacitance between the second pair of geometries 1720 is determined in large part by the second distance 1722 between the geometries 1720. Figure 17B shows a simulation result 1735 of the same pretabulated environment of Figure 17A taking into consideration one or more process variations (such as lens defocus or light dosage). Figure 17B shows a simulated environment 1735 that is changed from the simulated environment 1705 shown in Figure 17A. Specifically, as shown in Figure 17B, there is a third distance 1747 between the first pair of geometries 1715 that is different than the a first distance 1717 shown in Figure 17A. Also, there is a fourth distance 1742 between the second pair of geometries 1720 that is different than the second distance 1722 shown in Figure 17A. These changes in distances between the first and second pair of neighboring geometries results from the one or more process variations reflected by the simulation result 1735 of Figure 17B. In some embodiments, the capacitance (C) between two geometries in a changed environment that has been changed from an initial environment is expressed by a first capacitance equation: C = Co + k,ΔW By using the first capacitance equation, the capacitance between two geometries in an environment can be calculated given a change in distance (ΔW) between two geometries. However, the first capacitance equation does not express capacitance as a function of process variations (which are the causes of the change in distance(ΔW)). Since the capacitance between neighboring geometries is affected by the distance between the geometries, and one or more process variations affect the distance between the geometries (since process variations can cause geometries to become thinner or thicker), the capacitance between neighboring geometries can be seen a function of the distance between the geometries and one or more process variations. In some embodiments, the capacitance (C) between two geometries in a changed environment that has been changed from an initial environment due to one or more process variations (PV) is expressed by a second capacitance equation: C = C0 + k,ΔW + k2ΔPVι + ... where C0 is a capacitance (initial capacitance) of the initial environment that reflects no process variations (i.e., where ΔW, ΔPVi, etc. all equal zero), ki, k2; etc. are predetermined sensitivity coefficients, ΔW is the difference in distance between the two geometries from the initial environment to a changed environment, and ΔPVi is the difference in values of a specific process variation reflected in the initial environment and the changed environment. For example, ΔW may be equal to the distance between the two geometries in the changed environment minus the distance between the two geometries in the initial environment. Also, ΔPVi may be equal to the valμe of a specific process variation reflected in the changed environment minus the value of the specific process variation reflected in the initial environment (which, in some embodiments, is always equal to zero). In some embodiments, the value of Co (initial capacitance) is adjusted/shifted or set to a predetermined value to correct or minimize error in the capacitance equation. In some embodiments, the capacitance (C) between two geometries in a changed environment that has been changed due to the process variations of lens defocus and light dosage is expressed by an example of the second capacitance equation in the form: C = Co + k,ΔW + k2ΔDF + k3Δdosage where kj, k2> and k are predetermined sensitivity coefficients, ΔDF is the difference in defocus values reflected in the initial environment and the changed environment and Δdosage is the difference in light dosage values reflected in the initial environment and the changed environment. Method for Storing Electrical Characteristic Data to a Model The interaction (capacitance) between geometries in an environment is an important electrical characteristic of the environment that should be taken into account when designing IC layouts. As such, having data describing the capacitance characteristics of an environment readily available, without need for further calculations, would be highly advantageous. In some embodiments, a capacitance equation describing the capacitance characteristics of an environment is stored to a model containing the environment, the model being contained in a pretabulated library of models. In some embodiments, the capacitance equation expresses capacitance between two geometries in the environment as a function of a change in distance between the two geometries. In some embodiments, the capacitance equation expresses capacitance as a function of a change in distance between the two geometries and one or more process variations. The library building method 800 of Figure 8 can be modified to build a library of pretabulated models where each model contains a pretabulated environment and a predetermined capacitance equation describing capacitance characteristics of the pretabulated environment. In some embodiments, the capacitance equation is in the form C = Co + kiΔW where the value for Co and the coefficient kj are predetermined. In some embodiments, the capacitance equation is in the form C = Co + k]ΔW + k2ΔDF + k3Δdosage, where the value for Co and coefficients ki, k2, and k3 are predetermined. Specifically, after step 830 of the library building method 800, an alternative library building method 1800 (shown as a flowchart in Figure 18) can be performed to produce a library containing predetermined capacitance equations. After step 825 of the library building method 800, a current environment that produces a satisfactory simulated environment is achieved, the satisfactory simulated environment being referred to as an initial environment. A model is then created which stores (at step 830 of the library building method 800) data describing the current environment. The alternative library building method 1800 begins when it receives (at 1805) the initial environment. An example of an initial environment is shown in Figure 17A. In some embodiments, the initial environment contains at least one pair of neighboring geometries with a particular distance between them. In some embodiments, the initial environment contains two or more pairs of neighboring geometries, each with a particular distance between them. The method then performs (at 1807) a three-dimensional electromagnetic simulation (3D simulation) on the initial environment to find an initial capacitance (Co) between one pair of neighboring geometries in the initial environment. In some embodiments, the method performs a 3D simulation on the initial environment to find initial capacitances between two or more pairs of neighboring geometries in the initial environment. In some embodiments, the 3D simulation is performed by a three-dimensional electromagnetic simulator program that solves Maxwell equations, as is well known in the art. In some embodiments, another type of simulation is performed to determine the initial capacitance (Co). A counter is then set (at 1810) to zero, the counter being used to count the number of iterations of the method and to stop the iterations once a predetermined number of X iterations are completed. A re-simulation is then performed (at 1815) on the cuπent environment to produce a changed environment, the re-simulation taking into consideration example process variation values of defocus and dosage. An example of a changed initial nvironment is shown in Figure 17B. In some embodiments, the re-simulation is performed by a simulator that takes into consideration specific example values of lens defocus and light dosage. In the changed environment, the pair of neighboring geometries will be different in appearance than from the initial environment (e.g., they will appear thinner, thicker, or different in shape). As such, a distance between the pair of neighboring geometries in the changed environment will most likely be different than the distance between the pair of neighboring geometries in the initial environment. In some embodiments, the initial and changed environments contain two or more pairs of neighboring geometries, each distance between the two or more pairs of geometries being changed from the initial environment to the changed environment. The method then determines (at 1820) a difference (ΔW) between the distances of the pair of neighboring geometries in the changed environment and the initial environment. The difference (ΔW) is determined by comparing the pair of neighboring geometries in the changed environment and the initial environment. For example, ΔW may be equal to the distance between the pair of geometries in the changed environment minus the distance between the pair of geometries in the initial environment. In some embodiments, the method determines a difference (ΔW) between the distances of two or more pairs of neighboring geometries in the changed environment and the initial environment. The method then performs (at 1825) a 3D or other simulation on the changed environment to find a capacitance value (C) between the pair of neighboring geometries in the changed environment. In some embodiments, the method performs a 3D or other simulation on the changed environment to find a capacitance for each of two or more pairs of neighboring geometries in the changed environment. The method then stores (at 1835) the capacitance value (C) (determined at step 1825), the difference (ΔW) in distances (determined at step 1820), and specific values for lens defocus and light dosage (used in the re-simulation at step 1815) as an example result for the pair of neighboring geometries. In some embodiments, the method stores capacitance values (Cs) and specific values for lens defocus and light dosage for two or more pairs of neighboring geometries. The method then determines (at 1840) if the counter is equal to X. If not, the method increments (at 1845) the counter and determines (at 1847) new example defocus and dosage values. A re-simulation is then performed (at 1815) on the initial environment taking into consideration the new example defocus and dosage values. If the method determines (at 1840 - Yes) that the counter is equal to X, the method proceeds to step 1850. At this point, the method has stored (at 1835) a set of example results (equal to X), each example result having a capacitance (C), distance difference (ΔW), defocus, and dosage value. The set of example results cover a range of capacitance (C), distance difference (ΔW), defocus, and dosage values. Using this data, the method then determines (at 1850) a capacitance equation that considers all X example results and expresses capacitance between the pair of geometries as a function of distance difference (ΔW), defocus, and dosage. In some embodiments, the method determines a capacitance equation for two or more pairs of geometries. In some embodiments, the capacitance equation is determined automatically, without the need for human intervention. In some embodiments, the method determines the capacitance equation using mathematical modeling methods or computer learning methods (discussed below in Section V). In some embodiments, the capacitance equation in the form: C = Co + kiΔW + k2ΔDF + k3Δdosage where C0 is a predetermined capacitance value, ki, k2> and k2> are predetermined sensitivity coefficients, ΔDF is the difference in defocus values reflected in an initial environment and a changed environment, and Δdosage is the difference in light dosage values reflected in the initial environment and the changed environment. Note that since an initial environment is typically a simulated environment that does not reflect any process variations, the initial environment typically reflects defocus and dosage values of zero. As such, in some embodiments, ΔDF is equal to the defocus value reflected in a changed environment and Δdosage is equal to the dosage value reflected in the changed environment. The method then stores (at 1855) the determined capacitance equation to the model created in step 830 of Figure 8. In some embodiments, the stores two or more determined capacitance equation to the model. The method then ends. In an alternative embodiment, the alternative library building method 1800 is performed separately from the library building method 800 of Figure 14. In this embodiment, the method 1800 receives (at 1805) an initial environment that is a simulated environment produced by other methods, such as conventional layout design methods. The method 1800 receives a set of such simulated environments and produces a set of models in a library, each model containing a predetermined capacitance equation. By storing a capacitance equation for an environment in a pretabulated library, this reduces the processing time required to later determine the capacitance equation for the environment. The capacitance equation can be used to determine the capacitance between a pair of neighboring geometries in the environment given specific values of lens defocus and light dosage. Electrical Characteristic Data: Alternative Embodiments In an alternative embodiment, the method 1800 considers one or more different process variations other than lens defocus and light dosage. In these embodiments, the method 1800 considers one or more different process variations when performing (at 1815) the re-simulation, stores (at 1835) specific values for the one or more different process variations, and determines (at 1850) the capacitance equation considering the one or more different process variations. In an alternative embodiment, the method 1800 does not determine (at 1850) a capacitance equation, but rather, stores (at 1855) the set of example results determined and stored at steps 1815 through 1847, each example result having a capacitance (C), distance difference (ΔW), defocus, and dosage value. In an alternative embodiment, the method 1800 stores (at 1835) only values for capacitance and distance difference (ΔW) as an example result, determines (at 1850) a capacitance equation in the form C = Co + kiΔW, and stores (at 1855) the capacitance equation to the model. In some embodiments, the capacitance equation is in a form other than the form C = Co + kiΔW br C = C0 + kiΔW + k2ΔDF + k3Δdosage. In an alternative embodiment, the method 1800 does not perform (at 1815) the re- simulation of the initial environment, but rather, creates a changed environment where the pair of neighboring geometries has a particular distance between them so that the distance difference (ΔW) between the pair of neighboring geometries in the initial and changed environments is equal to a predetermined difference. As such, through multiple iterations, the method 1800 creates a set of changed environments that produce a set of distance differences (ΔWs). The set of distance differences (ΔWs) can be predetermined by design engineers. Also, the method stores (at 1835) only values for capacitance and distance difference (ΔW) as an example result, determines (at 1850) a capacitance equation in the form C = Co + kiΔW, and stores (at 1855) the capacitance equation to the model. In an alternative embodiment, the method 1800 determines and stores an equation describing an electrical characteristic of an environment other than capacitance. For example, the method 1800 may determine and store an inductance equation describing inductance in the environment or determine and store a resistance equation describing resistance in the environment. SECTION V: MODIFYING A LAYOUT USING THE LIBRARY OF PRETABULATED MODELS IN CONJUNCTION WITH EQUATION OR FUNCTION-BASED METHODS. As discussed above, models in the pretabulated library of models contain descriptions of pretabulated environments that are of a predetermined size. To keep the number of pretabulated environments in the library to a manageable number, the predetermined size of the pretabulated environments is kept to a reasonable size (since the larger the predetermined size of the pretabulated environments, the greater the number of pretabulated environments required in the library to cover the greater number of variations in geometry dimensions and placement that can occur). In the layout modification method 700 for modifying geometries in an IC layout using a library of pretabulated models (discussed above in relation to Figure 7), the predetermined size of the pretabulated environments in the library determines the size of an environment that is identified on a design layout, the layout environment containing a feature that is to be modified. Geometries lying outside the layout environment, however, also affect how the feature will appear once fabricated, although to a lesser degree than the geometries lying inside the layout environment. In some embodiments, information relating to geometries (outside geometries) lying outside a layout environment is used to adjust a modification contained in a model (having a pretabulated environment that matches the layout environment) that is to be applied to a feature in the layout environment. In other embodiments, information relating to geometries lying between a first radius distance and a second radius distance from the feature in the layout environment is used to adjust the modification contained in a model. In further embodiments, a modification contained in the model is adjusted according to a predetermined adjustment equation or function that uses geometry coverage percentages of particular areas in the design layout, the adjustment equation or function being contained in the model. Figure 19 is a flow chart of an adjustment method 1900 for modifying geometries in an IC layout using a library of pretabulated models in conjunction with a predetermined adjustment equation or function. Each model in the library contains a modification to be applied to a geometry or feature in the IC layout and a predetermined adjustment equation or function that is used to adjust the modification. The method 1900 can be implemented, for example, by an electronic design automation ("EDA") application that creates, edits, or analyzes IC design layouts. The adjustment method 1900 of Figure 19 has many similar steps to the layout modification method 700 of Figure 7 and only those steps that differ are discussed in detail here. Figure 19 is described in relation to Figure 20. The adjustment method 1900 comprises step 310 of the general design method 300 (of Figure 3). As such, the method 1900 receives a design layout and produces a modified layout. The method 1900 starts when it receives (at 1905) an IC design layout having one or more geometries, each geometry containing zero or more features to be modified. The method then selects (at 1910) a current feature in the layout for modification. The method then identifies (at 1915) a current environment in the layout containing the current feature, the current layout environment having a predetermined size. The method then identifies (at 1920) a model containing a pretabulated environment that matches the current layout environment, the model being contained in a library of pretabulated models. Each model in the library contains data describing a pretabulated environment which includes a feature, a primary geometry on which the specific feature is located, and zero or more neighboring geometries. Each model in the library also contains data describing a pretabulated modification to the pretabulated feature and a predetermined adjustment equation or function used to adjust the pretabulated modification. A method for building a library of pretabulated models, each model containing a predetermined adjustment equation or function is discussed below in relation to Figure 21. The method then retrieves (at 1925), from the matching model, data describing the pretabulated modification and the predetermined adjustment equation or function for adjusting the pretabulated modification. In some embodiments, the matching model also contains other data of the pretabulated environment, such as simulated environment data, re-simulated environment data, and/or electrical characteristic data (as described in Section IV). In these embodiments, the method retrieves (at 1925), any or all of the other types of data contained in the matching model. In some embodiments, the adjustment equation or function contains one or more predetermined coefficients and one or more variables being geometry coverage percentages of particular areas in the design layout. In some embodiments, the adjustment equation or function is the form:
Figure imgf000055_0001
where A is the adjustment to be made to the pretabulated modification, ki, k2, etc. are predetermined coefficients, and Fι, F2j etc. are geometry coverage percentages of particular areas in the design layout. In other embodiments, the adjustment equation or function is of a different form. The method then determines (at 1930) geometry coverage percentages of particular areas in the design layout specified in the adjustment equation or function. In some embodiments, a geometry coverage percentage specified in the adjustment equation or function is of a region in the design layout between an inner predetermined radius distance and an outer predetermined radius distance from the cuπent feature, these regions being referred to as radius regions. The geometry coverage percentage of a radius region is equal to the area covered by geometries in the radius region divided by the total area of the radius region multiplied by 100. Figure 20 shows a top-view diagram of a sub-region 2005 of a layout containing various geometries 2007, a current feature 2015, and three radius regions 2020, 2025, and 2030 surrounding the current feature 2015. A first radius region 2020 spans from a first radius distance 2035 to a second radius distance 2040 from the current feature 2015, a second radius region 2025 spans from the second radius distance 2040 to a third radius distance 2045 from the current feature 2015, and a third radius region 2030 spans from the third radius distance 2045 to a fourth radius distance 2050 from the current feature 2015. A geometry coverage percentage can be determined for each radius region 2020, 2025, and 2030. The method then determines (at 1935) the adjustment to be made to the pretabulated modification using the adjustment equation or function and the geometry coverage percentages specified in the adjustment equation or function. In the example shown in Figure 20, assume that the predetermined equation is in the form:
Figure imgf000056_0001
where A is the adjustment to be made to the pretabulated modification, ki, k2, and k3 are predetermined coefficients, and Fi, F2> and F3 are geometry coverage percentages of the first, second, and third radius regions 2020, 2025, and 2030, respectively. After the values for the geometry coverage percentages Fi, F2, and F3 are determined, these values are input to the equation to determine the adjustment (A) to be made to the pretabulated modification. The adjustment may be expressed, for example, as a percentage amount that the modification be increased or decreased, or a distance that each side of the modification is to be increased or decreased. The method then applies (at 1940) the calculated adjustment to the pretabulated modification (for example, by increasing or decreasing the modification by the calculated amount) to produce an adjusted modification. The adjusted modification is then applied (at 1945) to the current feature in the design layout. The method then determines (at 1950) if the current feature is the last feature on the design layout. If so, the method ends. If not, the method proceeds to step 1910 where a next current feature in the layout is selected for processing. As stated above, the adjustment method 1900 identifies (at 1920) a model containing a pretabulated environment that matches a current layout environment, the model being contained in a library of pretabulated models. Each model in the library contains a pretabulated environment having a pretabulated modification and a predetermined adjustment equation or function used to adjust the pretabulated modification. In some embodiments, the adjustment equation or function contains one or more predetermined coefficients and one or more variables being geometry coverage percentages of particular areas .in the design layout. The library building method 800 of Figure 8 can be modified to build a library of pretabulated models where each model contains a pretabulated environment having a pretabulated modification and a predetermined adjustment equation or function used to adjust the pretabulated modification. Specifically, after step 830 of the library building method 800, an alternative library building method 2100 (shown as a flowchart in Figure 21) can be performed to produce a library containing predetermined adjustment equations or functions. After step 825 of the library building method 800, a current pretabulated environment having a modification to a feature that produces a satisfactory simulated environment is achieved, the modification being referred to as an initial modification. A model is then created which stores (at step 830 of the library building method 800) the current pretabulated environment. The alternative library building method 2100 begins when it receives (at 2105) the current pretabulated environment having the initial modification. A counter is then set (at 2110) to zero, the counter being used to count the number of iterations of the method and to stop the iterations once a predetermined number of X iterations are completed. A simulation is then performed (at 2115) on the current pretabulated environment which contains a modification to a feature, the simulation taking into consideration one or more example geometry coverage values of particular regions surrounding the feature. In some embodiments, the example geometry coverages are of regions between an inner predetermined radius distance and an outer predetermined radius distance from the feature. For example, three example geometry coverages of three radius regions may be considered in the simulation (see Figure 20). Through multiple iterations of the method 2100 (as determined by a predetermined iteration number X), the example geometry coverages will vary through a broad range of values. For example, if three example geometry coverages of three radius regions are considered, the geometry coverages may be 5%, 5%, 5% on a first itera «tion, 5%, 5%, 10% on a second iteration,
5%, 5%, 15% on a third iteration, etc. The simulation can be performed, for example, by a simulator that receives as input the current pretabulated environment and one or more geometry coverage values to produce a current simulated environment. The current simulated environment is a prediction of how the current pretabulated environment will appear once fabricated on a wafer considering the modification applied to the feature in the current pretabulated environment and the one or more example geometry coverage values. The method then determines (at 2120) whether the results of the simulation are satisfactory, i.e., whether the simulated environment contains a simulated feature that is within a predetermined threshold of variance in appearance from the pretabulated feature contained in the current pretabulated environment. If not, the method proceeds to step 2125 where the method adjusts the modification to the feature in the current pretabulated environment and performs another simulation on the current pretabulated environment. The method iterates steps 2115 through 2125 until a satisfactory simulated environment is produced, the satisfactory simulated environment being produced by a last modification. If method determines (at 2120 - Yes) that the results of the simulation are satisfactory, the method then determines (at 2130) a sum adjustment made to the initial modification (received at step 2105), the combination of the sum adjustment and initial modification being applied to the pretabulated feature and having produced a satisfactory simulated feature. The sum adjustment can be determined, for example, by comparing the area of the last modification that produced the satisfactory simulation and the area of the initial modification, the difference between the two modifications being the sum adjustment made to the initial modification. In some embodiments, the sum adjustment is expressed as a numerical value, for example, as a percentage amount. The method then stores (at 2135) the sum adjustment value and the one or more geometry coverage values as an example result. The method then determines (at 2140) if the counter is equal to X. If not, the method increments (at 2145) the counter and determines (at 2147) new example geometry coverage values. A simulation is then performed (at 2115) on the cuπent pretabulated environment taking into consideration the one or more new example geometry coverage values. If the method determines (at 2140 - Yes) that the counter is equal to X, the method proceeds to step 2150. At this point, the method has stored (at 2135) a number of example results equal to X, each example result having a sum adjustment value and one or more geometry coverage values. The method then determines (at 2150) an adjustment equation or function that considers all X example results and explains how the sum adjustment value is derived from the one or more geometry coverage values. In other embodiments, other measurement values of the regions surrounding the feature are used by the method to determine an adjustment equation or function that explains how the sum adjustment value is derived. In some embodiments, the adjustment equation or function is determined automatically, without the need for human intervention. In some embodiments, the method determines the adjustment equation or function using mathematical modeling methods. For example, each of the X number of example results can be put in the following equation form:
A = kιF, + k2F2 ... where A is the sum adjustment, k], k2, etc. are coefficients, and Fi, F etc. are geometry coverage values. Traditional data fitting methods (such as least square fitting method) can then be applied to the resulting X number of equations to determine the best values for the coefficients ki, k2, etc. In other embodiments, the method determines the adjustment equation or function using computer learning methods. For example, each of the X number of example results can be inputted to a computer learning program (such as a neural network) that produces an adjustment function, the adjustment function explaining how the sum adjustment value is derived from the one or more geometry coverage values. In the computer learning method, no single mathematical model (e.g., linear, least square fit, etc.) is assumed and the number of coefficients (k](k2) etc.) to be contained in the adjustment function is not predetermined (as in the mathematical model method). As such, the computer learning program considers any mathematical model and any number of coefficients in creating an adjustment function that explains the example results. The resulting adjustment function can have any equation form or may be in the form of a flowchart or internal model. Also, the resulting adjustment function contains the best values for any coefficients in the adjustment function. Once the values of the coefficients of the adjustment equation or function are determined, the adjustment equation or function is determined. The adjustment equation or function can then be used, for example, by the adjustment method 1900 to determine (at 1935) an adjustment to be made to a pretabulated modification. Since the coefficients of the adjustment equation or function are predetermined, the adjustment can be calculated by inputting the geometry coverage percentages specified in the adjustment equation or function. The method then stores (at 2155) the determined adjustment equation or function to the model created in step 830 of Figure 8, the model containing data describing the current pretabulated environment. The method then ends. SECTION VI: MODIFYING A LAYOUT OF A LAYER ON AN IC USING INFORMATION RELATING TO ANOTHER LAYER ON THE IC Conventionally, layouts are created for IC layers one layer at a time where the design of each layout progresses largely independent from the design of other layouts of the other layers. However, the metal coverage of a lower layer of an IC affects the vertical level of the layer above it (the upper layer), the metal coverage of a layer being a ratio of the area occupied by IC elements (such as IC components, interconnect lines, via pads, etc.) on the layer to the total area of the layer. The vertical level of a layer, in turn, affects the fabrication process of IC elements on the layer. To illustrate, assume that if the metal coverage of the lower layer is considered "average," the upper layer sits atop the lower layer at a vertical level that is considered "normal." However, if the metal coverage of the lower layer is above "average," the upper layer sits atop the lower layer at a vertical level that is below "normal." And if the metal coverage of the lower layer is below "average," the upper layer sits atop the lower layer at a vertical level that is above "normal." This is due to the metal comprising the IC elements being softer than the photoresist material suπounding the metal on the lower layer. In the IC fabrication process, after the IC elements are created on the lower layer, the lower layer goes through a polishing process where the metal and the photoresist material surrounding the metal are ground down. Since the metal is softer than the photoresist material, a layer having a relatively high metal coverage will be polished down to a height that is lower than a layer having a relatively low metal coverage. Therefore, a sub-region of an upper layer that is located directly above a sub-region of a lower layer having an above "average" metal coverage sits at a vertical level that is below "normal," and a sub-region of the upper layer that is located directly above a sub-region of a lower layer having a below "average" metal coverage sits at a vertical level that is above "normal." As such, there can be variations in the vertical level (i.e., vertical deviation from flatness or "normal" level) of the upper layer across the layer, depending on the variations in the metal coverage of the lower layer. Variations in the vertical level at which an upper layer sits affects how the IC elements on the upper layer appear once fabricated. Recall that in the IC fabrication process, a light source and lens are used to focus light through a photomask onto a photoresist layer to imprint IC elements on the photoresist layer where the weakened areas of the photoresist layer are then etched away to produce the IC elements. If there are variations in the vertical level at which a layer sits, the light that strikes the layer during the photomask process can not be in focus across the entire layer (since the distance to the lens through which the light is focused changes). Rather, the light will have various levels of defocus across the layer. The variations in the level of light defocus during the photomask process causes substantial disparity in geometries designed on a layout and created on a photomask and geometries actually fabricated (as IC elements) on a wafer. To illustrate the concept of light defocus, assume that light striking a sub-region of a layer having a "normal" (flat) vertical level has a defocus value of 0 (so that the sub-region is considered to be the "correct" distance to the lens). Therefore, light striking a sub-region of a layer having an above "normal" vertical level may be said to have a defocus value of +DF, DF being a real number. Also, light striking a sub-region of a layer having a below "normal" vertical level may be said to have a defocus value of -DF. In summary, the variations in metal coverage of a lower layer of an IC causes variations in the vertical level at which an upper layer of the IC sits, which in turn causes variations in the level of light defocus the photomask processing of the upper layer, which in turn causes substantial disparity between geometries designed on a layout for the upper layer and geometries actually fabricated (as IC elements) on a wafer. However, by designing and modifying geometries on a layout for the upper layer by taking into consideration the variations in metal coverage of the lower layer and vertical deviation data (topographic data) of the upper layer, the disparity between the geometries designed on the layout for the upper layer and the geometries actually fabricated on the upper layer can be reduced. In some embodiments of the present invention, geometries in a layout for a layer of an IC are modified based on topographic data (vertical deviation data) of the layer. In some embodiments, a layout designed to be fabricated on an upper layer of an IC is modified using information relating to a layout designed to be fabricated on another layer of the IC. Figure 22 is a flowchart of an altering method 2200 for altering modifications to geometries in a layout for an upper layer of an IC using information relating to a layout for a lower layer of the IC. The method 2200 can be implemented, for example, by an electronic design automation ("EDA") application that creates, edits, or analyzes IC design layouts. Figure 22 is described in relation to Figure 23. The method 2200 begins when it receives (at 2205) a layout (upper layout) for an upper layer of an IC (i.e., a layer that is to be fabricated on the IC other than the bottom layer), the layout containing geometries, features, and modifications to features. In some embodiments, the upper layout is produced by using a pretabulated library of models (as discussed above in Section II. In other embodiments, upper layout is produced by using different methods, such as conventional layout design methods. The method 2200 then retrieves (at 2210) data of a layout (lower layout) for a lower layer of the IC (i.e., a layer that is to be fabricated on the IC lower than the upper layer). The data of the lower layout describes geometries on the lower layout and include dimension and placement data of the geometries. Using the data of the lower layout, the method then produces (at 2215) a density map of the lower layout, the density map indicating a percentage of geometry coverage in each sub-region of the lower layout. The percentage of geometry coverage for a sub-region is defined as the area covered by geometries in the sub-region divided by the total area of the sub- region multiplied by 100. The percentage of geometry coverage for a sub-region reflects the metal coverage of the sub-region when the geometries in the sub-region are later fabricated as IC elements on a wafer. In other embodiments, the method produces (at 2215) another description (other than a density map) of the properties of the lower layout, such as a function, wavelet, etc. In some embodiments, the method 2200 produces (at 2215) a density map of the lower layout by 1) dividing the lower layout into sub-regions, and 2) for each sub-region, deteπnining the percentage of geometry coverage in the sub-region. Figure 23 shows a top-view diagram of a portion 2300 of a lower layout containing geometries 2305 that may represent various IC elements such as circuit modules, interconnect lines, or via pads that are to be fabricated on a wafer. As shown in Figure 23, the portion 2300 of the lower layout is divided into sub-regions 2310. In some embodiments, for each sub-region 2310, a percentage of geometry coverage is determined. After producing a density map of the lower layout, the method then selects (at 2220) a
64 CDN.P0071 current feature (having a modification) in the upper layout for processing. The method retrieves (at 2225), from the density map, the percentage of geometry coverage of the sub-region of the lower layout that is designed to be fabricated below the current feature. Typically, a first area on a first layer of an IC having the same span of x and y coordinates as a second area on a second different layer of the IC will be fabricated directly above or below second area, the first and second areas being referred to as corresponding areas. As such, the method may perform step 2225 by 1) determining the x and y coordinates of the current feature, 2) determining a corresponding sub-region of the lower layout having a span of x and y coordinates that encompasses the x and y coordinates of the current feature, and 3) retrieving the percentage of geometry coverage of the corresponding sub-region. Using the percentage of geometry coverage in the corresponding sub-region of the lower layout, the method then determines (at 2230) an estimate of vertical deviation from "normal" or flatness of the current feature on the upper layout, i.e., the distance that the current feature is estimated to sit at a vertical level away from a "normal" vertical level once fabricated on a wafer. The "normal" vertical level is predetermined, for example, by setting the "normal" vertical level to a vertical level that a feature on an upper layer is estimated to sit (once fabricated) when a corresponding sub-region in a lower layout has a predetermined "average" percentage of geometry coverage, e.g., 25%, 50%, etc. In some embodiments, the method determines the estimate of vertical deviation of the current feature on the upper layout using a set of rules in a predetermined look-up table. The look-up table lists various geometry coverage percentages of a sub-region on a lower layout and correlates each geometry coverage percentage with a particular estimate of vertical deviation for a corresponding feature on an upper layout. For example, the look-up table may correlate a 5% geometry coverage of a sub-region on a lower layout with a +10nm estimate of vertical deviation for a corresponding feature on an upper layout, a 20% geometry coverage of a sub-region on a lower layout with a +2nm estimate of vertical deviation for a corresponding feature on an upper layout, a 75% geometry coverage of a sub-region on a lower layout with a -7nm estimate of vertical deviation for a corresponding feature on an upper layout, etc. After determining the estimate of vertical deviation of the current feature on the upper layout, the method 2200 then determines (at 2235) an alteration to the modification of the current feature based on the estimate of vertical deviation of the cuπent feature. In some embodiments, the method determines the alteration to the modification of the current feature using a set of rules in a predetermined look-up table. The look-up table lists various estimates of vertical deviation for a feature and correlates each estimate with a particular alteration that is to be applied to a modification of the feature. The alteration may be expressed, for example, as a percentage amount that the modification of the current feature is to be increased or decreased, or a distance that each side of the modification of the current feature is to be increased or decreased. For example, the look-up table may correlate a +10nm estimate of vertical deviation for a feature with an increase of 5% to the modification of the feature, a +5nm estimate of vertical deviation for a feature with an increase of 2nm to a each side of the modification of the feature, etc. The look-up table used in step 2235 may be created by performing simulations on various features (having modifications) at various vertical deviations and determining the effect of the vertical deviations on the features and any alterations to the modifications of the features that should be made. For example, through simulations, it may be determined that a +10nm vertical deviation of a feature pushes the feature inward by 5nm, and thus a 5nm to a particular side of the modification of the feature is needed. Accordingly, these determinations would be reflected in the look-up table. The simulations of the features described above can be performed by a simulator program that takes into account the process variation of lens defocus, the level of lens defocus being related to the level of vertical deviation of the feature (as discussed above). In some embodiments, the method does not determine (at 2230) an estimate of vertical deviation, but rather determines (at 2235) an alteration to the modification of the current feature directly from the percentage of geometry coverage in the corresponding sub-region of the lower layout. This can be performed, for example, using a set of rules in a predetermined look-up table that lists various geometry coverage percentages in the lower layout and correlates each geometry coverage percentage with a particular alteration that is to be applied to a modification of the feature. For example, the look-up table may correlate a 30% geometry coverage with a 2nm increase in the modification. After the method 2200 determines (at 2235) an alteration to the modification of the cuπent feature, the method 2200 then applies (at 2240) the alteration to the modification of the cuπent feature. The method then determines (at 2245) whether the cuπent feature is the last feature in the upper layout. If not, the method proceeds to step 2220 and selects a next cuπent feature (having a modification) in the upper layout for processing. If so, the method ends. Several methods of the present invention may be adapted to incorporate some of the processing features of the altering method 2200 of Figure 22. For example, the general design method 300 for designing integrated circuit layouts (described in relation to Figure 3) can be so adapted. For example, after step 325 of the general design method 300, a satisfactory layout producing a satisfactory simulated layout is achieved, the satisfactory layout having features with modifications. Assuming that the satisfactory is designed for an upper layer of an IC, the altering method 2200 of Figure 22 can then be used to alter the modifications to the features in the satisfactory layout, the alterations being based on information relating to a layout designed for a lower layer of the IC. The layout modification method 700 for modifying geometries in an IC layout using a library of pretabulated models (described in relation to Figure 7) can also be so adapted. For example, after step 735 of the layout modification method 700, a design layout having pretabulated modifications applied to features in a design layout is produced. Assuming that the design layout is designed for an upper layer of an IC, the altering method 2200 of Figure 22 can then be used to alter the pretabulated modifications to the features in the design layout, the alterations being based on information relating to a layout designed for a lower layer of the IC. The library building method 800 for building a library of pretabulated models (described in relation to Figure 8) can also be adapted to alter the pretabulated modifications in the pretabulated models. For this embodiment, it can be assumed that the pretabulated models of library contain features designed for a layout of an upper layer of an IC. After step 825 of the library building method 800, a modification to a feature that produces a satisfactory simulated feature is achieved, the modification being refeπed to as the pretabulated modification which is to be stored (at 830) to a model. In some embodiments, the library building method 800 is adapted so that, after step 825, various examples of geometry coverage percentages (e.g., 5%, 10%, 15%, etc.) that may exist in a layout designed for a lower layer of the IC are determined. For each example of geometry coverage, an alteration of the pretabulated modification is determined. This can be done by determining a vertical deviation resulting from each geometry coverage (for example, through use of a look-up table, as discussed above in relation to Figure 22), and then determining an alteration based on the vertical deviation (for example, through use of a look-up table, as discussed above in relation to Figure 22). Each alteration to the pretabulated modification is then stored in a separate model along with the geometry coverage percentage to which the alteration applies. By doing such, a pretabulated library of models can be created where some or all models contain a modification of a feature that is based, in part, on information relating to a layout designed for a lower layer of an IC (i.e., a layer that is to be fabricated on a layer lower than the feature). In some embodiments, the information relating to the lower layout is the percentage of geometry coverage on the lower layout. In some embodiments, a pretabulated library of models is created where some or all models contain a modification of a feature that is based, in part, on topographic data (vertical deviation data) of the feature. Figure 24 conceptually illustrates a computer system with which some embodiments of the invention are implemented. Computer system 2400 includes a bus 2405, a processor 2410, a system memory 2415, a read-only memory 2420, a permanent storage device 2425, input devices 2430, and output devices 2435. The bus 2405 collectively represents all system, peripheral, and chipset buses that support communication among internal devices of the computer system 2400. For instance, the bus 2405 communicatively connects the processor 2410 with the read-only memory 2420, the system memory 2415, and the permanent storage device 2425. From these various memory units, the processor 2410 retrieves instructions to execute and data to process in order to execute the processes of the invention. The read-only-memory (ROM) 2420 stores static data and instructions that are needed by the processor 2410 and other modules of the computer system. The permanent storage device 2425, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instruction and data even when the computer system 2400 is off. Some embodiments of the invention use a mass-storage device (such as a magnetic or optical disk and its coπesponding disk drive) as the permanent storage device 2425. Other embodiments use a removable storage device (such as a floppy disk or zip® disk, and its coπesponding disk drive) as the permanent storage device. Like the permanent storage device 2425, the system memory 2415 is a read-and-write memory device. However, unlike storage device 2425, the system memory is a volatile read-and- write memory, such as a random access memory. The system memory stores some of the instructions and data that the processor needs at runtime. In some embodiments, the invention's processes are stored in the system memory 2415, the permanent storage device 2425, and/or the read-only memory 2420. The bus 2405 also connects to the input and output devices 2430 and 2435. The input devices enable the user to communicate information and select commands to the computer system. The input devices 2430 include alphanumeric keyboards and cursor-controllers. The output devices 2435 display images generated by the computer system. For instance, these devices display IC design layouts. The output devices include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD). Finally, as shown in Figure 24, bus 2405 also couples computer 2400 to a network 2465 through a network adapter (not shown). In this manner, the computer can be a part of a network of computers (such as a local area network ("LAN"), a wide area network ("WAN"), or an Intranet) or a network of networks (such as the Internet). Any or all of the components of computer system 2400 may be used in conjunction with the invention. However, one of ordinary skill in the art will appreciate that any other system configuration may also be used in conjunction with the invention. While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. Thus, one of ordinary skill in the art would, understand that the invention is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims.

Claims

1. A method for modifying a layout comprising a plurality geometries using a library of models, each geometry in the layout having zero or more features and each model in the library comprising a pretabulated environment comprised of a pretabulated feature, a pretabulated modification of the pretabulated feature, and one or more pretabulated geometries, the method comprising: a) selecting a current feature in the layout; b) identifying a cuπent environment in the layout containing the current feature; c) identifying a model in the library having a pretabulated environment that matches the cuπent environment; d) retrieving, from the matching model, a pretabulated modification; and e) applying the pretabulated modification to the current feature.
2. The method of claim 1 further comprising: repeating steps a) through e) for each feature in the layout.
3. The method of claim 1 wherein the pretabulated modification is designed to produce a fabricated feature that is within a predetermined variance from the cuπent feature.
4. The method of claim 1 wherein the pretabulated modification produces a simulated feature that is within a predetermined variance from the pretabulated feature.
5. The method of claim 1 further comprising: after selecting the current feature, determining whether the cuπent feature is located within a processed region; if determined that the cuπent feature is located within a processed region, selecting another cuπent feature in the layout; and after applying the pretabulated modification to the current feature, identifying a processed region about the cuπent feature.
6. The method of claim 1 wherein the cuπent feature is a comer, bend, or line-point on a geometry in the layout.
7. The method of claim 1 wherein the geometries in the layout represent elements that are to be fabricated on a wafer.
8. The method of claim 1 wherein: the cuπent environment contains one or more geometries; and identifying the model in the library having a pretabulated environment that matches the cuπent environment comprises: identifying a pretabulated environment that contains one or more geometries having dimensions and placement that matches the dimensions and placement of the one or more geometries in the cuπent environment.
. The method of claim 1 wherein the matching model contains a pretabulated environment within a predetermined variance from the cuπent environment.
10. The method of claim 1 further comprising: after identifying the current environment in the layout, determining whether any model in the library has a pretabulated environment that matches the cuπent environment; and if it is determined that no model in the library has a pretabulated environment that matches the current environment, determining a modification to the cuπent feature using a rule-based approach.
11. The method of claim 1 further comprising: after identifying the cuπent environment in the layout, determining whether any model in the library has a pretabulated environment that matches the cuπent environment; and if it is determined that no model in the library has a pretabulated environment that matches the cuπent environment, creating a new model in the library having a pretabulated environment that replicates the cuπent environment and a pretabulated modification for a pretabulated feature that replicates the cuπent feature.
12. The method of claim 11 wherein the library of models is created and the layout is modified simultaneously, wherein the library only contains models having pretabulated environments that replicate environments that have previously been identified in the layout during modification of the layout.
13. The method of claim 1 wherein each model further comprises a simulated environment that is a simulation of the pretabulated environment, the method further comprising: retrieving, from the matching model, the simulated environment.
14. The method of claim 1 wherein each model further comprises a simulated environment that is a simulation of the pretabulated environment reflecting one or more process variations, the method further comprising: retrieving, from the matching model, the simulated environment.
15. The method of claim 1 wherein each model further comprises a description of an electrical characteristic of the pretabulated environment., the method further comprising: retrieving, from the matching model, the electrical characteristic.
16. The method of claim 1 wherein each model further comprises a characteristic equation that expresses a specific electrical characteristic of the pretabulated environment as a function of one or more process variations, the method further comprising: retrieving, from the matching model, the characteristic equation.
17. The method of claim 1 wherein each model further comprises a characteristic equation that expresses a specific electrical characteristic of the pretabulated environment as a function of dimensions and placement of the one or more geometries in the pretabulated environment; the method further comprising: retrieving, from the matching model, the characteristic equation.
18. The method of claim 1 wherein each model further comprises an adjustment equation or function used to determine an adjustment to the pretabulated modification in the model, the method further comprising: retrieving, from the matching model, the adjustment equation or function.
19. The method of claim 18 wherein the adjustment equation or function uses at least one geometry coverage percentage of a specific area in the layout, the method further comprising: after retrieving the pretabulated modification and the adjustment equation or function, determining at least one geometry coverage percentage of an area in the layout specified in the adjustment equation or function; determining an adjustment using the adjustment equation and the at least one geometry coverage percentage; and applying the adjustment to the pretabulated modification, wherein applying the pretabulated modification to the cuπent feature comprises applying the adjusted pretabulated modification to the cuπent feature.
20. The method of claim 19 wherein the area in the layout specified in the adjustment equation or function is a region between an inner predetermined radius distance and an outer predetermined radius distance from the cuπent feature.
21. The method of claim 2 wherein after repeating steps a) through e) for each feature in the layout, a modified layout is produced having a plurality of features and a plurality of modifications to features, the modified layout being designed to be fabricated on a first layer of an integrated circuit, the method further comprising: altering the modified layout using data relating to a second layout being designed to be fabricated on a second layer of the integrated circuit.
22. The method of claim 21 wherein: the second layer is lower than the first layer in the integrated circuit; and the altering comprises: producing a density map of the second layout using the data relating to the second layout, the density map indicating geometry coverage percentages in sub-regions of the second layout; selecting a cuπent feature having a cuπent modification in the modified layout; retrieving, from the density map, the geometry coverage percentage of a sub- region of the second layout that is designed to be fabricated below the cuπent feature; determining an alteration to the cuπent modification of the current feature based on the geometry coverage percentage; and applying the alteration to the cuπent modification of the cuπent feature.
23. The method of claim 22 wherein determining the alteration to the cuπent modification comprises: determining an estimate of vertical deviation of the cuπent feature based on the geometry coverage percentage; and determining the alteration to the cuπent modification based on the vertical deviation.
24. A method for creating a library of models used to modify a layout, the method comprising: creating a set of pretabulated environments, each pretabulated environment containing a pretabulated feature and one or more pretabulated geometries; and for each pretabulated environment in the set: creating a pretabulated modification to the pretabulated feature in the pretabulated environment that produces a satisfactory simulation of the pretabulated environment; and creating a model of the pretabulated environment comprised of the pretabulated feature, the pretabulated modification, and the one or more pretabulated geometries.
25. The method of claim 24 wherein the set of pretabulated environments is tailored towards layouts having a particular preferred-direction wiring.
26. The method of claim 25 wherein the prefeπed-direction wiring is Manhattan or diagonal prefeπed-direction wiring.
27. The method of claim 24 wherein the set of pretabulated environments is tailored towards layouts having no particular prefeπed-direction wiring.
28. The method of claim 24 further comprising: for each pretabulated environment in the set, storing the satisfactory simulation of the pretabulated environment to the model created for the pretabulated environment.
29. The method of claim 24 further comprising: for each pretabulated environment in the set: producing a re-simulation of the pretabulated environment having the pretabulated modification created for the pretabulated environment, the re- simulation reflecting one or more process variations; and storing the re-simulation of the pretabulated environment to the model created for the pretabulated environment.
30. The method of claim 24 wherein the one or more process variations are lens defocus or light dosage.
31. The method of claim 24 further comprising: for each pretabulated environment in the set, storing electrical characteristic data of the pretabulated environment to the model created for the pretabulated environment.
32. The method of claim 31 wherein the electrical characteristic data relates to capacitance, inductance, or resistance.
33. The method of claim 24 further comprising: for each pretabulated environment in the set, storing a characteristic equation to the model created for the pretabulated environment, the characteristic equation expressing an electrical characteristic of the pretabulated environment as a function of dimensions and placement of one or more pretabulated geometries in the pretabulated environment.
34. The method of claim 33 wherein the electrical characteristic is capacitance and the characteristic equation is in the form: C = C0 + k,ΔW where C is the capacitance between two geometries in a re-simulation of the pretabulated environment reflecting one or more process variations, Co is an initial capacitance between the two geometries of a simulation of the pretabulated environment reflecting no process variations, ki is a predetermined coefficient, and ΔW is the difference in distance between the two geometries from the re- simulation to the simulation:
35. The method of claim 24 further comprising: for each pretabulated environment in the set, storing a characteristic equation to the model created for the pretabulated environment, the characteristic equation expressing an electrical characteristic of the pretabulated environment as a function of one or more process variations.
36. The method of claim 35 wherein the electrical characteristic is capacitance and the characteristic equation is in the form: C = C0 + k,ΔW + k2ΔPVι + ... where C is the capacitance between two geometries in a re-simulation of the pretabulated environment reflecting one or more process variations, Co is an initial capacitance between the two geometries of a simulation of the pretabulated environment reflecting no process variations, ki and k2 are predetermined coefficients, ΔW is the difference in distance between the two geometries from the re- simulation to the simulation, and ΔPVi is the difference in value of a process variation reflected in the re- simulation and the simulation.
37. The method of claim 35 wherein the characteristic equation is in the form: C = Co + kiΔW + k2ΔDF + k3Δdosage where C is the capacitance between two geometries in a re-simulation of the pretabulated environment reflecting one or more process variations, Co is an initial capacitance between the two geometries of a simulation of the pretabulated environment reflecting no process variations, kj, k2, and k3 are predetermined coefficients, ΔW is the difference in distance between the two geometries from the re-simulation to the simulation, ΔDF is the difference in defocus values reflected in the re-simulation and the simulation, and Δdosage is the difference in light dosage values reflected in the re-simulation and the simulation.
38. The method of claim 24 further comprising: for each pretabulated environment in the set, storing an adjustment equation or function to the model created for the pretabulated environment, the adjustment equation or function being used to determine an adjustment to the pretabulated modification created for the pretabulated environment.
39. The method of claim 38 wherein the adjustment equation or function uses at least one geometry coverage percentage of a specific area in the layout to determine the adjustment to the pretabulated modification.
40. The method of claim 24 further comprising: for each pretabulated environment in the set: producing a re-simulation of the pretabulated environment having the pretabulated modification created for the pretabulated environment, the re- simulation reflecting one or more geometry coverage percentages of specific areas suπounding the pretabulated feature in the pretabulated environment; determining a sum adjustment that is applied to the pretabulated modification created for the pretabulated environment that produces a satisfactory re-simulation of the pretabulated environment; storing the sum adjustment and the one or more geometry coverage percentages as an example result; determining an adjustment equation of function that considers all example results and expresses how the sum adjustment is derived from the one or more geometry coverage values; and storing the adjustment equation of function to the model created for the pretabulated environment.
PCT/US2005/014983 2004-05-01 2005-04-29 Methos and apparatus for designing integrated circuit layouts WO2005109256A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP05740554A EP1759322A4 (en) 2004-05-01 2005-04-29 Methos and apparatus for designing integrated circuit layouts
JP2007511456A JP5147391B2 (en) 2004-05-01 2005-04-29 Method and apparatus for designing an integrated circuit layout

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/836,581 2004-05-01
US10/836,582 2004-05-01
US10/836,582 US7254798B2 (en) 2004-05-01 2004-05-01 Method and apparatus for designing integrated circuit layouts
US10/836,581 US7082588B2 (en) 2004-05-01 2004-05-01 Method and apparatus for designing integrated circuit layouts

Publications (2)

Publication Number Publication Date
WO2005109256A2 true WO2005109256A2 (en) 2005-11-17
WO2005109256A3 WO2005109256A3 (en) 2006-05-04

Family

ID=35320879

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/US2005/014983 WO2005109256A2 (en) 2004-05-01 2005-04-29 Methos and apparatus for designing integrated circuit layouts
PCT/US2005/015024 WO2005109257A2 (en) 2004-05-01 2005-04-29 Method and apparatus for designing integrated circuit layouts

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/US2005/015024 WO2005109257A2 (en) 2004-05-01 2005-04-29 Method and apparatus for designing integrated circuit layouts

Country Status (3)

Country Link
EP (2) EP1759321A4 (en)
JP (2) JP2007535715A (en)
WO (2) WO2005109256A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069423B2 (en) 2008-08-11 2011-11-29 Cadence Design Systems, Inc. System and method for model based multi-patterning optimization
US8151219B2 (en) 2008-01-31 2012-04-03 Cadence Design Systems, Inc. System and method for multi-exposure pattern decomposition
US8209656B1 (en) 2008-10-14 2012-06-26 Cadence Design Systems, Inc. Pattern decomposition method
US10216890B2 (en) 2004-04-21 2019-02-26 Iym Technologies Llc Integrated circuits having in-situ constraints

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7011600B2 (en) 2003-02-28 2006-03-14 Fallbrook Technologies Inc. Continuously variable transmission
WO2005109256A2 (en) * 2004-05-01 2005-11-17 Cadence Design Systems, Inc. Methos and apparatus for designing integrated circuit layouts
WO2006041718A2 (en) 2004-10-05 2006-04-20 Fallbrook Technologies, Inc. Continuously variable transmission
KR101577354B1 (en) 2005-10-28 2015-12-16 폴브룩 인텔렉츄얼 프로퍼티 컴퍼니 엘엘씨 Electromotive drives
WO2007061993A2 (en) 2005-11-22 2007-05-31 Fallbrook Technologies Inc Continuously variable transmission
US7959533B2 (en) 2005-12-09 2011-06-14 Fallbrook Technologies Inc. Continuously variable transmission
EP1811202A1 (en) 2005-12-30 2007-07-25 Fallbrook Technologies, Inc. A continuously variable gear transmission
US8480529B2 (en) 2006-06-26 2013-07-09 Fallbrook Intellectual Property Company Llc Continuously variable transmission
WO2008057507A1 (en) 2006-11-08 2008-05-15 Fallbrook Technologies Inc. Clamping force generator
US8738255B2 (en) 2007-02-01 2014-05-27 Fallbrook Intellectual Property Company Llc Systems and methods for control of transmission and/or prime mover
CN101657653B (en) 2007-02-12 2014-07-16 福博科知识产权有限责任公司 Continuously variable transmissions and methods therefor
US8313404B2 (en) 2007-02-16 2012-11-20 Fallbrook Intellectual Property Company Llc Infinitely variable transmissions, continuously variable transmissions, methods, assemblies, subassemblies, and components therefor
CN101720397B (en) 2007-04-24 2013-01-02 福博科技术公司 Electric traction drives
US8641577B2 (en) 2007-06-11 2014-02-04 Fallbrook Intellectual Property Company Llc Continuously variable transmission
KR101589675B1 (en) 2007-07-05 2016-02-01 폴브룩 인텔렉츄얼 프로퍼티 컴퍼니 엘엘씨 Continuously variable transmission
WO2009065055A2 (en) 2007-11-16 2009-05-22 Fallbrook Technologies Inc. Controller for variable transmission
CN102317146B (en) 2007-12-21 2015-11-25 福博科知识产权有限责任公司 Automatic transmission and for its method
US8317651B2 (en) 2008-05-07 2012-11-27 Fallbrook Intellectual Property Company Llc Assemblies and methods for clamping force generation
WO2009157920A1 (en) 2008-06-23 2009-12-30 Fallbrook Technologies Inc. Continuously variable transmission
CA2732668C (en) 2008-08-05 2017-11-14 Fallbrook Technologies Inc. Methods for control of transmission and prime mover
US8469856B2 (en) 2008-08-26 2013-06-25 Fallbrook Intellectual Property Company Llc Continuously variable transmission
US8167759B2 (en) 2008-10-14 2012-05-01 Fallbrook Technologies Inc. Continuously variable transmission
KR101820351B1 (en) 2009-04-16 2018-02-28 폴브룩 인텔렉츄얼 프로퍼티 컴퍼니 엘엘씨 Stator assembly and shifting mechanism for a continuously variable transmission
US8512195B2 (en) 2010-03-03 2013-08-20 Fallbrook Intellectual Property Company Llc Infinitely variable transmissions, continuously variable transmissions, methods, assemblies, subassemblies, and components therefor
US8888643B2 (en) 2010-11-10 2014-11-18 Fallbrook Intellectual Property Company Llc Continuously variable transmission
AU2012240435B2 (en) 2011-04-04 2016-04-28 Fallbrook Intellectual Property Company Llc Auxiliary power unit having a continuously variable transmission
US8386974B2 (en) 2011-04-14 2013-02-26 Synopsys, Inc. Accelerating coverage convergence using symbolic properties
US8443316B1 (en) 2011-11-09 2013-05-14 Synopsys, Inc. Accelerating coverage convergence and debug using symbolic properties and local multi-path analysis
US10047861B2 (en) 2016-01-15 2018-08-14 Fallbrook Intellectual Property Company Llc Systems and methods for controlling rollback in continuously variable transmissions
US10023266B2 (en) 2016-05-11 2018-07-17 Fallbrook Intellectual Property Company Llc Systems and methods for automatic configuration and automatic calibration of continuously variable transmissions and bicycles having continuously variable transmissions
US11215268B2 (en) 2018-11-06 2022-01-04 Fallbrook Intellectual Property Company Llc Continuously variable transmissions, synchronous shifting, twin countershafts and methods for control of same
US11174922B2 (en) 2019-02-26 2021-11-16 Fallbrook Intellectual Property Company Llc Reversible variable drives and systems and methods for control in forward and reverse directions
US11501052B1 (en) * 2021-05-27 2022-11-15 Taiwan Semiconductor Manufacturing Company, Ltd Conductor scheme selection and track planning for mixed-diagonal-Manhattan routing

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844038A (en) * 1994-08-03 1996-02-16 Matsushita Electron Corp Master mask forming device and production of semiconductor device
US5587923A (en) * 1994-09-07 1996-12-24 Lsi Logic Corporation Method for estimating routability and congestion in a cell placement for integrated circuit chip
US5723233A (en) * 1996-02-27 1998-03-03 Lsi Logic Corporation Optical proximity correction method and apparatus
JP2950280B2 (en) * 1997-03-31 1999-09-20 日本電気株式会社 Electron beam drawing method
JP3241010B2 (en) * 1998-11-18 2001-12-25 日本電気株式会社 Optical proximity correction method for semiconductor manufacturing process
JP2002148779A (en) * 2000-11-07 2002-05-22 Toshiba Corp Mask pattern correcting method, photomask, and computer-readable recording medium stored with mask pattern correcting program
US6574782B1 (en) * 2000-11-15 2003-06-03 International Business Machines Corporation Decoupled capacitance calculator for orthogonal wiring patterns
US6578190B2 (en) * 2001-01-11 2003-06-10 International Business Machines Corporation Process window based optical proximity correction of lithographic images
JP4187947B2 (en) * 2001-04-26 2008-11-26 株式会社東芝 PATTERN CORRECTION METHOD, PATTERN CORRECTION DEVICE, AND RECORDING MEDIUM CONTAINING PATTERN CORRECTION PROGRAM
JP3609810B2 (en) * 2002-09-18 2005-01-12 株式会社東芝 Mask pattern creating method and semiconductor device manufacturing method
JP4592240B2 (en) * 2001-09-29 2010-12-01 株式会社東芝 Mask pattern creating method and semiconductor device manufacturing method
JP3686367B2 (en) * 2001-11-15 2005-08-24 株式会社ルネサステクノロジ Pattern forming method and semiconductor device manufacturing method
JP3615182B2 (en) * 2001-11-26 2005-01-26 株式会社東芝 Optical proximity effect correction method and optical proximity effect correction system
US7363099B2 (en) * 2002-06-07 2008-04-22 Cadence Design Systems, Inc. Integrated circuit metrology
JP2004037827A (en) * 2002-07-03 2004-02-05 Sony Corp Method for verifying design pattern and method for correcting design pattern
US6893800B2 (en) * 2002-09-24 2005-05-17 Agere Systems, Inc. Substrate topography compensation at mask design: 3D OPC topography anchored
JP2004046880A (en) * 2003-07-18 2004-02-12 Matsushita Electric Ind Co Ltd Apparatus for extracting circuit parameter
WO2005109256A2 (en) * 2004-05-01 2005-11-17 Cadence Design Systems, Inc. Methos and apparatus for designing integrated circuit layouts

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of EP1759322A4 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216890B2 (en) 2004-04-21 2019-02-26 Iym Technologies Llc Integrated circuits having in-situ constraints
US10846454B2 (en) 2004-04-21 2020-11-24 Iym Technologies Llc Integrated circuits having in-situ constraints
US10860773B2 (en) 2004-04-21 2020-12-08 Iym Technologies Llc Integrated circuits having in-situ constraints
US8151219B2 (en) 2008-01-31 2012-04-03 Cadence Design Systems, Inc. System and method for multi-exposure pattern decomposition
US8069423B2 (en) 2008-08-11 2011-11-29 Cadence Design Systems, Inc. System and method for model based multi-patterning optimization
US8423928B2 (en) 2008-08-11 2013-04-16 Cadence Design Systems, Inc. System and method for model based multi-patterning optimization
US8209656B1 (en) 2008-10-14 2012-06-26 Cadence Design Systems, Inc. Pattern decomposition method

Also Published As

Publication number Publication date
JP2007538272A (en) 2007-12-27
WO2005109257A2 (en) 2005-11-17
JP5147391B2 (en) 2013-02-20
EP1759322A4 (en) 2008-03-12
EP1759322A2 (en) 2007-03-07
EP1759321A4 (en) 2009-10-28
WO2005109257A3 (en) 2005-12-15
JP2007535715A (en) 2007-12-06
WO2005109256A3 (en) 2006-05-04
EP1759321A2 (en) 2007-03-07

Similar Documents

Publication Publication Date Title
WO2005109256A2 (en) Methos and apparatus for designing integrated circuit layouts
US8001516B2 (en) Characterization and reduction of variation for integrated circuits
TWI486801B (en) Mask, mask layout data, non-transitory computer-readable storage medium and method for placing sub-resolution assist features in mask layout
US7082588B2 (en) Method and apparatus for designing integrated circuit layouts
US7962867B2 (en) Electronic design for integrated circuits based on process related variations
US6373975B1 (en) Error checking of simulated printed images with process window effects included
US7712056B2 (en) Characterization and verification for integrated circuit designs
US7886262B2 (en) System and method of maximizing integrated circuit manufacturing yield with fabrication process simulation driven layout optimization
TWI443448B (en) Mask design and opc for device manufacture
US7861195B2 (en) Process for design of semiconductor circuits
KR20130032391A (en) Design for manufacturability
US7254798B2 (en) Method and apparatus for designing integrated circuit layouts
US20240126973A1 (en) Post-Routing Congestion Optimization
JP2004077550A (en) Mark designing system, method for designing mark, mark designing program, and method for manufacturing semiconductor device by using the mark designing method
WO2022075989A1 (en) Optical proximity correction for free form shapes
TW202336625A (en) Interactive compaction tool for electronic design automation

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007511456

Country of ref document: JP

NENP Non-entry into the national phase in:

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 2005740554

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2005740554

Country of ref document: EP