I've never used circuitikz
but shapes.gates.logic
tikzlibrary. You have AND, NOT, NOR and all logic gates, place them as regular tikz nodes and draw connections. That's all. Here you have an example:
\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,shapes.gates.logic.US,shapes.gates.logic.IEC,calc}
\begin{document}
\thispagestyle{empty}
\tikzstyle{branch}=[fill,shape=circle,minimum size=3pt,inner sep=0pt]
\begin{tikzpicture}[label distance=2mm]
\node (x3) at (0,0) {$x_3$};
\node (x2) at (1,0) {$x_2$};
\node (x1) at (2,0) {$x_1$};
\node (x0) at (3,0) {$x_0$};
\node[not gate US, draw, rotate=-90] at ($(x2)+(0.5,-1)$) (Not2) {};
\node[not gate US, draw, rotate=-90] at ($(x1)+(0.5,-1)$) (Not1) {};
\node[not gate US, draw, rotate=-90] at ($(x0)+(0.5,-1)$) (Not0) {};
\node[or gate US, draw, logic gate inputs=nnn] at ($(x0)+(2,-2)$) (Or1) {};
\node[or gate US, draw, logic gate inputs=nnnn] at ($(Or1)+(0,-1)$) (Or2) {};
\node[or gate US, draw, logic gate inputs=nnn] at ($(Or2)+(0,-1)$) (Or3) {};
\node[xor gate US, draw, logic gate inputs=nn] at ($(Or3)+(0,-1)$) (Xor1) {};
\node[and gate US, draw, logic gate inputs=nn, anchor=input 1] at ($(Or3.output)+(1,0)$) (And1) {};
\node[nor gate US, draw, logic gate inputs=nn, anchor=input 1] at ($(Or2.output -| And1.output)+(1,0)$) (Nor1) {};
\node[and gate US, draw, logic gate inputs=nn, anchor=input 1] at ($(Or1.output -| Nor1.output)+(1,0)$) (And2) {};
\foreach \i in {2,1,0}
{
\path (x\i) -- coordinate (punt\i) (x\i |- Not\i.input);
\draw (punt\i) node[branch] {} -| (Not\i.input);
}
\draw (x3) |- (Or2.input 1);
\draw (x3 |- Or1.input 1) node[branch] {} -- (Or1.input 1);
\draw (x2) |- (Xor1.input 1);
\draw (x2 |- Or3.input 1) node[branch] {} -- (Or3.input 1);
\draw (Not2.output) |- (Or2.input 2);
\draw (x1) |- (Or3.input 2);
\draw (x1 |- Or1.input 2) node[branch] {} -- (Or1.input 2);
\draw (Not1.output) |- (Xor1.input 2);
\draw (Not1.output |- Or2.input 3) node[branch] {} -- (Or2.input 3);
\draw (x0) |- (Or2.input 4);
\draw (Not0.output) |- (Or3.input 3);
\draw (Not0.output |- Or1.input 3) node[branch] {} -- (Or1.input 3);
\draw (Or3.output) -- (And1.input 1);
\draw (Xor1.output) -- ([xshift=0.5cm]Xor1.output) |- (And1.input 2);
\draw (Or2.output) -- (Nor1.input 1);
\draw (And1.output) -- ([xshift=0.5cm]And1.output) |- (Nor1.input 2);
\draw (Or1.output) -- (And2.input 1);
\draw (Nor1.output) -- ([xshift=0.5cm]Nor1.output) |- (And2.input 2);
\draw (And2.output) -- ([xshift=0.5cm]And2.output) node[above] {$f_1$};
\end{tikzpicture}
\end{document}
pst-circ
to work with PDFLaTeX. Runtexdoc pstricks
and read the section on PDFTeX workarounds.xelatex
instead ofpdflatex