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 ads by
Signing UpStep 1: What Is a Computer?
What is a Turing Machine? A Turing Machine consists of 4 parts: the tape, head, table and state register. To visualize the operation of such a machine you first have to imagine a film strip spanning infinitely in each direction. Now imagine that each cell of this film strip can contain only one of a defined set of symbols (like an alphabet). For this example let us imagine that each cell can only contain either a "0" or a"1". These cells can be rewritten an infinite amount of time but retain their information indefinitely until they are changed again. The part of the Turing Machine known as the head can write symbols to the cells as well as either increment or decrement its position on the film strip by a given integer (whole number) of cells. The next part is the table which holds a given set of instructions for the head to execute such as "move right 4 cells" and "set cell to 1". The fourth and final part of a Turing Machine is its state register whose purpose is to hold the current state of the machine. The state includes the instruction as well as the current data on the tape.
That is how simple the operation of a computer is. When your computer operates, it is actually operating as a turing machine. It processes data held on your computer by a given set of instructions and algorithms. The computer described in this Instructable is a very simplistic model of a computer, but it still operates as one that you can program with a set of instructions that it will follow and execute.
Useful Links:
Wikipedia on Turing Machines: http://en.wikipedia.org/wiki/Turing_machine






















































Visit Our Store »
Go Pro Today »




I have been working on a TTL architecture for the past year and have begun the contruction of the CPU. I plan on starting with a system centralized around the BIOS that will run on a simple command line C-Language OS that will be display with a simple text based GPU and VGA driver.
After adding a GPU, I plan to create the final OS and work towards making a cheaper and smaller version of the computer that will be more accessible to the average individual. In that case, should I patent my designs before I post them on the Internet?
Thanks
The crux of the computer is the Control Unit, which reads in the Opcode and then manipulates control lines to affect the change. In this case (to the best of my cursory reading), the opcode sets an address for an EEPROM. In the EEPROM, a function is implemented which manipulate 16 control lines to move data around based on the opcode. Each instruction has three possible states.
So in short, yes, you define the assembly by programming the EEPROM with a sequence of control activations.
And everything done in a few hours ^^.
Good luck. If you want (or somebody else) to compare your results with mine, just send me a PM.
Plus, I forgot to compliment you on your hard work. There was a lot of wiring to do in your project. That much gets to be hard to keep track of.
If you go on the Jameco web site and look for the 74ls181 , a data sheet will be available. If you select the data sheet, near the end of the sheet is a schematic showing all of the gates and their interconnections. You might find it interesting just to examine the schematic.
I like to look at the schematics of various chips to see what I can learn about logic in addition to books that I read and experiments that I perform.
Have fun with your future projects.
The 181 is not inexpensive. Jameco lists it for $3.95 a piece.
You might consider the 181 as a future 8-bit project.
I agree with Juliadee's comment about trying wirewrap for a project of that size.
There are computers that are slow but ready immediate after switching on.
I have an old Acorn Atom (build my self) that is a scientific calculator the moment is gets juice, and it can (without expensive software) show a graph of any mathematical function I feed it !
In addition, I think the purpose of the above article is to develop knowledge about the way things work.
Nobody began immediately with complicated electronics, most of us began with a battery and a bulb !
Low power Schottky's will reach something in the upper shortwave region at best (30 MHz).
But certainly not on a breadboard.
I always have to bow deeply, when i see those "newfangled" appliances like PC's, MP3 players or mobile phones, that run processors with clock frequencies in the microwave regions.
Although they are not clocked as high externally, it's a huge challenge to get such boards working. Let alone the processors themselves.
The stray capacitances and inductances of a quarter inch copper line on a PCB can make you go nuts above certain clock frequencies.
Then, think about the power requirements of those "newfangled" devices. They (phones) run for hours, if not days on a 4Wh(3.7V x 1100mAh) battery.
Those TTL-graves(Digital Equippement PDP8), as we called them used a 5V power supply at 20 Amperes.
Those monsters would suck a phone or notebook battery in under a minute, if they were able to provide such currents without catching fire.
The hardware performance of modern PCs amazes me too, but it's such a shame that I'm still stuck waiting for software to execute *billions* of CPU instructions worth of sweet nothing. Back in the old days, computer programmers (they didn't call themselves "software developers" then) understood hardware limitations and wrote their code to make the best of the situation.
The most efficient after Assembler. In terms of memory usage, even better.
"RO - Program memory in" should be "RO - Program memory out"
Anyway, great work, I think I will try and make one. Thank a lot for documenting the whole process. Cheers :D