User Tools

Site Tools


2014:8-bit_minecraft_cpu

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
2014:8-bit_minecraft_cpu [2014/12/17 05:56]
siddthesquid
2014:8-bit_minecraft_cpu [2014/12/19 11:47] (current)
siddthesquid [Future Work]
Line 4: Line 4:
  
 Our goals for this project are to: Our goals for this project are to:
-  * Design an 8-bit computer architecture with a 256 total bytes of memory (128 bytes of instruction memory + 128 bytes of data memory) and 8 total one-byte registers (4 architecture specific registers and 4 general registers).+  * Design an 8-bit computer architecture with a 192 total bytes of memory (128 bytes of instruction memory + 64 bytes of data memory) and 8 total one-byte registers (4 architecture specific registers and 4 general registers).
   * Implement our 8-bit CPU into a Minecraft world using a RedPower modpack which contains basic electrical components (such as logic gates, flip flops and latches, clocks, and multiplexers)   * Implement our 8-bit CPU into a Minecraft world using a RedPower modpack which contains basic electrical components (such as logic gates, flip flops and latches, clocks, and multiplexers)
   * Execute programs through our CPU by loading the instruction memory and checking the outputs of the registers or data memory   * Execute programs through our CPU by loading the instruction memory and checking the outputs of the registers or data memory
Line 27: Line 27:
   * 8-bit CPU. This means that each of our registers, memory space, and instructions will be 8 bits long.   * 8-bit CPU. This means that each of our registers, memory space, and instructions will be 8 bits long.
   * Single-cycle CPU. Each instruction takes exactly one cycle to be completed.   * Single-cycle CPU. Each instruction takes exactly one cycle to be completed.
-  * 128-byte data memory+  * 64-byte data memory
   * 128-byte instruction memory   * 128-byte instruction memory
   * 8 registers (each are 1 byte big)   * 8 registers (each are 1 byte big)
Line 93: Line 93:
 Description:​ [Transfer Word] If s = 0, store a byte from the register file to the data memory. The value in register $a will be stored to the address in the data memory indicated by $DMP. If s=1, load a byte from the data memory to the register file. The value stored in the address in the data memory indicated by $DMP will be stored to register $a. Description:​ [Transfer Word] If s = 0, store a byte from the register file to the data memory. The value in register $a will be stored to the address in the data memory indicated by $DMP. If s=1, load a byte from the data memory to the register file. The value stored in the address in the data memory indicated by $DMP will be stored to register $a.
 ---- ----
 +=== Final Schematic ===
 +The following is the final overall schematic of our 8-bit CPU.
 +{{ :​2014:​circuitdiagram.jpg |}}
 +The following is a table depicting how the values of each flag is calculated
 +{{ :​2014:​8bitminecraftcputable2.jpg |}}
  
 +==== Building the World ====
 +
 +In order to build the world, we used a mod pack called Feed The Beast Ultimate. It contains many different mods which made this project possible. The main mod we used was called RedPower, which contains many different logic gates and other circuit components with which we could build our CPU with. We then used MCedit to copy and paste large chunks of repeatable blocks. The following videos show off our world and CPU, and help give a sense of how we built it.
 +
 +[[http://​youtu.be/​k8AO30he_Dg|CompArch Project 8-Bit Minecraft CPU pt.1]]\\
 +[[http://​youtu.be/​4YIL3sc24nk|CompArch Project 8-Bit Minecraft CPU pt.2]]
 +
 +===== Future Work =====
 +
 +We spend a lot of time on this, but there is still a lot of work that can be done on this. For this reason, we are releasing all of our documentation and our world. All instructions will be included in this [[https://​drive.google.com/​file/​d/​0Bw24Rv3qYoQdaHlaUVBwWU9jSWs/​view?​usp=sharing|zip file]]. The following improvements are to be made:
 +  * Minimizing glitches
 +  * Optimizing speed
 +  * Optimizing space
 +  * Expanding CPU Size
 +  * Automated Loading of Instruction Memory.
 +
 +Please enjoy!
2014/8-bit_minecraft_cpu.1418813787.txt.gz ยท Last modified: 2014/12/17 05:56 by siddthesquid