US20050268262A1 - System and method for calculating effective capacitance for timing analysis - Google Patents

System and method for calculating effective capacitance for timing analysis Download PDF

Info

Publication number
US20050268262A1
US20050268262A1 US11/195,237 US19523705A US2005268262A1 US 20050268262 A1 US20050268262 A1 US 20050268262A1 US 19523705 A US19523705 A US 19523705A US 2005268262 A1 US2005268262 A1 US 2005268262A1
Authority
US
United States
Prior art keywords
capacitance
voltage
model
interconnect
capacitances
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/195,237
Other versions
US7454719B2 (en
Inventor
Wolfgang Roethig
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.)
Renesas Electronics America Inc
Original Assignee
Wolfgang Roethig
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 Wolfgang Roethig filed Critical Wolfgang Roethig
Priority to US11/195,237 priority Critical patent/US7454719B2/en
Publication of US20050268262A1 publication Critical patent/US20050268262A1/en
Application granted granted Critical
Publication of US7454719B2 publication Critical patent/US7454719B2/en
Assigned to Renesas Electronics America, Inc. reassignment Renesas Electronics America, Inc. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: NEC ELECTRONICS AMERICA, INC.
Expired - Fee Related legal-status Critical Current
Adjusted 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods

Definitions

  • This invention relates to the field of IC (Integrated Circuit) design and, more particular, to techniques for calculating the effective capacitance of an interconnect in an IC design.
  • IC design process various components within an IC design are modeled and simulated so that the performance of those components can be verified against various design requirements before the IC is physically produced. If the modeled IC design does not perform as required, various parts of the IC design are modified, and the resulting IC design is again modeled and simulated. This process continues until a satisfactory IC design is obtained.
  • An interconnect model can also be used to model the cell timing (based on cell delay and interconnect delay) of a cell connected to an interconnect being modeled.
  • interconnect models There are many different interconnect models.
  • One model referred to as a pi model, is generated using moment-matching techniques based on information extracted from the physical layout of the IC design.
  • the pi model can be obtained by moment-matching the first three moments of the driving point admittance of a more complex interconnect model extracted from the physical layout.
  • the resulting pi model which includes two capacitances connected by a resistance, can then be reduced to a lumped-capacitance model, which includes a single effective capacitance. Conversion from a pi model to a lumped-capacitance model typically involves using numeric methods.
  • the lumped-capacitance model represents the driving point admittance of the interconnect model, which is in turn used to perform interconnect delay analysis.
  • interconnect models represent the real-world performance of an interconnect as accurately as possible. More accurate interconnect models allow designers to more reliably detect design errors while also reducing the amount of overdesign (i.e., designing an IC more conservatively than is actually required, resulting in unneeded components or space or in decreased performance).
  • the desire for more accurate interconnect models is balanced against the need to obtain an interconnect model within a reasonable amount of time.
  • the more accurate the modeling technique the more computationally intensive it is to obtain the model. Accordingly, less accurate models are often used in commercial applications because such models can be obtained significantly more quickly for complicated IC designs than more accurate models could be obtained. Since interconnect delay analysis is a necessary part of the IC design process, it is desirable to have techniques for obtaining the effective capacitance of an interconnect model that are both accurate and relatively simple to obtain.
  • FIG. 1 illustrates a generic interconnect model used to perform interconnect delay analysis in VDSM (Very Deep Sub-Micron) IC design processes.
  • the model in FIG. 1 includes virtual source node 101 at which voltage V 0 (t) is applied as a stimulus to driver 110 .
  • Driver 110 represents a gate coupled to drive a signal on the interconnect represented by R(L)C network 120 (R(L)C refers to a network that includes one or more resistances R and one or more capacitances C, and that can, in some cases, include one or more optional inductances L).
  • the model includes driving point node 103 .
  • Voltage V DP (t) is measured between driving point node 103 and ground.
  • Driving point node 103 is located between the output of driver 110 and the input to R(L)C network 120 .
  • Current I DP (t) flows from driver 110 to R(L)C network 120 .
  • R(L)C network 120 models an interconnect as an R(L)C network without a DC (Direct Current) connection to ground.
  • R(L)C network 120 includes N interconnect nodes (only one such interconnect node, interconnect node 105 (k), is shown in the example of FIG. 1 ).
  • Capacitance C k couples interconnect node 105 (k) to ground, and voltage V k (t) is measured across capacitance C k .
  • Each other interconnect node (if any) in R(L)C network 120 is similarly coupled to ground by a respective capacitance across which a respective voltage is measured.
  • R(L)C network 120 can be obtained by extracting predicted electrical parasitics from the physical layout of an IC design.
  • the driving point admittance represents the admittance of R(L)C network 120 as seen at driving point node 103 .
  • the model of FIG. 1 can be reduced to an Nth order model by matching the first N+1 moments of the driving point admittance Y(s). Such a reduction simplifies delay calculation, while preserving at least some of the accuracy of the representation of the driving point admittance Y(s).
  • the timing characteristics of cells in an IC design are typically characterized by a lumped capacitive load. However, such characterizations are typically too inaccurate to represent R(L)C network 120 .
  • using the model of FIG. 1 to perform timing analysis may be undesirable, due the large amount of computation effort needed to analyze the model. To preserve at least some accuracy while reducing the computation effort, the model of FIG. 1 is typically reduced to an equivalent lumped-capacitance interconnect model like the one shown in FIG. 2 .
  • FIG. 2 illustrates a lumped-capacitance interconnect model that is derived from the interconnect model shown in FIG. 1 .
  • the lumped-capacitance interconnect model is similar to the interconnect model of FIG. 1 , but R(L)C network 120 has been replaced with C eff .
  • C eff is the effective capacitance of R(L)C network 120 .
  • Current I(t) flows into C eff , and voltage V(t) is measured across C eff .
  • C eff is an “effective” capacitance in that its value is selected so that the average current flowing through C eff of FIG. 2 is equal to the average current flowing through driving point node 103 of FIG. 1 .
  • N is the total number of interconnect nodes in R(L)C network 120 of FIG. 1 .
  • Equation Eq. 1 is used to calculate the value of the effective capacitance, C eff , for use in the lumped-capacitance interconnect model, from the characteristics of an interconnect model such as the one shown in FIG. 1 .
  • N is the total number of interconnect nodes in R(L)C network 120 of FIG. 1 .
  • Equation Eq. 1 shown in FIG. 2 requires a numerical solution if N>1 and V DP (t) is not equal to V(t) (i.e., if the driving point voltage in FIG. 1 is not equal to the voltage across the effective capacitance C eff in FIG. 2 ).
  • To solve Eq. 1 thus requires the use of numerical methods (e.g., trial and error, Newton-Raphson iteration, and the like).
  • the use of numerical methods can undesirably increase the computation effort needed to calculate the value of C eff . For example, faster processors, larger memories, and/or more computation time may be required to solve for C eff than is desirable.
  • a method involves: accessing data representing an interconnect model, where the interconnect model includes a driving point node and is not a lumped capacitance model; calculating a value of an effective capacitance of the interconnect model to be inversely proportional to a voltage at the driving point node of the interconnect model; and storing the value of the effective capacitance.
  • the interconnect model is a pi model.
  • the interconnect model includes one or more inductances. Program instructions implementing such a method can be stored on a computer readable medium.
  • Calculating the effective capacitance can also involve calculating the effective capacitance to be directly proportional to a sum of one or more products, where each of the products equals a product of a respective one of one or more capacitances included in the interconnect model and a voltage across the respective capacitance.
  • Such a method can also involve accessing data representing a driver model and calculating the value of the effective capacitance as a function of a value (e.g., of a driver resistance R driver ) included in the driver model.
  • FIG. 1 illustrates a generic interconnect model used to perform interconnect delay analysis in VDSM (Very Deep Sub-Micron) IC design processes.
  • VDSM Very Deep Sub-Micron
  • FIG. 2 illustrates a lumped-capacitance interconnect model that is derived from the interconnect model shown in FIG. 1 .
  • FIG. 3 shows an equation that can be used to calculate the effective capacitance of an R(L)C interconnect model, according to one embodiment.
  • FIG. 4 shows an exemplary pi interconnect load model from which an effective capacitance can be calculated, according to one embodiment.
  • FIG. 5A is a flowchart of a method of calculating effective capacitance, according to one embodiment.
  • FIG. 5B shows another example of a method of calculating effective capacitance, according to another embodiment.
  • FIG. 6 shows a series of equations useable to calculate the effective capacitance of a pi model, according to one embodiment.
  • FIG. 7 is a flowchart of a method of calculating the effective capacitance of a pi model, according to one embodiment.
  • FIG. 8 illustrates another interconnect model from which an effective capacitance can be calculated, according to one embodiment.
  • FIG. 9 illustrates yet another interconnect model from which effective capacitance can be calculated, according to one embodiment.
  • FIG. 10 illustrates a computer system that runs software configured to calculate effective capacitance, according to one embodiment.
  • FIG. 3 illustrates equation Eq. 2, which is usable to calculate the effective capacitance of an interconnect from the nodal capacitances included in an interconnect model, such as the one illustrated in FIG. 1 , of the interconnect.
  • equation Eq. 2 can be used to calculate C eff for use in a lumped capacitance model such as the one illustrated in FIG. 2 , from the characteristics of a more complex non-lumped-capacitance interconnect model like that shown in FIG. 1 .
  • Eq. 2 can be used to calculate C eff for use in a lumped capacitance model such as the one illustrated in FIG. 2 , from the characteristics of a more complex non-lumped-capacitance interconnect model like that shown in FIG. 1 .
  • the effective capacitance C eff can be interpreted as a weighted sum of capacitances C k , where the weighting factor is the ratio between the voltage V k (T) across that capacitance and the voltage V DP (T) at driving point node 103 (as shown in FIG. 1 ).
  • Voltage V k (T) is voltage V k (t), as shown in FIG.
  • Equation Eq. 2 provides a closed-form solution for at least some interconnect models, since all of the voltages V k (T) can be precalculated for a given R(L)C network if N is less than or equal to 2 and since V DP (T) is not a function of C eff .
  • C eff can be calculated from the equation of FIG. 3 using analytic (as opposed to numerical) techniques. Analytical techniques are typically much less complex and computationally intensive than numerical techniques.
  • V DP (T) of equation Eq. 2 differs from V(T) of equation Eq. 1 in several ways.
  • V(T) is the voltage across the effective capacitance C eff in a lumped capacitance model. V(T) is thus dependent on C eff and cannot be calculated independently of C eff using traditional techniques.
  • V DP (T) is the driving point voltage across the input to a non-lumped-capacitance interconnect model that includes an R(L)C network.
  • V DP (T) does not depend on C eff (which is not part of the R(L)C network modeled by a non-lumped-capacitance interconnect model), and thus, unlike V(T), V DP (T) can be calculated independently of C eff .
  • Equation Eq. 2 of FIG. 3 can be used with various different interconnect models that include one or more nodal capacitances coupled to ground. Exemplary interconnect models from which equation Eq. 2 can calculate an effective capacitance are shown in FIGS. 4 and 8 - 9 .
  • FIG. 4 shows an exemplary pi interconnect load model from which an effective capacitance can be calculated using equation Eq. 2 of FIG. 3 .
  • driver 110 is coupled to interconnect model 400 .
  • Driver 110 is represented by a voltage source 111 , across which a voltage V 0 (t) is applied, and a resistance R driver .
  • interconnect model 400 is a pi model that includes capacitance C 1 , capacitance C 2 , and resistor R wire .
  • R wire couples C 1 and C 2 .
  • the interconnect model 400 includes two interconnect nodes 105 ( 1 ) and 105 ( 2 ).
  • Driving point node 103 is at the same electrical potential as interconnect node 105 ( 1 ), and thus the voltage V DP (t) measured between the driving point node and ground is the same as the voltage V 1 (t) measured across C 1 .
  • Equation Eq. 2 of FIG. 3 can be used to calculate the effective capacitance C eff of interconnect model 400 .
  • FIG. 5A illustrates a method of calculating the effective capacitance of an interconnect model.
  • stored values indicative of each capacitance, resistance, and/or inductance in the interconnect model and/or driver model from which the effective capacitance is being calculated are accessed.
  • the interconnect model from which the effective capacitance is to be calculated is a pi model like that shown in FIG. 4
  • values representing nodal capacitances C 1 and C 2 (from the pi model) and resistances R wire (from the pi model) and R driver (from the driver model) are accessed.
  • These values can be accessed from a stored interconnect model representing an interconnect in an IC design and a stored driver model representing a gate in the IC design.
  • the values accessed at 501 are used to calculate the voltage at each node in the interconnect model (each node is a point coupled to ground by a respective one of the capacitances in the interconnect model, and thus the voltage at each node is the voltage across a respective capacitance) and the voltage at the driving point node of the interconnect model.
  • the interconnect model is the pi model shown in FIG.
  • the values of R wire , R driver , C 1 , and C 2 can be processed to obtain values representing the voltage at interconnect nodes 105 ( 1 ) and 105 ( 2 ) as well as the voltage at the driving point node 103 (in this example the voltage at the driving point node 103 is the same as the voltage at the first interconnect node 105 ( 1 )).
  • the effective capacitance is calculated to be inversely proportional to the voltage at the driving point node and proportional to the sum of the products formed by multiplying each one of the capacitances by the voltage across that capacitance, as indicated at 505 .
  • a value indicative of the effective capacitance generated at 505 is stored. This value may then be used to perform timing analysis of an IC design in which the interconnect represented by the interconnect model is included.
  • the computation that calculates the effective capacitance (e.g., in function 505 ) and the computation(s) to calculate the voltage across each capacitance and the voltage at the driving point node (e.g., in function 503 ) can be substantially combined.
  • the values of the capacitances, resistances, and/or inductances in the interconnect model can be accessed as input parameters to a process that calculates the effective capacitance.
  • Such a process may perform computations according to Eq. 2 of FIG. 3 , into which expressions representing the individual voltages V k and V DP have been substituted.
  • the voltages V k and V DP may be calculated as part of the process of calculating C eff .
  • Execution of such a process may not necessarily store the values of these voltages in such a way that they are accessible to external processes. Furthermore, in some embodiments, these voltages are not independently calculated at all.
  • a process that calculates effective capacitance can operate according to a formula that, due to algebraic reductions after the expressions for the individual voltages have been substituted into Eq. 2, does not actually calculate each of the individual voltages across the capacitances and/or the voltage at the driving point node (e.g., the process may operate on the input parameters according to an equation such as Eq. 9 of FIG. 6 ). In such embodiments, function 503 is not performed.
  • the effective capacitance calculated by such processes is still calculated in such a way that the effective capacitance is inversely proportional to the voltage at the driving point node and directly proportional the sum of the products formed by multiplying each one of the capacitances by the voltage across that capacitance.
  • FIG. 5B illustrates another method of calculating the effective capacitance of an interconnect model. As in the method of FIG. 5A , this method involves accessing values indicative of each capacitance, resistance, and/or inductance in the interconnect model and/or driver model, as shown at 551 . These values can then be used to calculate the voltage at the driving point node of the interconnect model and the voltages across each of the capacitances, as indicated at 553 .
  • each capacitance (accessed at 501 ) is scaled by ratio of the voltage across that capacitance to voltage at the driving point node.
  • the scaled capacitances are summed to produce effective capacitance, as indicated at 557 .
  • functions 503 - 505 of FIG. 5A functions 553 - 557 of FIG. 5B can be combined in some embodiments.
  • a value indicative of the effective capacitance generated at 557 is stored.
  • functions 555 - 557 of FIG. 5B operate to calculate the effective capacitance in a fashion that is consistent with function 505 of FIG. 5A .
  • the effective capacitance generated by function 557 of FIG. 5B is inversely proportional to the voltage at the driving point node and directly proportional the sum of the products formed by multiplying each one of the capacitances by the voltage across that capacitance.
  • Other methods can also calculate the effective capacitance in a way that is consistent with function 505 of FIG. 5A .
  • the effective capacitance can be calculated by summing the products formed by multiplying each one of the capacitances in the interconnect model by the voltage across that capacitance, and then dividing the sum by the voltage at the driving point node.
  • the effective capacitance can be calculated by calculating the products formed by multiplying each one of the capacitances in the interconnect model by the voltage across that capacitance, dividing each of those products by the voltage at the driving point node, and then summing each of the modified products.
  • FIG. 6 shows equations that can be used to calculate the effective capacitance of the pi interconnect model shown in FIG. 4 .
  • Eqs. 3 calculate three time constants, T 11 , T 12 , and T 22 from the values of the capacitances and resistances in the pi interconnect model and the driver model (these capacitances and resistances are examples of the values accessed in function 501 of FIG. 5A ).
  • Eqs. 4 calculate additional time constants, T Root and T Elmore , from the time constants generated by Eqs. 3.
  • Eqs. 5 calculate constants s 1 and s 2 from the time constants generated by Eqs. 3 and 4.
  • Constants s 1 , and s 2 are then used, in conjunction with T 22 and T Root , to generate constants ⁇ 1 1 , ⁇ 1 2 , ⁇ 2 1 , and ⁇ 2 2 , as shown by Eqs. 6.
  • Equations Eq. 7 show the time domain responses of V 1 (t) and V 2 (t) of the pi model in response to a ramp voltage V 0 (t) at the driver (V 0 (t), V 1 (t), and V 2 (t) are shown in FIG. 4 ).
  • Eqs. 3-6 are examples of equations that can be used to calculate the voltages in function 503 in FIG. 5A .
  • Eq. 9 the effective capacitance of the pi model can be calculated directly from the values R wire , R driver , C 1 , and C 2 (Eq. 9 provides a way to combine functions 503 and 505 of FIG. 5A ).
  • the example equations of FIG. 6 show how the use of Eq. 2 in FIG. 3 can provide a closed-form solution for calculating effective capacitance of a pi model.
  • FIG. 7 shows how effective capacitance can be calculated for a pi model.
  • stored values indicative of capacitances and resistances in a pi interconnect model are accessed.
  • Time constants e.g., T 11 , T 12 , and T 22 from FIG. 6
  • the time constants calculated at 703 and the values accessed at 701 are used to calculate other constants (e.g., s 1 , s 2 , T Root , T Elmore , ⁇ 1 1 , ⁇ 1 2 , ⁇ 1 2 , and ⁇ 2 2 ).
  • C eff is then calculated from the constants calculated at 705 & the values of capacitances accessed at 701 , using Eq. 9 of FIG. 6 .
  • FIG. 8 illustrates another example of an interconnect load model 400 for which effective capacitance can be calculated using the equation of FIG. 3 .
  • This model can represent a multi-fanout net with unbalanced loads on several branches.
  • This model can also represent an interconnect that is experiencing coupling (i.e., non-grounded capacitance), since R 1 and R 2 of FIG. 8 can each represent, partially or totally, the holding resistances of the coupled nets.
  • interconnect model 400 is represented by a model that has two parallel branches. Each branch includes a resistance in series with a capacitance that is coupled to ground.
  • the first branch includes resistance R 1 and capacitance C 1 .
  • Interconnect node 105 ( 1 ) is located at the point where resistance R 1 is coupled to capacitance C 1 .
  • Capacitance C 1 couples interconnect node 105 ( 1 ) to ground.
  • the second branch includes resistance R 2 and capacitance C 2 .
  • Interconnect node 105 ( 2 ) is located between capacitance C 2 and resistance R 2 .
  • Capacitance C 2 couples interconnect node 105 ( 2 ) to ground.
  • interconnect load model 400 can include more branches than are illustrated in FIG. 8 .
  • V 1 (t) at interconnect node 105 ( 1 ) is the voltage across capacitance C 1 .
  • Voltage V 2 (t) at interconnect node 105 ( 2 ) is similarly the voltage across capacitance C 2 .
  • driving point voltage V DP (t) of this interconnect model is not the same as one of the voltages V 1 (t) or V 2 (t) across one of the capacitances.
  • Values of V 1 (T), V DP (T), and V 2 (T) can be obtained using typical circuit analysis techniques and calculated from the values of R driver , R 1 , R 2 , C 1 , and C 2 .
  • FIG. 9 illustrates another interconnect model for which effective capacitance can be calculated using equation Eq. 2 of FIG. 3 .
  • both driver model 110 and interconnect model 400 include an inductance.
  • Driver model 110 includes inductance L driver
  • interconnect model 400 includes inductance L wire .
  • the driver model 110 and interconnect model 400 of this example can be useful, for example, when calculating delay for circuitry designed to be operated above 500 MHz.
  • interconnect model 400 includes resistance R wire and capacitance C wire .
  • L wire , R wire , and C wire are arranged in series.
  • C wire is coupled between R wire and ground.
  • Interconnect node 105 ( 1 ) is located between C wire and R wire .
  • Voltage V 1 (t) at interconnect node 105 ( 1 ) is the voltage across C wire .
  • the effective capacitance C eff of the interconnect load model 400 is C wire * V 1 (T)/V DP (T).
  • V 1 (T) and I DP (T) can be analytically calculated in response to V 0 from values of L driver , L wire , R driver , and R wire .
  • the inductances L driver and L wire can be lumped together, as may be the resistances R driver and R wire .
  • V DP (T) can be calculated from V 1 (T) and I DP (T) using Ohm's law.
  • FIG. 10 shows a block diagram of a computer system 1000 that includes software configured to calculate effective capacitance from an interconnect model 400 , according to one embodiment.
  • computer system 1000 includes one or more processors 1002 , I/O interface 1004 (e.g., a bus bridge, network interface card, or other device for interfacing to other computers or to peripheral devices), and memory 1006 .
  • Memory 1006 stores data and instructions, executable by processor 1002 , that implement interconnect model 400 , cell library 1052 , effective capacitance generation tool 1054 , and timing analysis tool 1056 .
  • the instructions and data stored in memory 1006 can be organized into one or more data and/or program files.
  • I/O interface 1004 is coupled to a storage device 1075 .
  • Storage device 1075 can be coupled to computer system 1000 by a bus, network (e.g., the Internet), or other interconnect.
  • Storage device 1075 provides a persistent store for information accessed by computer system 1000 and can be implemented using magnetic, optical and/or mechanical (e.g., MEMS (Micro Electro-Mechanical Systems) memory.
  • Storage device 1075 can include a single storage device or an array of storage devices.
  • Interconnect model 400 is an R(L)C model of an interconnect model included in an IC design. Interconnect model 400 can be obtained in response to extracting information indicative of the predicted characteristics of an interconnect from the physical layout of the IC design. Interconnect model 400 can be any of various types of R(L)C networks. For example, interconnect model 400 can be a pi model (e.g., as shown in FIG. 4 ), a multi-fanout net with unbalanced loads (e.g., as shown in FIG. 8 ), an interconnect model that includes inductance (e.g., as shown in FIG. 9 ), or any other appropriate interconnect model that includes one or more capacitances coupled to ground.
  • a pi model e.g., as shown in FIG. 4
  • a multi-fanout net with unbalanced loads e.g., as shown in FIG. 8
  • an interconnect model that includes inductance e.g., as shown in FIG. 9
  • any other appropriate interconnect model that includes one or more capacit
  • Cell library 1052 includes various standard components and precalculated information useable to model and simulate the performance and functionality of components included in an IC design.
  • cell library 1052 includes information representing various cells (e.g., logic gates and other components) included in the IC design.
  • Cell library 1052 can include, for example, a driver model for each cell.
  • the driver model for a cell coupled to the interconnect modeled by interconnect model 400 can be used in conjunction with the interconnect model 400 to calculate the effective capacitance of the interconnect model.
  • parameters such as R driver and/or L driver can be obtained from the driver model for the cell.
  • Effective capacitance generation tool 1054 is a process that is configured to generate the effective capacitance, for use in a lumped-capacitance model, of an interconnect modeled by interconnect model 400 .
  • Effective capacitance generation tool 1054 generates the effective capacitance according to Eq. 2 of FIG. 3 .
  • Effective capacitance generation tool 1054 uses information included in interconnect model 400 and cell library 1052 (e.g., such as information about the driver coupled to that interconnect) to calculate effective capacitance.
  • Effective capacitance generation tool 1054 stores the calculated effective capacitance as effective capacitance value 1058 .
  • effective capacitance generation tool 1054 calculates values of effective capacitance for several different values of each parameter in a given type interconnect model. For example, if the type of interconnect model being considered is a pi model, effective capacitance generation tool 1054 can calculate values of effective capacitance for each of several values of each parameter (C 1 , R driver , R wire , and C 2 ) in the pi model. The different effective capacitance values can be stored in a lookup table and indexed by the values of the parameters used to generate each different effective capacitance value.
  • the value of the effective capacitance for a given instance of that type of interconnect model can be calculated by interpolating between values in the lookup table based on the relationship between the actual parameters of that instance of the interconnect model and the values of the parameters used to index into the lookup table.
  • effective capacitance value 1058 may be one of several effective capacitance values included in a lookup table.
  • Timing analysis tool 1056 is configured to perform timing analysis of a substantially complete IC design. Timing analysis tool 1056 uses the effective capacitance value 1058 to calculate, for example, the driving point admittance of a lumped-capacitance model derived from interconnect model 400 . The driving point admittance can then be used to analyze the timing of the IC design that includes the interconnect modeled by interconnect model 400 .
  • timing analysis tool 1056 can access the lookup table, based on the specific values of one or more parameters of interconnect model 400 , and interpolate between values in the lookup table to obtain the effective capacitance.
  • cell library 1052 may be stored in a storage device coupled to computer system 1000 by a LAN (Local Area Network) or SAN (Storage Area Network). Portions of cell library 1052 can be loaded into memory 1006 of a particular computer system as different parts of the IC design are analyzed by applications such as effective capacitance generation tool 1054 and/or timing analysis tool 1056 executing on that computer system.
  • LAN Local Area Network
  • SAN Storage Area Network
  • effective capacitance generation tool 1054 can be configured to calculate one or more effective capacitance values for a given instance of an interconnect model and/or for a given type of interconnect model and to store the effective value(s) (e.g., as part of a lookup table) to a network storage device 1075 . This stored information can then be accessed by timing analysis tool 1056 , which is executing on a different computer system than effective capacitance generation tool 1054 .
  • the tools illustrated as being separate applications in FIG. 10 can also be implemented as a single application in some embodiments.
  • functionality implemented by effective capacitance generation tool 1054 can be integrated into a single application with timing analysis tool 1056 .
  • the program instructions and data implementing interconnect model 400 , cell library 1052 , effective capacitance generation tool 1054 , and/or timing analysis tool 1056 can be stored upon various computer readable media such as memory 1006 .
  • software implementing at least some of these tools is stored on a computer readable medium such as a CD (Compact Disc), DVD (Digital Versatile Disc), hard disk, optical disk, tape device, floppy disk, and the like).
  • a computer readable medium such as a CD (Compact Disc), DVD (Digital Versatile Disc), hard disk, optical disk, tape device, floppy disk, and the like).
  • the instructions and data implementing the tools and/or models are loaded into memory 1006 from the other computer readable medium.
  • a computer readable medium is a carrier medium such as a network and/or a wireless link upon which signals such as electrical, electromagnetic, or digital signals, on which the data and instructions implementing the tools and/or models are encoded, are conveyed.

