\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}