<?xml version="1.0" encoding="utf-8"?>
<circuit>
  <version>1</version>
  <attributes>
    <entry>
      <string>Description</string>
      <string>Simple circuit showing address decoding. The lower three bits 
of the 5-bit number are output as an address to all ROM components. 
The upper two bits are used to select one of the four ROM components 
via the address decoder. The selected ROM then places its data word 
on the data bus. Through the address decoder, the four ROM 
components behave like a single four times as large ROM component. 
All outputs of the ROMs are connected to the same data bus. 
This is possible because only the output of one of the four ROMs 
is active. The other outputs are in high-impedance state.

{{de Einfache Schaltung die eine Adressdecodierung zeigt. 
Die unteren drei Bit der 5 Bit Zahl werden als Adresse an alle 
ROM-Bausteine ausgegeben. Die oberen zwei Bits werden 
verwendet um über den Adressdecoder einen der vier 
ROM-Bausteine auszuwählen, welcher dann sein Datenwort 
an den Datenbus legt. Durch den Adressdecoder verhalten 
sich die vier ROM-Bausteine wie ein einziger viermal so großer 
ROM-Baustein. Alle Ausgänge der ROMs liegen auf einem 
Datenbus. Dies ist möglich, da immer nur der Ausgang eines 
der vier ROMs aktiv ist. Die jeweils anderen Ausgänge sind hochohmig.}}</string>
    </entry>
  </attributes>
  <visualElements>
    <visualElement>
      <elementName>ROM</elementName>
      <elementAttributes>
        <entry>
          <string>AddrBits</string>
          <int>3</int>
        </entry>
        <entry>
          <string>Bits</string>
          <int>8</int>
        </entry>
        <entry>
          <string>Data</string>
          <data size="8">44,69,65,73,20,69,73,74</data>
        </entry>
        <entry>
          <string>Addr Bits</string>
          <int>3</int>
        </entry>
      </elementAttributes>
      <pos x="660" y="140"/>
    </visualElement>
    <visualElement>
      <elementName>ROM</elementName>
      <elementAttributes>
        <entry>
          <string>AddrBits</string>
          <int>3</int>
        </entry>
        <entry>
          <string>Bits</string>
          <int>8</int>
        </entry>
        <entry>
          <string>Data</string>
          <data size="8">20,65,69,6e,20,6c,61,6e</data>
        </entry>
        <entry>
          <string>Addr Bits</string>
          <int>3</int>
        </entry>
      </elementAttributes>
      <pos x="660" y="240"/>
    </visualElement>
    <visualElement>
      <elementName>Splitter</elementName>
      <elementAttributes>
        <entry>
          <string>Input Splitting</string>
          <string>5</string>
        </entry>
        <entry>
          <string>Output Splitting</string>
          <string>3,2</string>
        </entry>
      </elementAttributes>
      <pos x="400" y="140"/>
    </visualElement>
    <visualElement>
      <elementName>Decoder</elementName>
      <elementAttributes>
        <entry>
          <string>Selector Bits</string>
          <int>2</int>
        </entry>
        <entry>
          <string>flipSelPos</string>
          <boolean>true</boolean>
        </entry>
      </elementAttributes>
      <pos x="520" y="180"/>
    </visualElement>
    <visualElement>
      <elementName>ROM</elementName>
      <elementAttributes>
        <entry>
          <string>AddrBits</string>
          <int>3</int>
        </entry>
        <entry>
          <string>Bits</string>
          <int>8</int>
        </entry>
        <entry>
          <string>Data</string>
          <data size="8">67,65,72,20,54,65,73,74</data>
        </entry>
        <entry>
          <string>Addr Bits</string>
          <int>3</int>
        </entry>
      </elementAttributes>
      <pos x="660" y="340"/>
    </visualElement>
    <visualElement>
      <elementName>ROM</elementName>
      <elementAttributes>
        <entry>
          <string>AddrBits</string>
          <int>3</int>
        </entry>
        <entry>
          <string>Bits</string>
          <int>8</int>
        </entry>
        <entry>
          <string>Data</string>
          <data size="8">74,65,78,74,2e,20,20,20</data>
        </entry>
        <entry>
          <string>Addr Bits</string>
          <int>3</int>
        </entry>
      </elementAttributes>
      <pos x="660" y="440"/>
    </visualElement>
    <visualElement>
      <elementName>Testcase</elementName>
      <elementAttributes>
        <entry>
          <string>Testdata</string>
          <testData>
            <dataString>Addr   Data
  0    0x44
  1    0x69
  2    0x65
  3    0x73
  4    0x20
  5    0x69
  6    0x73
  7    0x74

  8    0x20
  9    0x65
 10    0x69
 11    0x6E
 12    0x20
 13    0x6C
 14    0x61
 15    0x6E

 16    0x67
 17    0x65
 18    0x72
 19    0x20
 20    0x54
 21    0x65
 22    0x73
 23    0x74

 24    0x74
 25    0x65
 26    0x78
 27    0x74
 28    0x2E
 29    0x20
 30    0x20
 31    0x20
