4-Bit Computer
- Posted by Simon Inns
- Posted on January 30, 2010
- Retro Computers
- 25 Comments.
Contents
If you’ve ever wondered how electronic devices like computers can count, this article gives a simple introduction to binary and logic and shows how they are tied together with electronics to make both simple and complex computers.
Please note: There are a couple of mistakes on the slides in the youtube video which are shown corrected below. Thanks to reader [Veini] for taking the time to review the logic diagrams!
Fundamentals of binary counting
To begin with let’s have a look at some fundamentals. Since digital computers can only represent two states, on and off or zero and one, there are only two numbers available; therefore they have to count in base 2, not base 10 as we would do. However, it’s very similar, instead of ones, tens, hundreds and thousands, base 2 counts in ones, twos, fours, eights and so on. So, for example 2 in base 10 is one- zero in base 2.
When we add numbers in base ten we carry over any digits which are greater than 9 into the next magnitude of units, so nine plus one equals zero carry one, or ten.
Binary works exactly the same, however you carry over if the result is greater than 1, so one plus one equals one-zero.
This means that if you have two single-figure binary numbers and you add them together there are only 4 possible results.
It is useful to represent this in what’s known as a truth table. Here you can see the 4 possible values of the inputs A and B, and the four possible outputs represented by Sum and Carry.
In order to represent the ‘logic’ required to get from the possible range of inputs to the desired outputs we use Boolean operations, or as they are more commonly called in electronics, logic gates.
Logic Gates
Here are the three basic types of logic gates which I’ve chosen because they are the simplest gates to make from transistors. You can make all other types of gates by combining these three.
An AND gate outputs one only when both its inputs are one. An OR gate outputs one when either input is one. Finally a NOT gate (or inverter as it is sometimes called) outputs the opposite of its input, so if the input is one the output is zero and vice-versa.
So, going back to our truth table, let’s look at the logic required to get ‘Sum’ based on the inputs A and B. Here we want the logic to output one only when one input is one and not the other, this is known as an exclusive OR gate. We can do this by simply using two AND gates with NOT gates on opposing inputs. If either gate outputs a 1 the result is 1 via the final OR gate.
The carry output is even simpler, we want the carry to be 1 if both A and B is one, so we use an AND gate.
To get the whole truth table we simply add the two logic circuits together. This logic is called a ‘half-adder’ due to the fact that it is only capable of working on single bit numbers, since you cannot input the carry bit, you can’t cascade them together to work on larger binary numbers.
To solve this we combine two half-adders together to make a full-adder. This logic takes A, B and a carry as input and outputs the sum and carry. If you followed along with the half adder it’s pretty easy to see how this works from the logic diagram.
Now the simple full-adder logic circuits can be combined to allow bigger binary numbers to be added together. This picture shows a four bit adder, in fact, due to the way the carry bit ‘ripples’ down, this is known as a ripple carry adder. Since both the A and B inputs are now 4 bits we can add together 1111 and 1111 or 15 plus 15 in base 10 to get a five bit result.
Building logic gates from transistors
Now let’s take a quick look at how we build logic gates using transistors. First up is the NOT gate. Here if the input is 1 it causes the electricity to flow from the collector to the emitter (top to bottom). Since the electricity will always follow the path of least resistance the output will be zero. If the input is zero, the transistor prevents the flow from collector to emitter, so the electricity flows out of the output causing it to be one.
Next up is the AND gate. This requires two transistors, the inputs are on the bases and only if both inputs are one can the electricity flow to the output, making it a one also.
The OR gate is similar but has two possible paths for the electricity, so if one base or the other is one, electricity flows to the output.
Building a full-adder
Once you have these basic building blocks you can combine them together using the logic diagram for a full adder, which gives us this circuit diagram:
Here you can see a picture of a completed full-adder, the A, B and carry inputs are on the left and the sum and carry outputs are on the right. By making more of these it is possible to build adders capable of dealing with bigger and bigger numbers.
Building a computer
So with all the theory out of the way, let’s look at a real 4-bit computer built from discrete transistor gates. This circuit has 4 switches for each input (A and B) and a simple five LED output showing the result. Note that both the inputs and the output are little-endian meaning the smallest binary value is on the right, just like in base 10. You can clearly see the 4 full-adder circuits which perform the processing.
The computer is made by combining 4 full adder circuits (as shown above) and some extra circuitry which drives the inputs to the adders and displays the output:
Conclusion
And there you have it, how a simple transistor can be made to count. Whilst this ‘computer’ is a very basic one, you can easily see why modern processors contain hundreds of millions of transistors which enable modern computers to perform so much logic at such amazing speeds.
Build your own computer
If you’re crazy enough to want to build you own computer from scratch (well, I was!) you can download the schematics and the PCB artwork used in this article:
Donate to waitingforfriday.com:
If you like this site and want to help support future projects, or you just want to show appreciation for a project you built, used or enjoyed, please consider leaving a PayPal donation. It’s quick, secure and helps us to run the site and fund future projects!
Hi,
Could you please say, what program and what version of the program did you use to create shematics? I could not open it. Thank you.
The software was called ExpressPCB (you can find it via Google quite easily).
Works. I was able to open it. Great video and tutorial! Everything is clear and easy to understand. Thank you very much!
Is this something that would be doable using toner transfer method to create the PCB at home? Or is the schematic too complex for that? I’ve never tried making a PCB before, but this looks like a fun project to try.
I made the board at home using UV transfer, so I imagine toner transfer should work just as well. This might be a bit of a big PCB for a first try though… you’d probably be better off trying a few smaller boards first.
Hi,
I’m trying to make this 4-bits comp. but, I see on 4-bit computer input and output circuit schematics +9 volt but on Full-adder circuit schematic I see +5 volts? What voltage do you use for your schem? Could you please, explain this?
It’s a mistake in the diagram. It should be powered from a 9V battery.
Thank you!
Hi,
under which license is the adder released?
I would like to use and modify this for non-commercial use.
Thx. KaePie
You’re welcome to reuse the design KaePie, consider it covered under the creative commons Attribution-ShareAlike (CC BY-SA) for your purposes.
Thank you.
I would like to build a simple 4-bit computer, which is very easy to understand.
The computer should only consist of transistors, resistors and diodes.
There are already a few of them, but they are didactically not so good.
There are building instructions, but they are not didactic enough.
Sorry for my poor english, I’am a native german speaker.
Hi Simon,
Thank you very much for your site and 4-Bit Computer schematics and detailed explanations! I did my 4-Bit Computer, link for video with my model “https://youtu.be/WRGsdPUG2Gc” 🙂 It was really educational.
Best regads,
Sergey.
Great post. I was bored, so I designed a full substractor making a lot of karnaugh. Me and a friend are thinking about making a small computer for basics operations, and well, I assume add and substract are really basic, but I’m worried about multiply and divide. I need to think how to do it.
If we make it, I’ll send you photos lol.
Hi, cool schemat.
I have one question: In logic gates you have resistors. Please tell me how much they have resistense (Ohms).
Sorry for my englich.
The resistor values are in the more detailed schematics of the full adder; take a look there for the answers.
Hi Simon,
Which kind of switches did you use?
Is it spdt ?
Yes, they are simple ON-ON, SPDT switches I got from a local store; I believe they are pretty common.
Hi Simon,
I know this was posted a while ago, but could you please add the PCB layout for just the single Full-Adder in PDF format? It would really help me out and save me some time.
Thanks,
Matt
Hi Matt; I’m not really sure that I have the file stored; it’s been 9 years since I did the project 🙂 I will have a look though.
Hi Simon, cool tutorial – thanks. I downloaded the 4bit_Computer_schematics file, but couldnt find a software to open it with Mac. Any hints?
The design was created (a long time ago) in ExpressSCH. You can google ExpressPCB to find it. If there isn’t a Mac version then you will need to ask them about it as they wrote the software not me 🙂
Hi Simon, congratulations for this neat project. I would like to use one of the images as illustration in a programming course book (the book is free and it is for a public university course). Would it be possible? Best regards,
Federico
I’d have no problem with that; glad you liked the project 🙂
Hello! I was wondering if there was a parts list or building instructions?
You should be able to generate the BoM using ExpressPCB – I realise that ExpressPCB is (these days) a little obscure, but the project was published over 10 years ago now.