Abstract:
A circuit on an integrated circuit is made from a design that is verified using a design tool. The design tool takes a model of the circuit and generates equations with respect to nodes on the circuit. The time consuming task of completely determining the voltage at each node is performed for a predetermined input. To determine the node voltages for other signals, the first order transfer function of the equations is taken and then calculated for the predetermined input. A first order estimate of the node voltages is achieved using this first order transfer function and the node voltages determined from the predetermined input. A second order estimate is achieved using the first order transfer function and the first order estimate. A third order estimate is achieved using the first order transfer function and the second order estimate. The circuit design is verified for manufacturabiltity then manufactured.

Description:
RELATED APPLICATION 
     The current Application is related to U.S. Pat. No. 6,536,026, entitled “METHOD AND APPARATUS FOR ANALYZING SMALL SIGNAL RESPONSE AND NOISE IN NONLINEAR CIRCUITS,” filed on Jun. 30, 2001, and assigned to the current assignee hereof. 
     FIELD OF THE INVENTION 
     The present inventions relates generally to circuit analysis, and more specifically, to analyzing distortion in nonlinear circuits. 
     RELATED ART 
     Nonlinear circuits are typically excited by multiple signals. Under the influence of these signals, circuit properties (e.g. currents, voltages, etc.) vary with time. For example, circuits, such as switched-capacitor filters and mixers, are excited with multi-tone signals, such as with a periodic clock and one or more input signals that are to be processed by the filter. The circuit responds nonlinearly to the clock. The input signals are generally small, not substantially perturbing the periodic steady-state response of the circuit to the periodic clock. Although the circuit responds nonlinearly to the large signal (i.e. periodic clock), the response to the input signals is generally almost linear. Furthermore, it is this small signal processing that is the main function of the circuit. The small signals generally contain, in addition to the linear response, distortion products that arise due to the inherent nonlinearities of the circuit. These distortion products, for example, may include harmonic distortion, intermodulation distortion, etc. 
     The analysis of strong nonlinear effects, such as gain compression, have to be handled with full nonlinear analysis. In the presence of weak nonlinearities, small input signals cause responses that are also small signals, except that they contain distortion products. Full nonlinear analysis to compute the distortion in the small signals is costly in computation and storage, and therefore, raises the cost and increases the time to market of new circuit designs. Therefore, a need exists for a method to analyze small signal distortion that reduces cost and time to market. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention is illustrated by way of example and not limitation in the accompanying figures, in which like references indicate similar elements, and in which: 
         FIG. 1  illustrates, in flow diagram form, a method for analyzing small signal distortion of a nonlinear circuit, according to one embodiment of the present invention. 
     
    
    
     Skilled artisans appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help improve the understanding of the embodiments of the present invention. 
     DETAILED DESCRIPTION 
     Various embodiments of the present invention provide for distortion analysis to measure the second and third order deviation of a circuit response from a desired linear response using only first order transfer functions. Alternate embodiments measure higher order deviation of the circuit response in addition to the second and third orders. Furthermore, the determination of this higher order deviation may also be performed using only the first order transfer functions. 
       FIG. 1  illustrates, in flow diagram form, a method for analyzing small signal distortion of a nonlinear circuit according to one embodiment of the present invention. In block  12 , a circuit description and corresponding circuit element models are provided. (Note that circuit can be any type of circuit, such as, for example, any type of analog circuit.) A circuit description represents the elements and their connectivity present in an electrical circuit. Each element within the circuit description has a corresponding circuit element model which describes the behavior of the element. These descriptions and models can be in a variety of different formats (e.g. SPICE format, etc.) and may be contained within one or more computer readable files. Also included within the circuit description are any periodic excitations of the circuit as well as any direct current (DC) inputs. The excitations may include any number of both large amplitude and small amplitude periodic excitations. Large periodic amplitude excitations refer to those that determine the steady-state response of the circuit and small amplitude periodic excitations (i.e. small signals) refer to those that do not substantially perturb the steady-state response of the circuit. Note that, as used herein, large signal excitations may include both large periodic amplitude excitations and DC voltages; therefore, in some circuit descriptions, no large periodic amplitude excitations may exist. 
     In block  14 , circuit equations are generated based on the circuit description and models. These circuit equations embody the traditional circuit laws such as Kirchoff&#39;s voltage and current laws (KVL and KCL). The current contributions of the individual circuit elements at each node of the circuit can be determined by evaluating the circuit element models. The result is a system of nonlinear differential equations that may be represented by:
 
 F ( x ) =b   Equation 1
 
     In the above equation, x is a vector that represents the solution of the circuit taking into consideration all input signals (including large and small signals) of the circuit. (Note that more specific examples of F(x) will be provided in the descriptions below.) Flow proceeds to block  16  where the steady state response to large signal excitations (excluding any small signal excitations) is computed by solving the system of equations (i.e. equation 1). Generally, at F(x)=b 0 , the system of equations can be solved to determine x 0 . Note that b 0  indicates that only the large signal excitations are included in this equation. In the case of a circuit having only DC excitations, the value x 0  represents the solution to the circuit, where the solution to the circuit includes the voltages at each node within the circuit plus any additional branch currents necessary to describe the state of the circuit. In the case of a circuit having large signal periodic excitations, the value x 0  represents the solution to the circuit (as described in the previous sentence) over one period of excitation. Note that if the circuit includes more than one large signal excitation, the period of excitation of the circuit takes into consideration the period of excitation due to each of the large signal excitations, as will be described below in reference to the examples below. The value x 0  can therefore be considered the steady state response to large signal excitations, excluding any small signal excitations. 
     Flow proceeds to block  18  where a first order transfer function is obtained by linearizing the circuit equations about the steady state response. In order to linearize about the steady state response, the first order transfer function at x 0  is computed, where the first order transfer function corresponds to the first derivative of F(x). Therefore, the first order transfer function about x 0  can be expressed as F′(x 0 ). 
     As discussed above, small signal excitations may introduce a small signal response that includes distortion. When taken into consideration, the small signal response is a deviation from x 0  (since the solution x 0  takes into consideration only the large signal excitations). Therefore, in one embodiment, the deviation from x 0  is determined through the use of the first, second and third order responses of the circuit, as will be described below. Alternatively, higher order responses may also be used. 
     Flow proceeds to block  20  where the first order response of the circuit (including both large and small signal excitations) is determined as shown below in equation 2.
 
 F′ ( x   0 )( x−x   0 ) =b−F ( x   0 )  Equation 2
 
     Equation 2 can be solved for x, where x=x 1  such that F′(x 0 )(x 1 −x 0 )=b−F(x 0 ). Note that x 1  is therefore the first order approximation or estimation of x in equation 1 above which takes into consideration both large and small signal excitations. Flow then proceeds to block  22  where the second order response of the circuit (including both large and small excitations) is determined using the first order transfer function and the first order response, as shown below in equation 3.
 
 F ′( x   0 )( x−x   1 )= b−F ( x   1 )  Equation 3
 
     Equation 3 can be solved for x, where x=x 2  such that F′(x 0 )(x 2 −x 1 )=b−F(x 1 ). When b−b 0  is small, it can be shown that x 2  is the second order approximation of x in equation 1 above. Note also that in equation 3, the first order transfer function at x 0  (which was already previously determined in block  18 ) is used to obtain x 2  rather than having to recalculate the first order transfer function at x 1  (i.e. F′(x 1 ) need not be computed). This reduces the complexity and amount of computations required for determining an approximation for x in equation 1. That is, using the same first order transfer function at x 0 , an approximation value, x 2 , may be determined for x where x 2  is accurate to the second order. 
     Flow then proceeds to block  24  where the third order response to the circuit (including both large and small signal excitations) is determined using the first order transfer function and the second order response, as shown below in equation 4.
 
 F′ ( x   0 )( x−x   2 )= b−F ( x   2 )  Equation 4
 
     Equation 4 can therefore be solved for x, where x=x 3  such that F′(x )(x   3 −x 2 )=b−F(x 2 ). Note that x 3  is therefore the third order approximation of x in equation 1 above. Note also that in equation 4, the first order transfer function at x 0  (which was already previously determined in block  18 ) is used to obtain x 3  rather than having to recalculate the first order transfer function at x 2 . As mentioned above, this reduces the complexity and amount of computations required for estimating x in equation 1. That is, using the same first order transfer function at x 0 , an estimate, x 3 , may be determined for x where x 3  is accurate to the third order. Alternate embodiments may continue in the same manner to determine estimates that are accurate to a higher order, while continuously using only the first order transfer function at x 0 , thus reducing computation time and complexity. 
     Note that x 0  is determined taking into consideration a predetermined set of inputs including only the large signals (i.e. x 0  represents the steady state response to the large signals) while x 3  is determined taking into consideration another predetermined set of inputs including both large and small signals (i.e. x 3  represents the third order response to the circuit including both large and small signals). Therefore, x 3  may be used to estimate the distortion introduced by the small signals with a third order accuracy. Furthermore, determination of the deviation from x 0  with a third order accuracy can be done using only the first order transfer function at x 0  without the need of higher order transfer functions or the need to recalculate the transfer function at different points other than x 0 . 
     After block  24 , flow proceeds to block  26  where the results are analyzed. For example, the results may be post-processed to derive additional quantities that allow the circuit designer to determine if the circuit design meets required specifications. Also, the designer may determine which circuit component contributed to the distortion such that specific circuit components (such as individual transistors) can be targeted for redesign. Therefore, any type of analysis may be performed. The designer can then determine whether the circuit analysis is complete. If so, the design analysis is complete and the circuit (which may be an integrated circuit) can be manufactured (block  32 ); otherwise, the designer may modify the circuit description and models (in block  30 ) to improve the design or to overcome any shortcomings and repeat the analysis process at block  12 . For example, the designer may change the circuit topology or modify transistor geometries or process parameters to achieve or surpass the required specifications. 
     As was described above, an iterative method can be applied to solve the nonlinear system of equations, F(x)=b. The iterative method can be described using the following iterative formula:
 
 J ( x   0 )( x   j+1   −x   j )= b−F ( x   j )  j= 0,1,2, . . .  Equation 5
 
     In equation 5, J is the Jacobian matrix representing the first order transfer function of the system of equations at x 0  (analogous to F′(x 0 ) described above). That is, the first order transfer function of a system of equations can be represented as a Jacobian matrix. In equation 5, j is the number of the iteration. That is, for j=0 (corresponding to the first iteration), the first order response may be determined, as was described in reference to equation 2 above, where x was determined to be x 1 , such that the resulting equation can be expressed as J(x 0 )(x 1−x   0 )=b−F(x 0 ). Note that the approximation of x determined from equation 5 rapidly converges towards the actual solution of F(x)=b assuming that small signals are sufficiently small. 
     One embodiment uses an alternate method to compute the iterative formula given by equation 5 such that rounding errors in the computation are reduced. This alternate method uses the following expression (equation 6) to express a next approximation, x j+1 .
 
 x   j+1   =x   j   +Δx   j   Equation 6
 
     That is, the next approximation, x j+1 , is simply the previous approximation, x j , with an added change in the previous approximation, Δx j . Therefore, by substituting x j+1 −x j  with Δx j  in equation 5 above, equation 5 can be rewritten as follows.
 
