One of my motivations for becoming an electrical engineer was to understand how a computer worked at the most basic levels. Hence as an undergraduate I choose to study computer architecture. Our final project was to design a 32 bit MIPS processor in VHDL. There were three parts to the project. The first part was the design of the ALU, the array multiplier and the barrel shifter to be used in the following two parts. The second part was a single cycle processor including a test bench to test all 45 RISC instructions supported by our processor. We were also required to write bubble sort and merge sort algorithms for the project in MIPS assembly language. In the final part of the processor design we had to pipeline the processor. Forwarding and hazard detection logic had to be implemented along with each stage’s pipeline register.