Building a Modern Computer - Project 1 Review

Written politely 2021-06-10.

I began the project the day after completing the last post. The work happened in spurts with breakthroughs fueling later work.

The First Chips ๐Ÿ’ก

The initial chip, Not, was difficult to figure out what to doโ€”how to actually implement the logic that I understood into working hdl. I knew what I wanted the chip to do, but I needed to figure out how to write it in hdl. But, after I figured some syntax out, the first few (Not, And, Or, and Xor) were not overly difficult to finish.

Plexing and Flexing ๐Ÿ’ช

Getting to the second section where multiplexors and demultiplexors are used required some more thought to figure out how the select mechanism worked with the two inputs and single output. Up until this point, the chips have been dealing with only two inputs, so the additional logic of the selector took a minute to wrap my head around. I kept wanting to write if statements, but that isnโ€™t a thing in this hdl. Remembering that these are chips with wires that feed into each other before finally getting to the output helped to understand the finer points of these chips.

๐Ÿš Busses ๐ŸšŒ

Writing the busses followed the same learning curve as the first section, as it implemented 16-bit busses for Not, And, Or, and Mux. How should I do these basic operations, but now at scale. Loops would have been great to have in this and would have made the code shorter, but the simplicity of the language for low level of entry is not equipped to handle it, on purpose. Other hdl languages include loops, but the course hdl does not.

Multi-way chips ๐ŸŽ›๏ธ

The last 5 chips (Or8Way, Mux4Way16, Mux8Way16, DMuxx4Way, and DMux8Way) were the most elaborate of the bunch and took the most time to complete per item. But, there is an addendum to that statement, because I did them in a simpler way with more code, and later refactored to significantly less code. Higher level thinking is needed to finish coding these last chips.

Summary ๐Ÿ’ญ

Overall, I really enjoyed building these chips and I did it within a week. Working at nights for what bits of time I had, I was able to complete these in ~ 2 hours total time. I am excited to share some of the finding along my journey with the book club on Friday. I am interested to see some of my peerโ€™s solutions to these problems and discuss how things differ and why things were chosen, in addition to the difficulties we each found along the way.

Next Step ๐Ÿชœ

Next week we will be looking into chapter 2, Boolean Arithmetic and the ALU. I am not sure at this time what ALU is, but I will fill you in next week with my overview. If you are following along, leave a comment below about what you found most intriguing about this project. I would enjoy the company. ๐Ÿป If you are ready, continue on to the next post in this series.


Lucas McDaniel

Husband, father, teacher, musician, avid gamer, nature enthusiast, and passionate about the human condition.