What FPGAs (Field-Programmable Gate Arrays) can one buy to experiment with at home?

Fattie picture Fattie · Dec 29, 2010 · Viewed 13.6k times · Source

What is an FPGA, and where can I buy one? How much do they cost?

What sort of system do you need to experiment with them? How to program them?

Can you "load" if that's the right term an FPGA using an ordinary Mac?

Are they extremely expensive or can I buy one today?

I have become interested in FPGAs after reading this question.

Answer

Dr. Watson picture Dr. Watson · Dec 29, 2010

If you want to get started with an FPGA and experiment with an inexpensive board, you can try any of these for about USD 50.00:

I began my career with Xilinx products and can vouch for their tools. I own the Lattice board above and it is a great board for experimenting with. Lattice is Windows only, however.

With these boards you can learn the basics of FPGAs: HDL design, I/O techniques, design architecture, etc. You could also implement image processing algorithms, but you would be limited by I/O throughput and the DSP slices in these low-end devices. When you're comfortable with designing in HDL and you have a better grasp of the tools, then you might consider having your employer/educational institution purchase you a more advanced kit. Some of the kits with high-end equipment and I/O can cost thousands of dollars, depending on your application.

While there are some open source and free tools for working with FPGAs, most of the tools you'll need to learn to use are Windows and Linux only. Often the free versions from the FPGA vendors are Windows only (EDIT: Looks like Linux is started to be supported as well). You could try using Verilog HDL with Icarus and GNUWave, but when it comes time to programming the design to a device, you'll need the vendor specific tools.

If you just need to learn HDL then downloading ModelSim will be enough. I suspect though that you will learn much more with a simple kit. Not only will you learn the HDL design, you'll also learn practical aspects such as programming, optimization for your device, debugging designs on hardware and so on.