US20070118331A1 - Method, system, and program product for accommodating spatially-correlated variation in a process parameter - Google Patents

Method, system, and program product for accommodating spatially-correlated variation in a process parameter Download PDF

Info

Publication number
US20070118331A1
US20070118331A1 US11/272,234 US27223405A US2007118331A1 US 20070118331 A1 US20070118331 A1 US 20070118331A1 US 27223405 A US27223405 A US 27223405A US 2007118331 A1 US2007118331 A1 US 2007118331A1
Authority
US
United States
Prior art keywords
variation
sensitivity
process parameter
grid
parameter
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
US11/272,234
Other versions
US7212946B1 (en
Inventor
Natesan Venkateswaran
Chandramouli Visweswariah
Lizheng Zhang
Vladimir Zolotov
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US11/272,234 priority Critical patent/US7212946B1/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: VENKATESWARAN, NATESAN, VISWESWARIAH, CHANDRAMOULI, ZHANG, LIZHENG, ZOLOTOV, VLADIMIR
Priority to CNB2006101435519A priority patent/CN100498802C/en
Application granted granted Critical
Publication of US7212946B1 publication Critical patent/US7212946B1/en
Publication of US20070118331A1 publication Critical patent/US20070118331A1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis

Definitions

  • the invention relates generally to statistical timing of a circuit, and more particularly, to a method, system, and program product for accommodating spatially-correlated variation in one or more process parameters during statistical timing of a circuit.
  • Variations in process parameters can be inter-die variations (i.e., variations from die to die) or intra-die variations (i.e., variations within a single chip). Inter-die variations affect all components on a single chip similarly, while intra-die variations affect similar components on a single chip differently.
  • SSTA Statistical static timing analysis
  • approaches to SSTA include path-based, block-based, bounding, parameterized, and Monte-Carlo methods.
  • a particularly promising technique is parameterized block-based SSTA, which models variation in gate delays, arrival times, and required times as a linear function of Gaussian independent sources of variation in process parameters.
  • parameterized block-based SSTA accommodates both independent and globally-correlated variations with speed and accuracy.
  • the technique has also been used with non-Gaussian distributions.
  • the invention provides a method, system, and program product for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit.
  • the method includes dividing an area of the circuit into a plurality of grid cells; associating an independent random variable with each of the plurality of grid cells; and expressing at least one spatially-correlated parameter of a first grid cell as a function of the independent random variables associated with the first grid cell and at least one neighboring grid cell.
  • a first aspect of the invention provides a method for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit, the method comprising: dividing an area of the circuit into a plurality of grid cells; associating an independent random variable with each of the plurality of grid cells; and expressing at least one spatially-correlated parameter of a first grid cell as a function of the independent random variables associated with the first grid cell and at least one neighboring grid cell.
  • a second aspect of the invention provides a system for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit, the system comprising: a system for dividing an area of the circuit into a plurality of grid cells; a system for associating an independent random variable with each of the plurality of grid cells; and a system for expressing at least one spatially-correlated parameter of a first grid cell as a function of the independent random variables associated with the first grid cell and at least one neighboring grid cell.
  • a third aspect of the invention provides a program product stored on a computer-readable medium, which when executed, accommodates spatially-correlated variation in a process parameter during statistical timing of a circuit, the program product comprising: program code for dividing an area of the circuit into a plurality of grid cells; program code for associating an independent random variable with each of the plurality of grid cells; and program code for expressing at least one spatially-correlated parameter of a first grid cell as a function of the independent random variables associated with the first grid cell and at least one neighboring grid cell.
  • a fourth aspect of the invention provides a method for deploying an application for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit, comprising: providing a computer infrastructure being operable to: divide an area of the circuit into a plurality of grid cells; associate an independent random variable with each of the plurality of grid cells; and express at least one spatially-correlated parameter of a first grid cell as a function of the independent random variables associated with the first grid cell and at least one neighboring grid cell.
  • a fifth aspect of the invention provides computer software embodied in a propagated signal for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit, the computer software comprising instructions to cause a computer system to perform the following functions: divide an area of the circuit into a plurality of grid cells; associate an independent random variable with each of the plurality of grid cells; and express at least one spatially-correlated parameter of a first grid cell as a function of the independent random variables associated with the first grid cell and at least one neighboring grid cell.
  • a sixth aspect of the invention provides a business method for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit.
  • FIG. 1 shows a graph of a correlation coefficient as a function of a distance between circuit components.
  • FIG. 2 shows an illustrative hexagonal grid pattern according to the invention.
  • FIGS. 3-6 show various spatial relationships between cells in the hexagonal grid pattern of FIG. 2 .
  • FIG. 7 shows an indexed hexagonal grid pattern overlaid on a chip area.
  • FIGS. 8 A-B show exponential and Gaussian correlation functions, respectively, approximated according to the invention.
  • FIGS. 9 A-B show general and detailed views, respectively, of a chip area overlaid with hexagonal and rectangular grids.
  • FIGS. 10 A-B show indexing patterns for a hexagonal grid.
  • FIG. 11 shows a flow diagram of an illustrative method according to the invention.
  • FIG. 12 shows a block diagram of an illustrative system according to the invention.
  • the invention provides a method, system, and program product for accommodating spatially-correlated variation in one or more process parameters during statistical timing of a circuit.
  • FIG. 1 shows a graph of variation in a process parameter as a function of the distance between two circuit components (e.g., transistors, etc.).
  • the correlation coefficient R(s) decreases.
  • R(s) does not necessarily equal 1.
  • portion A an independent (uncorrelated) component of the variation in the process parameter (i.e., a component responsible for independent or uncorrelated variation), represented by portion A, that causes R(s) to be less than 1, even when two circuit components are adjacent to each other.
  • R(s) does not necessarily decrease to zero.
  • portion C This is due to a global component of the variation in the process parameter, represented by portion C, which affects all circuit components similarly, regardless of the distance between them.
  • Methods of modeling and accommodating the independent and global components of process parameter variation are known and are referenced here only as they relate to the spatially-correlated component of process parameter variation, represented by portion B, the object of the present invention.
  • a grid 100 according to the invention is shown, suitable for superimposition onto a chip.
  • the superimposition of a grid onto a chip is known in the art. Agarwal et al. and Chang et al. do so.
  • the grid 100 of the present invention preferably includes hexagonal cells 110 , 120 A, 130 A, 140 A.
  • the use of hexagonal cells ensures that all neighboring cells are in the same relative position to the central cell and therefore are more suitable for modeling isotropic spatial variation. That is, the relationships of each cell to its neighboring cells in a grid of hexagonal cells are identical.
  • the cells of the grid 100 of the present invention are preferably hexagonal, although this is not necessary.
  • Other grids consisting of isotropic shapes or even anisotropic shapes may be employed in practicing the invention.
  • the grid may be regular or irregular, hierarchical or flat.
  • FIG. 2 shows various spatially-defined relationships among the cells of grid 100 .
  • Cell 110 may be of interest, for example, because it contains a gate, the delay of which is to be modeled for timing purposes. Any other gate in cell 110 is said to be a zero-degree neighbor of the gate of interest.
  • a ring 120 of first degree neighboring cells is located immediately adjacent to cell 110 , with each cell of ring 120 (e.g., cell 120 A) contacting cell 110 .
  • a ring 130 of second degree neighboring cells is located immediately adjacent to ring 120 , each cell of ring 130 (e.g., cell 130 A) contacting a cell of ring 120 and being separated from cell 110 by an intervening cell (e.g., 120 A).
  • a ring 140 of third degree neighboring cells is located immediately adjacent to ring 130 , each cell of ring 140 (e.g., cell 140 A) contacting a cell of ring 130 and being separated from cell 110 by two intervening cells (e.g., 120 A, 130 A). This scheme may be continued for any number of degrees of neighboring cells.
  • FIGS. 3-6 each show grid 100 and a relationship between two distinct cells of interest (i.e., 110 , 112 ).
  • the first cell of interest 110 is located immediately adjacent to the second cell of interest 112 .
  • each cell of interest 110 , 112 shares four common first degree neighboring cells with the other: its own cell (i.e., 110 or 112 ), the other cell of interest (i.e., 112 or 110 ), and the two first degree neighboring cells that both share (i.e., 120 A and 120 B).
  • each cell of interest 110 , 112 shares two common first degree neighboring cells, 120 A and 120 B.
  • the two cells of interest 110 , 112 are not first degree neighboring cells of each other. Accordingly, in FIG. 4 , the cells of interest 110 , 112 share only two first degree neighboring cells. In FIG. 5 , the cells of interest 110 , 112 share only one common first degree neighboring cell, 120 A. In FIG. 6 , the cells of interest 110 , 112 share no common first degree neighboring cells.
  • Physical parameters exhibiting spatial correlation such as effective transistor channel length are expressed as a linear combination of the grid random variables in such a manner as to represent as closely as possible the user-provided spatial correlation profile shown in FIG. 1 . Details of a preferred method of choosing the coefficients of the linear combination are provided below.
  • Grid 100 is slightly larger than chip area 200 , such that grid 100 contains all first degree neighboring cells of each cell falling, entirely or in part, within chip area 200 . More or fewer cells may similarly be provided without departing from the scope of the present invention.
  • the cells of grid 100 are arranged in columns C and rows R, although other arrangements are also possible.
  • Spatial correlation in process parameter variation may be modeled using a grid such as that in FIG. 7 .
  • an independent random variable is first associated with each cell of grid 100 .
  • a G is the sensitivity of the process parameter to global variation
  • ⁇ X G is the random variable modeling the global variation
  • a r is the sensitivity of the process parameter to independent variation
  • ⁇ X r is the random variable modeling the independent variation
  • a sd is the sensitivity of the process parameter to short distance spatial variation
  • ⁇ X c is the random variable associated with the cell of interest
  • a ld is the sensitivity of the process parameter to long distance spatial variation
  • ⁇ X n,1 through ⁇ X n,6 are the random variables associated with the first degree neighboring cells of the cell of interest.
  • Equation 1 the independent random variable associated with cell 18 is substituted for ⁇ X c and the independent random variables associated with cells 9 , 10 , 11 , 17 , 19 , and 26 are substituted for ⁇ X n,1 through ⁇ X n,6 .
  • gates in chip area 200 that are closer to the gate in cell 18 are more likely to share commonly neighboring cells with the gate in cell 18 than are gates more distant from the gate in cell 18 .
  • the gates in cells 18 and 19 share a number of commonly neighboring cells. Specifically, they share neighboring cells 11 and 26 , as well as their own cells, 18 and 19 , for a total of four common neighboring cells, similar to the pattern of FIG. 3 .
  • the second gate in chip area 200 is located within cell 28 , the two gates will share only one common neighboring cell; cell 19 .
  • the correlation coefficient computed for two gates by the outputs of Equation 1 is more likely to be larger in the case that the two gates are in cells 18 and 19 than in the case that the two gates are in cells 18 and 28 , simply because the equations will contain a greater number of common terms in the first case than in the second.
  • d is the distance between two gates in chip area 200 ( FIG. 7 )
  • s is the radius of the grid cell
  • a G , a r , a sd , and a ld are the sensitivities to global variation, independent variation, short distance spatial variation, and long distance spatial variation, respectively.
  • Equation 2 represents the correlation between the spatially correlated parameter for a particular gate and itself, which must be 1.0.
  • Equation 3 represents the case in which both gates are located within the same cell, in which case the correlation coefficient ⁇ is a function of each of global variation, short distance spatial variation, and long distance spatial variation. In this case, the average distance between the two gates is between 0 and s.
  • Equation 7 represents the case in which the gates share no common neighbors. In this case, the correlation coefficient is a function only of global variation in the process parameter.
  • Equations 3-6 represent cases in which the distances between the gates are intermediate those of Equations 2 and 7.
  • Equations 2-7 it is possible to approximate any correlation function.
  • Coefficients a G and a r are computed directly from the values of the correlation function at distances of zero and infinity.
  • the ratio a ld /a sd and s are then computed by minimizing the quadratic error of the approximation.
  • FIGS. 8 A-B show exponential and Gaussian correlation functions, respectively, approximated by this technique. As would be recognized by one having skill in the art, other methods of approximation are possible and within the scope of the present invention.
  • first degree neighboring cells are included in calculations such as those above.
  • Including additional neighboring cells increases the accuracy of such calculations, but also significantly increases their complexity and computing cost. Nevertheless, the inclusion of such additional neighboring cells may be desirable in some circumstances and is within the scope of the present invention.
  • Equation 1 Substituting the computed values for s, a G , a r , a sd , and a ld , back into Equation 1 we obtain the parameterized model of the spatially correlated parameter, expressed through the random variable modeling the global variation ⁇ X G , the random variable modeling the independent variation ⁇ X r , the random variable associated with the cell of interest ⁇ X c , and the random variables associated with the first degree neighboring cells of the cell of interest ⁇ X n,1 through ⁇ X n,6 .
  • the gate delay model expressed as a function of independent sources of variation in such a manner that it correctly models spatial variation of its spatially correlated parameter.
  • the gate delay model expressed through independent source of variation is suitable for parameterized SSTA.
  • SSTA generally includes at least three input values: (1) a circuit netlist, (2) timing assertions and (3) parameterized delay models expressed through independent Gaussian sources of variations.
  • the first, second are assumed to be known or determinable.
  • the third input is computed from the given parameterized gate delay model expressed through spatially correlated parameters and the given correlation functions of the spatially correlated parameters, as is described above in accordance with this invention.
  • the indexing scheme shown is convenient for quickly determining the index of a cell of interest (e.g., a cell containing a gate), given the coordinates and indices of neighboring cells. For this reason, it is convenient to view grid 100 as comprising horizontal rows R and vertical columns C of hexagonal cells. If the number of cells in each row (i.e., eight) is denoted as n r , then each row of cells begins with a cell numbered 0, n r , 2n r , 3n r , etc.
  • FIGS. 9 A-B it is possible to construct an algorithm for computing the index of a cell of interest by constructing a rectangular grid 300 overlaying hexagonal grid 100 , such that each rectangular cell of rectangular grid 300 encloses four halves of four hexagonal cells.
  • a hexagonal cell of interest 110 it is possible to compute the index of a hexagonal cell of interest 110 .
  • the horizontal and vertical indices of rectangular cell 300 A are first calculated from the horizontal and vertical periods of rectangular grid 300 .
  • the location of a gate or other chip component within rectangular cell 300 A is determined by transforming its coordinates in chip area 200 ( FIG. 7 ) to the local coordinates of rectangular cell 300 A and comparing the local coordinates to the equations of the lines dividing rectangular cell 300 A (i.e., the lines forming the borders of the four hexagonal cells). This allows a determination of which of the four hexagonal cells making up rectangular cell 300 A contains the gate or other chip component.
  • the indices of its neighboring cells must also be determined. However, due to the “zigzagging” nature of the rows of hexagonal grid 100 , the method for doing so is different, based on whether the cell of interest 110 is in an odd-numbered or an even-numbered column. Referring now to FIGS. 10 A-B, two indexing patterns are shown for hexagonal grid 100 . In FIG. 10A , the cell of interest 110 is in an odd-numbered column, i.e., the column C ( FIG. 7 ) begins with an odd number.
  • the index of neighboring cell 120 A is equal to i+n r +1, where n r is the number of cells in each row of hexagonal grid 100 , as described above. For example, returning to FIG. 7 , if the cell of interest 110 is the hexagonal cell having an index of “19,” then neighboring cell 120 A has an index equal to 19+8+1, or 28. Similarly, neighboring cell 120 C has an index equal to 19+1, or 20. The remaining neighboring cells may be indexed according to the indexing pattern of FIG. 10A .
  • the indexing pattern of neighboring cells follows that shown in FIG. 10B .
  • the cell of interest 110 is the hexagonal cell having an index of “20,” then neighboring cell 120 A has an index equal to 20+1, or 21.
  • neighboring cell 120 C has an index equal to 20 ⁇ 8+1, or 13.
  • the remaining neighboring cells may be indexed according to the indexing pattern of FIG. 10B .
  • a flow diagram is shown of an illustrative method according to the invention. Each step of the illustrated method is described above.
  • a grid 100 ( FIG. 2 ) is constructed over a chip area 200 ( FIG. 7 ).
  • grid 100 may include cells of any number of shapes, a hexagonal shape being preferred.
  • an independent random variable is associated with each cell of grid 100 .
  • a spatially-correlated process parameter is expressed as a linear combination of the random variables of a cell of interest (e.g., a cell containing a gate), its neighboring cells, global variation and independently random variation, according to Equation 1, above.
  • the coefficients of the linear combination are computed in such a manner as to approximate the user-provided spatial correlation function ( FIG. 1 ).
  • neighboring cells of any degree may be used, with the use of only first degree neighboring cells being preferred.
  • the use of more distant neighboring cells provides some increase in accuracy, but with a corresponding increase in computational complexity and expense.
  • the expression(s) calculated at step S 3 are substituted into a gate delay model. Any known or later-developed gate delay model may be employed at step S 4 , a first-order gate delay model being preferred.
  • ⁇ X i is the variation of parameter X i , equal to X i ⁇ x i,0 , where x i,0 is the mean value of X i , a i is the sensitivity of the gate delay to the parameter variation ⁇ X i , ⁇ R a is a random variable responsible for uncorrelated variation of the gate delay, and a n+1 is the sensitivity of the gate delay to uncorrelated variations ⁇ R a .
  • One or more parameters ⁇ X i may be spatially correlated, each according to a user-provided spatial correlation function. In the case of multiple spatially correlated parameters, there is no requirement that their respective grid shapes or grid sizes be the same.
  • timing results are reported back to the user or the calling program by transforming results back to being in terms of the original (physical) spatially correlated parameters by simply taking the sum of the squares of the sensitivities of timing results with respect to the grid random variables and global random variable of this parameter in accordance with the equation below:
  • FIG. 12 shows an illustrative system 10 for accommodating spatially-correlated variation in one or more process parameters during statistical timing of a circuit.
  • system 10 includes a computer infrastructure 12 that can perform the various process steps described herein for accommodating spatially-correlated variation in one or more process parameters.
  • computer infrastructure 12 is shown including a computer system 14 that comprises an accommodation system 40 , which enables computer system 14 to accommodate spatially-correlated variation in one or more process parameters by performing the process steps of the invention.
  • Computer system 14 is shown including a processing unit 20 , a memory 22 , input/output (I/O) interfaces 26 , and a bus 24 . Further, computer system 14 is shown in communication with external devices 28 and a storage system 30 . As is known in the art, in general, processing unit 20 executes computer program code, such as accommodation system 40 , that is stored in memory 22 and/or storage system 30 . While executing computer program code, processing unit 20 can read and/or write data from/to memory 22 , storage system 30 , and/or I/O interfaces 26 . Bus 24 provides a communication link between each of the components in computer system 14 . External devices 28 can include any device that enables a user (not shown) to interact with computer system 14 or any device that enables computer system 14 to communicate with one or more other computer systems.
  • computer system 14 can comprise any general-purpose computing article of manufacture capable of executing computer program code installed by a user (e.g., a personal computer, server, handheld device, etc.).
  • computer system 14 and accommodation system 40 are only representative of various possible computer systems that may perform the various process steps of the invention.
  • computer system 14 can comprise any specific purpose computing article of manufacture comprising hardware and/or computer program code for performing specific functions, any computing article of manufacture that comprises a combination of specific purpose and general purpose hardware/software, or the like.
  • the program code and hardware can be created using standard programming and engineering techniques, respectively.
  • computer infrastructure 12 is only illustrative of various types of computer infrastructures for implementing the invention.
  • computer infrastructure 12 comprises two or more computer systems (e.g., a server cluster) that communicate over any type of wired and/or wireless communications link, such as a network, a shared memory, or the like, to perform the various process steps of the invention.
  • the communications link comprises a network
  • the network can comprise any combination of one or more types of networks (e.g., the Internet, a wide area network, a local area network, a virtual private network, etc.).
  • communications between the computer systems may utilize any combination of various types of transmission techniques.
  • accommodation system 40 enables computer system 14 to accommodate spatially-correlated variation in one or more process parameters during statistical timing of a circuit.
  • accommodation system 40 is shown including a grid system 42 , an independent variable system 44 , an expression system 46 , a gate delay system 48 , and a statistical static timing analysis (SSTA) system 50 .
  • SSTA statistical static timing analysis
  • Other system components 52 may also be included in accommodation system 40 .
  • These may include any component capable of adding additional functionality to accommodation system 40 and/or computer infrastructure 12 .
  • FIG. 12 can be implemented independently, combined, and/or stored in memory for one or more separate computer systems 14 that communicate over a network. Further, it is understood that some of the systems and/or functionality may not be implemented, or additional systems and/or functionality may be included as part of system 10 .
  • the invention provides a computer-readable medium that includes computer program code to enable a computer infrastructure to accommodate spatially-correlated variation in one or more process parameters.
  • the computer-readable medium includes program code, such as accommodation system 40 , that implements each of the various process steps of the invention. It is understood that the term “computer-readable medium” comprises one or more of any type of physical embodiment of the program code.
  • the computer-readable medium can comprise program code embodied on one or more portable storage articles of manufacture (e.g., a compact disc, a magnetic disk, a tape, etc.), on one or more data storage portions of a computer system, such as memory 22 and/or storage system 30 (e.g., a fixed disk, a read-only memory, a random access memory, a cache memory, etc.), and/or as a data signal traveling over a network (e.g., during a wired/wireless electronic distribution of the program code).
  • portable storage articles of manufacture e.g., a compact disc, a magnetic disk, a tape, etc.
  • data storage portions of a computer system such as memory 22 and/or storage system 30 (e.g., a fixed disk, a read-only memory, a random access memory, a cache memory, etc.), and/or as a data signal traveling over a network (e.g., during a wired/wireless electronic distribution of the program code).
  • storage system 30
  • the invention provides a business method that performs the process steps of the invention on a subscription, advertising, and/or fee basis. That is, a service provider could offer to accommodate spatially-correlated variation in one or more process parameters, as described above.
  • the service provider can create, maintain, support, etc., a computer infrastructure, such as computer infrastructure 12 , that performs the process steps of the invention for one or more customers.
  • the service provider can receive payment from the customer(s) under a subscription and/or fee agreement and/or the service provider can receive payment from the sale of advertising space to one or more third parties.
  • the invention provides a method of generating a system for accommodating spatially-correlated variation in one or more process parameters.
  • a computer infrastructure such as computer infrastructure 12
  • one or more systems for performing the process steps of the invention can be obtained (e.g., created, purchased, used, modified, etc.) and deployed to the computer infrastructure.
  • each system can comprise one or more of (1) installing program code on a computer system, such as computer system 14 , from a computer-readable medium; (2) adding one or more computer systems to the computer infrastructure; and (3) incorporating and/or modifying one or more existing systems of the computer infrastructure, to enable the computer infrastructure to perform the process steps of the invention.
  • program code and “computer program code” are synonymous and mean any expression, in any language, code or notation, of a set of instructions intended to cause a computer 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 (b) reproduction in a different material form.
  • program code can be embodied as one or more types of program products, such as an application/software program, component software/a library of functions, an operating system, a basic I/O system/driver for a particular computing and/or I/O device, and the like.

Abstract

The invention provides a method, system, and program product for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit. In one embodiment, the method includes dividing an area of the circuit into a plurality of grid cells; associating an independent random variable with each of the plurality of grid cells; and expressing at least one spatially-correlated parameter of a first grid cell as a function of the random variables associated with the first grid cell and at least one neighboring grid cell.

Description

    BACKGROUND OF THE INVENTION
  • 1. Technical Field
  • The invention relates generally to statistical timing of a circuit, and more particularly, to a method, system, and program product for accommodating spatially-correlated variation in one or more process parameters during statistical timing of a circuit.
  • 2. Background Art
  • As the sizes of transistors and interconnects in integrated circuits have decreased, variabilities in process parameters have led to corresponding increases in the difficulty of modeling and predicting circuit performance. Variations in process parameters can be inter-die variations (i.e., variations from die to die) or intra-die variations (i.e., variations within a single chip). Inter-die variations affect all components on a single chip similarly, while intra-die variations affect similar components on a single chip differently.
  • Statistical static timing analysis (SSTA) has become a widely-recognized technique for predicting statistical timing characteristics of digital circuits. Various approaches to SSTA are known, and include path-based, block-based, bounding, parameterized, and Monte-Carlo methods. A particularly promising technique is parameterized block-based SSTA, which models variation in gate delays, arrival times, and required times as a linear function of Gaussian independent sources of variation in process parameters. As such, parameterized block-based SSTA accommodates both independent and globally-correlated variations with speed and accuracy. The technique has also been used with non-Gaussian distributions.
  • However, the approaches to parameterized block-based SSTA to date are not problem-free. For example, the quad tree approach of Agarwal et al., ACM/IEEE Asia-Pacific Design Automation Conference (ASP-DAC), January 2003, pp. 271-276, assumes that a gate delay is represented as a linear combination of independent variables corresponding to cells of hierarchical rectangular grids, wherein the overlap of the grids models spatial correlation of the gate delays. This approach assumes that the coefficients of this linear combination are known. It is not clear, however, how these coefficients are computed in modeling a given spatial variation.
  • The approach of Chang et al., Proceedings of the IEEE/ACM International Conference on Computer-Aided Design, 2003, pp. 621-625, is also unsatisfactory. Using a rectangular grid superimposed onto a circuit, this approach assumes that a correlation matrix is known for gates situated in different grid cells. Principal component analysis (PCA) is then used to represent gate delays as linear functions of uncorrelated parameters. However, such an approach presents computational difficulties. For example, in a 10 mm by 10 mm chip having an effective correlation distance of 100 microns, a grid according to the approach of Chang et al. requires an eigenvalue decomposition (EVD) or singular value decomposition (SVD) of a 10,000 by 10,000 covariance matrix. Such decomposition is computationally expensive.
  • In addition, in the example above, gates separated by 200 microns or more are not correlated. As a result, modeling variation in such a chip requires at least 2500 (i.e., 50 by 50) independent random variables. Due to the number of uncorrelated variables, PCA cannot reduce the number of independent variables to fewer than 2500. Thus, using the PCA approach of Chang et al., large chips having relatively small correlation distances require a very large matrix and the computation of a prohibitively large number of eigenvalues and eigenvectors.
  • Other known approaches, whereby correlation coefficients are computed directly from a correlation matrix, are similarly unsatisfactory. First, such approaches require multiplication of the correlation matrix and canonical forms. This is both computationally expensive and adversely affects the efficiency of parameterized block-based SSTA. Second, the use of linear forms of delays, arrival times, and required times with correlated terms complicates other necessary operations, such as the computation of standard deviations, controlling and pruning small terms, reporting results, etc.
  • Accordingly, a need exists for a method for accommodating spatially-correlated variation in one or more process parameters during statistical timing of a circuit that does not suffer the deficiencies of the approaches described above.
  • SUMMARY OF THE INVENTION
  • The invention provides a method, system, and program product for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit. In one embodiment, the method includes dividing an area of the circuit into a plurality of grid cells; associating an independent random variable with each of the plurality of grid cells; and expressing at least one spatially-correlated parameter of a first grid cell as a function of the independent random variables associated with the first grid cell and at least one neighboring grid cell.
  • A first aspect of the invention provides a method for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit, the method comprising: dividing an area of the circuit into a plurality of grid cells; associating an independent random variable with each of the plurality of grid cells; and expressing at least one spatially-correlated parameter of a first grid cell as a function of the independent random variables associated with the first grid cell and at least one neighboring grid cell.
  • A second aspect of the invention provides a system for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit, the system comprising: a system for dividing an area of the circuit into a plurality of grid cells; a system for associating an independent random variable with each of the plurality of grid cells; and a system for expressing at least one spatially-correlated parameter of a first grid cell as a function of the independent random variables associated with the first grid cell and at least one neighboring grid cell.
  • A third aspect of the invention provides a program product stored on a computer-readable medium, which when executed, accommodates spatially-correlated variation in a process parameter during statistical timing of a circuit, the program product comprising: program code for dividing an area of the circuit into a plurality of grid cells; program code for associating an independent random variable with each of the plurality of grid cells; and program code for expressing at least one spatially-correlated parameter of a first grid cell as a function of the independent random variables associated with the first grid cell and at least one neighboring grid cell.
  • A fourth aspect of the invention provides a method for deploying an application for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit, comprising: providing a computer infrastructure being operable to: divide an area of the circuit into a plurality of grid cells; associate an independent random variable with each of the plurality of grid cells; and express at least one spatially-correlated parameter of a first grid cell as a function of the independent random variables associated with the first grid cell and at least one neighboring grid cell.
  • A fifth aspect of the invention provides computer software embodied in a propagated signal for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit, the computer software comprising instructions to cause a computer system to perform the following functions: divide an area of the circuit into a plurality of grid cells; associate an independent random variable with each of the plurality of grid cells; and express at least one spatially-correlated parameter of a first grid cell as a function of the independent random variables associated with the first grid cell and at least one neighboring grid cell.
  • A sixth aspect of the invention provides a business method for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit.
  • The illustrative aspects of the present invention are designed to solve the problems herein described and other problems not discussed, which are discoverable by a skilled artisan.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings that depict various embodiments of the invention, in which:
  • FIG. 1 shows a graph of a correlation coefficient as a function of a distance between circuit components.
  • FIG. 2 shows an illustrative hexagonal grid pattern according to the invention.
  • FIGS. 3-6 show various spatial relationships between cells in the hexagonal grid pattern of FIG. 2.
  • FIG. 7 shows an indexed hexagonal grid pattern overlaid on a chip area.
  • FIGS. 8A-B show exponential and Gaussian correlation functions, respectively, approximated according to the invention.
  • FIGS. 9A-B show general and detailed views, respectively, of a chip area overlaid with hexagonal and rectangular grids.
  • FIGS. 10A-B show indexing patterns for a hexagonal grid.
  • FIG. 11 shows a flow diagram of an illustrative method according to the invention.
  • FIG. 12 shows a block diagram of an illustrative system according to the invention.
  • It is noted that the drawings of the invention are not to scale. The drawings are intended to depict only typical aspects of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements between the drawings.
  • DETAILED DESCRIPTION
  • As indicated above, the invention provides a method, system, and program product for accommodating spatially-correlated variation in one or more process parameters during statistical timing of a circuit.
  • Turning to the drawings, FIG. 1 shows a graph of variation in a process parameter as a function of the distance between two circuit components (e.g., transistors, etc.). As can be seen, as distance (s) increases, the correlation coefficient R(s) decreases. However, even when the distance between the circuit components is very small, R(s) does not necessarily equal 1. This is due to an independent (uncorrelated) component of the variation in the process parameter (i.e., a component responsible for independent or uncorrelated variation), represented by portion A, that causes R(s) to be less than 1, even when two circuit components are adjacent to each other. At the same time, even as the distance between the components increases to a very great distance, R(s) does not necessarily decrease to zero. This is due to a global component of the variation in the process parameter, represented by portion C, which affects all circuit components similarly, regardless of the distance between them. Methods of modeling and accommodating the independent and global components of process parameter variation are known and are referenced here only as they relate to the spatially-correlated component of process parameter variation, represented by portion B, the object of the present invention.
  • Referring now to FIG. 2, a grid 100 according to the invention is shown, suitable for superimposition onto a chip. As noted above, the superimposition of a grid onto a chip is known in the art. Agarwal et al. and Chang et al. do so. However, unlike known methods, which generally utilize rectangular or other anisotropic shapes, the grid 100 of the present invention preferably includes hexagonal cells 110, 120A, 130A, 140A. The use of hexagonal cells ensures that all neighboring cells are in the same relative position to the central cell and therefore are more suitable for modeling isotropic spatial variation. That is, the relationships of each cell to its neighboring cells in a grid of hexagonal cells are identical. As noted, the cells of the grid 100 of the present invention are preferably hexagonal, although this is not necessary. Other grids consisting of isotropic shapes or even anisotropic shapes may be employed in practicing the invention. The grid may be regular or irregular, hierarchical or flat.
  • FIG. 2 shows various spatially-defined relationships among the cells of grid 100. Beginning with a cell of interest 110, other cells in grid 100 are defined according to their distance from cell 110. Cell 110 may be of interest, for example, because it contains a gate, the delay of which is to be modeled for timing purposes. Any other gate in cell 110 is said to be a zero-degree neighbor of the gate of interest. A ring 120 of first degree neighboring cells is located immediately adjacent to cell 110, with each cell of ring 120 (e.g., cell 120A) contacting cell 110. Next, a ring 130 of second degree neighboring cells is located immediately adjacent to ring 120, each cell of ring 130 (e.g., cell 130A) contacting a cell of ring 120 and being separated from cell 110 by an intervening cell (e.g., 120A). Next, a ring 140 of third degree neighboring cells is located immediately adjacent to ring 130, each cell of ring 140 (e.g., cell 140A) contacting a cell of ring 130 and being separated from cell 110 by two intervening cells (e.g., 120A, 130A). This scheme may be continued for any number of degrees of neighboring cells. As will be described in greater detail below, it is the modeling of the relationship between two or more cells of interest, and, in particular, the neighboring cells that they share, that enables the accommodation of spatially-correlated variation according to the present invention. For example, in FIG. 2, if cell 110 contained two gates, each gate would share with the other gate one common zero-degree cell (cell 110 itself) and six common first degree immediately neighboring cells (the six cells of ring 120).
  • FIGS. 3-6 each show grid 100 and a relationship between two distinct cells of interest (i.e., 110, 112). In FIG. 3, the first cell of interest 110 is located immediately adjacent to the second cell of interest 112. As such, each cell of interest 110, 112 shares four common first degree neighboring cells with the other: its own cell (i.e., 110 or 112), the other cell of interest (i.e., 112 or 110), and the two first degree neighboring cells that both share (i.e., 120A and 120B). Similarly, in FIG. 4, each cell of interest 110, 112 shares two common first degree neighboring cells, 120A and 120B. However, here, the two cells of interest 110, 112 are not first degree neighboring cells of each other. Accordingly, in FIG. 4, the cells of interest 110, 112 share only two first degree neighboring cells. In FIG. 5, the cells of interest 110, 112 share only one common first degree neighboring cell, 120A. In FIG. 6, the cells of interest 110, 112 share no common first degree neighboring cells.
  • These relationships between cells of interest provide a useful way of modeling spatially-correlated variation in a process parameter. Simply put, the closer two chip components are to each other, the more likely it is that they will share similar characteristics, each having been affected to a similar degree by such spatially-correlated variation. Contrarily, the further apart two components are, the less likely it is that they will have been similarly affected by spatially-correlated variation in a process parameter. As shown in FIGS. 2-6, the number of common neighboring cells shared by cells of interest (e.g., cells containing gates) is related to a distance between those cells.
  • Physical parameters exhibiting spatial correlation such as effective transistor channel length are expressed as a linear combination of the grid random variables in such a manner as to represent as closely as possible the user-provided spatial correlation profile shown in FIG. 1. Details of a preferred method of choosing the coefficients of the linear combination are provided below.
  • Referring now to FIG. 7, a grid 100 of hexagonal cells is shown superposed atop a chip area 200. Each cell is indexed to permit its individual identification. Additional benefits of such indexing will be described below. Grid 100 is slightly larger than chip area 200, such that grid 100 contains all first degree neighboring cells of each cell falling, entirely or in part, within chip area 200. More or fewer cells may similarly be provided without departing from the scope of the present invention. The cells of grid 100 are arranged in columns C and rows R, although other arrangements are also possible.
  • Spatial correlation in process parameter variation may be modeled using a grid such as that in FIG. 7. To do so, an independent random variable is first associated with each cell of grid 100. Next, the variation in a process parameter ΔA is expressed as a linear combination of the random variables associated with a cell of interest and its neighboring cells, according to the following equation:
    ΔA=a G ΔX G +a r ΔX r +a sd ΔX c +a ldX n,1 +ΔX n,2 +ΔX n,3 +ΔX n,4 +ΔX n,5 +ΔX n,6)  (Eq. 1)
    where aG is the sensitivity of the process parameter to global variation, ΔXG is the random variable modeling the global variation, ar is the sensitivity of the process parameter to independent variation, ΔXr is the random variable modeling the independent variation, asd is the sensitivity of the process parameter to short distance spatial variation, ΔXc is the random variable associated with the cell of interest, ald is the sensitivity of the process parameter to long distance spatial variation, and ΔXn,1 through ΔXn,6 are the random variables associated with the first degree neighboring cells of the cell of interest. As noted above, methods of modeling and accommodating global and independent variation are known in the art and will not be further discussed.
  • Still referring to FIG. 7, the following example will illustrate the use of Equation 1, above, in the expression of spatially-correlated variation in a process parameter affecting chip area 200. In the case that chip area 200 contains a gate (not shown) falling within cell 18 of grid 100, the independent random variable associated with cell 18 is substituted for ΔXc and the independent random variables associated with cells 9, 10, 11, 17, 19, and 26 are substituted for ΔXn,1 through ΔXn,6.
  • Still referring to FIG. 7, as will be apparent to one having skill in the art, gates in chip area 200 that are closer to the gate in cell 18 are more likely to share commonly neighboring cells with the gate in cell 18 than are gates more distant from the gate in cell 18. For example, in the case that a second gate (not shown) in chip area 200 is located within cell 19, the gates in cells 18 and 19 share a number of commonly neighboring cells. Specifically, they share neighboring cells 11 and 26, as well as their own cells, 18 and 19, for a total of four common neighboring cells, similar to the pattern of FIG. 3. In contrast, if the second gate in chip area 200 is located within cell 28, the two gates will share only one common neighboring cell; cell 19. As will be understood by one skilled in the art, the correlation coefficient computed for two gates by the outputs of Equation 1 is more likely to be larger in the case that the two gates are in cells 18 and 19 than in the case that the two gates are in cells 18 and 28, simply because the equations will contain a greater number of common terms in the first case than in the second.
  • From Equation 1 we express values of the spatial correlation function through the sensitivity of the process parameter to global variation, the sensitivity of the process parameter to independent variation, the sensitivity of the process parameter to short distance spatial variation, and the sensitivity of the process parameter to long distance spatial variation as follows:
    ρ(0)=1=a sd 2+6a ld 2 +a G 2 +a r 2  (Eq. 2)
    ρ(0<d<s)=a sd 2+6a ld 2 +a G 2  (Eq. 3)
    ρ(s<d<3s)=2a sd a ld+2a ld 2 +a G 2  (Eq. 4)
    ρ(2.31s<d<4.26s)=2a ld 2+aG 2  (Eq. 5)
    ρ(3s<d<5s)=a ld 2 +a G 2  (Eq. 6)
    ρ(5s<d)=a G 2  (Eq. 7)
    where d is the distance between two gates in chip area 200 (FIG. 7), s is the radius of the grid cell, and aG, ar, asd, and ald are the sensitivities to global variation, independent variation, short distance spatial variation, and long distance spatial variation, respectively. Thus, Equation 2 represents the correlation between the spatially correlated parameter for a particular gate and itself, which must be 1.0. Equation 3 represents the case in which both gates are located within the same cell, in which case the correlation coefficient ρ is a function of each of global variation, short distance spatial variation, and long distance spatial variation. In this case, the average distance between the two gates is between 0 and s. Equation 7, on the other hand, represents the case in which the gates share no common neighbors. In this case, the correlation coefficient is a function only of global variation in the process parameter. Equations 3-6 represent cases in which the distances between the gates are intermediate those of Equations 2 and 7.
  • Using Equations 2-7 and selecting proper values for s, aG, ar, asd, and ald, it is possible to approximate any correlation function. Coefficients aG and ar are computed directly from the values of the correlation function at distances of zero and infinity. The ratio ald/asd and s are then computed by minimizing the quadratic error of the approximation. FIGS. 8A-B show exponential and Gaussian correlation functions, respectively, approximated by this technique. As would be recognized by one having skill in the art, other methods of approximation are possible and within the scope of the present invention.
  • As described herein, only first degree neighboring cells are included in calculations such as those above. Including additional neighboring cells (i.e., second degree, third degree, etc.) increases the accuracy of such calculations, but also significantly increases their complexity and computing cost. Nevertheless, the inclusion of such additional neighboring cells may be desirable in some circumstances and is within the scope of the present invention.
  • Substituting the computed values for s, aG, ar, asd, and ald, back into Equation 1 we obtain the parameterized model of the spatially correlated parameter, expressed through the random variable modeling the global variation ΔXG, the random variable modeling the independent variation ΔXr, the random variable associated with the cell of interest ΔXc, and the random variables associated with the first degree neighboring cells of the cell of interest ΔXn,1 through ΔXn,6. Substituting this model into the gate delay model for the spatially correlated parameter, we obtain the gate delay model expressed as a function of independent sources of variation in such a manner that it correctly models spatial variation of its spatially correlated parameter. As it is known from prior art, the gate delay model expressed through independent source of variation is suitable for parameterized SSTA.
  • As is known in the art, SSTA generally includes at least three input values: (1) a circuit netlist, (2) timing assertions and (3) parameterized delay models expressed through independent Gaussian sources of variations. With respect to the present invention, the first, second, are assumed to be known or determinable. The third input is computed from the given parameterized gate delay model expressed through spatially correlated parameters and the given correlation functions of the spatially correlated parameters, as is described above in accordance with this invention.
  • Returning to FIG. 7, the indexing scheme shown is convenient for quickly determining the index of a cell of interest (e.g., a cell containing a gate), given the coordinates and indices of neighboring cells. For this reason, it is convenient to view grid 100 as comprising horizontal rows R and vertical columns C of hexagonal cells. If the number of cells in each row (i.e., eight) is denoted as nr, then each row of cells begins with a cell numbered 0, nr, 2nr, 3nr, etc.
  • Referring to FIGS. 9A-B, it is possible to construct an algorithm for computing the index of a cell of interest by constructing a rectangular grid 300 overlaying hexagonal grid 100, such that each rectangular cell of rectangular grid 300 encloses four halves of four hexagonal cells. Taking an individual rectangular cell 300A, as shown in FIG. 9B, it is possible to compute the index of a hexagonal cell of interest 110. To do so, the horizontal and vertical indices of rectangular cell 300A are first calculated from the horizontal and vertical periods of rectangular grid 300. Next, index i of the left hexagonal cell 110 is computed using the following formula:
    i=i vr ×n r+2×i h  (Eq. 8)
    where ivr and ih are the vertical and horizontal indices, respectively, of rectangular cell 300A and nr is the number of hexagonal cells in each row of hexagonal grid 100.
  • Next, the location of a gate or other chip component within rectangular cell 300A is determined by transforming its coordinates in chip area 200 (FIG. 7) to the local coordinates of rectangular cell 300A and comparing the local coordinates to the equations of the lines dividing rectangular cell 300A (i.e., the lines forming the borders of the four hexagonal cells). This allows a determination of which of the four hexagonal cells making up rectangular cell 300A contains the gate or other chip component.
  • Once the cell of interest 110 (i.e., the hexagonal cell containing the gate or other chip component) is determined, the indices of its neighboring cells must also be determined. However, due to the “zigzagging” nature of the rows of hexagonal grid 100, the method for doing so is different, based on whether the cell of interest 110 is in an odd-numbered or an even-numbered column. Referring now to FIGS. 10A-B, two indexing patterns are shown for hexagonal grid 100. In FIG. 10A, the cell of interest 110 is in an odd-numbered column, i.e., the column C (FIG. 7) begins with an odd number. In such a case, the index of neighboring cell 120A is equal to i+nr+1, where nr is the number of cells in each row of hexagonal grid 100, as described above. For example, returning to FIG. 7, if the cell of interest 110 is the hexagonal cell having an index of “19,” then neighboring cell 120A has an index equal to 19+8+1, or 28. Similarly, neighboring cell 120C has an index equal to 19+1, or 20. The remaining neighboring cells may be indexed according to the indexing pattern of FIG. 10A.
  • If, however, the cell of interest 110 is in an even-numbered column, the indexing pattern of neighboring cells follows that shown in FIG. 10B. Referring again to FIG. 7, if the cell of interest 110 is the hexagonal cell having an index of “20,” then neighboring cell 120A has an index equal to 20+1, or 21. Similarly, neighboring cell 120C has an index equal to 20−8+1, or 13. The remaining neighboring cells may be indexed according to the indexing pattern of FIG. 10B.
  • Referring now to FIG. 11, a flow diagram is shown of an illustrative method according to the invention. Each step of the illustrated method is described above. First, at step S1, a grid 100 (FIG. 2) is constructed over a chip area 200 (FIG. 7). As explained above, grid 100 may include cells of any number of shapes, a hexagonal shape being preferred. Next, at step S2, an independent random variable is associated with each cell of grid 100. At step S3, a spatially-correlated process parameter is expressed as a linear combination of the random variables of a cell of interest (e.g., a cell containing a gate), its neighboring cells, global variation and independently random variation, according to Equation 1, above. The coefficients of the linear combination are computed in such a manner as to approximate the user-provided spatial correlation function (FIG. 1). As explained above, neighboring cells of any degree may be used, with the use of only first degree neighboring cells being preferred. The use of more distant neighboring cells provides some increase in accuracy, but with a corresponding increase in computational complexity and expense. Next, at step S4, the expression(s) calculated at step S3 are substituted into a gate delay model. Any known or later-developed gate delay model may be employed at step S4, a first-order gate delay model being preferred. A particularly preferred first-order gate delay model may be expressed according to the following equation: D = a 0 + i = 1 n a i · Δ X i + a n + 1 Δ R a , ( Eq . 9 )
    where a0 is the mean value of the gate delay, ΔXi is the variation of parameter Xi, equal to Xi−xi,0, where xi,0 is the mean value of Xi, ai is the sensitivity of the gate delay to the parameter variation ΔXi, ΔRa is a random variable responsible for uncorrelated variation of the gate delay, and an+1 is the sensitivity of the gate delay to uncorrelated variations ΔRa. One or more parameters ΔXi may be spatially correlated, each according to a user-provided spatial correlation function. In the case of multiple spatially correlated parameters, there is no requirement that their respective grid shapes or grid sizes be the same. At step S5, statistical static timing analysis is performed according to known methods, in terms of independent random variables only, and the timing results produced in terms of these independent random variables. Finally, at step S6, timing results are reported back to the user or the calling program by transforming results back to being in terms of the original (physical) spatially correlated parameters by simply taking the sum of the squares of the sensitivities of timing results with respect to the grid random variables and global random variable of this parameter in accordance with the equation below: Timing result = mean + a 0 Δ X c + i = 1 n a i Δ X gi + other parameters + = mean + ( a 0 2 + i = 1 n a i 2 ) 1 / 2 Δ X + other parameters + , ( Eq . 10 )
    where a0 is the sensitivity to the global random variable ΔXc, ai is the sensitivity to the grid random variables ΔXgi and ΔX is the original (physical) spatially correlated parameter in terms of which results are reported.
  • FIG. 12 shows an illustrative system 10 for accommodating spatially-correlated variation in one or more process parameters during statistical timing of a circuit. To this extent, system 10 includes a computer infrastructure 12 that can perform the various process steps described herein for accommodating spatially-correlated variation in one or more process parameters. In particular, computer infrastructure 12 is shown including a computer system 14 that comprises an accommodation system 40, which enables computer system 14 to accommodate spatially-correlated variation in one or more process parameters by performing the process steps of the invention.
  • Computer system 14 is shown including a processing unit 20, a memory 22, input/output (I/O) interfaces 26, and a bus 24. Further, computer system 14 is shown in communication with external devices 28 and a storage system 30. As is known in the art, in general, processing unit 20 executes computer program code, such as accommodation system 40, that is stored in memory 22 and/or storage system 30. While executing computer program code, processing unit 20 can read and/or write data from/to memory 22, storage system 30, and/or I/O interfaces 26. Bus 24 provides a communication link between each of the components in computer system 14. External devices 28 can include any device that enables a user (not shown) to interact with computer system 14 or any device that enables computer system 14 to communicate with one or more other computer systems.
  • In any event, computer system 14 can comprise any general-purpose computing article of manufacture capable of executing computer program code installed by a user (e.g., a personal computer, server, handheld device, etc.). However, it is understood that computer system 14 and accommodation system 40 are only representative of various possible computer systems that may perform the various process steps of the invention. To this extent, in other embodiments, computer system 14 can comprise any specific purpose computing article of manufacture comprising hardware and/or computer program code for performing specific functions, any computing article of manufacture that comprises a combination of specific purpose and general purpose hardware/software, or the like. In each case, the program code and hardware can be created using standard programming and engineering techniques, respectively.
  • Similarly, computer infrastructure 12 is only illustrative of various types of computer infrastructures for implementing the invention. For example, in one embodiment, computer infrastructure 12 comprises two or more computer systems (e.g., a server cluster) that communicate over any type of wired and/or wireless communications link, such as a network, a shared memory, or the like, to perform the various process steps of the invention. When the communications link comprises a network, the network can comprise any combination of one or more types of networks (e.g., the Internet, a wide area network, a local area network, a virtual private network, etc.). Regardless, communications between the computer systems may utilize any combination of various types of transmission techniques.
  • As discussed above, accommodation system 40 enables computer system 14 to accommodate spatially-correlated variation in one or more process parameters during statistical timing of a circuit. To this extent, accommodation system 40 is shown including a grid system 42, an independent variable system 44, an expression system 46, a gate delay system 48, and a statistical static timing analysis (SSTA) system 50. The operation of each of these systems is described above. Other system components 52 may also be included in accommodation system 40. These may include any component capable of adding additional functionality to accommodation system 40 and/or computer infrastructure 12. However, it is understood that some of the various systems shown in FIG. 12 can be implemented independently, combined, and/or stored in memory for one or more separate computer systems 14 that communicate over a network. Further, it is understood that some of the systems and/or functionality may not be implemented, or additional systems and/or functionality may be included as part of system 10.
  • While shown and described herein as a method and system for accommodating spatially-correlated variation in one or more process parameters, it is understood that the invention further provides various alternative embodiments. For example, in one embodiment, the invention provides a computer-readable medium that includes computer program code to enable a computer infrastructure to accommodate spatially-correlated variation in one or more process parameters. To this extent, the computer-readable medium includes program code, such as accommodation system 40, that implements each of the various process steps of the invention. It is understood that the term “computer-readable medium” comprises one or more of any type of physical embodiment of the program code. In particular, the computer-readable medium can comprise program code embodied on one or more portable storage articles of manufacture (e.g., a compact disc, a magnetic disk, a tape, etc.), on one or more data storage portions of a computer system, such as memory 22 and/or storage system 30 (e.g., a fixed disk, a read-only memory, a random access memory, a cache memory, etc.), and/or as a data signal traveling over a network (e.g., during a wired/wireless electronic distribution of the program code).
  • In another embodiment, the invention provides a business method that performs the process steps of the invention on a subscription, advertising, and/or fee basis. That is, a service provider could offer to accommodate spatially-correlated variation in one or more process parameters, as described above. In this case, the service provider can create, maintain, support, etc., a computer infrastructure, such as computer infrastructure 12, that performs the process steps of the invention for one or more customers. In return, the service provider can receive payment from the customer(s) under a subscription and/or fee agreement and/or the service provider can receive payment from the sale of advertising space to one or more third parties.
  • In still another embodiment, the invention provides a method of generating a system for accommodating spatially-correlated variation in one or more process parameters. In this case, a computer infrastructure, such as computer infrastructure 12, can be obtained (e.g., created, maintained, having made available to, etc.) and one or more systems for performing the process steps of the invention can be obtained (e.g., created, purchased, used, modified, etc.) and deployed to the computer infrastructure. To this extent, the deployment of each system can comprise one or more of (1) installing program code on a computer system, such as computer system 14, from a computer-readable medium; (2) adding one or more computer systems to the computer infrastructure; and (3) incorporating and/or modifying one or more existing systems of the computer infrastructure, to enable the computer infrastructure to perform the process steps of the invention.
  • As used herein, it is understood that the terms “program code” and “computer program code” are synonymous and mean any expression, in any language, code or notation, of a set of instructions intended to cause a computer 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 (b) reproduction in a different material form. To this extent, program code can be embodied as one or more types of program products, such as an application/software program, component software/a library of functions, an operating system, a basic I/O system/driver for a particular computing and/or I/O device, and the like.
  • The foregoing description of various aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of the invention as defined by the accompanying claims.

