Density-based integrated circuit design adjustment
The disclosed technology is related to adjusting an integrated circuit design while accounting for a local density of the design. In particular exemplary embodiments, a local density value for a layout design that defines a plurality of geometric shapes is derived. Subsequently, one or more of the geometric shapes are adjusted such that the local density value is preserved. With some implementations, the local density value is preserved if the adjusted local density value is within a threshold amount of the derived local density value.
Latest Mentor Graphics Corporation Patents:
This application claims the benefit of U.S. Provisional Application No. 61/684,700 filed on Aug. 17, 2012, and entitled “DENSITY-BASED INTEGRATED CIRCUIT DESIGN ADJUSTMENT”, which is hereby incorporated herein by reference.
FIELDThe disclosed technology is directed towards the field of integrated circuit design. More specifically, this application is directed towards adjusting an integrated circuit design while accounting for a local density of the design.
BACKGROUNDElectronic devices, such as integrated circuits, are used in a variety of products, from automobiles to microwaves to personal computers. Designing and fabricating integrated circuit devices typically involves many steps, known as a “design flow.” The particular steps of a design flow often are dependent upon the type of integrated circuit being designed, its complexity, the design team, and the integrated circuit fabricator or foundry that will manufacture the integrated circuit.
Several steps are common to most design flows. Initially, the specification for the new integrated circuit is transformed into a logical design. With this logical design, the circuit is described in terms of both the exchange of signals between hardware registers and the logical operations that are performed on those signals. The logical design normally employs a Hardware Design Language (HDL), such as the Very high speed integrated circuit Hardware Design Language (VHDL). The logical design is then analyzed, to confirm that the logic incorporated into the design will accurately perform the functions desired for the circuit. This analysis is referred to as verification.
After the accuracy of the logical design is confirmed, it is converted into a device design by synthesis software. The device design, which is typically in the form of a schematic or netlist, describes the specific electronic devices (such as transistors, resistors, and capacitors) that will be used in the circuit, along with their interconnections. The device design typically corresponds to the level of representation displayed in conventional circuit diagrams. Verification is generally performed at this stage as well.
Once the relationships between circuit devices have been established, the design is again transformed, this time into a physical design that describes specific geometric elements. This type of design often is referred to as a “layout” design. The geometric elements define the shapes that will be created in various materials to actually manufacture the circuit device components (e.g., contacts, gates, etc.) that make up the circuit design. While the geometric elements are typically polygons, other shapes, such as circular and elliptical shapes, also may be employed. These geometric elements may be custom designed, selected from a library of previously-created designs, or some combination of both. Geometric elements also are added to form the connection lines that will interconnect these circuit devices. Layout tools, such as Mentor Graphics' IC Station or Cadence's Virtuoso, are commonly used for both of these tasks.
After the layout design is finalized, the integrated circuit device can be manufactured from silicon wafers using a lithographic process. During lithographic processes, the geometric shapes mentioned above are formed on a base material (e.g. silicon). Those of ordinary skill in the art will appreciate that lithographic processes have certain limitations. That is, a particular lithographic process will typically be able to manufacture certain shapes having specific characteristics. For example, the minimum size of shapes may be limited, the minimum proximity of shapes to each pother may be limited, or other such characteristics.
As such, adjustments to the layout design are often made during the design process in order for the shapes represented in the layout design to conform to the required characteristics for the particular lithographic process in which the layout design is to be manufactured.
SUMMARYAspects of the disclosed technology are directed toward adjusting a layout design for an integrated circuit while preserving the local density of the layout design.
In various implementations, a local density value for a layout design that defines a plurality of geometric shapes is derived. Subsequently, one or more of the geometric shapes are adjusted such that the local density value is preserved. With some implementations, the local density value is preserved if the adjusted local density value is within a threshold amount of the derived local density value.
In some implementations, the local density may correspond to the area of a geometric shape. In some implementations, the local density may correspond to the combined area of a set of geometric shapes. In some implementations, the local density may correspond to a ratio of the area of a geometric shape to the area of a portion of the layout design. In some implementations, the local density may correspond to a ratio of the combined area of a set of geometric shapes to the area of a portion of the layout design.
These and additional implementations of invention will be further understood from the following detailed disclosure of illustrative embodiments.
The disclosed technology will be described by way of illustrative implementations shown in the accompanying drawings in which like references denote similar elements, and in which:
The operations of the disclosed implementations may be described herein in a particular sequential order. However, it should be understood that this manner of description encompasses rearrangements, unless a particular ordering is required by specific language set forth below. For example, operations described sequentially may in some cases be rearranged or performed concurrently. Moreover, for the sake of simplicity, the illustrated flow charts and block diagrams typically do not show the various ways in which particular methods can be used in conjunction with other methods.
It should also be noted that the detailed description sometimes uses terms such as “generate” to describe the disclosed implementations. These terms are often high-level abstractions of the actual operations that are performed. The actual operations that correspond to these terms may vary depending on the particular implementation.
I. ILLUSTRATIVE OPERATING ENVIRONMENTAs the techniques of the disclosed technology may be implemented using a programmable computer system executing software instructions, the components and operation of a computer system on which various implementations of the disclosed technology may be employed is described. Accordingly,
The processing unit 105 and the system memory 107 are connected, either directly or indirectly, through a bus 113 or alternate communication structure, to one or more peripheral devices. For example, the processing unit 105 or the system memory 107 may be directly or indirectly connected to one or more additional devices, such as; a fixed memory storage device 115, for example, a magnetic disk drive; a removable memory storage device 117, for example, a removable solid state disk drive; an optical media device 119, for example, a digital video disk drive; or a removable media device 121, for example, a removable drive. The processing unit 105 and the system memory 107 also may be directly or indirectly connected to one or more input devices 123 and one or more output devices 125. The input devices 123 may include, for example, a keyboard, a pointing device (such as a mouse, touchpad, stylus, trackball, or joystick), a scanner, a camera, and a microphone. The output devices 125 may include, for example, a monitor display, a printer and speakers. With various examples of the computing device 101, one or more of the peripheral devices 115-125 may be internally housed with the computing unit 103. Alternately, one or more of the peripheral devices 115-125 may be external to the housing for the computing unit 103 and connected to the bus 113 through, for example, a Universal Serial Bus (“USB”) connection.
With some implementations, the computing unit 103 may be directly or indirectly connected to one or more network interfaces 127 for communicating with other devices making up a network. The network interface 127 translates data and control signals from the computing unit 103 into network messages according to one or more communication protocols, such as the transmission control protocol (“TCP”) and the Internet protocol (“IP”). Also, the interface 127 may employ any suitable connection agent (or combination of agents) for connecting to a network, including, for example, a wireless transceiver, a modem, or an Ethernet connection.
It should be appreciated that the computing device 101 is shown here for illustrative purposes only, and it is not intended to be limiting. Various embodiments of the invention may be implemented using one or more computers that include the components of the computing device 101 illustrated in
As stated above, various embodiments of the invention may be implemented using a programmable computer system executing software instructions, a computer readable medium having computer-executable software instructions stored thereon, or some combination thereof. Particularly, these software instructions may be stored on one or more computer readable media or devices, such as, for example, the system memory 107, or an optical disk for use in the optical media device 119. As those of ordinary skill in the art will appreciate, software instructions stored in the manner described herein are inherently non-transitory in nature. More specifically, the software instructions are available for execution by the computer system 101, as opposed to being transmitted to the computer system via a carrier wave or some other transitory signal.
II. EXAMPLE EMBODIMENTS A. Mask Rule ConstraintsDuring the mask formation process, various mask writing tool manufacturers and foundries may have constraints on the sizes of features for geometrical elements that can be manufactured in a mask. For example, a mask writing tool manufacturer may specify a minimum line width that can be written by its mask writing tool, or that can be inspected after writing.
During layout correction processes, such as optical correction processes, geometric elements in a layout design may be modified. For example, the Calibre® pxOPC product available from Mentor Graphics® Corporation of Wilsonville, Oreg., adds secondary geometric elements to a layout design. As will be appreciated by those of ordinary skill in the art, while these added secondary geometric elements serve to improve the printability of the geometric elements onto a substrate during a lithographic process using a lithographic mask made from the layout design, the added secondary geometric elements are not themselves printed during the lithographic process.
When these secondary geometric elements are added to the layout design, their outlines may be irregular, with rounded edges and narrow widths. Because of these irregular outlines, the secondary geometric elements may not be writable into a mask by a conventional mask writing tool. In order to be written to a task, these raw secondary geometric elements typically must be converted into regular shapes that can be written by the mask writer, such as polygons. This conversion may be performed using any desired technique, such as, for example, a Manhattanization process.
During the conversion (e.g., Manhattanization) process, the secondary geometric elements are converted into regular shapes that still will not print during the lithographic process. During this conversion process (and the subsequent “fine tuning” process for improved lithographic printing quality), however, portions of the secondary geometric elements may be converted into shapes that violate one or more mask constraint rules. Accordingly, the final converted secondary geometric elements (and, with some implementations of the invention, the intermediate forms of the secondary geometric elements) must be further modified to ensure that they confirm with the mask rule constraints. Alternately, the conversion process must ensure that the secondary geometric elements comply with the mask rule constraints.
With various embodiments of the disclosed technology, geometric elements, such as the secondary geometric elements described above, are modified so that the lithographic impact of the geometric elements are not significantly changed. More particularly, various implementations of the disclosed technology modify the shape of geometric elements while maintaining the same local density across the geometric elements.
B. Illustrative Layout Design and AdjustmentAs indicated above, various implementations of the disclosed technology provide for adjusting a layout design for an integrated circuit while preserving a local density value. In order to describe various illustrative implementations, an example layout design and adjustments are detailed first.
In some implementations, the positioning of a shape (e.g., the shape 203) is adjusted within the layout design 201. For example,
With some implementations, the boundary of a shape (e.g., the boundary 209 of the shape 203) is adjusted within the layout design 201.
In some implementations, the boundary 209 may be adjusted by adjusting the position of one or more of the edge fragments 403-415.
In some implementations, the local density may be described using the “mass” of the geometric shapes 203, 205 and 207. For example, in some implementations, the local density may be given by the following equations.
Where X, Y correspond to coordinates within the layout design plane, q(X,Y) represents the characteristic function of the layout design, and A represents the area over which the local density is to be derived. As can be seen, the local density (LD) is the same as the characteristic function of the layout design, which is the ratio of area of polygons within a portion of the layout design to the total area of the layout design in that portion. As will be appreciated, the local density value for one portion of a layout design can be different than for another portion of the layout design.
As indicated, with various implementations, local density values will be derived for portions of a layout design. In some implementations, the layout design may be partitioned into equal portions. In other implementations partitions may be formed around selected portions of a layout design. For example,
With some implementations, the local density value for the partition 705 may be derived at operation 605 using the equations presented above. Subsequently, adjustments to the shapes 205 and/or 207 can be made at operation 607 while preserving the derived local density value. More specifically, the adjustments are made such that the local density value after the adjustments are made is within a threshold value of the derived local density value. In some implementations, the threshold value is zero, that is, the local density value is held constant. In other implementations the threshold value is 2%, that is, the local density is allowed to deviate up to 2% from the derived local density value. In still other implementations, a range of values are used for the threshold value, such as for example, 0-10%.
As indicated above, the partition 703 can be generated from different shapes (e.g. square, rectangle, circle, polygon, or the like) and can have different sizes. The size of the partition may be determined based upon the design flow in which the adjustments at operation 607 are performed. For example, the design flow could be an optical process correction flow, in which, potential manufacturing errors are detected in the design and the design adjusted (e.g. at operation 607) to account for or correct the errors. As such, the size it may be advantageous to size the partition 705 such that only a few errors are present in each partition. It may be advantageous to size the partition 705 such that only a single error is present in each partition.
As indicated above, in various implementations, the positioning of the shapes 203, 205, and/or 207 are adjusted at operation 607 such that the local density value is preserved. For example, referring back to
Various additional details relating to the disclosed technology, any one or more of which can be used together with the any of the embodiments described above, are discussed in this Appendix.
A. Notation
In this appendix, the following terms are used:
-
- t—(fake) time
- x—local coordinate, length along mask perimeter
- y—local coordinate, normal to mask contour
- Δx—size of the discretization pixel in x direction
- Δy—size of the discretization pixel in y direction
- X,Y—global Decart coordinates in the mask plane
- ρ(t,x)—mask density
- ρjt—mask density in the j-pixel at the time t.
- p(t,x)—pressure
- u(t,x)—space violations
- v(t,x)—width violations
- umin—minimum external distance (minimum spacing)
- vmin—minimum internal distance (minimum width)
- a(x)—diffusion coefficient
- b(x)—mass production coefficient
- α—space/width balance in violations to pressure transfer
- Wu—functional operator that transforms space violations into pressure
- Wv—functional operator that transforms width violations into pressure
- q(X,Y)—mask characteristic function
B. Mask Density
Mask “mass”, in this section and for exemplary embodiments of the disclosed technology, can be represented as the “weight” of the mask polygons:
For certain embodiments, the area density ρ of the mask is:
Diagram 800 in
The infinitesimal ρ is the same as the mask characteristic function q, and is a dimensionless quantity, ratio of the area that is covered by mask polygons to the whole area. In the process of redistribution of mask transmission, ρ can become different from q. It can be assumed that q can be inferred by thresholding
or by other means.
In certain embodiments, the method comprises moving polygon edges while preserving, when possible, the local density of the mask. In this section, the ala-Egorov MRC algorithm is formalized using mass transfer PDEs, these equations are discretized, and example solution methodologies are described.
1. Mask Polygon Cycles
A mask polygon can be represented using a mask polygon cycle. For example, the x-coordinate can run along the boundary of the mask polygon cycles, or one can say it is length of the boundary. In a tile, and for purposes of this disclosure, there are Cn such cycles, numbered from 0 to Cn−1. For simplicity of notation, this section usually describes operations on only one such cycle, cycle 0.
2. MRC Violations
MRC violations can be represented by functions u and v of x, and may change in time, so that
u=u(t,x)
v=v(t,x). (6)
Here u(t,x) is space (external) violation, and v(t,x) is width (internal) violation. Violations are non-negative quantities:
u≧0
v≧0, (7)
which is desirably driven to 0 (meaning no violations) to resolve all violations. Violations are measured in units of length.
3. Conservation of Mask Transmission
In this subsection, the mask density in the vicinity of the mask boundary is considered. In this case, the lateral transfer of ρ(x) obeys the conservation law (continuity equation)
where j=j(t,x) is the lateral mass flux, {dot over (ρ)}={dot over (ρ)}(t,x) is the mass production. For purposes of this analysis, inertial terms are not considered and thermodynamic relationships are used. Here, fluxes are proportional to the generalized forces, so that
where a=a(x) is a diffusion coefficient, p is pressure. For an isothermal process, the state equation is ρ˜p, so traditional diffusion equations can be obtained from (3) and (4).
4. Forces
The next step is to link pressure p to MRC violations u and v. In the most general form:
p=f(u,v), (10)
but, in certain embodiments, only a linear dependence is considered:
p(t,x)=αu(t,x)−(1−α)v(t,x)
0≦α≦1, (11)
unless MRC testing reveals that something more sophisticated is needed, like perhaps a hyperbolic tangent:
p=tan h(u−v), (12)
which can be used to saturate pressure when violations become very large. When coefficient α=1, the focus is only on space violations, and if α=0, then pressure is proportional to width violations.
The second mass production term will be directly linked to the pressure:
{dot over (ρ)}(t,x)=−b(x)·p(t,x). (13)
It describes loss of mass to relieve pressure and, thus, violations. Because pressure is proportional to violations, the pressure for space violations will drive mask polygons to shrink, and the pressure from width violations will drive mask polygons to expand.
Pressure p, as defined in (11), is measured in units of length.
5. Equation of State
The dependence between u, v and ρ can be viewed as an equation of state of the system, and is given by a functional operator W:
u(t,x)=Wu[ρ](t,x)
v(t,x)=Wv[ρ](t,x)
W=(Wu,Wv). (14)
A first observation about this operator is that W is a sparse operator, because only small portions of mask contour interact to form an MRC violation. Second, after discretization of the mask contour to edges, an MRC violation is (generally) formed by two interacting edges that oppose each other. Diagram 1000 in
In this case the discrete version of W is not only sparse, but affine (with matrix A and shifting vector W0), and its matrix A has only 2 non-zero entries:
Thus, the second notable observation is that W may be an affine functional:
where Lu is the kernel of Wu. However, this holds only for the “opposite” violation types. For the diagonal, non-Manhattan violations, the distance s involves quadratic and square root non-linearities, so W is no longer linear.
A third observation is that W (if linear) is non-negatively defined, so it is expected that any positive space violation will produce positive pressure to shrink polygons.
6. Model
Governing equations can be collected to form the following closed model of a Cauchy problem:
7. Mass Production
In the absence of diffusion, for space (α=1) and “opposite” type of violations, one gets model with mass production only:
Diagram 1100 in
In the vicinity of the violation, the operator W acts as
u=u0(ρ−ρ0)Δy, (19)
and the solution of (18) is
This means that the original space violation u0 reduces exponentially in time, but always stays positive: the “no violation” value 0 is asymptotically approached as shown in graph 1200 of
In a similar situation for width violation (α=0), one gets:
Diagram 1400 in
In the vicinity of the violation, the operator Wv acts as
v=v0−(ρ−ρ0)Δy. (22)
Substituting this into (21) gives:
A conflicting situation is now considered. In this conflicting situation, there is no such ρ that cleans up both width and space violations.
Diagram 1500 of
If in one pixel, one gets both violations, then the following system can be obtained from (17, α=0.5):
The solution of this is:
The final density ρ∞ is such that:
-
- 1. if u0>v0, then the final violation u∞<u0, i.e. space violation gets better, but v∞>v0 gets worse.
- 2. if u0<v0, then the final violation v∞<v0, i.e. the width violation gets better, but u∞>u0 gets worse.
The conclusion is that in the presence of conflicts, the model reduces the largest violation, but increases the smallest violation. The model balances violations in such way that the final density ρ∞ of the pixel ends up in the position in the middle of violations. This situation is typical for normalization in norm 2.
In this subsection, one isolated pixel was considered and it was shown that the model cannot clean both violations locally. Once pixel has two violations, these violations cannot be cleaned-up by changing the density of this pixel. Moreover, once the pixel has two violations (becomes a conflicting pixel), this number cannot be reduced by local means. In certain implementations, one has to wait until other pixels, that have only one violation, will reduce the number of violations to 1 in the conflicting pixel. Only then the conflicting pixel can “take care” of itself.
8. Diffusion
The model with constant diffusion coefficient, and space violations, is:
Here ρ2∞ is density of the second pixel that fixes the violation (corresponds to u2=0).
Diagram 1600 of
The discretization of spatial coordinate gives:
Here, it is assumed that the pixels 1 and 3 are isolated (no mass transfer from outside boundaries, left boundary for pixel 1 and right boundary for pixel 3 are isolated), thus the mass is conserved in three pixels under consideration. ρ1(t), ρ2(t), ρ3(t) are densities of pixels 1, 2, and 3.
The solution for this system is:
where ρ10, ρ20, ρ30, are initial densities of pixels 1, 2, and 3, and shown in graph 1700 of
One can see from graph 1700 that diffusion fixes a violation locally (changing density of one pixel) exponentially asymptotically in time. The excess mass is redistributed into the neighboring pixels.
9. Numerical discretization
Here, a numerical iterative schema is developed to solve the following PDE system:
The explicit Euler schema 1800 shown in
10. User Options
The finite schema in
Consider Δwb, the reduction of the violation in one iteration due to mass production term:
Δwb=(ρi0−ρi1)Δy=bipi0ΔtΔy. (30)
The violation for pixel i is pi0. Characteristic value of this quantity is
wmax=max(umin,vmin). (31)
From (30), one gets:
where <b> is average value of b(x). If normalized mass production coefficient is introduced (it is 1 if b is constant)
then Δt can be eliminated from the second term in finite differences:
Now consider Δwa, the reduction of the violation in one iteration due to diffusion term:
Here lx2 is size of the violation in x directions, so that the pressure changes from 0 (x=0) to wmax (x=lx/2) and back to 0 (x=lx). From here, one can find Δt:
With this, Δt can be eliminated from the first term of finite differences:
In a simpler notation:
Schema 1900 in
The parameters for this example embodiment are described in the following table:
Although certain embodiments have been described above in terms of the illustrative embodiments, the person of ordinary skill in the art will recognize that other embodiments, examples, substitutions, modification and alterations are possible. In particular, the disclosed methods, apparatuses, and systems should not be construed as limiting in any way. Instead, the present disclosure is directed toward all novel and nonobvious features and aspects of the various disclosed embodiments, alone and in various combinations and subcombinations with one another. The disclosed methods, apparatuses, and systems are not limited to any specific aspect or feature or combination thereof, nor do the disclosed embodiments require that any one or more specific advantages be present or problems be solved. Furthermore, any features or aspects of the disclosed embodiments can be used in various combinations and subcombinations with one another. For example, one or more method acts from one embodiment can be used with one or more method acts from another embodiment and vice versa.
Although the operations of some of the disclosed methods are described in a particular, sequential order for convenient presentation, it should be understood that this manner of description encompasses rearrangement, unless a particular ordering is required by specific language set forth herein. For example, operations described sequentially may in some cases be rearranged or performed concurrently. Moreover, for the sake of simplicity, the attached figures may not show the various ways in which the disclosed methods can be used in conjunction with other methods.
Having illustrated and described the principles of the illustrated embodiments, the embodiments can be modified in various arrangements while remaining faithful to the concepts described above. In view of the many possible embodiments to which the principles of the illustrated embodiments may be applied, it should be recognized that the illustrated embodiments are only examples and should not be taken as limiting the scope of the disclosure. I claim all that comes within the scope of the appended claims and their equivalents.
Claims
1. One or more computer-readable media storing computer-executable instructions when executed by a computer cause the computer to perform a method, the method comprising:
- deriving a local density value for one or more geometric elements in at least a portion of a layout design for an integrated circuit; and
- modifying the shape of one or more of the geometric elements while maintaining the local density value across the one or more geometric elements in the at least a portion of the layout design.
2. The one or more computer-readable media of claim 1, wherein the modifying the shape of one or more of the geometric elements while maintaining the local density value across the geometric elements comprises modifying the shape of one or of the geometric element such that a new local density value after the modification is within a threshold value of the derived local density value.
3. The one or more computer-readable media of claim 1, wherein the method further comprises partitioning the layout design into a plurality of partitions and the at least a portion of the layout design comprises one of the partitions.
4. The one or more computer-readable media of claim 3, wherein the threshold value indicates a 2% change or less.
5. The one or more computer-readable media of claim 1, wherein the modifying comprises re-positioning one or more of the geometric shapes.
6. The one or more computer-readable media of claim 1, wherein the modifying comprises adjusting an edge of one or more of the geometric shapes.
7. The one or more computer-readable media of claim 1, wherein the modifying comprises adjusting a boundary of one or more of the geometric shapes by adjusting one or more edge fragments.
8. A computer-implemented method, comprising:
- by computing hardware, deriving a local density value for one or more geometric elements in at least a portion of a layout design for an integrated circuit; and modifying the shape of one or more of the geometric elements while maintaining the local density value across the one or more geometric elements in the at least a portion of the layout design.
9. The method of claim 8, wherein the modifying the shape of one or more of the geometric elements while maintaining the local density value across the geometric elements comprises modifying the shape of one or of the geometric element such that a new local density value after the modification is within a threshold value of the derived local density value.
10. The method of claim 8, wherein the method further comprises partitioning the layout design into a plurality of partitions and the at least a portion of the layout design comprises one of the partitions.
11. The method of claim 10, wherein the threshold value indicates a 2% change or less.
12. The method of claim 8, wherein the modifying comprises re-positioning one or more of the geometric shapes.
13. The method of claim 8, wherein the modifying comprises adjusting an edge of one or more of the geometric shapes.
14. The method of claim 8, wherein the modifying comprises adjusting a boundary of one or more of the geometric shapes by adjusting one or more edge fragments.
15. A system, comprising:
- means for deriving a local density value for one or more geometric elements in at least a portion of a layout design for an integrated circuit; and
- means for modifying the shape of one or more of the geometric elements while maintaining the local density value across the one or more geometric elements in the at least a portion of the layout design.
7966595 | June 21, 2011 | Chong et al. |
20110239177 | September 29, 2011 | Chong et al. |
20130086535 | April 4, 2013 | Rieger et al. |
20130328155 | December 12, 2013 | Konomi |
Type: Grant
Filed: Aug 19, 2013
Date of Patent: Apr 14, 2015
Patent Publication Number: 20140053123
Assignee: Mentor Graphics Corporation (Wilsonville, OR)
Inventor: Yuri Granik (Palo Alto, CA)
Primary Examiner: Suresh Memula
Application Number: 13/970,281