[rc5] Re: I'm interested in FPGAs. How do I start ? (fwd)

Darxus darxus at Op.Net
Wed Nov 5 18:32:33 EST 1997

***PGP fingerprint = D5 EB F8 E7 64 55 CF 91  C2 4F E0 4D 18 B6 7C 27***
               darxus at op.net / http://www.op.net/~darxus 
         "You shall know the truth, and it shall make you odd."

---------- Forwarded message ----------
Date: Wed, 05 Nov 1997 14:26:08 -0800
From: Joel Kolstad <Joel.Kolstad at Techne-Sys.Com>
To: Darxus <darxus at monet.op.net>
Subject: Re: I'm interested in FPGAs.  How do I start ?

Darxus wrote:

> I know very little about FPGAs, and I wish to remedy this.

Try www.associatedpro.com; they have some good introductory tutorials.

If you want to learn VHDL, the Cypress Warp2 package for $149 is a good deal.
Cypress doesn't do (large) FPGAs like Xilinx, but once you can program C on
your Apple II, you can program it on your Pentium 266 Linux box too.

> I am interested in the possibility of porting such things as:
>  * OpenGL (http://www.sgi.com/Technology/OpenGL)

> * general (substantial?) floating point acceleration

>  * MPEG video & audio (other formats as well)

These are all reasonable things to do and, actually, have already been done
many times over.  There are serverl video cards that accelerate OpenGL, and
while they're probably using ASICs, they probably started with VHDL or Verilog
these days and could easily retarget an FPGA with some speed reductions.
(This is actually the Nasty Little Problem with FPGAs -- they're slow compared
to ASICs.)

It's difficult to do all that much better at floating point acceleration than
Intel already did for you unless you have very specialized algorithms that you
want to implement large portions of in hardware.  For math related
applications, FPGAs are usually use for functions such as FFTs, FIR filters,

>  * distributed computing projects, including:
>     + the RC5 Challenge (http://www.rsa.com/rsalabs/97challenge/),
>       specifically the Bovine Project (http://rc5.distributed.net)
>     + distributed Chess
>     + the Great Internet Mersenne Prime Search (GIMPS)
>       (http://www.mersenne.org/)
>     + searching for optimal Golomb rulers
>       (http://members.aol.com/golomb20/index.html)

These are all very good applications, although you'll be surprised how many
FPGAs you're going to need to do them. :-)

> From what I have found, it seems that Xilinx makes good chips, but I do
> not know if there are commercially available PCI cards available with
> these chips.

There are plenty of them out there, e.g., the Hotworks card (the associatedpro
Web site probably has a list somewhere).  Don't overlook ISA cards such as the
x84 card sold by Associated Professionals either -- hopefully stuff like your
prime number search can be done completely on an FPGA and doesn't need high
bandwidth back to the CPU.

>  If not, I am willing to get some schematics an learn to
> build a PCI card of my own.

I hope you have a lot of free time!  Designing PCI cards is highly
non-trivial, and even using "Matchmaker" type chips such as those offered by
AMCC still involves a lot of effort.  This is one of the reasons you might
want to look at ISA cards -- much easy to build, and much simpler drivers.

> My operating system of choice is Linux on an x86 platform, but I can do
> Windows 95 as well, if necessary.

The number of FPGA-type EDA tools that run on Linux can be counted on one hand
(in fact, I think there's only one out there, but who knows?).  You'll find
that most newer pieces of software are built with a Windows NT user in mind
but will function under Windows 95, and older pieces are meant for Windows
3.1/3.11.  Unfortunately, since a lot of EDA tools are dongled, a lot of the
older packages won't work under Windows 95 or (much less!) Windows NT.

> I like what I've heard of this technology, and it blows my mind that it is
> not much more commonplace.

That's because it's still a lot more time consuming to make use of it!
Messing with so-called "high performance" FPGAs these days still feels like
trying to program a 100MHz Z-80 with 2K of RAM.  You spend a lot of time doing
manual routing just to get the performance or fit you need, whereas with PCs
if it's too slow you just run out and get a faster machine.

The basic deal here is that FPGAs are still much smaller than you'd like and
not as fast as an ASIC.  Hence, people who can pretty clearly define the
functionality they want and will be producing volume go for ASICs, and those
who need lots of functionality but not 100+MHz designs go for large,
multi-FPGA implementations.
You also have to look at the cost: Something like a little 8 bit
microcontroller that costs $2 requires something like a $40 FPGA to
implement.  This is not the kind of price point where the PC manufacturers
will throw it in just because it's cool feature.  (But there are plenty of
add-on FPGA boards out there...)

On the other hand, FPGAs are very very cool, as is reconfigurable computing.
So go visit a few web sites, get yourself some cheap VHDL tools, and start
playing around.  It's lots of fun...

                        ---Joel Kolstad

To unsubscribe, send email to majordomo at llamas.net with 'unsubscribe rc5' in the body.

More information about the rc5 mailing list