# Patent

## Title
Parametric timing analysis

## Abstract

Electronic Design Automation tools are used to aid in the design and verification of integrated circuits. As part of the verification process, circuit designs are analyzed with respect to their timing performance. Timing analysis is susceptible to variation in circuit components due to fabrication process variation. Process variation is introduced as worst-case conditions or statistical probabilities. More accurate process variation is modeled by for timing sensitivity with Parametric Elmore Delay. Parametric Elmore Delay introduces effects on circuit components as parameters in the conventional Elmore Delay definition to model fabrication process variation in the timing analysis. Delay variance demonstrates sensitivities to process and design factors. Parametric timing analysis is used to anticipate fabrication yield and identify potential improvements in the design or fabrication process.

## Background
RELATED APPLICATIONS
This application claims priority from U.S. Provisional Application Ser. No. 60/540,932 titled “Parametric Timing Analysis” and filed on Jan. 30, 2004 by Timothy Burks, assigned to the assignee of the present application, and incorporated herein by reference in its entirety.


FIELD OF THE INVENTION
The present invention relates generally to electronic design automation tools for integrated circuit design and verification and more particularly to software tools for automated timing analysis of circuit designs.
BACKGROUND OF THE INVENTION
Today's large and complex digital integrated circuit (“IC”) designs typically include millions of logic gates. As part of the design cycle, these designs have to be checked to ensure their proper function and that their performance requirements are met. The modeling, verification, and optimization process for checking these designs involves extensive timing analysis. Electronic design automation (“EDA”) tools are use to automate and aid in speeding up this process.
One aspect affecting the timing analysis of IC designs is the effect of variation in circuit components induced by the normal variations in the fabrication process. The variation in process parameters needs to be taken into account in order to provide accurate timing modeling and subsequently high yielding manufactured components. EDA tools include techniques for modeling the typical process parameter variations of semiconductor fabrication processes. Conventionally, these techniques are based on “worst-case” conditions or statistical approximations.
The effect of process variation on timing performance is increasing as feature sizes shrink. As this effect increases, the current methodology for modeling, verification, and optimization of designs is encountering problems. Current EDA tools use static timing analysis techniques to verify proper operation at the desired speed and to find design elements that can be changed to fix problems or improve the performance of the circuit.
However, the current timing methodology fails to provide an accurate modeling of process variation because it is based on worst-case analysis. Worst-case analysis has several problems. Worst-case conditions can be overly pessimistic. Fabricated chips are often much faster than predicted. Worst-case conditions assume that everything goes wrong that possibly can. In reality, this is unlikely. In addition, given the many sources of variation, it is hard to provide an accurate model of the worst-case operating conditions. Variations can occur due to wire widths, thicknesses, transistor lengths, oxide thickness, temperature, and voltage. Moreover, the worst-case conditions can be path dependent. Depending on how they are routed on the various metal layers, different paths can have different sensitivities to wire width variation. For example, one path may have a tighter timing constraint when the metal on layer 2 is wide and the metal on layer 3 is narrow, while another's timing is tighter when the situation is reversed.
To address these problems, statistical timing analysis techniques have been proposed. Many of these techniques treat delays as independent random variables with known probability density functions (“pdf”). The pdfs for delays are used to obtain pdfs or related cumulative density functions (“cdf”) for signal arrival times and slacks. These pdfs and/or cdfs are then used to calculate the probability that a particular slack value will be nonnegative.
However, existing methods for statistical timing analysis assume that delays are independent. In contrast to the worst-case timing analysis assumptions, this assumption can lead to significant optimism, which can result in greater yield impact due to process variation. Further, these statistical timing techniques do not demonstrate the relationship between yield and controlling factors, which makes yield improvement analysis more complicated.
Thus, what is needed is a method for modeling process parameters in circuit timing analysis that (1) provides a more realistic process variation estimation, (2) helps identify process parameters that should be controlled more closely to increase yield of a particular design, and (3) helps identify changes that can be made to a design to increase fabrication yield.
SUMMARY OF THE INVENTION
In accordance with one illustrative embodiment of the present invention, it is provided a method for expressing signal propagation delay as a function of a set of parameters and a method for combining these delays into expressions of timing slack as a function of those same parameters, which provide a more accurate model of process variation. In addition, given estimates of the statistical characteristics of those parameters, the statistical characteristics of slack is calculated to identify process parameters and design changes that can be modified to increase yield.
In one embodiment, a method for modeling the variation of fabrication process parameters for the analysis of circuit timing of a resistance/capacitance (“RC”) circuit includes several steps. In this embodiment, the timing analysis is performed in an electronic design automation (“EDA”) tool for integrated circuit design.
According to this embodiment, the method includes receiving the values for the resistance variation parameters characteristic of the fabrication process that will be used to manufacture the circuit. These variation values are associated with resistors in the circuit, for example, based on which layer of the fabrication process the resistor will be on, e.g., metal 1, metal 2, or the like. Similarly, the method includes receiving values for the capacitance variation parameters characteristic of the fabrication process. As with the resistive elements, the capacitance variation parameter values are associated capacitors in the circuit. These values are used to calculate the sum of the product of each resistance in each path of the circuit multiplied by an associated resistance variation component. The resistance variation component is a mathematical term that includes the associated resistance variation parameter value. In addition, each resistance is multiplied by the downstream capacitance in the resistor's path. Each capacitance is also multiplied by an associated capacitance variation component. The capacitance variation component similarly includes the associated capacitance variation parameter value. In this embodiment, the method also includes calculating a circuit delay value based on the calculated sum of RC products.
According to an alternative embodiment, a method for modeling the effects of fabrication parameter variations in the signal timing analysis of a resistance/capacitance (RC) circuit is based on Elmore-Delay-based calculation of delay variance. In this embodiment, the method is intended for an electronic design automation tool for integrated circuit design.
According to this embodiment, the method includes receiving the values for the resistance variation parameter characteristic of a fabrication process. The resistance variation parameter includes one value for each layer or set of layers of the fabrication process that affect the resistance values of circuit elements. Similarly, the method includes receiving the values for the capacitance variation parameter characteristic of the fabrication process. Each value is also associated with the layer or set of layers of the fabrication process that affects the capacitance of elements in the circuit.
Further, the method includes composing a square matrix (T) of Elmore-Delay-based products of resistance multiplied by sums of downstream capacitances for each path associated with each resistor of the circuit. The square matrix T has as many rows and columns as there are values in the resistance and capacitance variation parameters. Accordingly, each column includes the Elmore-Delay-based products corresponding to resistors in the layer or sets of layers associated with each resistance variation parameter value. Similarly, each row includes the sums of downstream capacitances associated with capacitors in the layer or sets of layers associated with each capacitance variation parameter value. According to this embodiment, the circuit delay variance is calculated based on the matrix T and the resistance and capacitance variation parameter values.
In yet another embodiment, an automated method for analyzing timing in an integrated circuit design is based upon an electronic circuit description that includes descriptions of resistive and capacitive elements. In this embodiment, the method includes selecting at least one path of the circuit described in the circuit design. Then, for each resistive element in the selected path, the method includes computing a resistive/capacitive (RC) product by multiplying the resistance of the resistive element by a sum of capacitances of the capacitive elements in a section of the path downstream from the resistive element. The method also includes selecting a resistive process variation parameter and a capacitive process variation parameter characteristic of a fabrication process associated with the circuit design. Then, computing the path delay sensitivity to process variation based on first-order sensitivities to process variation. The first-order sensitivities include variances of the resistive and capacitive process variation parameters and the RC products.
The features and advantages described in the specification are not all inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a circuit diagram for a conventional resistance/capacitance (“RC”) circuit.
FIG. 2 is a block diagram for a sample embodiment of a method for computing Parametric Elmore Delay.
FIG. 3A is a circuit diagram for an sample embodiment of a tree structured RC network.
FIG. 3B is a circuit diagram for one example of the RC vectors at each resistive node Ri for the sample circuit of FIG. 3A.
FIG. 4 is a flow chart for one embodiment of a method to analyze circuit node timing using Parametric Elmore Delay (“PED”) in an Electronic Design Automation (“EDA”) tool.
FIG. 5 is a circuit diagram for a three-stage circuit design for a two metal layer process.
FIG. 6 is a chart for the probability density function (“pdf”) of the normally distributed slack values.



