Take the 2-minute tour ×

What the heck is an FPGA -- 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?

Where can I buy some FPGAs today to experiment with ??!

Are they industrially expensive or can I buy one today?

Does anyone know about this? Thanks!

I have become interested in FPGAs after reading this question...
Holistic Word Recognition algorithm in detail

All of the answers below are priceless, thank you!

share|improve this question

closed as off-topic by Jan Dvorak, Sterling Archer, lpapp, Bart, Qantas 94 Heavy Apr 18 at 7:33



11 Answers 11

up vote 1 down vote accepted

Although it is far from the cheapest, buying a Xilinx XUPv5 is a good idea if you want to learn a lot - not only is the 110T chip large enough to build very ambitious projects (a fully functional Nintendo console replica, for example), but it is also the board many top-tier universities use in their digital design class. Berkeley, for example, publishes their full notes, labs, etc for use with the XUPv5 board. I taught the class for a number of years, and would like to believe that it is an excellent, high-quality resource.

Hope this helps,

share|improve this answer
Fantastically useful tip from a prof - thank you so much! –  Joe Blow Apr 9 at 7:27

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.

share|improve this answer

As to your question about what an FPGA is, I think the best way to think of it if you are already familiar with microcontrollers (and their normal programming scheme with sequential ordering of processing) is to think of a microcontroller as being told what to "do" and FPGAs as being told what to "be." I think this is the simplest way to view it :P FPGAs are programmed differently. You need to have a full knowledge of the circuit which you want to design, the inputs, outputs, and you will need to spend a lot of time considering the clocking, as clock skew and other issues can easily arise when dealing with more complex circuits in FPGAs! I learned about FPGAs first using a Spartan3E. Have fun! :)

share|improve this answer
The question is not about difference between a microcontroller and a FPGA. –  sakibmoon Jul 3 '13 at 18:28
If the user is familiar with an MCU, they will be able to understand the difference. Was trying to provide a simple analogy! –  LuckyLuc Jul 3 '13 at 19:03
I appreciated it LuckyLuc –  VoronoiPotato Sep 10 '13 at 18:58

I think this is something: http://www.xilinx.com/onlinestore/index.htm

Interesting stuff btw!

share|improve this answer
We used xilinx components in a course where we built our own ALU. Very cool stuff. Could be wise for a hobbiest to get something working with an ICE (emulator) first before spending money on a whole kit, but seeing the real thing working is magic. –  David Leonard Dec 29 '10 at 8:57
@Joe I don't know, I just googled it too! Don't these things just connect to your computer? ;) –  Spiny Norman Dec 29 '10 at 9:05
ALU is probably for Arithmetic Logic Unit - en.wikipedia.org/wiki/Arithmetic_logic_unit –  Klinky Dec 29 '10 at 9:25
Yes, ALU is the arithmetic logic unit, which does your basic math for you. ICE allows you to debug your design by pausing and stepping through instructions as you would with a software debugger such as gdb in UNIX or WinDebug in Windows, except that it works with the hardware (via JTAG) to do this on the device itself. If you're serious about embedded development ICE is a nice feature to have! –  Dr. Watson Dec 29 '10 at 13:01
This is an old answer, but it does not stand as a good answer with today's rules because it is basically link-only. –  lpapp Apr 18 at 7:54

I have little experience with other brands, but I am very happy with the Altera DE2 "*D*evelopment and *E*ducation Board". It is an ideal starting point if you have not played around with FPGAs before.

It includes half a dozen different types of memories (SDRAM, SRAM, Flash, SD cards), 7-segment displays, lots of buttons and switches and more I/O than you can shake a stick at. Want to play with IR? Ethernet? VGA? USB? Audio? All these are the sorts of things that students and novices like. :-)

The same applies to the DE2-70 and other big-brother cards to this one.

share|improve this answer

Open-source alternatives:
Mojo v3
they're cheap too :)

share|improve this answer
Fantastic information. Note my followup question about a small touchscreen! –  Joe Blow Apr 23 at 14:35

This board has several interesting example firmwares to choose from. (The AGA Amiga platform is not in that list, but an Amiga compatible firmware is also available for it.)

