Current-Mode-Logic (CML) Latch

It’s a rather old topic and one can find many good references. In this post, I will write down some of my basic understandings on this circuit.

Operation of CML latch

Figure 1 shows a simplified block diagram of divider-by-2 and a CML (current-mode logic) latch. M1/M2 form a preamplifier and M3/M4 a cross-coupled pair. Fig. 2 illustrates the low-frequency and high-frequency operation of CML latch. During the low-frequency operation, when CK is high, the input is amplified by M1/M2; when CK goes low, the cross-coupled pair performs regeneration and latches the state. For short cycle operation, the cross-coupled pair continues to provide gain in the store mode, regenerating to a final differential output of Iss*RL. This condition is met if gm3RL>1.

Fig.1 A divider-by-2 and a CML latch [1]
Fig.2 Low-frequency and high-frequency operation of CML latch [1]

Speed estimation of CML latch

When CK is high, the circuit can be viewed as a single-pole amplifier. Assume that a step voltage is applied at the input, the differential output voltage can be expressed as

V_{XY1} = V_{XY0} - g_{m1}R_LV_{step}(1-e^{-\frac{t}{R_LC_L}}), \quad (1)

where VXY0 and VXY1 are the initial and final differential output during the sense phase, gm1 is the transconductance of the input transistor, the product of RL and CL is the time constant. RL and CL are the equivalent resistive and capacitive load seeing from node X/Y.

As is shown in Fig.2, in a divider-by-2, input of one latch is output of the other. Both the initial differential voltage at X/Y (VXY0) and the input voltage step (Vstep) have the same value of Iss*RL. Replacing VXY0 and Vstep with Iss*RL, Eq(1) can be rewritten as

V_{XY1} = I_{SS}R_L(1 - g_{m1}R_L(1-e^{-\frac{t}{R_LC_L}})) \quad (2)

When clock goes low, the latch starts regeneration and the differential output continues to evolve, which can be expressed as

V_{XY2} = V_{XY1}e^{\frac{t}{\tau_{reg}}} \quad (3)

The regenerative time constant equals

\tau_{reg} = \frac{R_LC_L}{g_{m3}R_L -1}, \quad (4)

where gm3 is the transconductance of the cross-coupled pair. The latch regenerates the differential output to a final value of -Iss*RL. Replacing VXY2 with -Iss*RL, Eq(3) can be rewritten as

-I_{SS}R_L = V_{XY1}e^{\frac{t}{\tau_{reg}}} \quad (5)

Now we have derived the amplification time, Eq(2), and the regeneration time, Eq(5), respectively. It would be interesting to visualize them in the following plots (Fig.3 and Fig.4). It can be seen that the optimal speed happens when the differential output at the end of the sense phase (VXY1) is between its final settled value and half of it.

Fig.3 Estimated speed of CML latch with small capacitive load (10fF)
Fig.4 Estimated speed of CML latch with large capacitive load (50fF)

The above plots are based on the following assumptions:

  • Gm/Id: a value of 10 is a good start. This indicates that operating the transistor in moderate inversion is optimal when we value speed and power efficiency equally. The conversion between Gm/Id and inversion coefficient(IC) can be referred to this post.
  • Gain (G): a value around 3 is a good start. For submicron CMOS node, the self-gain of a standard transistor with minimum length is normally no large than 10. In this case, we further assume M1/M2 and M3/M4 have the same size.
  • Differential output voltage (Iss*RL): in the range of 400 ~ 600 mV [2].
  • Tail current (Iss): assume RL is 500Ohm, Iss around 800uA is a good start point. Then gm = Gm/Id*(Iss/2) = 10*400uA = 4 mA/S. (Note that gmRL > 1 holds)
  • Transistor width (W): according to gm/Id simulation of a minimum-length transistor in submicron process, for 1-um width a gm/Id of 10 needs ~150-uA bias current. If the width is 4x, the bias current will be 600uA.
  • Capacitive load (CL): the capacitive load contributed by the transistors are equal to 2*Cgg+2*Cdd ~= 3Cgg. With width of 4um and length of 30nm, the Cgg can be approximated to about 2.4fF (4*0.03*20=2.4fF). Normally, the load from a succeeding buffer will dominate.                                                            

The Matlab script used to plot the data can be found here.


[1] Online lecture notes (Access Jan.05, 2021),

[2] B. Razavi, “The Cross-Coupled Pair – Part II [A Circuit for All Seasons],” IEEE Solid-State Circuits Magazine, Issue 4, pp. 9-12, Fall 2014.

This entry was posted in Circuit Analysis and tagged , . Bookmark the permalink.

2 Responses to Current-Mode-Logic (CML) Latch

  1. Pingback: [M scripts] Speed estimation of CML latch | EveryNano Counts

  2. Anonymous says:


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s