DETAILED DESCRIPTION OF THE INVENTION
The Figures and the following description relate to preferred embodiments of the present invention by way of illustration only. It should be noted that from the following discussion, alternative embodiments of the structures and methods disclosed herein will be readily recognized as viable alternatives that may be employed without departing from the principles of the claimed invention.
Electronic Design Automation (“EDA”) software for aiding in the design of integrated circuits, including analyzing circuit timing, operates on conventional computers, e.g., personal computers, workstations, servers, or the like. For example, common EDA environments for integrated circuit (“IC”) design include networks with one or more servers for processing the analysis, either individually or in distributed form, and workstations for users to interact with the tool. The techniques described herein for performing computations with respect to IC timing analysis are capable of being coded for computer execution in any computer language, e.g., C, C++, or the like. The techniques described herein can be implemented as a computer program, as part of a larger software application, or as features in an EDA tool environment for IC design, such as for example, the suite of BlastTM software products by Magma Design Automation, of Santa Clara, Calif.
One embodiment of the present invention includes EDA software for timing analysis in which timing characteristics of a circuit design are expressed as a function of the variable parameters associated with the semiconductor fabrication process. The variations of those parameters are used to calculate the amount of timing variation. According to this embodiment timing delays are expressed parametrically using a Parametric Elmore Delay (“PED”).
Elmore Delay Overview
The conventional Elmore Delay is an easy-to-compute estimate of the delay of a path through a linear circuit. For a resistance/capacitance (“RC”) circuit, it is the sum of the product of each resistance, R, in the path multiplied by its downstream capacitance, C. For example, referring to FIG. 1, a conventional RC circuit is shown. For this circuit, the Elmore Delay (“D”) is calculated as follows:

D=RA[CA+CB+CC]+RB[CB+CC]+RC[CC]

Parametric Elmore Delay

Resistance and capacitance of the elements in an IC are dependent on fabrication process variations. To model the effect of process variation on resistance and capacitance, each resistance, R, is assumed to vary by a parameter αi and each capacitance, C, is assumed to vary by a parameter βj. With these assumptions and by way of example, the Elmore Delay, D, of the circuit shown in FIG. 1 with the parametric variation of R and C is expressed as follows:

D=RA(1+α1)[CA(1+β1)+CB(1+β2)+CC(1+β3)]

+RB(1+α2)[CB(1+β2)+CC(1+β3)]

+RC(1+α3)[CC(1+β3)]

In a more general sense, according to one embodiment, the parametric Elmore Delay D equation is given by the following expression:




  D
  =
  
    
      ∑
      
        i
        ,
        j
      
    
    ⁢
    
      
    
    ⁢
    
      
        τ
        
          i
          ,
          j
        
      
      ·
      
        [
        
          
            (
            
              1
              +
              
                α
                i
              
            
            )
          
          ⁢
          
            (
            
              1
              +
              
                β
                j
              
            
            )
          
        
        ]
      
    
  




In this equation, each τi,j is a sum of resistance-capacitance products. The RC products can be arranged into a matrix T, where T is defined to be the Parametric Elmore Delay. Accordingly, the Parametric Elmore Delay can be expressed in matrix form as follows:

D=(1+α)TT(1+β)

Multiplying this matrix equation into individual terms, provides the following expression for the Parametric Elmore Delay:

D=1TT1+αTT1+1TTβ+αTTβ

The first term is the sum of all rows and columns of the RC matrix, T, and corresponds to the conventional Elmore Delay. The 2nd and 3rd terms are the first-order sensitivities to resistance and capacitance variations, which are typically given by the particular fabrication process. The 4th term contains second-order sensitivities, which in a typical fabrication process are neglected because resistance and capacitance variations are small. For the sample circuit of FIG. 1, the Parametric Elmore Delay RC product matrix (T) is given by the following expression:





  T
  =
  
    [
    
      
        
          
            
              R
              A
            
            ⁢
            
              C
              A
            
          
        
        
          
            
              R
              A
            
            ⁢
            
              C
              B
            
          
        
        
          
            
              R
              A
            
            ⁢
            
              C
              C
            
          
        
      
      
        
          0
        
        
          
            
              R
              B
            
            ⁢
            
              C
              B
            
          
        
        
          
            
              R
              B
            
            ⁢
            
              C
              C
            
          
        
      
      
        
          0
        
        
          0
        
        
          
            
              R
              C
            
            ⁢
            
              C
              C
            
          
        
      
    
    ]
  




