Estimating Hand Calculation Parameters (Lambda)
from the model-simulator for a 130nm tech.
This tutorial (Part 2) is assumed to be followed after the previos one called "Part 1".

Here in this tutorial, I will try to show two  different methods for estimating the parameter lambda which is used to model the channel length modulation in CMOS devices.

Our implementation will sweep Vds on CMOS devices (n & p type MOS transistors) and estimate lambda from the characteristic I-V plots in accordance to two different methods.
Method #1 : This is the most straightforward one I could think of. Using the steps below, solve for lambda and substitude the Id-Vds coordinates that will be taken from the plot we will produce at the end of this tutoril and calculate the lambda.
Method #2 : From the simplified drain current relationship of
eq#1
solve for lambda to express it in terms of Id and Vds like this
eq#2
or take one step further and interpret/approximate the above formula as below one. You will see how to use the below formula to calculate the lambda via the calculator tool of Cadence, this is a better/elegant way to achive the same result :)
eq#3
Ok, here we go !..
  1. Set all sources with the voltages shown in the picture. The vdc vol tages of 300mV and 446.68mV were selected to produce same drain current level which is, in this case, Ids = 41.57µA. The drain-source voltages V2 & V3 have a DC voltage of  Vsweep, which will be swept to produce the characteristic I-V curve. 
  2. Assign the device sizes and types as shown as well.
  3. As seen in the upper-left window (Analog Design Environment), define the Design Variable Vsweep by using "Variables > Copy From Cell View" menu item and assign 1.5V to it.
  4. Then as seen in the bottom-left window, select Vsweep as the design variable to be swapt from 0V to 1.5V which is out Vdd.
  5. "Outputs > To Be Plotted > Select On Schematic" menu iten to select what we want to plot, that is, click on the drain of nMOS and source of pMOS device so that both the currents are positive.
  6. Run the simulation by clicking the green traffic light-like button on Analog Artist (Analog Design Environment).
  7. See the output like the one on the bottom-right.

Click on the image.
Method #1 : Hand calculation with the values taken from the I-V curve for nMOS device. MuPAD is used as a calculator here.
ozgur@olmak:~/Documents/PhD/LLD/130nmDOC/tutparext2> mupad

   *----*    MuPAD 2.5.2 -- The Open Computer Algebra System
  /|   /|
 *----* |    Copyright (c)  1997 - 2002  by SciFace Software
 | *--|-*                   All rights reserved.
 |/   |/
 *----*                    

>> lamda := (Id1-Id2) / ((Vds1-Vds2)*K*(Vgs-Vth)^2)

                                 Id1 - Id2
                       ----------------------------
                                    2
                       K (Vgs - Vth)  (Vds1 - Vds2)
>> K := 0.003291087727: # from part 1 #
>> Vth := 0.2120892994: # from part 1 #
>> Vgs := 0.3: # I set it by myself in the schematic #
>> Id1 := 30.7799*10^-6: # from the marker A #
>> Id2 := 39.8631*10^-6: # from the marker B #
>> Vds1 := 0.36: # from the marker A #   
>> Vds2 := 1.31757: # from the marker B #
>> lamda
                               0.3729455282
>> # This calculation was for the nMOS transistor #
>> _

Click on the image.
Hand calculation with the values taken from the I-V curve for pMOS device. MuPAD is used as a calculator here. So, according to the values, a pMOS device in this technology is ~4 times better (not sensitive to changes in Vds), in case, channel length effect is important.
ozgur@olmak:~/Documents/PhD/LLD/130nmDOC/tutparext2> mupad

   *----*    MuPAD 2.5.2 -- The Open Computer Algebra System
  /|   /|
 *----* |    Copyright (c)  1997 - 2002  by SciFace Software
 | *--|-*                   All rights reserved.
 |/   |/
 *----*            

>> lamda := (Id1-Id2) / ((Vds1-Vds2)*K*(Vgs-Vth)^2)

                                 Id1 - Id2
                       ----------------------------
                                    2
                       K (Vgs - Vth)  (Vds1 - Vds2)
>> K := 0.0006429193863: # from part 1 #
>> Vth := 0.2010996077: # from part 1 #
>> Vgs := 0.44668: # I set it by myself in the schematic #
>> Id1 := 37.6354*10^-6: # from the marker A #
>> Id2 := 40.9772*10^-6: # from the marker B #
>> Vds1 := 0.507796: # from the marker A #
>> Vds2 := 1.34209: # from the marker B #
>> lamda
                               0.1033040707
>> _
>> # This calculation was for the pMOS transistor #
>> _

Click on the image.
Method #2
We will use the same output curves to plot lambda as a function of Vds by using the Eq#2. The calculator functions to perform the derivative and plot lambda from Eq#2.  You can use the calculator function to perform mathematical manipulation on the data from the plots. The calculator is very useful and just takes a little bit of getting used to. Perform the following steps :
  1. Click on the Switch Axis Mode icon on the left to separate the plots (I already have done it in the pictures).
  2. Click the Calculator icon on the left to bring up the calculator (or use Tools > Calculator on waveform window)
  3. Check the Display Stack check-box.
  4. Click wave in the calculator then in the waveform window, click on the n-type drain current curve (in out case the red one)
  5. Select: Special Functions > deriv (it should place deriv(*) around the current expression, and push the current onto the stack)
  6. Click:  var  >  (in schematic window, select V2 or V3, go back to “VAR pop-up window”)  >  select Vsweep  >  OK
  7. Click:  *  (to multiply Vsweep with item in Stack 1, di/dv)
  8. Click:  -  (to subtract above from Stack 1 item, Id)
  9. Click:  1/x  (to take inverse)
  10. Click:  wave >  (select red drain current from waveform again) >  ESC
  11. Select:  Special Functions  >  deriv   (di/dt for numerator)
  12. Click:  dwn (on calculator) >  clear >  up  (to remove Id from stack 1)
  13. Click:  *  (again to multiply)
  14. Click:  plot  (to plot lambda as function of Vds)
  15. To plot lambda for M1, cursor back in the calculator window and change all “T0/D” references to “T1/S”, then click  plot.
  16. You should get the plots in the picture

          According to the values from the plots, lambda could be assumed to be constant for a wide range and its value is ~0.1 for pMOS and ~0.4 for nMOS as an average. These values are in coherence with the ones we calculated at the end of the first method. So, I can sleep well :)

          Also note that these values are for the specific lengths of our transistors; one can perform several simulations to cover a wider range.

Özgür Çobanoğlu