Documentation /  Analog Insydes /  Tutorial /  Frequency-Domain Analysis of Linear Circuits /

Device MismatchTwo-Port Parameters

2.9.4 Input and Output Impedances

Circuit Configuration for Impedance Calculations

Since input and output impedances are transfer functions just like voltage gains we can compute the former using the same circuit analysis procedures as for any other transfer function. An input impedance is the transfer function from the current flowing into a port to the voltage across the same port (see Figure 9.6).

Figure 9.6: Unit current source excitation for input impedance calculations

Likewise, an input admittance is the transfer function from a voltage across the port to the current into the port. The same applies to output impedances and admittances which are, in fact, just the input impedances and admittances at a port which is designated as an output. Consequently, to calculate an output impedance we must connect a unit current source to the port, set up a system of circuit equations, and solve for the port voltage.

Computing the Output Impedance of the CMOS Amplifier

To determine the output impedance of the differential amplifier (see Figure 9.4 in Section 2.9.2) we replace the load capacitor by a stimulus current source as displayed in Figure 9.7.

Figure 9.7: Differential amplifier, small-signal configuration for computing the output impedance

Replacing the load capacitor is done by editing our via ReadNetlist imported netlist. Therefore, we first remove the netlist entry for CL using the Analog Insydes command DeleteElements and in a second step we add an independent current source IZ using the command AddElements.

In[19]:= cmosdiffamp2 = DeleteElements[cmosdiffamp, CL];
cmosdiffamp2 = AddElements[cmosdiffamp2,
{IZ, {0, 5}, IZout}];

After the modification of the netlist we set up the modified nodal equations and solve for the voltage at the output port, i.e. V$5.

In[20]:= mnaZout = CircuitEquations[cmosdiffamp2,
ElementValues -> Symbolic,
DefaultSelector -> LowFrequency]

Out[22]=

In[21]:= zout = Together[V$5 /. First[Solve[mnaZout, V$5]]
/. {IBIAS -> 0, VDD -> 0, V1 -> 0, V2 -> 0, IZout -> 1}]

Out[23]=

For matching the MOS transistors forming the differential pair and the current-mirror load we again apply the command MatchSymbols:

In[22]:= zoutmatch = Together @ MatchSymbols[zout,
{{"$M1", "$M2", "12"}, {"$M3", "$M4", "34"}}]

Out[24]=

As usual, this expression contains many numerically small terms which are identified and discarded by ApproximateTransferFunction. The output impedance is then given by the following simple formula in terms of the drain-source conductances Gds12 and Gds34.

In[23]:= zoutSAG = ApproximateTransferFunction[
zoutmatch, s, dpcmos, 0.05] // Simplify

Out[25]=

Device MismatchTwo-Port Parameters