<p>There are tools available which you may be able to use or adapt for your course. Specifically I am thinking of <a href="https://www.nand2tetris.org/" rel="nofollow noreferrer">Nand To Tetris</a>. I began the course many years ago but did not finish.  I also build some of the early parts in <a href="https://sourceforge.net/projects/circuit/" rel="nofollow noreferrer">Logisim</a>, may be too low-level for what you are looking for, or it may be useful for building your project as I see &quot;Andy&quot; <a href="https://www.andyexplainstech.com/articles/cpu-basics-building-cpu-logisim" rel="nofollow noreferrer">built a CPU</a> using Logisim.</p>
<p>From the Site:</p>
<blockquote>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>​Instructors: For additional course materials, contact schocken@gmail.com</p>
</blockquote>
<p>I recall getting stuck at one point when there was only the book, but Coursera later hosted a <a href="https://www.coursera.org/learn/build-a-computer" rel="nofollow noreferrer">course on this</a> and the videos were very helpful.</p>
<p>At the least, you may get some ideas or inspiration from these resources.</p>

CC BY-SA 4.0
2023-02-24T14:15:53.320Z
2023-02-24T14:15:53.320Z
srattigan
<p>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 <strong>ideas I've thought about:</strong></p>
<ul>
<li>Components: main memory, ALU, RI, RIM, RAM, CO, ACC</li>
<li>Instruction of 16bits</li>
<li>Instruction format: I'm thinking about making two address instructions but still thinking about the positioning of each field of the instruction</li>
<li>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)</li>
</ul>
<p><strong>Problems I've come across:</strong></p>
<ul>
<li>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.</li>
<li>I want to add more registers like index register, general purpose register but I don't know if that would be hard to do.</li>
<li>I can't find enough resources to get more ideas for the design of the machine.</li>
<li>For the emulator I don't really know where to start and which programming language</li>
</ul>

CC BY-SA 4.0
2023-02-18T20:08:29.797Z
This looks like an assignment for a course. Yes?
Buffy
<resource-request><programming><project><resource-information>
Suggestions and resources for the conception of a pedagogic machine (computer) and its emulator?
# Suggestions and resources for the conception of a pedagogic machine (computer) and its emulator?

(Asked by: username_0 on 2023-02-18)

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

**Tags:** resource-request, programming, project, resource-information

> **Comments:**
> **username_1**: This looks like an assignment for a course. Yes?  

---

## 1 answers

### Answer by username_2 on 2023-02-24. Score: 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](https://www.nand2tetris.org/). I began the course many years ago but did not finish. I also build some of the early parts in [Logisim](https://sourceforge.net/projects/circuit/), 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](https://www.andyexplainstech.com/articles/cpu-basics-building-cpu-logisim) 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 schocken@gmail.com

I recall getting stuck at one point when there was only the book, but Coursera later hosted a [course on this](https://www.coursera.org/learn/build-a-computer) and the videos were very helpful.

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


---