Abstract

A method involves: accessing data representing an interconnect model, where the interconnect model includes a driving point node and is not a lumped capacitance model; calculating a value of an effective capacitance of the interconnect model to be inversely proportional to a voltage at the driving point node of the interconnect model; and storing the value of the effective capacitance. Such a method can be used to calculate effective capacitance of the interconnect model using analytical techniques.

Description

    FIELD OF THE INVENTION
  • This invention relates to the field of IC (Integrated Circuit) design and, more particular, to techniques for calculating the effective capacitance of an interconnect in an IC design.
  • BACKGROUND OF THE INVENTION
  • During the integrated circuit (IC) design process, various components within an IC design are modeled and simulated so that the performance of those components can be verified against various design requirements before the IC is physically produced. If the modeled IC design does not perform as required, various parts of the IC design are modified, and the resulting IC design is again modeled and simulated. This process continues until a satisfactory IC design is obtained.
  • An interconnect model can also be used to model the cell timing (based on cell delay and interconnect delay) of a cell connected to an interconnect being modeled. There are many different interconnect models. One model, referred to as a pi model, is generated using moment-matching techniques based on information extracted from the physical layout of the IC design. The pi model can be obtained by moment-matching the first three moments of the driving point admittance of a more complex interconnect model extracted from the physical layout. The resulting pi model, which includes two capacitances connected by a resistance, can then be reduced to a lumped-capacitance model, which includes a single effective capacitance. Conversion from a pi model to a lumped-capacitance model typically involves using numeric methods. The lumped-capacitance model represents the driving point admittance of the interconnect model, which is in turn used to perform interconnect delay analysis.
  • In general, it is desirable that interconnect models represent the real-world performance of an interconnect as accurately as possible. More accurate interconnect models allow designers to more reliably detect design errors while also reducing the amount of overdesign (i.e., designing an IC more conservatively than is actually required, resulting in unneeded components or space or in decreased performance). However, the desire for more accurate interconnect models is balanced against the need to obtain an interconnect model within a reasonable amount of time. Generally, the more accurate the modeling technique, the more computationally intensive it is to obtain the model. Accordingly, less accurate models are often used in commercial applications because such models can be obtained significantly more quickly for complicated IC designs than more accurate models could be obtained. Since interconnect delay analysis is a necessary part of the IC design process, it is desirable to have techniques for obtaining the effective capacitance of an interconnect model that are both accurate and relatively simple to obtain.
  • Overview of Interconnect Models
  • FIG. 1 illustrates a generic interconnect model used to perform interconnect delay analysis in VDSM (Very Deep Sub-Micron) IC design processes. The model in FIG. 1 includes virtual source node 101 at which voltage V0(t) is applied as a stimulus to driver 110. Driver 110 represents a gate coupled to drive a signal on the interconnect represented by R(L)C network 120 (R(L)C refers to a network that includes one or more resistances R and one or more capacitances C, and that can, in some cases, include one or more optional inductances L).
  • The model includes driving point node 103. Voltage VDP(t) is measured between driving point node 103 and ground. Driving point node 103 is located between the output of driver 110 and the input to R(L)C network 120. Current IDP(t) flows from driver 110 to R(L)C network 120.
  • R(L)C network 120 models an interconnect as an R(L)C network without a DC (Direct Current) connection to ground. R(L)C network 120 includes N interconnect nodes (only one such interconnect node, interconnect node 105(k), is shown in the example of FIG. 1). Capacitance Ck couples interconnect node 105(k) to ground, and voltage Vk(t) is measured across capacitance Ck. Each other interconnect node (if any) in R(L)C network 120 is similarly coupled to ground by a respective capacitance across which a respective voltage is measured.
  • R(L)C network 120 can be obtained by extracting predicted electrical parasitics from the physical layout of an IC design. The model of FIG. 1 is characterized by its voltage transfer function, Hk(s)=Vk(s)/V0(s), and its driving point admittance Y(s), where Y(s)=IDP(s)/VDP(s). The driving point admittance represents the admittance of R(L)C network 120 as seen at driving point node 103. The model of FIG. 1 can be reduced to an Nth order model by matching the first N+1 moments of the driving point admittance Y(s). Such a reduction simplifies delay calculation, while preserving at least some of the accuracy of the representation of the driving point admittance Y(s).
  • The timing characteristics of cells in an IC design are typically characterized by a lumped capacitive load. However, such characterizations are typically too inaccurate to represent R(L)C network 120. At the same time, using the model of FIG. 1 to perform timing analysis may be undesirable, due the large amount of computation effort needed to analyze the model. To preserve at least some accuracy while reducing the computation effort, the model of FIG. 1 is typically reduced to an equivalent lumped-capacitance interconnect model like the one shown in FIG. 2.
  • FIG. 2 illustrates a lumped-capacitance interconnect model that is derived from the interconnect model shown in FIG. 1. The lumped-capacitance interconnect model is similar to the interconnect model of FIG. 1, but R(L)C network 120 has been replaced with Ceff. Ceff is the effective capacitance of R(L)C network 120. Current I(t) flows into Ceff, and voltage V(t) is measured across Ceff.
  • Ceff is an “effective” capacitance in that its value is selected so that the average current flowing through Ceff of FIG. 2 is equal to the average current flowing through driving point node 103 of FIG. 1. The average current (Iavg, shown in the equation below) flowing through Ceff equals the product of 1/T and the integral from t=0 to t=T of I(t)dt, which in turn equals the product of 1/T, Ceff, and V(T) (with V(0)=0). Time t=0 is the time at which ramp voltage V0(t) stimulus to driver 110 begins ramping up; t=T is the time at which ramp voltage V0(t) reaches its final value. I avg = 1 T · 0 T I ( t ) t = 1 T · C eff · V ( T )
    The average current (IDPavg, shown in the equation below) through driving point node 103 equals the product of 1/T and the integral from t=0 to t=T of IDP(t)dt. This average current in turn equals the product of 1/T and the sum, from k=1 to N, of the product of Ck and Vk(T), with Vk(0)=0. N is the total number of interconnect nodes in R(L)C network 120 of FIG. 1. I DPavg = 1 T · 0 T I DP ( t ) t = 1 T · k = 1 N C k · V k ( T )
    By equating Iavg with IDPavg, equation Eq. 1 in FIG. 2 is obtained.
  • Equation Eq. 1 is used to calculate the value of the effective capacitance, Ceff, for use in the lumped-capacitance interconnect model, from the characteristics of an interconnect model such as the one shown in FIG. 1. Equation Eq. 1 states that the product of Ceff and V(T) is equal to the sum, from k=1 to k=N, of the product of Ck and Vk(T) (as shown in FIG. 1). N is the total number of interconnect nodes in R(L)C network 120 of FIG. 1.
  • The equation Eq. 1 shown in FIG. 2 requires a numerical solution if N>1 and VDP(t) is not equal to V(t) (i.e., if the driving point voltage in FIG. 1 is not equal to the voltage across the effective capacitance Ceff in FIG. 2). V(T) depends on Ceff (i.e., V(T)=f(Ceff)). To solve Eq. 1 thus requires the use of numerical methods (e.g., trial and error, Newton-Raphson iteration, and the like). The use of numerical methods can undesirably increase the computation effort needed to calculate the value of Ceff. For example, faster processors, larger memories, and/or more computation time may be required to solve for Ceff than is desirable.
  • SUMMARY OF THE INVENTION
  • Various methods and systems for calculating effective capacitance are disclosed. These methods and systems may, in at least some embodiments, provide a closed-form effective capacitance calculation.
  • In some embodiments, a method involves: accessing data representing an interconnect model, where the interconnect model includes a driving point node and is not a lumped capacitance model; calculating a value of an effective capacitance of the interconnect model to be inversely proportional to a voltage at the driving point node of the interconnect model; and storing the value of the effective capacitance. In some embodiments, the interconnect model is a pi model. In other embodiments, the interconnect model includes one or more inductances. Program instructions implementing such a method can be stored on a computer readable medium.
  • Calculating the effective capacitance can also involve calculating the effective capacitance to be directly proportional to a sum of one or more products, where each of the products equals a product of a respective one of one or more capacitances included in the interconnect model and a voltage across the respective capacitance. Such a method can also involve accessing data representing a driver model and calculating the value of the effective capacitance as a function of a value (e.g., of a driver resistance Rdriver) included in the driver model.
  • The foregoing is a summary and thus contains, by necessity, simplifications, generalizations and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. The operations disclosed herein may be implemented in a number of ways, and such changes and modifications may be made without departing from this invention and its broader aspects. Other aspects of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • A more complete understanding of the present invention may be acquired by referring to the following description and the accompanying drawings, in which like reference numbers indicate like features.
  • FIG. 1 illustrates a generic interconnect model used to perform interconnect delay analysis in VDSM (Very Deep Sub-Micron) IC design processes.
  • FIG. 2 illustrates a lumped-capacitance interconnect model that is derived from the interconnect model shown in FIG. 1.
  • FIG. 3 shows an equation that can be used to calculate the effective capacitance of an R(L)C interconnect model, according to one embodiment.
  • FIG. 4 shows an exemplary pi interconnect load model from which an effective capacitance can be calculated, according to one embodiment.
  • FIG. 5A is a flowchart of a method of calculating effective capacitance, according to one embodiment.
  • FIG. 5B shows another example of a method of calculating effective capacitance, according to another embodiment.
  • FIG. 6 shows a series of equations useable to calculate the effective capacitance of a pi model, according to one embodiment.
  • FIG. 7 is a flowchart of a method of calculating the effective capacitance of a pi model, according to one embodiment.
  • FIG. 8 illustrates another interconnect model from which an effective capacitance can be calculated, according to one embodiment.
  • FIG. 9 illustrates yet another interconnect model from which effective capacitance can be calculated, according to one embodiment.
  • FIG. 10 illustrates a computer system that runs software configured to calculate effective capacitance, according to one embodiment.
  • While the invention is susceptible to various modifications and alternative forms, specific embodiments of the invention are provided as examples in the drawings and detailed description. It should be understood that the drawings and detailed description are not intended to limit the invention to the particular form disclosed. Instead, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the invention as defined by the appended claims.
  • DETAILED DESCRIPTION
  • FIG. 3 illustrates equation Eq. 2, which is usable to calculate the effective capacitance of an interconnect from the nodal capacitances included in an interconnect model, such as the one illustrated in FIG. 1, of the interconnect. Thus, equation Eq. 2 can be used to calculate Ceff for use in a lumped capacitance model such as the one illustrated in FIG. 2, from the characteristics of a more complex non-lumped-capacitance interconnect model like that shown in FIG. 1. As shown by Eq. 2, the effective capacitance Ceff can be interpreted as a weighted sum of capacitances Ck, where the weighting factor is the ratio between the voltage Vk(T) across that capacitance and the voltage VDP(T) at driving point node 103 (as shown in FIG. 1). Thus, Ceff is proportional to the sum of the products of each nodal capacitance Ck multiplied by its respective nodal voltage, at time t=T, Vk(T), and Ceff is inversely proportional to VDP(T). Voltage Vk(T) is voltage Vk(t), as shown in FIG. 1, at time t=T, and voltage VDP(T) is voltage VDP(t) at time t=0 (as mentioned above, time t=0 is the time at which ramp voltage V0(t) stimulus to driver 110 begins ramping up; t=T is the time at which ramp voltage V0(t) reaches its final value).
  • Equation Eq. 2 provides a closed-form solution for at least some interconnect models, since all of the voltages Vk(T) can be precalculated for a given R(L)C network if N is less than or equal to 2 and since VDP(T) is not a function of Ceff. For certain interconnect models, Ceff can be calculated from the equation of FIG. 3 using analytic (as opposed to numerical) techniques. Analytical techniques are typically much less complex and computationally intensive than numerical techniques.
  • It is noted that VDP(T) of equation Eq. 2 differs from V(T) of equation Eq. 1 in several ways. V(T) is the voltage across the effective capacitance Ceff in a lumped capacitance model. V(T) is thus dependent on Ceff and cannot be calculated independently of Ceff using traditional techniques. In contrast, VDP(T) is the driving point voltage across the input to a non-lumped-capacitance interconnect model that includes an R(L)C network. VDP(T) does not depend on Ceff (which is not part of the R(L)C network modeled by a non-lumped-capacitance interconnect model), and thus, unlike V(T), VDP(T) can be calculated independently of Ceff.
  • The equation Eq. 2 of FIG. 3 can be used with various different interconnect models that include one or more nodal capacitances coupled to ground. Exemplary interconnect models from which equation Eq. 2 can calculate an effective capacitance are shown in FIGS. 4 and 8-9.
  • FIG. 4 shows an exemplary pi interconnect load model from which an effective capacitance can be calculated using equation Eq. 2 of FIG. 3. In this example, driver 110 is coupled to interconnect model 400. Driver 110 is represented by a voltage source 111, across which a voltage V0(t) is applied, and a resistance Rdriver.
  • In this example, interconnect model 400 is a pi model that includes capacitance C1, capacitance C2, and resistor Rwire. Rwire couples C1 and C2. The interconnect model 400 includes two interconnect nodes 105(1) and 105(2). Driving point node 103 is at the same electrical potential as interconnect node 105(1), and thus the voltage VDP(t) measured between the driving point node and ground is the same as the voltage V1(t) measured across C1.
  • Equation Eq. 2 of FIG. 3 can be used to calculate the effective capacitance Ceff of interconnect model 400. In the example of FIG. 4, the effective capacitance Ceff=C1* V1(t)/VDP(t)+C2* V2(t)/VDP(t). Since V1(t)=VDP(t), this equation reduces to Ceff=C1+C2* V2(t)/VDP(t). Additional details regarding the calculation of VDP(t) and V2(t) are provided below with respect to FIGS. 6-7.
  • FIG. 5A illustrates a method of calculating the effective capacitance of an interconnect model. At 501, stored values indicative of each capacitance, resistance, and/or inductance in the interconnect model and/or driver model from which the effective capacitance is being calculated are accessed. For example, if the interconnect model from which the effective capacitance is to be calculated is a pi model like that shown in FIG. 4, values representing nodal capacitances C1 and C2 (from the pi model) and resistances Rwire (from the pi model) and Rdriver (from the driver model) are accessed. These values can be accessed from a stored interconnect model representing an interconnect in an IC design and a stored driver model representing a gate in the IC design.
  • At 503, the values accessed at 501 are used to calculate the voltage at each node in the interconnect model (each node is a point coupled to ground by a respective one of the capacitances in the interconnect model, and thus the voltage at each node is the voltage across a respective capacitance) and the voltage at the driving point node of the interconnect model. For example, if the interconnect model is the pi model shown in FIG. 4, the values of Rwire, Rdriver, C1, and C2 can be processed to obtain values representing the voltage at interconnect nodes 105(1) and 105(2) as well as the voltage at the driving point node 103 (in this example the voltage at the driving point node 103 is the same as the voltage at the first interconnect node 105(1)).
  • The effective capacitance is calculated to be inversely proportional to the voltage at the driving point node and proportional to the sum of the products formed by multiplying each one of the capacitances by the voltage across that capacitance, as indicated at 505. At 507, a value indicative of the effective capacitance generated at 505 is stored. This value may then be used to perform timing analysis of an IC design in which the interconnect represented by the interconnect model is included.
  • It is noted that, in at least some embodiments, the computation that calculates the effective capacitance (e.g., in function 505) and the computation(s) to calculate the voltage across each capacitance and the voltage at the driving point node (e.g., in function 503) can be substantially combined. For example, the values of the capacitances, resistances, and/or inductances in the interconnect model can be accessed as input parameters to a process that calculates the effective capacitance. Such a process may perform computations according to Eq. 2 of FIG. 3, into which expressions representing the individual voltages Vk and VDP have been substituted. Thus, the voltages Vk and VDP may be calculated as part of the process of calculating Ceff. Execution of such a process may not necessarily store the values of these voltages in such a way that they are accessible to external processes. Furthermore, in some embodiments, these voltages are not independently calculated at all. For example, a process that calculates effective capacitance can operate according to a formula that, due to algebraic reductions after the expressions for the individual voltages have been substituted into Eq. 2, does not actually calculate each of the individual voltages across the capacitances and/or the voltage at the driving point node (e.g., the process may operate on the input parameters according to an equation such as Eq. 9 of FIG. 6). In such embodiments, function 503 is not performed. However, the effective capacitance calculated by such processes is still calculated in such a way that the effective capacitance is inversely proportional to the voltage at the driving point node and directly proportional the sum of the products formed by multiplying each one of the capacitances by the voltage across that capacitance.
  • FIG. 5B illustrates another method of calculating the effective capacitance of an interconnect model. As in the method of FIG. 5A, this method involves accessing values indicative of each capacitance, resistance, and/or inductance in the interconnect model and/or driver model, as shown at 551. These values can then be used to calculate the voltage at the driving point node of the interconnect model and the voltages across each of the capacitances, as indicated at 553.
  • At 555, each capacitance (accessed at 501) is scaled by ratio of the voltage across that capacitance to voltage at the driving point node. The scaled capacitances are summed to produce effective capacitance, as indicated at 557. As with functions 503-505 of FIG. 5A, functions 553-557 of FIG. 5B can be combined in some embodiments. At 559, a value indicative of the effective capacitance generated at 557 is stored.
  • It is noted that functions 555-557 of FIG. 5B operate to calculate the effective capacitance in a fashion that is consistent with function 505 of FIG. 5A. In other words, the effective capacitance generated by function 557 of FIG. 5B is inversely proportional to the voltage at the driving point node and directly proportional the sum of the products formed by multiplying each one of the capacitances by the voltage across that capacitance. Other methods can also calculate the effective capacitance in a way that is consistent with function 505 of FIG. 5A. For example, the effective capacitance can be calculated by summing the products formed by multiplying each one of the capacitances in the interconnect model by the voltage across that capacitance, and then dividing the sum by the voltage at the driving point node. Alternatively, the effective capacitance can be calculated by calculating the products formed by multiplying each one of the capacitances in the interconnect model by the voltage across that capacitance, dividing each of those products by the voltage at the driving point node, and then summing each of the modified products.
  • FIG. 6 shows equations that can be used to calculate the effective capacitance of the pi interconnect model shown in FIG. 4. Eqs. 3 calculate three time constants, T11, T12, and T22 from the values of the capacitances and resistances in the pi interconnect model and the driver model (these capacitances and resistances are examples of the values accessed in function 501 of FIG. 5A). Eqs. 4 calculate additional time constants, TRoot and TElmore, from the time constants generated by Eqs. 3. Eqs. 5 calculate constants s1 and s2 from the time constants generated by Eqs. 3 and 4. Constants s1, and s2 are then used, in conjunction with T22 and T Root, to generate constants τ1 1, τ1 2, τ2 1, and τ2 2, as shown by Eqs. 6. Equations Eq. 7 show the time domain responses of V1(t) and V2(t) of the pi model in response to a ramp voltage V0(t) at the driver (V0(t), V1(t), and V2(t) are shown in FIG. 4). Eqs. 3-6 are examples of equations that can be used to calculate the voltages in function 503 in FIG. 5A.
  • Eq. 8 shows the effective capacitance equation Eq. 2 of FIG. 3 into which the specific parameters of the pi model have been input. Since there are two capacitances in the pi model, N=2. Since VDP=V1, the first term of equation Eq. 8 is C1 (which equals C1* V1(T)/VDP(T)). For the same reason, the second term of equation Eq. 8 is C2/V1(T).
  • Expressions for V1(T) and V2(T) are obtained by setting t=T in equations Eqs. 7. These expressions are combined with Eq. 8 to produce Eq. 9. Using Eq. 9, the effective capacitance of the pi model can be calculated directly from the values Rwire, Rdriver, C1, and C2 (Eq. 9 provides a way to combine functions 503 and 505 of FIG. 5A). Thus, the example equations of FIG. 6 show how the use of Eq. 2 in FIG. 3 can provide a closed-form solution for calculating effective capacitance of a pi model.
  • FIG. 7 shows how effective capacitance can be calculated for a pi model. At 701, stored values indicative of capacitances and resistances in a pi interconnect model are accessed. Time constants (e.g., T11, T12, and T22 from FIG. 6) for the pi model are calculated from the values accessed at 701, as shown at 703. At 705, the time constants calculated at 703 and the values accessed at 701 are used to calculate other constants (e.g., s1, s2, TRoot, TElmore, τ1 1, τ1 2, τ1 2, and τ2 2). Ceff is then calculated from the constants calculated at 705 & the values of capacitances accessed at 701, using Eq. 9 of FIG. 6.
  • FIG. 8 illustrates another example of an interconnect load model 400 for which effective capacitance can be calculated using the equation of FIG. 3. This model can represent a multi-fanout net with unbalanced loads on several branches. This model can also represent an interconnect that is experiencing coupling (i.e., non-grounded capacitance), since R1 and R2 of FIG. 8 can each represent, partially or totally, the holding resistances of the coupled nets.
  • In this example, interconnect model 400 is represented by a model that has two parallel branches. Each branch includes a resistance in series with a capacitance that is coupled to ground. The first branch includes resistance R1 and capacitance C1. Interconnect node 105(1) is located at the point where resistance R1 is coupled to capacitance C1. Capacitance C1 couples interconnect node 105(1) to ground. The second branch includes resistance R2 and capacitance C2. Interconnect node 105(2) is located between capacitance C2 and resistance R2. Capacitance C2 couples interconnect node 105(2) to ground. Note that in other embodiments, interconnect load model 400 can include more branches than are illustrated in FIG. 8.
  • In FIG. 8, voltage V1(t) at interconnect node 105(1) is the voltage across capacitance C1. Voltage V2(t) at interconnect node 105(2) is similarly the voltage across capacitance C2. Unlike the example of FIG. 4, driving point voltage VDP(t) of this interconnect model is not the same as one of the voltages V1(t) or V2(t) across one of the capacitances. Using equation Eq. 2, the effective capacitance of interconnect load 400 can be expressed as Ceff=C1* V1(T)/VDP(T)+C2* V2(T)/VDP(T). Values of V1(T), VDP(T), and V2(T) can be obtained using typical circuit analysis techniques and calculated from the values of Rdriver, R1, R2, C1, and C2.
  • FIG. 9 illustrates another interconnect model for which effective capacitance can be calculated using equation Eq. 2 of FIG. 3. In this example, both driver model 110 and interconnect model 400 include an inductance. Driver model 110 includes inductance Ldriver, and interconnect model 400 includes inductance Lwire. The driver model 110 and interconnect model 400 of this example can be useful, for example, when calculating delay for circuitry designed to be operated above 500 MHz.
  • In addition to inductance Lwire, interconnect model 400 includes resistance Rwire and capacitance Cwire. Lwire, Rwire, and Cwire are arranged in series. Cwire is coupled between Rwire and ground. Interconnect node 105(1) is located between Cwire and Rwire. Voltage V1(t) at interconnect node 105(1) is the voltage across Cwire.
  • Using equation Eq. 2 of FIG. 3, the effective capacitance Ceff of the interconnect load model 400 is Cwire* V1(T)/VDP(T). V1(T) and IDP(T) can be analytically calculated in response to V0 from values of Ldriver, Lwire, Rdriver, and Rwire. As part of this calculation, the inductances Ldriver and Lwire can be lumped together, as may be the resistances Rdriver and Rwire. VDP(T) can be calculated from V1(T) and IDP(T) using Ohm's law.
  • FIG. 10 shows a block diagram of a computer system 1000 that includes software configured to calculate effective capacitance from an interconnect model 400, according to one embodiment. As illustrated, computer system 1000 includes one or more processors 1002, I/O interface 1004 (e.g., a bus bridge, network interface card, or other device for interfacing to other computers or to peripheral devices), and memory 1006. Memory 1006 stores data and instructions, executable by processor 1002, that implement interconnect model 400, cell library 1052, effective capacitance generation tool 1054, and timing analysis tool 1056. The instructions and data stored in memory 1006 can be organized into one or more data and/or program files.
  • I/O interface 1004 is coupled to a storage device 1075. Storage device 1075 can be coupled to computer system 1000 by a bus, network (e.g., the Internet), or other interconnect. Storage device 1075 provides a persistent store for information accessed by computer system 1000 and can be implemented using magnetic, optical and/or mechanical (e.g., MEMS (Micro Electro-Mechanical Systems) memory. Storage device 1075 can include a single storage device or an array of storage devices.
  • Interconnect model 400 is an R(L)C model of an interconnect model included in an IC design. Interconnect model 400 can be obtained in response to extracting information indicative of the predicted characteristics of an interconnect from the physical layout of the IC design. Interconnect model 400 can be any of various types of R(L)C networks. For example, interconnect model 400 can be a pi model (e.g., as shown in FIG. 4), a multi-fanout net with unbalanced loads (e.g., as shown in FIG. 8), an interconnect model that includes inductance (e.g., as shown in FIG. 9), or any other appropriate interconnect model that includes one or more capacitances coupled to ground.
  • Cell library 1052 includes various standard components and precalculated information useable to model and simulate the performance and functionality of components included in an IC design. In particular, cell library 1052 includes information representing various cells (e.g., logic gates and other components) included in the IC design. Cell library 1052 can include, for example, a driver model for each cell. The driver model for a cell coupled to the interconnect modeled by interconnect model 400 can be used in conjunction with the interconnect model 400 to calculate the effective capacitance of the interconnect model. For example, parameters such as Rdriver and/or Ldriver can be obtained from the driver model for the cell.
  • Effective capacitance generation tool 1054 is a process that is configured to generate the effective capacitance, for use in a lumped-capacitance model, of an interconnect modeled by interconnect model 400. Effective capacitance generation tool 1054 generates the effective capacitance according to Eq. 2 of FIG. 3. Effective capacitance generation tool 1054 uses information included in interconnect model 400 and cell library 1052 (e.g., such as information about the driver coupled to that interconnect) to calculate effective capacitance. Effective capacitance generation tool 1054 stores the calculated effective capacitance as effective capacitance value 1058.
  • In some embodiments, effective capacitance generation tool 1054 calculates values of effective capacitance for several different values of each parameter in a given type interconnect model. For example, if the type of interconnect model being considered is a pi model, effective capacitance generation tool 1054 can calculate values of effective capacitance for each of several values of each parameter (C1, Rdriver, Rwire, and C2) in the pi model. The different effective capacitance values can be stored in a lookup table and indexed by the values of the parameters used to generate each different effective capacitance value. By precharacterizing the type of interconnect model according to a lookup table, the value of the effective capacitance for a given instance of that type of interconnect model can be calculated by interpolating between values in the lookup table based on the relationship between the actual parameters of that instance of the interconnect model and the values of the parameters used to index into the lookup table. Thus, in some embodiments, effective capacitance value 1058 may be one of several effective capacitance values included in a lookup table.
  • Timing analysis tool 1056 is configured to perform timing analysis of a substantially complete IC design. Timing analysis tool 1056 uses the effective capacitance value 1058 to calculate, for example, the driving point admittance of a lumped-capacitance model derived from interconnect model 400. The driving point admittance can then be used to analyze the timing of the IC design that includes the interconnect modeled by interconnect model 400.
  • If effective capacitance generation tool 1054 has precalculated a lookup table of different effective capacitance values, timing analysis tool 1056 can access the lookup table, based on the specific values of one or more parameters of interconnect model 400, and interpolate between values in the lookup table to obtain the effective capacitance.
  • It is noted that, in at least some embodiments, the tools and data illustrated as being stored in memory 1006 in FIG. 10 can be distributed across computer systems and storage devices linked by one or more networks. For example, cell library 1052 may be stored in a storage device coupled to computer system 1000 by a LAN (Local Area Network) or SAN (Storage Area Network). Portions of cell library 1052 can be loaded into memory 1006 of a particular computer system as different parts of the IC design are analyzed by applications such as effective capacitance generation tool 1054 and/or timing analysis tool 1056 executing on that computer system.
  • Different applications can execute on different computer systems and exchange results via a network. For example, effective capacitance generation tool 1054 can be configured to calculate one or more effective capacitance values for a given instance of an interconnect model and/or for a given type of interconnect model and to store the effective value(s) (e.g., as part of a lookup table) to a network storage device 1075. This stored information can then be accessed by timing analysis tool 1056, which is executing on a different computer system than effective capacitance generation tool 1054.
  • The tools illustrated as being separate applications in FIG. 10 can also be implemented as a single application in some embodiments. For example, functionality implemented by effective capacitance generation tool 1054 can be integrated into a single application with timing analysis tool 1056.
  • The program instructions and data implementing interconnect model 400, cell library 1052, effective capacitance generation tool 1054, and/or timing analysis tool 1056 can be stored upon various computer readable media such as memory 1006. In some embodiments, software implementing at least some of these tools is stored on a computer readable medium such as a CD (Compact Disc), DVD (Digital Versatile Disc), hard disk, optical disk, tape device, floppy disk, and the like). In order be executed by processor 1002, the instructions and data implementing the tools and/or models are loaded into memory 1006 from the other computer readable medium. In some embodiments, a computer readable medium is a carrier medium such as a network and/or a wireless link upon which signals such as electrical, electromagnetic, or digital signals, on which the data and instructions implementing the tools and/or models are encoded, are conveyed.
  • Although the present invention has been described with respect to a specific embodiment thereof, various changes and modifications may be suggested to one skilled in the art. It is intended that such changes and modifications fall within the scope of the appended claims.

Claims (23)

1-10. (canceled)
11. A method, comprising:
scaling a first capacitance included in an interconnect model by a ratio of a voltage across the first capacitance to a driving point voltage;
scaling a second capacitance included in an interconnect model by a ratio of a voltage across the second capacitance to the driving point voltage;
summing the first scaled capacitance and the second scaled capacitance to produce an effective capacitance value; and
storing the effective capacitance value;
wherein the driving point voltage is a voltage at an input to the interconnect model.
12. The method of claim 11, wherein
the interconnect model is a pi model.
13. The method of claim 12, further comprising:
calculating a plurality of time constants from the first capacitance and the second capacitance; and
using the plurality of time constants to perform said scaling the first capacitance, said scaling the second capacitance, and said summing.
14. The method of claim 11, wherein:
the interconnect model includes one or more inductances.
15. The method of claim 1 1, wherein:
said scaling the first capacitance, said scaling the second capacitance, and said summing are performed according to a closed form algorithm.
16. The method of claim 11, wherein
said storing comprises storing the effective capacitance value in a lookup table included in a library.
17. A method, comprising:
multiplying each one of a plurality of capacitances included in an interconnect model by a respective voltage across that one of the plurality of capacitances to generate a respective one of a first plurality of products;
dividing each one of the plurality of products by a voltage at a driving point node of the interconnect model to produce a respective one of a second plurality of products, wherein the interconnect model is not a lumped-capacitance model; and
summing the second plurality of products to produce an effective capacitance value; and
storing the effective capacitance value.
18. A method, comprising:
multiplying each one of a plurality of capacitances included in an interconnect model by a respective voltage across that one of the plurality of capacitances to generate a respective one of a first plurality of products;
summing the first plurality of products to produce a first value; and
dividing the first value by a voltage at a driving point node of the interconnect model to produce an effective capacitance value, wherein the interconnect model is not a lumped-capacitance model;
storing the effective capacitance value.
19-34. (canceled)
35. A method, comprising:
accessing data representing an interconnect model, wherein the interconnect model includes a driving point node;
reducing the interconnect model to a lumped capacitance model consisting of an effective capacitance, wherein said reducing comprises:
calculating the effective capacitance by setting a voltage across the effective capacitance equal to a voltage at the driving point node of the interconnect model; and
storing a value representing the effective capacitance.
36. (canceled)
37. A computer readable medium, comprising program instructions executable to:
calculate an effective capacitance of an interconnect model to be inversely proportional to a voltage at a driving point node of the interconnect model, wherein
calculating the effective capacitance of the interconnect model comprises scaling one or more capacitances, included in the interconnect model, by a ratio of a voltage across the one or more capacitances to the voltage at the driving point node; and
store a value representing the effective capacitance.
38. The computer readable medium of claim 37, wherein
the program instructions are executable to scale the one or more capacitances by:
scaling a first capacitance included in the interconnect model by a ratio of a voltage across the first capacitance to a driving point voltage;
scaling a second capacitance included in the interconnect model by a ratio of a voltage across the second capacitance to the driving point voltage; and
the program instructions are executable to calculate the effective capacitance by summing the first scaled capacitance and the second scaled capacitance to produce the value representing effective capacitance value.
39. The computer readable medium of claim 37, wherein
the program instructions are executable to scale the one or more capacitances by:
multiplying each one of a plurality of capacitances included in the interconnect model by a respective voltage across that one of the plurality of capacitances to generate a respective one of a first plurality of products;
dividing each one of the plurality of products by a voltage at the driving point node of the interconnect model to produce a respective one of a second plurality of products; and
the program instructions are executable to calculate the effective capacitance by summing the second plurality of products to produce the value representing the effective capacitance.
40. The computer readable medium of claim 37, wherein
the program instructions are executable to scale the one or more capacitances by:
multiplying each one of a plurality of capacitances included in the interconnect model by a respective voltage across that one of the plurality of capacitances to generate a respective one of a first plurality of products;
summing the first plurality of products to produce a first value; and
the program instructions are executable to calculate the effective capacitance by dividing the first value by a voltage at the driving point node of the interconnect model to produce the value representing the effective capacitance.
41. The method of claim 17, wherein
said storing comprises storing the effective capacitance value in a lookup table included in a library.
42. The method of claim 18, wherein
said storing comprises storing the effective capacitance value in a lookup table included in a library.
43. The method of claim 35, wherein said calculating the effective capacitance comprises:
scaling one or more capacitances, included in the interconnect model, by a ratio of a voltage across the one or more capacitances to the voltage at the driving point node.
44. The method of claim 43, wherein
the scaling the one or more capacitances comprises:
scaling a first capacitance included in the interconnect model by a ratio of a voltage across the first capacitance to the voltage at the driving point node, wherein
the scaling the first capacitance produces a first scaled capacitance;
scaling a second capacitance included in the interconnect model by a ratio of a voltage across the second capacitance to the voltage at the driving point node, wherein
the scaling the second capacitance produces a second scaled capacitance; and
the calculating the effective capacitance comprises:
summing the first scaled capacitance and the second scaled capacitance to produce an effective capacitance value.
45. The method of claim 43, further comprising:
calculating a plurality of time constants from the first capacitance and the second capacitance; and
using the plurality of time constants to perform said scaling the first capacitance, said scaling the second capacitance, and said summing.
46. The method of claim 43, wherein
the scaling the one or more capacitances comprises:
multiplying each one of the one or more capacitances by a respective voltage across that one of the one or more capacitances to generate a respective one of one or more first products; and
dividing each one of the one or more first products by the voltage at the driving point node to produce a respective one of one or more second products; and
the calculating the effective capacitance comprises summing the one or more second products to produce an effective capacitance value.
47. The method of claim 43, wherein the scaling the one or more capacitances comprises:
multiplying each one of the one or more capacitances by a respective voltage across that one of the one or more capacitances to generate a respective one of one or more first products;
summing the one or more first products to produce a first value; and
dividing the first value by the voltage at the driving point node to produce an effective capacitance value.
US11/195,237 2003-09-15 2005-08-02 System and method for calculating effective capacitance for timing analysis Expired - Fee Related US7454719B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/195,237 US7454719B2 (en) 2003-09-15 2005-08-02 System and method for calculating effective capacitance for timing analysis

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/662,540 US6925623B2 (en) 2003-09-15 2003-09-15 System and method for calculating effective capacitance for timing analysis
US11/195,237 US7454719B2 (en) 2003-09-15 2005-08-02 System and method for calculating effective capacitance for timing analysis

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/662,540 Division US6925623B2 (en) 2003-09-15 2003-09-15 System and method for calculating effective capacitance for timing analysis

Publications (2)

Publication Number Publication Date
US20050268262A1 true US20050268262A1 (en) 2005-12-01
US7454719B2 US7454719B2 (en) 2008-11-18

Family

ID=34274126

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/662,540 Expired - Fee Related US6925623B2 (en) 2003-09-15 2003-09-15 System and method for calculating effective capacitance for timing analysis
US11/195,237 Expired - Fee Related US7454719B2 (en) 2003-09-15 2005-08-02 System and method for calculating effective capacitance for timing analysis

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10/662,540 Expired - Fee Related US6925623B2 (en) 2003-09-15 2003-09-15 System and method for calculating effective capacitance for timing analysis

Country Status (1)

Country Link
US (2) US6925623B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100269083A1 (en) * 2009-04-20 2010-10-21 International Business Machines Corporation Method of Employing Slew Dependent Pin Capacitances to Capture Interconnect Parasitics During Timing Abstraction of VLSI Circuits
US20170317664A1 (en) * 2015-01-20 2017-11-02 Mitsubishi Electric Corporation Semiconductor device

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7124381B2 (en) * 2004-05-25 2006-10-17 Chang Gung University Method of estimating crosstalk noise in lumped RLC coupled interconnects
JP2005339003A (en) * 2004-05-25 2005-12-08 Matsushita Electric Ind Co Ltd Method and device for analyzing circuit
US7017130B2 (en) * 2004-07-12 2006-03-21 Chang Gung University Method of verification of estimating crosstalk noise in coupled RLC interconnects with distributed line in nanometer integrated circuits
US20060100830A1 (en) * 2004-11-05 2006-05-11 Chang Gung University Moment computations of nonuniform distributed coupled RLC trees with applications to estimating crosstalk noise

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790415A (en) * 1996-04-10 1998-08-04 Pullela; Satyamurthy Complementary network reduction for load modeling
US6314546B1 (en) * 1999-03-08 2001-11-06 Silicon Graphics, Inc. Interconnect capacitive effects estimation
US6496960B1 (en) * 2000-10-27 2002-12-17 International Business Machines Corporation Driving point model utilizing a realizable reduced order circuit for determining a delay of a gate driving an interconnect with inductance
US6601223B1 (en) * 2000-09-29 2003-07-29 International Business Machines Corporation System and method for fast interconnect delay estimation through iterative refinement
US6721929B2 (en) * 2000-05-12 2004-04-13 Cadence Design Systems, Inc. High accuracy timing model for integrated circuit verification

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790415A (en) * 1996-04-10 1998-08-04 Pullela; Satyamurthy Complementary network reduction for load modeling
US6314546B1 (en) * 1999-03-08 2001-11-06 Silicon Graphics, Inc. Interconnect capacitive effects estimation
US6721929B2 (en) * 2000-05-12 2004-04-13 Cadence Design Systems, Inc. High accuracy timing model for integrated circuit verification
US6601223B1 (en) * 2000-09-29 2003-07-29 International Business Machines Corporation System and method for fast interconnect delay estimation through iterative refinement
US6496960B1 (en) * 2000-10-27 2002-12-17 International Business Machines Corporation Driving point model utilizing a realizable reduced order circuit for determining a delay of a gate driving an interconnect with inductance

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100269083A1 (en) * 2009-04-20 2010-10-21 International Business Machines Corporation Method of Employing Slew Dependent Pin Capacitances to Capture Interconnect Parasitics During Timing Abstraction of VLSI Circuits
US8103997B2 (en) * 2009-04-20 2012-01-24 International Business Machines Corporation Method of employing slew dependent pin capacitances to capture interconnect parasitics during timing abstraction of VLSI circuits
US20170317664A1 (en) * 2015-01-20 2017-11-02 Mitsubishi Electric Corporation Semiconductor device

