소스 검색

Implement the `add` operation

DricomDragon 5 년 전
부모
커밋
349f4c0ec9
1개의 변경된 파일218개의 추가작업 그리고 217개의 파일을 삭제
  1. 218 217
      logisim/nano.circ

+ 218 - 217
logisim/nano.circ

@@ -274,177 +274,170 @@
     <wire from="(310,450)" to="(310,570)"/>
     <wire from="(330,440)" to="(530,440)"/>
     <wire from="(280,660)" to="(350,660)"/>
-    <comp lib="0" loc="(850,490)" name="Tunnel">
-      <a name="label" val="sel_A_src"/>
-    </comp>
-    <comp lib="6" loc="(399,524)" name="Text">
-      <a name="text" val="Mémoire programme"/>
-    </comp>
-    <comp lib="2" loc="(240,570)" name="Multiplexer">
-      <a name="width" val="8"/>
-      <a name="enable" val="false"/>
-    </comp>
-    <comp lib="1" loc="(920,210)" name="NOR Gate">
-      <a name="size" val="30"/>
-      <a name="inputs" val="8"/>
-    </comp>
     <comp lib="1" loc="(990,740)" name="OR Gate">
       <a name="inputs" val="2"/>
     </comp>
-    <comp lib="0" loc="(850,570)" name="Tunnel">
-      <a name="label" val="e_wr_A"/>
-    </comp>
-    <comp lib="0" loc="(850,510)" name="Tunnel">
-      <a name="label" val="sel_op0"/>
-    </comp>
-    <comp lib="0" loc="(870,110)" name="Tunnel">
+    <comp lib="2" loc="(700,150)" name="Multiplexer">
       <a name="width" val="8"/>
-      <a name="label" val="result"/>
-    </comp>
-    <comp lib="0" loc="(590,800)" name="Splitter">
-      <a name="facing" val="west"/>
-      <a name="fanout" val="4"/>
-      <a name="incoming" val="4"/>
+      <a name="enable" val="false"/>
     </comp>
-    <comp lib="0" loc="(1010,210)" name="Tunnel">
+    <comp lib="4" loc="(960,210)" name="Register">
+      <a name="width" val="1"/>
       <a name="label" val="Z"/>
     </comp>
-    <comp lib="4" loc="(290,570)" name="Register">
-      <a name="trigger" val="falling"/>
-      <a name="label" val="PC"/>
-    </comp>
-    <comp lib="6" loc="(620,516)" name="Text">
-      <a name="text" val="ROM de décodage"/>
+    <comp lib="0" loc="(290,690)" name="Tunnel">
+      <a name="label" val="clk"/>
     </comp>
-    <comp lib="2" loc="(600,140)" name="Multiplexer">
-      <a name="width" val="8"/>
-      <a name="enable" val="false"/>
+    <comp lib="4" loc="(470,570)" name="ROM">
+      <a name="contents">addr/data: 8 8
+40 81 62 ee 85 81 84 0
+0 1 2 1
+</a>
     </comp>
-    <comp lib="0" loc="(510,740)" name="Tunnel">
-      <a name="facing" val="east"/>
-      <a name="label" val="is_branch"/>
+    <comp lib="0" loc="(370,660)" name="Tunnel">
+      <a name="label" val="reset"/>
     </comp>
-    <comp lib="0" loc="(150,610)" name="Tunnel">
+    <comp lib="0" loc="(970,320)" name="Tunnel">
       <a name="facing" val="north"/>
-      <a name="width" val="8"/>
-      <a name="label" val="result"/>
+      <a name="label" val="reset"/>
     </comp>
-    <comp lib="0" loc="(990,950)" name="Tunnel">
+    <comp lib="0" loc="(920,320)" name="Tunnel">
+      <a name="facing" val="north"/>
       <a name="label" val="write_CCR"/>
     </comp>
-    <comp lib="0" loc="(520,130)" name="Probe">
-      <a name="radix" val="10signed"/>
+    <comp lib="0" loc="(1010,270)" name="Tunnel">
+      <a name="label" val="N"/>
     </comp>