Claims (20)

1. A method for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit, the method comprising:
dividing an area of the circuit into a plurality of grid cells;
associating an independent random variable with each of the plurality of grid cells;
expressing at least one spatially-correlated parameter of a first grid cell as a function of the random variables associated with the first grid cell and at least one neighboring grid cell, wherein the function is expressed as:

ΔA=a G ΔX G +a r ΔX r +a sd ΔX c +a ldX n,1 +ΔX n,2 +ΔX n,3 +ΔX n,4 +ΔX n,5 +ΔX n,6),
wherein aG is a sensitivity of the process parameter to global variation, ΔXG is a random variable modeling global variation, ar is a sensitivity of the process parameter to independent variation, ΔXr is a random variable modeling the independent variation, asd is a sensitivity of the process parameter to short distance spatial variation, ΔXc is a random variable associated with the first grid cell, Δld is a sensitivity of the process parameter to long distance spatial variation, and ΔXn,1 through ΔXn,6 are random variables associated with neighboring cells of the first grid cell; and
reporting a result of a statistical static timing analysis using the function.
2. The method of claim 1, wherein at least one grid cell includes a hexagonal shape.
3. (canceled)
4. The method of claim 1, further comprising the step of:
substituting in a gate delay model at least one expression of the at least one spatially-correlated parameter.
5. The method of claim 4, wherein the gate delay model is expressed as:
D = a 0 + i = 1 n a i · Δ X i + a n + 1 Δ R a ,
wherein a0 is a mean value of the gate delay, ΔXi is a variation of a parameter Xi, equal to Xi−xi,0, where xi,0 is a mean value of Xi, as is a sensitivity of the gate delay to the parameter variation ΔXi, ΔRa is a random variable responsible for uncorrelated variation of the gate delay, and an+1 is a sensitivity of the gate delay to uncorrelated variations ΔRa.
6. The method of claim 1, further comprising the step of:
conducting a statistical timing based on the independent random variables.
7. The method of claim 6, wherein the statistical timing includes at least one of the following: an early timing analysis, a late timing analysis, a timing analysis of a combinational circuit, and a timing analysis of a sequential circuit.
8. The method of claim 1, wherein the function of the random variables includes at least one coefficient and wherein the function approximates a spatial correlation function provided by a user.
9. A system for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit, the system comprising:
a system for dividing an area of the circuit into a plurality of grid cells;
a system for associating an independent random variable with each of the plurality of grid cells; and
a system for expressing at least one spatially-correlated parameter of a first grid cell as a function of the random variables associated with the first grid cell and at least one neighboring grid cell, wherein the function is expressed as:

