Circuit drawing using Tikz (pgf)

\begin{tikzpicture}[circuit logic US, minimum height=10mm]
\matrix[column sep=10mm]
\node (i0) {$A$}; & & & & \\
& \node [xor gate] (xor1) {$dev1$}; & \node[xor gate] (xor2) {$dev2$}; & & \\
\node (i1) {$B$}; & & \node (cin) {};  & & \node (o1) {$S$}; \\
& & \node[and gate] (and1) {$dev3$}; & & \\
\node (i2) {$C_{in}$}; & & & \node[or gate] (or1) {$dev5$};& \node (o2) {$C$};\\
& & \node[and gate] (and2) {$dev4$}; & & \\

\draw[>-] (i0.east) -- ++(right:3mm) |- (xor1.input 1);
\draw[*-] (xor1.input 1) ++(-7mm,0.5mm) |- (and2.input 2);
\draw[*-] (xor1.input 2)  ++(-4mm,0.5mm) |- (and2.input 1);
\draw[>-] (i1.east) -- ++(right:3mm) |- (xor1.input 2);
\draw (xor1.output) -- ++(right:3mm) |- (xor2.input 1);
\draw[*-] (and1.input 1) ++(-3mm,-0.5mm) |- (xor2.input 2);
\draw[>-] (i2.east) -- ++(right:15mm) |- (and1.input 1);
\draw[->] (xor2.output) -- ++(right:3mm) |- (o1.west) ;
\draw (and1.output) -- ++(right:3mm) |- (or1.input 1) node[midway, above
right ] {$e$};
\draw (and2.output) -- ++(right:3mm) |- (or1.input 2) node[midway,below
right] {$f$};
\draw[->] (or1.output) -- (o2.west);

\caption{\small A full adder.}

Above code draws the circuit shown below. You have to use \usetikzlibrary{circuits.logic.US} in the preamble of latex document. Also, make sure you have the recent version of texlive and you have hashed the tex data-base using texhash if you have installed pgf as standalone.

Notice in the figure below that we have added a dot to emphasis the connection. Usually this dot is drawn by using the arrow which does not cover the wire. To put the dot on the wire, we shift the starting point of arrow by ++ operator.

Give it a try. You’ll get to know.

NOTE : character ‘>’ may not be visible. It is used after ‘\draw’.




About Dilawar

Graduate Student at National Center for Biological Sciences, Bangalore.
This entry was posted in Pgf (Tikz), Programming and tagged , , , . Bookmark the permalink.

One Response to Circuit drawing using Tikz (pgf)

  1. This post is very usefull thx!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s