Design Your Very Own Microprocessor
LightJockey writes: "CircuitCellar has a great article on designing and building your own microprocessor using FPGAs and openly available processor designs, ranging from ARM and MIPS based to custom designs, and even a couple SPARC based chips, and also a really cool 'processor toaster,' start with a base processor design, and using a webpage to select upgraded components, it spits out the VHDL file you need to create it. Brings garage hackerdom up to a whole new level!"
That's nothing new. I've been toasting processors for years now. All you need is any AMD chip, a failed heat sink, and 30 seconds of Half Life.
Find out about my new childrens book: SS Death Camp Criminal Batallion Go To Monte Carlo For The Massacre
The damn thing would incorporate circuitry for a garage door opener, a missile guidance system, and would have all 20 megs of emacs stored in microcode.
An Education is the Font of All Liberty
Without training and experience in hardware design at the college level, it is doubtful that any amateur could come up with a design that improved on existing chip designs or create a fundamentally new design that would be of interest to chip companies.
The hope springs eternal, though.
I have been pwned because my
I attended an IEEE meeting at my school recently, and a guy from Xilinx presented and demoed FPGAs (their brand of course) and told us why we should use FPGAs for our signal processing needs. Of course, being an SE student, there were quite a few thngs that were over my head, but of course talking about the massive paralellism clicked with me, and of course hearing that one client of theirs had OC-768 signal processing within one FPGA chip, well, that was pretty damn cool. Also, being able to design your circuits with a nice GUI interface, rather than in VHDL or Verilog or whatever, looked pretty damn cool.
"I would say that 99 per cent of what my father has written about his own life is false." - L. Ron Hubbard Jr.
Since most articles are /.ed as soon as they are posted. I think a great feature for subscribers would be a mirror to each article that is hosted on slashdot.
Hacker Media
The whole point of having an FPGA implementation is to allow you to get the latest version of the processor with a patch debug or improvement. Imagine compiling the latest distribution down to your processor and off you go. If you want it to do something special then hack the code.
www.opencores.org has many processors allready. I made a MIPS R3000 with a cache and MMU etc with minimal knowledge of hardware design.
Mouse powered Chips, Open source Processors and Lego
I took a class in college where we learned how do this, with the last assignment ending with implementing a processor with 12 or so instructions.
The one thing I think I came away with is that you can built just about anything with FPGA's, whether you mean CPU's, or just controllers for large LED's, garage door openers, mp3 players or whatever...
There is a huge gap to fill in terms of geeks designing neat household or hobby chips that just do something that you need to implement in hardware (or firmware i guess). These devices don't need to be as fast as Intel or something, but there can certainly do something Intel's never done. I've always wondered why there aren't more open source projects built on this idea...any know? Anyone know where to look for these projects?
I guess a reality to recognize is that miniaturization (sp?) and faster processors with more features will eventually drive almost everything into the software arena (arguably already happened), so you might as well just write your cool device in and run it on your Linux iPaq or whatever replaces it...
Of course, I'm far from being an expert in this arena so this is just amatuer speculation...
Your signatures belong to me.
Bah... RMS already has an Aibo pet that does all this and more...
In fact, it's mighty useful for voice activated control of the guided missile array on top of his fortified bunker compound with 18 inch thick steel garage doors driven by Emacs macros. I think the whole system's called "GNU/Fortress" or something.
Only properly government licensed and monitored programmers and technical people should be allowed to work on such technology as the potential for using this technology to violate the DMCA exists. Anyone who disagrees with this is a terrorist.
GOD BLESS AMERICA
Aren't you supposed to say this in haiku or limerick form?
Besides, if AMD discovers that you've stole their trade secrets, they'll sue you into the ground.
When I made my MIPS clone MIPS hot straight on my back sending me many threatening letters. Firstly they wanted to make sure I wasn't breaking any of their IPs. Then they wanted me to place a massive blurb to state I want anything to do with their company. Then they went down to the level of requesting my report of the building of this processor to use mips and a perfect adjective rather than a noun. Each time recommending that it would me much easier if I just gave up and took it off the web.
Mouse powered Chips, Open source Processors and Lego
Ack! I just turned in my senior design project yesterday, after spending almost two all-nighters in a row getting everything to work. And guess what it was? A CPU designed from the ground up, implemented on a Xilinx XC4010E FPGA!
;)
Course I did mine completely in schematic entry -- VHDL code is for wimps
The following sentence is true. The preceding sentence was false.
NOTE TO MODERATORS: Yeah, this is off-topic, but comes up often enough that I thought I'd take a stab at it anyhow. Thanks.
This would probably make a lot of people angry. Your motives are great; you want the subscriber base of
Trouble is, a lot of sites look to ad revenue to pay for at least some of the cost of hosting and bandwidth. If you mirror the article, most ad systems are "cut out of the equation." Now, this is sounding better and better for
Maybe mirroring of academic articles (without ads or other profit-generation methods) would be appropriate, though. Or, maybe
Just a few thought.
It's a Free fortress. Open fortresses are a different movement.
Then they went down to the level of requesting my report of the building of this processor to use mips and a perfect adjective rather than a noun.
That's just common practice with trademarks. For instance, you'll never hear a commercial for the "Pentium" unless Pentium is followed by "processor". Further examples: SPAM is an adjective and should be followed with "luncheon meat." Java is an adjective and should be followed with "technology," "platform," or "language." Macintosh is an adjective and should be followed with "computer."
MIPS as a noun does not refer to a processor architecture. It refers to an easily-fudgeable benchmark.
Will I retire or break 10K?
OK, you can reimplement a modern processor core in an
:)
FPGA if you really want to (I can guarentee you that
the FPGA will NEVER run anywhere near as fast as the
regular chip) or you can do what I did for our senior
design project
We used a Xilinx Spartan II to run the main board on a model helicopter control. The idea was that several sensors, including a 2 axis tilt, accelerometers, RF controller and an ultrasonic sonar could be easily integrated into the VHDL core, and then the chip would calculate 4 PWM outputs that drove the 4 motors. While the thing unfortunately didn't fly (weight problems, but hey, we're CompE's not aeros!) the board itself worked
great and the software UART outputted all sorts of fun data about what was going on.
Here's the interesting kicker: The entire system was clocked at a grand total of 1MHz (that's right folks, 1Mhz) and even that was too fast for most of the onboard operations that we internally clock divided. This thing operated all of the components completely in parallel, so there were no interrupts needed at all. The reconfigurability of the FPGA means you can quickly adapt it to solve a whole bunch of specialized problems very efficiently and quickly. This thing definitely met the criterion for a hard realtime system (motor updates within 1ms of a sensor or RF input) and it did it all
via VHDL code, no OS or any high level software needed.
Now obviously this is a very embedded solution and is not extremely flexible, but sometimes you need to step back and look at the true advantages that the hardware provides for you, and use it for something other than reimplementing someone else's CPU core, (of course, that
can be a hell of alot of fun too.... mmm... 21st Century overclocked Trash 80)
PS--> use my spam address: foxcm2000@hotmail.com and
I'll be more than happy to send you all the VHDL we used
to implement the project since I just graduated yesterday!
AntiFA: An abbreviation for Anti First Amendment.
I had an article on this awhile back ago (toasted like AlaskanUnderachiever's previous four AMD's), but with the site now gone, I can't seem to find it in either google or wayback.
Anyhow, I think it is important that even hardware move over to the open source world. There are three requirements for this to kick off:
An inexpensive system for creating them
Knowledge and understanding of the standards involved
A central repository for updating and dissemination
If a common public utility for creating wafers could come out at fair cost (say, atleast equal to a computer, estimate $800 or so) that would be a major step for the first part. If the group involved at the IEEE for processor standards could freely distribute some or all of the necessary information, similar to as PARC did with POSIX, that would assist in the second. Finally, we would need a FreshMeat equivelant for hardware designs.
Processors are only a beginning...solid state technology, drives and cards would come fast thereafter. Is it an emerging field or something that will remain in the hands of the elite few who actually know the difference between a PSU and an FPU? I can wait you people out...I've been waiting out for the creation of massively distributed Open Source Software before many of you were born!
"Yeah...it was the numbers that were irrational, not the murderous cult of vegetarians...." -- Hippasus of Metapontum
So when can we expect to see actual MMIX hardware?
Thoughts on tech, Software Engineering, and stuff
[100% ISO 646 Compliant]
SVM, ERGO MONSTRO.
I did this in college, (some 4 years ago). It was a lot of fun.
I designed a processor that had a stack for a register file. It worked like a charm. It was pretty serious design too with a pipeline of 4 or 5 stages and instruction forwarding etc.
It would have actually been usefull for an embedded processor that would be dedicated to run a stack based language, like Java.
Of course the next step is to design the whole thing on transistor level. And that is kind of a pain. Then you have to worry about having enough space to put everything etc, sizing all the transistors just right etc. Also you cant put that on FPGA, you have to be content with spice simulations.
But the gate level design is fun.
There's also an FPGA CPU mailing list, with almost 500 subscribers. Send mail to fpga-cpu-subscribe@yahoogroups.com to subscribe.
Many of us FPGA CPU hackers also frequent comp.arch.fpga on Usenet.
You can too.Jan Gray, Gray Research LLC
Anyone got the VHDL to a Stella-compatible video chip core? Add a 6502 core, and you've got 2/3 of an Atari 2600!
#naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
> Trouble is, a lot of sites look to ad revenue to pay for at least some of the cost of hosting and bandwidth.
First of all, this would be no different than what's in Google cache, which are often posted with Slashdot articles.
Second, if a site is Slashdotted, it has the maximum amount of viewers the site owners intended to visit at any given time, all exposed to their ads. Since they did not purchase the infrastructure to allow any more visitors to view their ads+content (by choice), it seems that they were not targetting anyone above that amount. So is it really a big deal if the rest of us see the content cached without ads?
I am kinda late in reply -- so no karma for me -- but for the record: i wonder how they test these suckers as they come off the toaster (haha, toaster)?
usually any chip would require a custom program to be run on a (very expensive, i might add) tester that will test the thing; writing the program is not cheap, i wonder how they factor in those costs? I wonder if anybody beside me on slashdot thought of this as a serious challenge?
My life in the land of the rising sun.
Just for kicks, I have been experimenting with my own processor design using TkGate for the past few weeks. TkGate is a great digital circuit simulator with lots of neat features.
:-) Once I add block device support, I want to write a simple OS with a built-in shell for it :-)
I built a working lcd display simulator out of the built-in LED outputs that is connected to some video memory. I also built a data bus that is partially working. I am currently playing with connecting the ALU. I even built an assembler and a cheap assembly language for it
std::disclaimer<std::legalese> sig=new std::disclaimer; sig->dump(); delete sig;
My partner and I design and implemented (on a large FPGA) a VLIW microprocessor. Our processor had 2 pipelines and a 16-bit registry.
The trouble is that you can't even come close to the number of pipelines or complexity required for a *real* modern processor using an FPGA. For example, in order to save space, we had to eliminate some of the more complex operations (e.g. divide & floating point instructions, on-chip cache management, etc.). And of course we were limited to only 2 pipelines, the minimum necessary to demonstrate parallel execution, which was kinda the point of our project. This was using the largest FPGA available at the time (250k gates, although there are bigger ones out now). Also, the clock speed of our processor was only 1-2 MHz depending upon how we tweaked it. FPGA designs are nowhere near what you could get with a design layed out and etched into silicon. A typical modern processor uses gate counts in the millions, easily 10-20 times what's available in a large FPGA.
While FPGAs are useful for simulation and experimentation, in the current day and age they just aren't fast and big enough to replace modern processors. If you're into making a small 8-bit RISC processor, or maybe implementing your own 6800 (or maybe a 6502 for you non-embedded folks) design, you can probably do pretty well, however.
The 2900 series was a bunch of four bit wide components for building a processor, such as arithmetic logic unit and register file. You could arrange these four bit "slices" in parallel to build a processor of whatever bit width you wanted. A few components were later released in larger widths, to reduce component counts.
I believe that Three Rivers Computer in Pittsburgh, PA use Am2900 bit slice chips to build a successor the the Xerox Alto workstation. Carnegie-Mellon University had a bunch of these when I was in high school. The "PiRQ" (if I remember the spelling and capitalization) had a fourteen inch fixed hard disk, a portrait format bitmapped monochrome screen, a digitizer tablet, and a pretty slick looking enclosure.
The Am29000, on the other hand, was an urelated product that came much later. The Am29000 was the first mass produced single chip RISC processor. It was a 32 bit processor with separate busses for instructions and data, so that you could use dual ported memory or some other scheme to arrange for data accesses not to break the streaming of instructions.