-    <comp lib="0" loc="(70,570)" name="Constant">
-      <a name="width" val="8"/>
+    <comp lib="0" loc="(510,860)" name="Tunnel">
+      <a name="facing" val="east"/>
+      <a name="label" val="branch_if_Z"/>
     </comp>
-    <comp lib="4" loc="(960,210)" name="Register">
-      <a name="width" val="1"/>
-      <a name="label" val="Z"/>
+    <comp lib="0" loc="(430,40)" name="Probe">
+      <a name="facing" val="south"/>
+      <a name="radix" val="10signed"/>
     </comp>
     <comp lib="0" loc="(390,330)" name="Tunnel">
       <a name="facing" val="north"/>
       <a name="label" val="store"/>
     </comp>
-    <comp lib="0" loc="(510,720)" name="Tunnel">
+    <comp lib="0" loc="(470,330)" name="Constant">
+      <a name="facing" val="north"/>
+      <a name="value" val="0x0"/>
+    </comp>
+    <comp lib="0" loc="(510,800)" name="Tunnel">
       <a name="facing" val="east"/>
-      <a name="label" val="is_ba"/>
+      <a name="label" val="N"/>
     </comp>
-    <comp lib="0" loc="(380,140)" name="Tunnel">
+    <comp lib="0" loc="(540,320)" name="Probe">
+      <a name="facing" val="west"/>
+      <a name="radix" val="10signed"/>
+    </comp>
+    <comp lib="0" loc="(580,180)" name="Tunnel">
+      <a name="facing" val="north"/>
+      <a name="label" val="sel_op1"/>
+    </comp>
+    <comp lib="0" loc="(510,840)" name="Tunnel">
       <a name="facing" val="east"/>
-      <a name="label" val="sel_op0"/>
+      <a name="label" val="branch_if_N"/>
     </comp>
-    <comp lib="0" loc="(430,330)" name="Tunnel">
+    <comp lib="0" loc="(450,330)" name="Constant">
       <a name="facing" val="north"/>
-      <a name="label" val="clk"/>
     </comp>
-    <comp lib="2" loc="(180,190)" name="Multiplexer">
-      <a name="facing" val="west"/>
+    <comp lib="0" loc="(250,130)" name="Tunnel">
+      <a name="facing" val="north"/>
+      <a name="label" val="reset"/>
+    </comp>
+    <comp lib="2" loc="(240,570)" name="Multiplexer">
       <a name="width" val="8"/>
       <a name="enable" val="false"/>
     </comp>
-    <comp lib="0" loc="(200,130)" name="Tunnel">
-      <a name="facing" val="north"/>
-      <a name="label" val="write_A"/>
+    <comp lib="1" loc="(910,760)" name="AND Gate">
+      <a name="inputs" val="2"/>
     </comp>
-    <comp lib="4" loc="(500,240)" name="RAM">
-      <a name="addrWidth" val="4"/>
-      <a name="bus" val="separate"/>
+    <comp lib="0" loc="(510,520)" name="Splitter">
+      <a name="incoming" val="8"/>
+      <a name="bit1" val="0"/>
+      <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"/>
     </comp>
-    <comp lib="0" loc="(220,610)" name="Tunnel">
-      <a name="facing" val="north"/>
-      <a name="label" val="do_branch"/>
+    <comp lib="0" loc="(260,430)" name="Probe">
+      <a name="facing" val="south"/>
+      <a name="radix" val="16"/>
     </comp>
-    <comp lib="4" loc="(250,90)" name="Register">
-      <a name="label" val="A"/>
+    <comp lib="0" loc="(520,130)" name="Probe">
+      <a name="radix" val="10signed"/>
     </comp>
-    <comp lib="0" loc="(850,430)" name="Tunnel">
-      <a name="label" val="branch_if_Z"/>
+    <comp lib="0" loc="(430,330)" name="Tunnel">
+      <a name="facing" val="north"/>
+      <a name="label" val="clk"/>
     </comp>
-    <comp lib="0" loc="(850,610)" name="Tunnel">
-      <a name="label" val="store"/>
+    <comp lib="0" loc="(200,230)" name="Tunnel">
+      <a name="facing" val="north"/>
+      <a name="label" val="sel_ext_op"/>
     </comp>
