aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2023-04-10 13:15:59 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2023-04-10 13:15:59 +0300
commitf07900a66952edb27114b8bdd68efc397b995796 (patch)
treecbb13e08b222cab594332ae11d863e793528799a
parenta58375eee5d607fbb44620752195eafb9407685e (diff)
Add ext system
-rw-r--r--logisim/CPU16.circ4344
-rwxr-xr-xsrc/assembler.py215
-rw-r--r--src/assembler_eval.py39
-rw-r--r--src/assembler_ops.py108
-rw-r--r--src/ext_std.py24
-rw-r--r--src/test.atk162
-rwxr-xr-xsrc/ucode.py2
7 files changed, 205 insertions, 4529 deletions
diff --git a/logisim/CPU16.circ b/logisim/CPU16.circ
deleted file mode 100644
index 6f1610b..0000000
--- a/logisim/CPU16.circ
+++ /dev/null
@@ -1,4344 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<project source="3.8.0" version="1.0">
- This file is intended to be loaded by Logisim-evolution v3.8.0(https://github.com/logisim-evolution/).
-
- <lib desc="#Wiring" name="0">
- <tool name="Splitter">
- <a name="fanout" val="3"/>
- <a name="incoming" val="3"/>
- </tool>
- <tool name="Pin">
- <a name="appearance" val="classic"/>
- </tool>
- <tool name="Probe">
- <a name="appearance" val="classic"/>
- <a name="facing" val="west"/>
- </tool>
- <tool name="Tunnel">
- <a name="facing" val="north"/>
- </tool>
- <tool name="Pull Resistor">
- <a name="facing" val="north"/>
- </tool>
- <tool name="Power">
- <a name="facing" val="west"/>
- </tool>
- <tool name="Ground">
- <a name="facing" val="west"/>
- </tool>
- <tool name="Bit Extender">
- <a name="type" val="input"/>
- </tool>
- </lib>
- <lib desc="#Gates" name="1">
- <tool name="NOT Gate">
- <a name="size" val="20"/>
- </tool>
- <tool name="AND Gate">
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </tool>
- <tool name="NAND Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </tool>
- <tool name="NOR Gate">
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </tool>
- <tool name="XOR Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </tool>
- <tool name="XNOR Gate">
- <a name="inputs" val="5"/>
- </tool>
- <tool name="Odd Parity">
- <a name="inputs" val="5"/>
- </tool>
- <tool name="Even Parity">
- <a name="inputs" val="5"/>
- </tool>
- </lib>
- <lib desc="#Plexers" name="2">
- <tool name="Multiplexer">
- <a name="enable" val="true"/>
- </tool>
- <tool name="Demultiplexer">
- <a name="enable" val="true"/>
- </tool>
- <tool name="Decoder">
- <a name="enable" val="false"/>
- </tool>
- </lib>
- <lib desc="#Arithmetic" name="3"/>
- <lib desc="#Memory" name="4">
- <tool name="D Flip-Flop">
- <a name="labelfont" val="SansSerif plain 12"/>
- </tool>
- <tool name="T Flip-Flop">
- <a name="labelfont" val="SansSerif plain 12"/>
- </tool>
- <tool name="J-K Flip-Flop">
- <a name="labelfont" val="SansSerif plain 12"/>
- </tool>
- <tool name="S-R Flip-Flop">
- <a name="labelfont" val="SansSerif plain 12"/>
- </tool>
- <tool name="Register">
- <a name="labelfont" val="SansSerif plain 12"/>
- </tool>
- <tool name="Counter">
- <a name="labelfont" val="SansSerif plain 12"/>
- </tool>
- <tool name="Shift Register">
- <a name="labelfont" val="SansSerif plain 12"/>
- </tool>
- <tool name="Random">
- <a name="labelfont" val="SansSerif plain 12"/>
- </tool>
- </lib>
- <lib desc="#I/O" name="5">
- <tool name="Button">
- <a name="labelcolor" val="#000000"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- <a name="labelloc" val="center"/>
- </tool>
- <tool name="LED">
- <a name="labelcolor" val="#000000"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- <a name="labelloc" val="center"/>
- </tool>
- <tool name="DotMatrix">
- <a name="offcolor" val="#404040"/>
- </tool>
- </lib>
- <lib desc="#TTL" name="6"/>
- <lib desc="#TCL" name="7"/>
- <lib desc="#Base" name="8">
- <tool name="Text Tool">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="valign" val="center"/>
- </tool>
- </lib>
- <lib desc="#BFH-Praktika" name="9"/>
- <lib desc="#Input/Output-Extra" name="10"/>
- <lib desc="#Soc" name="11"/>
- <main name="TestBench"/>
- <options>
- <a name="gateUndefined" val="ignore"/>
- <a name="simlimit" val="1000"/>
- <a name="simrand" val="0"/>
- </options>
- <mappings>
- <tool lib="8" map="Button2" name="Poke Tool"/>
- <tool lib="8" map="Button3" name="Menu Tool"/>
- <tool lib="8" map="Ctrl Button1" name="Menu Tool"/>
- </mappings>
- <toolbar>
- <tool lib="8" name="Poke Tool"/>
- <tool lib="8" name="Edit Tool"/>
- <tool lib="8" name="Wiring Tool"/>
- <tool lib="8" name="Text Tool">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="valign" val="center"/>
- </tool>
- <sep/>
- <tool lib="0" name="Pin"/>
- <tool lib="0" name="Pin">
- <a name="facing" val="west"/>
- <a name="output" val="true"/>
- </tool>
- <sep/>
- <tool lib="1" name="NOT Gate"/>
- <tool lib="1" name="AND Gate"/>
- <tool lib="1" name="OR Gate"/>
- <tool lib="1" name="XOR Gate"/>
- <tool lib="1" name="NAND Gate"/>
- <tool lib="1" name="NOR Gate"/>
- <sep/>
- <tool lib="4" name="D Flip-Flop"/>
- <tool lib="4" name="Register"/>
- </toolbar>
- <circuit name="CPU16">
- <a name="appearance" val="logisim_evolution"/>
- <a name="circuit" val="CPU16"/>
- <a name="circuitnamedboxfixedsize" val="true"/>
- <a name="simulationFrequency" val="16.0"/>
- <comp lib="0" loc="(100,910)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_C3"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(100,940)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_B3"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(1000,550)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="MAR_IE"/>
- </comp>
- <comp lib="0" loc="(1000,590)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="RESET"/>
- </comp>
- <comp lib="0" loc="(1010,1210)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="ALU_OE"/>
- </comp>
- <comp lib="0" loc="(1030,1120)" name="Probe">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="south"/>
- <a name="label" val="ALU_RES"/>
- <a name="labelloc" val="north"/>
- <a name="radix" val="16"/>
- </comp>
- <comp lib="0" loc="(1080,570)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(1080,610)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="MEM_IE"/>
- </comp>
- <comp lib="0" loc="(110,800)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="RESET"/>
- </comp>
- <comp lib="0" loc="(110,880)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_D3"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(110,970)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_A3"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(1100,1500)" name="Splitter">
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- </comp>
- <comp lib="0" loc="(1100,1500)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="OPCODE"/>
- <a name="width" val="4"/>
- </comp>
- <comp lib="0" loc="(1110,1410)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="3"/>
- <a name="incoming" val="3"/>
- </comp>
- <comp lib="0" loc="(1150,1410)" name="Splitter">
- <a name="facing" val="west"/>
- <a name="fanout" val="8"/>
- <a name="incoming" val="8"/>
- </comp>
- <comp lib="0" loc="(1170,1200)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(1210,1220)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="RESET"/>
- </comp>
- <comp lib="0" loc="(1260,1110)" name="Probe">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(1390,1460)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- <a name="spacing" val="2"/>
- </comp>
- <comp lib="0" loc="(140,730)" name="Splitter">
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(140,900)" name="Splitter">
- <a name="bit1" val="0"/>
- <a name="bit10" val="3"/>
- <a name="bit11" val="3"/>
- <a name="bit2" val="0"/>
- <a name="bit3" val="1"/>
- <a name="bit4" val="1"/>
- <a name="bit5" val="1"/>
- <a name="bit6" val="2"/>
- <a name="bit7" val="2"/>
- <a name="bit8" val="2"/>
- <a name="bit9" val="3"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="12"/>
- </comp>
- <comp lib="0" loc="(1420,1470)" name="Tunnel">
- <a name="label" val="PC_CO"/>
- </comp>
- <comp lib="0" loc="(1420,1510)" name="Tunnel">
- <a name="label" val="PC_OE"/>
- </comp>
- <comp lib="0" loc="(1420,1550)" name="Tunnel">
- <a name="label" val="MEM_IE"/>
- </comp>
- <comp lib="0" loc="(1420,1590)" name="Tunnel">
- <a name="label" val="R1_IE"/>
- </comp>
- <comp lib="0" loc="(1420,1630)" name="Tunnel">
- <a name="label" val="R2_IE"/>
- </comp>
- <comp lib="0" loc="(1420,1670)" name="Tunnel">
- <a name="label" val="IR_IE"/>
- </comp>
- <comp lib="0" loc="(1420,1710)" name="Tunnel">
- <a name="label" val="L12_OE"/>
- </comp>
- <comp lib="0" loc="(1420,1750)" name="Tunnel">
- <a name="label" val="HALT"/>
- </comp>
- <comp lib="0" loc="(150,900)" name="Tunnel">
- <a name="label" val="IR_12"/>
- <a name="width" val="12"/>
- </comp>
- <comp lib="0" loc="(1500,1490)" name="Tunnel">
- <a name="label" val="PC_IE"/>
- </comp>
- <comp lib="0" loc="(1500,1530)" name="Tunnel">
- <a name="label" val="MAR_IE"/>
- </comp>
- <comp lib="0" loc="(1500,1570)" name="Tunnel">
- <a name="label" val="MEM_OE"/>
- </comp>
- <comp lib="0" loc="(1500,1610)" name="Tunnel">
- <a name="label" val="R1_OE"/>
- </comp>
- <comp lib="0" loc="(1500,1650)" name="Tunnel">
- <a name="label" val="R2_OE"/>
- </comp>
- <comp lib="0" loc="(1500,1690)" name="Tunnel">
- <a name="label" val="L9_OE"/>
- </comp>
- <comp lib="0" loc="(1500,1730)" name="Tunnel">
- <a name="label" val="ALU_OE"/>
- </comp>
- <comp lib="0" loc="(1500,1770)" name="Tunnel">
- <a name="label" val="US_RS"/>
- </comp>
- <comp lib="0" loc="(160,510)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_B3"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(180,1430)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="US_RS"/>
- </comp>
- <comp lib="0" loc="(180,1490)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(190,1240)" name="Splitter">
- <a name="fanout" val="7"/>
- <a name="incoming" val="7"/>
- </comp>
- <comp lib="0" loc="(190,800)" name="Tunnel">
- <a name="label" val="OPCODE"/>
- <a name="width" val="4"/>
- </comp>
- <comp lib="0" loc="(190,840)" name="Tunnel">
- <a name="label" val="OP_PARITY"/>
- </comp>
- <comp lib="0" loc="(200,730)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- </comp>
- <comp lib="0" loc="(210,470)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_C3"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(210,520)" name="Splitter">
- <a name="facing" val="west"/>
- <a name="fanout" val="3"/>
- <a name="incoming" val="3"/>
- </comp>
- <comp lib="0" loc="(220,690)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="3"/>
- <a name="incoming" val="3"/>
- </comp>
- <comp lib="0" loc="(230,1160)" name="Splitter">
- <a name="facing" val="west"/>
- <a name="fanout" val="8"/>
- <a name="incoming" val="8"/>
- </comp>
- <comp lib="0" loc="(230,750)" name="Tunnel">
- <a name="label" val="IR_A3"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(240,1400)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="RESET"/>
- </comp>
- <comp lib="0" loc="(250,1170)" name="NoConnect">
- <a name="width" val="8"/>
- </comp>
- <comp lib="0" loc="(260,1290)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(260,130)" name="Tunnel">
- <a name="label" val="RESET"/>
- </comp>
- <comp lib="0" loc="(260,480)" name="Splitter">
- <a name="facing" val="west"/>
- <a name="fanout" val="3"/>
- <a name="incoming" val="3"/>
- </comp>
- <comp lib="0" loc="(270,1150)" name="Splitter">
- <a name="bit1" val="0"/>
- <a name="bit10" val="1"/>
- <a name="bit11" val="1"/>
- <a name="bit12" val="1"/>
- <a name="bit13" val="1"/>
- <a name="bit14" val="1"/>
- <a name="bit15" val="1"/>
- <a name="bit2" val="0"/>
- <a name="bit3" val="0"/>
- <a name="bit4" val="0"/>
- <a name="bit5" val="0"/>
- <a name="bit6" val="0"/>
- <a name="bit7" val="0"/>
- <a name="bit8" val="1"/>
- <a name="bit9" val="1"/>
- <a name="facing" val="west"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(270,430)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_D3"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(290,1000)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_A3"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(290,1040)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="R2_IE"/>
- </comp>
- <comp lib="0" loc="(290,1080)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="ALU_OE"/>
- </comp>
- <comp lib="0" loc="(290,960)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="R1_IE"/>
- </comp>
- <comp lib="0" loc="(300,1320)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="RESET"/>
- </comp>
- <comp lib="0" loc="(300,300)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="PC_CO"/>
- </comp>
- <comp lib="0" loc="(310,1440)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(310,1460)" name="Power">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(310,1480)" name="Power">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(310,300)" name="Pull Resistor"/>
- <comp lib="0" loc="(310,560)" name="Splitter">
- <a name="facing" val="west"/>
- <a name="fanout" val="9"/>
- <a name="incoming" val="9"/>
- </comp>
- <comp lib="0" loc="(320,440)" name="Splitter">
- <a name="facing" val="west"/>
- <a name="fanout" val="3"/>
- <a name="incoming" val="3"/>
- </comp>
- <comp lib="0" loc="(340,570)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="IR_L9"/>
- <a name="width" val="9"/>
- </comp>
- <comp lib="0" loc="(350,250)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="PC_IE"/>
- </comp>
- <comp lib="0" loc="(350,320)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(350,900)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(360,1020)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="R2_OE"/>
- </comp>
- <comp lib="0" loc="(360,1060)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_B3"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(360,1100)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_C3"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(360,260)" name="Pull Resistor">
- <a name="facing" val="north"/>
- </comp>
- <comp lib="0" loc="(360,940)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="RESET"/>
- </comp>
- <comp lib="0" loc="(360,980)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="R1_OE"/>
- </comp>
- <comp lib="0" loc="(380,230)" name="Tunnel">
- <a name="facing" val="south"/>
- <a name="label" val="RESET"/>
- </comp>
- <comp lib="0" loc="(390,280)" name="Power">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(430,730)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_L9"/>
- <a name="width" val="9"/>
- </comp>
- <comp lib="0" loc="(430,800)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_12"/>
- <a name="width" val="12"/>
- </comp>
- <comp lib="0" loc="(450,100)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="HALT"/>
- </comp>
- <comp lib="0" loc="(490,70)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(500,730)" name="Bit Extender">
- <a name="in_width" val="9"/>
- <a name="type" val="zero"/>
- </comp>
- <comp lib="0" loc="(500,800)" name="Bit Extender">
- <a name="in_width" val="12"/>
- <a name="type" val="zero"/>
- </comp>
- <comp lib="0" loc="(510,130)" name="Pull Resistor">
- <a name="facing" val="north"/>
- </comp>
- <comp lib="0" loc="(540,750)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="L9_OE"/>
- </comp>
- <comp lib="0" loc="(540,820)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="L12_OE"/>
- </comp>
- <comp lib="0" loc="(560,130)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="HALT"/>
- <a name="output" val="true"/>
- </comp>
- <comp lib="0" loc="(570,90)" name="Tunnel">
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(590,1270)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_D3"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(60,760)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_IE"/>
- </comp>
- <comp lib="0" loc="(620,1240)" name="Tunnel">
- <a name="facing" val="south"/>
- <a name="label" val="OP_PARITY"/>
- </comp>
- <comp lib="0" loc="(620,300)" name="Tunnel">
- <a name="label" val="PC_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(640,1040)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="RA_OUT"/>
- <a name="output" val="true"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(640,1270)" name="Bit Extender">
- <a name="in_width" val="3"/>
- <a name="out_width" val="4"/>
- <a name="type" val="input"/>
- </comp>
- <comp lib="0" loc="(640,360)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="PC_OE"/>
- </comp>
- <comp lib="0" loc="(650,1010)" name="Probe">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="PB"/>
- </comp>
- <comp lib="0" loc="(650,960)" name="Probe">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="PA"/>
- </comp>
- <comp lib="0" loc="(680,1080)" name="Probe">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="ALU_L"/>
- <a name="radix" val="16"/>
- </comp>
- <comp lib="0" loc="(680,1110)" name="Probe">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="ALU_R"/>
- <a name="radix" val="16"/>
- </comp>
- <comp lib="0" loc="(70,790)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(750,1500)" name="Splitter">
- <a name="fanout" val="3"/>
- <a name="incoming" val="3"/>
- </comp>
- <comp lib="0" loc="(750,1500)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="IR_A3"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(770,1490)" name="NoConnect"/>
- <comp lib="0" loc="(790,1490)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(830,320)" name="Probe">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="south"/>
- </comp>
- <comp lib="0" loc="(860,1510)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- </comp>
- <comp lib="0" loc="(890,340)" name="Pull Resistor">
- <a name="facing" val="north"/>
- </comp>
- <comp lib="0" loc="(920,340)" name="Probe">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="radix" val="16"/>
- </comp>
- <comp lib="0" loc="(940,1070)" name="Probe">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="south"/>
- <a name="label" val="ALU_FLAGS"/>
- </comp>
- <comp lib="0" loc="(950,1450)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- </comp>
- <comp lib="0" loc="(990,630)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="MEM_OE"/>
- </comp>
- <comp lib="1" loc="(1020,1150)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(1050,1450)" name="OR Gate">
- <a name="inputs" val="4"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(240,1430)" name="AND Gate">
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(270,1490)" name="NOT Gate">
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(290,1420)" name="OR Gate">
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(550,730)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(550,800)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(560,90)" name="AND Gate">
- <a name="negate1" val="true"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(650,340)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(940,1450)" name="AND Gate">
- <a name="size" val="30"/>
- <a name="width" val="4"/>
- </comp>
- <comp lib="2" loc="(820,1510)" name="Decoder">
- <a name="enable" val="false"/>
- <a name="select" val="2"/>
- </comp>
- <comp lib="4" loc="(1150,1400)" name="ROM">
- <a name="appearance" val="logisim_evolution"/>
- <a name="contents">addr/data: 8 16
-c 421 2000 8000 4*0 c 421 2000
-8000 4*0 c 421 2000 8000 4*0 c
-421 2000 8000 4*0 c 421 88 120
-8000 0 0 0 c 421 88 120
-8000 0 0 0 c 421 88 210
-8000 0 0 0 c 421 88 210
-8000 0 0 0 c 421 840 8000
-4*0 c 421 840 8000 4*0 c 421
-82 8000 4*0 c 421 82 8000 4*0
-c 421 8000 5*0 c 421 202 8000
-4*0 c 421 8000 5*0 c 421 8000
-5*0 c 421 8000 5*0 c 421 8000
-5*0 c 421 8000 5*0 c 421 8000
-5*0 c 421 8000 5*0 c 421 8000
-5*0 c 421 8000 5*0 c 421 8000
-5*0 c 421 8000 5*0 c 421 8000
-5*0 c 421 8000 5*0 c 421 8000
-5*0 c 421 4000 5*0 c 421 4000
-</a>
- <a name="dataWidth" val="16"/>
- <a name="label" val="UCODE"/>
- <a name="labelvisible" val="true"/>
- </comp>
- <comp lib="4" loc="(1180,1120)" name="Register">
- <a name="appearance" val="logisim_evolution"/>
- <a name="label" val="FR"/>
- <a name="showInTab" val="true"/>
- <a name="trigger" val="high"/>
- <a name="width" val="4"/>
- </comp>
- <comp lib="4" loc="(310,1410)" name="Counter">
- <a name="appearance" val="logisim_evolution"/>
- <a name="label" val="MICROSEQUENCER"/>
- <a name="max" val="0x7"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="4" loc="(390,230)" name="Counter">
- <a name="appearance" val="logisim_evolution"/>
- <a name="label" val="PC"/>
- <a name="max" val="0xffff"/>
- <a name="trigger" val="falling"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="4" loc="(80,700)" name="Register">
- <a name="appearance" val="logisim_evolution"/>
- <a name="label" val="IR"/>
- <a name="showInTab" val="true"/>
- <a name="trigger" val="high"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="5" loc="(250,130)" name="Button">
- <a name="labelcolor" val="#000000"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- <a name="labelloc" val="center"/>
- </comp>
- <comp lib="5" loc="(280,1290)" name="TTY">
- <a name="trigger" val="falling"/>
- </comp>
- <comp lib="8" loc="(40,175)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="MAR_IE enables absolute addressing mode"/>
- <a name="valign" val="center"/>
- </comp>
- <comp lib="8" loc="(900,275)" name="Text">
- <a name="color" val="#ff0003"/>
- <a name="text" val="BUS"/>
- </comp>
- <comp loc="(1300,530)" name="MemoryModule"/>
- <comp loc="(580,900)" name="RegBank"/>
- <comp loc="(930,1150)" name="ALU"/>
- <wire from="(100,910)" to="(110,910)"/>
- <wire from="(100,940)" to="(110,940)"/>
- <wire from="(1000,1470)" to="(1000,1490)"/>
- <wire from="(1000,1470)" to="(1020,1470)"/>
- <wire from="(1000,550)" to="(1080,550)"/>
- <wire from="(1000,590)" to="(1080,590)"/>
- <wire from="(1010,1160)" to="(1010,1200)"/>
- <wire from="(1010,1200)" to="(1010,1210)"/>
- <wire from="(1010,1200)" to="(1110,1200)"/>
- <wire from="(1020,1150)" to="(1080,1150)"/>
- <wire from="(1030,1120)" to="(1030,1130)"/>
- <wire from="(1050,1450)" to="(1130,1450)"/>
- <wire from="(1070,510)" to="(1070,530)"/>
- <wire from="(1070,510)" to="(1310,510)"/>
- <wire from="(1070,530)" to="(1080,530)"/>
- <wire from="(1080,940)" to="(1080,1150)"/>
- <wire from="(110,790)" to="(110,800)"/>
- <wire from="(110,880)" to="(120,880)"/>
- <wire from="(110,910)" to="(110,920)"/>
- <wire from="(110,920)" to="(120,920)"/>
- <wire from="(110,930)" to="(110,940)"/>
- <wire from="(110,930)" to="(120,930)"/>
- <wire from="(110,970)" to="(120,970)"/>
- <wire from="(1100,1150)" to="(1100,1170)"/>
- <wire from="(1100,1150)" to="(1180,1150)"/>
- <wire from="(1110,1170)" to="(1110,1200)"/>
- <wire from="(1110,1170)" to="(1180,1170)"/>
- <wire from="(1120,1460)" to="(1130,1460)"/>
- <wire from="(1120,1470)" to="(1130,1470)"/>
- <wire from="(1120,1480)" to="(1130,1480)"/>
- <wire from="(1120,1490)" to="(1130,1490)"/>
- <wire from="(1170,1200)" to="(1180,1200)"/>
- <wire from="(1180,1190)" to="(1180,1200)"/>
- <wire from="(120,880)" to="(120,910)"/>
- <wire from="(120,940)" to="(120,970)"/>
- <wire from="(1210,1210)" to="(1210,1220)"/>
- <wire from="(1240,1150)" to="(1250,1150)"/>
- <wire from="(1250,1110)" to="(1250,1150)"/>
- <wire from="(1250,1110)" to="(1260,1110)"/>
- <wire from="(1250,1150)" to="(1260,1150)"/>
- <wire from="(1260,1150)" to="(1260,1270)"/>
- <wire from="(1300,530)" to="(1310,530)"/>
- <wire from="(1310,510)" to="(1310,530)"/>
- <wire from="(140,900)" to="(150,900)"/>
- <wire from="(1410,1470)" to="(1420,1470)"/>
- <wire from="(1410,1490)" to="(1500,1490)"/>
- <wire from="(1410,1510)" to="(1420,1510)"/>
- <wire from="(1410,1530)" to="(1500,1530)"/>
- <wire from="(1410,1550)" to="(1420,1550)"/>
- <wire from="(1410,1570)" to="(1500,1570)"/>
- <wire from="(1410,1590)" to="(1420,1590)"/>
- <wire from="(1410,1610)" to="(1500,1610)"/>
- <wire from="(1410,1630)" to="(1420,1630)"/>
- <wire from="(1410,1650)" to="(1500,1650)"/>
- <wire from="(1410,1670)" to="(1420,1670)"/>
- <wire from="(1410,1690)" to="(1500,1690)"/>
- <wire from="(1410,1710)" to="(1420,1710)"/>
- <wire from="(1410,1730)" to="(1500,1730)"/>
- <wire from="(1410,1750)" to="(1420,1750)"/>
- <wire from="(1410,1770)" to="(1500,1770)"/>
- <wire from="(160,510)" to="(210,510)"/>
- <wire from="(160,570)" to="(260,570)"/>
- <wire from="(160,580)" to="(270,580)"/>
- <wire from="(160,590)" to="(280,590)"/>
- <wire from="(160,600)" to="(220,600)"/>
- <wire from="(160,610)" to="(230,610)"/>
- <wire from="(160,620)" to="(240,620)"/>
- <wire from="(160,630)" to="(170,630)"/>
- <wire from="(160,640)" to="(180,640)"/>
- <wire from="(160,650)" to="(190,650)"/>
- <wire from="(160,660)" to="(200,660)"/>
- <wire from="(160,670)" to="(200,670)"/>
- <wire from="(160,680)" to="(200,680)"/>
- <wire from="(160,690)" to="(170,690)"/>
- <wire from="(160,700)" to="(180,700)"/>
- <wire from="(160,710)" to="(180,710)"/>
- <wire from="(160,720)" to="(180,720)"/>
- <wire from="(170,530)" to="(170,630)"/>
- <wire from="(170,530)" to="(190,530)"/>
- <wire from="(170,630)" to="(290,630)"/>
- <wire from="(170,690)" to="(170,840)"/>
- <wire from="(170,690)" to="(180,690)"/>
- <wire from="(170,840)" to="(190,840)"/>
- <wire from="(180,1430)" to="(190,1430)"/>
- <wire from="(180,1490)" to="(250,1490)"/>
- <wire from="(180,540)" to="(180,640)"/>
- <wire from="(180,540)" to="(190,540)"/>
- <wire from="(180,640)" to="(290,640)"/>
- <wire from="(190,1240)" to="(190,1270)"/>
- <wire from="(190,1270)" to="(270,1270)"/>
- <wire from="(190,1420)" to="(190,1430)"/>
- <wire from="(190,1420)" to="(210,1420)"/>
- <wire from="(190,1440)" to="(190,1460)"/>
- <wire from="(190,1440)" to="(210,1440)"/>
- <wire from="(190,1460)" to="(280,1460)"/>
- <wire from="(190,550)" to="(190,650)"/>
- <wire from="(190,650)" to="(290,650)"/>
- <wire from="(190,740)" to="(190,800)"/>
- <wire from="(190,740)" to="(200,740)"/>
- <wire from="(200,730)" to="(200,740)"/>
- <wire from="(210,1240)" to="(210,1310)"/>
- <wire from="(210,1310)" to="(290,1310)"/>
- <wire from="(210,470)" to="(260,470)"/>
- <wire from="(210,510)" to="(210,520)"/>
- <wire from="(220,490)" to="(220,600)"/>
- <wire from="(220,490)" to="(240,490)"/>
- <wire from="(220,600)" to="(290,600)"/>
- <wire from="(220,690)" to="(220,750)"/>
- <wire from="(220,750)" to="(230,750)"/>
- <wire from="(230,1160)" to="(250,1160)"/>
- <wire from="(230,500)" to="(230,610)"/>
- <wire from="(230,500)" to="(240,500)"/>
- <wire from="(230,610)" to="(290,610)"/>
- <wire from="(240,1400)" to="(250,1400)"/>
- <wire from="(240,1430)" to="(260,1430)"/>
- <wire from="(240,510)" to="(240,620)"/>
- <wire from="(240,620)" to="(290,620)"/>
- <wire from="(250,130)" to="(260,130)"/>
- <wire from="(250,1400)" to="(250,1410)"/>
- <wire from="(250,1410)" to="(260,1410)"/>
- <wire from="(260,1290)" to="(280,1290)"/>
- <wire from="(260,470)" to="(260,480)"/>
- <wire from="(260,520)" to="(260,570)"/>
- <wire from="(260,520)" to="(280,520)"/>
- <wire from="(260,570)" to="(290,570)"/>
- <wire from="(270,1150)" to="(590,1150)"/>
- <wire from="(270,1270)" to="(270,1280)"/>
- <wire from="(270,1280)" to="(280,1280)"/>
- <wire from="(270,1490)" to="(280,1490)"/>
- <wire from="(270,430)" to="(320,430)"/>
- <wire from="(270,530)" to="(270,580)"/>
- <wire from="(270,530)" to="(290,530)"/>
- <wire from="(270,580)" to="(290,580)"/>
- <wire from="(280,1460)" to="(280,1490)"/>
- <wire from="(280,1490)" to="(310,1490)"/>
- <wire from="(280,450)" to="(280,520)"/>
- <wire from="(280,450)" to="(300,450)"/>
- <wire from="(280,540)" to="(280,590)"/>
- <wire from="(280,540)" to="(300,540)"/>
- <wire from="(280,590)" to="(290,590)"/>
- <wire from="(280,880)" to="(280,920)"/>
- <wire from="(280,880)" to="(620,880)"/>
- <wire from="(280,920)" to="(360,920)"/>
- <wire from="(290,1000)" to="(360,1000)"/>
- <wire from="(290,1040)" to="(360,1040)"/>
- <wire from="(290,1080)" to="(360,1080)"/>
- <wire from="(290,1300)" to="(290,1310)"/>
- <wire from="(290,1420)" to="(310,1420)"/>
- <wire from="(290,460)" to="(290,530)"/>
- <wire from="(290,460)" to="(300,460)"/>
- <wire from="(290,960)" to="(360,960)"/>
- <wire from="(300,1300)" to="(300,1320)"/>
- <wire from="(300,300)" to="(310,300)"/>
- <wire from="(300,470)" to="(300,540)"/>
- <wire from="(310,1420)" to="(310,1430)"/>
- <wire from="(310,300)" to="(390,300)"/>
- <wire from="(310,560)" to="(340,560)"/>
- <wire from="(320,430)" to="(320,440)"/>
- <wire from="(340,560)" to="(340,570)"/>
- <wire from="(350,250)" to="(360,250)"/>
- <wire from="(350,320)" to="(360,320)"/>
- <wire from="(350,900)" to="(360,900)"/>
- <wire from="(360,250)" to="(360,260)"/>
- <wire from="(360,260)" to="(390,260)"/>
- <wire from="(360,310)" to="(360,320)"/>
- <wire from="(360,310)" to="(390,310)"/>
- <wire from="(370,390)" to="(370,680)"/>
- <wire from="(370,680)" to="(590,680)"/>
- <wire from="(380,230)" to="(380,250)"/>
- <wire from="(380,250)" to="(390,250)"/>
- <wire from="(430,730)" to="(460,730)"/>
- <wire from="(430,800)" to="(460,800)"/>
- <wire from="(450,100)" to="(510,100)"/>
- <wire from="(490,1520)" to="(510,1520)"/>
- <wire from="(490,70)" to="(500,70)"/>
- <wire from="(500,70)" to="(500,80)"/>
- <wire from="(500,730)" to="(530,730)"/>
- <wire from="(500,80)" to="(530,80)"/>
- <wire from="(500,800)" to="(530,800)"/>
- <wire from="(510,100)" to="(510,130)"/>
- <wire from="(510,100)" to="(520,100)"/>
- <wire from="(510,130)" to="(560,130)"/>
- <wire from="(510,1410)" to="(1110,1410)"/>
- <wire from="(510,1410)" to="(510,1520)"/>
- <wire from="(540,740)" to="(540,750)"/>
- <wire from="(540,810)" to="(540,820)"/>
- <wire from="(550,730)" to="(590,730)"/>
- <wire from="(550,800)" to="(590,800)"/>
- <wire from="(560,90)" to="(570,90)"/>
- <wire from="(580,1000)" to="(580,1040)"/>
- <wire from="(580,1040)" to="(640,1040)"/>
- <wire from="(580,900)" to="(620,900)"/>
- <wire from="(580,920)" to="(610,920)"/>
- <wire from="(580,940)" to="(600,940)"/>
- <wire from="(580,960)" to="(650,960)"/>
- <wire from="(580,980)" to="(590,980)"/>
- <wire from="(590,1010)" to="(590,1150)"/>
- <wire from="(590,1010)" to="(650,1010)"/>
- <wire from="(590,1270)" to="(600,1270)"/>
- <wire from="(590,340)" to="(600,340)"/>
- <wire from="(590,680)" to="(590,730)"/>
- <wire from="(590,680)" to="(870,680)"/>
- <wire from="(590,730)" to="(590,800)"/>
- <wire from="(590,980)" to="(590,1010)"/>
- <wire from="(60,760)" to="(70,760)"/>
- <wire from="(600,1110)" to="(600,1190)"/>
- <wire from="(600,1110)" to="(680,1110)"/>
- <wire from="(600,1190)" to="(710,1190)"/>
- <wire from="(600,300)" to="(600,340)"/>
- <wire from="(600,300)" to="(620,300)"/>
- <wire from="(600,340)" to="(630,340)"/>
- <wire from="(600,940)" to="(600,1110)"/>
- <wire from="(610,1080)" to="(610,1170)"/>
- <wire from="(610,1080)" to="(680,1080)"/>
- <wire from="(610,1170)" to="(710,1170)"/>
- <wire from="(610,920)" to="(610,1080)"/>
- <wire from="(620,1240)" to="(620,1250)"/>
- <wire from="(620,880)" to="(620,900)"/>
- <wire from="(620,900)" to="(870,900)"/>
- <wire from="(640,1270)" to="(690,1270)"/>
- <wire from="(640,350)" to="(640,360)"/>
- <wire from="(650,340)" to="(830,340)"/>
- <wire from="(690,1150)" to="(690,1270)"/>
- <wire from="(690,1150)" to="(710,1150)"/>
- <wire from="(70,750)" to="(70,760)"/>
- <wire from="(70,750)" to="(80,750)"/>
- <wire from="(70,790)" to="(80,790)"/>
- <wire from="(790,1490)" to="(790,1510)"/>
- <wire from="(790,1510)" to="(820,1510)"/>
- <wire from="(80,340)" to="(390,340)"/>
- <wire from="(80,340)" to="(80,390)"/>
- <wire from="(80,390)" to="(370,390)"/>
- <wire from="(80,390)" to="(80,730)"/>
- <wire from="(80,770)" to="(80,790)"/>
- <wire from="(830,320)" to="(830,340)"/>
- <wire from="(830,340)" to="(870,340)"/>
- <wire from="(860,1510)" to="(900,1510)"/>
- <wire from="(870,340)" to="(870,530)"/>
- <wire from="(870,340)" to="(890,340)"/>
- <wire from="(870,530)" to="(1070,530)"/>
- <wire from="(870,530)" to="(870,680)"/>
- <wire from="(870,680)" to="(870,900)"/>
- <wire from="(870,900)" to="(870,940)"/>
- <wire from="(870,940)" to="(1080,940)"/>
- <wire from="(890,340)" to="(920,340)"/>
- <wire from="(900,1270)" to="(1260,1270)"/>
- <wire from="(900,1270)" to="(900,1440)"/>
- <wire from="(900,1440)" to="(910,1440)"/>
- <wire from="(900,1460)" to="(900,1510)"/>
- <wire from="(900,1460)" to="(910,1460)"/>
- <wire from="(930,1150)" to="(970,1150)"/>
- <wire from="(930,1170)" to="(940,1170)"/>
- <wire from="(940,1070)" to="(940,1170)"/>
- <wire from="(940,1170)" to="(1100,1170)"/>
- <wire from="(940,1450)" to="(950,1450)"/>
- <wire from="(970,1130)" to="(1030,1130)"/>
- <wire from="(970,1130)" to="(970,1150)"/>
- <wire from="(970,1150)" to="(1000,1150)"/>
- <wire from="(970,1430)" to="(1020,1430)"/>
- <wire from="(970,1430)" to="(970,1460)"/>
- <wire from="(970,1470)" to="(980,1470)"/>
- <wire from="(970,1480)" to="(990,1480)"/>
- <wire from="(970,1490)" to="(1000,1490)"/>
- <wire from="(980,1440)" to="(1020,1440)"/>
- <wire from="(980,1440)" to="(980,1470)"/>
- <wire from="(990,1460)" to="(1020,1460)"/>
- <wire from="(990,1460)" to="(990,1480)"/>
- <wire from="(990,630)" to="(1080,630)"/>
- </circuit>
- <circuit name="RegBank">
- <a name="appearance" val="logisim_evolution"/>
- <a name="circuit" val="RegBank"/>
- <a name="circuitnamedboxfixedsize" val="true"/>
- <a name="simulationFrequency" val="1.0"/>
- <comp lib="0" loc="(1110,490)" name="NoConnect"/>
- <comp lib="0" loc="(1150,600)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="R1_S_RB"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(1150,650)" name="NoConnect"/>
- <comp lib="0" loc="(1170,1020)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="RD_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(1170,1510)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="RA_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(1170,570)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="R1_OE"/>
- </comp>
- <comp lib="0" loc="(1170,970)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="RB_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(1180,1160)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="RB_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(1180,1210)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="RD_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(1190,760)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="R2_S_RB"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(1210,1510)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="RA_OUT"/>
- <a name="output" val="true"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(1210,730)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="R2_OE"/>
- </comp>
- <comp lib="0" loc="(1240,990)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="RC_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(1250,1180)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="RC_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(1260,950)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="RA_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(1270,1140)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="RA_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(1280,940)" name="Ground">
- <a name="facing" val="north"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(1290,1130)" name="Ground">
- <a name="facing" val="north"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(1300,1070)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="R1_S_RB"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(1310,1260)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="R2_S_RB"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(1330,1010)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="R1_OUT"/>
- <a name="output" val="true"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(1340,1200)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="R2_OUT"/>
- <a name="output" val="true"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(320,1110)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="R3_S"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(320,590)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="R1_S"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(330,1020)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="south"/>
- <a name="label" val="R3_IE"/>
- </comp>
- <comp lib="0" loc="(330,500)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="south"/>
- <a name="label" val="R1_IE"/>
- </comp>
- <comp lib="0" loc="(330,850)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="R2_S"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(340,1130)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="R3_S_RB"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(340,320)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(340,610)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="R1_S_RB"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(340,760)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="south"/>
- <a name="label" val="R2_IE"/>
- </comp>
- <comp lib="0" loc="(350,320)" name="Tunnel">
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(350,870)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="R2_S_RB"/>
- <a name="width" val="3"/>
- </comp>
- <comp lib="0" loc="(410,1020)" name="NoConnect"/>
- <comp lib="0" loc="(410,500)" name="NoConnect"/>
- <comp lib="0" loc="(420,760)" name="NoConnect"/>
- <comp lib="0" loc="(540,400)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="RST_RB"/>
- </comp>
- <comp lib="0" loc="(550,400)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="RESET"/>
- </comp>
- <comp lib="0" loc="(600,640)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(610,580)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="B_IN"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(610,980)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(620,1380)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(630,920)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="B_IN"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(640,1320)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="B_IN"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(650,640)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="RST_RB"/>
- </comp>
- <comp lib="0" loc="(660,980)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="RST_RB"/>
- </comp>
- <comp lib="0" loc="(670,1380)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="RST_RB"/>
- </comp>
- <comp lib="0" loc="(680,790)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(690,1130)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(700,1520)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(700,550)" name="Tunnel">
- <a name="facing" val="south"/>
- <a name="label" val="RA_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(700,730)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="B_IN"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(710,1070)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="B_IN"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(720,1320)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="PA_OUT"/>
- <a name="output" val="true"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(720,1460)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="B_IN"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(730,790)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="RST_RB"/>
- </comp>
- <comp lib="0" loc="(730,880)" name="Tunnel">
- <a name="facing" val="south"/>
- <a name="label" val="RC_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(740,1130)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="RST_RB"/>
- </comp>
- <comp lib="0" loc="(750,1520)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="RST_RB"/>
- </comp>
- <comp lib="0" loc="(770,550)" name="Tunnel">
- <a name="label" val="B_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(770,680)" name="Tunnel">
- <a name="facing" val="south"/>
- <a name="label" val="RB_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(780,890)" name="Tunnel">
- <a name="label" val="B_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(800,1460)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="PB_OUT"/>
- <a name="output" val="true"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(810,1020)" name="Tunnel">
- <a name="facing" val="south"/>
- <a name="label" val="RD_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(830,700)" name="Tunnel">
- <a name="label" val="B_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(860,1040)" name="Tunnel">
- <a name="label" val="B_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(930,360)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="B_IN"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(930,390)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="B_OUT"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(950,320)" name="Probe">
- <a name="appearance" val="NewPins"/>
- </comp>
- <comp lib="0" loc="(980,360)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="MAIN_BUS_IN"/>
- <a name="radix" val="16"/>
- <a name="tristate" val="true"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(990,390)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="MAIN_BUS_OUT"/>
- <a name="output" val="true"/>
- <a name="radix" val="16"/>
- <a name="tristate" val="true"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(560,620)" name="OR Gate">
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(570,1340)" name="OR Gate">
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(580,940)" name="OR Gate">
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(640,1090)" name="OR Gate">
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(640,770)" name="OR Gate">
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(650,1480)" name="OR Gate">
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(740,580)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(750,920)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(800,600)" name="OR Gate">
- <a name="facing" val="west"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(800,730)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(810,940)" name="OR Gate">
- <a name="facing" val="west"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(820,760)" name="OR Gate">
- <a name="facing" val="west"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(830,1070)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(890,1090)" name="OR Gate">
- <a name="facing" val="west"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="2" loc="(1150,570)" name="Decoder">
- <a name="facing" val="west"/>
- <a name="select" val="3"/>
- </comp>
- <comp lib="2" loc="(1190,730)" name="Decoder">
- <a name="facing" val="west"/>
- <a name="select" val="3"/>
- </comp>
- <comp lib="2" loc="(1320,1010)" name="Multiplexer">
- <a name="select" val="3"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="2" loc="(1330,1200)" name="Multiplexer">
- <a name="select" val="3"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="2" loc="(380,1100)" name="Decoder">
- <a name="select" val="3"/>
- </comp>
- <comp lib="2" loc="(380,580)" name="Decoder">
- <a name="select" val="3"/>
- </comp>
- <comp lib="2" loc="(390,840)" name="Decoder">
- <a name="select" val="3"/>
- </comp>
- <comp lib="4" loc="(620,550)" name="Register">
- <a name="appearance" val="logisim_evolution"/>
- <a name="label" val="RA"/>
- <a name="showInTab" val="true"/>
- <a name="trigger" val="high"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="4" loc="(630,890)" name="Register">
- <a name="appearance" val="logisim_evolution"/>
- <a name="label" val="RC"/>
- <a name="showInTab" val="true"/>
- <a name="trigger" val="high"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="4" loc="(640,1290)" name="Register">
- <a name="appearance" val="logisim_evolution"/>
- <a name="label" val="PA"/>
- <a name="showInTab" val="true"/>
- <a name="trigger" val="high"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="4" loc="(700,700)" name="Register">
- <a name="appearance" val="logisim_evolution"/>
- <a name="label" val="RB"/>
- <a name="showInTab" val="true"/>
- <a name="trigger" val="high"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="4" loc="(710,1040)" name="Register">
- <a name="appearance" val="logisim_evolution"/>
- <a name="label" val="RD"/>
- <a name="showInTab" val="true"/>
- <a name="trigger" val="high"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="4" loc="(720,1430)" name="Register">
- <a name="appearance" val="logisim_evolution"/>
- <a name="label" val="PB"/>
- <a name="showInTab" val="true"/>
- <a name="trigger" val="high"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="8" loc="(1085,1475)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="for testbench purposes"/>
- <a name="valign" val="center"/>
- </comp>
- <wire from="(1040,530)" to="(1040,1080)"/>
- <wire from="(1040,530)" to="(1130,530)"/>
- <wire from="(1050,520)" to="(1050,930)"/>
- <wire from="(1050,520)" to="(1130,520)"/>
- <wire from="(1060,500)" to="(1060,590)"/>
- <wire from="(1060,500)" to="(1130,500)"/>
- <wire from="(1060,780)" to="(1060,950)"/>
- <wire from="(1060,780)" to="(1090,780)"/>
- <wire from="(1070,510)" to="(1070,750)"/>
- <wire from="(1070,510)" to="(1130,510)"/>
- <wire from="(1070,790)" to="(1070,1100)"/>
- <wire from="(1070,790)" to="(1100,790)"/>
- <wire from="(1080,610)" to="(1080,660)"/>
- <wire from="(1080,660)" to="(1170,660)"/>
- <wire from="(1080,670)" to="(1080,770)"/>
- <wire from="(1080,670)" to="(1170,670)"/>
- <wire from="(1090,680)" to="(1090,780)"/>
- <wire from="(1090,680)" to="(1170,680)"/>
- <wire from="(1100,690)" to="(1100,790)"/>
- <wire from="(1100,690)" to="(1170,690)"/>
- <wire from="(1110,490)" to="(1130,490)"/>
- <wire from="(1150,570)" to="(1150,600)"/>
- <wire from="(1150,650)" to="(1170,650)"/>
- <wire from="(1160,570)" to="(1170,570)"/>
- <wire from="(1170,1020)" to="(1190,1020)"/>
- <wire from="(1170,1510)" to="(1210,1510)"/>
- <wire from="(1170,970)" to="(1260,970)"/>
- <wire from="(1180,1160)" to="(1270,1160)"/>
- <wire from="(1180,1210)" to="(1200,1210)"/>
- <wire from="(1190,1010)" to="(1190,1020)"/>
- <wire from="(1190,1010)" to="(1280,1010)"/>
- <wire from="(1190,730)" to="(1190,760)"/>
- <wire from="(1200,1200)" to="(1200,1210)"/>
- <wire from="(1200,1200)" to="(1290,1200)"/>
- <wire from="(1200,730)" to="(1210,730)"/>
- <wire from="(1240,990)" to="(1250,990)"/>
- <wire from="(1250,1000)" to="(1280,1000)"/>
- <wire from="(1250,1180)" to="(1260,1180)"/>
- <wire from="(1250,990)" to="(1250,1000)"/>
- <wire from="(1260,1180)" to="(1260,1190)"/>
- <wire from="(1260,1190)" to="(1290,1190)"/>
- <wire from="(1260,950)" to="(1270,950)"/>
- <wire from="(1260,970)" to="(1260,990)"/>
- <wire from="(1260,990)" to="(1280,990)"/>
- <wire from="(1270,1140)" to="(1280,1140)"/>
- <wire from="(1270,1160)" to="(1270,1180)"/>
- <wire from="(1270,1180)" to="(1290,1180)"/>
- <wire from="(1270,950)" to="(1270,980)"/>
- <wire from="(1270,980)" to="(1280,980)"/>
- <wire from="(1280,1140)" to="(1280,1170)"/>
- <wire from="(1280,1170)" to="(1290,1170)"/>
- <wire from="(1280,940)" to="(1280,970)"/>
- <wire from="(1290,1130)" to="(1290,1160)"/>
- <wire from="(1300,1050)" to="(1300,1070)"/>
- <wire from="(1310,1240)" to="(1310,1260)"/>
- <wire from="(1320,1010)" to="(1330,1010)"/>
- <wire from="(1330,1200)" to="(1340,1200)"/>
- <wire from="(320,1110)" to="(340,1110)"/>
- <wire from="(320,590)" to="(340,590)"/>
- <wire from="(330,1020)" to="(330,1100)"/>
- <wire from="(330,1100)" to="(370,1100)"/>
- <wire from="(330,500)" to="(330,580)"/>
- <wire from="(330,580)" to="(370,580)"/>
- <wire from="(330,850)" to="(350,850)"/>
- <wire from="(340,1110)" to="(340,1130)"/>
- <wire from="(340,1110)" to="(380,1110)"/>
- <wire from="(340,320)" to="(350,320)"/>
- <wire from="(340,590)" to="(340,610)"/>
- <wire from="(340,590)" to="(380,590)"/>
- <wire from="(340,760)" to="(340,840)"/>
- <wire from="(340,840)" to="(380,840)"/>
- <wire from="(350,850)" to="(350,870)"/>
- <wire from="(350,850)" to="(390,850)"/>
- <wire from="(380,1100)" to="(380,1110)"/>
- <wire from="(380,580)" to="(380,590)"/>
- <wire from="(390,840)" to="(390,850)"/>
- <wire from="(400,1020)" to="(410,1020)"/>
- <wire from="(400,1030)" to="(490,1030)"/>
- <wire from="(400,1040)" to="(500,1040)"/>
- <wire from="(400,1050)" to="(510,1050)"/>
- <wire from="(400,1060)" to="(600,1060)"/>
- <wire from="(400,1070)" to="(490,1070)"/>
- <wire from="(400,1080)" to="(420,1080)"/>
- <wire from="(400,500)" to="(410,500)"/>
- <wire from="(400,510)" to="(520,510)"/>
- <wire from="(400,520)" to="(510,520)"/>
- <wire from="(400,530)" to="(500,530)"/>
- <wire from="(400,540)" to="(480,540)"/>
- <wire from="(400,550)" to="(460,550)"/>
- <wire from="(400,560)" to="(440,560)"/>
- <wire from="(410,760)" to="(420,760)"/>
- <wire from="(410,770)" to="(520,770)"/>
- <wire from="(410,780)" to="(540,780)"/>
- <wire from="(410,790)" to="(490,790)"/>
- <wire from="(410,800)" to="(470,800)"/>
- <wire from="(410,810)" to="(450,810)"/>
- <wire from="(410,820)" to="(430,820)"/>
- <wire from="(420,1080)" to="(420,1490)"/>
- <wire from="(420,1490)" to="(620,1490)"/>
- <wire from="(430,1480)" to="(620,1480)"/>
- <wire from="(430,820)" to="(430,1480)"/>
- <wire from="(440,1470)" to="(620,1470)"/>
- <wire from="(440,560)" to="(440,1470)"/>
- <wire from="(450,1340)" to="(540,1340)"/>
- <wire from="(450,810)" to="(450,1340)"/>
- <wire from="(460,1330)" to="(540,1330)"/>
- <wire from="(460,550)" to="(460,1330)"/>
- <wire from="(470,1090)" to="(610,1090)"/>
- <wire from="(470,800)" to="(470,1090)"/>
- <wire from="(480,1080)" to="(610,1080)"/>
- <wire from="(480,540)" to="(480,1080)"/>
- <wire from="(490,1070)" to="(490,1350)"/>
- <wire from="(490,1350)" to="(540,1350)"/>
- <wire from="(490,790)" to="(490,940)"/>
- <wire from="(490,940)" to="(550,940)"/>
- <wire from="(490,950)" to="(490,1030)"/>
- <wire from="(490,950)" to="(510,950)"/>
- <wire from="(500,530)" to="(500,930)"/>
- <wire from="(500,930)" to="(550,930)"/>
- <wire from="(500,960)" to="(500,1040)"/>
- <wire from="(500,960)" to="(520,960)"/>
- <wire from="(510,520)" to="(510,670)"/>
- <wire from="(510,670)" to="(600,670)"/>
- <wire from="(510,790)" to="(510,950)"/>
- <wire from="(510,790)" to="(530,790)"/>
- <wire from="(510,970)" to="(510,1050)"/>
- <wire from="(510,970)" to="(530,970)"/>
- <wire from="(520,510)" to="(520,610)"/>
- <wire from="(520,610)" to="(530,610)"/>
- <wire from="(520,620)" to="(520,770)"/>
- <wire from="(520,620)" to="(530,620)"/>
- <wire from="(520,800)" to="(520,960)"/>
- <wire from="(520,800)" to="(550,800)"/>
- <wire from="(530,630)" to="(530,790)"/>
- <wire from="(530,950)" to="(530,970)"/>
- <wire from="(530,950)" to="(550,950)"/>
- <wire from="(540,400)" to="(550,400)"/>
- <wire from="(540,770)" to="(540,780)"/>
- <wire from="(540,770)" to="(610,770)"/>
- <wire from="(550,780)" to="(550,800)"/>
- <wire from="(550,780)" to="(610,780)"/>
- <wire from="(560,620)" to="(590,620)"/>
- <wire from="(570,1340)" to="(640,1340)"/>
- <wire from="(580,940)" to="(630,940)"/>
- <wire from="(590,600)" to="(590,620)"/>
- <wire from="(590,600)" to="(620,600)"/>
- <wire from="(600,1060)" to="(600,1100)"/>
- <wire from="(600,1100)" to="(610,1100)"/>
- <wire from="(600,640)" to="(610,640)"/>
- <wire from="(600,670)" to="(600,760)"/>
- <wire from="(600,760)" to="(610,760)"/>
- <wire from="(610,580)" to="(620,580)"/>
- <wire from="(610,620)" to="(610,640)"/>
- <wire from="(610,620)" to="(620,620)"/>
- <wire from="(610,980)" to="(620,980)"/>
- <wire from="(620,1380)" to="(630,1380)"/>
- <wire from="(620,960)" to="(620,980)"/>
- <wire from="(620,960)" to="(630,960)"/>
- <wire from="(630,1360)" to="(630,1380)"/>
- <wire from="(630,1360)" to="(640,1360)"/>
- <wire from="(640,1090)" to="(710,1090)"/>
- <wire from="(640,770)" to="(670,770)"/>
- <wire from="(650,1480)" to="(720,1480)"/>
- <wire from="(670,750)" to="(670,770)"/>
- <wire from="(670,750)" to="(700,750)"/>
- <wire from="(680,580)" to="(700,580)"/>
- <wire from="(680,790)" to="(690,790)"/>
- <wire from="(690,1130)" to="(700,1130)"/>
- <wire from="(690,770)" to="(690,790)"/>
- <wire from="(690,770)" to="(700,770)"/>
- <wire from="(690,920)" to="(710,920)"/>
- <wire from="(700,1110)" to="(700,1130)"/>
- <wire from="(700,1110)" to="(710,1110)"/>
- <wire from="(700,1320)" to="(720,1320)"/>
- <wire from="(700,1520)" to="(710,1520)"/>
- <wire from="(700,550)" to="(700,580)"/>
- <wire from="(700,580)" to="(720,580)"/>
- <wire from="(710,1500)" to="(710,1520)"/>
- <wire from="(710,1500)" to="(720,1500)"/>
- <wire from="(710,890)" to="(710,920)"/>
- <wire from="(710,890)" to="(730,890)"/>
- <wire from="(710,920)" to="(730,920)"/>
- <wire from="(730,590)" to="(730,600)"/>
- <wire from="(730,600)" to="(800,600)"/>
- <wire from="(730,880)" to="(730,890)"/>
- <wire from="(740,580)" to="(750,580)"/>
- <wire from="(740,930)" to="(740,940)"/>
- <wire from="(740,940)" to="(810,940)"/>
- <wire from="(750,550)" to="(750,580)"/>
- <wire from="(750,550)" to="(770,550)"/>
- <wire from="(750,920)" to="(760,920)"/>
- <wire from="(760,730)" to="(770,730)"/>
- <wire from="(760,890)" to="(760,920)"/>
- <wire from="(760,890)" to="(780,890)"/>
- <wire from="(770,1070)" to="(790,1070)"/>
- <wire from="(770,680)" to="(770,730)"/>
- <wire from="(770,730)" to="(780,730)"/>
- <wire from="(780,1460)" to="(800,1460)"/>
- <wire from="(790,1030)" to="(790,1070)"/>
- <wire from="(790,1030)" to="(810,1030)"/>
- <wire from="(790,1070)" to="(810,1070)"/>
- <wire from="(790,740)" to="(790,760)"/>
- <wire from="(790,760)" to="(820,760)"/>
- <wire from="(800,730)" to="(810,730)"/>
- <wire from="(810,1020)" to="(810,1030)"/>
- <wire from="(810,700)" to="(810,730)"/>
- <wire from="(810,700)" to="(830,700)"/>
- <wire from="(820,1080)" to="(820,1090)"/>
- <wire from="(820,1090)" to="(890,1090)"/>
- <wire from="(830,1070)" to="(840,1070)"/>
- <wire from="(830,590)" to="(1060,590)"/>
- <wire from="(830,610)" to="(1080,610)"/>
- <wire from="(840,1040)" to="(840,1070)"/>
- <wire from="(840,1040)" to="(860,1040)"/>
- <wire from="(840,930)" to="(1050,930)"/>
- <wire from="(840,950)" to="(1060,950)"/>
- <wire from="(850,750)" to="(1070,750)"/>
- <wire from="(850,770)" to="(1080,770)"/>
- <wire from="(920,1080)" to="(1040,1080)"/>
- <wire from="(920,1100)" to="(1070,1100)"/>
- <wire from="(930,360)" to="(970,360)"/>
- <wire from="(930,390)" to="(990,390)"/>
- <wire from="(950,320)" to="(970,320)"/>
- <wire from="(970,320)" to="(970,360)"/>
- <wire from="(970,360)" to="(980,360)"/>
- </circuit>
- <circuit name="ALU">
- <a name="appearance" val="logisim_evolution"/>
- <a name="circuit" val="ALU"/>
- <a name="circuitnamedboxfixedsize" val="true"/>
- <a name="simulationFrequency" val="1.0"/>
- <comp lib="0" loc="(100,450)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="S"/>
- <a name="width" val="4"/>
- </comp>
- <comp lib="0" loc="(100,880)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="IN_L"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(100,930)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="IN_R"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(1020,890)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="SIGN_FL"/>
- </comp>
- <comp lib="0" loc="(1040,1010)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="SIGN_FL"/>
- </comp>
- <comp lib="0" loc="(1040,980)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="OVR_FL"/>
- </comp>
- <comp lib="0" loc="(1080,960)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="FLAGS"/>
- <a name="output" val="true"/>
- <a name="width" val="4"/>
- </comp>
- <comp lib="0" loc="(1080,960)" name="Splitter">
- <a name="facing" val="west"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- </comp>
- <comp lib="0" loc="(110,450)" name="Splitter">
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- </comp>
- <comp lib="0" loc="(1100,840)" name="Tunnel">
- <a name="label" val="ZERO_FL"/>
- </comp>
- <comp lib="0" loc="(1240,670)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="RESULT"/>
- <a name="output" val="true"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(130,570)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="SHIFT_ALU_OE"/>
- </comp>
- <comp lib="0" loc="(1310,750)" name="Tunnel">
- <a name="label" val="SHIFT_ALU_OE"/>
- </comp>
- <comp lib="0" loc="(150,440)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="3"/>
- <a name="incoming" val="3"/>
- </comp>
- <comp lib="0" loc="(230,520)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="3"/>
- <a name="incoming" val="3"/>
- </comp>
- <comp lib="0" loc="(240,1320)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="bit1" val="0"/>
- <a name="bit10" val="2"/>
- <a name="bit11" val="2"/>
- <a name="bit12" val="3"/>
- <a name="bit13" val="3"/>
- <a name="bit14" val="3"/>
- <a name="bit15" val="3"/>
- <a name="bit2" val="0"/>
- <a name="bit3" val="0"/>
- <a name="bit4" val="1"/>
- <a name="bit5" val="1"/>
- <a name="bit6" val="1"/>
- <a name="bit7" val="1"/>
- <a name="bit8" val="2"/>
- <a name="bit9" val="2"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(260,1340)" name="NoConnect">
- <a name="width" val="4"/>
- </comp>
- <comp lib="0" loc="(260,1350)" name="NoConnect">
- <a name="width" val="4"/>
- </comp>
- <comp lib="0" loc="(260,1360)" name="NoConnect">
- <a name="width" val="4"/>
- </comp>
- <comp lib="0" loc="(270,880)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="bit1" val="0"/>
- <a name="bit10" val="2"/>
- <a name="bit11" val="2"/>
- <a name="bit12" val="3"/>
- <a name="bit13" val="3"/>
- <a name="bit14" val="3"/>
- <a name="bit15" val="3"/>
- <a name="bit2" val="0"/>
- <a name="bit3" val="0"/>
- <a name="bit4" val="1"/>
- <a name="bit5" val="1"/>
- <a name="bit6" val="1"/>
- <a name="bit7" val="1"/>
- <a name="bit8" val="2"/>
- <a name="bit9" val="2"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(270,930)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="bit1" val="0"/>
- <a name="bit10" val="2"/>
- <a name="bit11" val="2"/>
- <a name="bit12" val="3"/>
- <a name="bit13" val="3"/>
- <a name="bit14" val="3"/>
- <a name="bit15" val="3"/>
- <a name="bit2" val="0"/>
- <a name="bit3" val="0"/>
- <a name="bit4" val="1"/>
- <a name="bit5" val="1"/>
- <a name="bit6" val="1"/>
- <a name="bit7" val="1"/>
- <a name="bit8" val="2"/>
- <a name="bit9" val="2"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(450,1010)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- <a name="spacing" val="2"/>
- </comp>
- <comp lib="0" loc="(450,610)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- <a name="spacing" val="2"/>
- </comp>
- <comp lib="0" loc="(480,1000)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- <a name="spacing" val="2"/>
- </comp>
- <comp lib="0" loc="(480,600)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- <a name="spacing" val="2"/>
- </comp>
- <comp lib="0" loc="(570,1070)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- </comp>
- <comp lib="0" loc="(570,670)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- </comp>
- <comp lib="0" loc="(580,1070)" name="Probe">
- <a name="appearance" val="classic"/>
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(580,670)" name="Probe">
- <a name="appearance" val="classic"/>
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(680,1020)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- <a name="spacing" val="2"/>
- </comp>
- <comp lib="0" loc="(680,610)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- <a name="spacing" val="2"/>
- </comp>
- <comp lib="0" loc="(710,1010)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- <a name="spacing" val="2"/>
- </comp>
- <comp lib="0" loc="(710,600)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- <a name="spacing" val="2"/>
- </comp>
- <comp lib="0" loc="(800,1080)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- </comp>
- <comp lib="0" loc="(800,670)" name="Probe">
- <a name="appearance" val="classic"/>
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(800,670)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- </comp>
- <comp lib="0" loc="(810,1080)" name="Probe">
- <a name="appearance" val="classic"/>
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(890,1090)" name="Tunnel">
- <a name="facing" val="south"/>
- <a name="label" val="OVR_FL"/>
- </comp>
- <comp lib="0" loc="(920,1110)" name="Tunnel">
- <a name="label" val="CARRY_FL"/>
- </comp>
- <comp lib="0" loc="(920,610)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="bit1" val="0"/>
- <a name="bit10" val="2"/>
- <a name="bit11" val="2"/>
- <a name="bit12" val="3"/>
- <a name="bit13" val="3"/>
- <a name="bit14" val="3"/>
- <a name="bit15" val="3"/>
- <a name="bit2" val="0"/>
- <a name="bit3" val="0"/>
- <a name="bit4" val="1"/>
- <a name="bit5" val="1"/>
- <a name="bit6" val="1"/>
- <a name="bit7" val="1"/>
- <a name="bit8" val="2"/>
- <a name="bit9" val="2"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="4"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(950,680)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="bit1" val="0"/>
- <a name="bit10" val="1"/>
- <a name="bit11" val="1"/>
- <a name="bit12" val="1"/>
- <a name="bit13" val="1"/>
- <a name="bit14" val="1"/>
- <a name="bit15" val="1"/>
- <a name="bit2" val="0"/>
- <a name="bit3" val="0"/>
- <a name="bit4" val="0"/>
- <a name="bit5" val="0"/>
- <a name="bit6" val="0"/>
- <a name="bit7" val="0"/>
- <a name="bit8" val="1"/>
- <a name="bit9" val="1"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(950,990)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="ZERO_FL"/>
- </comp>
- <comp lib="0" loc="(960,960)" name="Tunnel">
- <a name="facing" val="east"/>
- <a name="label" val="CARRY_FL"/>
- </comp>
- <comp lib="0" loc="(990,690)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="8"/>
- <a name="incoming" val="8"/>
- </comp>
- <comp lib="0" loc="(990,780)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="8"/>
- <a name="incoming" val="8"/>
- </comp>
- <comp lib="1" loc="(1080,780)" name="AND Gate">
- <a name="inputs" val="16"/>
- <a name="label" val="ZERO"/>
- <a name="negate0" val="true"/>
- <a name="negate1" val="true"/>
- <a name="negate10" val="true"/>
- <a name="negate11" val="true"/>
- <a name="negate12" val="true"/>
- <a name="negate13" val="true"/>
- <a name="negate14" val="true"/>
- <a name="negate15" val="true"/>
- <a name="negate2" val="true"/>
- <a name="negate3" val="true"/>
- <a name="negate4" val="true"/>
- <a name="negate5" val="true"/>
- <a name="negate6" val="true"/>
- <a name="negate7" val="true"/>
- <a name="negate8" val="true"/>
- <a name="negate9" val="true"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1190,680)" name="NOT Gate">
- <a name="facing" val="north"/>
- </comp>
- <comp lib="1" loc="(1200,670)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(1230,700)" name="Controlled Buffer">
- <a name="facing" val="north"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(360,540)" name="AND Gate">
- <a name="inputs" val="3"/>
- <a name="negate1" val="true"/>
- <a name="negate2" val="true"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(360,580)" name="AND Gate">
- <a name="inputs" val="3"/>
- <a name="negate0" val="true"/>
- <a name="negate2" val="true"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(410,550)" name="OR Gate">
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(720,1220)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(720,1340)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(720,1470)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="2" loc="(170,530)" name="Demultiplexer">
- <a name="width" val="3"/>
- </comp>
- <comp lib="2" loc="(230,1240)" name="Demultiplexer">
- <a name="select" val="3"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="2" loc="(250,1470)" name="Decoder">
- <a name="enable" val="false"/>
- <a name="select" val="3"/>
- </comp>
- <comp lib="8" loc="(170,465)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="If S = 0XXX, use 74x382 ALU"/>
- <a name="valign" val="center"/>
- </comp>
- <comp lib="8" loc="(230,1175)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="If S = 1XXX, do bitshift stuff"/>
- <a name="valign" val="center"/>
- </comp>
- <comp lib="8" loc="(305,495)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="Carry needs to be forced to 1 when subtracting"/>
- <a name="valign" val="center"/>
- </comp>
- <comp lib="8" loc="(440,1175)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="Bit shifts are implemented separately here"/>
- <a name="valign" val="center"/>
- </comp>
- <comp loc="(540,1030)" name="IC_74382"/>
- <comp loc="(540,630)" name="IC_74382"/>
- <comp loc="(670,1220)" name="BitShiftRightLogical"/>
- <comp loc="(670,1340)" name="BitShiftRightArithmetic"/>
- <comp loc="(670,1470)" name="BitShiftLeftLogical"/>
- <comp loc="(770,1040)" name="IC_74382"/>
- <comp loc="(770,630)" name="IC_74382"/>
- <wire from="(100,450)" to="(110,450)"/>
- <wire from="(100,880)" to="(200,880)"/>
- <wire from="(100,930)" to="(190,930)"/>
- <wire from="(1010,700)" to="(1040,700)"/>
- <wire from="(1010,710)" to="(1040,710)"/>
- <wire from="(1010,720)" to="(1040,720)"/>
- <wire from="(1010,730)" to="(1040,730)"/>
- <wire from="(1010,740)" to="(1040,740)"/>
- <wire from="(1010,750)" to="(1040,750)"/>
- <wire from="(1010,760)" to="(1040,760)"/>
- <wire from="(1010,770)" to="(1040,770)"/>
- <wire from="(1010,790)" to="(1040,790)"/>
- <wire from="(1010,800)" to="(1040,800)"/>
- <wire from="(1010,810)" to="(1040,810)"/>
- <wire from="(1010,820)" to="(1040,820)"/>
- <wire from="(1010,830)" to="(1040,830)"/>
- <wire from="(1010,840)" to="(1040,840)"/>
- <wire from="(1010,850)" to="(1040,850)"/>
- <wire from="(1010,860)" to="(1020,860)"/>
- <wire from="(1020,860)" to="(1020,890)"/>
- <wire from="(1020,860)" to="(1040,860)"/>
- <wire from="(1040,1010)" to="(1060,1010)"/>
- <wire from="(1040,980)" to="(1060,980)"/>
- <wire from="(1050,960)" to="(1050,970)"/>
- <wire from="(1050,970)" to="(1060,970)"/>
- <wire from="(1060,1000)" to="(1060,1010)"/>
- <wire from="(1080,780)" to="(1090,780)"/>
- <wire from="(1090,780)" to="(1090,840)"/>
- <wire from="(1090,840)" to="(1100,840)"/>
- <wire from="(1190,710)" to="(1190,750)"/>
- <wire from="(1190,750)" to="(1270,750)"/>
- <wire from="(1200,670)" to="(1230,670)"/>
- <wire from="(1230,670)" to="(1230,700)"/>
- <wire from="(1230,670)" to="(1240,670)"/>
- <wire from="(1230,720)" to="(1230,1220)"/>
- <wire from="(1240,710)" to="(1270,710)"/>
- <wire from="(1270,710)" to="(1270,750)"/>
- <wire from="(1270,750)" to="(1310,750)"/>
- <wire from="(130,440)" to="(130,560)"/>
- <wire from="(130,560)" to="(130,570)"/>
- <wire from="(130,560)" to="(190,560)"/>
- <wire from="(150,440)" to="(150,530)"/>
- <wire from="(150,530)" to="(170,530)"/>
- <wire from="(190,1320)" to="(240,1320)"/>
- <wire from="(190,550)" to="(190,560)"/>
- <wire from="(190,930)" to="(190,1320)"/>
- <wire from="(190,930)" to="(270,930)"/>
- <wire from="(200,1240)" to="(230,1240)"/>
- <wire from="(200,520)" to="(230,520)"/>
- <wire from="(200,540)" to="(210,540)"/>
- <wire from="(200,880)" to="(200,1240)"/>
- <wire from="(200,880)" to="(270,880)"/>
- <wire from="(210,1290)" to="(210,1480)"/>
- <wire from="(210,1290)" to="(250,1290)"/>
- <wire from="(210,1480)" to="(250,1480)"/>
- <wire from="(210,540)" to="(210,1290)"/>
- <wire from="(250,1280)" to="(250,1290)"/>
- <wire from="(250,1470)" to="(250,1480)"/>
- <wire from="(250,530)" to="(280,530)"/>
- <wire from="(250,540)" to="(290,540)"/>
- <wire from="(250,550)" to="(300,550)"/>
- <wire from="(260,1330)" to="(390,1330)"/>
- <wire from="(270,1200)" to="(390,1200)"/>
- <wire from="(270,1210)" to="(380,1210)"/>
- <wire from="(270,1220)" to="(370,1220)"/>
- <wire from="(270,1390)" to="(400,1390)"/>
- <wire from="(270,1400)" to="(710,1400)"/>
- <wire from="(270,1410)" to="(360,1410)"/>
- <wire from="(280,530)" to="(280,570)"/>
- <wire from="(280,530)" to="(330,530)"/>
- <wire from="(280,570)" to="(280,770)"/>
- <wire from="(280,570)" to="(320,570)"/>
- <wire from="(280,770)" to="(340,770)"/>
- <wire from="(290,540)" to="(290,580)"/>
- <wire from="(290,540)" to="(320,540)"/>
- <wire from="(290,580)" to="(290,760)"/>
- <wire from="(290,580)" to="(330,580)"/>
- <wire from="(290,760)" to="(330,760)"/>
- <wire from="(290,890)" to="(390,890)"/>
- <wire from="(290,900)" to="(640,900)"/>
- <wire from="(290,910)" to="(380,910)"/>
- <wire from="(290,920)" to="(590,920)"/>
- <wire from="(290,940)" to="(400,940)"/>
- <wire from="(290,950)" to="(630,950)"/>
- <wire from="(290,960)" to="(370,960)"/>
- <wire from="(290,970)" to="(580,970)"/>
- <wire from="(300,550)" to="(300,590)"/>
- <wire from="(300,550)" to="(320,550)"/>
- <wire from="(300,590)" to="(300,750)"/>
- <wire from="(300,590)" to="(320,590)"/>
- <wire from="(300,750)" to="(320,750)"/>
- <wire from="(320,1110)" to="(510,1110)"/>
- <wire from="(320,750)" to="(320,1110)"/>
- <wire from="(320,750)" to="(500,750)"/>
- <wire from="(330,1100)" to="(510,1100)"/>
- <wire from="(330,760)" to="(330,1100)"/>
- <wire from="(330,760)" to="(490,760)"/>
- <wire from="(340,1090)" to="(510,1090)"/>
- <wire from="(340,770)" to="(340,1090)"/>
- <wire from="(340,770)" to="(480,770)"/>
- <wire from="(360,1410)" to="(360,1530)"/>
- <wire from="(360,1530)" to="(710,1530)"/>
- <wire from="(360,540)" to="(380,540)"/>
- <wire from="(360,580)" to="(370,580)"/>
- <wire from="(370,1000)" to="(480,1000)"/>
- <wire from="(370,1220)" to="(370,1470)"/>
- <wire from="(370,1470)" to="(450,1470)"/>
- <wire from="(370,560)" to="(370,580)"/>
- <wire from="(370,560)" to="(380,560)"/>
- <wire from="(370,960)" to="(370,1000)"/>
- <wire from="(380,1010)" to="(450,1010)"/>
- <wire from="(380,1210)" to="(380,1340)"/>
- <wire from="(380,1340)" to="(450,1340)"/>
- <wire from="(380,910)" to="(380,1010)"/>
- <wire from="(390,1200)" to="(390,1220)"/>
- <wire from="(390,1220)" to="(450,1220)"/>
- <wire from="(390,1240)" to="(390,1330)"/>
- <wire from="(390,1240)" to="(450,1240)"/>
- <wire from="(390,1330)" to="(390,1360)"/>
- <wire from="(390,1360)" to="(390,1490)"/>
- <wire from="(390,1360)" to="(450,1360)"/>
- <wire from="(390,1490)" to="(450,1490)"/>
- <wire from="(390,610)" to="(390,890)"/>
- <wire from="(390,610)" to="(450,610)"/>
- <wire from="(400,1280)" to="(400,1390)"/>
- <wire from="(400,1280)" to="(710,1280)"/>
- <wire from="(400,600)" to="(400,940)"/>
- <wire from="(400,600)" to="(480,600)"/>
- <wire from="(410,550)" to="(500,550)"/>
- <wire from="(470,1020)" to="(510,1020)"/>
- <wire from="(470,1040)" to="(510,1040)"/>
- <wire from="(470,1060)" to="(510,1060)"/>
- <wire from="(470,1080)" to="(510,1080)"/>
- <wire from="(470,620)" to="(510,620)"/>
- <wire from="(470,640)" to="(510,640)"/>
- <wire from="(470,660)" to="(510,660)"/>
- <wire from="(470,680)" to="(510,680)"/>
- <wire from="(480,690)" to="(480,770)"/>
- <wire from="(480,690)" to="(510,690)"/>
- <wire from="(480,770)" to="(670,770)"/>
- <wire from="(490,700)" to="(490,760)"/>
- <wire from="(490,700)" to="(510,700)"/>
- <wire from="(490,760)" to="(660,760)"/>
- <wire from="(500,1000)" to="(510,1000)"/>
- <wire from="(500,1010)" to="(510,1010)"/>
- <wire from="(500,1030)" to="(510,1030)"/>
- <wire from="(500,1050)" to="(510,1050)"/>
- <wire from="(500,1070)" to="(510,1070)"/>
- <wire from="(500,550)" to="(500,600)"/>
- <wire from="(500,600)" to="(510,600)"/>
- <wire from="(500,610)" to="(510,610)"/>
- <wire from="(500,630)" to="(510,630)"/>
- <wire from="(500,650)" to="(510,650)"/>
- <wire from="(500,670)" to="(510,670)"/>
- <wire from="(500,710)" to="(500,750)"/>
- <wire from="(500,710)" to="(510,710)"/>
- <wire from="(500,750)" to="(650,750)"/>
- <wire from="(500,980)" to="(500,1000)"/>
- <wire from="(500,980)" to="(780,980)"/>
- <wire from="(540,1030)" to="(550,1030)"/>
- <wire from="(540,1040)" to="(550,1040)"/>
- <wire from="(540,1050)" to="(550,1050)"/>
- <wire from="(540,1060)" to="(550,1060)"/>
- <wire from="(540,1080)" to="(560,1080)"/>
- <wire from="(540,630)" to="(550,630)"/>
- <wire from="(540,640)" to="(550,640)"/>
- <wire from="(540,650)" to="(550,650)"/>
- <wire from="(540,660)" to="(550,660)"/>
- <wire from="(540,680)" to="(560,680)"/>
- <wire from="(560,1080)" to="(560,1100)"/>
- <wire from="(560,1100)" to="(640,1100)"/>
- <wire from="(560,680)" to="(560,700)"/>
- <wire from="(560,700)" to="(620,700)"/>
- <wire from="(570,1070)" to="(580,1070)"/>
- <wire from="(570,670)" to="(580,670)"/>
- <wire from="(580,1010)" to="(710,1010)"/>
- <wire from="(580,1030)" to="(580,1070)"/>
- <wire from="(580,1030)" to="(610,1030)"/>
- <wire from="(580,570)" to="(580,670)"/>
- <wire from="(580,570)" to="(900,570)"/>
- <wire from="(580,970)" to="(580,1010)"/>
- <wire from="(590,1020)" to="(680,1020)"/>
- <wire from="(590,920)" to="(590,1020)"/>
- <wire from="(610,960)" to="(610,1030)"/>
- <wire from="(610,960)" to="(800,960)"/>
- <wire from="(620,590)" to="(620,700)"/>
- <wire from="(620,590)" to="(730,590)"/>
- <wire from="(630,600)" to="(630,950)"/>
- <wire from="(630,600)" to="(710,600)"/>
- <wire from="(640,1000)" to="(640,1100)"/>
- <wire from="(640,1000)" to="(730,1000)"/>
- <wire from="(640,610)" to="(640,900)"/>
- <wire from="(640,610)" to="(680,610)"/>
- <wire from="(650,1120)" to="(740,1120)"/>
- <wire from="(650,750)" to="(650,1120)"/>
- <wire from="(650,750)" to="(730,750)"/>
- <wire from="(660,1110)" to="(740,1110)"/>
- <wire from="(660,760)" to="(660,1110)"/>
- <wire from="(660,760)" to="(720,760)"/>
- <wire from="(670,1100)" to="(740,1100)"/>
- <wire from="(670,1220)" to="(700,1220)"/>
- <wire from="(670,1340)" to="(700,1340)"/>
- <wire from="(670,1470)" to="(700,1470)"/>
- <wire from="(670,770)" to="(670,1100)"/>
- <wire from="(670,770)" to="(710,770)"/>
- <wire from="(700,1030)" to="(740,1030)"/>
- <wire from="(700,1050)" to="(740,1050)"/>
- <wire from="(700,1070)" to="(740,1070)"/>
- <wire from="(700,1090)" to="(740,1090)"/>
- <wire from="(700,620)" to="(740,620)"/>
- <wire from="(700,640)" to="(740,640)"/>
- <wire from="(700,660)" to="(740,660)"/>
- <wire from="(700,680)" to="(740,680)"/>
- <wire from="(710,1230)" to="(710,1280)"/>
- <wire from="(710,1350)" to="(710,1400)"/>
- <wire from="(710,1480)" to="(710,1530)"/>
- <wire from="(710,690)" to="(710,770)"/>
- <wire from="(710,690)" to="(740,690)"/>
- <wire from="(720,1220)" to="(740,1220)"/>
- <wire from="(720,1340)" to="(740,1340)"/>
- <wire from="(720,1470)" to="(740,1470)"/>
- <wire from="(720,700)" to="(720,760)"/>
- <wire from="(720,700)" to="(740,700)"/>
- <wire from="(730,1000)" to="(730,1010)"/>
- <wire from="(730,1010)" to="(740,1010)"/>
- <wire from="(730,1020)" to="(740,1020)"/>
- <wire from="(730,1040)" to="(740,1040)"/>
- <wire from="(730,1060)" to="(740,1060)"/>
- <wire from="(730,1080)" to="(740,1080)"/>
- <wire from="(730,590)" to="(730,600)"/>
- <wire from="(730,600)" to="(740,600)"/>
- <wire from="(730,610)" to="(740,610)"/>
- <wire from="(730,630)" to="(740,630)"/>
- <wire from="(730,650)" to="(740,650)"/>
- <wire from="(730,670)" to="(740,670)"/>
- <wire from="(730,710)" to="(730,750)"/>
- <wire from="(730,710)" to="(740,710)"/>
- <wire from="(740,1220)" to="(1230,1220)"/>
- <wire from="(740,1220)" to="(740,1340)"/>
- <wire from="(740,1340)" to="(740,1470)"/>
- <wire from="(770,1040)" to="(780,1040)"/>
- <wire from="(770,1050)" to="(780,1050)"/>
- <wire from="(770,1060)" to="(780,1060)"/>
- <wire from="(770,1070)" to="(780,1070)"/>
- <wire from="(770,1080)" to="(790,1080)"/>
- <wire from="(770,1090)" to="(780,1090)"/>
- <wire from="(770,630)" to="(780,630)"/>
- <wire from="(770,640)" to="(780,640)"/>
- <wire from="(770,650)" to="(780,650)"/>
- <wire from="(770,660)" to="(780,660)"/>
- <wire from="(770,680)" to="(780,680)"/>
- <wire from="(780,1090)" to="(780,1110)"/>
- <wire from="(780,1110)" to="(920,1110)"/>
- <wire from="(780,680)" to="(780,980)"/>
- <wire from="(790,1080)" to="(790,1100)"/>
- <wire from="(790,1100)" to="(890,1100)"/>
- <wire from="(800,1080)" to="(810,1080)"/>
- <wire from="(800,580)" to="(800,670)"/>
- <wire from="(800,580)" to="(900,580)"/>
- <wire from="(800,690)" to="(800,960)"/>
- <wire from="(800,690)" to="(860,690)"/>
- <wire from="(810,700)" to="(810,1080)"/>
- <wire from="(810,700)" to="(870,700)"/>
- <wire from="(860,590)" to="(860,690)"/>
- <wire from="(860,590)" to="(900,590)"/>
- <wire from="(870,600)" to="(870,700)"/>
- <wire from="(870,600)" to="(900,600)"/>
- <wire from="(890,1090)" to="(890,1100)"/>
- <wire from="(920,610)" to="(950,610)"/>
- <wire from="(950,610)" to="(950,670)"/>
- <wire from="(950,670)" to="(1180,670)"/>
- <wire from="(950,670)" to="(950,680)"/>
- <wire from="(950,990)" to="(1060,990)"/>
- <wire from="(960,960)" to="(1050,960)"/>
- <wire from="(970,690)" to="(990,690)"/>
- <wire from="(970,700)" to="(970,780)"/>
- <wire from="(970,780)" to="(990,780)"/>
- </circuit>
- <circuit name="BitShiftRightLogical">
- <a name="appearance" val="logisim_evolution"/>
- <a name="circuit" val="BitShiftRightLogical"/>
- <a name="circuitnamedboxfixedsize" val="true"/>
- <a name="simulationFrequency" val="1.0"/>
- <comp lib="0" loc="(1000,670)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="RESULT"/>
- <a name="output" val="true"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(260,410)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="DATA"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(280,760)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="SHIFT_AMT"/>
- <a name="width" val="4"/>
- </comp>
- <comp lib="0" loc="(280,760)" name="Splitter">
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- </comp>
- <comp lib="0" loc="(350,410)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(370,580)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(370,590)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(370,600)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(370,610)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(370,620)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(370,630)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(370,640)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(370,650)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(390,660)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(520,410)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(540,580)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(540,590)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(540,600)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(540,610)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(560,620)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(680,410)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(700,580)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(700,590)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(720,600)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(850,400)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(870,570)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(890,580)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="2" loc="(470,670)" name="Multiplexer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="2" loc="(650,670)" name="Multiplexer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="2" loc="(810,670)" name="Multiplexer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="2" loc="(980,670)" name="Multiplexer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="8" loc="(340,390)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="d &gt;&gt; 8"/>
- <a name="valign" val="center"/>
- </comp>
- <comp lib="8" loc="(510,390)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="d &gt;&gt; 4"/>
- <a name="valign" val="center"/>
- </comp>
- <comp lib="8" loc="(670,390)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="d &gt;&gt; 2"/>
- <a name="valign" val="center"/>
- </comp>
- <comp lib="8" loc="(840,380)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="d &gt;&gt; 1"/>
- <a name="valign" val="center"/>
- </comp>
- <wire from="(260,410)" to="(350,410)"/>
- <wire from="(300,720)" to="(960,720)"/>
- <wire from="(300,730)" to="(790,730)"/>
- <wire from="(300,740)" to="(630,740)"/>
- <wire from="(300,750)" to="(450,750)"/>
- <wire from="(350,410)" to="(420,410)"/>
- <wire from="(390,660)" to="(390,680)"/>
- <wire from="(390,680)" to="(440,680)"/>
- <wire from="(420,410)" to="(420,660)"/>
- <wire from="(420,660)" to="(440,660)"/>
- <wire from="(450,690)" to="(450,750)"/>
- <wire from="(470,670)" to="(500,670)"/>
- <wire from="(500,410)" to="(500,670)"/>
- <wire from="(500,410)" to="(520,410)"/>
- <wire from="(520,410)" to="(600,410)"/>
- <wire from="(560,620)" to="(560,680)"/>
- <wire from="(560,680)" to="(620,680)"/>
- <wire from="(600,410)" to="(600,660)"/>
- <wire from="(600,660)" to="(620,660)"/>
- <wire from="(630,690)" to="(630,740)"/>
- <wire from="(650,670)" to="(670,670)"/>
- <wire from="(670,410)" to="(670,670)"/>
- <wire from="(670,410)" to="(680,410)"/>
- <wire from="(670,670)" to="(670,680)"/>
- <wire from="(680,410)" to="(760,410)"/>
- <wire from="(720,600)" to="(720,680)"/>
- <wire from="(720,680)" to="(780,680)"/>
- <wire from="(760,410)" to="(760,660)"/>
- <wire from="(760,660)" to="(780,660)"/>
- <wire from="(790,690)" to="(790,730)"/>
- <wire from="(810,670)" to="(840,670)"/>
- <wire from="(840,400)" to="(840,670)"/>
- <wire from="(840,400)" to="(850,400)"/>
- <wire from="(840,670)" to="(840,680)"/>
- <wire from="(850,400)" to="(920,400)"/>
- <wire from="(890,580)" to="(890,680)"/>
- <wire from="(890,680)" to="(950,680)"/>
- <wire from="(920,400)" to="(920,660)"/>
- <wire from="(920,660)" to="(950,660)"/>
- <wire from="(960,690)" to="(960,720)"/>
- <wire from="(980,670)" to="(1000,670)"/>
- </circuit>
- <circuit name="BitShiftLeftLogical">
- <a name="appearance" val="logisim_evolution"/>
- <a name="circuit" val="BitShiftLeftLogical"/>
- <a name="circuitnamedboxfixedsize" val="true"/>
- <a name="simulationFrequency" val="1.0"/>
- <comp lib="0" loc="(1000,670)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="RESULT"/>
- <a name="output" val="true"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(260,410)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="DATA"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(280,760)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="SHIFT_AMT"/>
- <a name="width" val="4"/>
- </comp>
- <comp lib="0" loc="(280,760)" name="Splitter">
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- </comp>
- <comp lib="0" loc="(350,500)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(370,430)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(370,440)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(370,450)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(370,460)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(370,470)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(370,480)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(370,490)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(370,500)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(390,590)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(520,460)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(540,430)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(540,440)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(540,450)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(540,460)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(560,590)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(680,440)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(700,430)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(700,440)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(720,590)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(850,420)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(870,420)" name="Ground">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="0" loc="(890,580)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="2" loc="(470,670)" name="Multiplexer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="2" loc="(650,670)" name="Multiplexer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="2" loc="(810,670)" name="Multiplexer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="2" loc="(980,670)" name="Multiplexer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="8" loc="(340,390)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="d &gt;&gt; 8"/>
- <a name="valign" val="center"/>
- </comp>
- <comp lib="8" loc="(510,390)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="d &gt;&gt; 4"/>
- <a name="valign" val="center"/>
- </comp>
- <comp lib="8" loc="(670,390)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="d &gt;&gt; 2"/>
- <a name="valign" val="center"/>
- </comp>
- <comp lib="8" loc="(840,380)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="d &gt;&gt; 1"/>
- <a name="valign" val="center"/>
- </comp>
- <wire from="(260,410)" to="(350,410)"/>
- <wire from="(300,720)" to="(960,720)"/>
- <wire from="(300,730)" to="(790,730)"/>
- <wire from="(300,740)" to="(630,740)"/>
- <wire from="(300,750)" to="(450,750)"/>
- <wire from="(350,410)" to="(350,500)"/>
- <wire from="(350,410)" to="(420,410)"/>
- <wire from="(390,590)" to="(390,680)"/>
- <wire from="(390,680)" to="(440,680)"/>
- <wire from="(420,410)" to="(420,660)"/>
- <wire from="(420,660)" to="(440,660)"/>
- <wire from="(450,690)" to="(450,750)"/>
- <wire from="(470,670)" to="(500,670)"/>
- <wire from="(500,410)" to="(500,670)"/>
- <wire from="(500,410)" to="(520,410)"/>
- <wire from="(520,410)" to="(520,460)"/>
- <wire from="(520,410)" to="(600,410)"/>
- <wire from="(560,590)" to="(560,680)"/>
- <wire from="(560,680)" to="(620,680)"/>
- <wire from="(600,410)" to="(600,660)"/>
- <wire from="(600,660)" to="(620,660)"/>
- <wire from="(630,690)" to="(630,740)"/>
- <wire from="(650,670)" to="(670,670)"/>
- <wire from="(670,410)" to="(670,670)"/>
- <wire from="(670,410)" to="(680,410)"/>
- <wire from="(670,670)" to="(670,680)"/>
- <wire from="(680,410)" to="(680,440)"/>
- <wire from="(680,410)" to="(760,410)"/>
- <wire from="(720,590)" to="(720,680)"/>
- <wire from="(720,680)" to="(780,680)"/>
- <wire from="(760,410)" to="(760,660)"/>
- <wire from="(760,660)" to="(780,660)"/>
- <wire from="(790,690)" to="(790,730)"/>
- <wire from="(810,670)" to="(840,670)"/>
- <wire from="(840,400)" to="(840,670)"/>
- <wire from="(840,400)" to="(850,400)"/>
- <wire from="(840,670)" to="(840,680)"/>
- <wire from="(850,400)" to="(850,420)"/>
- <wire from="(850,400)" to="(920,400)"/>
- <wire from="(890,580)" to="(890,680)"/>
- <wire from="(890,680)" to="(950,680)"/>
- <wire from="(920,400)" to="(920,660)"/>
- <wire from="(920,660)" to="(950,660)"/>
- <wire from="(960,690)" to="(960,720)"/>
- <wire from="(980,670)" to="(1000,670)"/>
- </circuit>
- <circuit name="BitShiftRightArithmetic">
- <a name="appearance" val="logisim_evolution"/>
- <a name="circuit" val="BitShiftRightArithmetic"/>
- <a name="circuitnamedboxfixedsize" val="true"/>
- <a name="simulationFrequency" val="1.0"/>
- <comp lib="0" loc="(1000,670)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="RESULT"/>
- <a name="output" val="true"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(260,410)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="DATA"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(280,760)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="SHIFT_AMT"/>
- <a name="width" val="4"/>
- </comp>
- <comp lib="0" loc="(280,760)" name="Splitter">
- <a name="fanout" val="4"/>
- <a name="incoming" val="4"/>
- </comp>
- <comp lib="0" loc="(350,410)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(390,660)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(520,410)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(560,620)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(680,410)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(720,600)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(850,400)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(890,580)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="2" loc="(470,670)" name="Multiplexer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="2" loc="(650,670)" name="Multiplexer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="2" loc="(810,670)" name="Multiplexer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="2" loc="(980,670)" name="Multiplexer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="8" loc="(340,390)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="d &gt;&gt; 8"/>
- <a name="valign" val="center"/>
- </comp>
- <comp lib="8" loc="(510,390)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="d &gt;&gt; 4"/>
- <a name="valign" val="center"/>
- </comp>
- <comp lib="8" loc="(670,390)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="d &gt;&gt; 2"/>
- <a name="valign" val="center"/>
- </comp>
- <comp lib="8" loc="(840,380)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="halign" val="left"/>
- <a name="text" val="d &gt;&gt; 1"/>
- <a name="valign" val="center"/>
- </comp>
- <wire from="(260,410)" to="(350,410)"/>
- <wire from="(300,720)" to="(960,720)"/>
- <wire from="(300,730)" to="(790,730)"/>
- <wire from="(300,740)" to="(630,740)"/>
- <wire from="(300,750)" to="(450,750)"/>
- <wire from="(350,410)" to="(420,410)"/>
- <wire from="(370,570)" to="(370,580)"/>
- <wire from="(370,580)" to="(370,590)"/>
- <wire from="(370,590)" to="(370,600)"/>
- <wire from="(370,600)" to="(370,610)"/>
- <wire from="(370,610)" to="(370,620)"/>
- <wire from="(370,620)" to="(370,630)"/>
- <wire from="(370,630)" to="(370,640)"/>
- <wire from="(370,640)" to="(370,650)"/>
- <wire from="(390,660)" to="(390,680)"/>
- <wire from="(390,680)" to="(440,680)"/>
- <wire from="(420,410)" to="(420,660)"/>
- <wire from="(420,660)" to="(440,660)"/>
- <wire from="(450,690)" to="(450,750)"/>
- <wire from="(470,670)" to="(500,670)"/>
- <wire from="(500,410)" to="(500,670)"/>
- <wire from="(500,410)" to="(520,410)"/>
- <wire from="(520,410)" to="(600,410)"/>
- <wire from="(540,570)" to="(540,580)"/>
- <wire from="(540,580)" to="(540,590)"/>
- <wire from="(540,590)" to="(540,600)"/>
- <wire from="(540,600)" to="(540,610)"/>
- <wire from="(560,620)" to="(560,680)"/>
- <wire from="(560,680)" to="(620,680)"/>
- <wire from="(600,410)" to="(600,660)"/>
- <wire from="(600,660)" to="(620,660)"/>
- <wire from="(630,690)" to="(630,740)"/>
- <wire from="(650,670)" to="(670,670)"/>
- <wire from="(670,410)" to="(670,670)"/>
- <wire from="(670,410)" to="(680,410)"/>
- <wire from="(670,670)" to="(670,680)"/>
- <wire from="(680,410)" to="(760,410)"/>
- <wire from="(700,570)" to="(700,580)"/>
- <wire from="(700,580)" to="(700,590)"/>
- <wire from="(720,600)" to="(720,680)"/>
- <wire from="(720,680)" to="(780,680)"/>
- <wire from="(760,410)" to="(760,660)"/>
- <wire from="(760,660)" to="(780,660)"/>
- <wire from="(790,690)" to="(790,730)"/>
- <wire from="(810,670)" to="(840,670)"/>
- <wire from="(840,400)" to="(840,670)"/>
- <wire from="(840,400)" to="(850,400)"/>
- <wire from="(840,670)" to="(840,680)"/>
- <wire from="(850,400)" to="(920,400)"/>
- <wire from="(870,560)" to="(870,570)"/>
- <wire from="(890,580)" to="(890,680)"/>
- <wire from="(890,680)" to="(950,680)"/>
- <wire from="(920,400)" to="(920,660)"/>
- <wire from="(920,660)" to="(950,660)"/>
- <wire from="(960,690)" to="(960,720)"/>
- <wire from="(980,670)" to="(1000,670)"/>
- </circuit>
- <circuit name="IC_74382">
- <a name="circuit" val="IC_74382"/>
- <a name="circuitnamedboxfixedsize" val="true"/>
- <a name="simulationFrequency" val="1.0"/>
- <comp lib="0" loc="(1160,650)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="facing" val="west"/>
- <a name="label" val="F1"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- <a name="output" val="true"/>
- <a name="tristate" val="true"/>
- </comp>
- <comp lib="0" loc="(1240,1430)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="label" val="A1"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- </comp>
- <comp lib="0" loc="(1350,1430)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="label" val="B2"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- </comp>
- <comp lib="0" loc="(1620,650)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="facing" val="west"/>
- <a name="label" val="F2"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- <a name="output" val="true"/>
- <a name="tristate" val="true"/>
- </comp>
- <comp lib="0" loc="(1700,1430)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="label" val="A2"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- </comp>
- <comp lib="0" loc="(1810,1430)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="label" val="B3"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- </comp>
- <comp lib="0" loc="(2080,650)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="facing" val="west"/>
- <a name="label" val="F3"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- <a name="output" val="true"/>
- <a name="tristate" val="true"/>
- </comp>
- <comp lib="0" loc="(2160,1430)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="label" val="A3"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- </comp>
- <comp lib="0" loc="(2320,1460)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="label" val="S0"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- </comp>
- <comp lib="0" loc="(2370,650)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="facing" val="west"/>
- <a name="label" val="OVR"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- <a name="output" val="true"/>
- <a name="tristate" val="true"/>
- </comp>
- <comp lib="0" loc="(2420,1460)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="label" val="S1"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- </comp>
- <comp lib="0" loc="(2420,650)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="facing" val="west"/>
- <a name="label" val="Cn_4_09724fe9"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- <a name="output" val="true"/>
- <a name="tristate" val="true"/>
- </comp>
- <comp lib="0" loc="(2520,1460)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="label" val="S2"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- </comp>
- <comp lib="0" loc="(370,1430)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="label" val="Cn"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- </comp>
- <comp lib="0" loc="(430,1430)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="label" val="B0"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- </comp>
- <comp lib="0" loc="(700,650)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="facing" val="west"/>
- <a name="label" val="F0"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- <a name="output" val="true"/>
- <a name="tristate" val="true"/>
- </comp>
- <comp lib="0" loc="(780,1430)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="label" val="A0"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- </comp>
- <comp lib="0" loc="(890,1430)" name="Pin">
- <a name="appearance" val="classic"/>
- <a name="label" val="B1"/>
- <a name="labelfont" val="SansSerif plain 12"/>
- </comp>
- <comp lib="1" loc="(1030,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1090,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1100,870)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1120,1380)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(1120,780)" name="NOR Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1140,870)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1150,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1160,700)" name="XOR Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1170,1120)" name="NOR Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1210,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1270,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1370,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1400,1380)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(1430,1120)" name="NOR Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1430,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1490,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1490,870)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1550,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1550,780)" name="NOR Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1550,870)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1580,1380)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(1600,870)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1610,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1620,700)" name="XOR Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1630,1120)" name="NOR Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1670,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1730,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1830,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1850,870)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1860,1380)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(1890,1120)" name="NOR Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1890,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1910,870)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1930,780)" name="NOR Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1950,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(1970,870)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2010,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2020,870)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2040,1380)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(2070,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2080,700)" name="XOR Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2090,1120)" name="NOR Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2130,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2170,860)" name="NAND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2190,1090)" name="NOR Gate">
- <a name="facing" val="west"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2190,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2230,870)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2250,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2290,870)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2300,790)" name="NOR Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2320,1420)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(2330,1140)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2340,870)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2350,1210)" name="NAND Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2360,1310)" name="NAND Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2370,710)" name="XOR Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2380,770)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2380,870)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2390,1200)" name="NAND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2390,1380)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(2420,1110)" name="NOR Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2420,1420)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(2420,760)" name="NAND Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2430,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2430,860)" name="NAND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2450,1310)" name="NAND Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(2490,1380)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(2520,1420)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(2540,1380)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(450,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(480,1380)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(510,1120)" name="NOR Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(510,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(570,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(630,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(660,1380)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(660,780)" name="NAND Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(690,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(700,700)" name="XOR Gate">
- <a name="facing" val="north"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(710,1120)" name="NOR Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(750,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(810,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(910,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(940,1380)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(970,1120)" name="NOR Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="3"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="1" loc="(970,1200)" name="AND Gate">
- <a name="facing" val="north"/>
- <a name="inputs" val="5"/>
- <a name="size" val="30"/>
- </comp>
- <comp lib="8" loc="(2260,635)" name="Text">
- <a name="font" val="SansSerif plain 12"/>
- <a name="text" val="P G 74381 "/>
- </comp>
- <wire from="(1010,1230)" to="(1020,1230)"/>
- <wire from="(1020,1230)" to="(1020,1270)"/>
- <wire from="(1020,1270)" to="(1140,1270)"/>
- <wire from="(1030,1180)" to="(1030,1200)"/>
- <wire from="(1030,1230)" to="(1030,1250)"/>
- <wire from="(1030,1250)" to="(1100,1250)"/>
- <wire from="(1040,1230)" to="(1040,1290)"/>
- <wire from="(1040,1290)" to="(1220,1290)"/>
- <wire from="(1050,1230)" to="(1050,1310)"/>
- <wire from="(1050,1310)" to="(1070,1310)"/>
- <wire from="(1070,1230)" to="(1070,1310)"/>
- <wire from="(1070,1310)" to="(1120,1310)"/>
- <wire from="(1080,1230)" to="(1080,1300)"/>
- <wire from="(1080,1300)" to="(1160,1300)"/>
- <wire from="(1090,1170)" to="(1090,1200)"/>
- <wire from="(1090,1170)" to="(1160,1170)"/>
- <wire from="(1090,1230)" to="(1090,1280)"/>
- <wire from="(1090,1280)" to="(1260,1280)"/>
- <wire from="(1090,900)" to="(1090,910)"/>
- <wire from="(1090,910)" to="(1480,910)"/>
- <wire from="(1100,1230)" to="(1100,1250)"/>
- <wire from="(1100,1250)" to="(1270,1250)"/>
- <wire from="(1100,840)" to="(1100,870)"/>
- <wire from="(1100,840)" to="(1110,840)"/>
- <wire from="(1100,900)" to="(1100,920)"/>
- <wire from="(1100,920)" to="(1130,920)"/>
- <wire from="(1110,1090)" to="(1150,1090)"/>
- <wire from="(1110,1230)" to="(1110,1240)"/>
- <wire from="(1110,1240)" to="(1570,1240)"/>
- <wire from="(1110,820)" to="(1110,840)"/>
- <wire from="(1110,900)" to="(1110,1090)"/>
- <wire from="(1120,1310)" to="(1120,1380)"/>
- <wire from="(1120,1310)" to="(1230,1310)"/>
- <wire from="(1120,1400)" to="(1120,1410)"/>
- <wire from="(1120,1410)" to="(1240,1410)"/>
- <wire from="(1120,770)" to="(1120,780)"/>
- <wire from="(1120,770)" to="(1150,770)"/>
- <wire from="(1130,1230)" to="(1140,1230)"/>
- <wire from="(1130,820)" to="(1130,840)"/>
- <wire from="(1130,840)" to="(1140,840)"/>
- <wire from="(1130,900)" to="(1130,920)"/>
- <wire from="(1130,920)" to="(1490,920)"/>
- <wire from="(1140,1230)" to="(1140,1270)"/>
- <wire from="(1140,1270)" to="(1200,1270)"/>
- <wire from="(1140,840)" to="(1140,870)"/>
- <wire from="(1140,900)" to="(1140,960)"/>
- <wire from="(1140,960)" to="(1560,960)"/>
- <wire from="(1150,1090)" to="(1510,1090)"/>
- <wire from="(1150,1160)" to="(1160,1160)"/>
- <wire from="(1150,1180)" to="(1150,1200)"/>
- <wire from="(1150,1180)" to="(1170,1180)"/>
- <wire from="(1150,1230)" to="(1150,1260)"/>
- <wire from="(1150,1260)" to="(1210,1260)"/>
- <wire from="(1150,740)" to="(1150,770)"/>
- <wire from="(1150,900)" to="(1150,1090)"/>
- <wire from="(1160,1160)" to="(1160,1170)"/>
- <wire from="(1160,1230)" to="(1160,1300)"/>
- <wire from="(1160,650)" to="(1160,700)"/>
- <wire from="(1170,1160)" to="(1170,1180)"/>
- <wire from="(1170,1230)" to="(1170,1320)"/>
- <wire from="(1170,1320)" to="(1240,1320)"/>
- <wire from="(1170,740)" to="(1170,970)"/>
- <wire from="(1170,970)" to="(1170,1120)"/>
- <wire from="(1170,970)" to="(1600,970)"/>
- <wire from="(1180,1160)" to="(1180,1180)"/>
- <wire from="(1180,1180)" to="(1210,1180)"/>
- <wire from="(1190,1160)" to="(1190,1170)"/>
- <wire from="(1190,1170)" to="(1270,1170)"/>
- <wire from="(1190,1230)" to="(1200,1230)"/>
- <wire from="(1200,1230)" to="(1200,1270)"/>
- <wire from="(1200,1270)" to="(1390,1270)"/>
- <wire from="(1210,1180)" to="(1210,1200)"/>
- <wire from="(1210,1230)" to="(1210,1260)"/>
- <wire from="(1210,1260)" to="(1380,1260)"/>
- <wire from="(1220,1230)" to="(1220,1290)"/>
- <wire from="(1220,1290)" to="(1280,1290)"/>
- <wire from="(1230,1230)" to="(1230,1310)"/>
- <wire from="(1240,1320)" to="(1240,1410)"/>
- <wire from="(1240,1320)" to="(1290,1320)"/>
- <wire from="(1240,1410)" to="(1240,1430)"/>
- <wire from="(1250,1230)" to="(1260,1230)"/>
- <wire from="(1260,1230)" to="(1260,1280)"/>
- <wire from="(1260,1280)" to="(1410,1280)"/>
- <wire from="(1270,1170)" to="(1270,1200)"/>
- <wire from="(1270,1230)" to="(1270,1250)"/>
- <wire from="(1270,1250)" to="(1430,1250)"/>
- <wire from="(1280,1230)" to="(1280,1290)"/>
- <wire from="(1290,1230)" to="(1290,1320)"/>
- <wire from="(1350,1230)" to="(1360,1230)"/>
- <wire from="(1350,1290)" to="(1350,1410)"/>
- <wire from="(1350,1290)" to="(1500,1290)"/>
- <wire from="(1350,1410)" to="(1350,1430)"/>
- <wire from="(1350,1410)" to="(1400,1410)"/>
- <wire from="(1360,1230)" to="(1360,1310)"/>
- <wire from="(1360,1310)" to="(1510,1310)"/>
- <wire from="(1370,1180)" to="(1370,1200)"/>
- <wire from="(1370,1180)" to="(1420,1180)"/>
- <wire from="(1370,1230)" to="(1370,1300)"/>
- <wire from="(1370,1300)" to="(1400,1300)"/>
- <wire from="(1380,1230)" to="(1380,1260)"/>
- <wire from="(1380,1260)" to="(1420,1260)"/>
- <wire from="(1390,1230)" to="(1390,1270)"/>
- <wire from="(1390,1270)" to="(1480,1270)"/>
- <wire from="(1400,1300)" to="(1400,1380)"/>
- <wire from="(1400,1300)" to="(1440,1300)"/>
- <wire from="(1400,1400)" to="(1400,1410)"/>
- <wire from="(1410,1230)" to="(1410,1280)"/>
- <wire from="(1410,1280)" to="(1550,1280)"/>
- <wire from="(1420,1160)" to="(1420,1180)"/>
- <wire from="(1420,1230)" to="(1420,1260)"/>
- <wire from="(1420,1260)" to="(1610,1260)"/>
- <wire from="(1430,1160)" to="(1430,1200)"/>
- <wire from="(1430,1230)" to="(1430,1250)"/>
- <wire from="(1430,1250)" to="(1490,1250)"/>
- <wire from="(1430,940)" to="(1430,1120)"/>
- <wire from="(1430,940)" to="(1860,940)"/>
- <wire from="(1440,1160)" to="(1440,1180)"/>
- <wire from="(1440,1180)" to="(1490,1180)"/>
- <wire from="(1440,1230)" to="(1440,1300)"/>
- <wire from="(1440,1300)" to="(1540,1300)"/>
- <wire from="(1450,1230)" to="(1450,1320)"/>
- <wire from="(1450,1320)" to="(1630,1320)"/>
- <wire from="(1470,1230)" to="(1480,1230)"/>
- <wire from="(1470,900)" to="(1480,900)"/>
- <wire from="(1480,1230)" to="(1480,1270)"/>
- <wire from="(1480,1270)" to="(1600,1270)"/>
- <wire from="(1480,900)" to="(1480,910)"/>
- <wire from="(1480,910)" to="(1830,910)"/>
- <wire from="(1490,1180)" to="(1490,1200)"/>
- <wire from="(1490,1230)" to="(1490,1250)"/>
- <wire from="(1490,1250)" to="(1560,1250)"/>
- <wire from="(1490,840)" to="(1490,870)"/>
- <wire from="(1490,840)" to="(1540,840)"/>
- <wire from="(1490,900)" to="(1490,920)"/>
- <wire from="(1490,920)" to="(1540,920)"/>
- <wire from="(1500,1230)" to="(1500,1290)"/>
- <wire from="(1500,1290)" to="(1680,1290)"/>
- <wire from="(1500,900)" to="(1500,930)"/>
- <wire from="(1500,930)" to="(1550,930)"/>
- <wire from="(1510,1090)" to="(1570,1090)"/>
- <wire from="(1510,1230)" to="(1510,1310)"/>
- <wire from="(1510,1310)" to="(1530,1310)"/>
- <wire from="(1510,900)" to="(1510,1090)"/>
- <wire from="(1530,1230)" to="(1530,1310)"/>
- <wire from="(1530,1310)" to="(1580,1310)"/>
- <wire from="(1530,900)" to="(1540,900)"/>
- <wire from="(1540,1230)" to="(1540,1300)"/>
- <wire from="(1540,1300)" to="(1620,1300)"/>
- <wire from="(1540,820)" to="(1540,840)"/>
- <wire from="(1540,900)" to="(1540,920)"/>
- <wire from="(1540,920)" to="(1840,920)"/>
- <wire from="(1550,1170)" to="(1550,1200)"/>
- <wire from="(1550,1170)" to="(1620,1170)"/>
- <wire from="(1550,1230)" to="(1550,1280)"/>
- <wire from="(1550,1280)" to="(1720,1280)"/>
- <wire from="(1550,770)" to="(1550,780)"/>
- <wire from="(1550,770)" to="(1610,770)"/>
- <wire from="(1550,820)" to="(1550,870)"/>
- <wire from="(1550,900)" to="(1550,930)"/>
- <wire from="(1550,930)" to="(1590,930)"/>
- <wire from="(1560,1230)" to="(1560,1250)"/>
- <wire from="(1560,1250)" to="(1730,1250)"/>
- <wire from="(1560,820)" to="(1560,840)"/>
- <wire from="(1560,840)" to="(1600,840)"/>
- <wire from="(1560,900)" to="(1560,960)"/>
- <wire from="(1560,960)" to="(1920,960)"/>
- <wire from="(1570,1090)" to="(1610,1090)"/>
- <wire from="(1570,1230)" to="(1570,1240)"/>
- <wire from="(1570,1240)" to="(2030,1240)"/>
- <wire from="(1570,900)" to="(1570,1090)"/>
- <wire from="(1580,1310)" to="(1580,1380)"/>
- <wire from="(1580,1310)" to="(1690,1310)"/>
- <wire from="(1580,1400)" to="(1580,1410)"/>
- <wire from="(1580,1410)" to="(1700,1410)"/>
- <wire from="(1590,1230)" to="(1600,1230)"/>
- <wire from="(1590,900)" to="(1590,930)"/>
- <wire from="(1590,930)" to="(1850,930)"/>
- <wire from="(1600,1230)" to="(1600,1270)"/>
- <wire from="(1600,1270)" to="(1660,1270)"/>
- <wire from="(1600,840)" to="(1600,870)"/>
- <wire from="(1600,900)" to="(1600,970)"/>
- <wire from="(1600,970)" to="(1980,970)"/>
- <wire from="(1610,1090)" to="(1870,1090)"/>
- <wire from="(1610,1160)" to="(1620,1160)"/>
- <wire from="(1610,1180)" to="(1610,1200)"/>
- <wire from="(1610,1180)" to="(1630,1180)"/>
- <wire from="(1610,1230)" to="(1610,1260)"/>
- <wire from="(1610,1260)" to="(1670,1260)"/>
- <wire from="(1610,740)" to="(1610,770)"/>
- <wire from="(1610,900)" to="(1610,1090)"/>
- <wire from="(1620,1160)" to="(1620,1170)"/>
- <wire from="(1620,1230)" to="(1620,1300)"/>
- <wire from="(1620,650)" to="(1620,700)"/>
- <wire from="(1630,1160)" to="(1630,1180)"/>
- <wire from="(1630,1230)" to="(1630,1320)"/>
- <wire from="(1630,1320)" to="(1700,1320)"/>
- <wire from="(1630,740)" to="(1630,980)"/>
- <wire from="(1630,980)" to="(1630,1120)"/>
- <wire from="(1630,980)" to="(2020,980)"/>
- <wire from="(1640,1160)" to="(1640,1180)"/>
- <wire from="(1640,1180)" to="(1670,1180)"/>
- <wire from="(1650,1160)" to="(1650,1170)"/>
- <wire from="(1650,1170)" to="(1730,1170)"/>
- <wire from="(1650,1230)" to="(1660,1230)"/>
- <wire from="(1660,1230)" to="(1660,1270)"/>
- <wire from="(1660,1270)" to="(1850,1270)"/>
- <wire from="(1670,1180)" to="(1670,1200)"/>
- <wire from="(1670,1230)" to="(1670,1260)"/>
- <wire from="(1670,1260)" to="(1840,1260)"/>
- <wire from="(1680,1230)" to="(1680,1290)"/>
- <wire from="(1680,1290)" to="(1740,1290)"/>
- <wire from="(1690,1230)" to="(1690,1310)"/>
- <wire from="(1700,1320)" to="(1700,1410)"/>
- <wire from="(1700,1320)" to="(1750,1320)"/>
- <wire from="(1700,1410)" to="(1700,1430)"/>
- <wire from="(1710,1230)" to="(1720,1230)"/>
- <wire from="(1720,1230)" to="(1720,1280)"/>
- <wire from="(1720,1280)" to="(1870,1280)"/>
- <wire from="(1730,1170)" to="(1730,1200)"/>
- <wire from="(1730,1230)" to="(1730,1250)"/>
- <wire from="(1730,1250)" to="(1890,1250)"/>
- <wire from="(1740,1230)" to="(1740,1290)"/>
- <wire from="(1750,1230)" to="(1750,1320)"/>
- <wire from="(1810,1230)" to="(1820,1230)"/>
- <wire from="(1810,1290)" to="(1810,1410)"/>
- <wire from="(1810,1290)" to="(1960,1290)"/>
- <wire from="(1810,1410)" to="(1810,1430)"/>
- <wire from="(1810,1410)" to="(1860,1410)"/>
- <wire from="(1820,1230)" to="(1820,1310)"/>
- <wire from="(1820,1310)" to="(1970,1310)"/>
- <wire from="(1830,1180)" to="(1830,1200)"/>
- <wire from="(1830,1180)" to="(1880,1180)"/>
- <wire from="(1830,1230)" to="(1830,1300)"/>
- <wire from="(1830,1300)" to="(1860,1300)"/>
- <wire from="(1830,900)" to="(1830,910)"/>
- <wire from="(1830,910)" to="(2410,910)"/>
- <wire from="(1840,1230)" to="(1840,1260)"/>
- <wire from="(1840,1260)" to="(1880,1260)"/>
- <wire from="(1840,900)" to="(1840,920)"/>
- <wire from="(1840,920)" to="(1890,920)"/>
- <wire from="(1850,1230)" to="(1850,1270)"/>
- <wire from="(1850,1270)" to="(1940,1270)"/>
- <wire from="(1850,830)" to="(1850,870)"/>
- <wire from="(1850,830)" to="(1920,830)"/>
- <wire from="(1850,900)" to="(1850,930)"/>
- <wire from="(1850,930)" to="(1900,930)"/>
- <wire from="(1860,1300)" to="(1860,1380)"/>
- <wire from="(1860,1300)" to="(1900,1300)"/>
- <wire from="(1860,1400)" to="(1860,1410)"/>
- <wire from="(1860,900)" to="(1860,940)"/>
- <wire from="(1860,940)" to="(1910,940)"/>
- <wire from="(1870,1090)" to="(1930,1090)"/>
- <wire from="(1870,1230)" to="(1870,1280)"/>
- <wire from="(1870,1280)" to="(2010,1280)"/>
- <wire from="(1870,900)" to="(1870,1090)"/>
- <wire from="(1880,1160)" to="(1880,1180)"/>
- <wire from="(1880,1230)" to="(1880,1260)"/>
- <wire from="(1880,1260)" to="(2070,1260)"/>
- <wire from="(1890,1160)" to="(1890,1200)"/>
- <wire from="(1890,1230)" to="(1890,1250)"/>
- <wire from="(1890,1250)" to="(1950,1250)"/>
- <wire from="(1890,900)" to="(1890,920)"/>
- <wire from="(1890,920)" to="(2160,920)"/>
- <wire from="(1890,950)" to="(1890,1120)"/>
- <wire from="(1890,950)" to="(2190,950)"/>
- <wire from="(1900,1160)" to="(1900,1180)"/>
- <wire from="(1900,1180)" to="(1950,1180)"/>
- <wire from="(1900,1230)" to="(1900,1300)"/>
- <wire from="(1900,1300)" to="(2000,1300)"/>
- <wire from="(1900,900)" to="(1900,930)"/>
- <wire from="(1900,930)" to="(1960,930)"/>
- <wire from="(1910,1230)" to="(1910,1320)"/>
- <wire from="(1910,1320)" to="(2090,1320)"/>
- <wire from="(1910,820)" to="(1920,820)"/>
- <wire from="(1910,840)" to="(1910,870)"/>
- <wire from="(1910,840)" to="(1930,840)"/>
- <wire from="(1910,900)" to="(1910,940)"/>
- <wire from="(1910,940)" to="(1970,940)"/>
- <wire from="(1920,820)" to="(1920,830)"/>
- <wire from="(1920,900)" to="(1920,960)"/>
- <wire from="(1920,960)" to="(2250,960)"/>
- <wire from="(1930,1090)" to="(1990,1090)"/>
- <wire from="(1930,1230)" to="(1940,1230)"/>
- <wire from="(1930,770)" to="(1930,780)"/>
- <wire from="(1930,770)" to="(2070,770)"/>
- <wire from="(1930,820)" to="(1930,840)"/>
- <wire from="(1930,900)" to="(1930,1090)"/>
- <wire from="(1940,1230)" to="(1940,1270)"/>
- <wire from="(1940,1270)" to="(2060,1270)"/>
- <wire from="(1940,820)" to="(1940,840)"/>
- <wire from="(1940,840)" to="(1970,840)"/>
- <wire from="(1950,1180)" to="(1950,1200)"/>
- <wire from="(1950,1230)" to="(1950,1250)"/>
- <wire from="(1950,1250)" to="(2020,1250)"/>
- <wire from="(1950,820)" to="(1950,830)"/>
- <wire from="(1950,830)" to="(2020,830)"/>
- <wire from="(1950,900)" to="(1960,900)"/>
- <wire from="(1960,1230)" to="(1960,1290)"/>
- <wire from="(1960,1290)" to="(2140,1290)"/>
- <wire from="(1960,900)" to="(1960,930)"/>
- <wire from="(1960,930)" to="(2170,930)"/>
- <wire from="(1970,1230)" to="(1970,1310)"/>
- <wire from="(1970,1310)" to="(1990,1310)"/>
- <wire from="(1970,840)" to="(1970,870)"/>
- <wire from="(1970,900)" to="(1970,940)"/>
- <wire from="(1970,940)" to="(2010,940)"/>
- <wire from="(1980,900)" to="(1980,970)"/>
- <wire from="(1980,970)" to="(2310,970)"/>
- <wire from="(1990,1090)" to="(2030,1090)"/>
- <wire from="(1990,1230)" to="(1990,1310)"/>
- <wire from="(1990,1310)" to="(2040,1310)"/>
- <wire from="(1990,900)" to="(1990,1090)"/>
- <wire from="(2000,1230)" to="(2000,1300)"/>
- <wire from="(2000,1300)" to="(2080,1300)"/>
- <wire from="(2010,1170)" to="(2010,1200)"/>
- <wire from="(2010,1170)" to="(2080,1170)"/>
- <wire from="(2010,1230)" to="(2010,1280)"/>
- <wire from="(2010,1280)" to="(2180,1280)"/>
- <wire from="(2010,900)" to="(2010,940)"/>
- <wire from="(2010,940)" to="(2180,940)"/>
- <wire from="(2020,1230)" to="(2020,1250)"/>
- <wire from="(2020,1250)" to="(2190,1250)"/>
- <wire from="(2020,830)" to="(2020,870)"/>
- <wire from="(2020,900)" to="(2020,980)"/>
- <wire from="(2020,980)" to="(2350,980)"/>
- <wire from="(2030,1090)" to="(2190,1090)"/>
- <wire from="(2030,1230)" to="(2030,1240)"/>
- <wire from="(2030,1240)" to="(2290,1240)"/>
- <wire from="(2030,900)" to="(2030,1090)"/>
- <wire from="(2040,1310)" to="(2040,1380)"/>
- <wire from="(2040,1310)" to="(2150,1310)"/>
- <wire from="(2040,1400)" to="(2040,1410)"/>
- <wire from="(2040,1410)" to="(2160,1410)"/>
- <wire from="(2050,1230)" to="(2060,1230)"/>
- <wire from="(2060,1230)" to="(2060,1270)"/>
- <wire from="(2060,1270)" to="(2120,1270)"/>
- <wire from="(2070,1160)" to="(2080,1160)"/>
- <wire from="(2070,1180)" to="(2070,1200)"/>
- <wire from="(2070,1180)" to="(2090,1180)"/>
- <wire from="(2070,1230)" to="(2070,1260)"/>
- <wire from="(2070,1260)" to="(2130,1260)"/>
- <wire from="(2070,740)" to="(2070,760)"/>
- <wire from="(2070,760)" to="(2070,770)"/>
- <wire from="(2070,760)" to="(2360,760)"/>
- <wire from="(2080,1160)" to="(2080,1170)"/>
- <wire from="(2080,1230)" to="(2080,1300)"/>
- <wire from="(2080,650)" to="(2080,700)"/>
- <wire from="(2090,1160)" to="(2090,1180)"/>
- <wire from="(2090,1230)" to="(2090,1320)"/>
- <wire from="(2090,1320)" to="(2160,1320)"/>
- <wire from="(2090,740)" to="(2090,990)"/>
- <wire from="(2090,990)" to="(2090,1120)"/>
- <wire from="(2090,990)" to="(2390,990)"/>
- <wire from="(2100,1160)" to="(2100,1180)"/>
- <wire from="(2100,1180)" to="(2130,1180)"/>
- <wire from="(2110,1160)" to="(2110,1170)"/>
- <wire from="(2110,1170)" to="(2190,1170)"/>
- <wire from="(2110,1230)" to="(2120,1230)"/>
- <wire from="(2120,1230)" to="(2120,1270)"/>
- <wire from="(2120,1270)" to="(2450,1270)"/>
- <wire from="(2130,1180)" to="(2130,1200)"/>
- <wire from="(2130,1230)" to="(2130,1260)"/>
- <wire from="(2130,1260)" to="(2310,1260)"/>
- <wire from="(2140,1230)" to="(2140,1290)"/>
- <wire from="(2140,1290)" to="(2200,1290)"/>
- <wire from="(2150,1230)" to="(2150,1310)"/>
- <wire from="(2150,900)" to="(2160,900)"/>
- <wire from="(2160,1320)" to="(2160,1410)"/>
- <wire from="(2160,1320)" to="(2210,1320)"/>
- <wire from="(2160,1410)" to="(2160,1430)"/>
- <wire from="(2160,900)" to="(2160,920)"/>
- <wire from="(2160,920)" to="(2210,920)"/>
- <wire from="(2170,1230)" to="(2180,1230)"/>
- <wire from="(2170,650)" to="(2170,860)"/>
- <wire from="(2170,900)" to="(2170,930)"/>
- <wire from="(2170,930)" to="(2220,930)"/>
- <wire from="(2180,1230)" to="(2180,1280)"/>
- <wire from="(2180,1280)" to="(2360,1280)"/>
- <wire from="(2180,900)" to="(2180,940)"/>
- <wire from="(2180,940)" to="(2230,940)"/>
- <wire from="(2190,1170)" to="(2190,1200)"/>
- <wire from="(2190,1230)" to="(2190,1250)"/>
- <wire from="(2190,1250)" to="(2300,1250)"/>
- <wire from="(2190,900)" to="(2190,950)"/>
- <wire from="(2190,950)" to="(2240,950)"/>
- <wire from="(2200,1230)" to="(2200,1290)"/>
- <wire from="(2210,1230)" to="(2210,1320)"/>
- <wire from="(2210,900)" to="(2210,920)"/>
- <wire from="(2210,920)" to="(2420,920)"/>
- <wire from="(2220,900)" to="(2220,930)"/>
- <wire from="(2220,930)" to="(2280,930)"/>
- <wire from="(2230,1080)" to="(2460,1080)"/>
- <wire from="(2230,1100)" to="(2250,1100)"/>
- <wire from="(2230,840)" to="(2230,870)"/>
- <wire from="(2230,840)" to="(2290,840)"/>
- <wire from="(2230,900)" to="(2230,940)"/>
- <wire from="(2230,940)" to="(2290,940)"/>
- <wire from="(2240,1230)" to="(2240,1380)"/>
- <wire from="(2240,1380)" to="(2320,1380)"/>
- <wire from="(2240,900)" to="(2240,950)"/>
- <wire from="(2240,950)" to="(2300,950)"/>
- <wire from="(2250,1100)" to="(2250,1200)"/>
- <wire from="(2250,900)" to="(2250,960)"/>
- <wire from="(2260,1230)" to="(2260,1290)"/>
- <wire from="(2260,1290)" to="(2420,1290)"/>
- <wire from="(2270,900)" to="(2280,900)"/>
- <wire from="(2280,830)" to="(2290,830)"/>
- <wire from="(2280,900)" to="(2280,930)"/>
- <wire from="(2280,930)" to="(2430,930)"/>
- <wire from="(2290,1100)" to="(2290,1240)"/>
- <wire from="(2290,1100)" to="(2420,1100)"/>
- <wire from="(2290,830)" to="(2290,840)"/>
- <wire from="(2290,850)" to="(2290,870)"/>
- <wire from="(2290,850)" to="(2300,850)"/>
- <wire from="(2290,900)" to="(2290,940)"/>
- <wire from="(2290,940)" to="(2330,940)"/>
- <wire from="(2300,1190)" to="(2300,1250)"/>
- <wire from="(2300,1190)" to="(2390,1190)"/>
- <wire from="(2300,650)" to="(2300,780)"/>
- <wire from="(2300,780)" to="(2300,790)"/>
- <wire from="(2300,780)" to="(2340,780)"/>
- <wire from="(2300,830)" to="(2300,850)"/>
- <wire from="(2300,900)" to="(2300,950)"/>
- <wire from="(2300,950)" to="(2340,950)"/>
- <wire from="(2310,1200)" to="(2310,1260)"/>
- <wire from="(2310,1200)" to="(2350,1200)"/>
- <wire from="(2310,830)" to="(2310,850)"/>
- <wire from="(2310,850)" to="(2340,850)"/>
- <wire from="(2310,900)" to="(2310,970)"/>
- <wire from="(2320,1170)" to="(2320,1260)"/>
- <wire from="(2320,1260)" to="(2320,1360)"/>
- <wire from="(2320,1260)" to="(2340,1260)"/>
- <wire from="(2320,1360)" to="(2320,1380)"/>
- <wire from="(2320,1360)" to="(2350,1360)"/>
- <wire from="(2320,1380)" to="(2320,1410)"/>
- <wire from="(2320,1410)" to="(2320,1420)"/>
- <wire from="(2320,1410)" to="(2390,1410)"/>
- <wire from="(2320,1440)" to="(2320,1460)"/>
- <wire from="(2320,830)" to="(2320,840)"/>
- <wire from="(2320,840)" to="(2380,840)"/>
- <wire from="(2330,1130)" to="(2330,1140)"/>
- <wire from="(2330,1130)" to="(2370,1130)"/>
- <wire from="(2330,900)" to="(2330,940)"/>
- <wire from="(2330,940)" to="(2440,940)"/>
- <wire from="(2340,1170)" to="(2340,1180)"/>
- <wire from="(2340,1180)" to="(2460,1180)"/>
- <wire from="(2340,1250)" to="(2340,1260)"/>
- <wire from="(2340,780)" to="(2340,820)"/>
- <wire from="(2340,820)" to="(2370,820)"/>
- <wire from="(2340,850)" to="(2340,870)"/>
- <wire from="(2340,900)" to="(2340,950)"/>
- <wire from="(2340,950)" to="(2370,950)"/>
- <wire from="(2350,1200)" to="(2350,1210)"/>
- <wire from="(2350,1350)" to="(2350,1360)"/>
- <wire from="(2350,900)" to="(2350,980)"/>
- <wire from="(2360,1250)" to="(2360,1260)"/>
- <wire from="(2360,1260)" to="(2390,1260)"/>
- <wire from="(2360,1280)" to="(2360,1310)"/>
- <wire from="(2360,750)" to="(2360,760)"/>
- <wire from="(2370,1130)" to="(2370,1160)"/>
- <wire from="(2370,1160)" to="(2410,1160)"/>
- <wire from="(2370,1350)" to="(2370,1360)"/>
- <wire from="(2370,1360)" to="(2420,1360)"/>
- <wire from="(2370,650)" to="(2370,710)"/>
- <wire from="(2370,800)" to="(2370,820)"/>
- <wire from="(2370,820)" to="(2410,820)"/>
- <wire from="(2370,900)" to="(2370,950)"/>
- <wire from="(2370,950)" to="(2450,950)"/>
- <wire from="(2380,1240)" to="(2380,1310)"/>
- <wire from="(2380,1310)" to="(2390,1310)"/>
- <wire from="(2380,750)" to="(2380,770)"/>
- <wire from="(2380,840)" to="(2380,870)"/>
- <wire from="(2390,1190)" to="(2390,1200)"/>
- <wire from="(2390,1240)" to="(2390,1260)"/>
- <wire from="(2390,1260)" to="(2490,1260)"/>
- <wire from="(2390,1310)" to="(2390,1380)"/>
- <wire from="(2390,1400)" to="(2390,1410)"/>
- <wire from="(2390,800)" to="(2390,830)"/>
- <wire from="(2390,830)" to="(2430,830)"/>
- <wire from="(2390,900)" to="(2390,990)"/>
- <wire from="(2400,1240)" to="(2400,1250)"/>
- <wire from="(2400,1250)" to="(2520,1250)"/>
- <wire from="(2410,1150)" to="(2410,1160)"/>
- <wire from="(2410,800)" to="(2410,820)"/>
- <wire from="(2410,900)" to="(2410,910)"/>
- <wire from="(2420,1100)" to="(2420,1110)"/>
- <wire from="(2420,1230)" to="(2420,1290)"/>
- <wire from="(2420,1290)" to="(2420,1360)"/>
- <wire from="(2420,1360)" to="(2420,1410)"/>
- <wire from="(2420,1360)" to="(2440,1360)"/>
- <wire from="(2420,1410)" to="(2420,1420)"/>
- <wire from="(2420,1410)" to="(2490,1410)"/>
- <wire from="(2420,1440)" to="(2420,1460)"/>
- <wire from="(2420,650)" to="(2420,760)"/>
- <wire from="(2420,900)" to="(2420,920)"/>
- <wire from="(2430,1150)" to="(2430,1200)"/>
- <wire from="(2430,800)" to="(2430,830)"/>
- <wire from="(2430,830)" to="(2430,860)"/>
- <wire from="(2430,900)" to="(2430,930)"/>
- <wire from="(2440,1230)" to="(2440,1240)"/>
- <wire from="(2440,1240)" to="(2540,1240)"/>
- <wire from="(2440,1350)" to="(2440,1360)"/>
- <wire from="(2440,900)" to="(2440,940)"/>
- <wire from="(2450,1270)" to="(2450,1310)"/>
- <wire from="(2450,900)" to="(2450,950)"/>
- <wire from="(2460,1080)" to="(2460,1180)"/>
- <wire from="(2460,1180)" to="(2540,1180)"/>
- <wire from="(2460,1350)" to="(2460,1360)"/>
- <wire from="(2460,1360)" to="(2520,1360)"/>
- <wire from="(2490,1260)" to="(2490,1380)"/>
- <wire from="(2490,1400)" to="(2490,1410)"/>
- <wire from="(2520,1250)" to="(2520,1360)"/>
- <wire from="(2520,1360)" to="(2520,1410)"/>
- <wire from="(2520,1410)" to="(2520,1420)"/>
- <wire from="(2520,1410)" to="(2540,1410)"/>
- <wire from="(2520,1440)" to="(2520,1460)"/>
- <wire from="(2540,1180)" to="(2540,1240)"/>
- <wire from="(2540,1240)" to="(2540,1380)"/>
- <wire from="(2540,1400)" to="(2540,1410)"/>
- <wire from="(370,910)" to="(370,1430)"/>
- <wire from="(370,910)" to="(650,910)"/>
- <wire from="(430,1230)" to="(440,1230)"/>
- <wire from="(430,1290)" to="(430,1410)"/>
- <wire from="(430,1290)" to="(580,1290)"/>
- <wire from="(430,1410)" to="(430,1430)"/>
- <wire from="(430,1410)" to="(480,1410)"/>
- <wire from="(440,1230)" to="(440,1310)"/>
- <wire from="(440,1310)" to="(590,1310)"/>
- <wire from="(450,1180)" to="(450,1200)"/>
- <wire from="(450,1180)" to="(500,1180)"/>
- <wire from="(450,1230)" to="(450,1300)"/>
- <wire from="(450,1300)" to="(480,1300)"/>
- <wire from="(460,1230)" to="(460,1260)"/>
- <wire from="(460,1260)" to="(500,1260)"/>
- <wire from="(470,1230)" to="(470,1270)"/>
- <wire from="(470,1270)" to="(560,1270)"/>
- <wire from="(480,1300)" to="(480,1380)"/>
- <wire from="(480,1300)" to="(520,1300)"/>
- <wire from="(480,1400)" to="(480,1410)"/>
- <wire from="(490,1230)" to="(490,1280)"/>
- <wire from="(490,1280)" to="(630,1280)"/>
- <wire from="(500,1160)" to="(500,1180)"/>
- <wire from="(500,1230)" to="(500,1260)"/>
- <wire from="(500,1260)" to="(690,1260)"/>
- <wire from="(510,1160)" to="(510,1200)"/>
- <wire from="(510,1230)" to="(510,1250)"/>
- <wire from="(510,1250)" to="(570,1250)"/>
- <wire from="(510,920)" to="(1100,920)"/>
- <wire from="(510,920)" to="(510,1120)"/>
- <wire from="(520,1160)" to="(520,1180)"/>
- <wire from="(520,1180)" to="(570,1180)"/>
- <wire from="(520,1230)" to="(520,1300)"/>
- <wire from="(520,1300)" to="(620,1300)"/>
- <wire from="(530,1230)" to="(530,1320)"/>
- <wire from="(530,1320)" to="(710,1320)"/>
- <wire from="(550,1230)" to="(560,1230)"/>
- <wire from="(560,1230)" to="(560,1270)"/>
- <wire from="(560,1270)" to="(680,1270)"/>
- <wire from="(570,1180)" to="(570,1200)"/>
- <wire from="(570,1230)" to="(570,1250)"/>
- <wire from="(570,1250)" to="(640,1250)"/>
- <wire from="(580,1230)" to="(580,1290)"/>
- <wire from="(580,1290)" to="(760,1290)"/>
- <wire from="(590,1230)" to="(590,1310)"/>
- <wire from="(590,1310)" to="(610,1310)"/>
- <wire from="(610,1230)" to="(610,1310)"/>
- <wire from="(610,1310)" to="(660,1310)"/>
- <wire from="(620,1230)" to="(620,1300)"/>
- <wire from="(620,1300)" to="(700,1300)"/>
- <wire from="(630,1170)" to="(630,1200)"/>
- <wire from="(630,1170)" to="(700,1170)"/>
- <wire from="(630,1230)" to="(630,1280)"/>
- <wire from="(630,1280)" to="(800,1280)"/>
- <wire from="(640,1230)" to="(640,1250)"/>
- <wire from="(640,1250)" to="(810,1250)"/>
- <wire from="(650,1230)" to="(650,1240)"/>
- <wire from="(650,1240)" to="(1110,1240)"/>
- <wire from="(650,820)" to="(650,910)"/>
- <wire from="(650,910)" to="(1090,910)"/>
- <wire from="(660,1310)" to="(660,1380)"/>
- <wire from="(660,1310)" to="(770,1310)"/>
- <wire from="(660,1400)" to="(660,1410)"/>
- <wire from="(660,1410)" to="(780,1410)"/>
- <wire from="(660,770)" to="(660,780)"/>
- <wire from="(660,770)" to="(690,770)"/>
- <wire from="(670,1090)" to="(1110,1090)"/>
- <wire from="(670,1230)" to="(680,1230)"/>
- <wire from="(670,820)" to="(670,1090)"/>
- <wire from="(680,1230)" to="(680,1270)"/>
- <wire from="(680,1270)" to="(740,1270)"/>
- <wire from="(690,1160)" to="(700,1160)"/>
- <wire from="(690,1180)" to="(690,1200)"/>
- <wire from="(690,1180)" to="(710,1180)"/>
- <wire from="(690,1230)" to="(690,1260)"/>
- <wire from="(690,1260)" to="(750,1260)"/>
- <wire from="(690,740)" to="(690,770)"/>
- <wire from="(700,1160)" to="(700,1170)"/>
- <wire from="(700,1230)" to="(700,1300)"/>
- <wire from="(700,650)" to="(700,700)"/>
- <wire from="(710,1160)" to="(710,1180)"/>
- <wire from="(710,1230)" to="(710,1320)"/>
- <wire from="(710,1320)" to="(780,1320)"/>
- <wire from="(710,740)" to="(710,960)"/>
- <wire from="(710,960)" to="(1140,960)"/>
- <wire from="(710,960)" to="(710,1120)"/>
- <wire from="(720,1160)" to="(720,1180)"/>
- <wire from="(720,1180)" to="(750,1180)"/>
- <wire from="(730,1160)" to="(730,1170)"/>
- <wire from="(730,1170)" to="(810,1170)"/>
- <wire from="(730,1230)" to="(740,1230)"/>
- <wire from="(740,1230)" to="(740,1270)"/>
- <wire from="(740,1270)" to="(930,1270)"/>
- <wire from="(750,1180)" to="(750,1200)"/>
- <wire from="(750,1230)" to="(750,1260)"/>
- <wire from="(750,1260)" to="(920,1260)"/>
- <wire from="(760,1230)" to="(760,1290)"/>
- <wire from="(760,1290)" to="(820,1290)"/>
- <wire from="(770,1230)" to="(770,1310)"/>
- <wire from="(780,1320)" to="(780,1410)"/>
- <wire from="(780,1320)" to="(830,1320)"/>
- <wire from="(780,1410)" to="(780,1430)"/>
- <wire from="(790,1230)" to="(800,1230)"/>
- <wire from="(800,1230)" to="(800,1280)"/>
- <wire from="(800,1280)" to="(950,1280)"/>
- <wire from="(810,1170)" to="(810,1200)"/>
- <wire from="(810,1230)" to="(810,1250)"/>
- <wire from="(810,1250)" to="(970,1250)"/>
- <wire from="(820,1230)" to="(820,1290)"/>
- <wire from="(830,1230)" to="(830,1320)"/>
- <wire from="(890,1230)" to="(900,1230)"/>
- <wire from="(890,1290)" to="(1040,1290)"/>
- <wire from="(890,1290)" to="(890,1410)"/>
- <wire from="(890,1410)" to="(890,1430)"/>
- <wire from="(890,1410)" to="(940,1410)"/>
- <wire from="(900,1230)" to="(900,1310)"/>
- <wire from="(900,1310)" to="(1050,1310)"/>
- <wire from="(910,1180)" to="(910,1200)"/>
- <wire from="(910,1180)" to="(960,1180)"/>
- <wire from="(910,1230)" to="(910,1300)"/>
- <wire from="(910,1300)" to="(940,1300)"/>
- <wire from="(920,1230)" to="(920,1260)"/>
- <wire from="(920,1260)" to="(960,1260)"/>
- <wire from="(930,1230)" to="(930,1270)"/>
- <wire from="(930,1270)" to="(1020,1270)"/>
- <wire from="(940,1300)" to="(940,1380)"/>
- <wire from="(940,1300)" to="(980,1300)"/>
- <wire from="(940,1400)" to="(940,1410)"/>
- <wire from="(950,1230)" to="(950,1280)"/>
- <wire from="(950,1280)" to="(1090,1280)"/>
- <wire from="(960,1160)" to="(960,1180)"/>
- <wire from="(960,1230)" to="(960,1260)"/>
- <wire from="(960,1260)" to="(1150,1260)"/>
- <wire from="(970,1160)" to="(970,1200)"/>
- <wire from="(970,1230)" to="(970,1250)"/>
- <wire from="(970,1250)" to="(1030,1250)"/>
- <wire from="(970,930)" to="(1500,930)"/>
- <wire from="(970,930)" to="(970,1120)"/>
- <wire from="(980,1160)" to="(980,1180)"/>
- <wire from="(980,1180)" to="(1030,1180)"/>
- <wire from="(980,1230)" to="(980,1300)"/>
- <wire from="(980,1300)" to="(1080,1300)"/>
- <wire from="(990,1230)" to="(990,1320)"/>
- <wire from="(990,1320)" to="(1170,1320)"/>
- </circuit>
- <circuit name="TestBench">
- <a name="appearance" val="logisim_evolution"/>
- <a name="circuit" val="TestBench"/>
- <a name="circuitnamedboxfixedsize" val="true"/>
- <a name="simulationFrequency" val="1.0"/>
- <comp lib="0" loc="(260,820)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="TICK"/>
- <a name="radix" val="10unsigned"/>
- <a name="width" val="8"/>
- </comp>
- <comp lib="0" loc="(260,820)" name="Splitter">
- <a name="fanout" val="8"/>
- <a name="incoming" val="8"/>
- </comp>
- <comp lib="0" loc="(630,820)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="HALT"/>
- <a name="output" val="true"/>
- </comp>
- <comp lib="0" loc="(730,840)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="MEM_OUT"/>
- <a name="output" val="true"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp loc="(630,820)" name="CPU16"/>
- <wire from="(280,740)" to="(410,740)"/>
- <wire from="(410,740)" to="(410,820)"/>
- <wire from="(630,840)" to="(730,840)"/>
- </circuit>
- <circuit name="MemoryModule">
- <a name="appearance" val="logisim_evolution"/>
- <a name="circuit" val="MemoryModule"/>
- <a name="circuitnamedboxfixedsize" val="true"/>
- <a name="simulationFrequency" val="1.0"/>
- <comp lib="0" loc="(1160,200)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="BANK_S"/>
- </comp>
- <comp lib="0" loc="(1170,570)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="BANK_S"/>
- </comp>
- <comp lib="0" loc="(1270,590)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="north"/>
- <a name="label" val="MEM_OE"/>
- </comp>
- <comp lib="0" loc="(1320,560)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="west"/>
- <a name="label" val="BUS_OUT"/>
- <a name="output" val="true"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(510,340)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="BUS_IN"/>
- <a name="radix" val="16"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="0" loc="(620,390)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="CLK"/>
- </comp>
- <comp lib="0" loc="(640,360)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="MAR_IE"/>
- </comp>
- <comp lib="0" loc="(670,410)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="facing" val="north"/>
- <a name="label" val="RESET"/>
- </comp>
- <comp lib="0" loc="(700,340)" name="Splitter">
- <a name="fanout" val="16"/>
- <a name="incoming" val="16"/>
- </comp>
- <comp lib="0" loc="(740,330)" name="Splitter">
- <a name="appear" val="right"/>
- <a name="facing" val="west"/>
- <a name="fanout" val="15"/>
- <a name="incoming" val="15"/>
- </comp>
- <comp lib="0" loc="(760,390)" name="Tunnel">
- <a name="facing" val="north"/>
- <a name="label" val="BANK_S"/>
- </comp>
- <comp lib="0" loc="(830,520)" name="Pin">
- <a name="appearance" val="NewPins"/>
- <a name="label" val="MEM_IE"/>
- </comp>
- <comp lib="0" loc="(860,540)" name="Power">
- <a name="facing" val="west"/>
- </comp>
- <comp lib="1" loc="(1160,160)" name="NOT Gate">
- <a name="facing" val="north"/>
- <a name="size" val="20"/>
- </comp>
- <comp lib="1" loc="(1170,130)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(1180,560)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="1" loc="(1280,560)" name="Controlled Buffer">
- <a name="width" val="16"/>
- </comp>
- <comp lib="2" loc="(770,330)" name="Demultiplexer">
- <a name="width" val="15"/>
- </comp>
- <comp lib="4" loc="(640,310)" name="Register">
- <a name="appearance" val="logisim_evolution"/>
- <a name="label" val="MAR"/>
- <a name="showInTab" val="true"/>
- <a name="trigger" val="high"/>
- <a name="width" val="16"/>
- </comp>
- <comp lib="4" loc="(860,480)" name="RAM">
- <a name="addrWidth" val="15"/>
- <a name="appearance" val="logisim_evolution"/>
- <a name="dataWidth" val="16"/>
- <a name="label" val="MEM_RAM"/>
- <a name="labelvisible" val="true"/>
- <a name="trigger" val="high"/>
- </comp>
- <comp lib="4" loc="(860,70)" name="ROM">
- <a name="addrWidth" val="15"/>
- <a name="appearance" val="logisim_evolution"/>
- <a name="contents">addr/data: 15 16
-4203 5200 8000 420a 4414 29b 4802 2900
-38c0 cb 441e 4812 29a 6500 4202 f000
-4201 f000
-</a>
- <a name="dataWidth" val="16"/>
- <a name="label" val="MEM_ROM"/>
- <a name="labelvisible" val="true"/>
- </comp>
- <comp lib="8" loc="(540,650)" name="Text">
- <a name="font" val="SansSerif plain 16"/>
- <a name="halign" val="left"/>
- <a name="text" val="ROM = 0000 - 7FFF"/>
- <a name="valign" val="center"/>
- </comp>
- <comp lib="8" loc="(540,680)" name="Text">
- <a name="font" val="SansSerif plain 16"/>
- <a name="halign" val="left"/>
- <a name="text" val="RAM = 8000 - FFFF"/>
- <a name="valign" val="center"/>
- </comp>
- <wire from="(1100,130)" to="(1150,130)"/>
- <wire from="(1100,560)" to="(1160,560)"/>
- <wire from="(1160,140)" to="(1160,160)"/>
- <wire from="(1160,180)" to="(1160,200)"/>
- <wire from="(1170,130)" to="(1240,130)"/>
- <wire from="(1180,560)" to="(1240,560)"/>
- <wire from="(1240,130)" to="(1240,560)"/>
- <wire from="(1240,560)" to="(1260,560)"/>
- <wire from="(1270,570)" to="(1270,590)"/>
- <wire from="(1280,560)" to="(1320,560)"/>
- <wire from="(510,340)" to="(530,340)"/>
- <wire from="(530,340)" to="(530,560)"/>
- <wire from="(530,340)" to="(640,340)"/>
- <wire from="(530,560)" to="(860,560)"/>
- <wire from="(620,390)" to="(630,390)"/>
- <wire from="(630,380)" to="(630,390)"/>
- <wire from="(630,380)" to="(640,380)"/>
- <wire from="(670,400)" to="(670,410)"/>
- <wire from="(720,330)" to="(720,380)"/>
- <wire from="(720,380)" to="(760,380)"/>
- <wire from="(740,330)" to="(770,330)"/>
- <wire from="(760,380)" to="(760,390)"/>
- <wire from="(760,380)" to="(790,380)"/>
- <wire from="(790,350)" to="(790,380)"/>
- <wire from="(800,320)" to="(830,320)"/>
- <wire from="(800,340)" to="(860,340)"/>
- <wire from="(830,520)" to="(840,520)"/>
- <wire from="(830,80)" to="(830,320)"/>
- <wire from="(830,80)" to="(860,80)"/>
- <wire from="(840,520)" to="(840,530)"/>
- <wire from="(840,530)" to="(860,530)"/>
- <wire from="(860,340)" to="(860,490)"/>
- </circuit>
-</project>
diff --git a/src/assembler.py b/src/assembler.py
index 7420a04..3a1d39f 100755
--- a/src/assembler.py
+++ b/src/assembler.py
@@ -2,6 +2,10 @@
# Assemble ATK16 assembly to bytecode
import sys
+from typing import Callable
+import importlib
+from assembler_ops import *
+from assembler_eval import *
if len(sys.argv) != 3:
print("usage: assembler.py <infile> <outfile> # read from file")
@@ -43,50 +47,11 @@ def parse(line: str) -> list[str]:
result.append(acc)
return list(filter(lambda x: len(x) > 0, result))
-def eval_expr(expr: str) -> int:
- expr = eval_symbol(expr)
- return eval(expr, labels.copy()) # eval as Python expr
-
-constants: dict[str, str] = {
- # Registers
- "rz": "0",
- "ra": "1",
- "rb": "2",
- "rc": "3",
- "rd": "4",
- "rf": "5",
- "rg": "6",
- # ALU instructions
- "al_plus": "0",
- "al_minus": "1",
- "al_and": "2",
- "al_or": "3",
- "al_xor": "4",
- "al_shift_lr": "5",
- "al_shift_ar": "6",
- "al_shift_ll": "7",
- # ALU flags
- "f_carry": "0",
- "f_overflow": "1",
- "f_zero": "2",
- "f_sign": "3",
-}
-
-def eval_symbol(c: str):
- if c in labels:
- return str(labels[c])
-
- if c in constants:
- return constants[c]
-
- return c
-
-# 1st pass, gather labels, set options
+# 1st pass, gather labels, set options, eval operations
options: dict[str, str] = {
"stack_pointer": "6" # RG
}
-labels: dict[str, int] = {}
address: int = 0
for (lineNo, line) in enumerate(src_lines):
@@ -104,6 +69,15 @@ for (lineNo, line) in enumerate(src_lines):
opt_name = args[0]
opt_value = constants.get(args[1], args[1])
options[opt_name] = opt_value
+ case "@use":
+ module_name, ops = args[0].split(":")
+ ops_split = ops.split(",")
+ module = importlib.import_module(module_name)
+ mod_operations: dict[str, Callable[..., list[int]]] = module.operations
+ for op in mod_operations:
+ callable = mod_operations[op]
+ if ops == "*" or op in ops_split:
+ operations[op] = callable
case _:
pass
@@ -111,98 +85,6 @@ for (lineNo, line) in enumerate(src_lines):
# 2nd pass
-def make_alr(alu_op: str, left: str, right: str, target: str) -> list[int]:
- """ALR 0000 TTTL LLRR RSSS"""
- target_e = eval_expr(target)
- left_e = eval_expr(left)
- right_e = eval_expr(right)
- alu_op_e = eval_expr(alu_op)
- word = (0b0000 << 12) + \
- (target_e << 9) + \
- (left_e << 6) + \
- (right_e << 3) + \
- alu_op_e
- return [word]
-
-def make_ali(alu_op: str, left: str, imm: str, target: str) -> list[int]:
- """ALI 0001 TTTL LLII ISSS"""
- target_e = eval_expr(target)
- left_e = eval_expr(left)
- imm_e = eval_expr(imm)
- alu_op_e = eval_expr(alu_op)
- word = (0b0001 << 12) + \
- (target_e << 9) + \
- (left_e << 6) + \
- (imm_e << 3) + \
- alu_op_e
- return [word]
-
-def make_ldr(to_reg: str, addr_reg: str) -> list[int]:
- """LDR 0010 TTTR RRXX XXXX"""
- to_reg_e = eval_expr(to_reg)
- addr_reg_e = eval_expr(addr_reg)
- word = (0b0010 << 12) + \
- (to_reg_e << 9) + \
- (addr_reg_e << 6)
- return [word]
-
-def make_str(from_reg: str, addr_reg: str) -> list[int]:
- """STR 0011 TTTR RRXX XXXX"""
- from_reg_e = eval_expr(from_reg)
- addr_reg_e = eval_expr(addr_reg)
- word = (0b0011 << 12) + \
- (from_reg_e << 9) + \
- (addr_reg_e << 6)
- return [word]
-
-def make_ldi(to_reg: str, imm: str) -> list[int]:
- """LDI 0100 TTTI IIII IIII"""
- to_reg_e = eval_expr(to_reg)
- imm_e = eval_expr(imm)
- word = (0b0100 << 12) + \
- (to_reg_e << 9) + \
- imm_e
- return [word]
-
-def make_jpr(addr_reg: str) -> list[int]:
- """JPR 0101 XXXR RRXX XXXX"""
- addr_reg_e = eval_expr(addr_reg)
- word = (0b0101 << 12) + \
- (addr_reg_e << 6)
- return [word]
-
-def make_jpi(address: int, imm: str) -> list[int]:
- """JPI 0110 XXXI IIII IIII"""
- imm_e = eval_expr(imm)
- imm_e = imm_e - address - 1
- word = (0b0110 << 12) + \
- imm_e
- return [word]
-
-def make_br(flag_s: str, addr_reg: str) -> list[int]:
- """BR 0111 XFFR RRXX XXXX"""
- flag_s_e = eval_expr(flag_s)
- addr_reg_e = eval_expr(addr_reg)
- word = (0b0111 << 12) + \
- (flag_s_e << 9) + \
- (addr_reg_e << 6)
- return [word]
-
-def make_bri(address: int, flag_s: str, imm: str) -> list[int]:
- """BRI 1000 XFFI IIII IIII"""
- flag_s_e = eval_expr(flag_s)
- imm_e = eval_expr(imm)
- imm_e = imm_e - address - 1
- word = (0b1000 << 12) + \
- (flag_s_e << 9) + \
- imm_e
- return [word]
-
-def make_hlt() -> list[int]:
- """HLT 1111 XXXX XXXX XXXX"""
- word = (0b1111 << 12)
- return [word]
-
# def make_spu(reg: str) -> list[int]:
# stack_pointer = options["stack_pointer"]
# reg = eval_symbol(reg)
@@ -210,7 +92,7 @@ def make_hlt() -> list[int]:
# words_str: list[int] = make_str(reg, stack_pointer)
# return words_inc + words_str
-address = 0
+address: int = 0
nop = bytearray([0b1000_0000, 0])
result = bytearray()
# initially one nop
@@ -220,59 +102,24 @@ for (lineNo, line) in enumerate(src_lines):
line = line.split(";")[0].strip()
if line == "": continue
keyword, *args = parse(line.lower())
- match keyword:
- # Directives
- case "@address":
- address = eval_expr(args[0])
- continue
- case "@label" | "@opt":
- continue
- # Instructions
- case "alr":
- words = make_alr(*args)
- case "ali":
- words = make_ali(*args)
- case "ldr":
- words = make_ldr(*args)
- case "str":
- words = make_str(*args)
- case "ldi":
- words = make_ldi(*args)
- case "jpr":
- words = make_jpr(*args)
- case "jpi":
- words = make_jpi(address, *args)
- case "br":
- words = make_br(*args)
- case "bri":
- words = make_bri(address, *args)
- case "hlt":
- words = make_hlt()
+ if keyword in operations:
+ words = operations[keyword](address, *args)
+ else:
+ match keyword:
+ # Directives
+ case "@address":
+ address = eval_expr(args[0])
+ continue
+ case "@label" | "@opt" | "@use":
+ continue
- # Pseudoinstructions
- case "add":
- words = make_alr("al_plus", *args)
- case "sub":
- words = make_alr("al_minus", *args)
- case "inc":
- words = make_ali("al_plus", args[0], "1", args[0])
- case "dec":
- words = make_ali("al_minus", args[0], "1", args[0])
- case "mov":
- words = make_ali("al_plus", args[0], "0", args[1])
- # case "csr":
- # reg = args[0]
- # words_spu = make_spu(reg)
- # words = []
- # # todo finish this
-
- # Default case: evaluate as is (e.g. data word)
- case _:
- try:
- words = [eval_expr(keyword)]
- except:
- raise Exception(f"Invalid assembly at {infile_path}:{lineNo + 1}\n\n{line}")
+ # Default case: evaluate as is (e.g. data word)
+ case _:
+ try:
+ words = [eval_expr(keyword)]
+ except:
+ raise Exception(f"Invalid assembly at {infile_path}:{lineNo + 1}\n\n{line}")
if len(result) < 2 * address + 1:
result.extend((2 * address + 1 - len(result)) * nop)
diff --git a/src/assembler_eval.py b/src/assembler_eval.py
new file mode 100644
index 0000000..3473ab8
--- /dev/null
+++ b/src/assembler_eval.py
@@ -0,0 +1,39 @@
+constants: dict[str, str] = {
+ # Registers
+ "rz": "0",
+ "ra": "1",
+ "rb": "2",
+ "rc": "3",
+ "rd": "4",
+ "rf": "5",
+ "rg": "6",
+ # ALU instructions
+ "al_plus": "0",
+ "al_minus": "1",
+ "al_and": "2",
+ "al_or": "3",
+ "al_xor": "4",
+ "al_shift_lr": "5",
+ "al_shift_ar": "6",
+ "al_shift_ll": "7",
+ # ALU flags
+ "f_carry": "0",
+ "f_overflow": "1",
+ "f_zero": "2",
+ "f_sign": "3",
+}
+
+labels: dict[str, int] = {}
+
+def eval_symbol(c: str) -> str:
+ if c in labels:
+ return str(labels[c])
+
+ if c in constants:
+ return constants[c]
+
+ return c
+
+def eval_expr(expr: str) -> int:
+ expr = eval_symbol(expr)
+ return eval(expr, labels.copy()) # eval as Python expr
diff --git a/src/assembler_ops.py b/src/assembler_ops.py
new file mode 100644
index 0000000..538dd78
--- /dev/null
+++ b/src/assembler_ops.py
@@ -0,0 +1,108 @@
+from typing import Callable
+from assembler_eval import *
+
+def make_alr(address: int, alu_op: str, left: str, right: str, target: str) -> list[int]:
+ """ALR 0000 TTTL LLRR RSSS"""
+ target_e = eval_expr(target)
+ left_e = eval_expr(left)
+ right_e = eval_expr(right)
+ alu_op_e = eval_expr(alu_op)
+ word = (0b0000 << 12) + \
+ (target_e << 9) + \
+ (left_e << 6) + \
+ (right_e << 3) + \
+ alu_op_e
+ return [word]
+
+def make_ali(address: int, alu_op: str, left: str, imm: str, target: str) -> list[int]:
+ """ALI 0001 TTTL LLII ISSS"""
+ target_e = eval_expr(target)
+ left_e = eval_expr(left)
+ imm_e = eval_expr(imm)
+ alu_op_e = eval_expr(alu_op)
+ word = (0b0001 << 12) + \
+ (target_e << 9) + \
+ (left_e << 6) + \
+ (imm_e << 3) + \
+ alu_op_e
+ return [word]
+
+def make_ldr(address: int, to_reg: str, addr_reg: str) -> list[int]:
+ """LDR 0010 TTTR RRXX XXXX"""
+ to_reg_e = eval_expr(to_reg)
+ addr_reg_e = eval_expr(addr_reg)
+ word = (0b0010 << 12) + \
+ (to_reg_e << 9) + \
+ (addr_reg_e << 6)
+ return [word]
+
+def make_str(address: int, from_reg: str, addr_reg: str) -> list[int]:
+ """STR 0011 TTTR RRXX XXXX"""
+ from_reg_e = eval_expr(from_reg)
+ addr_reg_e = eval_expr(addr_reg)
+ word = (0b0011 << 12) + \
+ (from_reg_e << 9) + \
+ (addr_reg_e << 6)
+ return [word]
+
+def make_ldi(address: int, to_reg: str, imm: str) -> list[int]:
+ """LDI 0100 TTTI IIII IIII"""
+ to_reg_e = eval_expr(to_reg)
+ imm_e = eval_expr(imm)
+ word = (0b0100 << 12) + \
+ (to_reg_e << 9) + \
+ imm_e
+ return [word]
+
+def make_jpr(address: int, addr_reg: str) -> list[int]:
+ """JPR 0101 XXXR RRXX XXXX"""
+ addr_reg_e = eval_expr(addr_reg)
+ word = (0b0101 << 12) + \
+ (addr_reg_e << 6)
+ return [word]
+
+def make_jpi(address: int, imm: str) -> list[int]:
+ """JPI 0110 XXXI IIII IIII"""
+ imm_e = eval_expr(imm)
+ imm_e = imm_e - address - 1
+ word = (0b0110 << 12) + \
+ imm_e
+ return [word]
+
+def make_br(address: int, flag_s: str, addr_reg: str) -> list[int]:
+ """brr 0111 XFFR RRXX XXXX"""
+ flag_s_e = eval_expr(flag_s)
+ addr_reg_e = eval_expr(addr_reg)
+ word = (0b0111 << 12) + \
+ (flag_s_e << 9) + \
+ (addr_reg_e << 6)
+ return [word]
+
+def make_bri(address: int, flag_s: str, imm: str) -> list[int]:
+ """BRI 1000 XFFI IIII IIII"""
+ flag_s_e = eval_expr(flag_s)
+ imm_e = eval_expr(imm)
+ imm_e = imm_e - address - 1
+ word = (0b1000 << 12) + \
+ (flag_s_e << 9) + \
+ imm_e
+ return [word]
+
+def make_hlt(address: int, ) -> list[int]:
+ """HLT 1111 XXXX XXXX XXXX"""
+ word = (0b1111 << 12)
+ return [word]
+
+operations: dict[str, Callable[..., list[int]]] = {
+ "alr": make_alr,
+ "alr": make_alr,
+ "ali": make_ali,
+ "ldr": make_ldr,
+ "str": make_str,
+ "ldi": make_ldi,
+ "jpr": make_jpr,
+ "jpi": make_jpi,
+ "brr": make_br,
+ "bri": make_bri,
+ "hlt": make_hlt,
+} \ No newline at end of file
diff --git a/src/ext_std.py b/src/ext_std.py
new file mode 100644
index 0000000..017f40a
--- /dev/null
+++ b/src/ext_std.py
@@ -0,0 +1,24 @@
+from assembler_ops import *
+
+def make_add(address:int, left: str, right: str, target: str) -> list[int]:
+ return make_alr(address, "al_plus", left, right, target)
+
+def make_sub(address: int, left: str, right: str, target: str) -> list[int]:
+ return make_alr(address, "al_minus", left, right, target)
+
+def make_inc(address: int, reg: str) -> list[int]:
+ return make_ali(address, "al_plus", reg, "1", reg)
+
+def make_dec(address: int, reg: str) -> list[int]:
+ return make_ali(address, "al_minus", reg, "1", reg)
+
+def make_mov(address: int, from_reg: str, to_reg: str) -> list[int]:
+ return make_ali(address, "al_plus", from_reg, "0", to_reg)
+
+operations = {
+ "add": make_add,
+ "sub": make_sub,
+ "inc": make_inc,
+ "dec": make_dec,
+ "mov": make_mov,
+}
diff --git a/src/test.atk16 b/src/test.atk16
index 1a7c773..1507430 100644
--- a/src/test.atk16
+++ b/src/test.atk16
@@ -1,5 +1,7 @@
; Program: sum two values and store the result in RAM
+@use ext_std:*
+
; ROM (and program execution) starts at offset 0x0
@address 0x0
jpi program
diff --git a/src/ucode.py b/src/ucode.py
index a847a35..10dd853 100755
--- a/src/ucode.py
+++ b/src/ucode.py
@@ -59,7 +59,7 @@ ucode = [
not_branch([*fetch, R1_OE|PC_IE, US_RS, 0, 0, 0, 0]),
# JPI 0110 XXXI IIII IIII
not_branch([*fetch, IM_M|LI_OE|PC_IE, US_RS, 0, 0, 0, 0]),
- # BR 0111 XFFR RRXX XXXX
+ # BRR 0111 XFFR RRXX XXXX
branch([*fetch, US_RS, 0, 0, 0, 0, 0],
[*fetch, R1_OE|PC_IE, US_RS, 0, 0, 0, 0]),
# BRI 1000 XFFI IIII IIII