Actions

File

R2r-ladder.png

From Trammell Hudson's Projects

R2r-ladder.png(649 × 163 pixels, file size: 8 KB, MIME type: image/png)

This file is from Wikimedia Commons and may be used by other projects. The description on its file description page there is shown below.

Description
English: n bits R2R Lader
Date
Source Own work
Author Lsibilla
Permission
(Reusing this file)
w:en:Creative Commons

attribution share alike

This file is licensed under the Creative Commons Attribution-Share Alike 2.0 Belgium license.
Flag of Belgium.svg
You are free:
  • to share – to copy, distribute and transmit the work
  • to remix – to adapt the work
Under the following conditions:
  • attribution – You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
  • share alike – If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.

LaTex source code[edit]

\begin{circuitikz}[scale=0.9]
    \def\n{2}

    \node (ground) at (-2, 0) {};
    \node (Vcc) at (0, 3) {};

    \foreach \contact in {0,...,\n}
    {
        % Define contacts for each bits
        \node (up contact \contact)    at ($({2*\contact}, 2)$) {};
        \node (down contact \contact)  at ($({2*\contact}, 0)$) {};

        % Draw R resistors and manage the a_{n-0} case
        \ifnum \contact>0

            \node (up contact -\contact)   at ($({2+4*\n-2*\contact}, 2)$) {};
            \node (down contact -\contact) at ($({2+4*\n-2*\contact}, 0)$) {};

            \draw (down contact \contact) to [R=R, *-*] ($(down contact \contact)-(2, 0)$);
            \draw (up contact -\contact) node[anchor=south] {$a_{n-\contact}$};
            \draw (down contact -\contact)   to [R=2R, *-o]  (up contact -\contact);
        \fi
        \ifnum \contact>1
            \draw ($(down contact -\contact)+(2, 0)$) to [R=R, *-*] (down contact -\contact);
        \fi

        % Draw 2R resistors
        \draw (down contact \contact)    to [R=2R, *-o]  (up contact \contact)
                                         node[anchor=south] {$a_{\contact}$};
    }
    
    % Draw ground and Vout
    \draw (down contact 0)  to [R=2R, *-*] (ground) node[ground] {}
          (down contact -1) to [short, *-o] ($(down contact -1)+(1,0)$)
                            node[anchor=west]  {$V_{out}$};

    % Draw ldots
    \draw[fill=black,decorate,decoration={shape backgrounds,shape=circle,shape size=1mm}]
                    ($0.67*(down contact \n)+0.33*(down contact -\n)$) -- ($0.33*(down contact \n)+0.67*(down contact -\n)$);
    \draw[fill=black,decorate,decoration={shape backgrounds,shape=circle,shape size=1mm}]
                    ($0.67*(up contact \n)+0.33*(up contact -\n)$) -- ($0.33*(up contact \n)+0.67*(up contact -\n)$);
\end{circuitikz}

Preamble[edit]

Without the added declaration, pgf complained about shape size in the \draw statements.

\usepackage[symbols]{circuitikz}
\usetikzlibrary{decorations.shapes}

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current09:50, 29 June 2010Thumbnail for version as of 09:50, 29 June 2010649 × 163 (8 KB)Lsibillan bit lader should have input from a_0 to a_{n-1}

The following page links to this file: