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.
It is about time that Intel has some competition.
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?".
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
errmmm. pics or ... ;)
a 68020 !! That's a pretty impressive feat. What kind of chips did you build it from ? Regular series ttl or cmos or something at a higher level of integration ? Did it work ?
Given the fact that the chip was originally named (the 68000) for it's transistor count even if you were using fairly large 'blocks' it would likely have spanned many boards.
What clock speed did you get it to run on ?
MP3 Search Engine
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
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.
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.
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".
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
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.
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!
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.
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.
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.
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.
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
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!?
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...
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...
When I was 16 or 17 my father gave me a "green-wire" board that had been tossed. This was a 68000L8 'GMAP' processor board designed by Granger & Assoc. back in the early 80's this particular prototype board never ran and the engineering staff couldn't figure out why. I ended up with the board, a set of schematics and the PCB wiring plots. When I got a little more hardware savvy I was able to figure out why it didn't run.... and why this particular spin of the board design had FAIL written all over it.
One of their 'green-wire' fixes had left a TTL inverter faced backwards near the bottom of the system clock chain, thus feeding the CPU an effective clock of about 50 MHz... This had a strange effect on the poor 68000L8.... This extreme over-clocking caused the 68000 to sequence the address pins sequentially counting up from 0x000000 to 0xFFFFFF... I wonder if that was a test mode for the processor?
In the end I was able to get it to run code. I removed the errant gate from the clock chain and the 68K sprung to life and began executing code.
Before I stopped messing with it I was able to adapt a 68030 and 68882 FPU daughter card to the board and get it to run at about 30Mhz reliably.
Most of the I/O sections were horribly mangled by a truly disastrous interaction between the schematic layout artist and the PCB layout artist. Which lead to none of the I/O actually being serviceable. In the end, I chucked the board in around 1995 after having learned all I could learn from it.
The most valuable lessons being: This is how to design a large format embedded controller... NOT!
All code written for the system was developed and debugged on a Mac SE30 via Apple's MPW IDE and the 68K assembler. The resulting binary image was then sneaker-netted to an Apple //gs that had an EPROM burner plugged into one of it's card-slots. The binary image was then split into The high and low EPROM images using a custom AppleSoft BASIC program, and loaded into the hires video memory of the Apple //. The EPROM burner could only be accessed via the monitor ROM (CALL -151) The resulting EPROMS were then socketed into the GMAP and power applied.... 5 LEDs on the board supplied debugging and status/ code progress info....
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