-    <comp lib="0" loc="(850,60)" name="Probe">
-      <a name="facing" val="west"/>
-      <a name="radix" val="10signed"/>
+    <comp lib="0" loc="(380,140)" name="Tunnel">
+      <a name="facing" val="east"/>
+      <a name="label" val="sel_op0"/>
     </comp>
-    <comp lib="0" loc="(510,800)" name="Tunnel">
+    <comp lib="0" loc="(510,820)" name="Tunnel">
       <a name="facing" val="east"/>
-      <a name="label" val="N"/>
+      <a name="label" val="Z"/>
     </comp>
-    <comp lib="0" loc="(850,470)" name="Tunnel">
-      <a name="label" val="is_ba"/>
+    <comp lib="0" loc="(1010,740)" name="Tunnel">
+      <a name="label" val="do_branch"/>
     </comp>
-    <comp lib="0" loc="(510,860)" name="Tunnel">
-      <a name="facing" val="east"/>
-      <a name="label" val="branch_if_Z"/>
+    <comp lib="1" loc="(920,210)" name="NOR Gate">
+      <a name="size" val="30"/>
+      <a name="inputs" val="8"/>
     </comp>
-    <comp lib="4" loc="(800,800)" name="ROM">
-      <a name="addrWidth" val="4"/>
-      <a name="dataWidth" val="1"/>
-      <a name="contents">addr/data: 4 1
-0
-</a>
+    <comp lib="0" loc="(820,250)" name="Splitter">
+      <a name="fanout" val="8"/>
+      <a name="incoming" val="8"/>
     </comp>
-    <comp lib="0" loc="(110,530)" name="Constant">
-      <a name="facing" val="south"/>
-      <a name="value" val="0x0"/>
+    <comp lib="1" loc="(650,250)" name="NOT Gate">
+      <a name="width" val="8"/>
     </comp>
-    <comp lib="5" loc="(350,740)" name="Button">
+    <comp lib="0" loc="(140,130)" name="Tunnel">
       <a name="facing" val="north"/>
-      <a name="label" val="reset"/>
+      <a name="label" val="sel_A_src"/>
     </comp>
-    <comp lib="6" loc="(431,196)" name="Text">
-      <a name="text" val="Mémoire données"/>
+    <comp lib="1" loc="(610,950)" name="AND Gate">
+      <a name="inputs" val="2"/>
     </comp>
-    <comp lib="0" loc="(540,320)" name="Probe">
+    <comp lib="0" loc="(590,800)" name="Splitter">
       <a name="facing" val="west"/>
-      <a name="radix" val="10signed"/>
+      <a name="fanout" val="4"/>
+      <a name="incoming" val="4"/>
     </comp>
-    <comp lib="0" loc="(510,970)" name="Tunnel">
+    <comp lib="0" loc="(830,970)" name="Tunnel">
       <a name="facing" val="east"/>
       <a name="label" val="clk"/>
     </comp>
-    <comp lib="0" loc="(290,690)" name="Tunnel">
-      <a name="label" val="clk"/>
+    <comp lib="0" loc="(850,610)" name="Tunnel">
+      <a name="label" val="store"/>
     </comp>
-    <comp lib="0" loc="(580,180)" name="Tunnel">
+    <comp lib="0" loc="(200,130)" name="Tunnel">
       <a name="facing" val="north"/>
-      <a name="label" val="sel_op1"/>
+      <a name="label" val="write_A"/>
     </comp>
-    <comp lib="0" loc="(430,40)" name="Probe">
-      <a name="facing" val="south"/>
-      <a name="radix" val="10signed"/>
+    <comp lib="2" loc="(600,140)" name="Multiplexer">
+      <a name="width" val="8"/>
+      <a name="enable" val="false"/>
     </comp>
-    <comp lib="0" loc="(470,330)" name="Constant">
-      <a name="facing" val="north"/>
-      <a name="value" val="0x0"/>
+    <comp lib="0" loc="(850,630)" name="Tunnel">
+      <a name="label" val="sel_ext_op"/>
     </comp>
-    <comp lib="0" loc="(920,320)" name="Tunnel">
-      <a name="facing" val="north"/>
-      <a name="label" val="write_CCR"/>
+    <comp lib="0" loc="(850,570)" name="Tunnel">
+      <a name="label" val="e_wr_A"/>
     </comp>
