The present invention relates to methods and apparatus for modeling an electronic device or system to predict its performance or to obtain desired performance and is particularly concerned with simulating low voltage integrated circuits.
Design and simulation tools are a necessary component for the development of any microprocessor. Tools that take into account the timing of analog or digital circuits are critical in the development process. The timing of analog or digital circuits is based on certain measured characteristics of the circuit, including voltage, current, and temperature, just to name a few. A simulator should be refined to account for these measured characteristics in a manner which will most accurately represent the timing of the circuits in the final silicon.
Conventional simulation systems make use of a description of the circuit elements, i.e., transistors, resistors, capacitors, etc., and their elementary current and voltage relationships, to determine the time variation of desired voltages and currents of the circuit and other derived parameters such as operating power and timing of signals. Such a simulation system is conventionally implemented in form of a digital signal processing system which solves nonlinear differential algebraic equations (DAE) governing system behavior, and produces an output that typically includes computer aided design data and interacts with the user interface. The method of signal processing conventionally reduces the DAE into ordinary differential equations (ODE), considered a non-trivial task to solve, and makes use of complex implicit integration methods. Solving these equations is the basic (innermost) element of a plurality of nested loops in the larger simulation system.
Clearly, it would be advantageous to calculate the current through a transistor during simulation in a manner that is faster than solving the equations, without unduly impacting the accuracy of the simulation. However, to the inventor's knowledge, no satisfactory method to accomplish this has been known prior to the present invention.
Accordingly, it is an object of the invention to provide a more efficient way to determine the current through specific transistors in the layout. It is another object to provide for an improved real simulation time by reducing the complexity of simulation without reducing the accuracy of the simulation.
These and other objects and advantages of the present invention will become clear to those skilled in the art in view of the description of modes of carrying out the invention, and the industrial applicability thereof as described herein and as illustrated in the several figures of the drawing. The objects and advantages listed are not an exhaustive list of all possible advantages of the invention. Moreover, it will be possible to practice the invention even where one or more of the intended objects and/or advantages might be absent or not required in the application.
Further, those skilled in the art will recognize that various embodiments of the present invention may achieve one or more, but not necessarily all, of the described objects and/or advantages. Accordingly, the objects and/or advantages described herein are not essential elements of the present invention, and should not be construed as limitations.
In the accompanying drawings:
a is a symbolic diagram of the net table of
b illustrates inputs to a five element block of the array of
a is a symbolic diagram of the transistor table of
b shows inputs to a ten element segment of the array of
a is a flow chart which describes the process of determining the normalized adjusted gate voltage data for an n channel MOS transistor according to one embodiment.
b is a flow chart which describes the process of determining the normalized adjusted gate voltage data for an n channel MOS transistor according to an alternate embodiment.
a is a flow chart which describes the process of determining the normalized adjusted gate voltage data for a p channel MOS transistor according to one embodiment.
b is a flow chart which describes the process of determining the normalized adjusted gate voltage data for a p channel MOS transistor according to an alternate embodiment.
a is a flow chart which describes the process of determining the normalized adjusted drain voltage data for the n channel MOS transistor according to one embodiment.
b is a flow chart which describes the process of determining the normalized adjusted drain voltage data for the n channel MOS transistor according to an alternate embodiment.
a is a flow chart which describes the process of determining the normalized adjusted drain voltage data for the p channel MOS transistor according to one embodiment.
b is a flow chart which describes the process of determining the normalized adjusted drain voltage data for the p channel MOS transistor according to an alternate embodiment.
a is a flow chart which describes the process of determining the normalized adjusted temperature data according to one embodiment.
b is a flow chart which describes the process of determining the normalized adjusted temperature data according to an alternate embodiment.
This invention is described in the following description with reference to the figures, in which like numbers represent the same or similar elements. While this invention is described in terms of modes for achieving this invention's objectives, it will be appreciated by those skilled in the art that variations may be accomplished in view of these teachings without deviating from the spirit or scope of the present invention.
The embodiments and variations of the invention described herein and/or shown in the drawings are presented by way of example only, and are not limiting as to the scope of the invention. Unless otherwise specifically stated, individual aspects and components of the invention may be omitted or modified, or may have substituted therefor known equivalents, or as yet unknown substitutes such as may be developed in the future or such as may be found to be acceptable substitutes in the future. The invention may also be modified for a variety of applications while remaining within the spirit and scope of the claimed invention, since the range of potential applications is great, and since it is intended that the present invention be adaptable to many such variations.
A known mode for carrying out the invention is a circuit simulator shown in
A net table 505 is connected to the simulator 510 through a bidirectional data line 515. The net table 505, explained in further detail in
The transistor table 555 is connected to the simulator 510 through a bidirectional data line 560. The transistor table 555, explained in
The system also includes gn table 530, gp table 535, dn table 540, dp table 540 and t3/2 table 545. The data from the above tables is used by the simulator to simulate the four types of transistors. A type 0 (n−) transistor and a type 1 (p−) transistor are used in the formulation of an inverter where the n− transistor is connected to the power supply voltage Vdd and the p− transistor is connected to ground Vss. A type 2 (n pass) transistor and a type 3 (p pass) transistor are used in the formulation of a pass gate wherein the voltage control (digital input) is connected to first a type 3 p pass transistor and second through an inverter also connected to a type 2 n pass transistor.
State machine 520 calculates the change in temperature of a transistor by monitoring the current flowing through the transistor at a given simulation step. State machine 520 calculates the current through the transistor using equation 5 in which the current through any transistor type is defined as the product of a relative current coefficient C and a reference current Iref, (the preferred maximum current through that transistor type, according to the application).
I=C·I
ref (5)
The relative current coefficient C, for an n channel MOS transistor is calculated by combining a single numerical value from the normalized adjusted gate voltage data for n channel MOS transistors stored in a gn table 530, explained in further detail in
The state machine reads the reference current Iref of the transistor from the transistor table 555 using the data line 560, which is calculated during the previous simulation step and updates the transistor table 555 with the current value I calculated at current simulation step.
The temperature of the transistor is calculated from the current I through the transistor by means of the general form of equation 10 where the transistor temperature T is the sum of transistor temperature from the previous simulation step T and an adjustment ΔT.
T=T+ΔT (10)
The previously computed transistor temperature T is held in the transistor table 555 as one of the ten elements stored for each transistor of the circuit. The numerical value of the adjustment to the temperature ΔT is calculated by the state machine 520 based on whether the transistor is heating up or cooling down.
If the transistor is heating up (increase in temperature), the adjustment to the temperature ΔT is determined by means of the general form of equation 15 from the product of an increasing temperature change index xincr, and a first relative temperature coefficients C1, which yields an exponential increase of the transistor temperature toward the equilibrium transistor temperature.
ΔT=C1·xincr (15)
The value assigned to the increasing temperature change index xincr is determined from the difference in the present temperature of the transistor and the equilibrium transistor temperature. The greater the difference between the present transistor temperature and the equilibrium transistor temperature, the larger the value of the increasing temperature change index and when combined with the first relative temperature coefficient C1 the more rapidly the transistor's temperature will approach the equilibrium transistor temperature.
If the transistor is cooling down (decrease in temperature), the adjustment to the temperature ΔT is determined by means of the general form of equation 20 from the product of a decreasing temperature change index xdecr to the third power and a second relative temperature coefficients C2 which yields a cubic decrease of the transistor temperature away from the equilibrium transistor temperature.
ΔT=C2·xdec3 (20)
The value assigned to the decreasing temperature change index xdecr is determined from the difference in the present temperature of the transistor and the equilibrium transistor temperature. The greater the difference between the present transistor temperature and the equilibrium transistor temperature, the larger the value of the decreasing temperature change index.
The increasing temperature change index and the decreasing temperature change index are computed in exactly the same way in equation 25, and are determined from the sum of two terms. The first of the two terms is the temperature of the transistor from the previous simulation time step and the second of which is the product of a power consumed by the transistor P and a third temperature coefficients C3 divided by a transistor specific shape factor F.
Again, the transistor temperature T, is contained in the transistor table 555 and is read by the state machine 520 using the data line 560. The transistor shape factor F is computed as the product of the length in tiles of the transistor, a value stored in the transistor table of block 555, and is read by the state machine 520 using the data line 560, and a coefficient not shown in equation 25. The power consumed by the transistor P, is calculated in equation 30 as the absolute value of the product of the current through the transistor I and the difference in the voltage between the drain Vd and source Vs.
P=|I·(Vd−Is)| (30)
Again, the current I, drain voltage Vd, and source voltage Vs is contained in the transistor table 555 read by the state machine 520 using the data line 560.
In one embodiment, a one dimensional array which contains the net table 505 is shown in
b shows a particular five element segment from
In one embodiment, a one dimensional array which contains the transistor table 555 is shown in
b shows a particular ten element segment from
In one embodiment, the process of formulating the normalized adjusted gate voltage data in the gn table 530 is shown in a flow chart of
There are several constants shown in equation 35 necessary in producing the normalized adjusted gate voltage data 530. These include, with the units shown in square brackets, the threshold voltage for the n channel MOS transistor Vtn [mV], the millivolts per Kelvin constant Cmv/k [mV/K], the ambient temperature at which the simulation will take place Ta [K], the reference temperature Tr [K], and the positive supply voltage Vdd [mV]. A multiplication factor of k is applied to the numerator of equation 35 in the step 2010 to avoid a loss of precision when the integer data type is used to perform the computation of equation 35. Hence, the normalized adjusted gate voltage data 530 produced in equation 35 is a factor of k greater than the value produced when performing the computation of equation 35 with floating point arithmetic.
In a step 2015, the normalized adjusted gate voltage data value produced in the step 2010 is stored into the gn table 530 at a position designated by the argument to the function of equation 35. The formulation of the gn table 530 is done so that the first element of the gn table 530 contains fgn(Vss−(1−cv)Vdd), the second element of the gn table 530 contains fgn(Vss−(1−cv)Vdd+1), and so on until the last element of the gn table 530 contains fgn(cvVdd). For example, Vss is 0 mV, cv is 1.0683, and Vdd is 1800 mV, resulting in first element of the gn table 530 contains fgnp (−124), the second element of the gn table 530 contains fgn (−123), and so on until the last element of the gn table 530 contains fgn (1923). However, in the step 2015 only one element of the gn table 530 is filled. Moving to a step 2020, the gate voltage is decremented and is compared to a stop value Vss−(1−cv)Vdd in a step 2025. For example, Vss is 0 mV, cv is 1.0683, and Vdd is 1800 mV, resulting in the stop value −124 mV. The decrement is preferably one millivolt, but an alternative decrement may be used. A yes from the step 2025 indicates that the gate voltage is greater than or equal to −124 mV and step 2010 is repeated. A no from the step 2025 indicates that the gate voltage is less than −124 mV and the flow chart of
In an alternate embodiment, the process of formulating the normalized adjusted gate voltage data in the gn table 530 is shown in a flow chart of
In one embodiment, the process of formulating the normalized adjusted gate voltage data in the gp table 535 is shown in a flow chart of
There are several constants shown in equation 40 necessary in producing the normalized adjusted gate voltage data 535. These include, with the units shown in square brackets, the threshold voltage for the p channel MOS transistor Vtp [mV], the millivolts per Kelvin constant Cmv/k [mV/K], the ambient temperature at which the simulation will take place Ta [K], the reference temperature Tr [K], and the positive supply voltage Vdd [mV]. A multiplication factor of k is applied to the numerator of equation 40 in the step 2510 to avoid a loss of precision when the integer data type is used to perform the computation of equation 40. Hence, the normalized adjusted gate voltage data 535 produced in equation 40 is a factor of k greater than the value produced when performing the computation of equation 40 with floating point arithmetic.
In a step 2515, the normalized adjusted gate voltage data value produced in the step 2510 is stored into the gp table 535 at a position designated by the argument to the function of equation 40. The formulation of the gp table 535 is done so that the first element of the gp table 535 contains fgp(Vss−(1−cv)Vdd), the second element of the gp table 535 contains fgp(Vss−(1−cv)Vdd+1), and so on until the last element of the gp table 535 contains fgp(cvVdd). For example, Vss is 0 mV, cv is 1.0683, and Vdd is 1800 mV, resulting in the first element of the gp table 535 contains fgp (−124), the second element of the gp table 535 contains fgp (−123), and so on until the last element of the gp table 535 contains fgp(1923). However, in the step 2515 only one element of the gp table 535 is filled. Moving to a step 2520, the gate voltage is decremented one millivolt and is compared to a stop value Vss−(1−cv)Vdd. For example, Vss is 0 mV, cv is 1.0683, and Vdd is 1800 mV, resulting in the stop value −124 mV. The decrement is preferably one millivolt, but an alternative decrement may be used. A yes from the step 2525 indicates that the gate voltage is greater than or equal to −124 mV and step 2510 is repeated. A no from the step 2525 indicates that the gate voltage is less than −124 mV and the flow chart of
In an alternate embodiment, the process of formulating the normalized adjusted gate voltage data in the gp table 535 is shown in a flow chart of
In one embodiment, the process of formulating the normalized adjusted drain voltage data in the dn table 540 is shown in a flow chart of
The function of equation 45 is derived from the relationship between, as an example, the total resistances of two resistors in parallel as shown in reduced form in equation 50.
This relationship states that the equivalent resistance of two resistors connected in parallel is equal to the sum of the inverse of the individual resistances. Of course this type of relationship is also present in determining the total capacitance of two capacitors in series, as well as any other relationship in which the total is equivalent to the ratio of the product of the individuals to the sum of the individuals. The relationship of equation 50 is used to formulate equation 45, in which equation 45 is actually the ratio of two different uses of equation 50. There are several constants shown in equation 45 including, with the units shown in parenthesis, the first drain curve parameter for the n transistor dn1 [ ], constant an shown in equation 25 in which a second drain curve parameter for the n transistor dn0 [ ] is shown, the positive supply voltage Vdd [mV], and constant bn shown in equation 55.
In performing the computation of equation 45, in a step 3010 there are five total arithmetic operations of division. Two of the five divisions necessary in formulating the normalized adjusted drain voltage data 540 are not shown, as equation 45 is the simplified form of the ratio of the two uses of equation 50. A multiplication factor k is used to preserve the precision for each of the five divisions, having a net effect of producing a value in block 3010 that is only a factor of k greater than the direct calculation of equation 45 with floating point arithmetic.
In a step 3015, the normalized adjusted drain voltage data value produced in the step 3010 is stored into the dn table 540 at a position designated by the argument to the function of equation 45. The formulation of the dn table 540 is done so that the last element of the dn table 540 contains fdn(cvVdd), the second to last element of the dn table 540 contains fdn(cvVdd+1), and so on until the 125th element of the dn table 540 contains fdn(Vss). For example, Vss is 0 mV, cv is 1.0683, and Vdd is 1800 mV, resulting in the last element of the dn table 540 contains fdn (1923), the second to last element of the dn table 540 contains fdn (1922), and so on until the 125th element of the dn table 540 contains fdn (0). However, in a step 3015 only one element of the dn table 540 is filled. Moving to a step 3020, the drain voltage is decremented and is compared to a stop value Vss in a step 2025. For example, Vss is 0 mV, resulting in the stop value 0 mV. The decrement is preferably one millivolt, but an alternative decrement may be used. A yes from the step 3025 indicates that the drain voltage is greater than or equal to 0 mV and step 3010 is repeated. A no from the step 3025 indicates that the drain voltage is less than 0 mV and a step 3030 which formulates the remainder of the dn table 540 is performed.
In the step 3030, the first 124 elements of the dn table 540 are filled as a result of the previously filled elements 126-249 of the dn table 540. The first 124 elements are filled so that the first element of the dn table 540 is filled with the negation of the value already held in element 249 of the dn table 540, the second element of the dn table 540 is filled with the negation of the value already held in element 248 of the dn table 540, and so on until element 124 of the dn table 540 is the negation of the value already held in element 126 of the dn table 540. Once all 2048 elements of the dn table 540 are filled, the process of formulating the dn table 540 ends the flow chart of
In an alternate embodiment, the process of formulating the normalized adjusted drain voltage data in the dn table 540 is shown in a flow chart of
In one embodiment, the process of formulating the normalized adjusted drain voltage data in the dp table 545 is shown in a flow chart of
Like equation 45, the function in equation 60 is the ratio of two different uses of equation 50. There are several constants shown in equation 60 including, with the units shown in parenthesis, the first drain curve parameter for the n transistor dp1 [ ], constant ap shown in equation 25 in which a second drain curve parameter for the n transistor dp0 [ ] is shown, the positive supply voltage Vdd [mV], and constant bp shown in equation 65.
In performing the computation of equation 60, in a step 3510 there are five total arithmetic operations of division. Two of the five divisions necessary in formulating the normalized adjusted drain voltage data 545 are not shown, as equation 60 is the simplified form of the ratio of the two uses of equation 50. A multiplication factor k is used to preserve the precision for each of the five divisions, having a net effect of producing a value in block 3510 that is only a factor of k greater than the direct calculation of equation 60 with floating point arithmetic.
In a step 3515, the normalized adjusted drain voltage data value produced in the step 3510 is stored into the dp table 545 at a position designated by the argument to the function of equation 60. The formulation of the dp table 545 is done so that the last element of the dp table 545 contains fdp(cvVdd), the second to last element of the dp table 545 contains fdp(cvVdd+1), and so on until the 125th element of the dp table 545 contains fdp(Vss). Vss is 0 mV, cv is 1.0683, and Vdd is 1800 mV, resulting in the last element of the dp table 545 contains fdp (1923), the second to last element of the dp table 545 contains fdp (1922), and so on until the 125th element of the dp table 545 contains fdp(0). However, in a step 3515 only one element of the dp table 545 is filled. Moving to a step 3520, the drain voltage is decremented and is compared to a stop value Vss in a step 3525. For example, Vss is 0 mv, resulting in the stop value 0 mV. The decrement is preferably one millivolt, but an alternative decrement may be used. A yes from the step 3525 indicates that the drain voltage is greater than or equal to 0 mV and step 3510 is repeated. A no from the step 3525 indicates that the drain voltage is less than 0 mV and a step 3530, which formulates the remainder of the dp table 545 is performed.
In the step 3530, the first 124 elements of the dp table 545 are filled as a result of the previously filled elements 126-249 of the dp table 545. The first 124 elements are filled so that the first element of the dp table 545 is filled with the negation of the value already held in element 249 of the dp table 545, the second element of the dp table 545 is filled with the negation of the value already held in element 248 of the dp table 545, and so on until element 124 of the dp table 545 is the negation of the value already held in element 126 of the dp table 545. Once all 2048 elements of the dp table 545 are filled, the process of formulating the dp table 545 of the flow chart of
In an alternate embodiment, the process of formulating the normalized adjusted drain voltage data in the dp table 545 is shown in a flow chart of
In one embodiment, the process of formulating the normalized adjusted temperature data in the t3/2 table 550 is shown in a flow chart of
There are two constants shown in equation 75 with the units shown in parenthesis, the reference simulation temperature Tr [K] and the ambient simulation temperature Ta [K]. A multiplication factor of k is applied to the numerator of equation 75 in the step 4010 to avoid a loss of precision when the integer data type is used to perform the computation of equation 75. Additionally, due to the integer data type and the required three halves exponent in equation 75, Newton's method is applied in which several more divisions occur. However, the net result is that the value produced when performing the computation of equation 75 is a factor of k greater than the computation of equation 75 with floating point arithmetic.
In a step 4015, the normalized adjusted temperature data value produced in the step 4010 is stored into the t3/2 table 550 at a position designated by the argument to the function of equation 75. The formulation of the t3/2 table 550 is done so that the last element of the t3/2 table 550 contains ft3/2 (1999), the second to last element of the t3/2 table 550 contains ft3/2 (1998), and so on until the first element of the t3/2 table 550 contains ft3/2 (0). However, in a step 4015 only one element of the t3/2 table 550 is filled. Moving to a step 4020, the increment to the ambient temperature is decremented and is compared to a stop value Tmin in a step 4025. For example, Tmin is 0 K, resulting in the stop value 0 K. The decrement is preferably one Kelvin, but an alternative decrement may be used. A yes from the step 4025 indicates that the increment to the ambient temperature is greater than or equal to 0 mV and step 4010 is repeated. A no from the step 4025 indicates that the increment to the ambient temperature is less than OK and the flow chart of
In an alternate embodiment, the process of formulating the normalized adjusted temperature data in the t3/2 table 550 is shown in a flow chart of
t3/2incr(UK)=UK+temp (75)
The transistor data selector 4505 also passes the D, S, and CODE values to a gate table selector 4515, and the G, D, S, and CODE values to a drain table selector 4520. The gate table selector 4515 uses the CODE value to select the path to either an increment calculation 4525 into the gn table 530 or an increment calculation 4530 into the gp table 535.
The increment calculation 4525 is dependent on whether the CODE of the transistor represents an (n−) transistor type or an (n pass) transistor type. For an (n−) transistor type, the increment calculation 4525 is the sum of two values in which the first value is simply the base address gn of the gn table. The second value in the sum is the maximum of zero and the sum of the G value and the product of the UK value with the millivolts per Kelvin constant Cmv/k.
gn
incr,n−(G,UK)=max(0,G+UK·Cmv/k)+gn (80)
For an (n pass) transistor type the increment calculation 4525 is the sum of two values in which the first is the base address gn of the gn table. The second is the maximum of two values, zero or the difference between the value G and the minimum of D or S added to the product of UK and the millivolts per Kelvin constant Cmv/k.
gn
incr,n pass(G,D,SUK)=max(0,G−min(D,S)+UK·Cmv/k)+gn (85)
The increment calculation 4530 is dependent on whether the CODE of the transistor represents a (p−) transistor type or a (p pass) transistor type. For a (p−) transistor type, the increment calculation 4530 is the sum of two values in which the first value is simply the base address gp of the gp table. The second value in the sum is the maximum of zero and the sum of the G value and the product of the UK value with the millivolts per Kelvin constant Cmv/k.
gp
incr,p−(G,UK)=max(0,(Vdd−G)+UK·Cmv/k)+gp (90)
For a (p pass) transistor type, the increment calculation 4530 is the sum of two values in which the first is the base address gp of the gp table 535. The second is the maximum of two values, zero or the difference between the value G and the minimum of D or S added to the product of UK and the millivolts per Kelvin constant Cmv/k. The second value in the sum is the maximum of zero or the difference between the positive supply voltage Vdd and the minimum of the positive supply voltage Vdd and the value D or the difference between the value D and S with the value G subtracted and the product of the value UK with the millivolts per Kelvin constant Cmv/k.
gp
incr,p pass(G,D,S,UK)=max(0,Vdd−min(Vdd−D,D−S)−G+UK·Cmv/k)+gp (95)
Similarly, the drain table selector 4520 uses the CODE value to select the path to either an increment calculation 4535 into the dn table 540 or an increment calculation 4540 into the dp table 545.
The increment calculation 4535 is dependent on whether the CODE of the transistor represents an (n−) transistor type or an (n pass) transistor type. For an (n−) transistor type, the increment calculation 4535 is the sum of two values in which the first value is simply the base address dn of the dn table 540 and the second is the D value.
dn
incr,n−(D)=D+dn (100)
For an (n pass) transistor type, the increment calculation 4535 is actually two calculations as two values are selected from the dn table 540. The first increment calculation 4535 is the same as the one presented for an (n−) transistor shown in equation 100. The second increment calculation 4535 is the sum of two values in which the first value is simply the base address dn of the dn table 540 and the second is the S value.
dn
incr,n pass(S)=S+dn (105)
The increment calculation 4540 is dependent on whether the CODE of the transistor represents a (p−) transistor type or a (p pass) transistor type. For a (p−) transistor type, the increment calculation 4540 is the sum of two values in which the first is the base address dp of the dp table and the second is the difference between the positive supply voltage Vdd and the D value.
dp
incr,p−(D)=(Vdd−D)+dp (110)
For a (p pass) transistor type, the increment calculation 4540 is actually two calculations as two values are selected from the dn table 540. The first increment calculation 4540 is the same as the one presented for a (p−) transistor shown in equation 110. The second increment calculation 4540 is the sum of two values in which the first value is simply the base address dp of the dp table 545 and the second is the difference between the positive supply voltage Vdd and the S value.
dp
incr,p pass(S)=(Vdd−S)+dp (115)
Referring back to the increment calculation 4510 and the t3/2 table 550, a single increment into the t3/2 table is calculated in the increment calculation 4510 and that increment is used to select and pass a single value from the t3/2 table to a relative current coefficient calculation 4545. Referring back to the increment calculation 4525 and the gn table 530 along with the increment calculation 4530 and the gp table 535, the gate table selector 4515 specifies which increment calculation and thus the appropriate increment into the corresponding table from which to select a single value that is passed to the relative current coefficient calculation 4545.
Referring back to the increment calculation 4535 and the dn table 540 along with the increment calculation 4540 and the dp table, the drain table selector 4515 specifies which increment calculation(s) and thus the appropriate increment(s) into the corresponding table from which to select value(s) that are evaluated in a drain table calculation 4550. Recall that for an (n−) transistor only one increment calculation 4535 is performed and only one value is selected from the dn table 540, which is then passed to the drain table value calculation 4550 in which the value is simply passed to the relative current coefficient calculation 4545. For an (n pass) transistor, two increments into the dn table 540 are needed from the increment calculation 4535 and therefore two values from the dn table 540 are selected and then passed onto the drain table value calculation 4550. The drain table value calculation 4550 will, for the (n pass) transistor, subtract the value fetched from the dn table 540 specified in equation 105 from the value fetched from the dn table 540 specified in equation 100 and then pass this result onto the relative current coefficient calculation 4545.
Recall that for a (p−) transistor, only one increment calculation 4540 is performed and only one value is selected from the dp table 545 which is then passed to the drain table value calculation 4550 in which the value is simply passed to the relative current coefficient calculation 4545. For a (p pass) transistor, two increments into the dp table 545 are needed from the increment calculation 4540 and therefore two values from the dp table 545 are selected and then passed onto the drain table value calculation 4550. The drain table value calculation 4550 will, for the (p pass) transistor, subtract the value fetched from the dp table 545 specified in equation 115 from the value fetched from the dp table 545 specified in equation 110 and then pass this result onto the relative current coefficient calculation 4545.
The relative current coefficient calculation 4545 will use three input values for each transistor to produce the relative current coefficient C used in equation 5 for determining the current I through the transistor. For an (n−) transistor type, the relative current coefficient Cn− calculated in the relative current coefficient calculation 4545 is the product of the three values fetched from the location specified by the increment into the gn table 530 in equation 80, increment into the dn table 540 in equation 100, and the increment into the t3/2 table 550 in equation 75.
C
n−
=gn(G,UK)·dn(D)·t3/2(UK) (120)
For an (n pass) transistor type, the relative current coefficient Cn pass is calculated in the relative current coefficient calculation 4545 and is the product of the three values fetched from the location specified by the increment into the gn table 530 in equation 85, increments into the dn table 540 in equations 100 and 105, and the increment into the t3/2 table 550 in equation 75.
C
n pass
=gn(G,D,S,UK)·[dn(D)−dn(S)]·t3/2(UK) (125)
For a (p−) transistor type, the relative current coefficient Cp− calculated in the relative current coefficient calculation 4545 and is the product of the three values fetched from the location specified by the increment into the gp table 535 in equation 90, increment into the dp table 545 in equation 110, and the increment into the t3/2 table 550 in equation 75.
C
p−
=gp(G,UK)·dp(D)·t3/2(UK) (130)
For a (p pass) transistor type, the relative current coefficient Cp pass is calculated in the relative current coefficient calculation 4545 and is the product of the three values fetched from the location specified by the increment into the gp table 535 in equation 95, increments into the dp table 545 in equations 110 and 115, and the increment into the t3/2 table 550 in equation 75.
C
p pass
=gp(G,D,S,UK)·[dp(D)−dp(S)]·t3/2(UK) (135)
Numerous modifications, variations and adaptations may be made to the particular embodiments described above without departing from the scope of the patent disclosure, which is defined in the claims.