Retro-Computing with FPGAs 183
zoid.com writes "I ran across a couple of really interesting projects using Field Programmable Gate Array (FPGA) processors. First is the C-ONE project that is a reconfigurable computer. The default mode is a C64 compatible one, but the machine just boots the FPGA from an IDE device at
power on, so it could theoretically be pretty much anything. The second one is the FPGA Arcade. This site is about recreating gaming hardware from the past in modern programmable devices. They currently have Pacman, Space Invaders and Galaxian implemented in FPGAs."
Hardware emulation (Score:3, Redundant)
Re:Hardware emulation (Score:4, Insightful)
Re:Hardware emulation (Score:1, Informative)
Re:Hardware emulation (Score:2)
Re:Hardware emulation (Score:2, Insightful)
Re:Hardware emulation (Score:5, Informative)
FPGA's are a different beast altogether. An FPGA is similar to a ROM in that patterns can be burned into it but they are far more versatile. FPGA's can have logic burned into them which makes them malleble hardware. An FPGA with a 6502 processor and supporting logic burned into it is NOT emulating say Pac-Man. It is a re-implementation of Pac-Man.
This guy is implementing an Atari 2600 on an FPGA:
http://www.mindspring.com/~2600onachip/
If he pulls it off, one could do neat things like make a super battery efficient handheld. The FPGA is for all intents and purposes a 2600 so there isn't the overhead a StrongARM chip running at 200Mhz would have.
Re:Hardware emulation (Score:5, Funny)
So far, gaming companies have been pretty generous about letting people copy very obsolete games from the C64 era. I hope that by creating hardware platforms for these obsolete games becomes more widespread, the gaming companies don't start changing their minds. I guess as long as people don't start making a lot of money at it?
Did someone say $$? (Score:2)
~Berj
Re:Hardware emulation (Score:2)
> of money at it?
Not exactly. As long as none of the copyright holders don't see a way for them to make a lot of money at it.
Re:Hardware emulation (Score:5, Informative)
Close. You're actually describing a PAL. An FPGA is more similar to RAM. Think of it as the high speed memory of programmable logic devices. When it loses power, it loses it's programming. An FPGA usually reads it's configuration on power-up from ROM or a PC's parallel port if you're prototyping. There's really no "burning" involved.
Re:Hardware emulation (Score:2)
You arrogant bastard (Score:4, Funny)
How fair do you think the great game of Golf would be if they didn't let females play? Hmm?
Re:You arrogant bastard (Score:1)
Re:You arrogant bastard (Score:2)
Man, Commander Data would have gotten that joke. Heh.
Re:You arrogant bastard (Score:1)
Re:You arrogant bastard (Score:1)
Re:Hardware emulation (Score:1, Insightful)
Re:Hardware emulation (Score:1)
nice (Score:3, Funny)
Nice. (Score:3, Funny)
Re:Nice. (Score:2)
IMO, there are lots of _very_ cool FPGA devices about to hit market, and they are going to change how we use computers. Gaming not the least.
Re:Nice. (Score:1)
Last I heard of FPGAs they were being touted in the same realm of likelyness as FMD or MRAM... I had no idea they are out there and working in reality already...
Amazing =D
Re:Nice. (Score:1)
The first I heard of FPGAs was in University. We got to play with them for a project course. Fun stuff. I still have a dev board from Altera kicking around. It even has a VGA port.
Anyway, One guy made a fully functional Arkanoid clone for his project. Someone who graduated a year or two after me had the idea of emulating old arcade systems in an FPGA.
Re:Nice. (Score:2)
Re:Nice. (Score:1)
This was around 1985, right ? However, the reference to MRAM is interesting, since nobody thought about this in 1985. (GMR was discovered 1989)
Pac-man with an FPGA? (Score:2, Funny)
Re:Pac-man with an FPGA? (Score:2)
Don't say that too loud, somebody might invent a new toaster.
Game AI (Score:3, Funny)
I'm sure they could make a really good version of Pong...
Re:Game AI (Score:2)
This has been posted before (Score:2, Informative)
I remember people mentioning that this thing is uneconomical compared to an emulator because of how expensive FPGAs are.
FPGAs are no more uneconomical (Score:1, Informative)
Re:FPGAs are no more uneconomical (Score:1)
Re:FPGAs are no more uneconomical (Score:3, Informative)
You can (for example) do a 4096 point FFT in a few milliseconds on an el-cheapo FPGA (20$ for 1-off pricing) whereas to get almost 1/10th the performance, you could buy a $400 P4/Athlon. Hmmm $20 vs $4000...
Horses for courses - the FPGA is a very low-barrier-to-entry solution, but it's not a general-purpose device - the speed tops out around about 400MHz anyway (and that's not a $20 FPGA!)
Simon.
Re:FPGAs are no more uneconomical (Score:3, Informative)
MS strikes again
Simon.
Re:FPGAs are no more uneconomical (Score:2)
Parallelizing FFT (Score:2, Informative)
In that sense an FPGA is no less serial on FFTs than a CPU, right?
Sure, you have to clock the FFT data into the internal memory of both an FPGA and a CPU. However, on an FPGA, unlike on a CPU, you can make as many multiply-accumulate units as you want up to the size of the FPGA, all operating in parallel. Large n-point FFTs can be parallelized with up to n multipliers.
Re:FPGAs are no more uneconomical (Score:3, Informative)
Pins aren't that limited either - you can get an FPGA with well over 1000 i/o pins, 168 1-clock-cycle 18-bit multipliers in hardware, and as many as will fit in firmware - with 8M "gates", that's a pretty nifty piece of hardware.
Not that you would, but clocking 512 pins at 200MHz gives you 12.8 GByte/sec both in and out...
The way you'd more likely use it though is to embed some of the processing subsequent to the FFT onboard as well, to reduce the output overhead - say you're looking for zero-crossing, or correlation, or anything where the output bandwidth is significantly less than the input (most signal processing tasks are...)
Simon.
Jeez! (Score:3, Funny)
Re:Jeez! (Score:4, Informative)
Not that that's anything new for Slashdot.
wait, its STILL stupid! (Score:2, Insightful)
(*the above is sarcasm)
See, this isn't an article about "Wow! FPGA's are KOOL!" (they are! but they were cool 6 years ago when I used them in my digital lab class)- actually, that article would most likely be about evolutionary computing- google it. This is an article about recreating the past. I think you are missing the point.
I support your right to geek. I support your right to come up with a 40 hour solution to a 10 second problem, simply because the 40 hours solution is you making something from scratch instead of just throwing out the old and buying new. And I believe that such stories do have a place on
I'm just not impressed with this one.
Re:Jeez! (Score:2, Insightful)
Re:Jeez! (Score:2)
Re:Jeez! (Score:2)
Yes - the Sinclair ZX81 (or Timex-Sinclair 1000 depending on where you live). Built in 1980/81, with 4 chips (5 if you had a wacky 2 512-byte SRAMs version). I think it was a fairly early example of using logic arrays to reduce the chip count too... The chips are Z80A, ROM, RAM and ULA (everything else). Of course, it depends on your definition of 'full'.
Re:Jeez! (Score:2, Interesting)
They're expensive. For one-off projects, it gets expensive really fast. You can't just grab a big FPGA chip and solder it onto your board. The pin density is high enough that you HAVE to have a custom board built, or dedicate an expensive prototyping kit to each project.
I've seen a few people on eBay selling FPGA chips that have been tin-snipped out of scrapped assemblies, though. Because most FPGA board layouts include feedthroughs-per-hole around the FPGA chip for hardware probing and verification, that is a somewhat workable solution.
Re:Jeez! (Score:3, Informative)
6502 undocumented instructions (Score:1)
C64 used 6510. The C-1 uses a 65c816 and the 6510 special features are cored into the FPGA (I think)
The problem here is that the C64's 6510 processor had the full set of 6502 instructions, including the undocumented [parodius.com] ones [parodius.com]. Lots of programs, especially games, used the undocumented instructions. The 65C816, on the other hand, doesn't have the 6502's undocumented instructions, and it would be da*n near impossible to put those instructions in an FPGA without putting the whole 6502 core there as well.
Re:6502 undocumented instructions (Score:1)
Re:Jeez! (Score:2)
Top 5 reasons to become a retro-computer geek (Score:2, Funny)
5 -- Your outdated computers will go really well with your outdated hairstyle
4 -- Reducing costs by purchasing old stuff is an essential part of the 1, 2, 3, Profit! scheme
3 -- Go back in time and invent the Internet before Al Gore gets around to it
2 -- 1337 + 666 = 2003, which is a sure sign that now is the time to become a retro geek
1 -- Being an R.C.G. is a lot like playing an R.P.G., only without the whole play-3-days-straight-get-up-puke-in-bathroom-die-s oon-thereafter routine
Remember that you can always get free blogging for life at *nix.org [starnix.org]
FPGAs are cool... (Score:5, Informative)
One really cool application is the implementation of various crypto algorithms for realtime simple uses, like this [eleves.ens.fr].
There is also something called the FPGA Design Contest [sharif.edu] - amazing stuff!
Games are entertaining I guess, but if we could implement crypto algos and cool AI stuff at home using FPGAs, nothing quite beats that
Re:FPGAs are cool... (Score:1, Informative)
Damn second-level Slashdot effect =)
Re:FPGAs are cool... (Score:2)
We made these [man.ac.uk] boards and there very nice to pla around with.
I got them to drive LCDs [man.ac.uk] (play pong or display images) and once even drive a osiloscope and make something like a TV.(black and white 40 lines)
But the point was to allow students to maske anything they want with them.
Custom SETI@Home chip. (Score:2, Insightful)
Re:Custom SETI@Home chip. (Score:5, Informative)
Open Core's project list [opencores.org] gives a list of cores you can download *right now* under the *GPL* and do stuff with. Shows you the kind of things you can do. (I believe you can combine multiple cores onto one FPGA as well, if they'll fit, and they can intercommunicate.)
I have heard of people talking about a PCI card with a few FPGA's on it; so dedicated programs could download their own accellerator programs to them. It's just an idea at the moment, AFAIK, but hey.
Re:Custom SETI@Home chip. (Score:1)
Compaines like Tarari [tarari.com] have already been doing this. Their card does network filtering. I've also seen cryptography as another application.
Re:Custom SETI@Home chip. (Score:4, Interesting)
The interesting thing about using an FPGA would be the speed of the FFT. With FFTW (the Fastest Fourier Transform in the West), I get approx 230 us (microseconds) per fft. Using an el-cheapo FFT, best efforts would be on the order of 15us, or approximately 15x faster... Bung several on a few PCBs, and you're talking super-computer speeds
Say you use 16 FPGA implementations, that'd be the equivalent of 240 Athlon 1800XP's... With those sorts of speeds, you could do realtime chirp analysis for doppler effects on an incoming signal. That *would be cool*
Simon.
Re:Custom SETI@Home chip. (Score:1)
I can't find them now, and I don't remember who made them. They were a specialized niche, obviously.
Anyone else remember these? Know where I could find them?
It uses a CPU, not an FPGA (Score:5, Informative)
Re:It uses a CPU, not an FPGA (Score:3, Informative)
It is still possible to emulate the Atari 2600 or whatever - but it involves switching the processor.
http://www.geocities.com/profdredd/commodoreone
It's not entirely clear where the "monster-sid" is located; it seems it's in (one of the two) FPGAs.
I think. Unless I'm rong.
Re:It uses a CPU, not an FPGA (Score:1)
Undocumented instructions (Score:2)
No, you can't use a 65c816 to run Atari 2600 programs natively. Because its graphics system is so dang underpowered, an Atari 2600 program must use the undocumented instructions of the 6502 that were removed to make room for the new instructions of the 65c02 and 65c816.
Re:It uses a CPU, not an FPGA (Score:1)
Re:It uses a CPU, not an FPGA (Score:2)
I remember seeing a board with four SID sockets once, you could use the original or upgraded chips. I think it's PCI. If all you want is SID, that's where to get it.
Re:It uses a CPU, not an FPGA (Score:1)
I think (but I could be wrong on this) the main reason you would want to use a real sid vs a FPGA emulated one is the real SID chips have analogue components, so for "perfect" emulation you need real SIDs.
I got the impression that the FPGA's do a generally passable SID emulation, but if you're a pureist.
Re:It uses a CPU, not an FPGA (Score:1)
That's the HardSID [hardsid.com]. The standard version has one SID socket, and the HardSID Quattro has four. ISA versions of these exist for some years now, and the PCI cards are promised to be released this month.
Re:It uses a CPU, not an FPGA (Score:2, Informative)
Though I really hope that one day someone is nuts enough to produce a SID compatible synth chip, the chip was awesome for its time and still has a distinguished sound that can't be really emulated with curent anlog or virtual synths. And maybe with a new, cheap SID chip the SIDstation wouldn't be so terribly expensive...
Re:It uses a CPU, not an FPGA (Score:2, Interesting)
instruction set differences to give the chip more functionality
over the original 6502. These new instructions were placed in
"holes" in the original 6502 instruction set, to preserve
backwards compatibility with old machine code.
Unfortunately many C64 games used these instructions, which had
weird but documentable effects, as an anti-piracy measyre.
They made it harder to reverse-engineer the anti-piracy code.
Why not... (Score:4, Interesting)
Re:Why not... (Score:2)
In three words: no cartridge port.
There's a sublime physical value to plugging in a game cartridge instead of simply loading a ROM image. Then again, there were far more diskette or cassette based games for the C64, so I might as well shut up.
Pffft (Score:3, Insightful)
Yeesh, why is it that every time someone does something neat/cool/original, we have to moderate up the 'BUT THERE'S ALREADY ANOTHER WAY TO DO IT' trolls?
This is sooo absolutely cool. (Score:2, Interesting)
It's a great way to keep those old arcade game alive - an emulator is only - well- an emulation. The original PCBs age over time and may get unusuble and unrepearable if any custom circuits die completly and become unavailable. Using FPGAs is a great way to keep exactly the same hardware around.
(And to all those #@!&-ers who ask "why bother?": BECAUSE THEY CAN !)
ahhh, I don't agree. (Score:2)
See, my memory is fuzzy, so for nostalgia, I'll take good enough.
I don't think the visual/sound effects can stand the test of time, so whatever.
And as long as you have the same gameplay, I'll take a 90% reproduction.
But then again- I compress my MP3s to 64kbps MONO to fit more on my portable. YMMV.
However I do think these "kit" articles to belong on slashdot. I'm just not salivating over the chance to play "Resuce of Fractalus!" on the "real" hardware. I really think emu's are great.
FPGA Arcade games already on the market (Score:1)
Sheesh (Score:1, Funny)
Re:Sheesh (Score:1)
ible one, but the machine just boots the FPGA from an IDE device at power on, so it could theoretically be pretty much anything."
Sorry to be a curmudgeon.... (Score:2, Insightful)
Sorry for being such a curmudgeon, but this seems like the equivalent of collecting recordings of the Antique Road Show in lieu of collecting real antiques.
FPGA technology is cool and all that, and there's a limited supply of vintage hardware that makes it a hobby with limited growth potential for marketers and banner advertising on enthusiast websites, but I can't think of a reason why it's cool to emulate a C64 with an FPGA, at least not for more than a few minutes. Do something new and cool with your new stuff.
Re:Sorry to be a curmudgeon.... (Score:2)
No, this is the equivelent of making antique radios with modern parts. That is take a tube design, but instead of a tube you use a transister designed to substitute for a tube. Or make a modern super regererative receiver with transisters. It is still an antique and of interest only to collectors because modern radios are not regenerative.
Sure it is of limited usefulness, but it is a cool hobby. If nothing else is keeps a few people who might otherwise get into a shootout in the local bar or some such outragious and unlikely thing.
FPGA as standard PC Hardware? (Score:1)
Re:FPGA as standard PC Hardware? (Score:3, Insightful)
A reconfigurable CPU like that would let computers do all sorts of things amazingly quickly; you can do almost anything in logic and asynchronous calculations run as fast as the signals can move across the chip.
FPGA Graphics Card? (Score:2, Interesting)
This would also allow graphics cards to be upgraded, for instance, if today's graphics cards were FPGA based, DirectX 9 support could be added to existing cards.
Are we going to see this technology this year? I doubt it. But 5 years down the road, I bet your graphics card will be based on an FPGA.
Re:FPGA Graphics Card? (Score:1)
Internet Reconfigurable Logic (Score:1, Interesting)
Part of Xilinx's whole Internet Reconfigurable Logic initiative... update hardware over the network.
RSA codebreaking (Score:2)
Another idea is putting one of these in every motherboard to emulate other systems more efficiently in a multiprocessing environment, or Java VM by hardware... Perl / PHP hardware interpreters...
Mutable computers are a geek dream come true!!
Their Website... (Score:2)
...wastes an awful lot of space. Looks like half the client area of the window is navigation and the logo. You are confined to scrolling in a tiny little table. I hate when websites do that.
Centipede! (Score:2)
This'll be useless until they can get Centipede working. Good thing that Mame already has that covered, right now I just use my old IMac as a mini-Mame arcade ;-)
Re:Size... (Score:3, Insightful)
You've entirely missed the point... this is not meant to be a "useful" machine, but rather a hobbyist machine. Something for people who want to be able to tinker and play with a computer with a relatively simple design that allows a programmer to have more or less complete control of the machine. Modern PCs are much too complex to fit this niche.
Think of it as something like a more advanced version of the C64 (or other 8-bits). Not something for people trying to do serious work -- that's what your desktop computer is for -- but something for people that like really get into the guts of the system.
Re:Size... (Score:1)
Re:Size... (Score:2)
And the only way they started selling those systems was when they started giving the IIe to schools...if they start giving schools their hardware, then I'll change my tune...
Re:Size... (Score:1)
> apps and emulators...now if they could get the hardware down to
> size, this would be a great PDA...
There's little doubt that a handheld C64 wouldn't be sought after. I'd like one in fact. What would I do with it? I don't know. But it would certainly be nice to have one if only for the geek value of it.
> Looking at the pictures & specs, it requires an ATX case & power
> supply...
As does any other modern computer. Supplying the power supply, case, and drives to go along with the motherboard is simply not feasable for Jeri right now I'm sure. And, don't forget that, if you get one of these machines, the chances are good that you also have a good, cheap source for the other parts. All in all you might end up spending less overall than if Jeri were to supply a ready-to-run system.
> "authentic experience"...by comparison, the same $200 should get
> you an AMD-based motherboard+cpu+ram combo in the 2-2.5
> GHz range...which should be more than enough power to run any
> 6502 emulator...
You clearly haven't read the machine's specifications. This is a 65816, not a 6502 or 6510. It has a 24-bit address space, not 16-bit. It has 16-bit access to memory (through an 8-bit pipe), not just plain 8-bit. It has 16-bit internal operations, not just 8 bit. It runs at 20 MHz, not 1.022 MHz. The built-in SID Emulation contains a multitude of voices, not just three. It contains graphics hardware that is many levels above that which a regular C64 came with in 1982. Maybe not exactly competitive with today's multi-gigahertz 1600x1200 ultra-fast 300fps-in-Quake3 hardware, but most people don't really need that.
In other words, given that it takes 500 to 1000 Megahertz to emulate a regular breadbox C64 and a couple of 1541 drives (and even then it STILL isn't 100% accurate), it would likely take a machine somewhere in the 10 to 15 Gigahertz range to reasonably emulate the Commodore One and whatever standard peripherals you add to it, if only because of the speed of the Commodore One relative to that of a breadbox C64.
> What's worse is listed at the end of this page [c64upgra.de]...
:
> ** Floppy/IDE Interface
> In the initial release these interfaces will not have any support
> software (with the exception of 1581 emulation), it is hoped that
:
> Translation: You'll only be able to use the 3.5 floppy drive
> emulation...and we couldn't get anything else to work with it...we
> hope you can write the software...
Try again. Translation: Jeri is not a software engineer - she is not a programmer, and has said so herself. It is common in the C64 scene to work together with others on a project - one person does the music, another the graphics, and another handles the code that ties it all together. The same can be said for the Commodore One. Jeri designed and implemented the hardware, and now she's hoping to find someone who can design and implement the software, or part of it anyway. Some of us who support this machine believe (and the Webpage also mentions this) that JOS/Wings might very well BE that software. (And yes, JOS/Wings exists and runs now, on existing hardware. I've used it - it IS that good)
--Vanessa
Re:Size... (Score:1)
As there is only 3k of space in the boot rom these routines are fairly specialized, but the source is open and it shouldn't be too much work to make a real driver out of it.
Re:Any point? (Score:1, Funny)
Re:Any point? (Score:4, Insightful)
Re:Any point? (Score:2, Insightful)
FPGAs are starting to be put into into mainstream graphics cards after being the commercial high end graphics world for many years.. ... Next stop will be replacing the desktop CPU...
One day all machines will just be a big lump of FPGA's and a cooling system... :)
Now if someone will write a netlist that lets be play flash files in hardware and play mpegs and divxs, we will have the ultimate set-top box and gaming platform.. New streaming video format? Just upgrade the netlist and the format is supported in hardware. One minute a Pintendo64, the next a Playstation.
Its the last step before nanotech...
Resistance is useless... :)
Re:53? (Score:1)
Re:you stink (Score:1)
Re:Transmeta (Score:5, Informative)
No -the opposite - code morphing dynamically adapts the software to fit the hardware- an FPGA dynamically adapts the hardware to fit the software.
If you want to play with FPGA stuff, then one of the best is the Quickstart Technology board [quickstart...nology.com] - this includes the download/programming interface and power supply on board - you just plug the board into your parallel port, and you have hardware that can be anything. Powerful enough to do a VAX. (You also have to download the software to do your design, but that's free as in beer!
Re:Transmeta (Score:1)
Re:Another colossal (Score:2)
Re:C64 (Score:1)
So you can have a 386 that trips the main breaker?
Re:This has to be a hoax (Score:1)