Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×

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."
This discussion has been archived. No new comments can be posted.

Retro-Computing with FPGAs

Comments Filter:
  • by caouchouc ( 652238 ) on Sunday February 23, 2003 @02:16AM (#5363641)
    This is a dupe [slashdot.org].
    I remember people mentioning that this thing is uneconomical compared to an emulator because of how expensive FPGAs are.
  • by Anonymous Coward on Sunday February 23, 2003 @02:18AM (#5363644)
    There are a number of inaccuracies in Mame's mspacman emulation. This has the possibility of being perfect. Also a chip is a lot cheaper than a computer and good pac boards are getting scarce.
  • by dmaxwell ( 43234 ) on Sunday February 23, 2003 @02:22AM (#5363653)
    MAME uses software to simulate arcade hardware using general purpose computing hardware.

    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:Jeez! (Score:4, Informative)

    by Anonymous Coward on Sunday February 23, 2003 @02:44AM (#5363688)
    Do they make 6502s that can also be 8080s, 6800s, RCA 1802s... just by rebooting? No? Then you're completely missing the point.

    Not that that's anything new for Slashdot.

  • FPGAs are cool... (Score:5, Informative)

    by metlin ( 258108 ) on Sunday February 23, 2003 @02:58AM (#5363715) Journal
    ...and cheap. A half decent FPGA can be obtained for about a dollar and odd in most parts of Asia. And that gives you a whole lot more malleability to play around, and you could mess up without really worrying much :-)

    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 :-)
  • by Anonymous Coward on Sunday February 23, 2003 @02:59AM (#5363718)
    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

    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.
  • by udif ( 32355 ) on Sunday February 23, 2003 @03:57AM (#5363829)
    The site is currently slashdoted, but as far as I remember, it uses a WDC 65C816 instead of the C64's 6510 CPU. The FPGA is used only for emulating the peripherals such as the IDE interface, 6581 SID sound chip, 2x6526 CIA chips, VIC chip emulation, etc.
  • by Anonymous Coward on Sunday February 23, 2003 @03:57AM (#5363830)
    The cost of an altera cyclone fpga is $1.50 per 1000 logic elements and falling. It will become cheaper by the day. Moreover, fpgas offer the flexibility in hardware, which is IMHO revolutionary.

  • Re:FPGAs are cool... (Score:1, Informative)

    by Anonymous Coward on Sunday February 23, 2003 @04:48AM (#5363911)
    Google Cache [216.239.57.100] of the FPGA Design Contest page linked above.

    Damn second-level Slashdot effect =)
  • by swmccracken ( 106576 ) on Sunday February 23, 2003 @04:57AM (#5363922) Homepage
    Yep, if SETI@Home cared to release such code.

    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.
  • by swmccracken ( 106576 ) on Sunday February 23, 2003 @05:23AM (#5363977) Homepage
    It seems you're right; note that the CPU is on a seperate board and the system is desinged to allow you to switch it. (And since the main thing the CPU interfaces to is FPGAs, designing a new CPU board is easy because you can reconfigure the FPGAs to match the new CPU.) It also seems the FPGAs do the inteface the CPU to everything else bits as well.

    It is still possible to emulate the Atari 2600 or whatever - but it involves switching the processor.

    http://www.geocities.com/profdredd/commodoreone/ cm drone.html

    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:Jeez! (Score:3, Informative)

    by Wildstar128 ( 646634 ) on Sunday February 23, 2003 @05:46AM (#5364024)
    65c02 not 6502. There are some differences. 6502 which is the NMOS fabricated model made by MOS Technology aka Commodore Semicondictors (CSG later used). C64 used 6510. The C-1 uses a 65c816 and the 6510 special features are cored into the FPGA (I think) Yet, the two FPGAs have to "emulate" (if you want to call it that) are the VIC-II and SID chip which are *NOT* made anymore. Jeri Ellsworth made special features known as the Super VIC and Monster SID mode on top of the classic features. These include the full enhanced sound and enhanced video modes like 1280 x 1024 resolution and 65536 colors. (More then your eyes can distinctively tell in an animated motion) Dithered imaging - hehehe lets look at 4 Billion RGB Chroma values. Hope you can tell.
  • Re:Transmeta (Score:5, Informative)

    by Anne Thwacks ( 531696 ) on Sunday February 23, 2003 @06:27AM (#5364077)
    wasn't code morhping technology supposed to be this?

    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!

  • by Space cowboy ( 13680 ) on Sunday February 23, 2003 @07:14AM (#5364139) Journal
    You're missing the point. You don't try to rewrite a P4 in an FPGA.

    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.
  • by Space cowboy ( 13680 ) on Sunday February 23, 2003 @07:45AM (#5364182) Journal
    I of course meant microseconds (us) not milliseconds (ms).

    MS strikes again :-)

    Simon.
  • by kb ( 43460 ) on Sunday February 23, 2003 @09:53AM (#5364409) Homepage Journal
    The SID isn't in the FPGAs. It's quite impossible to do so because the SID consists of a mixture of analog and digital circuitry and can't be built from logic circuits alone. If you look closely at the C-One's mainboard, you can see two empty sockets which are for two original SIDs.

    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... ;)
  • Parallelizing FFT (Score:2, Informative)

    by yerricde ( 125198 ) on Sunday February 23, 2003 @01:15PM (#5365107) Homepage Journal

    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.

  • by Space cowboy ( 13680 ) on Sunday February 23, 2003 @02:18PM (#5365418) Journal
    Well, yes, the data has to be presented, but not necessarily sent out of the FPGA - this is the basis of the 'Platform FPGA' architecture. As long as you can realise your processing within the FPGA, your output may be of significantly less bandwidth.

    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.

Any circuit design must contain at least one part which is obsolete, two parts which are unobtainable, and three parts which are still under development.

Working...