[IBIS] Comments on BIRD97

From: Koller Katja <katja.koller_at_.....>
Date: Tue Mar 22 2005 - 04:03:30 PST
Hello all!

I'm enthusiastic about this subject of Gate modulation in IBIS! I was confronted with it when I thought of separating the PVT-conditions for scaling-factors (for example: I have the same process and temperature in my design and ibisfile, but different vcc-conditions. Then I can extract new curves only by changing the vcc). So I was looking from another side to the same problem by working on the case of scaling the vcc. When reading the BIRD97 I noticed that the 2 problems have much in common.
Arpad proposed a Power_coeff Pc. I am afraid that this is valid only inside a small range, centered at the extraction point.
This description can be extended to more accuracy using physical parameters. So you obtain a solution that is valid over a very large region: 0 < vcc < 3*vcc (I can scale a 2.5V buffer up to 3.3V or down to 1.8V, for example).

Now a few considerations of the dependence of the Drain-Source-Current on the Gate-Source-Voltage of a MOSFET:

In most cases it is possible to take the pulldown curve as the curve of a single nmos-transistor where you assume that U_in = U_GS = vcc is the full level. Of course the voltage levels inside the chip can be a bit lower than vcc. But this is the assumption for the following:

From theory I know that in the saturation region the dependence of I_DS versus U_GS (which will be assumed equal to vcc in this text) is quadratic (gradual channel approximation). But as the gate channels get shorter, this relationship switches over into a linear dependence (this is called the short channel approximation). This switching/changing of the formula can be described by an exponent 'a' that lies between 1 (linear) and 2 (quadratic).

I_DS(vcc) ~ (vcc - u_th)**a , 1<a<2, vcc>u_th                     (1)
I_DS(vcc) = 0               , vcc < u_th

     ^
I_DS |           /
     |          /
     |         /             
     |        /              
     |       /               
     |      /                
     ------+----------->   
         u_th       U_GS=vcc

(I'm not able to draw a parabola in this text)
         
Were u_th is a "fictive" threshold voltage at which the transistor starts to conduct (0.5V < u_th < 2.0V for vcc=3.3V). 

I made a lot of spice simulations with different gate lengths, where I found this dependence, too. And it is valid over a very wide range of vcc, e.g. 0 < vcc < 3*vcc. At the beginning of my investigation I hoped that the short channel approximation will start at gate lengths below 1um (and most technologies are below 1um!), so that a linear dependence (a=1) is sufficient. Unfortunately I found some cases where the gate length was definitely below 1um and 'a' was about 1.5. This happens especially with the pmos-transistors. You will have 2 different u_th one for the pulldown (nmos) and one for the pullup (pmos).

When U_DS = vcc the transistor is always in the saturation region, where the extraction of the 2 parameters 'u_th' and 'a' has to be made.


When combining this to the proposed BIRD97, you can see that the suggested Power_coeff Pc doesn't take into account this threshold-voltage, which is in my opinion a significant parameter.
The formula looks like this:
I_inst = k*I_nom = I_nom*(Pc/Vnom)*Vinst                         (2)

In terms of threshold you can rewrite the formula (1) in BIRD97 notation:
I_DS(U_GS=Vinst) = I_inst = I_nom *[(Vinst-u_th)/(Vnom-u_th)]**a (3)

When you assume you have real short channels, with a=1 this becomes:
I_inst = I_nom*(k1 + k2 * Vinst)                                 (4)
with:
k1 = -u_th/(Vnom-u_th), k2 = 1/(Vnom-u_th)


To understand the divergence of the two formulas (2) and (4) I will illustrate it graphically in 2 steps:

1. step: without Power_coeff
         *  --> I_inst = Vinst/Vnom*I_nom                 BIRD97 
         /  --> I_inst = I_nom*(k1 + k2 * Vinst)               (4)


         ^
  I_DS   |               /  *
         |              / *
         |             /*
  I_nom  +.  .  .  .  #
         |          */.
         |        * /            
         |      *  /  .
         |    *   /             
         |  *    /    .          
         |*     /               
         ------+------+----------->
             u_th    Vnom     U_GS=vcc

Vnom is the given vcc-Voltage. I_nom is the current of the pulldown-curve at U_DS = vcc.

2. step: Power_coeff added
         *  --> I_inst = Pc *Vinst/Vnom*I_nom              BIRD97
         /  --> I_inst = I_nom*(k1 + k2 * Vinst)                  (4)
         +  --> I_inst = Vinst/Vnom*I_nom*Pc               BIRD97 (2)


        ^
   I_DS |               /  *       
        |              / *         
        |             /*           
  I_nom +            #                     
        |          */        +
        |        * /     +         
        |      *  /  +
        |    *   #             
        |  * +  /            
        |#     /               
        ------+--+--------------->
           u_th  V_extract   U_GS=vcc

The Power_coeff changes only the slope of the '*'-line.

The '+'-curve (BIRD97) is identical with the '/'-curve only at the point of extraction at V_extract. In the '+'-curve the accuracy becomes poorer if you calculate the current at regions larger or smaller than this V_extract. The accuracy of BIRD97 is also dependant on the value of u_th. When u_th is small the accuracy is good and when u_th is large, the error increases. And when you look at the case when Vinst < u_th then it has no physical background.

Similar considerations can be made with a > 1.
What I have neglected in the whole consideration is 
1) the dimension of the linear region of the MOSFET will also decrease with decreasing vcc
   and
2) the dependence of vcc in the ohmic region is different from the dependence in the saturation region.
But I would neglect these at the first approximation.


As shown above, the method using 'u_th' and 'a' describes the physical phenomena more detailed and guarantees more accuracy over a large range of vcc.
Therefore I suggest to use these 2 parameters instead of the single parameter Power_coeff. It is also possible to use a table from which the 2 hidden parameters ('u_th' and 'a') can be extracted, but I think 2 parameters are easier to handle than a table. And even if 'a' is set to 1 the method with the remaining parameter 'u_th' reflects the physics of the buffer and is therefore much more accurate than the Power_coeff.

Katja


email	: Katja.Koller@siemens.com
phone	: +49 (0)89 722 45719
fax	: +49 (0)89 722 26879
        CAE Models / Libraries
mail	: Siemens AG, Com  SC SL CE TC3
  Hofmann Str. 51
  D-81359 Munich, Germany



-----------------------------------------------------------------
|For help or to subscribe/unsubscribe, email majordomo@eda.org
|with the appropriate command message(s) in the body:
|
|  help
|  subscribe   ibis       <optional e-mail address, if different>
|  subscribe   ibis-users <optional e-mail address, if different>
|  unsubscribe ibis       <optional e-mail address, if different>
|  unsubscribe ibis-users <optional e-mail address, if different>
|
|or email a request to ibis-request@eda.org.
|
|IBIS reflector archives exist under:
|
|  http://www.eda.org/pub/ibis/email_archive/  Recent
|  http://www.eda.org/pub/ibis/users_archive/  Recent
|  http://www.eda.org/pub/ibis/email/          E-mail since 1993
Received on Tue, 22 Mar 2005 13:03:30 +0100

This archive was generated by hypermail 2.1.8 : Tue Mar 22 2005 - 04:05:59 PST