Today I finished the first NAND2Tetris project! Woohoo, finally! It only took me two weeks to get through the first week of material… Well, I learned about it in more depth than I had to.
Yesterday I wrote up my chip designs in HDL and got most of them working in the hardware simulator. The Hardware Description Language (HDL) Survivor Guide was very helpful! I got stuck on that 4-way 16-bit multiplexer for a while, but I finally solved it shortly before going to sleep last night. Then I had a couple dreams about multiplexers and woke up feeling excited to finish this project. Only three chips left to do!
Time spent implementing and testing each gate:
- Mux8Way16: 15 min
- DMux4Way: 12 min
- DMux8Way: 13 min
While my implementations for the 4-way and 8-way demultiplexers definitely work as expected, I have a feeling they could be more efficient. Especially for the 8-way demux, I really felt like I should have been working with larger chips instead of typing up so many small parts. But I’ve spent enough time on this project already, so I’ll just keep this note here and maybe I’ll return to this and try it again after I’ve learned more.
Learning summary (#TIL)
- I finally finished the first project for NAND2Tetris! Woohoo! Today I used the hardware simulator to confirm that I’ve correctly implemented the chips for Mux8Way16, DMux4Way, and Dmux8Way.
Next steps
- Start NAND2Tetris week two! Jump into the next project, read the next chapter of the book, and watch the video lectures on Coursera.
Time breakdown
- Study time: 1 hour 20 min
- NAND2Tetris project 1: 1 hour
- Reviewing and writing up notes: 20 min
- Updating and organizing my website: 1 hour 17 min
- Work meeting: 1 hour
- Learn to Code LA workshop prep and research: 2 hours