The present invention relates generally to design automation, and relates more particularly to current-source model-based static timing analysis.
Static timing analysis is a key tool used for design optimization and testing of very large scale integrated (VLSI) circuit chips. Both the cost and the performance of the circuit design will be affected by static timing analysis. One particularly important factor in timing accuracy is the fidelity of gate models.
Two standard gate modeling approaches typically used throughout the circuit industry are effective current source modeling (ECSM) and composite current source (CCS) modeling. Both of these approaches contain separate models for timing, noise, and power applications. In addition, both approaches permit accurate computation of the driver output waveform and use model order reduction techniques to further propagate the waveform accurately through the interconnect network to the inputs of the following gates. However, these standard approaches also tend to lose much of the detail of this meticulously calculated waveform.
In one embodiment, the invention is a method and apparatus for waveform-based digital gate modeling for timing analysis. One embodiment of a method for modeling a gate of an integrated circuit chip includes building a transform matrix that indexes each input waveform/output waveform pair in a gate library to a plurality of different capacitive loads, obtaining an input waveform and a capacitive load associated with the gate, and, mapping the input waveform and the capacitive load to an output waveform for the gate, in accordance with the transform matrix.
In another embodiment, a computer readable storage device contains an executable program for modeling a first gate of an integrated circuit chip. The program performs steps of: building a transform matrix that indexes each input waveform/output waveform pair in a gate library to a plurality of different capacitive loads, obtaining an input waveform and a capacitive load associated with the first gate, and mapping the input waveform and the capacitive load to an output waveform for the first gate, in accordance with the transform matrix.
So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
In one embodiment, the present invention is a method and apparatus for waveform-based digital gate modeling for timing analysis. In particular, embodiments of the present invention directly and accurately map waveforms from the input of a gate to the output of the gate. This enables the present invention to overcome the loss of waveform accuracy at a gate input by propagating full waveforms through successive stages of logic and interconnects. In some embodiments, the waveform is represented and propagated efficiently through the logic chain using a small set of basis functions.
In particular, given an input waveform and a capacitive load, embodiments of the present invention compute the output waveform as a function of the input waveform directly from library characterization data. For arbitrary RC(L) (i.e., a synthesis of a passive resistive-capacitive (RC) network and a resistive-capacitive-inductive (RCL) network) output loads, the present invention creates waveform tables as a function of input waveforms. The waveform tables are then used in a modeling step to compute accurate delays and output waveforms.
Embodiments of the present invention are compatible with standard current source models (e.g., ECSM, CCS, and the like) and can be integrated into timing analysis tools that are based on these models with minimal loss of efficiency. Embodiments of the invention are discussed within the exemplary context of gate models based on voltage waveforms (which are typical of ECSM); however, the present invention is equally applicable to models based on current waveforms (which are typical of CCS).
Waveform based gate modeling according to one embodiment of the present invention starts with a time vector representing the monotonic time versus voltage waveform for various cells in a library. Thus, the terms “waveform” and “time vector” are used interchangeably herein. This time vector, T, is represented as:
T=[t
0
,t
1
, . . . ,t
d−1] (EQN. 1)
A corresponding voltage vector, V, is represented as:
V=[v
0
,v
1
, . . . ,v
d−1] (EQN. 2)
In the cases of EQNs. 1 and 2, tk, k=0, . . . , d−1 represents the time instances at which the voltage waveform crosses a threshold voltage level, vk (e.g., some percentage of the supply voltage Vdd).
Each time vector T can be represented as a linear combination of basis vectors Uk, k=0, . . . , d−1 as:
T=Σα
k
U
k
t (EQN. 3)
where αk is the kth coefficient of the time vector T, and UkεRdx1 is a column vector. In one embodiment, the basis vectors, Uk, are obtained by performing principal component analysis (PCA) on a large set of realistic time vectors.
The average time, tM, of a waveform T is the average of all of the time instances of the waveform and can be expressed mathematically as:
t
M=(t0+t1+ . . . +td−1)/d (EQN. 4)
Moreover, since
then tM can also be expressed as:
Using the above information, one can map a waveform at the input of a gate G to a corresponding output of the gate G for a capacitive load Cr. One embodiment of a method for performing this mapping operation is based on a characterization step performed for each input-output pair of each cell in a gate library, with varying capacitive loads. In one embodiment, this characterization step is performed offline. The result is a transformation matrix including a plurality of coefficients of a mapping function specific to each capacitive load. The transformation matrix and the coefficients are then used to calculate the output waveform.
Embodiments of the invention consider, for the input-output pair associated with a given gate, G, the input time vector, Tin, the output load Cr, and the associated output time vector Tout. Tin and Tout are time vectors as given by EQN. 1. Tin and Tout can also be approximated accurately by the first q basis waveforms as:
T
in=ΣαkUkT
T
out=ΣβkUkT (EQN. 7)
where k=0, 1, . . . , q−1; and where
X=[α
0,α1, . . . ,αq−1]=Tin[U0,U1, . . . ,Uq−1]
Y=[β
0,β1, . . . ,βq−1]=Tout[U0,U1, . . . ,Uq−1] (EQN. 8)
and where U0, U1, . . . , Uq−1 are the first q basis vectors. Thus, the coefficients α and β correspond to basis vectors for the input waveform and the output waveform, respectively. For instance, α0 may represent a delay adjustment, while α1 represents a slew adjustment, and α2 represents a skewness adjustment.
Embodiments of the present invention map X to Y by formulas containing quadratic and square root terms of waveform coefficients, where the quadratic cross-product terms are negligible and can be ignored. EQN. 8 can thus be rewritten as:
[β0,β1, . . . ,βq−1]=[1α0,α1, . . . ,αq−1,α02α12, . . . ,αq−12,α00.5α10.5, . . . ,αq−10.5]F (EQN. 9)
where FεR3q+1xq and F is a waveform-based gate model matrix.
The principal coefficients of the output waveform can thus be calculated from the basis coefficients of the input waveform using EQN. 9.
The method 200 is initialized at step 202 and proceeds to step 204, where a gate, G, is selected. The gate G drives a capacitive load Cr, as discussed above.
In step 206, a plurality, P, of input-output waveform pairs are obtained for the gate G. In one embodiment, the input-output waveform pairs are obtained using transient simulation program with integrated circuit emphasis (SPICE) simulation, as discussed in greater detail below.
In step 208, the principal coefficients of the P input-output waveform pairs are calculated. In one embodiment, the principal components are calculated in accordance with EQN. 8. This allows the derivation of the coefficients of a system of linear equations as follows:
[1α0α1, . . . ,αq−1,α02α12, . . . ,αq−12,α00.5α10.5, . . . ,αq−12]i
and
└{tilde over (β)}0i{tilde over (β)}1i, . . . ,{tilde over (β)}q−1i┘
as discussed with respect to EQN. 9. The index i refers to the ith pair of input-output waveforms for i=1, 2, . . . , P. The terms {tilde over (β)}ki are the exact values of βk for k=0, 1, . . . q−1. The terms {tilde over (β)}ki are calculated from the principal coefficients of the ith pair of input-output waveforms. Due to a modeling approximation, the βk values produced by EQN. 9 are not the exact {tilde over (β)}ki values produced by simulation (e.g., SPICE simulation).
In step 210, the waveform-based gate model matrix, F, is produced. In one embodiment, the waveform-based gate model matrix F is produced by solving (e.g., in the least squares sense) the following over-determined system of linear equations for the P pairs of input-output waveforms:
[{tilde over (β)}0i{tilde over (β)}1i, . . . , {tilde over (β)}q−1i]=[1α0,α1, . . . ,αq−1,α02,α12, . . . ,αq−12,α00.5,α10.5, . . . ,αq−10.5]iF (EQN. 11)
where the waveform-based gate model matrix F is a (3q+1) by q matrix. Hence, the number of elements in the transform matrix is 3q2+q.
F
r=Ψ(Cr) (EQN. 12)
where r is the index of the capacitive load Cr in the table Ψ.
Step 210 is performed once for each input-output waveform pair in the library. In one embodiment, step 210 is an offline process. Steps 204-210 result in each input-output waveform pair being characterized. The remaining steps of the method 200 then generate an output time vector Tout for an arbitrary input time vector Tin and arbitrary capacitive load Cr.
In step 212, the input time vector Tin and the capacitive load Cr are obtained. The output time vector Tout is then estimated in step 214 from the input time vector Tin, and the capacitive load Cr, and the corresponding waveform-based gate model matrix Fr as follows:
[α0α1, . . . ,αq−1]=Tin[U0U1, . . . ,Uq−1] (EQN. 13)
[β0β1, . . . ,βq−1]=[1α0,α1, . . . ,αq−1,α02,α12, . . . ,αq−12,α00.5,α10.5, . . . ,αq−10.5]F
T
out=[β0,β1, . . . ,βq−1][U0U1, . . . ,Uq−1]T
As discussed above, the waveform-based gate model matrices F are calculated for each capacitive load Cr via the characterization steps 204-210. The output time vector Tout is then output in step 216, and the method 200 terminates in step 218.
Once the output waveform Tout has been estimated, it can be propagated through arbitrarily loaded gates so that during timing analysis, a chain of gates and interconnects can be timed with maximum accuracy. In one embodiment, propagation of the output waveform Tout estimated using the method 200 is performed using a standard modeling technique such as ECSM or CCS.
The method 500 is initialized in step 502 and proceeds to step 504, where the characterization data for all gates G in the chain and the waveform-based gate model matrices F for all capacitive loads Cr are obtained. This step assumes that all of the gates G have already been characterized and that the waveform-based gate model matrices F are stored in the library.
In step 506, an input waveform Tiin (i.e., the input waveform to the gate Gi) to be propagated is identified. The input waveform Tiin drives an arbitrary RC(L) load.
In step 508, using F matrices (given by Ψ in EQN. 12), the two-dimensional Time-Voltage-Capacitance table, Γ=fΓ(V, C), is generated for the gate Gi with the input waveform Tiin and a sequence of discrete capacitive loads Ck. This produces the rows of the table, Γk=fΓ(V, Ck). In fact, Γk is the output waveform of Gi associated with the input waveform Tiin and the capacitive load Ck. In accordance with the method 200, the table Γ is generated dynamically during timing analysis to reflect the exact shape of the input.
In step 510, the output waveform {circumflex over (T)}iout at the output driving point of the gate Gi is calculated, in accordance with the Time-Voltage-Capacitance table Γ=fΓ(V, C) and the driving point interconnect parameters (e.g., poles and residues). In one embodiment, this calculation is performed using ECSM. ECSM, will only compute the shape of the output waveform, but will not provide an absolute start time of the waveform (delay). Therefore, in step 510, the output waveform {circumflex over (T)}iout is started at the origin time point (i.e., tome zero). The output waveform {circumflex over (T)}iout does not have an absolute time reference.
ECSM will, however, produce a byproduct that is useful in the delay calculation (waveform start/reference time), namely, the vector of dynamic capacitances:
Cd=[Cd
0
,Cd
1
, . . . ,Cd
d−1] (EQN. 14)
In EQN. 14, Cdk refers to the dynamic capacitance of the driving point between voltage levels vk−1, vk.
In step 512, the starting point of the output waveform Tiout is calculated in accordance with the vector of dynamic capacitance Cd. This adjusts the start time of the output waveform Tiout. In particular, the voltage level, VM, corresponding to the average time tM of the output waveform {circumflex over (T)}iout is first calculated (tM in this case is the zeroeth coefficient divided by √{square root over (d)} as given in EQN. 6). Next, using the vector of dynamic capacitance Cd, the vector v given by EQN. 2, and some interpolation, the dynamic capacitance Cd(vM) corresponding to the voltage level vM is calculated. The Time-Voltage-Capacitance table Γ=fΓ(V, C) generated for the input waveform Tiin is next used to obtain the vector Tx that includes the first time instances of all time vectors, Γk's, included in the Time-Voltage-Capacitance table Γ. Using interpolation, the vector Tx, and the vector C, the first time instance t0i corresponding to the capacitance Cd(vM) can be calculated. Finally, the time instance t0i is used as the reference time for the output waveform Tiout as given by:
T
i
out
={circumflex over (T)}
i
out
+t
0
i (EQN. 15)
In step 514, the output waveform is propagated through the interconnect using an interconnect propagation technique. For example, the MAISE interconnect simulation engine is one technique that may be used for waveform propagation in accordance with step 514. The method 500 then terminates in step 516.
As discussed above, a portion of the method 200 is characterizing input-output waveform pairs. In particular, a set of input waveforms is created, where the set spans the space of all possible monotonic waveforms that can occur in a design (in order to assure that the waveform-based gate modeling technique captures the behavior of the gate for any input waveform). In one embodiment, the set of input waveforms is created in accordance with one of two approaches: (1) a physical approach; and (2) a synthetic approach.
In the physical approach, a driver circuit is used to feed the gate with waveforms of different shapes. The driver circuit can be tuned with different variables to create various input waveforms. In particular, the values for certain capacitances and resistances in the driver circuit can be varied to change the shapes of the waveforms.
The synthetic approach mathematically creates the input waveforms by changing the PCA coefficients of the PCA basis of a set of waveforms. The generated waveforms are physical, real, and possible to generate in a circuit. This approach seeks to span all of the waveforms that are required to capture the important attributes of the gates.
As also discussed above, the basis of a set of waveforms may be obtained through PCA. In one embodiment, the PCA coefficients are obtained through two major steps: (1) a pre-processing step; and (2) a basis extraction and coefficient calculation step.
The pre-processing step starts with a matrix Snxd of time vectors representing the monotonic time versus voltage waveforms, where n is the number of waveforms in S and d is the number of time instances for each waveform. The voltages are assumed to be normalized to the 0-1V interval, and the thresholds are expressed as percentages. Affine transform (shift and scale), averaging, and weighting operations are then applied to the matrix S.
The basis extraction and coefficient calculation step involves using PCA to compute a new basis for representing a waveform as:
S
nxd
=LΣU
T=[αik]UT (EQN. 16)
where Σ is a diagonal matrix of singular values in decreasing order, and the columns of U represent orthogonal bases of waveforms (each column Uk of U is a principal component). Each time vector S can be written as a linear combination of principal components as given by EQN. 3.
By setting the “small” singular values to zero, a low rank approximation of the original matrix is obtained. This low rank representation is in terms of a subset of basis vectors that is optimal in the sense of minimizing the “average” error.
Embodiments of the invention may be extended to multi-stage gate modeling. In this case, a combined model of a multi-stage gate may be obtained from the detailed model of each stage/gate/interconnect. All gates are then modeled using a single gate.
Embodiments of the invention may also be extended to multi-transition gate modeling. In this case, a gate with multiple inputs/transitions is modeled by capturing the elative relations among the basis components of the input waveforms and transforming the output. This stands in contrast to the method 200 discussed above, which assumes one input for each gate.
Embodiments of the invention may also be extended to gate modeling to statistical timing analysis. In this case, the waveform-based gate modeling techniques discussed above are used to model gates for different process-voltage-temperature operating conditions and to propagate variational waveforms.
Embodiments of the invention may also be extended to enhance component-based noise analysis. In this case, the principal components of noisy waveforms are captured using additional coefficients. The gates are then modeled for the principal components of any arbitrary noisy waveform.
Alternatively, the gate modeling module 605 can be represented by one or more software applications (or even a combination of software and hardware, e.g., using Application Specific Integrated Circuits (ASIC)), where the software is loaded from a storage medium (e.g., I/O devices 606) and operated by the processor 602 in the memory 604 of the general purpose computing device 600. Thus, in one embodiment, the gate modeling module 605 for performing waveform-based digital gate modeling for timing analysis, as described herein with reference to the preceding Figures, can be stored on a computer readable storage device (e.g., RAM, magnetic or optical drive or diskette, and the like).
It should be noted that although not explicitly specified, one or more steps of the methods described herein may include a storing, displaying and/or outputting step as required for a particular application. In other words, any data, records, fields, and/or intermediate results discussed in the methods can be stored, displayed, and/or outputted to another device as required for a particular application. Furthermore, steps or blocks in the accompanying Figures that recite a determining operation or involve a decision, do not necessarily require that both branches of the determining operation be practiced. In other words, one of the branches of the determining operation can be deemed as an optional step.
While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof. Various embodiments presented herein, or portions thereof, may be combined to create further embodiments. Furthermore, terms such as top, side, bottom, front, back, and the like are relative or positional terms and are used with respect to the exemplary embodiments illustrated in the figures, and as such these terms may be interchangeable.