ΔA=a G ΔX G +a r ΔX r +a sd ΔX c +a ldX n,1 +ΔX n,2 +ΔX n,3 +ΔX n,4 +ΔX n,5 +ΔX n,6),
wherein aG is a sensitivity of the process parameter to global variation, ΔXG is a random variable modeling global variation, ar is a sensitivity of the process parameter to independent variation, ΔXr is a random variable modeling the independent variation, asd is a sensitivity of the process parameter to short distance spatial variation, ΔXc is a random variable associated with the first grid cell, ald is a sensitivity of the process parameter to long distance spatial variation, and ΔXn,1 through ΔXn,6 are random variables associated with neighboring cells of the first grid cell; and
a system for reporting a result of a statistical static timing analysis using the function.
10. (canceled)
11. The system of claim 9, further comprising:
a system for substituting in a gate delay model at least one expression of the at least one spatially-correlated parameter.
12. The system of claim 11, wherein the gate delay model is expressed as:
D = a 0 + i = 1 n a i · Δ X i + a n + 1 Δ R a ,
wherein a0 is a mean value of the gate delay, ΔXi is a variation of a parameter Xi, equal to Xi−xi,0, where xi,0 is a mean value of Xi, ai is a sensitivity of the gate delay to the parameter variation ΔXi, ΔRa is a random variable responsible for uncorrelated variation of the gate delay, and an+1 is a sensitivity of the gate delay to uncorrelated variations ΔRa.
13. The system of claim 9, further comprising:
a system for conducting statistical timing based on the independent random variables.
14. The system of claim 13, wherein the statistical timing includes at least one of the following: an early timing analysis, a late timing analysis, a timing analysis of a combinational circuit, and a timing analysis of a sequential circuit.
15. A program product stored on a computer-readable medium, which when executed, accommodates spatially-correlated variation in a process parameter during statistical timing of a circuit, the program product comprising:
program code for dividing an area of the circuit into a plurality of grid cells;
program code for associating an independent random variable with each of the plurality of grid cells; and
program code for expressing at least one spatially-correlated parameter of a first grid cell as a function of the random variables associated with the first grid cell and at least one neighboring grid cell, wherein the function is expressed as:

