The present invention relates generally to very large scale integrated (VLSI) circuit design, and more particularly relates to an electronic design automation method, and system that implements the method for optimizing a VLSI design, and VLSI design modifications using polygonal area design rule correction.
Characteristics of today's complex very large scale integrated (VLSI) circuit designs have made accelerated processing of graphical design data an essential part of design-to-silicon processes. To achieve profitability, design houses and fabs alike must be capable of processing huge and complicated volumes of design data swiftly. As VLSI technology continues to miniaturize, support hardware and application programs required to reliably print the minimum feature sizes on silicon tend to lag behind technological advancements, further widening sub-wavelength gaps. Such support hardware and application programs, e.g., electronic design automation (EDA) tools and applications, subject VLSI circuit designs and layouts to complex rules governing, among other things, geometry of shapes on process layers comprising the layout.
The complex rules, or design rules, may include without limitation width requirements, spacing requirements, overlap requirements, etc., which should not be violated. Design rules are a series of parameters provided by semiconductor manufacturers that enable the designer to verify the correctness of his/her schematic and/or mask set, and are particular to a specific semiconductor manufacturing process. The prime objective for the application of such complex design rules is a “minimizing” of areas within a VLSI design or layout. But the application of such VLSI design rules may inadvertently disrupt the automatic or automated design layout, to greater or lesser degrees. Critical alignments, inter-net spacing, symmetries, power, performance, etc., are design specifics that can be easily lost in an automated design layout, e.g., compaction process.
Compliance with such complex design rules is very important to chip functionality and manufacturability. For that matter, many conventional EDA tools and processes are used not only to create, but also to alter or modify VLSI layouts and designs. For example, U.S. Pat. No. 6,189,132 discloses a design rule correction system and method; U.S. Pat. No. 6,986,109 discloses a method for a VLSI design layout optimization that is hierarchical-preserving; and U.S. Pat. No. 7,062,729 discloses a system and method for obtaining feasible integer solutions from half-integer solutions in a hierarchical circuit layout optimization.
Manual layout is a conventional process known to inevitably introduce rules violations due to the difficulty of satisfying large numbers of complex design rules by hand. In the not-so-distant past, such design rule violations were generally corrected via tedious iterations between design rule checking tool runs, the manual layout modifications, and further checking and further manual layout modifications. For that matter, manual layout modification requires that object and shape locations in a VLSI design layout be represented as integers due to technology specifications.
Various tools and application programs also are known that attempt to accommodate or correct for design rule violations, for example, rules violations occurring within an EDA process operating on a modified VLSI design. Migration is an EDA process that gives rise to a very large number of design rule violations in a design or redesign. Migration transforms VLSI layouts in a first technology to a layout in a second, different technology, where the second different technology is limited to a set of design rules that are distinct from rules associated with the first technology. Migration process begins with a simple scaling of the existing (first technology) design using commercially available programs (i.e., EDA tools and applications). Non-scalable differences in the design rules result in the introduction of design rules violations, particularly rules relating to the second technology that must be corrected, typically in a tedious manual iterative process.
Related design rule violation correction techniques include U.S. Pat. No. 6,189,132 (“the '132 patent”), commonly owned and incorporated herein by reference. The '132 patent discloses a system and method for automatically correcting design rule violations. To do so, the '132 patented invention modifies a layout of a plurality of objects in accordance with a plurality of predetermined criteria, or design rules. The '132 patent implements the modifications by first defining an objective function for measuring a location perturbation and a separation perturbation in the layout. A linear system is then defined using linear constraints. The intended objective is to describe separations between layout objects. The linear system is solved simultaneously to remove violations of the design rules, and modify shapes and object positions in the modified layout based on the solution of the linear system. The '132 patent does not, however, address the layout in a way that preserves design hierarchy, nor correct maximum area violations.
U.S. Pat. No. 6,587,992 (“the '992 patent”) discloses a system and method for compacting design layouts in two dimensions simultaneously, without dependence on known expansive methods such as “Branch and Bound”. The '992 patent mentions constraining a minimum area of layout shapes during two-dimensional compaction by modeling areas as a linear function of perimeter. The disclosed '992 patented method, however, only looks to constrain minimum areas of rectangular layout shapes, and makes no mention of correcting for minimum and maximum area violations.
U.S. Pat. No. 6,892,368 (“the '368 patent”) discloses an automated patching technique to correct or optimize rules violations in order to simplify and automate design layouts. The '368 patented technique includes creating “patches” of metal to correct minimum area design rule violations. Predetermined oriented patches are placed over violating regions in the layout. If the patch does not violate any other design rules, it is converted to the metal layer and added to the layout. The use of patches, however, does not handle/preserve design hierarchy. Patches only correct minimum area violations, and not maximum area violations, and may modify existing geometries.
In view of the shortcomings of conventional EDA tools and applications that support VLSI circuit design processes, it would be desirable to have automated design rule correction function, as a stand-alone EDA tool, or part of an existing EDA tool that overcomes the shortcomings in conventional VLSI compaction tools and processes.
To that end, the present invention includes a method for polygonal area design rule correction for use in an electronic design automation tool for governing integrated circuit (IC) design layouts using one-dimensional (1-D) optimization. The method includes analyzing IC design layout data to identify violating polygons, partitioning the violating polygons into rectangles in a direction of optimization, computing an area ratio, building linear programming (LP) constraints for each of the rectangles using the area ratio and partitioned rectangle distances and solving an LP problem comprising the LP constraints.
In an alternative embodiment, the invention includes a method of polygonal area design rule correction for use in an electronic design automation tool for governing integrated circuit (IC) design layouts using one-dimensional (1-D) optimization, with steps of analyzing IC design layout data to identify violating polygons, partitioning violating polygons into rectangles in a direction of optimization, formulating an area constraint for each violating polygon to formulate a global linear programming (LP) problem that includes each constraint for each violating polygon and solving the global LP problem to obtain a real-valued solution.
The method may include creating a next LP problem for each area constraint in the real-valued solution, solving the next LP problem and repeating the steps of creating a next and solving the next LP problem until the last next LP problem solved comprises constraints and objectives representing sums or differences of no more than two optimization variables. And the method may include converting non-integers to integers where necessary, to replace one of the difference terms with an integer constant and adding a new constraint row in which the row's left hand side includes the difference term replaced with said integer constant, where the row's right hand side is the integer constant. In addition, the invention includes solving for remaining difference terms in each area constraint having two optimization variables, and using a ceiling of the right hand side where the constraint is minimum area or the floor of the right hand side if the constraint is maximum area, and creating and solving a final LP problem to obtain a half-integer solution.
The method may further include that the step of partitioning includes proportionally adjusting an edge distance of each rectangle by the same ratio in order that the total area of the offending polygons and shapes meet a minimum area rule. For that matter, the LP program structure is reduced to two variables, whereby a half-integer solution is realized, and an original hierarchy of the VLSI design layout is maintained.
The invention further includes a system for optimizing a very large scale integrated (VLSI) circuit design layout that implements an orthogonal polygonal area design rule correcting function for solving maximum/minimum polygonal area violations. The system includes means for receiving a set of data comprising the VLSI circuit design layout, means for identifying polygonal design rule violations in the design layout wherein physical layout edges are represented as variables and means for partitioning identified violating polygons into rectangles in a direction of optimization in the layout, which partitioning includes proportionally adjusting edge distances of each rectangle by a calculated fixed ratio in order that a total area of the offending polygons and shapes meet a minimum area rule, means for generating a linear programming (LP) problem structure comprising a set of constraints modeled on design rules in accordance with a calculated ratio of desired polygonal area to measured polygonal area and means for solving the LP problem to realize half-integer solutions. The means for generating preferably provides that the LP constraints are generated for each rectangle using the minimum area ratio and measured distances between the rectangles in order to ensure half-integer solutions to the LP problem generated and solved to realize half-integer solutions.
The foregoing and other objects, aspects and advantages will be better understood from the following detailed description of embodiments of the inventions, with reference to the drawings, in which:
The inventive method and system set forth and described herein corrects for design rules violations in VLSI design layout modifications, migrations, compactions, etc. The figures and descriptions, however, are intended only as examples, are not exclusive, and should not be interpreted to limit the scope of the invention in any way. The invention is directed to VLSI circuit design processes and automatic design rule correction that includes first finding design rule violations, and then automatically correcting or modifying the design layout to accommodate, correct for, or obviate the design rule violations.
The inventive method operates in accordance with constraint-based legalization. For example, a first method embodiment corrects for minimum/maximum polygonal area violations while concurrently correcting or preventing most other design rule violation types arising in a migration or compaction process. The physical layout edges are represented as variables, and the design rules are modeled as constraint rows in a linear programming problem. For example,
To implement the inventive method for a layout modification, layout locations must be represented as integers due to technology specifications. The invention requires constraint equations of the following form to guarantee a half-integer solution for a design layout:
±xi, ±xj≧D.
In one approach, the invention first “roughly” adjusts each portion of a polygon, e.g., shapes 110 and 120, proportionally. This “rough” adjusting includes scaling the polygon in an “optimization direction,” in order to satisfy an “area rule” (to be explained in greater detail below). The intended result of this first approach is to correct and/or constrain minimum and maximum polygonal area during automated design process (by the design rules), and preserve the original hierarchy of the layout. Various benefits are realized using the novel method, including its ability to maintain the hierarchy of an original design, and the design intent, e.g., that the maximum area design constraints are managed.
The dotted lines in
x
2
−x
1≧ceil((area ratio)*d1);
x
4
−x
1≧ceil((area ratio)*d2);
x
4
−x
3≧ceil((area ratio)*d3);
x
1
−x
0
≧S;
x
5
−x
4
≧S;
where S is a minimum spacing value used to demonstrate environmental constraints influencing the polygon modification, migration, compaction, etc.
Each equation in the system of equations (i.e., the LP problem solution), for example, as shown in
Hence, a second approach for polygonal area legalization of the invention will now be explained with reference to
The second approach or method provides that each portion of a polygon is adjusted independently, in order to avoid violating, or to satisfy the area rule or constraint. Doing so requires formulating and solving the linear programming (LP) problem differently than that described in relation to the
To avoid violating the minimal polygonal area rule value, A must be less than or equal to the sum of the areas or the three rectangles. That is:
h
1(x2−x1)+h2(x4−x1)+h3(x4−x3)≧A,
where hn variables are constant in the exemplary optimization direction shown. The present invention solves the constraint equation in a global optimization.
x
1
−x
0
≧s; and
x
5
−x
4
≧s.
But since the area objective equation contains more than two variables, the solution may not be integral. Hence the layout modification requires that the edge locations must be representable by integers. The invention converts the linear programming problem containing area constraints with more than two variables to a linear programming problem where all of the constraints contain two variables. Doing so requires implementing a minimum perturbation objective, which minimizes movement of layout edges. The inventive method is not limited to implementing the minimum perturbation objective, but may implement any objective available and known, for example, compaction.
That is, the method requires solving a linear programming problem, LP1, to obtain solution [x0′, x1′, x2′, x3′, x4′, x5′]. In every area constraint with more than two variables, the method includes using the solution LP1 to replace one of the difference terms with an integer constant to formulate a new LP problem, LP2. LP2 is formulated as follows:
Let Δ1′=f(x2′−x1′), where f:IR→Z, such as: round, floor, ceil, etc.
The new LP problem, LP2, is formulated using Δ1′, such that
h
1Δ1′+h2(x4−x1)+h3(x4−x3)≧A
x
2
−x
1≧Δ1′
x
1
−x
0
≧s
x
5
−x
4
≧s,
where the area constraint has four variables, as distinguished from six. The method then solves LP2 to obtain solution [x0″, x1″, x2″, x3″, x4″, x5″], wherein each area constraint with more than two variables use the solution LP2 to replace another difference term with an integer constant to formulate a new LP problem, LP3, as follows:
Let Δ1″=f(x2″−x1″), and Δ2″=f(x4″−x1″), where the new LP problem, LP3, is formulated using Δ1″ and Δ2″, such that
h
1Δ1″+h2Δ2″+h3(x4−x3)≧A
x
2
−x
1≧Δ1″
x
4
−x
1≧Δ2″
x
1
−x
0
≧s
x
5
−x
4
≧s.
The final step implemented before actually solving LP3 is to round RHS of the area constraints. If the constraint is minimum area, the ceiling of RHS is used, and if the constraint is maximum area, the floor of RHS is used.
x
4
−x
3≧ceil((A−h1Δ1″−h2Δ2″)/h3),
x
2
−x
1≧Δ1″
x
4
−x
1≧Δ2″
x1−x0≧s
x
5
−x
4
≧s,
where the area constraint has two variables, as distinguished from four, and which can be readily solved using known techniques.
As indicated hereinabove, it should be understood that the present invention could be realized in hardware, software, or a combination of hardware and software. Any kind of computer/server system(s)—or other apparatus adapted for carrying out the novel optimization methods described herein—is suited. A typical combination of hardware and software could be a general-purpose computer system with a computer program that, when loaded and executed, carries out the respective methods described herein. Alternatively, a specific use computer, containing specialized hardware for carrying out one or more of the functional tasks of the invention, could be utilized.
The present invention can also be embodied in a computer program product, which comprises all the respective features enabling the implementation of the methods described herein, for example, the exemplary methods depicted in the figures herein, and which product—when loaded in a computer system—is able to carry out these and related methods. Computer program, software program, program, or software, in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion to another language, code or notation; and/or (b) reproduction in a different material form.
While it is apparent that the invention herein disclosed is well calculated to fulfill the objects stated above, it will be appreciated that numerous modifications and embodiments may be devised by those skilled in the art and it is intended that the appended claims cover all such modifications and embodiments as fall within the true spirit and scope of the present invention.