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
just imagine a a cluster of these!
--fetch daddy's blue fright wig, i must be handsome when i release my rage
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
Hell, someone had to do it. If you guys have some spare chip fabrication equipment in your garage, can I borrow it?
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
Every computer sciences (and engineering) major takes a course called something like "Microprocessors" or "Microcontrollers" and learns to design a microprocessor.
This course usually has prerequisite courses such as "Logic Design", "Computer Organization" or "Computer Architecture". Without those, it must be hard for non-cs guys to build a microprocessor. However, most of cool programmers/coders are not scientists, so it may also be possible.
Hackers are evil criminals. We need to nuke the evil criminals!
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.
...I just took my Computer Architecture final last Wednesday. If I passed (by the grace of God) then I'm never thinking about MIPS again.
kentyman
You know where you are? You're in the $PATH, baby. You're gonna get executed!
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
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.
an open fortress? doesn't that defeat the purpose?
In mathematics, one does not understand things, one merely gets used to them.
--VonNeumann
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.
OK. I help maintain a lab that is full of AMD's of various flavors. Now take a large heavy heat sink. Be a cheap ass admin and make sure everything is secured with inexpensive plastic bolts and cooled with cheap sleave bearing fans. Remember kids, even though these are going to get daily use from students and be suspended in an odd manner there's no reason to buy anything other than the cheap clips that came with the heat sinks. It's not terribly uncommon for someone to accidentally (yeah right) wack or move a machine with enough violence to weaken the clips holding the heatsink on. (ok I'm assuming that's what does it and we don't have an active army of super intel powered gremlins on premises). Heatsink slowly pulls away from CPU, eventually seperates one day, tada, rapid failure. Also the fans can fail. Either way, within a few minutes (or seconds if it's actually the heat sink and not just the fan) you have nice crispy chips. It doesn't happen very often, but take a lab of 40 computers x18 hours a day x freshmen and you've got a nice equation for failure.
Find out about my new childrens book: SS Death Camp Criminal Batallion Go To Monte Carlo For The Massacre
It's a Free fortress. Open fortresses are a different movement.
Having done actual hardware designs (used to be a hardware engineer - now I've crossed over to the software side) targetting ASIC and FPGAs with both schematics and VHDL, I'd have to say that your facts aren't quite right.
In all probability when you use schematic capture these days (which is becoming rare) the schematic gets translated into what's called a 'structural' netlist which gets translated into either VHDL or Verilog and then passed on to your synthesis tool. Or, perhaps you get an EDIF netlist from your schematic capture tool and pass it to the synthesis tool (though most would probably be converting EDIF to something else).
Now, I can only agree with your point in so far as with schematics you do tend to have to instantiate every little gate in your design so you do (might) end up with sort of a hand optimized design (perhaps). However:
1) You can do this with VHDL or Verilog as well by writing your critical sections in a structural style.
2) With the current state of synthesis tools I would tend to trust them to do a better job of optimization than I can do.
3) You're not going to design anything sizable (like a real microprocessor) in a structural style or with schematics - it would take like forever and never get done. That's pretty much what we were doing back in the '80's - designs now are much to big to have to lay down individual gates.
The trend is always toward higher levels of abstraction (just like in software - we don't develop sizable pieces of software in assembler anymore). In fact, some of the newer C/C++ based hardware design methodologies seem to be pushing to even higher levels of abstraction than VHDL or Verilog (see: http://www.systemc.org )
(don't) Panic
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.
Linux isn't open because you don't have full control over the code (thanks GPL!). FreeBSD, on the other hand...
Our team designed a microprocessor on an FPGA for our final project in our digital logic design class.
It was a nightmare, to be honest, but ended up a sweet project. It had its own RAM, its own machine code, and a number of IO channels. The instruction set included arithmetic functions and branching instructions (compares, jumps, addresses)...
In any case, it was freakin' sweet. ;) And hell, I'm even a CS major... I actually found that yummy hardware goodness pretty fun.
"All your base are belong to this file I send in order to have your advice."
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
I notice that I get a "connection refused". Maybe that's what is known as slashdotting a site.
Anyhow, the link doesn't work right now. If anybody wanted to post a general rehash of the article here, I'd like to hear more about it. [Not quotations -- that might violate (C). But more about what these methods are, and what they cost to produce an actual chip -- that might be nice.]
[P.S. If anyone wants to tell the sysops, "Create Account" just takes you to the login page. So meanwhile sign me..."
Anonymous unable-to-register-clutz-but-not Coward.
um... i've never seen an athlon die from fan failure. it takes a LONG time.
My server
I have been toying with the idea of making my own processor for my senior project. Of course, I can only do this in an architecture formant never be able to physically implement it. First, I tried it with a so-called "simpletron" with c++. Now with these new tools I could finish this project.
You are really lame.
[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.
Muhahahaha...slashotted.
Aren't you scared of being charged of putting down sites one after another?
See the "links" page in the "Java Optimized Processor" site: http://www.jopdesign.com/
Wow now this takes the fun out of hacking out your own VDHL.
So now this is what it spits out right?
entity CPU is
port(a: in std_logic;
z : out std_logic);
end CPU
architecture struc of CPU is
component WEB_CHEAT
port(cheat_in: in std_logic;
cheat_out: out std_logic;
end component;
begin
entire_unit: WEB_CHEAT port map(a,z);
end architecture;
A while ago /. ran a story (about a year after it was published, but that's fine) about a guy evolving software on FPGAs. That'd be cool enough, but the genetic algorithm figured out how to exploit *analog* and weak-linkage (adjacent gates crosstalking) aspects of the FPGA - so now not only do we have our own computers, we suddenly have our own combination analog/digital computers, should we want them, and it would be really cool to have an evolving computer... a genetic speech-recognition chip, or somesuch.
Just something I remembered.
-knots
Anarchy$ dd if=/dev/random of=~/.signature bs=120 count=1
me neither, but i was very close.
:-(
:-O :-)
i was building a computer. i put everything together, did some service pack installation, went to my room at my work, came back 4 mins later... something smelled... like after the thunder. i tried to move mouse, nothing happened. computer had "frozen" totally. i looked at the open case, noticed that fan+cloore where hanging with only one clip, and i rip the power cord away.
it was *kinda* fan failure, but the real reason was stupid user
i forgot to plug the fan ps cable to MoBo! i grabbed the cable, got fancooler away. it was so hot i could not put my hand closer than 5 cm to it, something like over 100 degrees of celsius
ok, i paid my learning money there, i thought, and our boss laughed friendly at me
later i tried MoBo, CPU and memory, just for fun. and, hey ho, they worked! and the still do, CPU is at my firewall... at least it is officially tested real overclockers CPU.
strange, i thought it could never ever work...
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
When you actually had to understand the silicon if you wanted to compute...
Damned kids and their fancy pc's from the local market.. " i be elite " bah...
Reminds me of an old BYTE colum, where they built
a simple CPU out of descrete chips.. Such fun ( seriously )
---- Booth was a patriot ----
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.
You seem to think that there was ever a chance in Redmond such a device would be made a major chip manufacturer. Such a thought is not unlike the idea that HP, Xerox or IBM was most likely to create a computer system for Mr. Schmoe. Behold, AMSTRAD, Commodore and the eventual Apple; the latter only being able to exist due to the irony in HP choosing not to chase the home market.
In this same fashion, I forsee a small, little known upstart, possibly started by the next Steve Wozniak, that, after playing with the idea, will try to see if there's a commercial place for it. The device will kick off in limited engineering/academia circles, much like the Apple, and then, a new type of company will be built, and with its rivarly, shall the others finally respond.
"Yeah...it was the numbers that were irrational, not the murderous cult of vegetarians...." -- Hippasus of Metapontum
Yup! Use to be the senior project at ITT. The task would be broken up amongst the team. Each would be responsable for a particular section i.e. ALU, timing,cache,etc. That was fun. Of course thus was the era when tubes were the "thing" and the IBM PC could be understood in it's entirity.
AMD at one time had a bit-slice microprocessor, the 2900 and 29000 line, that allowed people to design their own instruction set. But that was back in the 80's and early 90's. It also involved a bunch of supporting logic to build a functioning system that required the use of a soldering gun to build a prototype.
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.
So what was that you were saying about "hoover have lost their trade mark"? Your general point is correct, though - in the US legal system, you must aggressively defend your trademarks.
Yes folks a whole personal computer including the z80 core, have a look at zxgate.sourceforge.net
This is my sig, exciting huh!
I'm not talking about a company that will produce designs that come in...I'm talking about a company that will produce at home systems to create them.
(hold for laughter)I'm not saying it would necessarily be comparable to what chip manufacturers are capable of, but it is too early to say how it will develop. "Consider, if you will," the future means of development. Where was Ball Grid Array twenty years ago? Today, we have these large factory machines with huge arms with tiny miniscule "fingers" that carve and set those transistors onto wafers. But picture what happens at the very end of that tiny finger, and maybe it could be better than what you may expect...
Project the advancement of the field of the development, creation and deployment of nano-technology. Conceive of a device, a small box, about the size of desktop's UPS, like mine, the APC Smart-UPS 400: This device has a vacuum bay in the center with a transparent area over it, distilled water at the chamber's bottom, a series of small, barely visible sting-like lines forming a grid somewhere in the middle and a tiny arm on each side. When fed the information to the /dev/nwu (nanonic writing utility), those tiny arms start somewhere on the grid and coming from both between and outside of their "fingers" are little glimmering filaments that slowly weave into your processor.
Sure...it seems a long way off now, but with the rapid rate of technology today, I'll bet anything's possilbe tomorrow.
"Yeah...it was the numbers that were irrational, not the murderous cult of vegetarians...." -- Hippasus of Metapontum
Hold on there, cowboy! He didn't say it was open, he said it was free. Get some glasses, Troll.