With this Parametric Elmore Delay (“PED”) definition, the effects of a process variation on circuit resistive and capacitive elements is more accurately modeled in the timing analysis performed by EDA tools. The resistance and capacitance variation parameters (αi and βj) are characteristic of each fabrication process. It should be noted that these variation parameters are derived from fabrication process data by techniques that are beyond the scope of this patent. For example, resistance and capacitance variation for each metal layer of a process can be directly measured on sets of fabricated wafers, either through process characterization, process control, or the like. For purposes of the present embodiment, the process variation parameters are received as input. In one embodiment, EDA tools use the PED timing technique described herein by receiving the R and C variation parameters as input and using them to model their effect on timing delay analysis and to provide a more accurate result than conventional worst-case or statistical techniques.
Further, in one embodiment, the resistance (R) and capacitance (C) variation parameters are further correlated based on their relationship to other process and design factors. For example, resistances and capacitances are grouped into classes that vary together based on particular metal layers, physical regions on a chip, or line width (“w”) and thickness (“d”) of the metal interconnects used in the design or process. By way of example, in one embodiment the PED calculation with RC line width based correlation takes into account their relationship. As the line width increases, R decreases and C increases. Accordingly, in one embodiment, the correlation of RC and w/d can be taken into account by expressing the correlated PED as a function of the process parameters and the w/d relationship.
Computing Parametric Elmore Delay
Now referring to FIG. 2, a block diagram for a sample embodiment of a method for computing Parametric Elmore Delay is shown. In this embodiment, IC designs are assumed to be of tree structured RC networks and the analysis is based on RICE [See Ratzlaff, C. L.,  Gopal, N., Pillage, L. T., “RICE: rapid interconnect circuit evaluator”,  Design Automation Conference, 1991. p. 555-560, the relevant contents of which are incorporated by reference]. A sample embodiment of a tree structured RC network is shown in FIG. 3A. In this embodiment, resistances Ri and capacitances Cj correspond to two different metal layers, layer 1 and layer 2, of a semiconductor fabrication process whose resistances Ri and capacitances Cj vary separately (note that with respect to FIGS. 3A and 3B, i and j=A−G). Two metal layers are used by way of example and for simplicity of description but in practice any number of metal layers can be used with this approach.
It should be noted that in a conventional EDA tool, circuit designs are represented by electronic descriptions of the circuit elements, e.g., based on a cell library or the like, that are used by the computer software to model the actual circuit to be fabricated. For purposes of this description, when reference is made to a circuit element, it should be understood to refer to its electronic representation used by the software.
Referring back to FIG. 2, in this embodiment, the PED calculation 200 includes four steps. Initially, a depth-first traversal of the circuit design is performed 202 to recursively calculate vectors of partitioned downstream capacitance (C=[ΣCi]) at each resistive node. For each resistive element in a given path, the vector of downstream capacitances for each ith layer is determined. FIG. 3B shows one example of the RC vectors at each resistive node Ri for the sample circuit of FIG. 3A.
Next, a second depth-first traversal is performed 204 to calculate T matrices at each node, for example, by adding RiC into the ith column of each Ti matrix. The result is the PEDs to each node in the RC network. By way of example, for the circuit shown in FIG. 3A, the node-wise Parametric Elmore Delays are:



  
    
      
    
    ⁢
    
      
        T
        A
      
      =
      
        [
        
          
            
              
                
                  R
                  A
                
                ⁡
                
                  (
                  
                    
                      C
                      A
                    
                    +
                    
                      C
                      D
                    
                    +
                    
                      C
                      E
                    
                    +
                    
                      C
                      G
                    
                  
                  )
                
              
            
            
              0
            
          
          
            
              
                
                  R
                  A
                
                ⁡
                
                  (
                  
                    
                      C
                      B
                    
                    +
                    
                      C
                      C
                    
                    +
                    
                      C
                      F
                    
                  
                  )
                
              
            
            
              0
            
          
        
        ]
      
    
  




  
    
      
    
    ⁢
    
      
        T
        B
      
      =
      
        [
        
          
            
              
                
                  R
                  A
                
                ⁡
                
                  (
                  
                    
                      C
                      A
                    
                    +
                    
                      C
                      D
                    
                    +
                    
                      C
                      E
                    
                    +
                    
                      C
                      G
                    
                  
                  )
                
              
            
            
              
                
                  R
                  B
                
                ⁡
                
                  (
                  
                    
                      C
                      D
                    
                    +
                    
                      C
                      E
                    
                    +
                    
                      C
                      G
                    
                  
                  )
                
              
            
          
          
            
              
                
                  R
                  A
                
                ⁡
                
                  (
                  
                    
                      C
                      B
                    
                    +
                    
                      C
                      C
                    
                    +
                    
                      C
                      F
                    
                  
                  )
                
              
            
            
              
                
                  R
                  B
                
                ⁡
                
                  (
                  
                    
                      C
                      B
                    
                    +
                    
                      C
                      C
                    
                    +
                    
                      C
                      F
                    
                  
                  )
                
              
            
          
        
        ]
      
    
  




  
    
      T
      C
    
    =
    
      [
      
        
          
            
              
                R
                A
              
              ⁡
              
                (
                
                  
                    C
                    C
                  
                  +
                  
                    C
                    D
                  
                  +
                  
                    C
                    E
                  
                  +
                  
                    C
                    G
                  
                
                )
              
            
          
          
            
              
                
                  R
                  B
                
                ⁡
                
                  (
                  
                    
                      C
                      D
                    
                    +
                    
                      C
                      E
                    
                    +
                    
                      C
                      G
                    
                  
                  )
                
              
              +
              
                
                  R
                  C
                
                ⁡
                
                  (
                  
                    
                      C
                      D
                    
                    +
                    
                      C
                      E
                    
                  
                  )
                
              
            
          
        
        
          
            
              
                R
                A
              
              ⁡
              
                (
                
                  
                    C
                    B
                  
                  +
                  
                    C
                    C
                  
                  +
                  
                    C
                    F
                  
                
                )
              
            
          
          
            
              
                
                  R
                  B
                
                ⁡
                
                  (
                  
                    
                      C
                      B
                    
                    +
                    
                      C
                      C
                    
                    +
                    
                      C
                      F
                    
                  
                  )
                
              
              +
              
                
                  R
                  C
                
                ⁢
                
                  C
                  C
                
              
            
          
        
      
      ]
    
  




  
    
      T
      D
    
    =
    
      

    
    ⁢
    
      [
      
        
          
            
              
                
                  R
                  A
                
                ⁡
                
                  (
                  
                    
                      C
                      A
                    
                    +
                    
                      C
                      D
                    
                    +
                    
                      C
                      E
                    
                    +
                    
                      C
                      G
                    
                  
                  )
                
              
              +
              
                
                  R
                  D
                
                ⁢
                
                  C
                  D
                
              
            
          
          
            
              
                
                  R
                  B
                
                ⁡
                
                  (
                  
                    
                      C
                      D
                    
                    +
                    
                      C
                      E
                    
                    +
                    
                      C
                      G
                    
                  
                  )
                
              
              +
              
                
                  R
                  C
                
                ⁡
                
                  (
                  
                    
                      C
                      D
                    
                    +
                    
                      C
                      E
                    
                  
                  )
                
              
            
          
        
        
          
            
              
                R
                A
              
              ⁡
              
                (
                
                  
                    C
                    B
                  
                  +
                  
                    C
                    C
                  
                  +
                  
                    C
                    F
                  
                
                )
              
            
          
          
            
              
                
                  R
                  B
                
                ⁡
                
                  (
                  
                    
                      C
                      B
                    
                    +
                    
                      C
                      C
                    
                    +
                    
                      C
                      F
                    
                  
                  )
                
              
              +
              
                
                  R
                  C
                
                ⁢
                
                  C
                  C
                
              
            
          
        
      
      ]
    
  




  
    
      T
      E
    
    =
    
      

    
    ⁢
    
      [
      
        
          
            
              
                
                  R
                  A
                
                ⁡
                
                  (
                  
                    
                      C
                      A
                    
                    +
                    
                      C
                      D
                    
                    +
                    
                      C
                      E
                    
                    +
                    
                      C
                      G
                    
                  
                  )
                
              
              +
              
                
                  R
                  E
                
                ⁢
                
                  C
                  E
                
              
            
          
          
            
              
                
                  R
                  B
                
                ⁡
                
                  (
                  
                    
                      C
                      D
                    
                    +
                    
                      C
                      E
                    
                    +
                    
                      C
                      G
                    
                  
                  )
                
              
              +
              
                
                  R
                  C
                
                ⁡
                
                  (
                  
                    
                      C
                      D
                    
                    +
                    
                      C
                      E
                    
                  
                  )
                
              
            
          
        
        
          
            
              
                R
                A
              
              ⁡
              
                (
                
                  
                    C
                    B
                  
                  +
                  
                    C
                    C
                  
                  +
                  
                    C
                    F
                  
                
                )
              
            
          
          
            
              
                
                  R
                  B
                
                ⁡
                
                  (
                  
                    
                      C
                      B
                    
                    +
                    
                      C
                      C
                    
                    +
                    
                      C
                      F
                    
                  
                  )
                
              
              +
              
                
                  R
                  C
                
                ⁢
                
                  C
                  C
                
              
            
          
        
      
      ]
    
  




  
    
      T
      F
    
    =
    
      [
      
        
          
            
              
                R
                A
              
              ⁡
              
                (
                
                  
                    C
                    A
                  
                  +
                  
                    C
                    D
                  
                  +
                  
                    C
                    E
                  
                  +
                  
                    C
                    G
                  
                
                )
              
            
          
          
            
              
                
                  
                    
                      
                        
                          
                        
                      
                      
                        
                          
                            R
                            B
                          
                          (
                          
                            
                              C
                              D
                            
                            +
                            
                              C
                              E
                            
                          
                        
                      
                    
                  
                  +
                  
                    C
                    G
                  
                
                )
              
              +
              
                
                  R
                  F
                
                ⁢
                
                  C
                  F
                
              
            
          
        
        
          
            
              
                R
                A
              
              ⁡
              
                (
                
                  
                    C
                    B
                  
                  +
                  
                    C
                    C
                  
                  +
                  
                    C
                    F
                  
                
                )
              
            
          
          
            
              
                
                  R
                  B
                
                ⁡
                
                  (
                  
                    
                      C
                      B
                    
                    +
                    
                      C
                      C
                    
                    +
                    
                      C
                      F
                    
                  
                  )
                
              
              +
              
                
                  R
                  F
                
                ⁢
                
                  C
                  G
                
              
            
          
        
      
      ]
    
  




  
    
      T
      G
    
    =
    
      [
      
        
          
            
              
                
                  R
                  A
                
                ⁡
                
                  (
                  
                    
                      C
                      A
                    
                    +
                    
                      C
                      D
                    
                    +
                    
                      C
                      E
                    
                    +
                    
                      C
                      G
                    
                  
                  )
                
              
              +
              
                
                  R
                  G
                
                ⁢
                
                  C
                  G
                
              
            
          
          
            
              
                
                  R
                  B
                
                ⁡
                
                  (
                  
                    
                      C
                      D
                    
                    +
                    
                      C
                      E
                    
                    +
                    
                      C
                      G
                    
                  
                  )
                
              
              +
              
                
                  R
                  F
                
                ⁢
                
                  C
                  F
                
              
            
          
        
        
          
            
              
                R
                A
              
              ⁡
              
                (
                
                  
                    C
                    B
                  
                  +
                  
                    C
                    C
                  
                  +
                  
                    C
                    F
                  
                
                )
              
            
          
          
            
              
                
                  R
                  B
                
                ⁡
                
                  (
                  
                    
                      C
                      B
                    
                    +
                    
                      C
                      C
                    
                    +
                    
                      C
                      F
                    
                  
                  )
                
              
              +
              
                
                  R
                  F
                
                ⁢
                
                  C
                  G
                
              
            
          
        
      
      ]
    
  



