COMP 273 CPU Project Redo

August 31, 2017

CPU

What is it?

A classic CPU design, stimulated on Logisim. Last semester, I took the course COMP 273 Introduction to Computer Systems. It was an interesting course that would “remove all fantasies you have about computers…”. The final project was to build a toy CPU and write a piece of machine code that performs multiplications on that CPU. And thanks to my teammates Robert and Jingxian, our CPU got 20.5/20 points! Later, I redid the whole project on June.

Final project Final project

Why redo?

  • Though the grade was high, there’s space for improvement.

  • I am a little obsessive about neatness.

  • For the final project, I only worked on RAM, part of CU, and multiplication circuit. I would like to try out the rest as well.

  • To enjoy the joy of design.

Project redone Project redone

What’s new?

Fixes:

  • No more buggy wires.

  • No delay issue.

  • First byte of RAM no longer inaccessible.

New features:

  • Clearer layout on all level of circuits.

  • CU now let each instruction has its own counter. No more wasted ticks.

  • All registers united to the same word size of 8 bits. Expandability improved.

  • When ticks enabled (system starts), the process of loading ROM to RAM is now fully automatic.

  • Natural way of input. The inputting of value to register and the starting of computation is now automatic.

  • Build in automatic reset feature. The CPU will be ready for the next task without any reconfigurations.

Overall, the philosophy of my design is to make the CPU more concise, expandable, and automated.

Difficulty met

Gate delay issue

My attemps to solve it

Two suggestions:

  • Understand the cause of delay issue

  • Make the design as simple as possible

Other thoughts

Though this project is more about the circuit design, during the development, two software development methodologies were strictly followed. They are:

And they greatly facilitated the overall development process. These two design techniques are just fundamental yet powerful. Great guidelines to follow.

Pics

All components All components

Gifs

CPU Demo, running at tick frequency 4.1KHz CPU Demo, running at tick frequency 4.1KHz

Loading ROM to RAM, tick frequency 32Hz Loading ROM to RAM, tick frequency 32Hz

ALU, tick frequency 32Hz ALU, tick frequency 32Hz

8B RAM, tick frequency 32Hz 8B RAM, tick frequency 32Hz

CU, tick frequency 32Hz CU, tick frequency 32Hz

Credits

Once again, thanks to my teammates Robert and Jingxian. They did a ton of work on the final project, and brought up some brilliant designs. Without the proto design, this redesign won’t go far.