Constrained optimization with linear constraints to remove overlap among cells of an integrated circuit
First Claim
1. A computer implemented method for placing circuit elements of an integrated circuit design comprising:
- accessing a layout of said design with an initial cell placement;
generating a plurality of linear inequalities to represent allowable placements of a plurality of cells of a layout to remove cell overlap; and
minimizing an objective function measuring cell movement subject to constraints of said plurality of inequalities to arrive at a new cell placement, said objective function minimizing cell movement from said initial cell placement.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system of constrained optimization with linear constraints to remove overlap among cells of an integrated circuit. A coarse placement using well known methods may provide an initial placement of cells. Overlapping cells are separated. Any cell moved to its initial placement may be fixed so as not to be moved during subsequent placements. A plurality of linear inequalities representing allowable placements of a plurality of cells of a layout is generated. An objective function measuring cell movement subject to the constraints of the plurality of inequalities is minimized. The objective function minimizes cell movement from the initial cell placement. In this novel manner, large and small cells may be automatically simultaneously placed, deriving speed and quality advantages over prior art methods.
-
Citations
39 Claims
-
1. A computer implemented method for placing circuit elements of an integrated circuit design comprising:
-
accessing a layout of said design with an initial cell placement;
generating a plurality of linear inequalities to represent allowable placements of a plurality of cells of a layout to remove cell overlap; and
minimizing an objective function measuring cell movement subject to constraints of said plurality of inequalities to arrive at a new cell placement, said objective function minimizing cell movement from said initial cell placement. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 34)
-
-
10. A computer implemented method of optimizing a placement of cells of an integrated circuit comprising:
-
accessing a layout having an initial cell placement;
assigning cells to legal positions;
moving a cell toward its initial placement location;
combining cells into a multi-cell entity if said moving said cell causes said cell to abut another cell; and
determining if fragmenting said multi-cell entity reduces an objective function minimizing displacement from said initial cell placement. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A method of fragmenting a multi-cell entity comprising:
-
constructing a set of relationships for each cell in said multi-cell entity, said relationships describing a plurality of optimizations and constraints upon the location of said cells;
solving said set of relationships for inter-cell interactions; and
fragmenting said multi-cell entity between two cells of said multi-cell entity having the greatest attractive inter-cell interaction. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. A method of fragmenting a multi-cell entity comprising:
-
constructing a spanning tree graph describing a plurality of optimizations and constraints upon the location of cells comprising said multi-cell entity;
traversing said spanning tree graph to determine inter-cell interactions; and
fragmenting said multi-cell entity between two cells of said multi-cell entity having the greatest attractive inter-cell interaction. - View Dependent Claims (25, 26, 27, 28, 29, 30)
-
-
31. A computer readable medium comprising instructions which when executed by a computer system causes said computer system to implement a process comprising:
-
accessing a layout of said design with an initial cell placement;
generating a plurality of linear inequalities to represent allowable placements of a plurality of cells of a layout to remove cell overlap; and
minimizing an objective function measuring cell movement subject to constraints of said plurality of inequalities to arrive at a new cell placement, said objective function minimizing cell movement from said initial cell placement. - View Dependent Claims (32, 33, 35, 36, 37, 38, 39)
-
Specification