Maker Faire 2017 - Special Page
This page is dedicated to the fans that stopped by my booth to see the Home Made 8-bit Computer. Below are links
and slides I used to tell the story how computers work on the inside.
There are 20 different types of IC chips used in this project.
- 555 and the 556 Timer (556 has two 555 times inside)
- 74HC14 inverter chip (6 separate inverters per chip)
- 74HC08 AND gate chip (4 separate gates)
- 74HC32 OR gate chip (4 separate gates)
- 74LS157 2 sets of 4 lines to 1 set of four lines selector or multiplexer
- 7407 inverter chip w open collector output (6 separate inverters)
- 74LS173 4-bit D-type register
- 74189 64-bit Random Access Memory (4x16)
- 74LS04 inverter chip (6 separate inverters)
- 74LS245 Octal bus transceivers w tri-state outputs
- 74LS00 NAND gate chip (4 separate gates)
- 74LS161 4-bit synchronous counter
- 74LS138 select one of eight output w 3-bit control
- 74LS283 4-bit binary full adder
- 74LS86 XOR gate chip ((4 separate gates))
- 74LS112 dual J-K Flipflops
- 74LS139 select one of four output w 2-bit control
- AT28C16 2kx8 EEPROM
- NFD-3641 AS-11 4-digit 7-segment LED display
- 14 breadboards and various pots, pushbuttons, and LEDs
The biggest challenge, besides cutting a zillion hand tailored jumper wires, is power distribution.
The breadboard connections have some resistance so as you get further from the 5V supply, there is a voltage drop. I
probed around and found where I had LEDs the voltage dropped to about 2V which would be too close to losing a "1". So
I added the large wires between all the 5V rails on all the breadboards and fed 5V around the edge and across the middle.
Measurements after that showed 5V at any point within the breadboard area.
I also had issues with losing clock pulses, and the reset signals got dicy, so I added by-pass capacitors.
The caps are installed near each IC's VCC pin to ground. Having local electrons available allows steady switching from "0" to
"1" without a 5V droop. This can cause double clock pulses or just plain missing a bit.
The next challenge was to unload the IC's that had a large fan-out, which means the number to inputs and
output can supply energy to so the bits will be properly read. That's usually a 1 to 10 ratio, but depending on the technology
type being driven and other circuit components on the line, you can lose the signal. For the reset and clocks I had to use
a buffer IC with an open-collector transistor. This means I have to supply the load resistor on the output and size it for the
load I expect. This way you can supply a lot more current. Once those changes were made, the system as a whole worked great.
It should be noted that this isn't the optimum design, since other ICs are available that are 8-bits wide
or other technologies that could consolidate the design into a smaller number of components. Maybe that would be something the
Maker in you do. Also, once a good design and layout care complete, it would be a good idea to convert the breadboards into
the solderable style to insure consistant results. The ALU capabilities can be updated to include the logic functions like
AND, OR, greater-than, less-than, and equal. These are common ALU functions. Also the RAM memory could be expanded so larger
programs could be written. If fact, I would incorporate an Arduino Nano just to be able to upload the programs, store various
versions, and not lose your work when the power is turned off. That made seem crazy since even a littel Arduino is many more
times powerful that this whole breadboard computer and so much smaller. But that defeats the purpose of seeing the insides
of a computer doing it's thing. But there is no reason to make it so hard to work with you give up expanding the desing to
incorporate more real-world features maybe even pipelining instructions! Now we are really talking complex timing.
Here's the slides used for my demo:Click here.
Here's the video link of the demo:Click here.