Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course) – Part 1
So I decided to take upon myself this course from Coursera. I’ve looked at the book for a long time but not really taken the plunge. So here goes.
First and foremost we need Java and the files.
Next there are some terminology you should learn.
- HDL Hardware description language is for defining the chips.
- Tools folder Contains all the apps that is used in the course.
- Projects folder Contains all the projects that you will do but none of the actual PARTS scripts. The DEMO folder contains a finished chip HDL code.
- Chip parts are represented in the HDL as PARTS.
- Boolean operations and functions transforms to hardware logic gates.
- You can go from a boolean expression to a truth table and the other way around.
The hardware simulator takes in the HDL programming file .hdl, looks into the CHIP and PARTS to complete it’s logic, then you use the Input pins to switch them and read the value of the output pins.

Any boolean expression can be represented using NOT, AND together with OR, as seen in the options we have with our parts.
To design a chip you need a full description of the desired state, such as a complete truth table.
The parts in the HDL represents the different gates you use inside the gate interface. It is designed from top to bottom which equals left to right on the gate diagram.
The out description in the HDL for each gate is the output that you can pass to the next gate.
When you start project 01 you have to build each chip and use the other to build the next chip. The build order you can find in the discussions forum on coursera. If you don’t the dependecies of the gates will cause the current chip to fail.
So far the only gate I’ve built is the first gate, a NOT gate out of a NAND gate.
Fun stuff!