A high-level overview of the bridge between hardware and software
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Digital Logic Design

A high-level overview of the bridge between hardware and software


We use computers everyday. Yet, not many of us can claim they understand, even on a very high level, how exactly computers operate. Yes we all understand there is a RAM, a CPU and everything is represented as 1's and 0's, but do we really understand what happens from the second you press the "On button" and the moment that your operating system's icon comes on the screen? Well let's dive in!

Here are two different discussions of computers. The first is for those who have very little formal understanding of computers. If you're not comfortable being thrown into reading sentences with words like ALU and ROM, then you might find it easier to start here.

The second discussion is where we actually get down and design a processor together!!! So, if you're actually trying to learn how these magical little devices work, you should definitely read the second discussion as well. Regardless of your starting point, let's get started!

For Beginners

For The Hungry


I owe most of my understanding of (and even more importantly, interest in) computer architecture to Professor Joanne Dugan But here are some more resources that helped me write this little guide:

Computer Architecture - A Quantitative Approach
C++ For You++
But How Do It Know?

By the time this guide is finished, it will probably have been edited by Kyle von Bredow; so it is only fair that he should get some credit. Even if he never directly edits the text, some of these very concepts were originally explained to me by him; so he still deserves the credit.