Current squarer

What do you need to know to understand this topic?

What is a current squarer?

It is a circuit that outputs the square value of the input current. It is used has a building block for analog multipliers, rectifiers, etc. There are many ways of designing a current squarer, but all are based on the square-law relation between drain current and gate-source voltage for transistors in strong inversion.

3T current squarer

The 3 transistor current squarer is a very compact way of squaring a current.

The square-law for transistors $M_1$ and $M_2$ is $$I_1 = \beta(V_1 - V_{TH})^2$$ $$I_2 = \beta(V_2 - V_1 - V_{TH})^2$$ where $\beta=1/2\mu_nC_{ox}W/L$. First, let's work $I_2$ a little bit $$I_2 = \beta( (V_2 -2V_{TH}) - (V_1 - V_{TH}))^2$$ $$I_2 = \beta\left( (V_2 -2V_{TH})^2 - 2(V_2 -2V_{TH})(V_1 - V_{TH}) + (V_1 - V_{TH})^2 \right)$$ $$I_2 = \beta\left( (V_2 -2V_{TH})^2 - 2(V_2 -2V_{TH})(V_1 - V_{TH}) + \frac{I_1}{\beta}\right)$$ $$\frac{I_2}{\beta} = (V_2 -2V_{TH})^2 - 2(V_2 -2V_{TH})(V_1 - V_{TH}) + \frac{I_1}{\beta}$$ $$V_1 - V_{TH} = \frac{(V_2 -2V_{TH})^2 + \frac{I_1}{\beta} - \frac{I_2}{\beta}}{2(V_2 -2V_{TH})}.$$ Now we place the expression above in $I_1$: $$\begin{equation}I_1 = \beta \left(\frac{(V_2 -2V_{TH})^2 + \frac{I_1}{\beta} - \frac{I_2}{\beta}}{2(V_2 -2V_{TH})}\right)^2\label{eq:eq1}\end{equation}$$ Looking at the circuit above and noting that $I_1 = I_3$, we see that: $$I_{out} = I_1 + I_2$$ $$I_{in} = I_1 - I_2$$ Turning the variables around, we get: $$I_1 = \frac{I_{out} + I_{in}}{2}$$ $$I_2 = \frac{I_{out} - I_{in}}{2}$$ Replacing $I_1$ and $I_2$ in $\eqref{eq:eq1}$, we get: $$ \frac{I_{out} + I_{in}}{2} = \beta\left(\frac{(V_2 -2V_{TH})^2 + \frac{I_{out} + I_{in}}{2\beta} - \frac{I_{out} - I_{in}}{2\beta}}{2(V_2 -2V_{TH})}\right)^2$$ $$ \frac{I_{out} + I_{in}}{2} = \beta\left(\frac{(V_2 -2V_{TH})^2 + \frac{I_{in}}{\beta}}{2(V_2 -2V_{TH})}\right)^2$$ $$ \frac{I_{out} + I_{in}}{2} = \beta\left(\frac{V_2 -2V_{TH}}{2} + \frac{ I_{in}}{2\beta(V_2 -2V_{TH})}\right)^2$$ $$ I_{out} + I_{in} = 2\beta\left(\frac{(V_2 -2V_{TH})^2}{4} + \frac{I_{in}}{2\beta} + \frac{I_{in}^2}{4\beta^2(V_2 -2V_{TH})^2}\right)$$ $$ I_{out} = 2\beta\left(\frac{(V_2 -2V_{TH})^2}{4} + \frac{I_{in}^2}{4\beta^2(V_2 -2V_{TH})^2}\right)$$ $$ I_{out} = \beta\left(\frac{(V_2 -2V_{TH})^2}{2} + \frac{I_{in}^2}{2\beta^2(V_2 -2V_{TH})^2}\right)$$ By defining a current $I_b = \beta(\frac{V_2}{2} - V_{TH})^2$ , we get: $$ I_{out} = 2I_b + \frac{I_{in}^2}{8I_b}$$ The output current $I_{out}$ has a constant term (only depends on $V_2$) and a term that depends on the square of the input current $I_{in}$.

Dynamic range of input current

When the input current reaches $4I_b$, the output current is also $4I_b$. According to the expression $I_2 = \frac{I_{out} - I_{in}}{2}$, that means that $I_2 = 0$, and above this value the circuit does not work. In the case of negative input current (flowing in the opposite direction), the same boundary applies because $I_1 = \frac{I_{out} + I_{in}}{2} = 0$. Therefore, $|I_{in}| \le 4I_b$ for the circuit to work.


Non-idealities in the transistors affect the accuracy of the squarer. Namely:

  1. Mismatches and process variations between transistors make some terms not to cancel perfectly, which leads to an error term
  2. $M_2$ suffers from body effect, making its $V_{TH}$ dependent on $V_1$. Using a flipped version with only PMOS can solve this problem, because the bulk of each PMOS transistors can be tied to any node, including its own source terminal
  3. Channel length modulation makes the voltage at the output node affect the square-law relation
The errors can be introduced in the expression as: $$I_{out} = 2I_b + e_1 + \frac{(I_{in}+e_2)^2}{8I_{b}}$$ where $e_1$ is the error associated to the output and $e_2$ is the error associated to the input.