I'm designing an integrated circuit where a series of NMOS with their sources tied to GND and their drains tied together work as parallel current sources. The total added current \$I_D\$ that I'd like to source should have a quadratic shape and this is achieved with a linearly rising gate-to-source control voltage \$V_{GS}\$ according to the typical formula

$$ I_{DS} = \frac{1}{2}\mu_n C_{ox} \frac{W}{L} {\left(V_{GS}-V_T \right)}^2 $$

assuming that the NMOS is in "saturation", ie. \$V_{DS} > V_{GS}-V_T\$.

As I said, I'm trying to obtain a current \$I_D\$ that will rise quadratically over time in a simple transient simulation in which \$V_{GS}\$ is made to rise linearly with time \$t\$. This total current should have a specific coefficient, for example, \$C_1\$:

$$I_D=C_1\cdot t^2,$$

where \$C_1 = C_2 + C_3\$,

and two current sources are paralleled with current \$C_2 \cdot t^2\$ and \$C_3 \cdot t^2\$, respectively.

Unfortunately, the first formula above is just a model and in reality I can't rely on perfectly quadratic curves across the whole control voltage \$V_{GS}\$ range. I am therefore thinking of isolating a specific portion of the control voltage range in which the current across the transistor will be as close to being a quadratic function of time / control voltage as possible.

How could I go about systematically defining the \$V_{GS}\$ range with the most "quadraticity" in the current for transistors of different widths?

I've tried a few different widths and this "quadratic range" doesn't match for different transistor widths. What could be behind this? Is there something I'm missing? Not that I expected it to match in the first place.

Is there maybe a wiser approach I could take? For sure, if I have a very specific coefficient \$C_1\$ in mind, I will just need to characterize \$I_D-V_{GS}\$ for a few transistors; but if I were to change \$C_1\$ later, I would have to do it all over again. So it's not very practical and I'm wondering if there's a better way of doing this.


2 Answers 2


MOSFETs don't obey the quadratic law over a wide range of VGS (e.g. as compared to BJTs which obey the exponential law well over 6+ orders of magnitude current).

At the low VGS end, sub-threshold (weak inversion) currents come into play; at the high end, parasitic resistance and saturation effects degrade quadracity.

Note that temperature and process shifts will change the coefficient of a single transistor by a factor of 2 or more.

Ultimately in a very (impractically) VGS range perhaps 100-500 mV above VTH, the device will be reasonably quadratic, but still device-device variations, temperature shifts, and leakages will affect accuracy. In the end, MOSFETs are not particularly good followers of the theoretical equations.

You are better off to pursue this with a BJT multiplier. There are MOSFET multipliers that can be used as squaring circuits, but you will need lots of low-offset opamps and trim parameters to get any significant (few %) accuracy.

A better way (if you only need a time-dependent quadratic ramp) is to 1) charge a capacitor linearly with a fixed current; 2) use an opamp V-I converter to generate a linear I(t) ramp, and 3) use that current to charge a 2nd capacitor. That 2nd V will be quadratic with time and quite accurate and temperature independent.

  • \$\begingroup\$ Could you explain a little bit better that circuit you suggested at the end? The type of simulation I'm using to test the quadratic curve now implies a direct dependency on time but maybe more in general one could say that the current should have a quadratic dependence on VGS so that it changes quadratically over time if VGS is sweeped linearly in a transient simulation. \$\endgroup\$ Mar 29, 2022 at 22:39
  • 1
    \$\begingroup\$ Build a current source to charge a cap with 1 end at GND. Use an opamp to buffer this ramp and generate an output current (which will ramp over time). Use THIS current to charge a 2nd capacitor. The V on that 2nd cap will have a quadratic ramp with time. You need to reset each cap to 0 at the beginning of each cycle. \$\endgroup\$
    – jp314
    Mar 29, 2022 at 23:10

I'm assuming you want to do this using analog circuitry, and you want a circuit that you can build repeatedly while accounting for variation in components. I'm not sure this can be done practically without current sense feedback, either via a sense resistor or a hall effect sensor.

Once you have feedback, there are many examples of precision voltage-controlled current sources using op amps or voltage reference IC's providing gate drive, so you might build one of them and drive it with the output of an analog multiplier such as an Analog Devices AD835. You would then drive both multiplier inputs with the same linear ramp, which you could scale to match your desired coefficient.

Good luck!


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.