Sources of resistance variation due to process parameters are introduced 206 as vectors of random variables with one dimension per layer. Similarly, sources of capacitance variation are introduced 208. For the example above, resistance and capacitance variation is modeled with column vectors of random variables α and β:




  α
  =
  
    
      
        [
        
          
            
              
                α
                1
              
            
          
          
            
              
                α
                2
              
            
          
        
        ]
      
      ⁢
      
        
      
      ⁢
      and
      ⁢
      
        
      
      ⁢
      β
    
    =
    
      [
      
        
          
            
              β
              1
            
          
        
        
          
            
              β
              2
            
          
        
      
      ]
    
  




As mentioned above, the variation values of parameters α and β are input to the software for the Parametric Elmore Delay computation of this embodiment. Using these parametric variation vectors, a node-wise PED calculation (Di) is given as a result 210 by applying the matrix equation to the above Ti matrices (for i=A, B, . . . , G corresponding to each node):

Di=1TTi1+αTiTi1+1TiTiβ+αTiTiβ

It should be noted that in some embodiments, Elmore Delays do not provide sufficient accuracy for determination of the actual delays of RC circuits. More accurate calculation methods are commonly available but are not easily partitioned parametrically. However, for analysis of variance in the timing of paths in the circuit design, Elmore Delays are sufficiently accurate to identify sensitivities to the process and design variables. In general, to further improve accuracy of the mean value of the Parametric Elmore Delay, it can be scaled so that its nominal value matches the more accurate calculation.
Accordingly, in one embodiment, the Parametric Elmore Delay is used in an EDA tool for modeling timing variance due to variation in fabrication process parameters. As described above, the 2nd and 3rd terms of the PED equation are the first-order sensitivities to resistance and capacitance variations, which are typically given by the particular fabrication process. Using these terms, the variance (“var”) of the PED can be approximated as follows:

var(D)≅var(α)T(T1)2+(1TT)2var(β)

Parametric Timing Analysis using the Parametric Elmore Delay

