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.

English: n bits R2R Lader
Source Own work
Author Lsibilla
(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 give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • 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


    \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);
        \ifnum \contact>1
            \draw ($(down contact -\contact)+(2, 0)$) to [R=R, *-*] (down contact -\contact);

        % 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)$);


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


File history

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

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: