[Tex/LaTex] Logic gates – Circuitikz

circuitikzlogic

I would like to have this picture in my document : enter image description here

But for the moment, I'm only able to produce this :

    \begin{circuitikz} \draw
(-0.5,2) node[and port] (myand1) {}
    (myand1.in 1) node [anchor=east] {A}
    (myand1.in 2) node [anchor=east] {B} 
(0,0) node[not port] (mynot1) {} 
    %(mynot1.out) node[anchor=west] {$\overline{B}$}
(2.5,-1) node[or port] (myor1) {}

(4,1.75) node[or port] (myor2) {}
    (myor1.in 2) node[anchor=east] {C}
    (myor2.out) node[anchor=west] {S};

\draw (myand1.in 2) |- (mynot1.in);
\draw (mynot1.out) -| (myor1.in 1);
\draw (myand1.out) -- (myor2.in 1);
\draw (myor1.out) -- (myor2.in 2);
\end{circuitikz}

Can you help me to have a best result please ?

Thanks a lot,

Dominik `

Best Answer

May this helps

\documentclass[tikz]{standalone}
\usetikzlibrary{decorations.pathreplacing,backgrounds}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz} 
\draw
(0,2)         node (myand1) [xshift=1cm,and port]           {}
(myand1.out)  node      [anchor=south west]             {\it A.B}
(myand1.in 1) node (A1)     [anchor=east,xshift=-1cm]           {A}
(myand1.in 2) node (B1)     [anchor=east,xshift=-1cm,yshift=-.7cm]  {B} 
(0,0)         node (mynot1) [not port, scale=.5]            {} 
(mynot1.out)  node      [anchor=south west]             {$\bar{B}$}
(2.5,-.280)   node (myor1)  [or port]                   {}
(myor1.out)   node      [anchor=south west,xshift=.05cm]        {$\bar{B}\texttt{+}C$}
(4,1.72)      node (myor2)  [or port]                   {}
(myor1.in 2)  node (C1)     [anchor=east,xshift=-2.5cm]         {C}
(myor2.out)   node      [anchor=south west]             {{\it A.B}\texttt{+}$(\bar{B}$\texttt{+}$C)$};

\draw (myor2.out) -- ++(1cm,0);
\draw (myand1.in 2) |- (mynot1.in);
\draw (mynot1.out) -| (myor1.in 1);
\draw (myand1.out) -- (myor2.in 1);
\draw (myor1.out) -- (myor2.in 2);
\draw (myand1.in 1) -- (A1);
\foreach \Point in {(A1),(B1), (C1)}{
    \node [xshift=.2cm] at \Point {\textbullet};
}
\node [xshift=1.25cm] at (B1) {$\bullet$};
\node [xshift=1cm] at (myor2.out) {$\bullet$};
\draw (B1) -- ++(1.25cm,0);
\draw (myor1.in 2) -- (C1);
\end{circuitikz}
\end{document}

enter image description here

Related Question