Building A Computer From Scratch?
wackybrit asks: "The economy has given many of us the chance to go and work on some side projects. I was reading "Interview With Bill Gates" and have been inspired to create my own computer from parts, to write my own interpreter, and to really see if I could do what Gates and Allen did back then. With the Internet as a reference guide, it should be easy. However, things are not always so easy. I might be a techie, but I have no idea how memory chips hook up, how a data bus really works, and how to tie everything up. Do you Slashdot folk have any handy tips or resources I can refer to for building my own machine from scratch?" If you had a chance to build your own computer, would you make yours similar to existing designs (ala the PC, or the Mac), or would you do it differently?
I'd build a mini computer with the functionallity of an 8080, but also some features to make certain functions use less cycles than a normal microprocessor. FPGA's are cool for this.
If you want to do this today, you might consider designing your own CPU and implementing it with an FPGA. Look into the Forth processors; they're about the minimum useful machine you can build.
- It seems like everybody was using them in the mid 80s to early 90s (sun, amiga, macs, next, just off the top of my head). This means that a) they're probably easy to design around, b) they've probably got LOTS of public-domain documentation, and c) they're cheap
;-) - The initial versions of SunOS as well as all the versions of NeXT ran on m68ks, so I know it's possible to run a Unix-like OS on them.
- I've been told that m68k assembly is comparatively easy and straight-forward to learn, and I'm going to have to hack at least SOME asm to get an OS going on my theoretical creation.
- Did I mention they're cheap?
;-) At maybe five bucks per good chip on ebay, I can afford to fry quite a few of them
Of course, I'm just a software dude (actually, my formal training is in chemistry, I just sort of fell into programming), so if any hardware people are in the audience hopefully they'll correct any stupid assumptions I've made.News for Geeks in Austin, TX
There are really two issues with what you want to do. First is digital logic and computer design, the second is hardware design and practice. The last word, "practice", is an especially tough nut. One other poster talked of wire-wrapping and messing up 6 connections out of 4000. I would suggest splitting this project into two phases, to be tackled in no particular order.
One Task: Learn about hardware construction on some simpler projects. Learn by building from working schematics.
The Other Task: Learn about computer design with simulation. Go get Icarus Verilog. (http://www.icarus.com/eda/verilog/index.html) There are microprocessor netlists available, get one. (Don't have a URL handy.) Learn to simulate it, learn Verilog, (or VHDL) then start designing your own.
Put the Two Together: Once you know how to work with hardware, and once you have a design that will simulate correctly, start thinking about building it. Besides, this is the way it's done in the Real World. Nobody comes up with a schematic, implement it in hardware, then begin debugging, any more. You don't start to touch hardware until you have a reasonable belief that your design will work, from simulation. Even then, there will still be plenty of room for debug on hardware.
The living have better things to do than to continue hating the dead.