-    <comp lib="2" loc="(700,150)" name="Multiplexer">
+    <comp lib="0" loc="(850,450)" name="Tunnel">
+      <a name="label" val="branch_if_N"/>
+    </comp>
+    <comp lib="2" loc="(200,90)" name="Multiplexer">
       <a name="width" val="8"/>
       <a name="enable" val="false"/>
     </comp>
@@ -452,16 +445,43 @@
       <a name="width" val="1"/>
       <a name="label" val="N"/>
     </comp>
-    <comp lib="0" loc="(590,440)" name="Bit Extender">
-      <a name="in_width" val="4"/>
-      <a name="out_width" val="8"/>
-      <a name="type" val="sign"/>
+    <comp lib="0" loc="(990,950)" name="Tunnel">
+      <a name="label" val="write_CCR"/>
     </comp>
-    <comp lib="0" loc="(450,330)" name="Constant">
+    <comp lib="0" loc="(850,530)" name="Tunnel">
+      <a name="label" val="is_sub"/>
+    </comp>
+    <comp lib="0" loc="(680,950)" name="Tunnel">
+      <a name="label" val="write_A"/>
+    </comp>
+    <comp lib="4" loc="(690,560)" name="ROM">
+      <a name="addrWidth" val="4"/>
+      <a name="dataWidth" val="12"/>
+      <a name="contents">addr/data: 4 12
+300 7*0 380
+</a>
+    </comp>
+    <comp lib="0" loc="(220,610)" name="Tunnel">
       <a name="facing" val="north"/>
+      <a name="label" val="do_branch"/>
     </comp>
-    <comp lib="0" loc="(1010,270)" name="Tunnel">
-      <a name="label" val="N"/>
+    <comp lib="4" loc="(250,90)" name="Register">
+      <a name="label" val="A"/>
+    </comp>
+    <comp lib="0" loc="(850,60)" name="Probe">
+      <a name="facing" val="west"/>
+      <a name="radix" val="10signed"/>
+    </comp>
+    <comp lib="5" loc="(350,740)" name="Button">
+      <a name="facing" val="north"/>
+      <a name="label" val="reset"/>
+    </comp>
+    <comp lib="6" loc="(708,756)" name="Text">
+      <a name="text" val="ROM de décodage des branchements"/>
+    </comp>
+    <comp lib="0" loc="(510,740)" name="Tunnel">
+      <a name="facing" val="east"/>
+      <a name="label" val="is_branch"/>
     </comp>
     <comp lib="0" loc="(780,130)" name="Splitter">
       <a name="facing" val="south"/>
@@ -476,145 +496,126 @@
       <a name="bit6" val="none"/>
       <a name="bit7" val="0"/>
     </comp>
-    <comp lib="1" loc="(610,950)" name="AND Gate">
-      <a name="inputs" val="2"/>
+    <comp lib="0" loc="(510,930)" name="Tunnel">
+      <a name="facing" val="east"/>
+      <a name="label" val="e_wr_A"/>
     </comp>
-    <comp lib="0" loc="(200,230)" name="Tunnel">
-      <a name="facing" val="north"/>
-      <a name="label" val="sel_ext_op"/>
+    <comp lib="0" loc="(870,110)" name="Tunnel">
+      <a name="width" val="8"/>
+      <a name="label" val="result"/>
     </comp>
-    <comp lib="0" loc="(850,630)" name="Tunnel">
-      <a name="label" val="sel_ext_op"/>
+    <comp lib="0" loc="(850,510)" name="Tunnel">
+      <a name="label" val="sel_op0"/>
     </comp>
-    <comp lib="0" loc="(320,40)" name="Probe">
-      <a name="facing" val="south"/>
-      <a name="radix" val="10signed"/>
+    <comp lib="0" loc="(850,590)" name="Tunnel">
+      <a name="label" val="e_wr_CCR"/>
     </comp>
-    <comp lib="0" loc="(270,720)" name="Clock">
-      <a name="facing" val="north"/>
+    <comp lib="0" loc="(850,550)" name="Tunnel">
+      <a name="label" val="sel_op1"/>
     </comp>
