Files
hardware/CPU/ALU/myalu.circ
2025-12-31 19:35:06 +08:00

375 lines
13 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project source="3.9.0" version="1.0">
This file is intended to be loaded by Logisim-evolution v3.9.0(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"/>
<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="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"/>
<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="main">
<a name="appearance" val="logisim_evolution"/>
<a name="circuit" val="main"/>
<a name="circuitnamedboxfixedsize" val="true"/>
<a name="simulationFrequency" val="4.0"/>
<comp lib="0" loc="(310,310)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="width" val="3"/>
</comp>
<comp lib="0" loc="(340,330)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="initial" val="0xffffffff"/>
<a name="radix" val="16"/>
<a name="width" val="32"/>
</comp>
<comp lib="0" loc="(340,350)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="initial" val="0xffffabcd"/>
<a name="radix" val="16"/>
<a name="width" val="32"/>
</comp>
<comp lib="0" loc="(650,310)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="radix" val="16"/>
<a name="width" val="32"/>
</comp>
<comp lib="5" loc="(670,330)" name="LED"/>
<comp lib="8" loc="(262,201)" name="Text">
<a name="text" val="加法000减法001或010SLT011LUI100"/>
</comp>
<comp loc="(630,310)" name="ALU"/>
<wire from="(310,310)" to="(410,310)"/>
<wire from="(340,330)" to="(410,330)"/>
<wire from="(340,350)" to="(410,350)"/>
<wire from="(630,310)" to="(650,310)"/>
<wire from="(630,330)" to="(670,330)"/>
</circuit>
<circuit name="ALU">
<a name="appearance" val="logisim_evolution"/>
<a name="circuit" val="ALU"/>
<a name="circuitnamedboxfixedsize" val="true"/>
<a name="simulationFrequency" val="4.0"/>
<comp lib="0" loc="(1050,520)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="facing" val="west"/>
<a name="label" val="Zero"/>
<a name="output" val="true"/>
</comp>
<comp lib="0" loc="(260,220)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="label" val="Num1_32"/>
<a name="radix" val="16"/>
<a name="width" val="32"/>
</comp>
<comp lib="0" loc="(260,240)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="label" val="Num2_32"/>
<a name="radix" val="16"/>
<a name="width" val="32"/>
</comp>
<comp lib="0" loc="(510,700)" name="Splitter">
<a name="bit1" val="0"/>
<a name="bit10" val="0"/>
<a name="bit11" val="0"/>
<a name="bit12" val="0"/>
<a name="bit13" val="0"/>
<a name="bit14" val="0"/>
<a name="bit15" val="0"/>
<a name="bit16" val="1"/>
<a name="bit17" val="1"/>
<a name="bit18" val="1"/>
<a name="bit19" val="1"/>
<a name="bit2" val="0"/>
<a name="bit20" val="1"/>
<a name="bit21" val="1"/>
<a name="bit22" val="1"/>
<a name="bit23" val="1"/>
<a name="bit24" val="1"/>
<a name="bit25" val="1"/>
<a name="bit26" val="1"/>
<a name="bit27" val="1"/>
<a name="bit28" val="1"/>
<a name="bit29" val="1"/>
<a name="bit3" val="0"/>
<a name="bit30" val="1"/>
<a name="bit31" val="1"/>
<a name="bit4" val="0"/>
<a name="bit5" val="0"/>
<a name="bit6" val="0"/>
<a name="bit7" val="0"/>
<a name="bit8" val="0"/>
<a name="bit9" val="0"/>
<a name="incoming" val="32"/>
</comp>
<comp lib="0" loc="(660,620)" name="Splitter">
<a name="bit1" val="0"/>
<a name="bit10" val="0"/>
<a name="bit11" val="0"/>
<a name="bit12" val="0"/>
<a name="bit13" val="0"/>
<a name="bit14" val="0"/>
<a name="bit15" val="0"/>
<a name="bit16" val="0"/>
<a name="bit17" val="0"/>
<a name="bit18" val="0"/>
<a name="bit19" val="0"/>
<a name="bit2" val="0"/>
<a name="bit20" val="0"/>
<a name="bit21" val="0"/>
<a name="bit22" val="0"/>
<a name="bit23" val="0"/>
<a name="bit24" val="0"/>
<a name="bit25" val="0"/>
<a name="bit26" val="0"/>
<a name="bit27" val="0"/>
<a name="bit28" val="0"/>
<a name="bit29" val="0"/>
<a name="bit3" val="0"/>
<a name="bit30" val="0"/>
<a name="bit31" val="1"/>
<a name="bit4" val="0"/>
<a name="bit5" val="0"/>
<a name="bit6" val="0"/>
<a name="bit7" val="0"/>
<a name="bit8" val="0"/>
<a name="bit9" val="0"/>
<a name="incoming" val="32"/>
</comp>
<comp lib="0" loc="(760,660)" name="Splitter">
<a name="bit1" val="0"/>
<a name="bit10" val="0"/>
<a name="bit11" val="0"/>
<a name="bit12" val="0"/>
<a name="bit13" val="0"/>
<a name="bit14" val="0"/>
<a name="bit15" val="0"/>
<a name="bit16" val="1"/>
<a name="bit17" val="1"/>
<a name="bit18" val="1"/>
<a name="bit19" val="1"/>
<a name="bit2" val="0"/>
<a name="bit20" val="1"/>
<a name="bit21" val="1"/>
<a name="bit22" val="1"/>
<a name="bit23" val="1"/>
<a name="bit24" val="1"/>
<a name="bit25" val="1"/>
<a name="bit26" val="1"/>
<a name="bit27" val="1"/>
<a name="bit28" val="1"/>
<a name="bit29" val="1"/>
<a name="bit3" val="0"/>
<a name="bit30" val="1"/>
<a name="bit31" val="1"/>
<a name="bit4" val="0"/>
<a name="bit5" val="0"/>
<a name="bit6" val="0"/>
<a name="bit7" val="0"/>
<a name="bit8" val="0"/>
<a name="bit9" val="0"/>
<a name="facing" val="west"/>
<a name="incoming" val="32"/>
</comp>
<comp lib="0" loc="(770,590)" name="Splitter">
<a name="bit0" val="1"/>
<a name="bit1" val="0"/>
<a name="bit10" val="0"/>
<a name="bit11" val="0"/>
<a name="bit12" val="0"/>
<a name="bit13" val="0"/>
<a name="bit14" val="0"/>
<a name="bit15" val="0"/>
<a name="bit16" val="0"/>
<a name="bit17" val="0"/>
<a name="bit18" val="0"/>
<a name="bit19" val="0"/>
<a name="bit2" val="0"/>
<a name="bit20" val="0"/>
<a name="bit21" val="0"/>
<a name="bit22" val="0"/>
<a name="bit23" val="0"/>
<a name="bit24" val="0"/>
<a name="bit25" val="0"/>
<a name="bit26" val="0"/>
<a name="bit27" val="0"/>
<a name="bit28" val="0"/>
<a name="bit29" val="0"/>
<a name="bit3" val="0"/>
<a name="bit30" val="0"/>
<a name="bit31" 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="0"/>
<a name="bit9" val="0"/>
<a name="facing" val="west"/>
<a name="incoming" val="32"/>
</comp>
<comp lib="0" loc="(850,130)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="facing" val="south"/>
<a name="label" val="Control_3"/>
<a name="width" val="3"/>
</comp>
<comp lib="0" loc="(960,420)" name="Pin">
<a name="appearance" val="NewPins"/>
<a name="facing" val="west"/>
<a name="label" val="Result_32"/>
<a name="output" val="true"/>
<a name="radix" val="16"/>
<a name="width" val="32"/>
</comp>
<comp lib="1" loc="(650,700)" name="XOR Gate">
<a name="size" val="30"/>
<a name="width" val="16"/>
</comp>
<comp lib="1" loc="(660,530)" name="OR Gate">
<a name="width" val="32"/>
</comp>
<comp lib="1" loc="(750,590)" name="XOR Gate">
<a name="size" val="30"/>
<a name="width" val="31"/>
</comp>
<comp lib="1" loc="(970,530)" name="XOR Gate">
<a name="label" val="SET0"/>
<a name="size" val="30"/>
<a name="width" val="32"/>
</comp>
<comp lib="2" loc="(870,420)" name="Multiplexer">
<a name="select" val="3"/>
<a name="width" val="32"/>
</comp>
<comp lib="3" loc="(1030,520)" name="Comparator">
<a name="width" val="32"/>
</comp>
<comp lib="3" loc="(660,300)" name="Adder">
<a name="width" val="32"/>
</comp>
<comp lib="3" loc="(660,410)" name="Subtractor">
<a name="width" val="32"/>
</comp>
<comp lib="8" loc="(583,660)" name="Text">
<a name="text" val="LUI"/>
</comp>
<comp lib="8" loc="(627,494)" name="Text">
<a name="text" val="OR"/>
</comp>
<comp lib="8" loc="(636,264)" name="Text">
<a name="text" val="ADD"/>
</comp>
<comp lib="8" loc="(640,369)" name="Text">
<a name="text" val="SUB"/>
</comp>
<comp lib="8" loc="(714,561)" name="Text">
<a name="text" val="SLT"/>
</comp>
<wire from="(1030,520)" to="(1050,520)"/>
<wire from="(260,220)" to="(360,220)"/>
<wire from="(260,240)" to="(430,240)"/>
<wire from="(270,460)" to="(270,620)"/>
<wire from="(270,460)" to="(680,460)"/>
<wire from="(270,620)" to="(660,620)"/>
<wire from="(360,220)" to="(360,290)"/>
<wire from="(360,290)" to="(360,400)"/>
<wire from="(360,290)" to="(620,290)"/>
<wire from="(360,400)" to="(360,510)"/>
<wire from="(360,400)" to="(620,400)"/>
<wire from="(360,510)" to="(610,510)"/>
<wire from="(430,240)" to="(430,310)"/>
<wire from="(430,310)" to="(430,420)"/>
<wire from="(430,310)" to="(620,310)"/>
<wire from="(430,420)" to="(430,550)"/>
<wire from="(430,420)" to="(620,420)"/>
<wire from="(430,550)" to="(430,700)"/>
<wire from="(430,550)" to="(610,550)"/>
<wire from="(430,700)" to="(510,700)"/>
<wire from="(530,680)" to="(740,680)"/>
<wire from="(530,690)" to="(550,690)"/>
<wire from="(550,690)" to="(550,710)"/>
<wire from="(550,690)" to="(610,690)"/>
<wire from="(550,710)" to="(610,710)"/>
<wire from="(650,670)" to="(650,700)"/>
<wire from="(650,670)" to="(740,670)"/>
<wire from="(660,300)" to="(820,300)"/>
<wire from="(660,410)" to="(680,410)"/>
<wire from="(660,530)" to="(700,530)"/>
<wire from="(670,610)" to="(680,610)"/>
<wire from="(680,390)" to="(680,410)"/>
<wire from="(680,390)" to="(830,390)"/>
<wire from="(680,410)" to="(680,460)"/>
<wire from="(680,580)" to="(680,600)"/>
<wire from="(680,580)" to="(710,580)"/>
<wire from="(680,600)" to="(710,600)"/>
<wire from="(680,610)" to="(750,610)"/>
<wire from="(700,400)" to="(700,530)"/>
<wire from="(700,400)" to="(830,400)"/>
<wire from="(750,590)" to="(750,600)"/>
<wire from="(760,660)" to="(790,660)"/>
<wire from="(770,410)" to="(770,590)"/>
<wire from="(770,410)" to="(830,410)"/>
<wire from="(790,420)" to="(790,660)"/>
<wire from="(790,420)" to="(830,420)"/>
<wire from="(820,300)" to="(820,380)"/>
<wire from="(820,380)" to="(830,380)"/>
<wire from="(850,130)" to="(850,460)"/>
<wire from="(870,420)" to="(890,420)"/>
<wire from="(890,420)" to="(890,540)"/>
<wire from="(890,420)" to="(910,420)"/>
<wire from="(890,540)" to="(930,540)"/>
<wire from="(910,420)" to="(910,520)"/>
<wire from="(910,420)" to="(930,420)"/>
<wire from="(910,520)" to="(930,520)"/>
<wire from="(930,420)" to="(930,510)"/>
<wire from="(930,420)" to="(960,420)"/>
<wire from="(930,510)" to="(990,510)"/>
<wire from="(970,530)" to="(990,530)"/>
</circuit>
</project>