A pipelined 8 bit Minecraft CPU.
Specifications:
- 16 bytes of RAM expandable up to 224 bytes
- 8 I/O ports expandable up to 32 ports
- 8 GP registers in a 12t dataloop
- 0.83hz clock
- 3op harvard drr architecture, meaning 2 byte instruction words. 5 bits dedicated to the opcode and 13 to the operand.
- Pointers available for both RAM and I/O
- 3 flags available for conditonal branching
Further Details:
- 3 stage pipeline with Fetch, Decode and Execute stages
- All read and write operations are performed within the Execute stage, avoiding data hazards
- Branching follows a predict not taken, flushing the pipeline when the branch is taken
- Unfortunately because I had to rebuild using litematica, there was an error in my reproduction, however litematica would not show where. This means that the clock had to be changed to 16t (0.63hz) instead, however I have already fully tested the original and it works for all instances at 12t (0.83hz).
- I've managed to program PONG before as further proof of validity.
Programs
- Bubble sort is currently programmed onto the CPU, initializing to a dataset of 1 until 8. It will follow standard bubble sort algorithm to sort the dataset in descending order from left to right. The final expected data is (8, 7, 6, 5, 4, 3, 2 ,1)
- To start the CPU, go around the back where there should be a clock controlled by a lever which is colored purple. Simply flick the lever and let the CPU do it's thing.
- To reset the program first turn off the clock then hit the button on the cyan circuit to reset everything.
- To observe the output go back around to the front where the numbers are all outputted in binary, with each number being represented by one of the 8 inbuilt I/O ports.
Comments
Denied
Yes we do judge the skills of a player, and with that your CPU is probably a decent building.
However we also judge the effort spent on it on our server. And if that effort is done elsewhere and imported to our server, we cannot really judge or acknowledge it.
Also hint: Due to hacky technical practices which Litematica applies - we do not appreciate its usage. (Like it sents packets to the server, it should not - causing issues and stacktraces).