Δ x   j=   J   −1 ( x   o )( b−F ( x   j ))  Equation 7
 
     Note that in this method, a nonlinear problem is assumed to be presented in the form of operator equation F(x)=b. This method aims to reformulate the expressions to provide more accurate computations (e.g. by reducing rounding errors). Also, as will be seen below, this alternate method allows for the determination of the contributions of certain devices in the total distortion. 
     Equation 7 above can be represented by the following equation.
 
JΔx j =r j   Equation 8
 
     In the above equation, note that, as described above, J=F′(x 0 ). Also, r j  can be expressed as follows.
 
 r   j   =b−F ( x   j )  Equation 9
 
     The following equation therefore represents the previous step (j−1) for equation 9.
 
 b=r   j−1   +F ( x   j−1 )  Equation 10
 
     After substituting equation 10 into equation 9, the following equation is obtained.
 
 r   j   =JΔx   j−1   +F ( x   j−1 )− F ( x   j )  Equation 11
 
     Note that r 0 =b−b 0 , but without loss of generality, b 0  can be assumed to be 0 such that r 0 =b. Also, as described above, the use of this alternate method allows for the ability to determine the contribution of the nonlinear devices to the total output distortion. This can be done by representing the right hand side of equation 11 containing the terms F(x) and J as the sum of the corresponding devices&#39; contributions, as follows. 
               Equation   ⁢             ⁢             ⁢   12     :             F   ⁡     (   x   )       =       ∑     i   =   1     N     ⁢       F   i     ⁡     (   x   )                       Equation   ⁢           ⁢   13     :           J   =       ∑     i   =   0     N     ⁢     J   i                 
 
     In equations 12 and 13, i is the device index where N is the number of devices. Therefore, substituting into equation 11 above, the following equation is obtained. 
               Equation   ⁢           ⁢   14     :             r   j     =         ∑     i   =   1     N     ⁢     (         J   i     ⁢   Δ   ⁢           ⁢     x     j   -   1         +       F   i     ⁡     (     x     j   -   1       )       -       F   i     ⁡     (     x   j     )         )       =       ∑     i   =   1     N     ⁢     r     j   ,   i                     
 
     The right hand side vector corresponding to the i-th device can be expressed as follows.
 
 r   j,i   =J   i   Δx   j−1   +F   i ( x   j−1 )− F   i ( x   j )  Equation 15
 
     Then the update for the contribution of the i-th device (Δx j,i ) can be obtained by solving the following linear system.
 
