\documentclass[border=5pt]{standalone}
\usepackage{circuitikz}

\begin{document}

\begin{circuitikz}
\coordinate (origin) at (0, 0);

\node [nmos, xscale=-1] (m1) at (0.5, -1.5){};
\node [nmos] (m2) at ($(m1) + (2.5, 0)$){};

\draw (m1.drain) to (m1.drain |- origin);
\draw (m2.drain) to (m2.drain |- origin);

\draw (m1.gate) to (m2.source);
\draw (m2.gate) to (m1.source);

\node [nmos] (m3) at ($(m2) + (1.5, 0)$){};
\draw (m3.drain) to (m3.drain |- origin);
\draw (m2.gate) to++ (0, 1) coordinate (temp)
    to (temp -| m3.gate)
    to (m3.gate);

\draw (m1.source) to[C]++ (0, -2) coordinate (c1);
\draw (m2.source) to[C]++ (0, -2) node[not port, anchor=out, rotate=-90, scale=-1] (not) {};
\draw (not.in) to++ (0, -1) coordinate (not_in)
    to (not_in -| c1) coordinate(phi_j)
    to[short, -*] (phi_j -| origin) node[above]{$\bar{\Phi}$};
\draw (c1) to (phi_j);

\draw (m3.source) to[C]++ (0, -2)
    to++ (0, -1) node[nmos, anchor=drain](m4){};
\draw (not_in) -| (m4.gate);
\node [ground] at (m4.source){};

\draw (m4.drain) ++ (2.5, 0) node[nmos, anchor=source](m6){};
\node [pmos, anchor=drain](m5) at (m6.drain){};

\draw (m5.gate) to (m6.gate);

\draw ($(m5.gate)!0.5!(m6.gate)$) to[short, -*]++ (-0.5, 0) node[left]{$\Phi$};
\draw (m5.source) to (m5.source |- origin);

\draw (m6.drain) to++ (1, 0) node[nmos, anchor=drain, xscale=-1](m8){}
    to++ (0, 1) node[nmos, anchor=gate, rotate=90](m7){};
\draw (m7.drain) |- (m3.source);

\draw (m8.gate) to++ (0.5, 0) node[nmos, anchor=gate, rotate=-90](m9){}
    to++ (2, 0) node[nmos, anchor=gate, rotate=-90](m10){};

\draw (m4.drain) to (m8.source) |- (m9.source);

\draw (m9.drain) to (m10.source);
\draw ($(m9.drain)!0.5!(m10.source)$) to[short, -*]++ (0, -1) node[below] {$V_{in}$};
\draw (m10.drain) to[short, -*]++ (0, -1) node[below] {$V_{out}$};

\node [nmos, anchor=source, rotate=-90](m11) at (m7.source){};
\draw (m11.gate) to (m11.gate |- origin);

\node [nmos, anchor=source, rotate=-90](m12) at (m11.drain){};
\draw (m12.gate) to[short, -*]++ (1.5, 0) coordinate (phi_right) node[above]{$\bar{\Phi}$};
\node [ground] at (m12.drain){};

\draw (origin) node[above]{$V_{DD}$} to[short, *-*] (origin -| phi_right);

\end{circuitikz}

\end{document}