share|improve this answer
FANTASTIC STUFF !!!!! –  Joe Blow Apr 6 '11 at 19:18
@Joe Blow, and the natami.net/gfx/NatAmi64_MX/natami64_mx_1.jpg is not specifically for FPGA hacking, but if you want to use it for that, it is a very powerful board hardware wise. –  Prof. Falken Apr 7 '11 at 6:03
And @Joe Blow, I think I should point you to opencores.org if you didn't know about it. They have code ("components") for all sorts of projects. Maybe you can find something there for machine vision. –  Prof. Falken Apr 7 '11 at 6:07

The people already mentioned Altera and Xilinx. That are the two big players in FPGA market. But depending on what you want to do I could also recommend, that you look at Actel (esp. their Igloo). They have the advantage that they do NOT need an additional extra rom/flash/whatever holding the bitstream, in case you want to make an application that should be later as small as possible (also their power saving mode is very good). So it maybe better for some hobbyist (or very low-power) application (also they have an ARM softcore licences included - the others have also softcores, but maybe you alredy used to ARM coding).

Btw. coding hardware in a HDL (VHDL or Verilog HDL) is very different from normal programming. So maybe its for the beginning enough for you to just check out the HDL compilers and simulators (usually you always simulate your code before you bring it onto hardware, so its not different from the real hardware developing process).

share|improve this answer

This depends on the kind of experiments you want to run. I recommend the Virtex 2 boards if you're doing small logic. If you're doing something complex target for Virtex 5, especially if you need an on-ship processor for serial calculations. I think it comes with PowerPC. If you can provide more detail for your experiment I can help you chose a better FPGA.

An ALU is Arithmetic Logic Unit were you do all the "math" stuff: addition, shifts, multiplication, etc.

You program them using HDL software, either VHDL or Verilog. The latter is more C-like. I prefer the first. I have worked with it a long time. You can download Modelsim student edition and experiment with it.

Its not easy learning FPGA so take some time to learn how to program HDL first.

share|improve this answer
ModelSim is available for Windows, Linux and Solaris only. There are few if little FPGA tools available for Mac at this time. If you want to run it on a Mac machine, you'll have to use a VM like Virtual Box or VMWare. It is what I do. :) –  Dr. Watson Dec 29 '10 at 12:43
VM=virtual machine you will need it in addition to a free linux OS or pay for windows OS the link to download the VMWAre downloads.vmware.com –  Syntax_Error Jan 4 '11 at 9:35

I find this an interresting question and it continues to be. The FPGA's world is also on the constant move and due to this new boards keep arising. If it is still an open question, I would suggest ZYBO from Digilent or DE1-SOC from Terrasic. Which to chose is highly dependant on ones take on Xilinx vs. Altera (a completely different discussion). The good about the two is that they have both FPGA and ARM processor for learning both FPGA design, and embedded OS development.

share|improve this answer
This is FANTASTIC information Michael, thanks. (Yeah, I do think this question was accidentally closed, seems bizarre.) A detail; what if I wanted a kit that included a Small touch-screen (you know, like on the rear of any camera today) - imagine you were prototyping a small toy, say, (maybe one of those 20Q like things) based on a small touchscreen. Any leads from you experts, thanks!!! Fattie –  Joe Blow Apr 23 at 14:35
Actually I believe both the boards from Terrasic and Digilent can do a touch-screen. The resources for both may not yet be as big as for some of the older boards, but a quick look at the bigger board of ZYBO, the ZedBoard, you will find an example with a 7" touch screen kit. zedboard.org/design/1668/13 is the place of the project. Again such a project most likely also exists with the use of Cyclone V GX on the Terrasic boards. –  Michael Apr 24 at 17:29
by the way, the terrasic Cyclone V DX Starterkit have an arduino shield connector which could fit an arduino lcd shield in touch version. As it's merely IO's it could likely also fairly easy be attached to the Digilent Pmod connectors. Doesnt seem screen size is the key factor but more the interface handling. a quick search will reveal 2.8" and 3.2" touch available in the shield form factor. –  Michael Apr 24 at 20:12
Thank you so much !! –  Joe Blow Apr 28 at 14:15

An interesting open-source piece of hardware is Armadeus

It combines a Xilinx FPGA (Spartan 6A) with with an ARM SoC (Freescale i.MX51), that thing can run linux with custom peripherals implemented on the Spartan!

(btw, the iMX51 SoC has an FPU as well an is clocked at 800MHz)

share|improve this answer
