Building a Simple Computer System From Scratch
Hardware Prototyping and Software Design of a Basic CPU from Scratch for Pedagogical Purposes (ICL'12, IJSTE'16)
This was mostly my BSc Project at Sharif University of Technology back in 2011-2013 in final years of my undergraduate program.
Brief Description: For a first course in computer architecture, it is very useful for students to use a simple, real CPU and learn most of its underlying details. Thus with the guidance of my project advisor, I designed, simulated and implementated a complete simple computer system with all its required hardware and software toolset. The significance of this project was two-fold. (1) The design choices were important as they impact what kind of computer system features and in what depth students should first learn. (2) it was a huge engineering work. The work started almost from scratch (instruction set design) up to the final implementation with over 100 basic logic ICs on a few PCBs. In this project, I also designed various software tools to provide a graphical simulator, assembler for our instruction set and real-time hardware monitoring to show the behavior of a real but simple CPU clearly. This research/engineering project also resulted in two publications in ICL’12 and a technical note in IJSTE’16.