Developer Creates DIY 8-Bit CPU
MaizeMan writes "Not for the easily distracted: a Belmont software developer's hand-built CPU was featured in Wired recently. Starting with a $50 wire wrap board, Steve Chamberlin built his CPU with 1253 pieces of wire, each wire wrapped by hand at both ends. Chamberlin salvaged parts from '70s and '80s era computers, and the final result is an 8-bit processor with keyboard input, a USB connection, and VGA graphical output. More details are available on the developer's blog."
I own a two-bit computer. My dad gave it to me. I know it is two bits because before he gave it to me he would often remark "I hate this ******* two bit computer."
(Yes, it is also reproductive.)
When things get complex, multiply by the complex conjugate.
Sorry, I just had to ask.
Run and catch, run and catch, the lamb is caught in the blackberry patch.
Crysis, OTOH, is fine
The functional components are all off-the-shelf TTL ICs.
Well, he is only one person, after all. Even if he was studly enough to build it from vacuum tubes, he probably wouldn't be winding his own filaments.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
After all, it has to be better than MS-DOS!
There are no perfect answers, only the right questions. More questions at http://foresightandhindsight.blogspot.com/
Not one "but does it run linux" ? I'm sooooo disappointed...
If only I had a time machine and a highly extended lifespan, so I could spare a couple thousand hours on it...
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
That's the way it used to be done: I wouldn't claim that DEC engineers did not "make" the PDP-1 because it was constructed from wire-wrap discrete components. The only other sensible option for someone who wants to "make" their own CPU at home would be to program an FPGA, which is certainly less interesting than what this guy has done.
Uh, maybe not. :-)
built his CPU with 1253 pieces of wire
Farnsworth: Let me show you around. That's my lab table, and this is my work stool, and over there is my intergalactic spaceship. And here is where I keep assorted lengths of wire.
Fry: Whoa! A real live space ship!
Farnsworth: I designed it myself. Let me show you some of the different lengths of wire I used.
Yeah, baby...
Back before the days of the 4004, 8008, and 8080, when we built computers, we REALLY built computers.
None of this: take a pre-built-motherboard, add a pre-built-power-supply, add a pre-built graphics card...
oblig: get off my lawn
Karma: Excellent. 15 moderator points expire sometime.
Is it? The difference is a lot of menial work and big mess of wires, but nothing fundamental: Buy a couple of logic gates, connect them to form a CPU. All the "magic" happens inside the chips either way. Neither approach will produce a working CPU when one morning you wake up on a deserted island.
It is about time that Intel has some competition.
I'e done something like this for a college project, not as complex but we built a 68020 using wirewrap. My only question, why didn't he send away for a PCB after the design was done?
The "connect them to form a CPU" is sort of the trick there though isn't it? I could buy a bunch of TTL chips and "connect them up" but it sure as hell wouldn't do anything other than let the smoke out. It certainly wouldn't be a CPU.
My chances of waking up on a deserted island are probably slim, but lets say I did: unless that desert island happens to have a small power generating facility, a couple of hundred working computers, a dozen CPU designers and fully working ASIC fab. complete with a fully trained work force, I don't think anyone is going to be making their own CPUs, no matter how you might try to do it.
Syllable : It's an Operating System
All the board level products I designed in the early 90s had to be prototyped with wire wrapping. Even if you are careful, by the time you do hundreds of connections it is almost inevitable there is some flaw. You might miscount a row of pins and attach to the wrong pin. The process of layering multiple connection to a single pin might damage a wire at the bottom. Wires might break or make a shaky connection that comes or goes.
I would not ever want to go back to that, but it did two useful things: The plodding physical process of "I'm now connecting this to that." forced a slow, comprehensive walk through of your design which can reveal design mistakes. The other is honing debugging skills of intermittent problems: "Is this a design flaw or a wire making poor contact?".
What I always liked best about that video is the way he uses common, everyday tools that anyone would have lying around the house.
This is why "trusted" treacherous computing is doomed. It takes determination to build a simple computer, but once you have one, you can "bootstrap" with it - use it to design a more powerful computer.
Only by hunting down and killing everyone who is even vaguely smart enough to begin build computers could someone hope to make treacherous computing "work". I wouldn't put it past them to try, of course.
... to wire a Beowulf cluster of those...
To have fun is not a good enough reason to do something?
I guess you would be happier if he was just another fat slob who "has fun" by watching American Idol?
This is quite possibly the most asinine comment I have seen on Slashdot in a long time.
Magic-1, a 16-bit TTL-based, wire-wrap PCB computer.
Slashdot posted an article on Magic-1 when it was completed years ago as well.
Site & blog: http://www.mayaposch.com
I remember a grad class that went into circuit design and register transfer language. I was amazed how opcodes could be made to twiddle bits. We just had a software simulator to try our designs -- I admire this guy for building it. Cool!
I'm gonna get off his lawn for sure!
My blog
Never understood by bread boards replaced wire wrap.
He's like the Chuck Norris of nerddom.
There needs to be more Steve Chamberlin's in the world. Personal (or enterprise, for that matter) computing hardware has hit a mass exploitation mark; computers today have such an abundance of resources, storage and processing power, any developer I've had to work with in the last half of decade sees the computer, much like Steve mentioned in TFA, as "...like black boxes... and understand what they do, but not how they do it." which leads to blatant disregard for anything, really sloppy ways of coding and development, zero ideology or best practice on how to truly harness and control resources efficiently. I don't expect anyone to have a physics background or be some die-hard electrical engineer, but there's definitely something to be said for growing up and working with early computer models where you had to give two shakes about that stuff. This is very cool, indeed.
Well in that case according to the article you just spent $1000 and 18 months for nothing? Come on, if you can do this, you can do better at explaining than that!!!
He did it for fun. 18 months is 78 weeks. $1000 for 78 weeks of a fun hobby works out to be about $13 dollars per week. That's pretty reasonable for a hobby. A cinema visit with popcorn once per week would probably cost more.
it sure as hell wouldn't do anything other than let the smoke out.
See, that's what I mean. You treat TTL chips like there's some magic to them. There isn't. It's digital logic. Basically you connect them like you would connect them in a diagram on paper. If you want to add numbers, print out this page from Wikipedia, look up which chips have the gates you need and wire them up. It's that easy. A lot of work, but not complicated at all. An FPGA is the same thing, just that the connections are "software-defined" instead of actual wires.
a small power generating facility, a couple of hundred working computers, a dozen CPU designers and fully working ASIC fab. complete with a fully trained work force
We're lucky that the aliens sent us all that stuff or we wouldn't have computers today.
slashdot is really sucking hard these days.
the guy makes an off-the-cuff comment about his motivation, and some braindead moron on slashdot criticizes him for it.
HE MADE A FUCKING COMPUTER, YOU MOUTH-BREATHING DIPSHIT.
of course he had motivation! how could you sum up the motivation in just a couple of words?
what worthless piece of shit you are
Tho you were being funny, one really could build this out of discrete semi conductor diodes quite easily.
People have been known to make their own tubes too ya know -> http://www.eetimes.eu/consumer/205801104
---- Booth was a patriot ----
To vex morons like yourself.
XML causes global warming.
Um, no. I'm saying doing it with wirewrap TTL is more interesting than doing it by programming an FPGA. It's more interesting and requires more skill. If I was suitably motivated I could learn enough Verilog to build a simple 8bit CPU on an FPGA, but it would take me significantly longer to learn the EE required to do it with TTL.
Starting from a desert island it would take you a couple of hundred years (guess you'll have to figure out asexual reproduction along the way) as you'd have to re-invent the entire industrial revolution and re-discover all of the electrical, chemical and engineering skills required to build the first transistor. If you set the bar a little lower you'd need maybe 10 years less to build a triode, although you'd better hope your desert island has significant deposits of the various metals you'd require, especially copper and tungsten.
To put that another way: what the hell does that have to do with whether it's cool to build your own CPU with TTL components?
Thank you for linking this video. Wow! This guy is the REAL Doc Brown lol. I watched every moment of it in awe. So that's how ol' school electronics was done :)
Really, thanks!
This sounds like the kind of project any computer engineering undergrad curriculum would cover. Myself, I have had to design/build 4 different processors of varying complexity (basic mips, pipelined, superscalar, etc) during my years as an undergrad. Its cool nonetheless and by no means "easy".
this is old news for anyone who takes a look at hackaday once in awhile
it would take me significantly longer to learn the EE required to do it with TTL
If you say so... Most people grasp the EE aspects of digital logic quite quickly. There practically aren't any, at least not at the level where you can get away with wires crisscrossing in multiple layers on a wire-wrap board.
Sounds like the right mag for this project, though make is the more appropriate one.
I prefer the "u" in honour as it seems to be missing these days.
I can just imagine what my wife would think... (She'd let me, she's great that way...).
She'd let you? And that's a virtue? Damn, man.
I'm not at all convinced. Sure, it'd be less likely to put your name on slashdot, but the part doing it on the FPGA removes - connecting all the wires together - isn't actually interesting; by and large, it's tedious manual labour. It's certainly worth knowing how to, but honestly once you've wired ten chips up you've pretty much "done them all". To my mind using an FPGA makes it easier to concentrate on the actually interesting part, the processor design, rather than getting caught up in the endless "wire A into hole B".
I am trolling
She'd let you? And that's a virtue? Damn, man.
When you are time poor and share financial responsibility for a family, and you're the bread-winner, decisions like that are joint decisions. I know that's a difficult concept for some to grasp and you think that just means I'm under the thumb, but you know what, I couldn't do what she does for our child. We only have one child he's still an infant and he doesn't sleep much. She's had it very rough, gets very little sleep etc. So, yes, she's entitled to have some input into how I spend my time and our money. And yes, it is a virtue that she'll let me spend that time and money doing something she doesn't agree with or sees as pointless.
So you know what, if you want to belittle a guy for not being a selfish piece of fuck when he's got a family, go fuck yourself.
These posts express my own personal views, not those of my employer
Wow, your comment reminds me of those keychains that say, "How do you keep an idiot amused for hours? Turn over..." Guess what is written on the other side.
He didn't say it's a Turing Machine, he said it's Turing-complete, which means that (in theory) it can ran any conceivable program, with the obvious limits of RAM/Disk.
The limits of memory make the proper term "LBA-complete", where the required memory varies linearly with the size of the input, rather than "Turing-complete". But in practice, "Turing-complete" means LBA-complete.
Fantastic video, thanks for the link.
Switch back to Slashdot's D1 system.
you're resorting to telling an awful lot of people to go fuck themselves over this article, and the guy from the OP is the one who needs better people skills? is that the best you can come up with? you don't know how else to express yourself? i'd expect someone who's not claiming any geek skills to have MUCH MUCH better people skills than that.
touche
The "make your own chip" approach is usually done in FPGAs these days. You can still buy a 6502, as a verilog program for an FPGA, if you really want it. As to actually processing your own silicon wafer, that can be done in your garage workshop, but is much harder.
I see your posts all of the time, and it baffles me that more people don't respond to you and tell you to go fsck yourself the way the parent poster did! You are constantly posting ridiculous diatribes that often contradict each other. You are the scourge of Slashdot, and I really hope they cancel your account!
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
Good luck with that.
Nothing about your garage is similar to a clean room and god forbid you actually meet the requirements for a class 10 clean room, you wont have enough room left for any equipment!
You can't legislate goodness. Let each to his own destiny, by will of his freely made choices.
Wow! thank you for that link. made my month.
Some drink at the fountain of knowledge. Others just gargle.
Damn right, the lazy fucker should have dug the iron ore up himself, then dug up the coal to fire his home-built kiln so that he could create his own iron. Of course he would have had to hand-build bellows to create steel, and maybe he should have home built EVERYTHING ELSE in the production pipeline, including hunting his own food every night from his homebuilt house. Luckily he invented his own language to communicate with other people so that he could coordinate things!
The article mentions "Z-80" among the parts used. The Z-80 itself is an 8-Bit CPU.
A clean room isn't that important when you use an 80 mm process.
USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
his homebuilt house
I think you have a chicken-and-egg problem with that one.
Always back up, never back down. ---- Think you're cool 'cos your uid is prime? Take mine, modulo the one digit integers
No its cool, but not as cool as if he had done more with lesser equipment. I used to work for a pioneering arcade manufacturer. I loved going through their museums. From the earliest prototypes, you can literally see the struggles and sweat that went into making the product : tons of wires going everywhere huge heat sinks and capacitors everywhere. Then as you go through time to later modules some of the wires disappear thinks slowly start to shrink, until the latest version is just a small pc board with industry standard connectors for everything. I mean yeah it also had a FPGA that had some pretty cool stuff in it, but you couldn't tell that by just looking at it. I remain more impressed with the earlier advances, than the latter ones.
Well.. maybe. Or Maybe not. But Definitely not sort of.
The article mentions "Z-80" among the parts used. The Z-80 itself is an 8-Bit CPU.
The blog says "Build the CPU from scratch, primarily using basic 7400-series logic. No 6502, Z-80, etc."
That's the only reference to the Z80 I can find in either the article or the blog.
Clean rooms are needed at some level. Cleanliness is the key factor. If you're doing this in a garage workshop you'll not be doing 45nm process. You'll be closer to 45um (1/20mm), along the lines of the medium scale and large scale integration done in the '60's and '70's. If you're willing to accept losses and low yield, you can accomplish this using simple bench top equipment. Having done something similar in a university lab back in the '80s, I can assure you it CAN BE DONE.
Back in the '80s there was a rumor of a Russian version of the Apple II with the CPU implemented in wire-wrap, because they couldn't get actual 6502s in Russia.
You do it for the same reason you climb a mountain.
Because it's there.
You are a pretty funny guy... Apparently, one cannot bet critical of much of anything posted on Slashdot - pretty much assures name calling and modding of troll and flamebait.
Pot. Kettle. "Black."
I tried writing a virtualization in Z-80 assembler of a 32-bit system meeting Microsoft's specifications for Vista.
Unfortunately it couldn't actually run Vista because Microsoft underballed the requirements.
80 mm process
That seems a little excessive.
Just look at all the embroidery in a 4-bit CPU.
That was, in a very geeky way, incredibly beautiful. Thanks for posting. Whenever I think artisinal craftsmanship is dead, someone like you comes along and restores my faith.
The subject who is truly loyal to the Chief Magistrate will neither advise nor submit to arbitrary measures (Junius)
Some time ago (nearly 10 years - wow!) I made a microcontroller-based homebrew MP3 player: http://codepuppies.com/~ben/sens/pic/mp3 . My big mess of wires was a tiny fraction of the size of his, and it caused me enough headaches - tracking down signal noise, random glitches, etc... Hats off to this guy.
I'd also recommend this book: http://en.wikipedia.org/wiki/The_Soul_of_a_New_Machine to anyone who finds the Wired article of interest. It doesn't get too technical, but it describes the trials and tribulations of bringing a new machine to life, initially on wire-wrap boards - as well as some of the politics involved in a corporate environment.
I've known many engineers like this, forest for the trees folk who can work for years on a sub-assembly and greatly ignore the totality of the project.
An Education is the Font of All Liberty
Can't see the video... 404 compliant.
"Windows: A thirty-two bit extension and graphical shell to a sixteen bit patch to an eight bit operating system originally coded for a four bit microprocessor which was written by a two-bit company that can't stand one bit of competition."
Fact: Everything I say is fiction.
I'm a wanker, I do it all the time. If I could fuck myself I truly would give it a go.
Its no fun being a geek with no social skills sometimes :|
Here is an example of *really* building a computer from scratch ... although he didn't wind the relays himself ...
http://www.electronixandmore.com/project/relaycomputertwo/
What about CP/M? That ran on systems similar to that, and I believe it is open source these days.
I can't seem to find a parts list, but well, I wonder if he used a 74181 Arithmetic Logic Unit and 74182 carry lookahead generator. That would provide quite a few of the arithmetic and logical instructions that one might expect in 8-bit CPUs common in the 1980s in just three packages (the 74181 ALU is a 4-bit ALU, but it can be cascaded, and the 74182 can be used to provide carry lookahead for up to four 74181s). However, you'll also need an instruction decoder, and that, unless you use a programmable logic device of some sort (in which case you're actually doing microprogramming), will need quite a few logic gates...
Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
Um, no. I'm saying doing it with wirewrap TTL is more interesting than doing it by programming an FPGA. It's more interesting and requires more skill. If I was suitably motivated I could learn enough Verilog to build a simple 8bit CPU on an FPGA, but it would take me significantly longer to learn the EE required to do it with TTL.
It really isn't much harder. I guarantee that you could learn to wire up some TTL chips just as easily as you could learn Verilog. Is "assign x = y" really so much easier than connecting pin X to pin Y with a wire?
The tricky parts in digital electronics are always the various hazards (race conditions, glitching, metastability, etc...), and they will happen regardless of whether you're using wired discrete components or an FPGA. That's where the real electrical engineering work is.
In fact, I'd say that starting on an FPGA without understanding those hazards would actually be more difficult, because you won't understand what is causing them. You'll say that x = (~a && ~b) || (a && c), and you won't understand why x glitches when moving from ABC = 001 to ABC = 101.
Reminds me of when I had to travel back in time to make sure some woman got hit by a car. Vacuum tubes... THEN I'd be impressed.
Initially, I was quite surprised he could squeeze enough stuff to build a computer capable of running a BASIC interpreter on a single Augat board, given his claim of only using 7400 logic.
Scroll down to the Board Layout on his blog, you'll find that many of the supposed "7400" logic chips are actually 20V8 and 22V10 PALs. Programmable logic heresy, I tell you!
The actual 7400 logic chips I found so far are: 74LS74 (Flip flops), 74LS139 (dual 1:4 decoder), 74LS161 (dual 4-bit counter), 74LS163 (dual 4-bit counter), 74LS181 (ALU), 74LS244 (Bus transceiver), 74LS377 (octal D flip flop).
Given that mix, I would say this falls somewhere in the MicroVAX era, which had a similar mix of low-density PALs and 7400 logic. My colleague at work used to make stuff on similar boards. Some examples include a color display driver (for a VAX) and an antenna positioner (again, for a VAX). The display driver has long been replaced by Linux boxes, but the antenna positioner (and VAX) still lives on.
Steve, if you're reading this, we still have lots of Augat boards kicking around, along with lots of boxes of 7400 logic (sorry, no 22V10s!)
On the other hand good design practice for anything but ultra high speed devices makes glitching moot. You use flops, not latches, and all outputs are registered, so the outside world always sees clean signals. And that is a terribe example, since it is quite likely for no glitching to occur with that, depending on the design of the lookup table used in the fpga.
Oh and these days sythesis tools have gotten pretty darn good. "assign a=b*c;" is certainly a hell of a lot easier than building a combinational multiplier from, ttl chips. (Granted, a combinational multiplier is often not a great idea, but occasionally it is called for.)
Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
Wire wrapped construction was a great step forward in reliability from the solder of the PDP-1 and PDP-6 computers.
Because you're being chased by goats?
Python coder | PyQt Applications | Writer
WWHHHOOOOSSSHHHH!
ROTFLMAO
What makes you think I was replying to you instead of the post from "Anonymous Coward" to which I clearly did reply? Do you not know how to follow a thread? I was replying to "Anonymous Coward" and pretending like I thought that was 1 single person, making a joke that obviously went over your head. What is perhaps more baffling is that you are the one who told someone to fuck off, so you would think that would have been a pretty big hint that I was not referring to you. In the words of Bill Murray in the hilarious movie Stripes, Lighten up Francis!
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
One where you had to give a rat arse about the ambient temperature to set the fuel mix, where you had to handcrank to get an idea what compression really means. Real manly brakes, none of this ABS crap that required you to anticipate as it would take a while to bring several tons of metal to a full stop. Etc etc. Personally, I love the modern age, where we can concentrate on what we want to achieve not being limited by the tools.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
The LCD panel on the front of the case probably has more processing power in its internal controller than the rest of this project, heh.
See here for said simple benchtop equipment.
If you were replying to a/c, I apologise. I've been getting some shit lately here.
Have a good one.
These posts express my own personal views, not those of my employer
Since you apologized, I will graciously accept. It is good to see that kind of maturity here on /.
...
As you are no doubt aware, such mature behavior is not nearly as common as one would expect from a site ostensibly frequented by professionals.
Peace and Blessed Be
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
I recall reading about how some of the parts cloned in Soviet Union were so bad that every chip had to be shipped with an "errata" that specifies which instruction(s) are defective and must not be used in writing code for that specific chip...
Not to mention that despite the back lighting, the LCD panel probably uses but 1/100th of the power consumed by all the discrete logic.
ELOI, ELOI, LAMA SABACHTHANI!?
http://vimeo.com/2423528
I've done lithography outside of a cleanroom before. The person who ran the facility put it this way (when telling me why they require clean shoes or shoe covers): we don't pretend that this is a cleanroom, but we do try to keep it a not dirty room.
Wow, 8cm resolution. I think I could do better with a chisel and hammer!
(I know what you meant, but i couldn't help myself)
For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
Impressive... in a "wow, that sure took a lot of time" way. Wish I had spare time like that.
He sounds like he probably owns all of the Star Trek series on DVD.
Wow. Awesome vid, I just wish I understood more of it.
If you can read this... 01110101 01110010 00100000 01100001 00100000 01100111 01100101 01100101 01101011
I am reading this, and if that was an offer to pass on some old Augat boards, I'd *love* to have them! They're getting tough to find! My email address is on the stevechamberlin.com website if you want to contact me.
If I ever said Big Mess o' Wires was only 7400 logic, it was a lie. My original goal was to use mostly 7400 logic. In the end there were also quite a few 22v10 PALs as you noticed, and two LSI chips related to audio and video RAMDAC.
One can be critical, just not a luddite and wet blanket.
Semi-automatic amateur armchair Australian philosopher; conjecture ready at any moment...
He didn't use full TTL design either. The thing has a large percentage of its componentry in the form of GALs. It's pretty and the work is very impressive, but this is not a pure discreet logic design. I expected to see a wonderfully massive board populated with row upon row of 74lsxxx ICs and a few RAM chips. Pity for the deceptive description.. It's a wonderful accomplishment without the exaggeration.
Unbelieveable COOL !. I'm thrilled by the idea people still want to build their own design and put real effort in making it WORK. Congrats and my respect Steve Chamberlin. There is live beyond (W)intel and (L)AMD.
Bach says it all.
The glass-forming equipment isn't unreasonable -- propane torch and such -- and the spot welder is within the realm of an enthusiastic mechanics hobbyist. What blew me away was the induction heater.
Contribute to civilization: ari.aynrand.org/donate
Look at the devices, you'll see a large portion of them are 22V10. These are primitive programmable logic devices, midway between gate logic and FPGA. If he had actually made a design with gate ICs and flipflops, it would have been much bigger.
Contribute to civilization: ari.aynrand.org/donate
I was disappointed to see that the clock is 8 MHz divided down to 2 MHz, which I assume is the fastest possible instruction rate. Given that the design is microcoded, most instructions probably are many cycles. Ah, well... optimizing for speed means a more complicated and difficult design.
Contribute to civilization: ari.aynrand.org/donate
Out of curiosity how many FLOPS (floating operations per second) does this processor do? I know it's probably not a lot but I am still really curious. If it doesn't do floating operations then I am still wondering how many integer operations is does. In fact any rough indicator of speed would be nice!
Member of the 7 Digit UID Club
Reminds me of 'A Tale in the Desert'
snig