I'm currently running a few labs here on my own since my university cannot do them in person and I have a SPICE model file in which the lambda value is set for a transistor. When I run a DC sweep on the transistor between the drain and the source and plot the graph and use it to calculate the lambda value I end up with a small discrepancy (1.5e-2 in the model file vs 1.31e-2 in the hand calculation from the simulations DC Sweep results) but I cannot for the life of me work out why? Is it to do with whatever way the simulation converges on the values or is it a case of because I only use a small area of the saturation region to calculate the value the result is off by a bit?

Any help would be appreciated!

Schematic enter image description here


.SUBCKT CD4007N 1 2 3
M 1 2 3 3 CD4007N
.MODEL CD4007N NMOS(L=5u    W=20u             
+VTO    = 1.77          Kp      = 2.169e-4      GAMMA   = 4.10  
+PHI    = 0.65          LAMBDA  = 1.5e-2        CBD     = 20e-12
+IS      = 1e-15         PB      = 0.87
+CBS    = 2e-14         CGDO    = 88e-8         CGBO    = 0
+CJ     = 2e-10         MJ      = 0.5           CJSW    = 1e-9
+MJSW   = 0.33          JS      = 1e-8          TOX     = 1.265e-10)
  • \$\begingroup\$ It depends on many things you have not specified: the type of analysis (.dc, .tran), the number of points, the schematic, itself, how good is the model/subcircuit. \$\endgroup\$ Nov 22, 2020 at 20:00
  • \$\begingroup\$ @aconcernedcitizen Apologies, I'm not really sure (beyond as I said it being a DC Sweep) what kind of analysis it is? The voltage went between 0 and 10 V and the step was 0.001. I'll add the schematic and model now. \$\endgroup\$
    – dbradley
    Nov 22, 2020 at 20:08
  • \$\begingroup\$ @dbradley Can you consistently calculate 1.31e-2 even at different fixed values of \$V_{GS}\$ ? \$\endgroup\$
    – Ste Kulov
    Nov 22, 2020 at 20:28
  • \$\begingroup\$ @SteKulov Yes, at different V_GS values it is pretty consistently 1.31e-2 \$\endgroup\$
    – dbradley
    Nov 22, 2020 at 21:02
  • \$\begingroup\$ There is no guarantee that the LAMBDA parameter in the model file is used in exactly the same way as the lambda value you calculated by hand. In other words, there may not be any discrepancy. \$\endgroup\$ Nov 22, 2020 at 21:09

1 Answer 1


I tried it myself using LTspice and am able to get the expected result. It's possible your procedure is flawed, so I'll lay out how I typically do this measurement/calculation.

First, \$\lambda\$ (aka the "channel length modulation parameter") is calculated using the output characteristics (\$I_{D}\$ vs. \$V_{DS}\$) when the MOSFET is fully in saturation. At this point the output curve forms a straight line. To get \$\lambda\$, you must first extrapolate this line and find the \$V_{DS}\$-intercept. For different \$V_{GS}\$, this \$V_{DS}\$-intercept point will be the same, so \$\lambda\$ will also be the same. The following image from this website highlights this behavior:

enter image description here

You can use the equation for lines to get an easier expression to work with, which I'll do below.

$$ \begin{align*} y = mx + b &\implies x\text{-intercept} = -\frac{b}{m} \\ &\implies -\frac{1}{\lambda} = -\frac{I_{D}\text{-intercept}}{\text{slope}} \\ &\implies \lambda = \frac{\text{slope}}{I_{D}\text{-intercept}} \\ \end{align*} $$

I like to do one more simplification, which allows us to plug in values directly from the LTspice plots without having to explicitly calculate the \$I_{D}\$-intercept. If we take a specific point on the line \$(V_{DS_1},I_{D_1})\$ we can rewrite as:

$$ \begin{align*} &I_{D}\text{-intercept} = I_{D_1} - \text{slope} \cdot V_{DS_1} \\ \\ &\therefore \text{ } \lambda = \frac{\text{slope}}{I_{D_1} - \text{slope} \cdot V_{DS_1}} \end{align*} $$

With the above information, we can perform the simulation on the circuit in question. I chose your same \$V_{GS}\$, but swept the \$V_{DS}\$ up through 20V because that's around where I was satisfied with "straightness" of the line. When plotting \$I_{D}\$ vs. \$V_{DS}\$, I selected points at 20V and 19V to get the slope.

enter image description here

Using the slope and one of the points (I used the one on "Cursor 2"), we can solve the equation derived above:

$$ \lambda = \frac{\text{slope}}{I_{D_1} - \text{slope} \cdot V_{DS_1}} = \frac{(637.561 \times 10^{-6})}{(55.255 \times 10^{-3}) - [(637.561 \times 10^{-6}) \cdot 20]} = 15 \times 10^{-3} $$


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.