( 1 of 1 ) |
United States Patent | 6,301,693 |
Naylor ,   et al. | October 9, 2001 |
A computer implemented process for automatic creation of integrated circuit (IC) geometry using a computer. The present invention includes a general unconstrained non-linear optimization method to generate coarse placement of cells on a 2-dimensional silicon chip or circuit board. In one embodiment, the coarse placer can also be used to automatically size cells, insert and size buffers, and aid in timing driven structuring of the placed circuit. The coarse placer is used in conjunction with other automatic design tools such as a detailed placer and an automatic wire router. A master objective function (MOF) is defined which evaluates a particular cell placement. A non-linear optimization process finds an assignment of values to the function variables which minimizes the MOF. The MOF is a weighted sum of functions which evaluate various metrics. An important metric for consideration is the density metric, which measures how well spread out the cells are in the placement. Other component functions are wire-length, which measures total linear wire-length, delay, which measures circuit timing, and power, which measures circuit power consumption. The barrier metric penalizes placements with cells outside the allowed placement region. A conjugate-gradient process utilizes both the MOF and its gradient to determine a next cell placement. The gradient is the vector of partial derivatives of the MOF with respect to all variables. The non-linear optimization process calls the MOF and gradient function subroutines and uses the results to minimize the MOF.
Inventors: | Naylor; William C. (San Jose, CA); Donelly; Ross (Sunnyvale, CA); Sha; Lu (San Jose, CA) |
Assignee: | Synopsys, Inc. (Mountain View, CA) |
Appl. No.: | 216632 |
Filed: | December 16, 1998 |
Current U.S. Class: | 716/10; 716/5 |
Intern'l Class: | G06F 017/50 |
Field of Search: | 716/1,2,4,5,6,8,9,10,18,11 703/2 |
3622762 | Nov., 1971 | Dyer et al. | 235/150. |
5519627 | May., 1996 | Mahmood et al. | 364/488. |
5838583 | Nov., 1998 | Varadarajan et al. | 364/491. |
5847969 | Dec., 1998 | Miller et al. | 364/491. |
5892688 | Apr., 1999 | Scepanovic et al. | 364/491. |
Rajan et al., "Conjugate Gradient Method for Adaptive Nonlinear Filtering," IEEE, pp 1327-1330, 1995.* W. Press et al.; "Numerical Recipes in C"; The Art of Scientific Computing; Ch. 7, Random Numbers; Cambridge University press, Cambridge, New York, no date, no page #. S. Kirkpatrick, et al.; "Optimization By Simulated Annealing"; May 13, 1983, vol. 220, #4598; IBM Thomas J. Watson Research Center, Yorktown Heights, New York, 70 page #. Kleinhans et al.; "Gordian: VLSI Placement By Quadratic Programming and Slicing Optimization"; Mar. 1991, vol. 10, #3; IEEE Transactions on Computer-Aided Design, no page #. Tsay et al.; "Proud: A Fast Sea-Of-Gates Placement Algorithm"; 1988; Dept. of EECS & the Electronics Research Lab, University of CA, Berkeley, CA., no page #. D. Luenberger; "Linear & Nonlinear Programming"; 2nd Edition; Ch. 8, Conjugate Direction Methods; Stanford University; Addison-Wesley Publishing Company; Reading, Mass.; Menlo Park, CA., no date, no page #. Nash et al.; "Linear & Nonlinear Programming"; 1996, The McGraw-Hill Companies, Inc., no page #. D. Luenberger; "Linear & Nonlinear Programming"; 2nd Edition; Ch. 9, Quasi-Newton Methods; Stanford University; Addison-Wesley Publishing Company; Reading, Mass.; Menlo Park, CA., no date, no page #. D. Luenberger; "Linear & Nonlinear Programming"; 2nd Edition; Ch. 7, Basic Descent Methods; Stanford University; Addison-Wesley Publishing Company; Reading, Mass.; Menlo Park, CA., no date, no page #. W. Press et al.; "Numerical Recipes In C";; The Art of Scientific Computing; Ch. 10, Minimization or Maximization of Functions; Cambridge University Press, Cambridge, New York, no date, no page #. D. Luenberger; "Linear & Nonlinear Programming"; 2nd Edition; Ch. 12, Penalty & Barrier Methods; Stanford University; Addison-Wesley Publishing Company; Reading, Mass.; Menlo Park, CA, no date, no page #. Bentley; Multidimensional Binary Search Trees Used For Associative Searching; Stanford University; Sep. 1975, vol. 18, #9, no page #. Finkel et al.; "Quad Trees, A Data Structure For Retrieval On Composite Keys"; Acta Informatica 4, 1-9(1974) Springer-Verlag 1974, no page #. R. Hitchcock, Sr; "Timing Verification & the Timing Analysis Program"; IBM General Technology Division, Endicott, New York; 19th Design Automation Conference, 1982, no page #. Pillage et al.; "Asymptotic Waveform Evaluation for Timing Analysis"; IEEE Transactions on Computer-Aided Design, vol. 9, #4, Apr. 1990, no page #. Rubenstein et al.; "Signal Delay in RC Tree Networks"; IEEE Transactions on Computer-Aided Design, vol. CAD-2, #3, Jul. 1983, no page #. Sha et al.; "An Analytical Algorithm for Placement of Arbitrarily Sized Rectangular Blocks"; Stanford Electronics Lab, Stanford University, AEL 204 Stanford, CA 1985, no page #. Eisenmann et al.; "Generic Global Placement & Floorplanning"; Institute of Electronic Design Automation Technical University, Munich Germany '98, no page #. |
/* entire chip is single partition */ loop until partitions are small enough { for all partitions { minimize_quadratic_wire_length_in_partition } for all partitions { divide_partitions_into_2_partitions } }
main300(). { solution <- initial_value; for (alpha = large; alpha >= small; alpha *= 1/2) { start_solution <- solution; solution <- cg_optimize (start_solution, alpha); } }