From NAND to Tetris

Last week, Simon found this awesome free computer engineering course and textbook, and dove right in. The course teaches how to create:

  • A basic computer
  • A higher-level language
  • A mini operating system

I already know how to do the first part. The last two are what I’m really excited about. The course uses a simulator, but it would be fun to try and actually build the computer out of real parts. If I tried hard enough, I think I would be able to build the Hack CPU (the name of the CPU of the computer described in the course) on three, maybe five breadboards. That’s way less than the 14 breadboards it took to build the Ben-Eater-style computer. That’s just the CPU though, unlike with the Ben-Eater-style computer, I will need a LOT of other stuff to build the full Hack computer.

Authored by Shimon Schocken and Noam Nisan, the course has been nicknamed From NAND to Tetris (meaning you can start from the most basic logic gate and build your way up to creating a computer that can play a game like Tetris) and has been used by many university computer science departments (including Harvard), so it’s pretty tough stuff. Simon pulled out all the little parts he still has from when he tried building an 8-bit computer and keeps talking about different memory units, like the 74LSs, electrically erasable programmable read-only memory EEPROMs and the simplest kind of memory devices called flip-flops, that latch some data every time a clock pulses. I’m writing this down so that I know what those are because it’s all very confusing to me. For Simon, it’s the air he breathes, he is in his element spitting out all this unpronounceable terminology. Have I just seen him pat the little bug-like memory chips as if it were his pets?

Mom, I can’t believe that 2048 bytes fit on this little thing! You only get access to one byte at a time, but you can choose which one.

2 Replies to “From NAND to Tetris”

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s