Answers.Body: <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>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-02-24T14:15:53.320Z
Answers.LastActivityDate: 2023-02-24T14:15:53.320Z
Answers.UserDisplayName: srattigan
Body: <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>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-02-18T20:08:29.797Z
Comments.Text: This looks like an assignment for a course. Yes?
Comments.UserDisplayName: Buffy
Tags: <resource-request><programming><project><resource-information>
Title: Suggestions and resources for the conception of a pedagogic machine (computer) and its emulator?
ThreadText: # 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.
  
  
  ---
  
  