FIG. 4 shows one embodiment of a method to analyze circuit node timing using PED in a EDA tool. In this embodiment PED along each path of a circuit are summed up to calculate parametric arrival times (“TA”) and then using parametric required times (“TR”) the slack is calculated as the difference between arrival and required times.
To compute 400 the arrival times along a path, a first node N along the path is selected 402. The arrival time TA at that node N is initialized 404 using user-specified timing constrains for the particular circuit, which are input to the EDA tool. The next node P along the same path of the circuit is then selected 406. The arrival time TA at this node P is calculated 408 as the sum of the TA at node N and the PED from node N to node P. The process is iterated by setting 410 node N to node P and if the last node has not been reached 412 repeating the process to calculate arrival times TAs for each desired node in the path.
Once the path arrival times TA have been calculated, the required times TR and corresponding slack are calculated 450. The last node in the circuit path was set 412 to node N. For this node N, the required time TR is computed 452. To compute the required time TR user-specified or EDA tool library constraints are used. These constraints can be set-up time or hold time based constraints for the particular circuit design. Depending on the type of constrains used, the slack for node N is calculated 454 as the difference between required and arrival times, TR-TA for set-up time constraints or TA-TR for hold time constraints. The next node P up the path is then selected 456. The required time TR for this node P is calculated 458 as the TR of node N minus the PED from node N to node P. Node N is then set 460 to node P and if there are more nodes along this path 462, the TR and slack calculation is repeated.
When slack and TR for all the nodes in the path has been calculated the timing analysis for the path is completed 464. In a typical multi-path design, the process is repeated for every path to be analyzed. Based on this technique, parametric delay values are derived for every node and every path in a circuit design. In one embodiment, these node-wise parametric delays are used to help identify process parameters and design changes that have the greatest effect on the performance and potential yield of the design as further described below.
For example, referring now to FIG. 5, in one embodiment, a three-stage circuit design for a two metal layer process is shown. Each stage consists of an electrically identical route first on metal layer 1 (“M1”), then on metal layer 2 (“M2”), then concluding back on M1. By way of example, the second stage, between device 504 and device 506 is shown in more detail as circuit 510.
The Parametric Elmore Delay of each stage is given by the following matrix:




  T
  =
  
    [
    
      
        
          
            
              R
              GATE
            
            ⁢
            
              C
              GATE
            
          
        
        
          
            
              
                R
                A
              
              ⁢
              
                C
                GATE
              
            
            +
            
              
                R
                C
              
              ⁢
              
                C
                GATE
              
            
          
        
        
          
            
              R
              B
            
            ⁢
            
              C
              GATE
            
          
        
      
      
        
          
            
              R
              GATE
            
            ⁡
            
              (
              
                
                  C
                  A
                
                +
                
                  C
                  C
                
              
              )
            
          
        
        
          
            
              
                R
                A
              
              ⁡
              
                (
                
                  
                    C
                    A
                  
                  +
                  
                    C
                    C
                  
                
                )
              
            
            +
            
              
                R
                C
              
              ⁢
              
                C
                C
              
            
          
        
        
          
            
              R
              B
            
            ⁢
            
              C
              C
            
          
        
      
      
        
          
            
              R
              GATE
            
            ⁢
            
              C
              B
            
          
        
        
          
            
              R
              A
            
            ⁢
            
              C
              B
            
          
        
        
          
            
              R
              B
            
            ⁢
            
              C
              B
            
          
        
      
    
    ]
  




Sample RC values are provided below for each resistance and capacitance in each stage:

RGATE=1 kΩ CGATE=10 fF

RA=1 kΩ CA=10 fF

RB=10 kΩ CB=100 fF

RC=1 kΩ CC=10 fF

The Elmore delay for each stage is 2*130+10*120+1*20=260+1200+20=1480 pico seconds (“ps”). The PED for each stage with the sample values given above is expressed by the following matrix:




  
    T
    D
  
  =
  
    [
    
      
        
          10
        
        
          20
        
        
          100
        
      
      
        
          20
        
        
          30
        
        
          100
        
      
      
        
          100
        
        
          100
        
        
          1000
        
      
    
    ]
  




The sum of all rows and columns is 1480 ps, the Elmore Delay. Adding the delays along the path gives a total path delay between device 502 and device 508 for a total of:




  
    T
    PATH
  
  =
  
    
      3
      ⁢
      
        T
        D
      
    
    =
    
      
        [
        
          
            
              30
            
            
              60
            
            
              300
            
          
          
            
              60
            
            
              90
            
            
              300
            
          
          
            
              300
            
            
              300
            
            
              1000
            
          
        
        ]
      
      ⁢
      ps
    
  




If the arrival time TA at the beginning of the path is zero, the arrival time TA at the end of the path is TPATH. As shown above, the total path PED (DPATH) can be written as:

DPATH=1TTPATH1+αTTPATH1+1TTPATHβ+αTTPATHβ

In one sample embodiment, gate resistances and input capacitances for a fabrication process vary with a variance of 10% and the resistances and capacitances on each metal layer vary with a variance of 20%. The process RC variances are expressed in vector matrix form as:




  
    
      
        
          Mean
          ⁡
          
            (
            α
            )
          
        
        =
        0
      
    
    
      
        
          Mean
          ⁡
          
            (
            β
            )
          
        
        =
        0
      
    
  
  
    
      
        
          Var
          ⁡
          
            (
            α
            )
          
        
        =
        
          [
          
            
              
                0.1
              
            
            
              
                0.2
              
            
            
              
                0.2
              
            
          
          ]
        
      
    
    
      
        
          Var
          ⁡
          
            (
            β
            )
          
        
        =
        
          [
          
            
              
                0.1
              
            
            
              
                0.2
              
            
            
              
                0.2
              
            
          
          ]
        
      
    
  




The mean value of the path delay is given by the Elmore Delay, that is the first term in the PED equation. For the example shown in FIG. 5 the mean path Delay is shown below:

Mean(DPATH)=1TTPATH1=4440 ps

In one embodiment, the RC variation (α and β) are assumed to be independent. Thus, as shown above, the variance of path PED can be written in terms of the variance of these independent variables:

Var(D)≅Var(α)T(TPATH1)+(1TTPATH)2Var(β)