-    <comp lib="0" loc="(740,50)" name="Tunnel">
+    <comp lib="0" loc="(110,530)" name="Constant">
       <a name="facing" val="south"/>
-      <a name="label" val="is_sub"/>
-    </comp>
-    <comp lib="6" loc="(708,756)" name="Text">
-      <a name="text" val="ROM de décodage des branchements"/>
+      <a name="value" val="0x0"/>
     </comp>
     <comp lib="0" loc="(720,190)" name="Tunnel">
       <a name="label" val="is_sub"/>
     </comp>
-    <comp lib="0" loc="(850,410)" name="Tunnel">
-      <a name="label" val="is_branch"/>
+    <comp lib="0" loc="(150,610)" name="Tunnel">
+      <a name="facing" val="north"/>
+      <a name="width" val="8"/>
+      <a name="label" val="result"/>
     </comp>
-    <comp lib="0" loc="(510,520)" name="Splitter">
-      <a name="incoming" val="8"/>
-      <a name="bit1" val="0"/>
-      <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"/>
+    <comp lib="4" loc="(500,240)" name="RAM">
+      <a name="addrWidth" val="4"/>
+      <a name="bus" val="separate"/>
     </comp>
-    <comp lib="0" loc="(260,430)" name="Probe">
+    <comp lib="3" loc="(760,110)" name="Adder"/>
+    <comp lib="0" loc="(640,130)" name="Probe">
       <a name="facing" val="south"/>
-      <a name="radix" val="16"/>
-    </comp>
-    <comp lib="0" loc="(370,660)" name="Tunnel">
-      <a name="label" val="reset"/>
-    </comp>
-    <comp lib="0" loc="(710,560)" name="Splitter">
-      <a name="fanout" val="12"/>
-      <a name="incoming" val="12"/>
-    </comp>
-    <comp lib="0" loc="(850,590)" name="Tunnel">
-      <a name="label" val="e_wr_CCR"/>
-    </comp>
-    <comp lib="0" loc="(820,250)" name="Splitter">
-      <a name="fanout" val="8"/>
-      <a name="incoming" val="8"/>
+      <a name="radix" val="10signed"/>
     </comp>
-    <comp lib="0" loc="(250,130)" name="Tunnel">
-      <a name="facing" val="north"/>
-      <a name="label" val="reset"/>
+    <comp lib="6" loc="(620,516)" name="Text">
+      <a name="text" val="ROM de décodage"/>
     </comp>
-    <comp lib="0" loc="(640,130)" name="Probe">
+    <comp lib="0" loc="(320,40)" name="Probe">
       <a name="facing" val="south"/>
       <a name="radix" val="10signed"/>
     </comp>
-    <comp lib="1" loc="(650,250)" name="NOT Gate">
-      <a name="width" val="8"/>
-    </comp>
-    <comp lib="0" loc="(830,970)" name="Tunnel">
-      <a name="facing" val="east"/>
-      <a name="label" val="clk"/>
+    <comp lib="0" loc="(850,490)" name="Tunnel">
+      <a name="label" val="sel_A_src"/>
     </comp>
-    <comp lib="0" loc="(850,550)" name="Tunnel">
-      <a name="label" val="sel_op1"/>
+    <comp lib="6" loc="(399,524)" name="Text">
+      <a name="text" val="Mémoire programme"/>
     </comp>
-    <comp lib="1" loc="(910,760)" name="AND Gate">
-      <a name="inputs" val="2"/>
+    <comp lib="2" loc="(410,100)" name="Multiplexer">
+      <a name="width" val="8"/>
+      <a name="enable" val="false"/>
     </comp>
-    <comp lib="4" loc="(470,570)" name="ROM">
-      <a name="contents">addr/data: 8 8
-40 81 62 ee 85 81 84
-</a>
+    <comp lib="0" loc="(850,470)" name="Tunnel">
+      <a name="label" val="is_ba"/>
     </comp>
-    <comp lib="2" loc="(200,90)" name="Multiplexer">
+    <comp lib="2" loc="(180,190)" name="Multiplexer">
+      <a name="facing" val="west"/>
       <a name="width" val="8"/>
       <a name="enable" val="false"/>
     </comp>
