The current mirror is a circuit designed to copy a current through one active device by controlling the current in another active device of a circuit, keeping the output current constant regardless of loading. The current being "copied" can be, and sometimes is, a varying signal current. Conceptually, an ideal current mirror is simply an ideal inverting current amplifier that reverses the current direction as well. Or it can consist of a current-controlled current source (CCCS). The current mirror is used to provide bias currents and active loads to circuits. It can also be used to model a more realistic current source (since ideal current sources don't exist).
Circuit Realizations of Current Mirrors
A bipolar transistor can be used as the simplest current-to-current converter but its transfer ratio would highly depend on temperature variations, β tolerances, etc. To eliminate these undesired disturbances, a current mirror is composed of two cascaded current-to-voltage and voltage-to-current converters placed at the same conditions and having reverse characteristics. It is not obligatory for them to be linear; the only requirement is their characteristics to be mirror-like (for example, in the BJT current mirror below, they are logarithmic and exponential). Usually, two identical converters are used but the characteristic of the first one is reversed by applying negative feedback. Thus a current mirror consists of two cascaded equal converters (the first - reversed and the second - direct).
Basic BJT Current Mirror
If a voltage is applied to the BJT base-emitter junction as an input quantity and the collector current is taken as an output quantity, the transistor will act as an exponential voltage-to-current converter. By applying negative feedback (simply joining the base and collector) the transistor can be "reversed" and it will begin acting as the opposite logarithmic current-to-voltage converter; now it will adjust the "output" base-emitter voltage so as to pass the applied "input" collector current.
Basic MOSFET Current Mirror
The basic current mirror can also be implemented using MOSFET transistors. Transistor M1 is operating in the saturation or active mode, and so is M2. In this setup, the output current IOUT is directly related to IREF, as discussed next. The drain current of a MOSFET ID is a function of both the gate-source voltage and the drain-to-gate voltage of the MOSFET given by ID = f (VGS, VDG), a relationship derived from the functionality of the MOSFET device. In the case of transistor M1 of the mirror, ID = IREF. Reference current IREF is a known current and can be provided by a resistor as shown or by a "threshold-referenced" or "self-biased" current source to ensure that it is constant, independent of the voltage supply variations. using VDG = 0 for transistor M1, the drain current in M1 is ID = f(VGS, VDG=0), so we find: f(VGS, 0) = IREF, implicitly determining the value of VGS. Thus IREF sets the value of VGS. The circuit in the diagram forces the same VGS to apply to transistor M2. If M2 is also biased with zero VDG and provided transistors M1 and M2 have a good matching of their properties, such as channel length, width, threshold voltage, etc., the relationship IOUT = f(VGS, VDG = 0) applies, thus setting IOUT = IREF; that is, the output current is the same as the reference current when VDG = 0 for the output transistor, and both transistors are matched. The drain-to-source voltage can be expressed as VDS = VDG + VGS. With this substitution, the Shichman–Hodges model provides an approximate form for function f(VGS, VDG).