Applying to this expression the values given for the sample circuit of FIG. 5, the variance for the path PED is calculated as follows:



  
    
      Var
      ⁡
      
        (
        
          D
          PATH
        
        )
      
    
    ≅
    
      
        
          [
          
            0.1
            ⁢
            
              
            
            ⁢
            0.2
            ⁢
            
              
            
            ⁢
            0.2
          
          ]
        
        ⁢
        
          
            (
            
              
                [
                
                  
                    
                      30
                    
                    
                      60
                    
                    
                      300
                    
                  
                  
                    
                      60
                    
                    
                      90
                    
                    
                      300
                    
                  
                  
                    
                      300
                    
                    
                      300
                    
                    
                      3000
                    
                  
                
                ]
              
              ⁡
              
                [
                
                  
                    
                      1
                    
                  
                  
                    
                      1
                    
                  
                  
                    
                      1
                    
                  
                
                ]
              
            
            )
          
          2
        
      
      +
      
        
          
            (
            
              
                [
                
                  1
                  ⁢
                  
                    
                  
                  ⁢
                  1
                  ⁢
                  
                    
                  
                  ⁢
                  1
                
                ]
              
              ⁡
              
                [
                
                  
                    
                      30
                    
                    
                      60
                    
                    
                      300
                    
                  
                  
                    
                      60
                    
                    
                      90
                    
                    
                      300
                    
                  
                  
                    
                      300
                    
                    
                      300
                    
                    
                      3000
                    
                  
                
                ]
              
            
            )
          
          2
        
        ⁡
        
          [
          
            
              
                0.1
              
            
            
              
                0.2
              
            
            
              
                0.2
              
            
          
          ]
        
      
    
  




  
    
      
    
    ⁢
    
      
        Var
        ⁡
        
          (
          
            D
            PATH
          
          )
        
      
      ≅
      
        
          
            
              [
              
                0.1
                ⁢
                
                  
                
                ⁢
                0.2
                ⁢
                
                  
                
                ⁢
                0.2
              
              ]
            
            ⁡
            
              [
              
                
                  
                    390
                  
                
                
                  
                    450
                  
                
                
                  
                    3600
                  
                
              
              ]
            
          
          2
        
        +
        
          
            
              (
              
                [
                
                  390
                  ⁢
                  
                    
                  
                  ⁢
                  450
                  ⁢
                  
                    
                  
                  ⁢
                  3600
                
                ]
              
              )
            
            2
          
          ⁡
          
            [
            
              
                
                  0.1
                
              
              
                
                  0.2
                
              
              
                
                  0.2
                
              
            
            ]
          
        
      
    
  




  
    
      Var
      ⁢
      
        (
        
          D
          PATH
        
        )
      
    
    ≅
    
      

    
    ⁢
    
      
    
    ⁢
    
      
        
          [
          
            0.1
            ⁢
            
              
            
            ⁢
            0.2
            ⁢
            
              
            
            ⁢
            0.2
          
          ]
        
        ⁡
        
          [
          
            
              
                152100
              
            
            
              
                202500
              
            
            
              
                12960000
              
            
          
          ]
        
      
      +
      
        
          [
          
            152100
            ⁢
            
              
            
            ⁢
            202500
            ⁢
            
              
            
            ⁢
            12960000
          
          ]
        
        ⁡
        
          [
          
            
              
                0.1
              
            
            
              
                0.2
              
            
            
              
                0.2
              
            
          
          ]
        
      
    
  




  
    
      
    
    ⁢
    
      
        Var
        ⁡
        
          (
          
            D
            PATH
          
          )
        
      
      ≅
      
        5295420
        ⁢
        
          
        
        ⁢
        
          ps
          2
        
      
    
  




  
    
      
    
    ⁢
    
      
        St
        ⁢
        
          
        
        ⁢
        
          dev
          ⁡
          
            (
            
              D
              PATH
            
            )
          
        
      
      ≅
      
        2301
        ⁢
        
          
        
        ⁢
        ps
      
    
  



Using the method described above to calculate slack, the delays along the path are added to obtain the signal arrival time at the end of the path. For purposes of this example the arrival time TA at the beginning of the path is assumed to be zero. Accordingly, the arrival time TA at the end of the path is represented as DPATH. This arrival time TA is subtracted from the required time TR at the end of the path (508) to obtain the slack for the path. For example, assuming the final required time TR for the sample circuit shown in FIG. 5 is 5 ns (5000 ps), the path slack is given by the following equation:

SPATH=(5000−DPATH)ps

The mean value for the path slack is calculated based on the mean DPATH (as shown above=4440 ps) as follows:

Mean(SPATH)=(5000−Mean(DPATH))=5000−4440=560 ps

and it has approximately the same standard deviation (“stdev”) as the path delay calculated above:

Stdev(SPATH)≅2301 ps

Calculating Slack Distributions

In one embodiment, path slack follows a normal distribution. Therefore, its properties are calculated from its mean and standard deviation. For the example above, the standard deviation is much larger than the mean, so there is a significant likelihood that the path slack will be negative. According to this embodiment, the probability density function (pdf) of the normally distributed slack values is shown in FIG. 6, with a mean of μ=560 ps and standard deviation of σ=2301 ps.
The likelihood that an instance of the circuit associated with the distribution chart of FIG. 6 will meet its timing constraint when fabricated is the probability that the slack will be greater than or equal to zero. This is the area under the pdf curve to the right of the y-axis in FIG. 6. It can be calculated from standard statistical tables by normalizing the value (for X=0) as follows:




  Z
  =
  
    
      
        (
        
          X
          -
          μ
        
        )
      
      σ
    
    =
    
      
        
          0
          -
          560
        
        2301
      
      =
      
        -
        0.24
      
    
  




