Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
313 changes: 313 additions & 0 deletions LogisimEvolution/FastFullAdder.circ
Original file line number Diff line number Diff line change
@@ -0,0 +1,313 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project source="3.7.2" version="1.0">
This file is intended to be loaded by Logisim-evolution v3.7.2(https://github.com/logisim-evolution/).

<lib desc="#Wiring" name="0">
<tool name="Pin">
<a name="appearance" val="classic"/>
</tool>
</lib>
<lib desc="#Gates" name="1"/>
<lib desc="#Plexers" name="2"/>
<lib desc="#Arithmetic" name="3"/>
<lib desc="#Memory" name="4">
<tool name="D Flip-Flop">
<a name="appearance" val="classic"/>
</tool>
<tool name="T Flip-Flop">
<a name="appearance" val="classic"/>
</tool>
<tool name="J-K Flip-Flop">
<a name="appearance" val="classic"/>
</tool>
<tool name="S-R Flip-Flop">
<a name="appearance" val="classic"/>
</tool>
<tool name="Register">
<a name="appearance" val="classic"/>
</tool>
<tool name="Counter">
<a name="appearance" val="classic"/>
</tool>
<tool name="Shift Register">
<a name="appearance" val="classic"/>
</tool>
<tool name="Random">
<a name="appearance" val="classic"/>
</tool>
<tool name="RAM">
<a name="appearance" val="classic"/>
</tool>
<tool name="ROM">
<a name="appearance" val="classic"/>
</tool>
</lib>
<lib desc="#I/O" name="5"/>
<lib desc="#TTL" name="6"/>
<lib desc="#TCL" name="7"/>
<lib desc="#Base" name="8"/>
<lib desc="#BFH-Praktika" name="9"/>
<lib desc="#Input/Output-Extra" name="10"/>
<lib desc="#Soc" name="11"/>
<main name="main"/>
<options>
<a name="gateUndefined" val="ignore"/>
<a name="simlimit" val="1000"/>
<a name="simrand" val="0"/>
</options>
<mappings>
<tool lib="8" map="Button2" name="Menu 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"/>
<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">
<a name="appearance" val="classic"/>
</tool>
<tool lib="4" name="Register">
<a name="appearance" val="classic"/>
</tool>
</toolbar>
<circuit name="main">
<a name="appearance" val="logisim_evolution"/>
<a name="circuit" val="main"/>
<a name="circuitnamedboxfixedsize" val="true"/>
<a name="simulationFrequency" val="1.0"/>
<comp lib="0" loc="(120,270)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="label" val="Fast_Carry_O"/>
<a name="output" val="true"/>
</comp>
<comp lib="0" loc="(120,320)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="label" val="Carry_O"/>
<a name="output" val="true"/>
</comp>
<comp lib="0" loc="(120,370)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="label" val="Fast_No_Carry_O"/>
<a name="output" val="true"/>
</comp>
<comp lib="0" loc="(120,420)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="label" val="No_Carry_O"/>
<a name="output" val="true"/>
</comp>
<comp lib="0" loc="(230,570)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="facing" val="south"/>
<a name="label" val="Adder_Output_Gating"/>
</comp>
<comp lib="0" loc="(390,680)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="facing" val="north"/>
<a name="label" val="Sum"/>
<a name="output" val="true"/>
</comp>
<comp lib="0" loc="(410,120)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="facing" val="south"/>
<a name="label" val="N"/>
</comp>
<comp lib="0" loc="(430,120)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="facing" val="south"/>
<a name="label" val="D"/>
</comp>
<comp lib="0" loc="(450,120)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="facing" val="south"/>
<a name="label" val="LP"/>
</comp>
<comp lib="0" loc="(480,270)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="facing" val="west"/>
<a name="label" val="Fast_Carry"/>
</comp>
<comp lib="0" loc="(480,320)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="facing" val="west"/>
<a name="label" val="Carry"/>
</comp>
<comp lib="0" loc="(480,370)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="facing" val="west"/>
<a name="label" val="Fast_No_Carry"/>
</comp>
<comp lib="0" loc="(480,420)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="facing" val="west"/>
<a name="label" val="No_Carry"/>
</comp>
<comp lib="1" loc="(150,320)" name="NOT Gate">
<a name="facing" val="west"/>
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(150,420)" name="NOT Gate">
<a name="facing" val="west"/>
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(190,320)" name="OR Gate">
<a name="facing" val="west"/>
<a name="inputs" val="4"/>
</comp>
<comp lib="1" loc="(190,420)" name="OR Gate">
<a name="facing" val="west"/>
<a name="inputs" val="5"/>
</comp>
<comp lib="1" loc="(360,190)" name="OR Gate">
<a name="facing" val="south"/>
<a name="size" val="30"/>
</comp>
<comp lib="1" loc="(360,220)" name="NOT Gate">
<a name="facing" val="south"/>
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(370,600)" name="AND Gate">
<a name="facing" val="south"/>
<a name="size" val="30"/>
</comp>
<comp lib="1" loc="(380,130)" name="NOT Gate">
<a name="facing" val="west"/>
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(380,150)" name="NOT Gate">
<a name="facing" val="west"/>
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(390,650)" name="OR Gate">
<a name="facing" val="south"/>
<a name="size" val="30"/>
</comp>
<comp lib="1" loc="(410,600)" name="AND Gate">
<a name="facing" val="south"/>
<a name="size" val="30"/>
</comp>
<comp lib="1" loc="(420,190)" name="OR Gate">
<a name="facing" val="south"/>
<a name="inputs" val="3"/>
<a name="size" val="30"/>
</comp>
<comp lib="1" loc="(420,220)" name="NOT Gate">
<a name="facing" val="south"/>
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(420,510)" name="OR Gate">
<a name="facing" val="south"/>
<a name="inputs" val="4"/>
</comp>
<comp lib="1" loc="(420,550)" name="NOT Gate">
<a name="facing" val="south"/>
<a name="size" val="20"/>
</comp>
<comp lib="8" loc="(158,77)" name="Text">
<a name="text" val="&quot;N&quot; is the numerator, first input."/>
</comp>
<comp lib="8" loc="(165,96)" name="Text">
<a name="text" val="&quot;D&quot; is denominator, second input"/>
</comp>
<comp lib="8" loc="(868,663)" name="Text">
<a name="text" val="The output is only valid if and only if there is one carry input"/>
</comp>
<comp lib="8" loc="(948,65)" name="Text">
<a name="text" val="&quot;LP&quot; Is the &quot;leap frog&quot; input, logic not shown in diagram. This disables the sum entirely and forces a carry output"/>
</comp>
<comp lib="8" loc="(988,384)" name="Text">
<a name="text" val="&quot;Fast No Carry&quot; and &quot;No Carry&quot; are reversed in the documentation, but this changes nothing"/>
</comp>
<wire from="(120,270)" to="(360,270)"/>
<wire from="(120,320)" to="(140,320)"/>
<wire from="(120,370)" to="(420,370)"/>
<wire from="(120,420)" to="(130,420)"/>
<wire from="(130,420)" to="(130,500)"/>
<wire from="(130,420)" to="(150,420)"/>
<wire from="(130,500)" to="(380,500)"/>
<wire from="(140,320)" to="(140,350)"/>
<wire from="(140,320)" to="(150,320)"/>
<wire from="(140,350)" to="(410,350)"/>
<wire from="(170,320)" to="(190,320)"/>
<wire from="(170,420)" to="(190,420)"/>
<wire from="(230,570)" to="(230,580)"/>
<wire from="(230,580)" to="(250,580)"/>
<wire from="(240,300)" to="(360,300)"/>
<wire from="(240,310)" to="(420,310)"/>
<wire from="(240,330)" to="(440,330)"/>
<wire from="(240,340)" to="(430,340)"/>
<wire from="(240,400)" to="(360,400)"/>
<wire from="(240,410)" to="(420,410)"/>
<wire from="(240,420)" to="(380,420)"/>
<wire from="(240,430)" to="(450,430)"/>
<wire from="(240,440)" to="(460,440)"/>
<wire from="(250,540)" to="(250,580)"/>
<wire from="(250,540)" to="(360,540)"/>
<wire from="(350,130)" to="(350,160)"/>
<wire from="(350,130)" to="(380,130)"/>
<wire from="(360,190)" to="(360,200)"/>
<wire from="(360,220)" to="(360,270)"/>
<wire from="(360,270)" to="(360,300)"/>
<wire from="(360,300)" to="(360,400)"/>
<wire from="(360,540)" to="(360,550)"/>
<wire from="(360,550)" to="(360,570)"/>
<wire from="(360,550)" to="(400,550)"/>
<wire from="(370,150)" to="(370,160)"/>
<wire from="(370,150)" to="(380,150)"/>
<wire from="(370,600)" to="(370,610)"/>
<wire from="(370,610)" to="(380,610)"/>
<wire from="(380,300)" to="(380,420)"/>
<wire from="(380,300)" to="(450,300)"/>
<wire from="(380,420)" to="(400,420)"/>
<wire from="(380,500)" to="(380,570)"/>
<wire from="(380,610)" to="(380,620)"/>
<wire from="(390,650)" to="(390,680)"/>
<wire from="(400,130)" to="(410,130)"/>
<wire from="(400,150)" to="(430,150)"/>
<wire from="(400,420)" to="(400,460)"/>
<wire from="(400,550)" to="(400,570)"/>
<wire from="(400,610)" to="(400,620)"/>
<wire from="(400,610)" to="(410,610)"/>
<wire from="(410,120)" to="(410,130)"/>
<wire from="(410,130)" to="(410,160)"/>
<wire from="(410,350)" to="(410,460)"/>
<wire from="(410,600)" to="(410,610)"/>
<wire from="(420,140)" to="(420,160)"/>
<wire from="(420,140)" to="(450,140)"/>
<wire from="(420,190)" to="(420,200)"/>
<wire from="(420,220)" to="(420,310)"/>
<wire from="(420,310)" to="(420,370)"/>
<wire from="(420,370)" to="(420,410)"/>
<wire from="(420,510)" to="(420,530)"/>
<wire from="(420,550)" to="(420,570)"/>
<wire from="(430,120)" to="(430,150)"/>
<wire from="(430,150)" to="(430,160)"/>
<wire from="(430,340)" to="(430,420)"/>
<wire from="(430,420)" to="(430,460)"/>
<wire from="(430,420)" to="(480,420)"/>
<wire from="(440,330)" to="(440,370)"/>
<wire from="(440,370)" to="(440,460)"/>
<wire from="(440,370)" to="(480,370)"/>
<wire from="(450,120)" to="(450,140)"/>
<wire from="(450,140)" to="(450,300)"/>
<wire from="(450,320)" to="(450,430)"/>
<wire from="(450,320)" to="(480,320)"/>
<wire from="(460,270)" to="(460,440)"/>
<wire from="(460,270)" to="(480,270)"/>
</circuit>
</project>