Also Published As

Publication number Publication date
US6925623B2 (en) 2005-08-02
US7454719B2 (en) 2008-11-18
US20050060674A1 (en) 2005-03-17

Similar Documents

Publication Publication Date Title
US9129078B1 (en) Static timing analysis of integrated circuit designs with flexible noise and delay models of circuit stages
EP1292906B1 (en) High accuracy timing model for integrated circuit verification
US8555235B2 (en) Determining a design attribute by estimation and by calibration of estimated value
CN101305372B (en) Estimation circuit delay method and device
US8245165B1 (en) Methods and apparatus for waveform based variational static timing analysis
US7454719B2 (en) System and method for calculating effective capacitance for timing analysis
US7716620B2 (en) Moment-based method and system for evaluation of metal layer transient currents in an integrated circuit
JP5935544B2 (en) Method, product and computer system for generating an analog model of a logic cell
US6480816B1 (en) Circuit simulation using dynamic partitioning and on-demand evaluation
US7082587B2 (en) Method of estimating path delays in an IC
US7373289B2 (en) Electrical isomorphism
US20070136044A1 (en) Efficient simulation of dominantly linear circuits
US7546227B2 (en) Segmentation and interpolation of current waveforms
US9779192B2 (en) Multi-rate parallel circuit simulation
US5883818A (en) Method for generating an improved model for evaluating the operation of an integrated circuit design
US9507903B2 (en) Method for estimation of delays and slews during circuit optimization
US7844438B1 (en) Method to analyze and correct dynamic power grid variations in ICs
Feldmann et al. Interconnect-delay computation and signal-integrity verification using the SyMPVL algorithm
US20080114572A1 (en) Efficient and Incremental Sensitivity Analysis for Linear Circuits
US6606587B1 (en) Method and apparatus for estimating elmore delays within circuit designs
JP2013524302A (en) Method and apparatus for macro model power analysis with adjustable accuracy
US7006931B2 (en) System and method for efficient analysis of transmission lines
JPH10222545A (en) Parameterized memory circuit degenerating method and logic cell library generating method
Buch et al. Techniques for fast circuit simulation applied to power estimation of CMOS circuits
US9946824B2 (en) Efficient Ceff model for gate output slew computation in early synthesis

Legal Events

Date Code Title Description
AS Assignment

Owner name: RENESAS ELECTRONICS AMERICA, INC., CALIFORNIA

Free format text: MERGER;ASSIGNOR:NEC ELECTRONICS AMERICA, INC.;REEL/FRAME:026110/0643

Effective date: 20100401

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 Expired due to failure to pay maintenance fee

Effective date: 20121118