The Elements of Computing  Systems / Nisan & Schocken / www.idc.ac.il/tecs  

Project 0: Getting Started

Objective: Get the tools downloaded, experiment with the hardware simulator environment, and upload a file to the gradescope autograder.

Contract: This "project" is a self-study exercise. You are not actually required to build or hand-in anything, but rather this is built to let you get setup for the course. Download all the files, edit a file with a text editor, and upload a solution to gradescope.

Steps

0: Download and install the nand2tetris software suite (see https://www.nand2tetris.org/software) on your computer or a lab computer. On the Bucknell campus computers, you will need to install a java runtime and edit your path variable. Prof Thomas will gladly help you, but checkout the files placed in Moodle first. I haven’t tested this with the newest image. It is possible to point to the matlab java environment and run that. I also have a script setup to add a folder to your path which will come in handy why you want to use the command line later in the course.

1: Chapter 1 of the book. This is available online at: https://www.nand2tetris.org/course.

2. Go through parts I-II-III of the Hardware Simulator Tutorial (available in the see the https://www.nand2tetris.org/software Software Section of the nand2tetris web site).

3. Create a directory named projects/00 on your computer, and extract “project 00.zip” [I don’t think this link works, but the zip file is available on moodle] into it.

4. Invoke the hardware simulator (which is now installed on your computer), load one of the .tst test scripts listed below, and run/experiment with the chip.

Upload a solution

The “goal” of this less is to make a two-input OFF chip. This chip should always output 0, or false, no matter the input combination. The tools are there to help you test your chip and play with inputs, etc. You can upload the provided (incorrect) chip as is to gradescope and see the results. Then, try fixing the problem, and uploading to see the correct results. We will make heavy use of this autograding feature of gradescope in the course. I’ve written quite a few of these testing schemes, so start early in attempting things, and PLEASE talk with me if you think something is weird. These have been refined over a few semesters and are becoming more stable though.