University stuff.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

cpu.circ 20KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <project source="2.7.1" version="1.0">
  3. This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
  4. <lib desc="#Wiring" name="0">
  5. <tool name="Splitter">
  6. <a name="facing" val="south"/>
  7. <a name="fanout" val="4"/>
  8. <a name="incoming" val="4"/>
  9. <a name="appear" val="center"/>
  10. </tool>
  11. </lib>
  12. <lib desc="#Gates" name="1">
  13. <tool name="NOT Gate">
  14. <a name="facing" val="north"/>
  15. </tool>
  16. <tool name="Buffer">
  17. <a name="facing" val="south"/>
  18. <a name="width" val="8"/>
  19. </tool>
  20. <tool name="AND Gate">
  21. <a name="facing" val="south"/>
  22. <a name="size" val="30"/>
  23. <a name="inputs" val="2"/>
  24. </tool>
  25. <tool name="OR Gate">
  26. <a name="width" val="2"/>
  27. <a name="size" val="30"/>
  28. <a name="inputs" val="2"/>
  29. </tool>
  30. <tool name="XOR Gate">
  31. <a name="size" val="30"/>
  32. <a name="inputs" val="2"/>
  33. </tool>
  34. </lib>
  35. <lib desc="#Plexers" name="2">
  36. <tool name="Multiplexer">
  37. <a name="facing" val="north"/>
  38. <a name="width" val="4"/>
  39. </tool>
  40. <tool name="Decoder">
  41. <a name="facing" val="north"/>
  42. <a name="select" val="2"/>
  43. </tool>
  44. <tool name="BitSelector">
  45. <a name="group" val="4"/>
  46. </tool>
  47. </lib>
  48. <lib desc="#Arithmetic" name="3"/>
  49. <lib desc="#Memory" name="4">
  50. <tool name="RAM">
  51. <a name="addrWidth" val="4"/>
  52. </tool>
  53. <tool name="ROM">
  54. <a name="addrWidth" val="4"/>
  55. <a name="contents">addr/data: 4 8
  56. 0
  57. </a>
  58. </tool>
  59. </lib>
  60. <lib desc="#I/O" name="5">
  61. <tool name="LED">
  62. <a name="facing" val="south"/>
  63. </tool>
  64. </lib>
  65. <lib desc="#Base" name="6">
  66. <tool name="Text Tool">
  67. <a name="text" val=""/>
  68. <a name="font" val="SansSerif plain 12"/>
  69. <a name="halign" val="center"/>
  70. <a name="valign" val="base"/>
  71. </tool>
  72. </lib>
  73. <main name="main"/>
  74. <options>
  75. <a name="gateUndefined" val="ignore"/>
  76. <a name="simlimit" val="1000"/>
  77. <a name="simrand" val="0"/>
  78. </options>
  79. <mappings>
  80. <tool lib="6" map="Button2" name="Menu Tool"/>
  81. <tool lib="6" map="Button3" name="Menu Tool"/>
  82. <tool lib="6" map="Ctrl Button1" name="Menu Tool"/>
  83. </mappings>
  84. <toolbar>
  85. <tool lib="6" name="Poke Tool"/>
  86. <tool lib="6" name="Edit Tool"/>
  87. <tool lib="6" name="Text Tool">
  88. <a name="text" val=""/>
  89. <a name="font" val="SansSerif plain 12"/>
  90. <a name="halign" val="center"/>
  91. <a name="valign" val="base"/>
  92. </tool>
  93. <sep/>
  94. <tool lib="0" name="Pin">
  95. <a name="facing" val="south"/>
  96. <a name="tristate" val="false"/>
  97. </tool>
  98. <tool lib="0" name="Pin">
  99. <a name="facing" val="south"/>
  100. <a name="output" val="true"/>
  101. <a name="labelloc" val="east"/>
  102. </tool>
  103. <tool lib="1" name="NOT Gate"/>
  104. <tool lib="1" name="AND Gate"/>
  105. <tool lib="1" name="OR Gate"/>
  106. </toolbar>
  107. <circuit name="main">
  108. <a name="circuit" val="main"/>
  109. <a name="clabel" val=""/>
  110. <a name="clabelup" val="east"/>
  111. <a name="clabelfont" val="SansSerif plain 12"/>
  112. <wire from="(660,260)" to="(660,270)"/>
  113. <wire from="(450,400)" to="(450,470)"/>
  114. <wire from="(580,180)" to="(580,190)"/>
  115. <wire from="(210,170)" to="(210,180)"/>
  116. <wire from="(250,170)" to="(250,180)"/>
  117. <wire from="(500,300)" to="(550,300)"/>
  118. <wire from="(300,180)" to="(300,190)"/>
  119. <wire from="(560,210)" to="(600,210)"/>
  120. <wire from="(580,190)" to="(620,190)"/>
  121. <wire from="(640,480)" to="(640,510)"/>
  122. <wire from="(280,120)" to="(280,150)"/>
  123. <wire from="(560,160)" to="(560,180)"/>
  124. <wire from="(700,260)" to="(700,280)"/>
  125. <wire from="(570,250)" to="(570,290)"/>
  126. <wire from="(680,480)" to="(680,520)"/>
  127. <wire from="(550,460)" to="(570,460)"/>
  128. <wire from="(450,470)" to="(480,470)"/>
  129. <wire from="(440,390)" to="(440,500)"/>
  130. <wire from="(270,180)" to="(270,290)"/>
  131. <wire from="(260,180)" to="(270,180)"/>
  132. <wire from="(270,150)" to="(280,150)"/>
  133. <wire from="(180,140)" to="(190,140)"/>
  134. <wire from="(230,150)" to="(240,150)"/>
  135. <wire from="(440,500)" to="(520,500)"/>
  136. <wire from="(720,440)" to="(720,490)"/>
  137. <wire from="(460,490)" to="(720,490)"/>
  138. <wire from="(560,440)" to="(570,440)"/>
  139. <wire from="(430,380)" to="(430,510)"/>
  140. <wire from="(250,260)" to="(250,270)"/>
  141. <wire from="(250,220)" to="(250,230)"/>
  142. <wire from="(230,290)" to="(270,290)"/>
  143. <wire from="(560,210)" to="(560,230)"/>
  144. <wire from="(550,440)" to="(550,460)"/>
  145. <wire from="(550,160)" to="(550,180)"/>
  146. <wire from="(570,180)" to="(570,200)"/>
  147. <wire from="(600,210)" to="(600,230)"/>
  148. <wire from="(580,190)" to="(580,230)"/>
  149. <wire from="(620,190)" to="(620,230)"/>
  150. <wire from="(600,250)" to="(600,290)"/>
  151. <wire from="(430,510)" to="(640,510)"/>
  152. <wire from="(490,290)" to="(490,400)"/>
  153. <wire from="(480,160)" to="(500,160)"/>
  154. <wire from="(650,310)" to="(740,310)"/>
  155. <wire from="(640,300)" to="(730,300)"/>
  156. <wire from="(230,270)" to="(250,270)"/>
  157. <wire from="(530,460)" to="(530,520)"/>
  158. <wire from="(250,220)" to="(260,220)"/>
  159. <wire from="(460,410)" to="(540,410)"/>
  160. <wire from="(710,440)" to="(720,440)"/>
  161. <wire from="(600,250)" to="(610,250)"/>
  162. <wire from="(740,180)" to="(740,310)"/>
  163. <wire from="(480,460)" to="(480,470)"/>
  164. <wire from="(550,220)" to="(590,220)"/>
  165. <wire from="(570,200)" to="(610,200)"/>
  166. <wire from="(550,300)" to="(590,300)"/>
  167. <wire from="(560,180)" to="(560,210)"/>
  168. <wire from="(180,120)" to="(180,140)"/>
  169. <wire from="(730,220)" to="(730,300)"/>
  170. <wire from="(580,160)" to="(580,180)"/>
  171. <wire from="(180,120)" to="(280,120)"/>
  172. <wire from="(440,390)" to="(480,390)"/>
  173. <wire from="(430,380)" to="(470,380)"/>
  174. <wire from="(450,400)" to="(490,400)"/>
  175. <wire from="(520,460)" to="(520,500)"/>
  176. <wire from="(420,290)" to="(420,520)"/>
  177. <wire from="(210,210)" to="(240,210)"/>
  178. <wire from="(480,290)" to="(480,390)"/>
  179. <wire from="(570,140)" to="(590,140)"/>
  180. <wire from="(550,380)" to="(640,380)"/>
  181. <wire from="(560,390)" to="(650,390)"/>
  182. <wire from="(270,290)" to="(420,290)"/>
  183. <wire from="(610,280)" to="(700,280)"/>
  184. <wire from="(500,440)" to="(510,440)"/>
  185. <wire from="(460,440)" to="(470,440)"/>
  186. <wire from="(720,220)" to="(730,220)"/>
  187. <wire from="(540,440)" to="(550,440)"/>
  188. <wire from="(550,220)" to="(550,230)"/>
  189. <wire from="(570,320)" to="(570,330)"/>
  190. <wire from="(590,220)" to="(590,230)"/>
  191. <wire from="(610,320)" to="(610,330)"/>
  192. <wire from="(610,280)" to="(610,290)"/>
  193. <wire from="(500,290)" to="(500,300)"/>
  194. <wire from="(260,170)" to="(260,180)"/>
  195. <wire from="(260,210)" to="(260,220)"/>
  196. <wire from="(560,270)" to="(660,270)"/>
  197. <wire from="(420,520)" to="(530,520)"/>
  198. <wire from="(570,200)" to="(570,230)"/>
  199. <wire from="(610,200)" to="(610,230)"/>
  200. <wire from="(640,300)" to="(640,380)"/>
  201. <wire from="(650,310)" to="(650,390)"/>
  202. <wire from="(460,410)" to="(460,440)"/>
  203. <wire from="(280,150)" to="(280,180)"/>
  204. <wire from="(330,160)" to="(330,190)"/>
  205. <wire from="(560,270)" to="(560,290)"/>
  206. <wire from="(570,160)" to="(570,180)"/>
  207. <wire from="(470,290)" to="(470,380)"/>
  208. <wire from="(590,140)" to="(590,180)"/>
  209. <wire from="(550,180)" to="(550,220)"/>
  210. <wire from="(540,370)" to="(540,410)"/>
  211. <wire from="(530,520)" to="(680,520)"/>
  212. <wire from="(590,180)" to="(740,180)"/>
  213. <wire from="(300,190)" to="(330,190)"/>
  214. <wire from="(280,180)" to="(300,180)"/>
  215. <wire from="(250,270)" to="(460,270)"/>
  216. <wire from="(460,450)" to="(460,490)"/>
  217. <wire from="(460,450)" to="(470,450)"/>
  218. <wire from="(490,200)" to="(500,200)"/>
  219. <wire from="(330,160)" to="(340,160)"/>
  220. <wire from="(550,380)" to="(550,440)"/>
  221. <wire from="(560,390)" to="(560,440)"/>
  222. <wire from="(490,200)" to="(490,260)"/>
  223. <comp lib="0" loc="(570,140)" name="Splitter">
  224. <a name="facing" val="south"/>
  225. <a name="fanout" val="4"/>
  226. <a name="incoming" val="4"/>
  227. <a name="appear" val="center"/>
  228. </comp>
  229. <comp lib="4" loc="(480,160)" name="ROM">
  230. <a name="addrWidth" val="4"/>
  231. <a name="contents">addr/data: 4 8
  232. 85 97 b1 81 94 a1
  233. </a>
  234. </comp>
  235. <comp lib="1" loc="(250,230)" name="NOT Gate">
  236. <a name="facing" val="north"/>
  237. </comp>
  238. <comp lib="0" loc="(700,260)" name="Splitter">
  239. <a name="facing" val="north"/>
  240. <a name="fanout" val="4"/>
  241. <a name="incoming" val="4"/>
  242. <a name="appear" val="center"/>
  243. </comp>
  244. <comp lib="4" loc="(270,150)" name="Register">
  245. <a name="width" val="4"/>
  246. </comp>
  247. <comp loc="(570,320)" name="mux-4">
  248. <a name="facing" val="south"/>
  249. </comp>
  250. <comp lib="0" loc="(500,160)" name="Splitter">
  251. <a name="facing" val="south"/>
  252. <a name="fanout" val="8"/>
  253. <a name="incoming" val="8"/>
  254. </comp>
  255. <comp lib="0" loc="(570,250)" name="Splitter">
  256. <a name="facing" val="north"/>
  257. <a name="fanout" val="4"/>
  258. <a name="incoming" val="4"/>
  259. <a name="appear" val="center"/>
  260. </comp>
  261. <comp lib="0" loc="(610,330)" name="Splitter">
  262. <a name="facing" val="south"/>
  263. <a name="fanout" val="4"/>
  264. <a name="incoming" val="4"/>
  265. <a name="appear" val="center"/>
  266. </comp>
  267. <comp lib="0" loc="(540,370)" name="Splitter">
  268. <a name="facing" val="north"/>
  269. <a name="fanout" val="8"/>
  270. <a name="incoming" val="8"/>
  271. <a name="appear" val="right"/>
  272. </comp>
  273. <comp lib="0" loc="(610,250)" name="Splitter">
  274. <a name="facing" val="north"/>
  275. <a name="fanout" val="4"/>
  276. <a name="incoming" val="4"/>
  277. <a name="appear" val="center"/>
  278. </comp>
  279. <comp lib="1" loc="(210,210)" name="NOT Gate">
  280. <a name="facing" val="south"/>
  281. </comp>
  282. <comp lib="0" loc="(190,160)" name="Constant">
  283. <a name="width" val="4"/>
  284. </comp>
  285. <comp lib="0" loc="(720,220)" name="Splitter">
  286. <a name="facing" val="south"/>
  287. <a name="fanout" val="8"/>
  288. <a name="incoming" val="8"/>
  289. <a name="appear" val="right"/>
  290. </comp>
  291. <comp lib="5" loc="(300,180)" name="Hex Digit Display"/>
  292. <comp lib="5" loc="(230,290)" name="Button">
  293. <a name="label" val="Reset"/>
  294. <a name="labelloc" val="west"/>
  295. </comp>
  296. <comp lib="4" loc="(540,440)" name="Register">
  297. <a name="trigger" val="falling"/>
  298. </comp>
  299. <comp lib="6" loc="(411,111)" name="Text">
  300. <a name="text" val="Program ROM"/>
  301. </comp>
  302. <comp loc="(500,440)" name="mux-8"/>
  303. <comp lib="0" loc="(660,260)" name="Splitter">
  304. <a name="facing" val="north"/>
  305. <a name="fanout" val="4"/>
  306. <a name="incoming" val="4"/>
  307. <a name="appear" val="center"/>
  308. </comp>
  309. <comp lib="0" loc="(500,200)" name="Splitter">
  310. <a name="facing" val="north"/>
  311. <a name="fanout" val="4"/>
  312. <a name="incoming" val="4"/>
  313. <a name="appear" val="right"/>
  314. </comp>
  315. <comp loc="(610,320)" name="mux-4">
  316. <a name="facing" val="south"/>
  317. </comp>
  318. <comp lib="3" loc="(230,150)" name="Adder">
  319. <a name="width" val="4"/>
  320. </comp>
  321. <comp lib="4" loc="(710,440)" name="RAM">
  322. <a name="addrWidth" val="4"/>
  323. <a name="bus" val="separate"/>
  324. </comp>
  325. <comp lib="5" loc="(230,270)" name="Button">
  326. <a name="label" val="Clock"/>
  327. <a name="labelloc" val="west"/>
  328. </comp>
  329. <comp loc="(480,260)" name="decode"/>
  330. <comp lib="1" loc="(250,180)" name="AND Gate">
  331. <a name="facing" val="north"/>
  332. <a name="size" val="30"/>
  333. <a name="inputs" val="2"/>
  334. </comp>
  335. <comp lib="0" loc="(570,330)" name="Splitter">
  336. <a name="facing" val="south"/>
  337. <a name="fanout" val="4"/>
  338. <a name="incoming" val="4"/>
  339. <a name="appear" val="center"/>
  340. </comp>
  341. <comp lib="6" loc="(231,108)" name="Text">
  342. <a name="text" val="Program counter"/>
  343. </comp>
  344. </circuit>
  345. <circuit name="mux-4">
  346. <a name="circuit" val="mux-4"/>
  347. <a name="clabel" val=""/>
  348. <a name="clabelup" val="east"/>
  349. <a name="clabelfont" val="SansSerif plain 12"/>
  350. <appear>
  351. <rect fill="none" height="30" stroke="#000000" stroke-width="2" width="30" x="50" y="50"/>
  352. <text font-family="SansSerif" font-size="12" text-anchor="middle" x="65" y="72">4</text>
  353. <circ-port height="8" pin="220,230" width="8" x="46" y="56"/>
  354. <circ-port height="8" pin="220,270" width="8" x="46" y="66"/>
  355. <circ-port height="10" pin="370,250" width="10" x="75" y="55"/>
  356. <circ-port height="8" pin="250,340" width="8" x="56" y="76"/>
  357. <circ-anchor facing="east" height="6" width="6" x="77" y="57"/>
  358. </appear>
  359. <wire from="(260,230)" to="(260,250)"/>
  360. <wire from="(260,250)" to="(260,270)"/>
  361. <wire from="(250,310)" to="(280,310)"/>
  362. <wire from="(260,250)" to="(370,250)"/>
  363. <wire from="(250,200)" to="(250,220)"/>
  364. <wire from="(280,200)" to="(280,310)"/>
  365. <wire from="(250,280)" to="(250,310)"/>
  366. <wire from="(250,310)" to="(250,340)"/>
  367. <wire from="(220,230)" to="(240,230)"/>
  368. <wire from="(220,270)" to="(240,270)"/>
  369. <comp lib="1" loc="(260,230)" name="Controlled Buffer">
  370. <a name="width" val="4"/>
  371. <a name="control" val="left"/>
  372. </comp>
  373. <comp lib="1" loc="(250,200)" name="NOT Gate">
  374. <a name="facing" val="west"/>
  375. </comp>
  376. <comp lib="0" loc="(220,270)" name="Pin">
  377. <a name="width" val="4"/>
  378. <a name="tristate" val="false"/>
  379. <a name="label" val="Input 1"/>
  380. </comp>
  381. <comp lib="1" loc="(260,270)" name="Controlled Buffer">
  382. <a name="width" val="4"/>
  383. </comp>
  384. <comp lib="0" loc="(250,340)" name="Pin">
  385. <a name="facing" val="north"/>
  386. <a name="tristate" val="false"/>
  387. <a name="label" val="Control"/>
  388. </comp>
  389. <comp lib="0" loc="(370,250)" name="Pin">
  390. <a name="facing" val="west"/>
  391. <a name="output" val="true"/>
  392. <a name="width" val="4"/>
  393. <a name="label" val="Output"/>
  394. <a name="labelloc" val="east"/>
  395. </comp>
  396. <comp lib="0" loc="(220,230)" name="Pin">
  397. <a name="width" val="4"/>
  398. <a name="tristate" val="false"/>
  399. <a name="label" val="Input 0"/>
  400. </comp>
  401. </circuit>
  402. <circuit name="mux-8">
  403. <a name="circuit" val="mux-8"/>
  404. <a name="clabel" val=""/>
  405. <a name="clabelup" val="east"/>
  406. <a name="clabelfont" val="SansSerif plain 12"/>
  407. <appear>
  408. <rect fill="none" height="30" stroke="#000000" stroke-width="2" width="30" x="50" y="50"/>
  409. <text font-family="SansSerif" font-size="12" text-anchor="middle" x="65" y="70">8</text>
  410. <circ-port height="8" pin="220,230" width="8" x="46" y="56"/>
  411. <circ-port height="8" pin="220,270" width="8" x="46" y="66"/>
  412. <circ-port height="10" pin="370,250" width="10" x="75" y="55"/>
  413. <circ-port height="8" pin="250,340" width="8" x="56" y="76"/>
  414. <circ-anchor facing="east" height="6" width="6" x="77" y="57"/>
  415. </appear>
  416. <wire from="(260,230)" to="(260,250)"/>
  417. <wire from="(260,250)" to="(260,270)"/>
  418. <wire from="(250,310)" to="(280,310)"/>
  419. <wire from="(260,250)" to="(370,250)"/>
  420. <wire from="(250,200)" to="(250,220)"/>
  421. <wire from="(280,200)" to="(280,310)"/>
  422. <wire from="(250,310)" to="(250,340)"/>
  423. <wire from="(250,280)" to="(250,310)"/>
  424. <wire from="(220,230)" to="(240,230)"/>
  425. <wire from="(220,270)" to="(240,270)"/>
  426. <comp lib="1" loc="(260,230)" name="Controlled Buffer">
  427. <a name="width" val="8"/>
  428. <a name="control" val="left"/>
  429. </comp>
  430. <comp lib="1" loc="(260,270)" name="Controlled Buffer">
  431. <a name="width" val="8"/>
  432. </comp>
  433. <comp lib="0" loc="(370,250)" name="Pin">
  434. <a name="facing" val="west"/>
  435. <a name="output" val="true"/>
  436. <a name="width" val="8"/>
  437. <a name="label" val="Output"/>
  438. <a name="labelloc" val="east"/>
  439. </comp>
  440. <comp lib="1" loc="(250,200)" name="NOT Gate">
  441. <a name="facing" val="west"/>
  442. </comp>
  443. <comp lib="0" loc="(220,270)" name="Pin">
  444. <a name="width" val="8"/>
  445. <a name="tristate" val="false"/>
  446. <a name="label" val="Input 1"/>
  447. </comp>
  448. <comp lib="0" loc="(220,230)" name="Pin">
  449. <a name="width" val="8"/>
  450. <a name="tristate" val="false"/>
  451. <a name="label" val="Input 0"/>
  452. </comp>
  453. <comp lib="0" loc="(250,340)" name="Pin">
  454. <a name="facing" val="north"/>
  455. <a name="tristate" val="false"/>
  456. <a name="label" val="Control"/>
  457. </comp>
  458. </circuit>
  459. <circuit name="decode">
  460. <a name="circuit" val="decode"/>
  461. <a name="clabel" val=""/>
  462. <a name="clabelup" val="east"/>
  463. <a name="clabelfont" val="SansSerif plain 12"/>
  464. <appear>
  465. <rect fill="none" height="30" stroke="#000000" stroke-width="2" width="45" x="50" y="50"/>
  466. <text font-family="SansSerif" font-size="12" text-anchor="middle" x="73" y="69">decode</text>
  467. <circ-port height="8" pin="230,160" width="8" x="76" y="46"/>
  468. <circ-port height="10" pin="330,390" width="10" x="55" y="75"/>
  469. <circ-port height="10" pin="330,350" width="10" x="65" y="75"/>
  470. <circ-port height="10" pin="330,310" width="10" x="75" y="75"/>
  471. <circ-port height="10" pin="330,270" width="10" x="85" y="75"/>
  472. <circ-port height="8" pin="190,200" width="8" x="46" y="56"/>
  473. <circ-anchor facing="east" height="6" width="6" x="67" y="47"/>
  474. </appear>
  475. <wire from="(220,210)" to="(220,220)"/>
  476. <wire from="(250,260)" to="(250,270)"/>
  477. <wire from="(280,390)" to="(330,390)"/>
  478. <wire from="(270,320)" to="(270,340)"/>
  479. <wire from="(230,230)" to="(230,250)"/>
  480. <wire from="(200,200)" to="(200,220)"/>
  481. <wire from="(250,270)" to="(250,360)"/>
  482. <wire from="(250,360)" to="(290,360)"/>
  483. <wire from="(280,300)" to="(280,390)"/>
  484. <wire from="(260,260)" to="(260,350)"/>
  485. <wire from="(260,350)" to="(290,350)"/>
  486. <wire from="(270,320)" to="(290,320)"/>
  487. <wire from="(270,340)" to="(290,340)"/>
  488. <wire from="(240,200)" to="(240,240)"/>
  489. <wire from="(210,180)" to="(210,220)"/>
  490. <wire from="(280,260)" to="(280,300)"/>
  491. <wire from="(210,250)" to="(230,250)"/>
  492. <wire from="(230,230)" to="(250,230)"/>
  493. <wire from="(280,300)" to="(290,300)"/>
  494. <wire from="(320,310)" to="(330,310)"/>
  495. <wire from="(320,350)" to="(330,350)"/>
  496. <wire from="(250,270)" to="(330,270)"/>
  497. <wire from="(190,200)" to="(200,200)"/>
  498. <wire from="(240,240)" to="(250,240)"/>
  499. <wire from="(270,260)" to="(270,320)"/>
  500. <comp lib="0" loc="(330,270)" name="Pin">
  501. <a name="facing" val="west"/>
  502. <a name="output" val="true"/>
  503. <a name="label" val="low=MSB, high=LSB"/>
  504. <a name="labelloc" val="east"/>
  505. </comp>
  506. <comp lib="0" loc="(190,200)" name="Pin">
  507. <a name="tristate" val="false"/>
  508. <a name="label" val="Enable"/>
  509. </comp>
  510. <comp lib="0" loc="(230,160)" name="Splitter">
  511. <a name="facing" val="south"/>
  512. <a name="fanout" val="4"/>
  513. <a name="incoming" val="4"/>
  514. <a name="appear" val="center"/>
  515. </comp>
  516. <comp lib="2" loc="(250,240)" name="Decoder">
  517. <a name="facing" val="south"/>
  518. <a name="select" val="2"/>
  519. <a name="disabled" val="0"/>
  520. </comp>
  521. <comp lib="0" loc="(330,390)" name="Pin">
  522. <a name="facing" val="west"/>
  523. <a name="output" val="true"/>
  524. <a name="label" val="write RAM"/>
  525. <a name="labelloc" val="east"/>
  526. </comp>
  527. <comp lib="1" loc="(210,250)" name="AND Gate">
  528. <a name="facing" val="south"/>
  529. <a name="size" val="30"/>
  530. <a name="inputs" val="3"/>
  531. </comp>
  532. <comp lib="1" loc="(320,310)" name="OR Gate">
  533. <a name="size" val="30"/>
  534. <a name="inputs" val="2"/>
  535. </comp>
  536. <comp lib="1" loc="(220,210)" name="NOT Gate">
  537. <a name="facing" val="south"/>
  538. </comp>
  539. <comp lib="0" loc="(330,350)" name="Pin">
  540. <a name="facing" val="west"/>
  541. <a name="output" val="true"/>
  542. <a name="label" val="write R"/>
  543. <a name="labelloc" val="east"/>
  544. </comp>
  545. <comp lib="0" loc="(230,160)" name="Pin">
  546. <a name="facing" val="south"/>
  547. <a name="width" val="4"/>
  548. <a name="tristate" val="false"/>
  549. </comp>
  550. <comp lib="0" loc="(240,200)" name="Splitter">
  551. <a name="facing" val="north"/>
  552. <a name="appear" val="center"/>
  553. </comp>
  554. <comp lib="1" loc="(320,350)" name="OR Gate">
  555. <a name="size" val="30"/>
  556. <a name="inputs" val="3"/>
  557. </comp>
  558. <comp lib="0" loc="(330,310)" name="Pin">
  559. <a name="facing" val="west"/>
  560. <a name="output" val="true"/>
  561. <a name="label" val="low=input, high=ram"/>
  562. <a name="labelloc" val="east"/>
  563. </comp>
  564. </circuit>
  565. </project>