ΔA=a G ΔX G +a r ΔX r +a sd ΔX c +a ldX n,1 +ΔX n,2 +ΔX n,3 +ΔX n,4 +ΔX n,5 +ΔX n,6),
wherein aG is a sensitivity of the process parameter to global variation, ΔXG is a random variable modeling global variation, ar is a sensitivity of the process parameter to independent variation, ΔXr is a random variable modeling the independent variation, asd is a sensitivity of the process parameter to short distance spatial variation, ΔXc is a random variable associated with the first grid cell, ald is a sensitivity of the process parameter to long distance spatial variation, and ΔXn,1 through ΔXn,6 are random variables associated with neighboring cells of the first grid cell.
16. (canceled)
17. The program product of claim 15, further comprising:
program code for substituting in a gate delay model at least one expression of the at least one spatially-correlated parameter.
18. The program product of claim 17, wherein the gate delay model is expressed as:
D = a 0 + i = 1 n a i · Δ X i + a n + 1 Δ R a ,
wherein a0 is a mean value of the gate delay, ΔXi is a variation of a parameter Xi, equal to Xi−xi,0, where xi,0 is a mean value of Xi, ai is a sensitivity of the gate delay to the parameter variation ΔXi, ΔRa is a random variable responsible for uncorrelated variation of the gate delay, and an+1 is a sensitivity of the gate delay to uncorrelated variations ΔRa.
19. The program product of claim 15, further comprising:
program code for conducting statistical timing based on the independent random variables, wherein the statistical timing includes at least one of the following: an early timing analysis, a late timing analysis, a timing analysis of a combinational circuit, and a timing analysis of a sequential circuit.
20. A method for deploying an application for accommodating spatially-correlated variation in a process parameter during statistical timing of a circuit, comprising:
providing a computer infrastructure being operable to:
divide an area of the circuit into a plurality of grid cells;
associate an independent random variable with each of the plurality of grid cells; and
express at least one spatially-correlated parameter of a first grid cell as a function of the random variables associated with the first grid cell and at least one neighboring grid cell, wherein the function is expressed as:

