<?xml version="1.0" encoding="utf-8"?>
<circuit>
  <version>1</version>
  <attributes>
    <entry>
      <string>Description</string>
      <string>Control unit for a simple processor.
It works purely combinatorial.
Since it is relatively complex (24 output bits), it is 
implemented by a corresponding ROM component, 
and not by 24 individual combinatorial circuits.
{{de Leitwerk für einen einfachen Prozessor.
Es arbeitet rein kombinatorisch, es handelt sich 
also um ein einfaches Schaltnetz. 
Da es vergleichsweise komplex ist (24 
Ausgangsbits), wird es durch einen 
entsprechenden ROM-Baustein 
realisiert, und nicht durch 24 einzelne Schaltnetze.}}</string>
    </entry>
    <entry>
      <string>Width</string>
      <int>5</int>
    </entry>
  </attributes>
  <visualElements>
    <visualElement>
      <elementName>In</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>The opcode and the immediate bit.
{{de Der Opcode incl. Immediate Bit}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>Op</string>
        </entry>
        <entry>
          <string>Bits</string>
          <int>8</int>
        </entry>
      </elementAttributes>
      <pos x="260" y="160"/>
    </visualElement>
    <visualElement>
      <elementName>Splitter</elementName>
      <elementAttributes>
        <entry>
          <string>Input Splitting</string>
          <string>8</string>
        </entry>
        <entry>
          <string>Output Splitting</string>
          <string>7,1</string>
        </entry>
      </elementAttributes>
      <pos x="300" y="160"/>
    </visualElement>
    <visualElement>
      <elementName>Multiplexer</elementName>
      <elementAttributes>
        <entry>
          <string>Bits</string>
          <int>7</int>
        </entry>
      </elementAttributes>
      <pos x="400" y="160"/>
    </visualElement>
    <visualElement>
      <elementName>Const</elementName>
      <elementAttributes>
        <entry>
          <string>Value</string>
          <long>0</long>
        </entry>
        <entry>
          <string>Bits</string>
          <int>7</int>
        </entry>
      </elementAttributes>
      <pos x="380" y="200"/>
    </visualElement>
    <visualElement>
      <elementName>ROM</elementName>
      <elementAttributes>
        <entry>
          <string>AddrBits</string>
          <int>7</int>
        </entry>
        <entry>
          <string>Label</string>
          <string>Logic</string>
        </entry>
        <entry>
          <string>Bits</string>
          <int>26</int>
        </entry>
        <entry>
          <string>Addr Bits</string>
          <int>6</int>
        </entry>
        <entry>
          <string>Data</string>
          <data>0,208,e10,f10,e20,f20,e30,e40,e50,2a02,a05,2e12,e15,2f12,f15,2e22,e25,2f22,f25,a70,
2e32,e35,2e42,e45,2e52,e55,a60,ed0,2ed2,ed5,420,520,2422,425,2522,525,e80,e90,f80,
f90,ea0,ab0,ac0,8001b,60213,8300a,8000f,42202,40205,8001a,60212,a01,4006,8006,c006,
14006,18006,1c006,902202,100000,102002,10006,20300a,20000f,20001b,422202,420205,420213,
1000000,2100000</data>
        </entry>
        <entry>
          <string>lastDataFile</string>
          <string>/home/hneemann/Dokumente/DHBW/Technische_Informatik_II/Systemnahes_Programmieren/control.hex</string>
        </entry>
      </elementAttributes>
      <pos x="480" y="180"/>
    </visualElement>
    <visualElement>
      <elementName>Const</elementName>
      <elementAttributes/>
      <pos x="460" y="220"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>The programm counter is stored in a register.
{{de Programm Counter in Register Speichern}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>stPC</string>
        </entry>
      </elementAttributes>
      <pos x="660" y="480"/>
    </visualElement>
    <visualElement>
      <elementName>Splitter</elementName>
      <elementAttributes>
        <entry>
          <string>Input Splitting</string>
          <string>26</string>
        </entry>
        <entry>
          <string>Output Splitting</string>
          <string>3,1,5,1,1,1,2,3,1,1,1,1,1,1,1,1,1</string>
        </entry>
      </elementAttributes>
      <pos x="600" y="200"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>The data bus value ist stored in a register.
{{de Wert am Datenbus in Register speichern}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>WE</string>
        </entry>
      </elementAttributes>
      <pos x="860" y="260"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>Enables the storage of a constant value.
{{de Aktiviert das Speichern der Konstanten}}</string>
        </entry>
        <entry>
          <string>rotation</string>
          <rotation rotation="3"/>
        </entry>
        <entry>
          <string>Label</string>
          <string>imm</string>
        </entry>
      </elementAttributes>
      <pos x="340" y="280"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>immediate extend mode
{{de Erweiterungsmodus der Konstanten}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>iem</string>
        </entry>
        <entry>
          <string>Bits</string>
          <int>2</int>
        </entry>
      </elementAttributes>
      <pos x="660" y="320"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>triggers a absolute jump
{{de absoluten Sprung auslösen}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>absJmp</string>
        </entry>
      </elementAttributes>
      <pos x="860" y="420"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>selector for mux B
{{de Selektor für Mux B}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>muxB</string>
        </entry>
        <entry>
          <string>Bits</string>
          <int>3</int>
        </entry>
      </elementAttributes>
      <pos x="660" y="200"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>Put source register to data bus
{{de SourceRegister auf Datenbus legen}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>src2D</string>
        </entry>
      </elementAttributes>
      <pos x="860" y="220"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>selector for mux A
{{de Selector für Mux A}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>muxA</string>
        </entry>
      </elementAttributes>
      <pos x="660" y="360"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>ALU value is put on the data bus.
{{de ALU auf den Datenbus legen}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>alu2D</string>
        </entry>
      </elementAttributes>
      <pos x="860" y="300"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>the operation of the ALU
{{de Operation der ALU}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>aluOp</string>
        </entry>
        <entry>
          <string>Bits</string>
          <int>5</int>
        </entry>
      </elementAttributes>
      <pos x="660" y="240"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>If set, the ALU performs an arithmetic operation so that the 
flags must be stored.
{{de Wenn gesetzt führt die ALU eine arithmetische Operation 
aus, so dass die Flags gespeichert werden müssen.}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>storeFlags</string>
        </entry>
      </elementAttributes>
      <pos x="660" y="280"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>kind of branch
{{de Art des bedingten Sprunges}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>branch</string>
        </entry>
        <entry>
          <string>Bits</string>
          <int>3</int>
        </entry>
      </elementAttributes>
      <pos x="860" y="340"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>The RAM stores the data on the data bus.
{{de Ram speichert Daten vom Datenbus}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>ramSt</string>
        </entry>
      </elementAttributes>
      <pos x="660" y="400"/>
    </visualElement>
    <visualElement>
      <elementName>Break</elementName>
      <elementAttributes>
        <entry>
          <string>Cycles</string>
          <int>600000</int>
        </entry>
        <entry>
          <string>Label</string>
          <string>Break</string>
        </entry>
      </elementAttributes>
      <pos x="860" y="500"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>The RAM component puts its content to the 
data bus.
{{de Ram gibt Daten auf den Datenbus}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>ramLd</string>
        </entry>
      </elementAttributes>
      <pos x="860" y="380"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>write to IO
{{de Es wird auf die IO geschrieben}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>ioW</string>
        </entry>
      </elementAttributes>
      <pos x="660" y="440"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>read from IO
{{de Es wird IO gelesen}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>ioR</string>
        </entry>
      </elementAttributes>
      <pos x="860" y="460"/>
    </visualElement>
    <visualElement>
      <elementName>Out</elementName>
      <elementAttributes>
        <entry>
          <string>Description</string>
          <string>Return From Interrupt
{{de Rückkehr aus dem Interrupt}}</string>
        </entry>
        <entry>
          <string>Label</string>
          <string>RetI</string>
        </entry>
      </elementAttributes>
      <pos x="660" y="520"/>
    </visualElement>
  </visualElements>
  <wires>
    <wire>
      <p1 x="320" y="160"/>
      <p2 x="400" y="160"/>
    </wire>
    <wire>
      <p1 x="260" y="160"/>
      <p2 x="300" y="160"/>
    </wire>
    <wire>
      <p1 x="620" y="320"/>
      <p2 x="660" y="320"/>
    </wire>
    <wire>
      <p1 x="620" y="480"/>
      <p2 x="660" y="480"/>
    </wire>
    <wire>
      <p1 x="620" y="260"/>
      <p2 x="860" y="260"/>
    </wire>
    <wire>
      <p1 x="620" y="420"/>
      <p2 x="860" y="420"/>
    </wire>
    <wire>
      <p1 x="380" y="200"/>
      <p2 x="400" y="200"/>
    </wire>
    <wire>
      <p1 x="540" y="200"/>
      <p2 x="600" y="200"/>
    </wire>
    <wire>
      <p1 x="620" y="200"/>
      <p2 x="660" y="200"/>
    </wire>
    <wire>
      <p1 x="620" y="360"/>
      <p2 x="660" y="360"/>
    </wire>
    <wire>
      <p1 x="620" y="520"/>
      <p2 x="660" y="520"/>
    </wire>
    <wire>
      <p1 x="620" y="300"/>
      <p2 x="860" y="300"/>
    </wire>
    <wire>
      <p1 x="620" y="460"/>
      <p2 x="860" y="460"/>
    </wire>
    <wire>
      <p1 x="340" y="240"/>
      <p2 x="420" y="240"/>
    </wire>
    <wire>
      <p1 x="620" y="240"/>
      <p2 x="660" y="240"/>
    </wire>
    <wire>
      <p1 x="620" y="400"/>
      <p2 x="660" y="400"/>
    </wire>
    <wire>
      <p1 x="320" y="180"/>
      <p2 x="340" y="180"/>
    </wire>
    <wire>
      <p1 x="440" y="180"/>
      <p2 x="480" y="180"/>
    </wire>
    <wire>
      <p1 x="620" y="340"/>
      <p2 x="860" y="340"/>
    </wire>
    <wire>
      <p1 x="620" y="500"/>
      <p2 x="860" y="500"/>
    </wire>
    <wire>
      <p1 x="620" y="280"/>
      <p2 x="660" y="280"/>
    </wire>
    <wire>
      <p1 x="620" y="440"/>
      <p2 x="660" y="440"/>
    </wire>
    <wire>
      <p1 x="460" y="220"/>
      <p2 x="480" y="220"/>
    </wire>
    <wire>
      <p1 x="620" y="220"/>
      <p2 x="860" y="220"/>
    </wire>
    <wire>
      <p1 x="620" y="380"/>
      <p2 x="860" y="380"/>
    </wire>
    <wire>
      <p1 x="420" y="200"/>
      <p2 x="420" y="240"/>
    </wire>
    <wire>
      <p1 x="340" y="180"/>
      <p2 x="340" y="240"/>
    </wire>
    <wire>
      <p1 x="340" y="240"/>
      <p2 x="340" y="280"/>
    </wire>
  </wires>
  <measurementOrdering/>
</circuit>