How does the current mirror stabilize tail current in an op amp?

Op amps often use the "slave" side of a current mirror to provide the tail current for the input transistor pair, such as in this simple op amp voltage follower schematic:

The "gates" node in the current mirror is constant. Therefore, the gate-source voltage of the two PMOS transistors is constant as shown in the first plot. This should result in a constant channel resistance of both M1 and M2.

Now the second graphic shows how the drain-source voltage over M2 varies by a tremendous amount when sweeping the common-mode voltage point.

But still, the current through M2 is constant (third plot). This demands that M2's resistance strongly varies, which seems to contradict its constant gate-source voltage.

Question 1: How is the current through M2 constant, despite a strongly varying drain-source voltage and constant gate-source bias?

Questions 2: When I replace the mirror transistors with PNPs, the current mirror performance becomes abysmal (see plot below). Why are BJTs so much worse in this regard?

• You have jumped to the conclusion too quickly. A typical example of a GIGO. Is your MOSFET model accurate? Dos the model includes the channel length modulation (from what I see in LTSpcie no)? Also, in real life, the MOSFET will have a much higher spread than the BJT's. Also, your input voltage swing is too high. Additionally in any discrete BJT design, you need to add a small degeneration emitter resistor (100R) to the current mirror.
– G36
Mar 22 at 14:45
• @G36 thanks to nanofarad's good answer below I have already come to the conclusion that the Early Effect is what limits the BJT performance in this basic circuit and that a MOSFET's channel length modulation would be the equivalent shortcoming of MOSFETs. I deliberately didn't include matching issues and remedies (degeneration resistors) in this simple model. What would be a typical severity of the channel length modulation for a discrete small signal MOSFET ? All models I tried come out with no such effect. Mar 22 at 14:57
• But as I said BSS84 model doesn't include channel length modulation (Early Effect ). So it is not a fair comparison. And in general, all MOSFET models are very simplified.
– G36
Mar 22 at 15:04
• @G36 I found some Rohm models now, that at least include this effect on a conceptual level, so I can estimate the order of magnitude. Mar 22 at 15:08

But still, the current through M2 is constant (third plot). This demands that M2's resistance strongly varies, which seems to contradict its constant gate-source voltage.

It does not contradict anything, except possibly a false assumption that the mosfet is in triode. It is in fact not in triode, but rather in saturation where the drain current is well described by:

$$I_D = k ( V_{gs} - V_{th})^2$$

and is fairly close to constant over a wide range of Vds voltages. There's a small variation from channel-length modulation which arises as a consequence of device semiconductor physics.

When I replace the mirror transistors with PNPs, the current mirror performance becomes abysmal (see plot below). Why are BJTs so much worse in this regard ?

Not clear from screenshot alone without also seeing the device models. In principle, BJT current mirrors are fine.

You may want to double check whether the transistor is in forward active mode and whether it is getting enough base current since -592 mV might mean insufficient gate drive (remember that MOS devices don't have gate current). Also try using a constant current source instead of a resistor on the input.

• Thanks. I tried to replace the input with a constant current sink but no change. The input side current is constant, but was already constant with the resistor. The base currents of the two mirror transistors are essentially identical, too. Mar 22 at 14:11
• @tobalt no problem, for part 2 unfortunately I am not too familiar with discrete BJT design (I design with integrated MOS devices), so it's not clear why that transistor is behaving poorly. I'm not sure if it's a device model issue, or an actual device performance issue, to be honest. Have you tried using a different one such as the FZT part you use elsewhere? Mar 22 at 14:22
• Even when I build the absolute minimum basic current mirror (like here: en.wikipedia.org/wiki/Current_mirror#/media/…), it still has this bad performance. I tried both the FZT (high power part) or BC8x7 (small signal stuff) with essentially identical results. I suspect it could be the "low" (i.e. finite) beta as opposed to MOSFETs' infinite beta. Mar 22 at 14:23
• @tobalt I'd suspect Early Effect would be as important here; beta should really only have a strong effect on the input branch which must provide base current. You would see the same behavior with extremely short channel MOS devices that are very susceptible to channel-length modulation. Mar 22 at 14:25
• You are right. Actually the wiki formula for the mirror output current includes the term $(1+V_{CE}/V_A)$, $V_A$ is the Early voltage. Mar 22 at 14:29