New Hardware Git
This commit is contained in:
BIN
CPU/CU/2025控制器设计模板.docx
Normal file
BIN
CPU/CU/2025控制器设计模板.docx
Normal file
Binary file not shown.
BIN
CPU/CU/CU文档.pdf
Normal file
BIN
CPU/CU/CU文档.pdf
Normal file
Binary file not shown.
237
CPU/CU/ControlUnit.circ
Normal file
237
CPU/CU/ControlUnit.circ
Normal file
@@ -0,0 +1,237 @@
|
||||
<?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 loc="(450,180)" name="Control_Unit"/>
|
||||
</circuit>
|
||||
<circuit name="Control_Unit">
|
||||
<a name="appearance" val="logisim_evolution"/>
|
||||
<a name="circuit" val="Control_Unit"/>
|
||||
<a name="circuitnamedboxfixedsize" val="true"/>
|
||||
<a name="simulationFrequency" val="4.0"/>
|
||||
<comp lib="0" loc="(170,410)" name="Pin">
|
||||
<a name="appearance" val="NewPins"/>
|
||||
<a name="label" val="Opcode"/>
|
||||
<a name="width" val="6"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(550,320)" name="Splitter">
|
||||
<a name="bit10" val="9"/>
|
||||
<a name="bit11" val="10"/>
|
||||
<a name="bit9" val="8"/>
|
||||
<a name="fanout" val="11"/>
|
||||
<a name="incoming" val="12"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(740,130)" name="Pin">
|
||||
<a name="appearance" val="NewPins"/>
|
||||
<a name="facing" val="west"/>
|
||||
<a name="label" val="Stop"/>
|
||||
<a name="output" val="true"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(740,150)" name="Pin">
|
||||
<a name="appearance" val="NewPins"/>
|
||||
<a name="facing" val="west"/>
|
||||
<a name="label" val="ExtOp"/>
|
||||
<a name="output" val="true"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(740,170)" name="Pin">
|
||||
<a name="appearance" val="NewPins"/>
|
||||
<a name="facing" val="west"/>
|
||||
<a name="label" val="MemtoWrite"/>
|
||||
<a name="output" val="true"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(740,190)" name="Pin">
|
||||
<a name="appearance" val="NewPins"/>
|
||||
<a name="facing" val="west"/>
|
||||
<a name="label" val="RegWrite"/>
|
||||
<a name="output" val="true"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(740,210)" name="Pin">
|
||||
<a name="appearance" val="NewPins"/>
|
||||
<a name="facing" val="west"/>
|
||||
<a name="label" val="MemWrite"/>
|
||||
<a name="output" val="true"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(740,230)" name="Pin">
|
||||
<a name="appearance" val="NewPins"/>
|
||||
<a name="facing" val="west"/>
|
||||
<a name="label" val="MemRead"/>
|
||||
<a name="output" val="true"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(740,250)" name="Pin">
|
||||
<a name="appearance" val="NewPins"/>
|
||||
<a name="facing" val="west"/>
|
||||
<a name="label" val="Branch"/>
|
||||
<a name="output" val="true"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(740,270)" name="Pin">
|
||||
<a name="appearance" val="NewPins"/>
|
||||
<a name="facing" val="west"/>
|
||||
<a name="label" val="ALUSrc"/>
|
||||
<a name="output" val="true"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(740,290)" name="Pin">
|
||||
<a name="appearance" val="NewPins"/>
|
||||
<a name="facing" val="west"/>
|
||||
<a name="label" val="ALUOp"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="width" val="2"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(740,310)" name="Pin">
|
||||
<a name="appearance" val="NewPins"/>
|
||||
<a name="facing" val="west"/>
|
||||
<a name="label" val="RegDst"/>
|
||||
<a name="output" val="true"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(270,290)" name="ROM">
|
||||
<a name="addrWidth" val="6"/>
|
||||
<a name="appearance" val="logisim_evolution"/>
|
||||
<a name="contents">addr/data: 6 12
|
||||
608 4*0 18a 7*0 388 0 388 19*0
|
||||
9d 7*0 92 19*0 1
|
||||
</a>
|
||||
<a name="dataWidth" val="12"/>
|
||||
</comp>
|
||||
<wire from="(170,300)" to="(170,410)"/>
|
||||
<wire from="(170,300)" to="(270,300)"/>
|
||||
<wire from="(510,320)" to="(510,350)"/>
|
||||
<wire from="(510,320)" to="(550,320)"/>
|
||||
<wire from="(570,210)" to="(670,210)"/>
|
||||
<wire from="(570,220)" to="(680,220)"/>
|
||||
<wire from="(570,230)" to="(690,230)"/>
|
||||
<wire from="(570,240)" to="(700,240)"/>
|
||||
<wire from="(570,250)" to="(710,250)"/>
|
||||
<wire from="(570,260)" to="(720,260)"/>
|
||||
<wire from="(570,270)" to="(730,270)"/>
|
||||
<wire from="(570,280)" to="(740,280)"/>
|
||||
<wire from="(570,290)" to="(740,290)"/>
|
||||
<wire from="(570,300)" to="(740,300)"/>
|
||||
<wire from="(670,130)" to="(670,210)"/>
|
||||
<wire from="(670,130)" to="(740,130)"/>
|
||||
<wire from="(680,150)" to="(680,220)"/>
|
||||
<wire from="(680,150)" to="(740,150)"/>
|
||||
<wire from="(690,170)" to="(690,230)"/>
|
||||
<wire from="(690,170)" to="(740,170)"/>
|
||||
<wire from="(700,190)" to="(700,240)"/>
|
||||
<wire from="(700,190)" to="(740,190)"/>
|
||||
<wire from="(710,210)" to="(710,250)"/>
|
||||
<wire from="(710,210)" to="(740,210)"/>
|
||||
<wire from="(720,230)" to="(720,260)"/>
|
||||
<wire from="(720,230)" to="(740,230)"/>
|
||||
<wire from="(730,250)" to="(730,270)"/>
|
||||
<wire from="(730,250)" to="(740,250)"/>
|
||||
<wire from="(740,270)" to="(740,280)"/>
|
||||
<wire from="(740,300)" to="(740,310)"/>
|
||||
</circuit>
|
||||
<circuit name="ALU_Control">
|
||||
<a name="appearance" val="logisim_evolution"/>
|
||||
<a name="circuit" val="ALU_Control"/>
|
||||
<a name="circuitnamedboxfixedsize" val="true"/>
|
||||
<a name="simulationFrequency" val="4.0"/>
|
||||
<comp lib="0" loc="(200,200)" name="Pin">
|
||||
<a name="appearance" val="NewPins"/>
|
||||
<a name="label" val="ALU_Op"/>
|
||||
<a name="width" val="2"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(200,270)" name="Pin">
|
||||
<a name="appearance" val="NewPins"/>
|
||||
<a name="label" val="Funct"/>
|
||||
<a name="width" val="6"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(310,240)" name="Splitter">
|
||||
<a name="bit0" val="1"/>
|
||||
<a name="bit2" val="1"/>
|
||||
<a name="bit3" val="1"/>
|
||||
<a name="bit4" val="1"/>
|
||||
<a name="bit5" val="1"/>
|
||||
<a name="bit6" val="0"/>
|
||||
<a name="bit7" val="0"/>
|
||||
<a name="facing" val="west"/>
|
||||
<a name="incoming" val="8"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(770,210)" name="Pin">
|
||||
<a name="appearance" val="NewPins"/>
|
||||
<a name="facing" val="west"/>
|
||||
<a name="label" val="ALUControl"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="width" val="4"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(390,150)" name="ROM">
|
||||
<a name="appearance" val="logisim_evolution"/>
|
||||
<a name="contents">addr/data: 8 4
|
||||
64*2 97*0 2 6 7*0 7 34*0 1
|
||||
0 8
|
||||
</a>
|
||||
<a name="dataWidth" val="4"/>
|
||||
</comp>
|
||||
<comp lib="8" loc="(193,361)" name="Text">
|
||||
<a name="text" val="当且仅当ALU_Op为11时,输入Opcode"/>
|
||||
</comp>
|
||||
<wire from="(200,200)" to="(290,200)"/>
|
||||
<wire from="(200,270)" to="(290,270)"/>
|
||||
<wire from="(290,200)" to="(290,250)"/>
|
||||
<wire from="(290,260)" to="(290,270)"/>
|
||||
<wire from="(310,160)" to="(310,240)"/>
|
||||
<wire from="(310,160)" to="(390,160)"/>
|
||||
<wire from="(630,210)" to="(770,210)"/>
|
||||
</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"/>
|
||||
</circuit>
|
||||
</project>
|
||||
16
CPU/CU/rom_alucontrol.hex
Normal file
16
CPU/CU/rom_alucontrol.hex
Normal file
@@ -0,0 +1,16 @@
|
||||
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
|
||||
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
|
||||
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
|
||||
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 2 6 0 0 0 0 0 0 0 7 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 8
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
4
CPU/CU/rom_cu.hex
Normal file
4
CPU/CU/rom_cu.hex
Normal file
@@ -0,0 +1,4 @@
|
||||
608 000 000 000 000 18a 000 000 000 000 000 000 000 388 000 388
|
||||
000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
|
||||
000 000 000 09d 000 000 000 000 000 000 000 092 000 000 000 000
|
||||
000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 001
|
||||
Reference in New Issue
Block a user