The Elements of Computing Systems (From NAND to Tetris)

The Elements of Computing Systems (From NAND to Tetris) : Designing elementary logic gates from a NAND gate using Hardware Description Language

This is the first section of this course. In this section, we will first understand how this course is structured, then we will install the necassary software, and then start with the task of building basic logic gates using the primitive NAND gate, and HDL (Hardware Description Language).

If you have purchased the book, then please read the Preface, Introduction, and Chapter 1.

If you have not yet bought the book, then you can read the contents of these chapters online.


Resources:

The hardware simulator
In this course, we will be building a computer from the ground up, using HDL, and a hardware simulator. The hardware simulator can be downloaded here. This page contains further details of the hardware simulator.


HDL Reference
To do most of the homework in this section, you will need to know how to use HDL. If you have the book, it contains an HDL reference in Appendix A. If you do not have the book yet, you can get the contents from this pdf.


Submitting Responses to Activities

At diycomputerscience.com, we normally encourage participants to blog their solutions to various course activities, and submit links to their blog posts for peer review. However, this course is based on a book, which is often used in university courses. For that reason, as well as for preserving the experience of future learners, the authors have requested that we follow the code sharing guidelines stated below. I request all course participants to co-operate with the code sharing policy stated below. Very soon I will create a private pastebin for this course where everyone is encouraged to post their solution code for peer review.


Code Sharing Policy: We developed this course and made all its materials freely available because we want as many people in the world to learn computer science on their own terms. We believe that students and self-learners who set out to do the hardware and software projects should have the benefit and challenge of doing original work, without seeing published solutions. Therefore, we request that you don't post solutions publicly on the web, e.g. in blogs or forums. If your course instructor or organizer creates a private space in which students can share their work outside the public domain, that's fine. Likewise, you can share your work with others using a password-protected space. Please use your judgment and help ensure that many more students, like you, will be able to fully benefit from this learning experience. Thx – Noam Nisan and Shimon Schocken



Activities
This session has the following activities. Please complete them and submit links to your work. A good place to publish your activities is your blog, website, some wiki, or any publicly accessible page on the Internet.
View All Activity Responses

Activity 1 : Download and install the TECS Hardware Simulator

In this activity, you have to download and install the TECS hardware simulator.
Once you have successfully installed it. You are encouraged to read chapters 1, 2, and 3 of the tutorial for the hardware simulator.
Everyone is encouraged to blog their notes and submit links to their blog posts, using the form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 2 : TECS - Build a NOT gate

In this activity you have to build a NOT gate, using the primitive NAND gate.
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 3 : TECS - Build an AND gate

In this activity you have to build an AND gate, using the primitive NAND gate.
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 4 : TECS - Build an OR gate

In this activity you have to build an OR gate, using the primitive NAND gate.
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 5 : TECS - Build an XOR gate

In this activity you have to build an XOR gate, using one or more of these gates (NAND, AND, OR).
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 6 : TECS - Build a MUX

In this activity you have to build a MUX, using one or more of these gates (NAND, AND, OR, XOR).
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 7 : TECS - Build a DMUX

In this activity you have to build a DMUX, using one or more of these (NAND, AND, OR, XOR, MUX).
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 8 : TECS - Build a 16 bit NOT

In this activity you have to build a 16 bit NOT, using one or more of these (NAND, AND, OR, XOR, MUX, DMUX).
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 9 : TECS - Build a 16 bit AND

In this activity you have to build a 16 bit AND, using one or more of these (NAND, AND, OR, XOR, MUX, DMUX).
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 10 : TECS - Build a 16 bit OR

In this activity you have to build a 16 bit OR, using one or more of these (NAND, AND, OR, XOR, MUX, DMUX).
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 11 : TECS - Build a 16 bit MUX

In this activity you have to build a 16 bit MUX, using one or more of these (NAND, AND, OR, XOR, MUX, DMUX, 16-NOT, 16-AND, 16-OR).
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 12 : TECS - Build an 8 Way OR

In this activity you have to build an 8 Way OR, using one or more of the gates/chips you have built until now.
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 13 : TECS - Build a 16 bit / 4 Way MUX

In this activity you have to build a 16-bit/4-way MUX, using one or more of the gates/chips you have built until now.
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 14 : TECS - Build a 16 bit / 8 Way MUX

In this activity you have to build a 16-bit/8-way MUX, using one or more of the gates/chips you have built until now.
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 15 : TECS - Build a 4 Way DMUX

In this activity you have to build a 4-way DMUX, using one or more of the gates/chips you have built until now.
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity

Activity 16 : TECS - Build an 8 Way DMUX

In this activity you have to build a 8-way DMUX, using one or more of the gates/chips you have built until now.
Resources
Test your work in the hardware simulator, and ensure it works by testing it with the test script specified above. Blog your notes, and submit a link to your blog post, using the submit form below.
If you are enrolled in this course, then please login to submit your response to this activity
Recent Course Updates: