Electronic – Measuring transconductance of any circuit

cmosmosfetngspicespicetransconductance

May I know if the following transconductance measurement test circuit is correct because I am getting quite small Gm values ?

I suspect that I need to use some derivative function because changing the mosfets width by a large factor does not change the gm result much at all.

However, my test circuit is simulated in AC, not DC, therefore I really confuse if I should use derivative function or not ?

Note: X1 is a CMOS inverter

enter image description here

Best Answer

I suspect that I need to use some derivative function

The \$g_m\$ of a transistor is indeed defined as the derivative:

$$g_m = \frac{\partial i_{DS}}{\partial v_{DS}}$$

But Spice will always be able to calculate it for you. It is actually one of those perks of how Spice actually solves any analysis! Solving any type of analysis in Spice is centered around Newton-Raphson's method, which is the multidimensional version of Newton's method which requires the derivative of every quantity to every other quantity, including \$g_m\$.

For AC analysis, Newton Raphson's method is first used to determine the operating point. Then the computed derivatives are re-used for the small-signal analysis result. This is therefore a linearized version of the circuit, where linearized means using the derivatives. So the results of an AC analysis will already use the derivatives, including \$g_m\$.

What I am more concerned about is you model statements. Ie. the lines:

.model n1 NMOS
.model p1 PMOS

I assume that the simulator will choose transistor LEVEL=1 by default, and some simulators will choose \$Kp = 0\$ for that, which directly relates to a \$g_m = 0\$. Try specifying that parameter and see if it makes a difference.