Processors internals are too often compared to black magic. That’s why our “MacroProcessor” project started. With two friends, we build an almost complete computer. We only used logic gates (AND, OR, NOT, etc.) to make our own processor from scratch. We've mad a RISC processor whith 3 bit long data and 32 bit-long instructions.
We used a pre-made memory chip as RAM, its inputs being Address/Data/ReadWrite, and it outputed data only. As we can handle 13 bit long memory address and this RAM is very large compared to our system, we could afford to implement display capabilities. To do so, a part of this RAM is monitored by an Arduino which then transmit those data to a computer screen.
We used several softwares to develop our hardware. First is Logisim (see pic): it’s a small logic simulator that enabled us to test the behavior of our logic-gate arrangements. Then comes Eagle, which is a semi-professional electronic CAD software. It enabled us to produce PCB designs to use with our pre-sensitized circuit boards.
The project was aiming to make a small real-time graphical video game with our system. While working for this, we encountered a few bugs that were far from trivial to solve. When we weren’t sure whether it comes from the hardware or the software, our automated test bench was quite handy.
This bench consist of a series of tests uploaded to an Arduino, which feeds the corresponding inputs to the tested system, while checking its outputs. The test report is then downloaded by the computer.