</dataString>
          </testData>
        </entry>
      </elementAttributes>
      <pos x="320" y="300"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Label</string>
          <string>Data</string>
        </entry>
        <entry>
          <string>Bits</string>
          <int>8</int>
        </entry>
      </elementAttributes>
      <pos x="780" y="160"/>
    </visualElement>
    <visualElement>
      <elementName>In</elementName>
      <elementAttributes>
        <entry>
          <string>Label</string>
          <string>Addr</string>
        </entry>
        <entry>
          <string>Bits</string>
          <int>5</int>
        </entry>
      </elementAttributes>
      <pos x="360" y="140"/>
    </visualElement>
  </visualElements>
  <wires>
    <wire>
      <p1 x="420" y="160"/>
      <p2 x="540" y="160"/>
    </wire>
    <wire>
      <p1 x="720" y="160"/>
      <p2 x="740" y="160"/>
    </wire>
    <wire>
      <p1 x="740" y="160"/>
      <p2 x="780" y="160"/>
    </wire>
    <wire>
      <p1 x="580" y="480"/>
      <p2 x="660" y="480"/>
    </wire>
    <wire>
      <p1 x="720" y="260"/>
      <p2 x="740" y="260"/>
    </wire>
    <wire>
      <p1 x="560" y="200"/>
      <p2 x="620" y="200"/>
    </wire>
    <wire>
      <p1 x="720" y="360"/>
      <p2 x="740" y="360"/>
    </wire>
    <wire>
      <p1 x="420" y="140"/>
      <p2 x="640" y="140"/>
    </wire>
    <wire>
      <p1 x="360" y="140"/>
      <p2 x="400" y="140"/>
    </wire>
    <wire>
      <p1 x="640" y="140"/>
      <p2 x="660" y="140"/>
    </wire>
    <wire>
      <p1 x="720" y="460"/>
      <p2 x="740" y="460"/>
    </wire>
    <wire>
      <p1 x="640" y="240"/>
      <p2 x="660" y="240"/>
    </wire>
    <wire>
      <p1 x="560" y="240"/>
      <p2 x="580" y="240"/>
    </wire>
    <wire>
      <p1 x="560" y="180"/>
      <p2 x="660" y="180"/>
    </wire>
    <wire>
      <p1 x="640" y="340"/>
      <p2 x="660" y="340"/>
    </wire>
    <wire>
      <p1 x="620" y="280"/>
      <p2 x="660" y="280"/>
    </wire>
    <wire>
      <p1 x="640" y="440"/>
      <p2 x="660" y="440"/>
    </wire>
    <wire>
      <p1 x="560" y="220"/>
      <p2 x="600" y="220"/>
    </wire>
    <wire>
      <p1 x="600" y="380"/>
      <p2 x="660" y="380"/>
    </wire>
    <wire>
      <p1 x="640" y="140"/>
      <p2 x="640" y="240"/>
    </wire>
    <wire>
      <p1 x="640" y="340"/>
      <p2 x="640" y="440"/>
    </wire>
    <wire>
      <p1 x="640" y="240"/>
      <p2 x="640" y="340"/>
    </wire>
    <wire>
      <p1 x="740" y="160"/>
      <p2 x="740" y="260"/>
    </wire>
    <wire>
      <p1 x="740" y="360"/>
      <p2 x="740" y="460"/>
    </wire>
    <wire>
      <p1 x="740" y="260"/>
      <p2 x="740" y="360"/>
    </wire>
    <wire>
      <p1 x="580" y="240"/>
      <p2 x="580" y="480"/>
    </wire>
    <wire>
      <p1 x="600" y="220"/>
      <p2 x="600" y="380"/>
    </wire>
    <wire>
      <p1 x="540" y="160"/>
      <p2 x="540" y="180"/>
    </wire>
    <wire>
      <p1 x="620" y="200"/>
      <p2 x="620" y="280"/>
    </wire>
  </wires>
</circuit>