Instructables
loading
loading
Picture of How to Build an 8-Bit Computer
Building an 8-bit TTL computer sounds like a daunting and complicated task, or at least it did to me when I started out on my journey to understand the architecture of a basic CPU. When it comes down to it, a CPU is fairly simple in operation once you learn the fundamentals behind all of its processes. This project is intended to help anyone interested in building their own computer and gaining the wonderful knowledge that comes along with the process. Don't be afraid to try, you can only learn.

This project will start off by describing the basics of electronics. After that, the fundamentals of binary and boolean logic will be described. Lastly we will then move onto the function of the various parts of a simple-as-possible computer (with a few modifications) as described in Malvino's text Digital Computer Electronics. This means that the end product of this Instructable will be a computer that you can program with a unique instruction set. This project also leaves many of the design aspects of the computer up to you and serves as a guide for building your own computer. This is because there are many ways to approach this project. If you already have a sound understanding of boolean logic and the workings of binary feel free to skip to the meat of the project. I hope that you all enjoy and get something out of a build like this, I know that I sure did.

For this project you will need:

1.) A power supply
2.) Breadboards + lots of wires
3.) LED's for output
4.) Various logic IC's (discussed later)
5.) Free time
6.) A willingness to mess up and learn from mistakes
7.) A lot of patience

Optional (but very useful):

1.) Oscilloscope
2.) Digital multimeter
3.) EEPROM programmer
4.) Sonic screwdriver

Useful Links for a Project Like This:

Digital Computer Electronics: 
http://www.amazon.com/Digital-computer-electronics-Albert-Malvino/dp/007039861
TTL Cookbook: http://www.amazon.com/TTL-Cookbook-Understanding-Transistor-Transistor-Integrated/dp/B0049UUV38
 
Remove these adsRemove these ads by Signing Up
1-40 of 119Next »
Medb129 days ago

i like your instructable and i'am building it i'am wondering if it's possible to calculate big numbers with this computer or i am limited to 8 bit numbers only?

in 32 bit computer you can calculate bigger number than 32 bit, i think it's a software thing but anyone can make it clear how it's done ?

Sorry for my english.

zv_odd Medb17 days ago

You certainly can, you just have to do the calculations over a series of operations, also storing and loading from RAM. As opposed to having the CPU's ALU do it all for you. Just like how you would have to manually calculate Floating Point operations on old CPUs. Yes it is much slower!

lots of registers and a big ALU would allow bigger number calculations to be done.

how many wires do I need?

Cyanicsky091 month ago
just an idea, couldn't you use a decoder for the binary to decimal conversions, instead of using an arduino (using another computer I think is technically cheating)?

I think someone forgot to cable manage :P

haha sonic screwdriver. This is awesome

falloist3 months ago

this is so awesome i am about to cry. congrats

teknohawk3 months ago
It is awesome! One question though, I didn't quite understand what your computer is capable of doing. What can it actually do?
MasoodZ3 months ago

This is amazing will try this hmm.. maybe next year

SajithP3 months ago

I love it. Thanks a lot. Nicely explained. Awesome. :D

techno guy3 months ago
cool, you've made the Apollo flight computer (not really but still cool :p)
Chakuli3 months ago

cost to make computer?

bdraško4 months ago

Where can i buy those nice leds? :D

JonathanM94 months ago

I clicked this link, saw the image of the bread boards swathed with a gazillion wires, and literally laughed out loud. Clearly not an easy task, but clearly you've shown it is achievable. Thanks a lot for sharing this!

such skill

eudoxus6 months ago

This is an amazing project, thank you for sharing!

Would it make sense to replace the JMP instruction with some kind of conditional jump? Such as "Jump to a certain instruction in memory at the specified address *if* the accumulator is non-zero"? Otherwise I cannot figure out how to program conditionals (such as a program which outputs 0 if the accumulator contains the value 0, and 1 otherwise). In particular, I can't figure out how to program multiplication with your instruction set (which would be easy with a conditional jump). All of the arithmetic tricks that I know for getting a conditional jump out of a non-conditional jump require multiplication, such as encoding "if A then B else C" with A*B+(1-A)*C in the case that A is either 0 (false) or 1 (true).

Am I missing something obvious? Thanks again!

joelhacks6 months ago
Incredible instructable!
MisterFrogger7 months ago

I think clock can be a simple button at beginning :)

Great project, but I have a question, why always I see 8 bit calculator or 4 bit or such numbers ( 1-2-4-8-16... ), I mean for an 8 bit calculator it can do numbers up to 255, so why not a 7 bit, with limit of 128? I mean the whole bit thing is just summing of multiple full adders, that will work like a chain reaction, or I'm missing something?

a bit is the smallest form of computer memory

so basically 8 is its maximum storage and processing power which isn't much for a computer but it is all it need's for calculating numbers also why would you limit the ability of a calculator?

csleong9810 months ago
This is awesome !!!
ashrestha1811 months ago

do you have a multisim or any other simulation files of the end result? if so could you please mail it to me at aus284@gmail.com if possible.

DrifterNL1 year ago

What a great idea using the XOR and C-in to preform a subtraction!

xtjacob03 years ago
How many of each chip did you order?

I know right. i want to know that too!!!

If you are asking that, it means that you do not have understood this document. Keep studiing it !

spel3o (author)  xtjacob03 years ago
It depends on what schematic you end up using for your computer. In the end, it is really up to you. To know how many of each chip you need to buy it is best to look at the datasheet. For instance, if you need an 8-bit register and the datasheet for the chip that you are buying says that the part only has 4 bits of storage, you would need to buy two of those parts for one register.
If I'm not mistaken, Zilog have dumped the ever-reliable Z-80 chip, but I do believe that there is Z-80-H or higher still in their catalog.
i have static ram laying around collecting dust
i dont have any use for them

Luckily i have my sonic screwdriver on hand then!

To improve the quality of the output signal, I added a 10k Ohm resistor between the output (3) and the ground. I obtain a perfect square signal.

R1 and R2 : 220 Ohm

C : 100 nf

I'm using 5 V

WOW i`m going to try to build one thank you for this ( WOW I cant pick me mouth off the flour ) :D

pyrohaz1 year ago
Amazing instructable! well done :)
gnusci1 year ago
WARNING: This project is for smart young people, and of course people which would like to learn what is inside the blackbox!
DBDexter1 year ago
During addition and subtraction operations, how are you preventing the accumulator and the ALU from entering a loop? I mean:
-Accumulator and register B tells the ALU which numbers to add/subtract.
-ALU outputs the result.
If you then enable the AI control line, shouldn't the accumulator send to the ALU the result, therefore making the ALU outputting a new result, which will be loaded into the accumulator, and so on?
Awesome project btw :D
spel3o (author)  DBDexter1 year ago
That confused me at first too when I saw the block diagram. I figured out that the registers only updated on the rising clock pulse. Because of this, it is important to have a very clean clock signal (unlike mine). Because of a dirty clock signal, some of my registers ended up doing two updates (and thus two operations) per clock cycle.
Wyle_E1 year ago
Google "homebrew CPU." There's a webring. One guy built a 16-bit general-purpose computer out of *discrete transistors*. I wonder if he also has a yacht constructed from toothpicks and superglue.
jensenr301 year ago
wow. this instructable is inspiring.
great work, man. seriously. you rock.
How long did it take to build it.
1-40 of 119Next »