\begin{circuitikz}

  \tikzset{cross/.style={cross out, draw, 
           minimum size=2*(#1-\pgflinewidth), 
           inner sep=0pt, outer sep=0pt}}

   \draw[yscale=1.1, xscale=.8]
    (-2,5.5) -- (0,5.5) to[barrier] (0,4.5) to[Tpmos, n=p1, mirror] (0,3)
    to[Tnmos, n=n1, mirror] (0,1.5)
    to[Tnmos, n=n2, mirror] (0,0) node[rground] {}
    (-2,5.5) to[short] (-2,4.5) to[Tpmos,n=p2, mirror] (-2,3) to[short, -*] (0,3)
    (p1.G) -- (n1.G) to[short, *-o, n=A1] ($(n1.G)+(-3,0)$) node[above] {$A1$}
    (n2.G) ++(-2,0) node[circ] {} -| (p2.G)
    (n2.G) to[short, -o, n=A0] ($(n2.G)+(-3,0)$) node[above] {$A0$}
    (0,3) to[short, -o, n=W0] (1,3) node[above] {$W0$};



%  \node[above of = W0] {$W0$};
%  \node[above of = A0] {$A0$};
%  \node[above of = A1] {$A1$};

%  \draw (p1.D) node [cross = 12pt] {};

\end{circuitikz}




