Hello, you can call me Eyer. This document was something I wanted to write for my sake, since my memory is not the greatest. But I’ve seen some people on the Computer taking an interest in digital logic, and since this is a topic that interests me greatly I decided to write this as a guide teaching the basics to whomever wants to learn it. It will be written in a very informal way, and maybe I will sprinkle some formalism here and there when necessary. By the end of this journey you should have enough knowledge of each to put together a relatively simple processor, or maybe even a moderately complex processor with instruction-level parallelism. Of course, you won’t be doing everything for zero. For example, you probably won’t be designing your own adder or your own multiplier. When using an FPGA, and even when synthesizing your design, there will already be an efficient adder, multiplier and divider ready to be used, in the chip or in the technology library, designed by really smart people. But still, I do think they’re still interesting to learn, and maybe if you need to design something for your own operations you can adapt techniques that you have already seen before. Disclaimer: I’m ESL. Please do forgive me for any mistakes I have made, but also feel free to correct them. Also feel free to correct me if there’s something wrong with the contents of the articles. You can contact me through discord (my handle is eyeresterday).
I will admit, I’m a mere computer engineer. I have studied computer architectures and the digital parts of digital design way more than I have studied the microelectronics parts. I have no idea how to size a transistor, and even if I had I wouldn’t recommend starting from the analog part unless that’s what you’re interested about. I recommend starting from arithmetic circuits and going down the list of topics, since they should be organized in an approximate order of complexity.
Everything in here is CC BY-SA 4.0 licensed. All images taken from outside sources are properly credited.