The area under the curve to the left of Z is read from a standard statistical normal distribution table to obtain a value of 0.42. This value corresponds to a projected process yield for this path of 0.58. Hence, the IC represented by this path is anticipated to function correctly for approximately 58% of the manufactured parts.
Statistical Issues for Block vs. Path-Based Analysis
Block based analysis is difficult because each path has a different PAT. Pruning is possible if parameter variations are known and a yield threshold is specified. However, it may be necessary to prune by parametric slack.
Identifying Parameters for Process Improvement
Parametric slack shows the sensitivity of timing to process parameters. Accordingly, in one embodiment it is used by EDA tools to identify areas where process control can improve yield and performance of the circuit design.
For example, with respect to the circuit shown in FIG. 5, if Metal 1 variation is reduced from 20% to 10%, the standard deviation of path slack is reduced slightly to 2292 ps and the yield remains at 58%. However, if Metal 2 variation is reduced by the same amount (from 20% to 10%), the slack standard deviation is reduced to 1644 ps and the yield increases to 62%. Thus, the PED timing analysis technique described above identifies that for this design a tighter process control for fabrication of the metal 2 layer would significantly improve the process yield.
Reprioritizing Paths Based on Process Yield
The worst-yielding path is not necessarily the path with the worst slack. Slack distributions may be used to calculate the yield of each endpoint and reprioritize endpoints based on their yield. For example, another path in the same design has a mean slack of 400 ps with a standard deviation of 600 ps. Although it has less slack, its yield is 74%, meaning it is more likely that the original path will have timing problems than that this one will.
Reducing Variation
A wire routed on a single layer will vary more than a similar wire routed on two layers. If a wire is equally divided across layers, each having similar variation n, the wire's variation will be 1/√{square root over (n)} of its variation if it had been routed on only one layer. Therefore, to reduce variation n in a wire, we can spread it across multiple layers. Because this adds via resistance and reduces reliability, it is better to distribute this sensitivity along a path.
According to one embodiment, parametric slack is used to identify excessive sensitivities to particular parameters and to reroute wires to reduce their variation. For example, PED based slack is used to reassign the wire of one stage in the example to use metal 1 only. To do this, the PED of the stage is given by the following equation:




  
    
      
        
          T
          D
          ′
        
        =
      
       
    
    ⁢
    
      

    
    ⁢
    
      
    
     
  
  [
  
    
  
  ⁢
  
    
      
        
          
            R
            GATE
          
          ⁢
          
            C
            GATE
          
        
      
      
        
          
            (
            
              
                R
                A
              
              +
              
                R
                B
              
              +
              
                R
                C
              
            
            )
          
          ⁢
          
            C
            GATE
          
        
      
      
        0
      
    
    
      
        
          
            R
            GATE
          
          ⁡
          
            (
            
              
                C
                A
              
              +
              
                C
                B
              
              +
              
                C
                C
              
            
            )
          
        
      
      
        
          
            
              R
              A
            
            ⁡
            
              (
              
                
                  C
                  A
                
                +
                
                  C
                  B
                
                +
                
                  C
                  C
                
              
              )
            
          
          +
          
            
              R
              B
            
            ⁡
            
              (
              
                
                  C
                  B
                
                +
                
                  C
                  C
                
              
              )
            
          
          +
          
            
              R
              C
            
            ⁢
            
              C
              C
            
          
        
      
      
        0
      
    
    
      
        0
      
      
        0
      
      
        0
      
    
  
  ]




For purposes of this example we assume that the resistance and capacitance values remain the same as those provided above. Using these values, the PED for the metal 1 only stage becomes:




  
    T
    D
    ′
  
  =
  
    
      [
      
        
          
            10
          
          
            120
          
          
            0
          
        
        
          
            120
          
          
            1230
          
          
            0
          
        
        
          
            0
          
          
            0
          
          
            0
          
        
      
      ]
    
    ⁢
    ps
  




To determine the PED for the new path, the delays for the other two stages are added to provide the following results:




  
    T
    PATH
    ′
  
  =
  
    
      
        2
        ⁢
        
          T
          D
        
      
      +
      
        T
        D
        ′
      
    
    =
    
      
        
          2
          ⁡
          
            [
            
              
                
                  10
                
                
                  20
                
                
                  100
                
              
              
                
                  20
                
                
                  30
                
                
                  100
                
              
              
                
                  100
                
                
                  100
                
                
                  1000
                
              
            
            ]
          
        
        +
        
          [
          
            
              
                10
              
              
                120
              
              
                0
              
            
            
              
                120
              
              
                1230
              
              
                0
              
            
            
              
                0
              
              
                0
              
              
                0
              
            
          
          ]
        
      
      =
      
        
          [
          
            
              
                30
              
              
                160
              
              
                200
              
            
            
              
                160
              
              
                1290
              
              
                200
              
            
            
              
                200
              
              
                200
              
              
                200
              
            
          
          ]
        
        ⁢
        ps
      
    
  




Since the actual resistance and capacitance values have not changed, the mean value of the path delay is unchanged, 4440 ps, and the mean value of path slack remains 560 ps. However, as shown below, its standard deviation is reduced to 1850 ps, which increases the process yield to 62%.



  
    
      Var
      ⁡
      
        (
        
          D
          PATH
          
            
              
            
            ′
          
        
        )
      
    
    ≅
    
      
        
          [
          
            0.1
            ⁢
            
              
            
            ⁢
            0.2
            ⁢
            
              
            
            ⁢
            0.2
          
          ]
        
        ⁢
        
          
            (
            
              
                [
                
                  
                    
                      30
                    
                    
                      160
                    
                    
                      200
                    
                  
                  
                    
                      160
                    
                    
                      1290
                    
                    
                      200
                    
                  
                  
                    
                      200
                    
                    
                      200
                    
                    
                      2000
                    
                  
                
                ]
              
              ⁡
              
                [
                
                  
                    
                      1
                    
                  
                  
                    
                      1
                    
                  
                  
                    
                      1
                    
                  
                
                ]
              
            
            )
          
          2
        
      
      +
      
        
          
            (
            
              
                [
                
                  1
                  ⁢
                  
                    
                  
                  ⁢
                  1
                  ⁢
                  
                    
                  
                  ⁢
                  1
                
                ]
              
              ⁡
              
                [
                
                  
                    
                      30
                    
                    
                      160
                    
                    
                      200
                    
                  
                  
                    
                      160
                    
                    
                      1290
                    
                    
                      200
                    
                  
                  
                    
                      200
                    
                    
                      200
                    
                    
                      2000
                    
                  
                
                ]
              
            
            )
          
          2
        
        ⁡
        
          [
          
            
              
                0.1
              
            
            
              
                0.2
              
            
            
              
                0.2
              
            
          
          ]
        
      
    
  




  
    
      
    
    ⁢
    
      
        Var
        ⁡
        
          (
          
            D
            PATH
            
              
                
              
              ′
            
          
          )
        
      
      ≅
      
        
          
            
              [
              
                0.1
                ⁢
                
                  
                
                ⁢
                0.2
                ⁢
                
                  
                
                ⁢
                0.2
              
              ]
            
            ⁡
            
              [
              
                
                  
                    390
                  
                
                
                  
                    1650
                  
                
                
                  
                    2400
                  
                
              
              ]
            
          
          2
        
        +
        
          
            
              (
              
                [
                
                  390
                  ⁢
                  
                    
                  
                  ⁢
                  1650
                  ⁢
                  
                    
                  
                  ⁢
                  2400
                
                ]
              
              )
            
            2
          
          ⁡
          
            [
            
              
                
                  0.1
                
              
              
                
                  0.2
                
              
              
                
                  0.2
                
              
            
            ]
          
        
      
    
  




  
    
      Var
      ⁡
      
        (
        
          D
          PATH
          
            
              
            
            ′
          
        
        )
      
    
    ≅
    
      

    
    ⁢
    
      
    
    ⁢
    
      
        
          [
          
            0.1
            ⁢
            
              
            
            ⁢
            0.2
            ⁢
            
              
            
            ⁢
            0.2
          
          ]
        
        ⁡
        
          [
          
            
              
                152100
              
            
            
              
                2722500
              
            
            
              
                5760000
              
            
          
          ]
        
      
      +
      
        
          [
          
            152100
            ⁢
            
              
            
            ⁢
            2722500
            ⁢
            
              
            
            ⁢
            5760000
          
          ]
        
        ⁡
        
          [
          
            
              
                0.1
              
            
            
              
                0.2
              
            
            
              
                0.2
              
            
          
          ]
        
      
    
  




  
    
      
    
    ⁢
    
      
        Var
        ⁡
        
          (
          
            D
            PATH
            
              
                
              
              ′
            
          
          )
        
      
      ≅
      
        3423420
        ⁢
        
          
        
        ⁢
        
          ps
          2
        
      
    
  




  
    
      
    
    ⁢
    
      
        Stdev
        ⁡
        
          (
          
            D
            PATH
            
              
                
              
              ′
            
          
          )
        
      
      ≅
      
        1850
        ⁢
        
          
        
        ⁢
        ps
      
    
  