-    <comp lib="0" loc="(830,930)" name="Tunnel">
-      <a name="facing" val="east"/>
-      <a name="label" val="e_wr_CCR"/>
+    <comp lib="4" loc="(800,800)" name="ROM">
+      <a name="addrWidth" val="4"/>
+      <a name="dataWidth" val="1"/>
+      <a name="contents">addr/data: 4 1
+0
+</a>
     </comp>
-    <comp lib="0" loc="(140,130)" name="Tunnel">
+    <comp lib="0" loc="(270,720)" name="Clock">
       <a name="facing" val="north"/>
-      <a name="label" val="sel_A_src"/>
     </comp>
-    <comp lib="0" loc="(510,840)" name="Tunnel">
+    <comp lib="0" loc="(510,720)" name="Tunnel">
       <a name="facing" val="east"/>
-      <a name="label" val="branch_if_N"/>
+      <a name="label" val="is_ba"/>
     </comp>
-    <comp lib="3" loc="(760,110)" name="Adder"/>
-    <comp lib="1" loc="(930,950)" name="AND Gate">
-      <a name="inputs" val="2"/>
+    <comp lib="0" loc="(740,50)" name="Tunnel">
+      <a name="facing" val="south"/>
+      <a name="label" val="is_sub"/>
     </comp>
-    <comp lib="0" loc="(510,930)" name="Tunnel">
+    <comp lib="0" loc="(830,930)" name="Tunnel">
       <a name="facing" val="east"/>
-      <a name="label" val="e_wr_A"/>
+      <a name="label" val="e_wr_CCR"/>
     </comp>
-    <comp lib="2" loc="(410,100)" name="Multiplexer">
+    <comp lib="0" loc="(70,570)" name="Constant">
       <a name="width" val="8"/>
-      <a name="enable" val="false"/>
+    </comp>
+    <comp lib="0" loc="(850,410)" name="Tunnel">
+      <a name="label" val="is_branch"/>
     </comp>
     <comp lib="3" loc="(130,560)" name="Adder"/>
-    <comp lib="4" loc="(690,560)" name="ROM">
-      <a name="addrWidth" val="4"/>
-      <a name="dataWidth" val="12"/>
-      <a name="contents">addr/data: 4 12
-8*0 380
-</a>
+    <comp lib="1" loc="(930,950)" name="AND Gate">
+      <a name="inputs" val="2"/>
     </comp>
-    <comp lib="0" loc="(1010,740)" name="Tunnel">
-      <a name="label" val="do_branch"/>
+    <comp lib="0" loc="(710,560)" name="Splitter">
+      <a name="fanout" val="12"/>
+      <a name="incoming" val="12"/>
     </comp>
-    <comp lib="0" loc="(680,950)" name="Tunnel">
-      <a name="label" val="write_A"/>
+    <comp lib="0" loc="(850,430)" name="Tunnel">
+      <a name="label" val="branch_if_Z"/>
     </comp>
-    <comp lib="0" loc="(970,320)" name="Tunnel">
-      <a name="facing" val="north"/>
-      <a name="label" val="reset"/>
+    <comp lib="6" loc="(431,196)" name="Text">
+      <a name="text" val="Mémoire données"/>
     </comp>
-    <comp lib="0" loc="(850,530)" name="Tunnel">
-      <a name="label" val="is_sub"/>
+    <comp lib="4" loc="(290,570)" name="Register">
+      <a name="trigger" val="falling"/>
+      <a name="label" val="PC"/>
     </comp>
-    <comp lib="0" loc="(510,820)" name="Tunnel">
+    <comp lib="0" loc="(590,440)" name="Bit Extender">
+      <a name="in_width" val="4"/>
+      <a name="out_width" val="8"/>
+      <a name="type" val="sign"/>
+    </comp>
+    <comp lib="0" loc="(510,970)" name="Tunnel">
       <a name="facing" val="east"/>
-      <a name="label" val="Z"/>
+      <a name="label" val="clk"/>
     </comp>
-    <comp lib="0" loc="(850,450)" name="Tunnel">
-      <a name="label" val="branch_if_N"/>
+    <comp lib="0" loc="(1010,210)" name="Tunnel">
+      <a name="label" val="Z"/>
     </comp>
   </circuit>
 </project>