Electronic – Current mirror with a load

currentmirror

enter image description here

Every book I read explains the current mirror (two transistors, M1 and M2, of which one, M1, is diode connected) neglecting channel modulation. In this way, we get a current

Iout = a * Iref

where Iout is the output current, Iref is the reference current and "a" is a number defined by geometric properties of the 2 transistors.

Now, I know that, assuming both the transistors perfectly matched and making a = 1, the output current is equal to the reference current. This in the theory… But when I put a load (and the load can be complicated, for example a mosfet, that is an active load) above M2, cadence gives values of the output current which are sometimes very different from what the theory says. I assume that this is due to the fact that we neglect channel modulation (that is the drain to source voltage of M2).

I ask a criterion in order to "understand" how a (generic) load modifies the output current. I mean: after I simulate the circuit with cadende and I notice a value of the output current very different from Iref, I always don't know how to change the load parameters (for example, if the load above M2 is a mosfet, I don't know how to change W and L of the load). I also know that in order to have the same output current the drain to source voltage of M2 must be equal to the drain to source voltage of M1 (the diode connected mosfet) because they share the same gate to source voltage.
I think that, by increasing the output resistance of the current mirror, we get an output current which is more and more independent from the load.

Thanks!

Best Answer

What you write is 100% correct. This is a very simple current mirror so you cannot expect that much from it. It only works accurately if (like you mention) M1 and M2 operate under the same conditions. Vds is often different between the two devices as for M2 Vds changes when the load changes.

You could adjust the load connected to M2 such that Vce_M1 = Vce_M2 but that will be a very "narrow" window. I mean, if the supply voltage is increased the Vds_M2 will increase as well and that will change the Id_M2.

The simplest improvement you can use on a two-transistor mirror is to increase the channel length L. This will result in an increase of the output resistance. I generally use an L of at least 0.5 um for a decent mirror. That 0.5 um is somewhat technology dependent so you will have to experiment. Above a certain length a length increase does not help anymore. Increasing the Length while keeping the Width the same will increase Vgs and therefore also Vds_sat so you need more voltage headroom. You can compensate by increasing the Width as well as Length but that will have other effects.

You have to ask yourself, how accurate does my output current need to be?

If it is not accurate enough with a simple 2 transistor mirror then you might need to use a more complex current mirror with 3 or more transistors. A cascode transistor for M2 might also be a solution. It depends on how much accuracy you need and how much voltage headroom for M2 you have.