ΔA=a G ΔX G +a r ΔX r +a sd ΔX c +a ldX n,1 +ΔX n,2 +ΔX n,3 +ΔX n,4 +ΔX n,5 +ΔX n,6),
wherein aG is a sensitivity of the process parameter to global variation, ΔXG is a random variable modeling global variation, ar is a sensitivity of the process parameter to independent variation, ΔXr is a random variable modeling the independent variation, asd is a sensitivity of the process parameter to short distance spatial variation, ΔXc is a random variable associated with the first grid cell, ald is a sensitivity of the process parameter to long distance spatial variation, and ΔXn,1 through ΔXn,6 are random variables associated with neighboring cells of the first grid cell; and
report a result of a statistical static timing analysis using the function.
US11/272,234 2005-11-10 2005-11-10 Method, system, and program product for accommodating spatially-correlated variation in a process parameter Expired - Fee Related US7212946B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/272,234 US7212946B1 (en) 2005-11-10 2005-11-10 Method, system, and program product for accommodating spatially-correlated variation in a process parameter
CNB2006101435519A CN100498802C (en) 2005-11-10 2006-11-10 Method and system for accommodating spatially-correlated variation in a process parameter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/272,234 US7212946B1 (en) 2005-11-10 2005-11-10 Method, system, and program product for accommodating spatially-correlated variation in a process parameter