While particular embodiments and applications of the present invention have been illustrated and described herein, it is to be understood that the invention is not limited to the precise construction and components disclosed herein and that various modifications, changes, and variations may be made in the arrangement, operation, and details of the methods and apparatuses of the present invention without departing from the spirit and scope of the invention as it is defined in the appended claims.

## Claims

1. A method for modeling effects of fabrication parameter variations in signal timing analysis of a resistance/capacitance circuit based on Elmore Delay based delay variance calculation in an electronic design automation tool for integrated circuit design, the method comprising:
receiving resistance variation parameter values characteristic of variation in resistance values associated with the circuit due to a fabrication process, each resistance variation parameter value associated with at least one layer of the fabrication process;
receiving capacitance variation parameter values characteristic of variation in capacitance values associated with the circuit due to the fabrication process, each capacitance variation parameter value associated with at least one layer of the fabrication process;
composing a square matrix (T) of Elmore-Delay-based products of resistance multiplied by sums of downstream capacitances for each path associated with each resistor of the circuit, the matrix comprising a number of rows and columns corresponding to a number of layers associated with resistance and capacitance variations due to the fabrication process, wherein each column includes the Elmore-Delay-based products corresponding to resistors in one or more layers associated with a resistance variation parameter value and each row includes the sums of downstream capacitances associated with capacitors in one or more layers associated with a capacitance variation parameter value; and
determining a delay variance based on the matrix T and the resistance and capacitance variation parameter values.

2. The method of claim 1, wherein determining the delay variance comprises calculating a delay variance value according to the following formula:


var(D)≅var(α)r(T1)2+(1TT)2var(β)

wherein α is a column vector of the resistance variation parameter values with one row per the one or more layers associated with resistance variations of the process and β is a column vector of the capacitance variation parameter values with one row per the one or more layers associated with capacitance variations of the process.

3. The method of claim 1, wherein the resistance variation parameter values and the capacitance variation parameter values are correlated based on the width and thickness of metal interconnects in the circuit.

4. The method of claim 1, wherein the resistance variation parameter values and the capacitance variation parameter values correspond to empirically determined variations due to process variations of factors associated with metal layer fabrication.

5. A computer program product stored on a computer readable storage medium for modeling effects of fabrication parameter variations in signal timing analysis of a resistance/capacitance circuit based on Elmore Delay based delay variance calculation in an electronic design automation tool for integrated circuit design, the computer program product comprising:
code for receiving resistance variation parameter values characteristic of variation in resistance values associated with the circuit due to a fabrication process, each resistance variation parameter value associated with at least one layer of the fabrication process;
code for receiving capacitance variation parameter values characteristic of variation in capacitance values associated with the circuit due to the fabrication process, each capacitance variation parameter value associated with at least one layer of the fabrication process;
code for composing a square matrix (T) of Elmore-Delay-based products of resistance multiplied by sums of downstream capacitances for each path associated with each resistor of the circuit, the matrix comprising a number of rows and columns corresponding to a number of layers associated with resistance and capacitance variations due to the fabrication process, wherein each column includes the Elmore-Delay-based products corresponding to resistors in one or more layers associated with a resistance variation parameter value and each row includes the sums of downstream capacitances associated with capacitors in one or more layers associated with a capacitance variation parameter value; and
code for determining a delay variance based on the matrix T and the resistance and capacitance variation parameter values.

6. The computer program product of claim 5, wherein the code for determining the delay variance comprises code for calculating a delay variance value according to the following formula:


var(D)≅var(α)r(T1)2+(1TT)2var(β)

wherein α is a column vector of the resistance variation parameter values with one row per the one or more layers associated with resistance variations of the process and β is a column vector of the capacitance variation parameter values with one row per the one or more layers associated with capacitance variations of the process.

7. The computer program product of claim 5, wherein the resistance variation parameter values and the capacitance variation parameter values are correlated based on the width and thickness of metal interconnects in the circuit.

8. The computer program product of claim 5, wherein the resistance variation parameter values and the capacitance variation parameter values correspond to empirically determined variations due to process variations of factors associated with metal layer fabrication.

9. A system for modeling effects of fabrication parameter variations in signal timing analysis of a resistance/capacitance circuit based on Elmore Delay based delay variance calculation in an electronic design automation tool for integrated circuit design, the system comprising:
a processor; and
a memory coupled to the processor, the memory configured to store a set of instructions which when executed by the processor cause the processor to:
receive resistance variation parameter values characteristic of variation in resistance values associated with the circuit due to a fabrication process, each resistance variation parameter value associated with at least one layer of the fabrication process;
receive capacitance variation parameter values characteristic of variation in capacitance values associated with the circuit due to the fabrication process, each capacitance variation parameter value associated with at least one layer of the fabrication process;
compose a square matrix (T) of Elmore-Delay-based products of resistance multiplied by sums of downstream capacitances for each path associated with each resistor of the circuit, the matrix comprising a number of rows and columns corresponding to a number of layers associated with resistance and capacitance variations due to the fabrication process, wherein each column includes the Elmore-Delay-based products corresponding to resistors in one or more layers associated with a resistance variation parameter value and each row includes the sums of downstream capacitances associated with capacitors in one or more layers associated with a capacitance variation parameter value; and
determine a delay variance based on the matrix T and the resistance and capacitance variation parameter values.

10. The system of claim 9, wherein the processor is caused to calculate a delay variance value according to the following formula to determine the delay variance:


var(D)≅var(α)r(T1)2+(1TT)2var(β)

wherein α is a column vector of the resistance variation parameter values with one row per the one or more layers associated with resistance variations of the process and β is a column vector of the capacitance variation parameter values with one row per the one or more layers associated with capacitance variations of the process.

11. The system of claim 9, wherein the resistance variation parameter values and the capacitance variation parameter values are correlated based on the width and thickness of metal interconnects in the circuit.

12. The system of claim 9, wherein the resistance variation parameter values and the capacitance variation parameter values correspond to empirically determined variations due to process variations of factors associated with metal layer fabrication.