Minecraft name: Eithanz
What’s a thing you have made which demonstrates sufficient engineering knowledge?: A fully working Minecraft CPU
The ISA for the cpu: ISA
Videos showing off the CPU performing programs:
Basic sand particle sim
Radix sort
Pong on ram screen using bitwise stuff
additional programs are fib, collatz, bubble sort, bouncing ball
Specs:
- 1 Hz clock
- 3 stage pipeline (fetch decode execute)
- has forwarders to handle data hazards
- 7 Dual read registers, register 0 reads 0, register 7 used as ram pointer
- 64 Bytes of RAM, addresses 48-63 are mapped to a screen
- 7 ports, port 0 reads a random number
- 256 instructions (two 256 byte proms, 16 bit instruction length)
- 2 lines, 16 bytes per line instruction cache that auto swaps
- 10 deep callstack
What engineering work went into designing this device?:
- First of all the cpu is made out of things that i understand, and if i did not understand a component i did not use them as such i used a 5t cca even though using a 3t one would have saved me a lot of trouble.
- i planned the placement of each component before starting to make the cpu, and then proceeded to make the data loop and tweaked it until i found a shape that fit my plans
- after my first pipelined cpu the Incel 1 which i used to learn many things like pipelining and caches i made this one as an upgrade and as a show of understanding building it without external help (mostly)
specifically the engineering work was physical placement of components, then made the ISA, then had to compromise and rearrange to make wiring components easier while also keeping the ISA, then testing and debugging all of the things with the cpu, on my discord project thread i had made a list of many problems i had fixed along a week of debugging which counted above 20 i believe.
additionally while i was writing the programs i made sure to optimize based on the cache system (fit within 32 instructions or at the very least keep different loops in 32 instructions)
i have also made for it an assembler that ended up being a generalized assembler that can be used for most ISAs by making an ISA format file for it, and have also made a schematic maker for its specially made by me 1 tick observer prom
Image/s and/or video/s of the device:
Basic sand particle sim
Radix sort
Special thanks to Koyarno who taught me the more advanced aspects of this CPU and helped me make the first version, from which i learned how to make these things on my own.