Publications (2)

Publication Number Publication Date
US7212946B1 US7212946B1 (en) 2007-05-01
US20070118331A1 true US20070118331A1 (en) 2007-05-24

Family

ID=37991530

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/272,234 Expired - Fee Related US7212946B1 (en) 2005-11-10 2005-11-10 Method, system, and program product for accommodating spatially-correlated variation in a process parameter

Country Status (2)

Country Link
US (1) US7212946B1 (en)
CN (1) CN100498802C (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070113210A1 (en) * 2005-11-16 2007-05-17 Fujitsu Limited Method and apparatus for supporting verification, and computer product
US20080140363A1 (en) * 2006-12-12 2008-06-12 Chung-Kai Lin Unified Model for process variations in integrated circuits
US20090204365A1 (en) * 2008-02-11 2009-08-13 Ning Lu Modeling spatial correlations
US20090222775A1 (en) * 2008-02-28 2009-09-03 Arm Limited Characterising circuit cell performance variability in response to pertibations in manufacturing process parameters
US20140173547A1 (en) * 2012-12-17 2014-06-19 International Business Machines Corporation Analysis of chip-mean variation and independent intra-die variation for chip yield determination
US11600104B2 (en) 2011-03-25 2023-03-07 Nec Corporation Authentication using prism

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8056035B2 (en) * 2008-06-04 2011-11-08 International Business Machines Corporation Method and system for analyzing cross-talk coupling noise events in block-based statistical static timing
US8423328B2 (en) * 2009-09-30 2013-04-16 International Business Machines Corporation Method of distributing a random variable using statistically correct spatial interpolation continuously with spatially inhomogeneous statistical correlation versus distance, standard deviation, and mean
US8214779B2 (en) 2010-11-15 2012-07-03 International Business Machines Corporation Making a discrete spatial correlation continuous
US8930171B2 (en) 2012-01-05 2015-01-06 International Business Machines Corporation Method of modeling spatial correlations among integrated circuits with randomly generated spatial frequencies
CN104423299B (en) * 2013-09-02 2017-06-09 廖馗任 A kind of circuitry processes parameter adjusting method and circuit complex protection method
US9501609B1 (en) * 2015-12-02 2016-11-22 International Business Machines Corporation Selection of corners and/or margins using statistical static timing analysis of an integrated circuit
US10839129B2 (en) 2019-02-13 2020-11-17 International Business Machines Corporation Characterization of spatial correlation in integrated circuit development

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070113210A1 (en) * 2005-11-16 2007-05-17 Fujitsu Limited Method and apparatus for supporting verification, and computer product
US20080140363A1 (en) * 2006-12-12 2008-06-12 Chung-Kai Lin Unified Model for process variations in integrated circuits
US8275584B2 (en) * 2006-12-12 2012-09-25 Taiwan Semiconductor Manufacturing Company, Ltd. Unified model for process variations in integrated circuits
US20090204365A1 (en) * 2008-02-11 2009-08-13 Ning Lu Modeling spatial correlations
US7945887B2 (en) * 2008-02-11 2011-05-17 International Business Machines Corporation Modeling spatial correlations
US20090222775A1 (en) * 2008-02-28 2009-09-03 Arm Limited Characterising circuit cell performance variability in response to pertibations in manufacturing process parameters
US8103990B2 (en) * 2008-02-28 2012-01-24 Arm Limited Characterising circuit cell performance variability in response to perturbations in manufacturing process parameters
US11600104B2 (en) 2011-03-25 2023-03-07 Nec Corporation Authentication using prism
US20140173547A1 (en) * 2012-12-17 2014-06-19 International Business Machines Corporation Analysis of chip-mean variation and independent intra-die variation for chip yield determination
US9147031B2 (en) * 2012-12-17 2015-09-29 International Business Machines Corporation Analysis of chip-mean variation and independent intra-die variation for chip yield determination

Also Published As

Publication number Publication date
US7212946B1 (en) 2007-05-01
CN100498802C (en) 2009-06-10
CN1963826A (en) 2007-05-16

Similar Documents

Publication Publication Date Title
US7212946B1 (en) Method, system, and program product for accommodating spatially-correlated variation in a process parameter
US7480880B2 (en) Method, system, and program product for computing a yield gradient from statistical timing
US7493574B2 (en) Method and system for improving yield of an integrated circuit
US7882471B1 (en) Timing and signal integrity analysis of integrated circuits with semiconductor process variations
US8160858B2 (en) Systems and methods of efficient library characterization for integrated circuit cell libraries
EP1969502B1 (en) System and method of criticality prediction in statistical timing analysis
US6026228A (en) Integrated circuit design method, database apparatus for designing integrated circuit and integrated circuit design support apparatus
US7243320B2 (en) Stochastic analysis process optimization for integrated circuit design and manufacture
US5487018A (en) Electronic design automation apparatus and method utilizing a physical information database
Harte PtProcess: An R package for modelling marked point processes indexed by time
US8005660B2 (en) Hierarchical stochastic analysis process optimization for integrated circuit design and manufacture
US7458049B1 (en) Aggregate sensitivity for statistical static timing analysis
Balasa et al. Background memory area estimation for multidimensional signal processing systems
US7469394B1 (en) Timing variation aware compilation
CN1770167A (en) Circuit statistical modeling for partially correlated model parameters
JPH0713974A (en) Method and apparatus for simulation of performance of digital machine
US8069432B2 (en) Method and system for performing statistical leakage characterization, analysis, and modeling
Mollapourasl et al. Radial basis functions with partition of unity method for American options with stochastic volatility
Kim Asymptotic and bootstrap prediction regions for vector autoregression
Dey et al. Graphical Gaussian process models for highly multivariate spatial data
Agnesina et al. Autodmp: Automated dreamplace-based macro placement
US8813006B1 (en) Accelerated characterization of circuits for within-die process variations
Hsu et al. Synthesis of design concepts from a design for assembly perspective
Chow et al. Mixed precision processing in reconfigurable systems
US20220405455A1 (en) Methods and systems for congestion prediction in logic synthesis using graph neural networks

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VENKATESWARAN, NATESAN;VISWESWARIAH, CHANDRAMOULI;ZHANG, LIZHENG;AND OTHERS;REEL/FRAME:017124/0775;SIGNING DATES FROM 20051104 TO 20051107

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20150501