The design and implementation of a 4 – bit computer poses a really challenging, yet wonderful design and implementation concern to the novice hardware designers. It requires a good understanding of various design techniques and a complete realization of the computer architecture. It also provides a fragrance of a large scale design challenge of designing a whole computer in a small scale version imposed by the 4-bit data size and a restricted instruction set.
The hardware designers often tend to make a language out of the different hardware components. Whenever we think of logical ANDing, ORing or XORing, the respective logic gates readily provides us with such functions. We always think of branching in terms of a multiplexer. A for loop or a while loop often gives us the illusion of using a counter or a flip-flop. These little things form the vocabulary of a hardware design. An instruction uses this vocabulary to do some definite task. Thus an instruction set defines the complete specification of the assembly language lying beneath the hardware.
In this project, we implemented an instruction set consisting of 28 instructions. Our computer has a 4 bit data length and an 8 bit address length. However, the design is easily extendible to a more powerful computer.
The circuit diagram of our 4/8 bit microprocessor can be found here.
The project report can be found here.