JΔx j,i =r j,i   Equation 16
 
     Note that in order to reduce the requirements on memory, one embodiment may compute and store the distortion in some (but not all) nodes of the circuit. Alternatively, the distortion can be computed and stored for all nodes of the circuit. 
     The above description provided for  FIG. 1  can be applied to determine distortion in various types of circuits and can be solved in a variety of different ways. For example, the method of  FIG. 1  can be applied to a circuit having time-invariant large signals, or can be applied to a circuit having time varying large signals. In the latter case, the distortion can be computed in either the time domain or the frequency domain. Examples will be discussed below. In each of these cases, the system of equations, F(x)=b, for a circuit can be generally represented as follows (corresponding to block  14  of FIG.  1 ).
 
 i ( v   L   +v   s )+ {dot over (q)} ( v   L   +v   s )= u   L   +u   s   Equation 17
 
     In the above equation, note that u L  corresponds to the vector of large signal excitations and u s  corresponds to the vector of small signal excitations. Also, i(v L +v s ) represents the resistive currents, and ({dot over (q)}(v L +v s ) represents the capacitive currents. In each of the circuit types, first the steady state response, v L , to the large signal excitations is determined (block  16  of  FIG. 1 ) by solving i(v L )+{dot over (q)}(v L )=u L . (Note that if u L  is time-invariant, then the capacitive component can be ignored when solving v L ). Next, the response, v s , to the small signal excitations is desired; however, computing v s  can be complex and computationally expensive. Therefore, as discussed in reference to  FIG. 1 , v s  can be approximated by v s,3  which corresponds to the approximation of v 3  accurate to the third order. Therefore, the full response accurate to the third order, v 3  can be represented as follows.
 
 v   L   +v   s,3   =v   3   Equation 18
 
     Various embodiments use different methods to represent and obtain v 3  (corresponding to blocks  18 – 24  of  FIG. 1 ), some examples of which will be provided below. Each of the examples below obtains v 3 , the response accurate to the third order, using only the first order transfer function without needing to compute the second and third order transfer functions. 
     In a first example, a circuit having a DC operating point is analyzed, where the circuit has only DC current or voltage sources (i.e. time-invariant sources. Therefore, the circuit equations (corresponding to F(x)=b) generated in block  14  are time-invariant. In a circuit having only time-invariant sources, the total solution to the circuit equations, accurate to the third order can be approximated as the sum of a DC component (corresponding to v 3,0  in equation 19 below), a scaled sine wave with frequency ω S  (corresponding to V 3,1 e jω     s     t +V* 3,1 e −jω     s     t  in equation 19 below), a scaled sine wave with frequency 2ω S  (corresponding to V 3,2 e j2ω     s     t +V* 3,2 e −j2ω     s     t  in equation 19 below), and a scaled sine wave with frequency 3ω S  (corresponding to V 3,3 e j3ω     s     t +V* 3,3 e −j3ω     s     t  in equation 19 below), as shown in equation 19.
 
 v   3 ( t )= v   3,0   +V   3,1   e   jω     s     t   +V*   3,1   e   −jω     s     t   +V   3,2   e   j2ω     s     t   +V*   3,2   e   −j2ω     s     t   +V   3,3   e   j3ω     s     t   +V*   3,3   e   −j3ω     s     t   Equation 19
 
     Note that in the above equation, v 3 (t) refers to the third order accurate response. The superscript “*” indicates the complex conjugate. The first subscript in V k,j  refers to the order of the response and the second subscript refers to the harmonic of the small signal. Without loss of generality, a small signal excitation of the form u S (t)=u 1 e jω     s     t +u 1 e −jω     s     t  is assumed. Here, u 1  is a small constant. In general u S (t) can have harmonic content. However, this is omitted from the discussion to simplify notation. 
     One goal of the current example is to obtain v 3 (t), which is the total response that is accurate to third order in the small signal strength u 1 . Note that v 3 (t) will be obtained using only the first order transfer function along with the first and second order responses, as will be described below. That is, in the current example, the second and third order transfer functions are not required thus allowing for reduced computation complexity. Therefore, there is a need to solve for v 3,0 , V 3,1 , V 3,2  and V 3,3  in equation 19 above. These correspond to the Fourier coefficients of the total response and describe the response accurate to the third order. The process for solving for these coefficients begins by computing the DC solution (block  16  of  FIG. 1 ) at the operating point using the circuit equations generated in block  14  of  FIG. 1 . For example, in a circuit having only DC current or voltage sources, the system of equations, F(x)=b, can be represented as follows:
 
 i ( v   L ) =u   L   Equation 20
 
     In the above equation, i(v L ) is the vector of resistive currents and u L  is the vector of large signals representing the DC excitation. v L  is the DC response or the operating point of the circuit (corresponding to the steady state response). Using equation 20, v 0,0  (the DC operating point in response to u 1 ) can be computed. (Note that v 0,0 =v L .) 
     Next, in block  18  of  FIG. 1 , the circuit element models are linearized about the DC operating point. This yields the time-invariant conductances, g, and capacitances, c, for each circuit element model. This is needed to construct the linear time-invariant equations of block  18  used to obtain the first order transfer function. The equations for g and c are as follows: 
               Equation   ⁢           ⁢   21     :           g   =       ⅆ     i   ⁡     (     v   L     )           ⅆ     v   L                       Equation   ⁢           ⁢   22     :           c   =       ⅆ     q   ⁡     (     v   L     )           ⅆ     v   L                   
 
     The time-invariant conductances and capacitances are used to generate the time-invariant linear system of differential equations that embody Kirchoff&#39;s current laws for the small signal response. This produces a representation of the circuit&#39;s response to the small excitations (see equation 23 below). Therefore, the nonlinear system of equations computed in block  14  is approximated with a linear system of equations with time-invariant coefficients. 
               Equation   ⁢           ⁢   23     :                 c   ·     ⅆ     [       v     S   ,   1       ⁡     (   t   )       ]           ⅆ   t       +     g   ·       v     S   ,   1       ⁡     (   t   )         -       u   S     ⁡     (   t   )         =   0             
 
     In the above equation, v s,1 (t) is the response to u s (t) accurate to the first order where u s (t) refers to a small amplitude excitation. Thus the system is linear and time-invariant. This provides the first order transfer function as “jω s c+g” such that (jω s c+g)v s,1 =u s . The first order transfer function is then used to determine the first order response (block  20  of  FIG. 1 ), where the first order response can be represented as follows.
 
 v   1 ( t )= v   1,0   +V   1,1   e   jω     s     t   +V*   1,1   e   −jω     s     t   Equation 24
 
     Equation 24 above represents the response to the small signal excitation that is accurate to the first order. Since V 1,1  does not change the DC operating point, we already have v 1,0 =v 0,0 . To obtain V 1,1  we solve the following equation.
 
( jω   s   C+G ) V   1,1   =u   1   Equation 25
 
     In equation 25, G and C are matrices constructed from the conductances and capacitances (g and c) of the individual elements of the circuit. Note that equation 25 above represents the first order transfer function, (jω s C+G), and is used to obtain v 1 (t). Having obtained v 1 (t), the process proceeds to block  22  where the second order response is determined using the first order transfer function and the first order response. Equation 26 below provides the second order response that is accurate second order.
 
 v   2 ( t )= v   2,0   +V   2,1   e   jω     s     t   +V*   2,1   e   −jω     s     t   +V   2,2   e   j2ω     s     t   +V*   2,2   e   −j2ω     s     t   Equation 26
 
     Note that the response to the small signal is being solved in the frequency domain in the current embodiment. Therefore, the circuit function is evaluated in the frequency domain as follows: F(V)=Γi(v)+ΩΓq(v). That is, F(V) represents the KCL equations of the circuit in the frequency domain. Here Γ is the DFT matrix, and Ω is a diagonal matrix D(0,jω S ,2jω S ,−2jω S ,−ω S ). The terms i(v) and q(v) are evaluated using v=v 1 (t) at 5 uniformly spaced time-points over 2π/ω S . The time-domain voltage v is obtained from the Fourier coefficients V using the inverse DFT matrix. Thus, F contains the DC component F 2,0 , the fundamental component F 2,1  and the second harmonic component F 2,2 . These are then used to compute the second order response as follows:
 
Gv 2,0 =F 2,0   Equation 27
 
( jω   s   C+G ) V   2,1   =u   1   +F   2,1   Equation 28
 
( j 2ω s   C+G ) V   2,2   =F   2,2   Equation 29
 
     Note that u 1  only enters into equation 28 because it is assumed to be the Fourier coefficient of the excitation only at the frequency ω S . Equation 27 gives v 2,0 , the DC content of the second order response. Equation 28 gives V 2,1 , the fundamental content of the second order response. Equation 29 gives V 2,2 , the second harmonic content of the second order response. Note that in each of equations 27, 28, and 29, only the first order transfer function, (jω s C+G), is used, evaluated at different frequencies (0, ω s  and 2ω s  respectively). 
     The total second order response of equation 26 is then used to compute the third order response that is accurate to the third order (block  24  of  FIG. 1 ). The third order response is as given above in equation 19. The circuit function in the frequency domain is evaluated as follows: F(V)=Γi(v)+ΩΓq(v). Here Γ is the DFT matrix, and Ω is a diagonal matrix D(0,jω S ,2jω S , 3jω S ,−3jω S ,−2ω S ,−ω S ). The terms i(v) and q(v) are evaluated using v=v 2 (t) at 7 uniformly spaced time-points over 2π/ω S . Therefore, F contains the DC component F 3,0 , the fundamental component F 3,1 , the second harmonic component F 3,2 , and the third harmonic component F 3,3 . These are then used to compute the third order response using the following equations:
 
Gv 3,0 =F 3,0   Equation 30
 
( jω   s   C+G ) V   3,1   =u   1   +F   3,1   Equation 31
 
( j 2ω s   C+G ) V   3,2   =F   3,2   Equation 32
 
( j 3ω s   C+G ) V   3,3   =F   3,3   Equation 33
 
Equation 30 gives v 3,0 , the DC component of the third order response. Equation 31 gives V 3,1 , the fundamental content of the third order response. Equation 32 gives V 3,2 , the second harmonic content of the third order response. Equation 33 gives V 3,3 , the third harmonic content of the third order response. Note that again, only the first order transfer function, (jω s C+G), is used, evaluated at different frequencies (0, ω s , 2ω s , and 3ω s , respectively).
 
     This completes the determination of the small signal response to third order accuracy as represented by equation 19. Furthermore, only the first order transfer function was needed where the first order transfer function was evaluated at different frequencies. Flow can then proceed with block  26 , as was described above. Note that the above procedure gives the response to third order accuracy only if the input signal is small. Therefore, in one embodiment, the input signal is considered small if, when its magnitude is increased by a factor of 2, V 3,2  increases by a factor of at most approximately 4 and V 3,3  increases by a factor of at most approximately 8. That is, if this relationship is true (to a good approximation), then the input signal has satisfied the assumption of being small. If, upon increasing the small signal amplitude by a factor of 2, the corresponding increase in V 3,2  and V 3,3  deviate significantly from a factor of 4 and 8 respectively, then a complete nonlinear analysis should be used since the small signal assumption is violated. 
     Note that in a multi-tone system (i.e. a circuit receiving more than one tone), equation 19 above can be represented, in the case of a 2-tone excitation, as follows: 
               Equation   ⁢           ⁢   34     :               v   3     ⁡     (   t   )       =       ∑     n   =     -   3       3     ⁢       ∑     m   =     -   3       3     ⁢       V     n   ,   m       ⁢     ⅇ     j   ⁢           ⁢   n   ⁢           ⁢     ω   s1     ⁢   t       ⁢     ⅇ     j   ⁢           ⁢   m   ⁢           ⁢     ω   s2     ⁢   t                       
 
This equation describes the response to a two-tone small signal input where the two input frequencies are ω s1  and ω s2 . Therefore, the same procedures described above can be applied to a multi-tone system.
 
     In a second example, a circuit having a periodic time-domain steady state response is analyzed. That is, in the current example, the large signals include time-varying periodic input signals. The total solution, v s (t), is represented in mixed frequency-time domain (MFT) consisting of a summation of terms such as V n (t)e jnω     s     t  (see equation 35 below). That is, V n (t) is the time-varying complex amplitude (i.e. amplitude modulation) of the sine wave represented by e jnω     s     t . In response to this small signal input, the response to the third order is desired in the following form:
 
 v   3 ( t ) =v   3,0 ( t ) +V   3,1 ( t ) e   jω     s     t   +V*   3,1 ( t ) e   −jω     s     t   +V   3,2 ( t ) e   j2ω     s     t   +V*   3,2 ( t ) e   −j2ω     s     t   +V   3,3 ( t ) e   j3ω     s     t   +V*   3,3 ( t ) e   −j3ω     s     t   Equation 35
 
     Without loss of generality, a small signal excitation of the form u s (t)=u 1 e jω     s     t +u 1 e −jω     s     t  is assumed. Here, u 1  is a small constant. In general u s (t) can have harmonic content. However, this is omitted from the discussion to simplify notation. 
     One goal of the current embodiment is to obtain v 3 (t), which is the total response that is accurate to third order in the small signal strength u 1 . Note that as in the first example, v 3 (t) will be obtained using only the first order transfer function along with the first and second order responses, as will be described below. That is, in the current example, the second and third order transfer functions are not required thus allowing for reduced computation complexity. Therefore, there is a need to solve for v 3,0 (t), V 3,1 (t), V 3,2 (t) and V 3,3 (t) in equation 35 above. These correspond to the periodically time-varying Fourier coefficients of the small signal response and describe the response accurate to third order. The process for solving for these coefficients begins by computing the periodic steady state, v 0,0 (t), in response to u L  (block  16  of  FIG. 1 ). 
     The steady-state response is computed in the time-domain in response to the large periodic excitations, such as, for example, a clock. The steady-state response generally refers to the state of the circuit after all transient effects have died off. This response is computed by solving the resulting system of nonlinear differential equations generated in block  14  of  FIG. 1  as constrained by the periodic boundary conditions due to the periodic excitation. Furthermore, the differential equations are solved on a discrete time grid having a finite number of time sample points. Any standard method may be used to solve this system of nonlinear equations, such as, for example, the shooting-Newton method. Note that for this computation, the small amplitude excitations are ignored. 
     For example, the following equations represent the KCL for the circuit (equation 36) and the corresponding boundary conditions (equation 37):
 
 {dot over (q)} ( v   L ( t ))+ i ( v   L ( t ))− u   L =0  Equation 36
 
 v   L ( T   L )= v   L (0)  Equation 37
 
     In the above equations, u L (t) refers to the large amplitude periodic excitation having a period of T L =2π/ω L  (such as a clock that is a square wave). Also, i(v L (t)) is the vector of resistive currents and {dot over (q)}(v L (t)) is the vector of capacitive currents. Note that in a multi-tone system, u L (t) may include large amplitude periodic excitations having different frequencies and periods, such as T L1 =2π/ω L1 , T L2 =2π/ω L2 , etc. 
     Next, in block  18  of  FIG. 1 , the circuit element models are linearized about the steady state response over one period of the excitation, assuming a single tone system. This yields the time-varying conductances, g(t), and capacitances, c(t), for each circuit element model. This is needed to construct the linear time-varying equations used to obtain the first order transfer function (which will be discussed below). The equations for g(t) and c(t) are as follows: 
               Equation   ⁢           ⁢   38     :             g   ⁡     (   t   )       =       ⅆ     i   ⁡     (       v   L     ⁡     (   t   )       )           ⅆ     v   L                       Equation   ⁢           ⁢   39     :             c   ⁡     (   t   )       =       ⅆ     q   ⁡     (       v   L     ⁡     (   t   )       )           ⅆ     v   L                   
 
     The time-varying conductances and capacitances are used to generate the time-varying linear system of differential equations that embody Kirchoff&#39;s current laws for the small signal response. This produces a representation of the circuit&#39;s response to the small excitations (see equation 40 below). Therefore, the nonlinear system of equations computed in block  14  of  FIG. 1  is approximated with a linear system of equations with time-varying coefficients. 
               Equation   ⁢           ⁢   40     :                 ⅆ     [       c   ⁡     (   t   )       ⁢       v     S   ,   1       ⁡     (   t   )         ]         ⅆ   t       +       g   ⁡     (   t   )       ⁢       v     S   ,   1       ⁡     (   t   )           =       u   S     ⁡     (   t   )                 
 
     In the above equation, v s,1 (t) is the response to u s (t) accurate to the first order where u s (t) refers to a small amplitude excitation. Note also that c(t) and g(t) are T L  periodic, such that g(t)=g(t+T L ) and c(t)=c(t+T L ). Thus the system is linear and periodically time-varying with period T L . This system with period T L =2π/ω L  responds to a sinusoidal input of frequency ω s  (i.e. the frequency of the small amplitude excitation, u s (t)) with a spectrum of components at:
 
ω=ω s+   lω   L  where  l= 0,±1,±2, . . .  Equation 41
 
     This means that: 
               Equation   ⁢           ⁢   42     :               v   S     ⁡     (   t   )       =         ∑   l     ⁢       V   l     ⁢     ⅇ       j   ⁡     (       ω   S     +     l   ⁢           ⁢     ω   L         )       ⁢   t           =         V   1     ⁡     (   t   )       ⁢     ⅇ     j   ⁢           ⁢     ω   S     ⁢   t                     
 
     V n  is the envelope of the n-th harmonic component of the small signal response. It is a time-varying function with the same period as the large signal excitation. Note that this equation only describes the linear response to the small signal. However, the real system also responds with nonlinear terms, and the full solution has the form:
 
ω= nω   s   +lω   L  where  l= 0,±1,±2, . . . and  n= 0,±1,±2, . . .  Equation 43
 
     This means that: 
               Equation   ⁢           ⁢   44     :               v   S     ⁡     (   t   )       =         ∑   l     ⁢       ∑   n     ⁢       V   l     ⁢     ⅇ       j   ⁡     (       n   ⁢           ⁢     ω   S       +     l   ⁢           ⁢     ω   L         )       ⁢   t             =       ∑   n     ⁢         V   n     ⁡     (   t   )       ⁢     ⅇ     j   ⁢           ⁢   n   ⁢           ⁢     ω   S     ⁢   t                       
 
In equation 44, it can be seen that all harmonics of the small signal frequency are also present in the solution. One goal of the current embodiment is to use only the linear response equation to construct the nonlinear response to the desired accuracy.
 
     Note that equations 42 and 44 assume a single small signal tone system; however, the circuit can have a multi-tone small signal input. For example, equation 45 below corresponds to a two-tone response reflecting the sum of i harmonics of the first term and k harmonics of the second term, where, in one embodiment, i=k=3. 
               Equation   ⁢           ⁢   45     :             v   ⁡     (   t   )       =       ∑     n   =     -   i       i     ⁢       ∑     m   =     -   k       k     ⁢         V     n   ,   m       ⁡     (   t   )       ⁢     ⅇ     j   ⁢           ⁢   n   ⁢           ⁢     ω   s1     ⁢   t       ⁢     ⅇ     j   ⁢           ⁢   m   ⁢           ⁢     ω   s2     ⁢   t                       
 
     Referring back to  FIG. 1 , the first order transfer function is determined in block  18 , and the first order response is determined in block  20 . The response that is accurate to the first order is represented as follows.
 
 v   1 ( t )= v   1,0   +V   1,1   e   jω     s     t   +V*   1,1   e   −jω     s     t   Equation 46
 
     Since V 1,1  does not change the steady state, v 1,0 =v 0,0 . To obtain V 1,1 , the process proceeds as follows. 
     By substituting V 1 (t)e jω     s     t  from equation 42 for v s (t) in equation 40 above, the following equation is obtained: 
       Equation   47:       
             ⅆ     [       c   ⁡     (   t   )       ⁢       V   1     ⁡     (   t   )       ⁢     ⅇ     j   ⁢           ⁢     ω   s     ⁢   t         ]         ⅆ   t       +       g   ⁡     (   t   )       ⁢       V   1     ⁡     (   t   )       ⁢     ⅇ     j   ⁢           ⁢     ω   s     ⁢   t           =     u   ⁢           ⁢     ⅇ     j   ⁢           ⁢     ω   s     ⁢   t             
 
     The time-varying linear system of differential equations is discretized by discretizing only the amplitude modulation, V 1 (t), and using an analytic derivative of the sine wave, e jω     s     t , as follows: 
       Equation   48:       
             ⅆ     [       c   ⁡     (   t   )       ⁢       V   1     ⁡     (   t   )         ]         ⅆ   t       +     j   ⁢           ⁢     ω   S     ⁢     c   ⁡     (   t   )       ⁢       V   1     ⁡     (   t   )         +       g   ⁡     (   t   )       ⁢       V   1     ⁡     (   t   )           =   u       
 
     Flow then proceeds to block  20  of  FIG. 1  where the first order response is be determined by solving for V 1 (t). 
           Equation    49:     ⁢     
     [             G   1     +     j   ⁢           ⁢     ω   S     ⁢     C   1       +       C   1       h   1             0       0         -       C   M       h   1                   -       C   1       h   2                 G   2     +     j   ⁢           ⁢     ω   S     ⁢     C   2       +       C   2       h   2             0       0           0       0       ⋰       ⋮           0       0         -       C     M   -   1         h   m                 G   M     +     j   ⁢           ⁢     ω   S     ⁢     C   M       +       C   M       h   M               ]     ⁢             [             V   1     ⁡     (   1   )                   V   1     ⁡     (   2   )               ⋮               V   1     ⁡     (   M   )             ]     =     -     [           u   1               u   1             ⋮             u   1           ]               
 
     Note that V 1 (t) is computed at M uniformly spaced time-points index by the time-point number (1,2, . . . ,M). G and C are matrices composed of the g(t) and c(t) of each circuit element. Here the subscripts on G, C, and h refer to the index of the time sample, and h is the time-step between time samples. Note that the left-most matrix in equation 49 is referred to as J (i.e. the first order transfer function) in the following description. Therefore, equation 49 can be re-written as follows:
 
 J (ω s ) V   1,1   =u   1   Equation 50
 
     Equation 50 above represents the first order transfer function. After obtaining v 1 (t), the process proceeds to block  22  of  FIG. 1  where the second order response is determined using the first order transfer function and the first order response. Equation 51 below provides the second order response that is accurate to the second order.
 
 v   2 ( t )= v   2,0 ( t ) +V   2,1 ( t ) e   jω     s     t   +V*   2,1 ( t ) e   −jω     s     t   +V   2,2 ( t ) e   j2ω     s     t   +V*   2,2 ( t ) e   −j2ω     s     t   Equation 51
 
     Note that the response to the small signal in the frequency domain is being solved. Therefore, the circuit function is evaluated in the frequency domain as follows: F K (V)=Γi K (v)+ΩΓq K (v), at each of the M time-points over the period T L  (k=1,2, . . . ,M). That is, F K (V) represents the KCL equations of the circuit in the frequency domain. Here Γ is the DFT matrix, and Ω is a diagonal matrix D(0,jω S ,2jω S ,−2jω S ,−ω S ). The terms i K (v) and q K (v) are evaluated using v=v 1 (t) at 5 uniformly spaced time-points over 2π/ω S . The time-domain voltage v at each time-point is obtained from the Fourier coefficients V at the corresponding time-point using the inverse DFT matrix. So, F contains the periodically time-varying DC component F 2,0 , the fundamental component F 2,1  and the second harmonic component F 2,2 . These are then used to compute the second order response as follows:
 
 J (0) v   2,0   =F   2,0   Equation 52
 
 J (ω s ) V   2,1   =u   1   +F   2,1   Equation 53
 
 J (2ω s ) V   2,2   =F   2,2   Equation 54
 
Note that u 1  enters only equation 53 because it is assumed to be the Fourier coefficient of the excitation only at the frequency ω S . Equation 52 gives v 2,0 , the DC content of the second order response. Equation 53 gives V 2,1 , the fundamental content of the second order response. Equation 54 gives V 2,2 , the second harmonic content of the second order response. Note that in each of equations 52, 53, and 54, only the first order transfer function, J, is used, evaluated at different frequencies (0, ω s , and 2ω s , respectively).
 
     The total second order response is then used to compute the third order response that is accurate to the third order. The third order response is given above in equation 35. The circuit function in the frequency domain is evaluated as follows: F K (V)=Γi K (v)+ΩΓq K (v) for k=1,2, . . . M. Here Γ is the DFT matrix, and Ω is a diagonal matrix D(0,jω S ,2jω S , 3jω S ,−3jω S ,−2jω S ,−ω S ). The terms i(v) and q(v) are evaluated using v=v 2 (t) at 7 uniformly spaced time-points over 2π/ω s . Therefore, F contains the periodically time-varying envelopes of the DC component F 3,0 , the fundamental component F 3,1 , the second harmonic component F 3,2 , and the third harmonic component F 3,3 . These are then used to compute the third order response as follows:
 
 J (0) v   3,0   =F   3,0   Equation 55
 
 J (ω s ) V   3,1   =u   1   +F   3,1   Equation 56
 
 J (2ω s ) V   3,2   =F   3,2   Equation 57
 
 J (3ω s ) V   3,3   =F   3,3   Equation 58
 
Equation 55 gives v 3,0 , the DC component of the third order response. Equation 56 gives V 3,1 , the fundamental content of the third order response. Equation 57 gives V 3,2 , the second harmonic content of the third order response. Equation 58 gives V 3,3 , the third harmonic content of the third order response. Note that in each of equations 55, 56, 57, and 58, only the first order transfer function, J, is used, evaluated at different frequencies (0, ω S , 2ω S , and 3ω S , respectively).
 
     This completes the determination of the small signal response to third order accuracy as represented by equation 35 according to the second example. Furthermore, only the first order transfer function was needed where the first order transfer function was evaluated at different frequencies. Flow can then proceed with block  26 , as was described above. 
     In a third example, a circuit having a frequency domain steady state response is analyzed. That is, in the current example, the large signals include periodic large input signals. In response to the small signal input, the response to the third order in the following form is desired.
 
 v   3 ( t )= v   3,0 ( t )+ V   3,1 ( t ) e   jω     s     t   +V*   3,1 ( t ) e   −ω     s     t   +V   3,2 ( t ) e   j2ω     s     t+   V*   3,2 ( t ) e   −j2ω     s     t   +V   3,3 ( t ) e   j3ω     s     t   +V*   3,3 ( t ) e   −j3ω     s     t   Equation 59
 
     Without loss of generality, a small signal excitation of the form u s (t)=u 1 e −jω     s     t +u 1 e −jω     s     t  is assumed. Here, u 1  is a small constant. In general u s (t) can have harmonic content. However, this is omitted from the discussion to simplify notation. 
     One goal of the current embodiment is to obtain v 3 (t), which the total response that is accurate to the third order in the small signal strength u 1 . Note that is in the first two examples, v 3 (t) will be obtained using only the first order transfer function along with the first and second order responses, as will be described below. That is, in the current example, the second and third order transfer functions are not required thus allowing for reduced computation complexity. Therefore, there is a need to solve for v 3,0 (t), V 3,1 (t), V 3,2 (t) and V 3,3 (t). These correspond to the periodically time-varying Fourier coefficients of the small signal response and describe the response accurate to third order. The process for solving for these coefficients begins by computing the periodic steady state, v 0,0 (t), in response to u L  (block  16  of  FIG. 1 ). 
     The steady state response is computed in the frequency domain in response to the large periodic excitations. This response is computed by solving the resulting system of nonlinear differential equations generated in block  14  of  FIG. 1  as constrained by the periodic boundary conditions due to the periodic excitation. Furthermore, the differential equations in the time domain are converted to algebraic equations in the frequency domain that are solved on a discrete frequency grid having a finite number of frequency sample points. Any standard method may be used to solve this system of nonlinear equations, such as, for example, the harmonic balance method. Note that for this computation, the small amplitude excitations are ignored. 
     For example, the following equation represents the KCL for the circuit (equation 60):
 
Ω Q ( V   L )+ I ( V   L )= U   L   Equation 60
 
In the above equation, U L  refers to Fourier components of the large amplitude periodic excitations having periods of T L1 =2π/ω L1 , T L2 =2π/ω L2 , etc. for each tone within a multi-tone system. Also, I(V L ) is the Fourier transform of the vector of resistive currents, Q(V L ) is the Fourier transform of the vector of capacitive currents, and Ω is the representation of the time derivative in the frequency domain.
 
     Next, in block  18  of  FIG. 1 , the circuit element models are linearized about the steady state response. This yields the time-varying conductances, g, and capacitances, c, for each circuit element model. This is needed to construct the linear time-varying equations. First the steady state solution obtained in the frequency domain is converted into the time domain. Then, at each time-domain sample, the equations for g and c are as defined earlier in the time-domain: 
       Equation   61:       
         g   ⁡     (   t   )       =       ⅆ     i   ⁡     (       v   L     ⁡     (   t   )       )           ⅆ     v   L             
       Equation   62:       
         c   ⁡     (   t   )       =       ⅆ     q   ⁡     (       v   L     ⁡     (   t   )       )           ⅆ     v   L             
 
     These periodically time-varying conductances and capacitances are converted into frequency domain conductance and capacitance matrices as follows:
 
G F =ΓG T Γ −1   Equation 63
 
C F =ΓC T Γ −1   Equation 64
 
     In equations 63 and 64, Γ is the matrix corresponding to the Fourier transform. The matrices G T  and C T  are the conductance and capacitance matrices for the entire circuit in the time-domain. The corresponding frequency domain matrices G F  and C F  are used to generate the systems of equations in the frequency domain that embody Kirchoff&#39;s current laws for the small signal response. This produces a representation of the circuit&#39;s response to the small excitations. Therefore, the nonlinear system of equations is approximated with a linear system of equations:
 
( G   F +(Ω+ jω   s ) C   F ) V   S   =U   S   Equation 65
 
     In the above equation, V s  is the response to U s  where U s  refers to the frequency domain representation of the small amplitude excitation. As in the discussion of the time-domain solution, the nonlinear system with period T L= 2π/ω L  responds to a sinusoidal input of frequency ω s  (i.e. the frequency of the small amplitude excitation, U s ) with a spectrum of components at:
 
ω= nω   s   +lω   L  where  l= 0,±1,±2, . . . and  n= 0,±1,±2, . . .  Equation 66
 
     This means that: 
       Equation   67:       
           v   S     ⁡     (   t   )       =       ∑   l     ⁢           ⁢       ∑   n     ⁢           ⁢       V     l   ,   n       ⁢     ⅇ       j   ⁡     (       n   ⁢           ⁢     ω   S       +     l   ⁢           ⁢     ω   L         )       ⁢   t                 
 
     Note that one goal of the current embodiment is to obtain the coefficients in equation 67 using only the linear response equation given in equation 65. 
     Equation 67 assumes a single small signal tone system; however, the circuit can have a multi-tone small signal input. For example, equation 68 below corresponds to a two-tone response reflecting the sum of i harmonics of the first term and k harmonics of the second term, where, in one embodiment, i=k=3. 
       Equation   68:       
         v   ⁡     (   t   )       =       ∑     n   =   i     i     ⁢           ⁢       ∑     m   =     -   k       k     ⁢           ⁢         V     n   ,   m       ⁡     (   t   )       ⁢     ⅇ     j   ⁢           ⁢   n   ⁢           ⁢     ω     s   ⁢           ⁢   1       ⁢   t       ⁢     ⅇ     j   ⁢           ⁢   m   ⁢           ⁢     ω     s   ⁢           ⁢   2       ⁢   t                 
 
     Referring back to  FIG. 1 , the first order transfer function is determined in block  18 , and the first order response is determined in block  20 . The response that is accurate to the first order is represented as follows.
 
 v   1 ( t )= v   1,0   +V   1,1   e   jω     s     t   +V*   1,1   e   −jω     s     t   Equation 69
 
Since V 1,1  does not change the steady state, v 1,0 =v 0,0 . To obtain V 1,1 , the process proceeds as follows.
 
     Note that equation 65 above represents the first order transfer function, J F . Flow then proceeds to block  20  of  FIG. 1  where the first order response is determined by solving the following equation.
 
 J   F (ω s ) V   1,1   =U   1   Equation 70
 
     In equation 70, J F (ω S )=G F +(Ω+jω S )C F  and is the matrix corresponding to the first order transfer function. Having obtained v 1 (t), the process proceeds to block  22  of  FIG. 1  where the second order response is determined using the first order transfer function and the first order response. Equation 71 below provides the second order transfer function that is accurate to the second order.
 
 v   2 ( t )= v   2,0 ( t )+ V   2,1 ( t ) e   jω     s     t   +V*   2,1 ( t ) e   −jω     s     t   +V   2,2 ( t ) e   j2ω     s     t   +V*   2,2 ( t ) e   −j2ω     s     t   Equation 71
 
     Note that the response to the small signal in the frequency domain is being solved. So, the circuit function is evaluated in the frequency domain as follows: F K (V)=Γi K (v)+ΩΓq K (v), at each of the M time-points over the period T L  (k=1,2, . . . ,M). Here Γ is the DFT matrix, and Ω is a diagonal matrix D(0,jω S ,2jω S ,−2jω S ,−ω S )). The terms i K (V) and q K (v) are evaluated using v=v 1 (t) at 5 uniformly spaced time-points over 2π/ω S . The time-domain voltage v at each time-point is obtained from the Fourier coefficients V at the corresponding time-point using the inverse DFT matrix. Therefore, F contains the periodically time-varying DC component F 2,0 , the fundamental component F 2,1  and the second harmonic component F 2,2 . These are then used to compute the second order response as follows:
 
 J   F (0) v   2,0   =F   2,0   Equation 72
 
 J   F (ω s ) V   2,1   =U   1   +F   2,1   Equation 73
 
 J   F (2ω s ) V   2,2   =F   2,2   Equation 74
 
Note that U 1  enters only equation 73 because it is assumed to be the Fourier coefficient of the excitation only at the frequency ω S . Equation 72 gives v 2,0 , the DC content of the second order response. Equation 73 gives V 2,1 , the fundamental content of the second order response. Equation 74 gives V 2,2 , the second harmonic content of the second order response. Note that in each of equations 72, 73, and 74, only the first order transfer function, J F , is used, evaluated at different frequencies (0, ω S , and 2ω S , respectively).
 
     The total second order response is then used to compute the third order response that is accurate to the third order. The third order response is given above in equation 59. The circuit function in the frequency domain is evaluated as follows: F K (V)=Γi K (v)+ΩΓq K (v) for k=1,2, . . . M. Here Γ is the DFT matrix, and Ω is a diagonal matrix D(0,jω S ,2jω S , 3jω S ,−3jω S ,−2jω S ,−ω S ). The terms i(v) and q(v) are evaluated using v=v 2 (t) at 7 uniformly spaced time-points over 2π/ω S . So, F contains the periodically time-varying envelopes of the DC component F 3,0 , the fundamental component F 3,1 , the second harmonic component F 3,2 , and the third harmonic component F 3,3 . These are then used to compute the third order response as follows:
 
 J   F (0) v   3,0   =F   3,0   Equation 75
 
 J   F (ω s ) V   3,1   =U   1   +F   3,1   Equation 76
 
 J   F (2ω s ) V   3,2   =F   3,2   Equation 77
 
 J   F (3ω s ) V   3,3   =F   3,3   Equation 78
 
     Equation 75 gives v 3,0 , the DC component of the third order response. Equation 76 gives V 3,1 , the fundamental content of the third order response. Equation 77 gives V 3,2 , the second harmonic content of the third order response. Equation 78 gives V 3,3 , the third harmonic content of the third order response. Note that in each of equations 75, 76, 77, and 78, only the first order transfer function, J F , is used, evaluated at different frequencies (0, ω S , 2ω S , and 3ω S , respectively). 
     This completes the determination of the small signal response to third order accuracy as represented by equation 59 according to the third example. Note that the frequency domain embodiment differs from the time-domain embodiment only in how the Jacobian J is defined (equation 70 in the third example vs equations 49 and 50 in the second example). Furthermore, as with the second example, only the first order transfer function was needed where the first order transfer function was evaluated at different frequencies. Flow can then proceed with block  26  of  FIG. 1 , as was described above. 
     Therefore, as can be appreciated, the embodiments described herein in reference to  FIG. 1  provide for distortion analysis to measure the second and third order deviation of a circuit response from a desired linear response using only first order transfer functions. Note that distortion analysis using techniques known in the art today rely on the availability of all higher order derivatives (up to the third order) of all the multi-variable functions used to describe the behavior of semiconductor devices or elements used in modern integrated circuits. If higher order distortion, i.e. beyond the third order, is required, then other higher order derivatives are also necessary. This represents a very large overhead to model evaluation, greatly increasing the calculation cost, and, in many cases, can take several man months to implement. Furthermore, new models to describe semiconductor devices are developed each year, and these derivatives need to be implemented for every new model which, as described above, increases overhead tremendously. As can be understood from the descriptions herein in reference to  FIG. 1 , embodiments of the present invention may be used without requiring modifications to the device models. That is, the embodiments described herein may rely only on the first order derivatives for all functions that describe the behavior of semiconductor devices. These first order derivatives are generally readily available and commonly used in a variety of other analyses. Therefore, embodiments of the present invention may support the analysis of distortion in integrated circuits with minimal effort, even in those using newly developed device models. 
     The above embodiments described using a system of equations in time domain or in the frequency domain; however, alternate embodiments may use any combination of time and frequency domain. That is, a combination of the second and third examples may be used in alternate embodiments. 
     In the foregoing specification, the invention has been described with reference to specific embodiments. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present invention as set forth in the claims below. For example, the methods (or portions of the methods) described herein may be computer implemented methods that can be embodied in software or any computer program product. The software or computer program product may include a plurality of instructions which are executed by a computer (i.e. a processor) coupled to the computer program product. (Note that the software or computer product can also be embedded within the computer or processor as well.) The computer program product can include any computer readable medium (or plurality of computer readable media) including, for example, computer hard disks, floppy disks, 3.5″ disks, computer storage tapes, magnetic drums, static random access memory (SRAM) cells, dynamic random access memory (DRAM) cells, electrically erasable (EEPROM, EPROM, flash) cells, nonvolatile cells, ferroelectric or ferromagnetic memory, compact disks (CDs), laser disks, optical disks, and any like computer readable media. Also note that in some embodiments, the term small signal solution may refer to either small signal response or noise response in a circuit (since both may considered small signals, i.e. those that do not substantially perturb the steady-state of the circuit). Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present invention. 
     Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments. However, the benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential feature or element of any or all the claims. As used herein, the terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.