Processors have always been a mystery to me and at the time of this project, I just finished my breadboard pong game. So I took it upon myself to figure out how exactly they work. With a huge help from Ben Eater's YouTube Video series (Linked Below), I started creating my own breadboard 8 bit computer. Now a disclaimer before Proceeding, I was unable get this project to work as a whole due to multiple factors that will be described below, however I was able to get a majority of the components working Individually while also satisfying my main goal of learning how a processor works.
A large portion of this project was research, I wanted to learn and to do so I started with the media I was most familiar with... YouTube. I found Ben Eaters Video series on exactly the topic I was about to start on, creating a breadboard 8 bit computer. In addition to the YouTube series, I also gathered all the datasheets for components that I already had with the goal of not buying any new components. I worked on figuring out how to substitute certain components with combinations of other ICs.
There were several road blocks that prevented me from running anything more than a glorified adder on my processor. The first and largest was my lack of understanding how Instruction memory and fetch logic worked. I understood the basics however when it came time to implement it, I was unsure of how to start. The part I misunderstood specifically was that each instruction used multiple clock cycles (Something I would learn in the MIPS processor project) this multiple cycle instruction memory fetching was the most conceptually challenging aspect but there was also a skill/experience barrier I ran into. EEPROM or Electronically Erasable Programmable Read Only Memory is a very convenient way of storing combinational logic used for each instruction. It takes in an address and spits out pre-programmed non-volatile data, in this case all the different instructions that the processor could use. The skill issue arose while trying to initially program the EEPROM. My C skills were not very good at the time so using an Arduino to program every address was a very daunting task. In the end, these two roadblocks stopped me from achieving the full processor, however I was able to get the ALU working for Adding, Subtracting, Shifting, Logical And, and Logical Or. It was cool seeing it all work together and I learned a lot of useful concepts throughout the project.