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.

The computer system that I designed and built (Version 1). It consists of almost 100 ICs mostly as CPU, and some for handling Input/output.
The graphical simulator I designed to show the operation and data flow of our designed computer system in detail.