It's demanded to design a simplified machine (computer) and its emulator. First I need to do the design of this machine and here is some ideas I've thought about:

  • Components: main memory, ALU, RI, RIM, RAM, CO, ACC
  • Instruction of 16bits
  • Instruction format: I'm thinking about making two address instructions but still thinking about the positioning of each field of the instruction
  • Instruction set: addition, subtraction, shift, logic AND and OR, store and load the accumulator data, conditional and unconditional jump, (multiplication and division: I'm not very confident about these two because they seem to be a bit complicated)

Problems I've come across:

  • I find this first approach very simple and want to develop it a bit more but it should still be easy to make its emulator and not very complicated.
  • I want to add more registers like index register, general purpose register but I don't know if that would be hard to do.
  • I can't find enough resources to get more ideas for the design of the machine.
  • For the emulator I don't really know where to start and which programming language
  • 3
    $\begingroup$ This looks like an assignment for a course. Yes? $\endgroup$
    – Buffy
    Feb 18, 2023 at 20:08

1 Answer 1


There are tools available which you may be able to use or adapt for your course. Specifically I am thinking of Nand To Tetris. I began the course many years ago but did not finish. I also build some of the early parts in Logisim, may be too low-level for what you are looking for, or it may be useful for building your project as I see "Andy" built a CPU using Logisim.

From the Site:

The site contains all the project materials and tools necessary for building a general-purpose computer system and a modern software hierarchy from the ground up.

The materials are aimed at students, instructors, and self-learners. Everything is free and open-source, as long as you operate in a non-profit, educational setting.

The materials also support two courses that we now teach on-line: Nand2Tetris Part I (hardware projects/chapters 1-6), and Nand2Tetris Part II (software projects/chapters 7-12). These courses are aimed at learners who wish to take the course at their own pace.

Nand to Tetris courses are taught at 400+ universities, high schools, and bootcamps. The students who take them range from high schoolers to Ph.D. students to Google engineers. Here is the extended course syllabus.

​Instructors: For additional course materials, contact [email protected]

I recall getting stuck at one point when there was only the book, but Coursera later hosted a course on this and the videos were very helpful.

At the least, you may get some ideas or inspiration from these resources.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.