What to look for
I bought Avnet's $49 Spartan 3A development board but it was discontinued not long afterward - right about the time when I decided I needed a few dozen more. I've since done some extensive research (thanks, Google!) to find a comparable thrifty thrill.
When choosing a development board, consider what you get with it and what you want to use it for. FPGAs are ideal for use with high speed peripherals, and in general it is much easier to buy a board that contains the part you want, rather than trying to add one on later (and inevitably giving up and upgrading to a more capable board). Examples of things you might want, and are quite difficult to add yourself:
- Gigabit Ethernet
- PCI/PCI Express
- External non-serial memory (DDR/Flash etc.)
Things that are relatively easy to add, and are not so much of a big deal to wire up yourself.
- MMC/SD cards
- Character (e.g. 16x2) LCDs
- Anything I2C/SPI and relatively low speed
- VGA (with low colour depth)
I like having a board with many (at least 8) SPST switches and LEDs, and momentary buttons. Unlike a microcontroller where it's relatively easy to spit debug information out of a serial port or to an LCD with a single C function call, debugging FPGA designs is a bit harder. LEDs provide a zero fuss way to break out internal signals for visualisation - if you're tracking the progress of a complex state machine, you can light up an LED when it gets to a certain point without adding any extra logic. While these are easy enough to add yourself, I find that it's better to get a board that has them so that you don't waste valuable user IOs or waste time investigating failures caused by your terrible soldering skills.
Some manufacturers promote a standard form factor for add-ons, notably Digilent with their very wide range of Pmods and the Papilio One's Wings.
If you would like to connect high speed devices (above 10-20 MHz) to your FPGA, make sure your board has an interface connector that supports the speeds you'll be using. Look for ground wires interspersed regularly between signal wires, high speed connectors (not just 0.1" headers), PCB trace length equalisation, and impedance control. Few of the cheap boards bother with any of these.
FPGAs can be a bit daunting, so check that the manufacturer provides:
- Schematic diagram
- A reference manual, describing all of the on-board peripherals
- A guide to getting started, if you've never used an FPGA before
- A reference design that exercises all on-board peripherals.
Reference designs can either be HDL or microcontroller-based, but in recent boards, most manufacturers seem to be moving to the latter. Bear this in mind if you don't have a license for the microcontroller and environment (e.g. Xilinx EDK/SDK is not free), as the code will be difficult to port to HDL.
If you're a beginner, you may benefit from buying a board that has a companion textbook which has been written specifically for the board in mind, and describes each of the peripherals and how to interface with them. Some popular boards have attracted a larger community of users, though this isn't necessarily helpful because most of the other users are beginners. The most popular Xilinx boards are those made by Xilinx (none of them cheap enough to be listed here), Digilent and Avnet. Terasic seem to make the most popular Altera boards.
Boards by FPGA manufacturer
- Parallella-16 Micro-Server ($119) is a Zynq 7010 board, which includes a dual ARM A9. Also available on the board are the Epiphany 16-core CPU Accelerator, 1GB RAM, 126 Mb flash, micro SD, and gigabit Ethernet.
- Parallella-16 Desktop ($149) expands on the Micro-Server and adds high speed expansion ports with 24 GPIOs (and other Epiphany signals), HDMI, and USB 2.0 host.
- Digilent ZYBO ($189, $125 academic) gives you a Zynq 7010, 512MB, HDMI source/sink, VGA, gigabit Ethernet, USB, audio, 6 buttons, 4 switches, 5 LEDs, and 40 I/Os (5 PMODs), including analogue inputs.
- MicroZed ($199) provides a Zynq 7010, 1GB, 128 Mb flash, SD card, gigabit Ethernet, USB 2.0, 100 I/Os (48 LVDS pairs) and 2 PMODs, 1 LED and 1 switch.
- Nexys-4 ($299, $159 academic) is pushing the limits of 'cheap' unless you qualify for academic pricing, but it's notable in being one of the first Artix (100T) boards. It has 5 PMOD connectors (40 low speed I/Os), 16MB cellular RAM, 16MB flash, 10/100 Ethernet, USB host, SD card, VGA, accelerometer, microphone, audio out, 16 switches, 16 LEDs, 8 7-segment displays, 5 buttons. The Artix's internal ADC is available on one of the ports.
- SIOI is an Australian company who sell two basic Spartan-6 boards with TQFP parts, the LX4 and LX9, for the bargain price of $47/57. They contain 32MB of RAM, one LED, and 38 I/Os using a PCIE 4x connector to ensure high speed signal integrity and to make expansion as simple as getting a PCB made.
- Papilio Duo, currently on Kickstarter, is an $88 Spartan-6 LX9 board that incorporates an Arduino Leonardo, 512 or 2048 KB SRAM, 54 (or more?) I/Os, including six wing and one PMOD connectors, USB, and schematic design software.
- Digilent Nexys 3 ($199, $119 academic) virtually renders the Nexys 2 obsolete. It includes Spartan-6 LX16, a bunch of I/Os, a high-speed VHDCI connector (with matched pairs, but unfortunately it doesn't look like all traces are length matched), 10/100 Ethernet, USB host and USB-RS232, VGA, cellular RAM that sounds suspiciously like it won't work with the MIG, and 16MB of phase-change non-volatile memory. Gives the Atlys a run for its money (if your design is not limited by the smaller FPGA).
- ZTEK USB FPGA module (99 EUR) has no on-board LEDs or buttons, but contains 64MB of SDRAM and a huge 90 GPIOs in a convenient plug-in module form factor, which is nice for dropping in to a custom carrier board. Unfortunately it doesn't have its own power supply built in, so you need to drop it on to the power supply or experimenter board, and then drop that onto your own board. Still, it's a pretty good price for a Spartan 6, and ZTEK have a very generous discount/rebate program for open source projects that use their module.
- Avnet Spartan-6 Microboard ($89) appears to be similar to the Arrow BeMicro detailed below. It's designed for embedded processor development and comes with device locked SDK and ChipScope Pro license, which is pretty good as these are quite expensive to buy separately. ChipScope alone is invaluable. I/O capability is pretty rudimentary with only two 8-bit PMOD connectors, but there is a 10/100 Ethernet PHY, four LEDs, two SPST buttons, a 4-way DIP switch, 64 MB SDRAM and 128 Mb flash. The licenses are actually device locked to the XC6SLX9 (of any package), so it might be handy just for those if you were developing your own board with this series.
- Papilio Pro is a $84.99 Spartan-6 LX9 board that retains compatibility with expansion wings made for the original Papilio. It features USB 2.0 for JTAG programming and serial comms, 64 Mbit SDRAM, and 64 MBit SPI flash. The design is released under a Creative Commons license.
- Mesa Electronics has a slightly baffling array of FPGA boards ranging from $79 (Spartan-3, 200K) to $258 (Spartan-6, LX16). Two that caught my eye were the 5I25, which is a PCI card with a Spartan-6 LX9 for $89 and the 6I25 (PCI Express) for $109.
- Pipistrello ($149) comes with the larger LX45 and contains 128 Mbit SPI flash, 64MB DDR, USB serial/FIFO and JTAG, HDMI output, audio output, USB host, micro SD, two LEDs, a PMOD header, and support for Papilio wings with 48 I/Os.
- XuLA2 ($119) fits a LX25 to a small breadboardable PCB with built-in USB programmer, 32 MB RAM, 8 Mb flash, 33 I/Os, and SD card socket. The design is completely open source.
- The Mojo is a $75 LX9 board that provides 84 digital I/O pins, 8 analog inputs (via an ATmega16U4), 8 LEDs, configuration flash, and USB programming (via the ATmega). The design is CC licensed.
- Numato Mimas ($50) provides a Spartan-6 LX9, 16 Mb flash, 100 MHz oscillator, USB programming interface, 8 LEDs, four switches, and 70 I/Os.
- Numato Saturn ($80-$140) provides a Spartan-6 LX9, LX16, LX25 or LX45, 16 Mb flash, 100 MHz oscillator, 512 Mb LPDDR RAM, USB programming interface and GPIOs (via the FT2232H), and 118-150 I/Os.
- miniSpartan6+ ($69) is currently on Kickstarter and has a Spartan-6 LX9, HDMI output, USB 2.0 programming and communications, 8-channel 8-bit 1 MSPS ADC, 32 MB SDRAM, 64 Mbit SPI flash, microSD slot, audio out, 24 I/Os and 8 LEDs. The Kickstarter also promises to deliver an open source IDE with libraries and example code for the on-board peripherals.
- Elbert ($50) is a small board with a Spartan-3A 50K, 1Mbit of SPI flash (half of which can be used for data storage), 8 LEDs, four SPST switches, 8 DIP switches, and 26 accessible I/Os. An on-board PIC18F provides support for programming the flash over USB using a Windows-only configuration utility. I have written a more comprehensive review.
- MicroNova Mercury ($70) provides a 200K Spartan-3A in a breadboard-friendly 64-pin DIP module form factor. It provides 30 5V-tolerant I/Os, 9 other I/Os, an 8 channel, 200 Ksps ADC, 4 LEDs, a switch, 4 Mb SRAM, and programming over USB (with a Windows programming application). JTAG interface pins are also broken out.
- Digilent Basys 2 ($89, $69 academic) has a 100K Spartan-3E with four PMOD connectors, PS/2, VGA, 8 switches, 4 buttons, 8 LEDs, four 7 segment displays and on-board USB programmer.
- Digilent Nexys 2 ($99 academic) is the most reasonably priced, decently speced Spartan-3E board I've found. The price is especially good if you qualify for the academic discount. Blackbox Consulting had a board in stock and it was in my hands within a couple days. It has eight LEDs and eight SPDT switches, four momentary switches, and 7 segment displays that I haven't bothered with. The main expansion connector is a slightly uncommon one (though it's not expensive and available from Digilent distributors) but it is much better than the Avnet one because it has loads of ground wires, which is good for high speed designs. The "Starter Kit" has a few more peripherals for $70 more but the only thing that really appeals to me is the Ethernet PHY and this is only a 10/100 chip. Citizens demand gigabit!
- Papilio One seems to be on special for $50 and has the 250K Spartan 3E, or the 500K for $70 (a little rich when the bigger chip is only $7 more, but it's a small company so I can accept it!). The classiest part is that the Eagle board files are freely available, which makes it a great starting place for developing custom FPGA boards, especially since this one has no peripherals at all (other than USB, which looks like it handles serial communications as well as JTAG). It uses yet another custom bitstream uploader tool, but this time it is open source and cross platform.
- Open Workbench Logic Sniffer ($50) borrows its design from the Papilio One and provides a Spartan XC3S250E, USB, sixteen 5V tolerant buffered inputs, and compatibility with the Papilio One's 'wing' expansion boards. This makes it a slightly better deal, though there's no option for a 500K chip.
- Enterpoint sell a couple of Spartan-3E boards - the Drigmorn1 (XC3S100E $58, or 500E $85) with parallel port programming cable, RS232, three LEDs and 32 I/Os. A larger version, the Drigmorn2 is $170 and adds SDRAM, more flash, LCD, USB, and switches.
- XuLA-200 is $55 and fits a 200K Spartan-3A to a very small PCB with USB, a PIC18F, 8 MB of SDRAM, 2 Mb of flash, and user IO headers. It could be used as a plug-in module, or since the design is open source (with Eagle files), as the basis for a custom board (as long as it is also open source, as per the license).
- Gameduino ($53) is an Arduino shield that contains a Spartan-3A 200K. It is intended to be an audio and video coprocessor for Arduino applications, but could be repurposed as a general-purpose FPGA interface board with the Arduino form factor. VGA and audio outputs, with SPI flash.
- OHO-Elektronik have a range of breadboardable DIL modules with TQFP Spartan-3E FPGAs ranging in price from 39 to 59 EUR. They contain SPI flash, nine LEDs, two switches, and 5V voltage translators.
- Aessent aes220 (120 EUR) is a small stackable module that combines a Spartan-3AN 200 (or 400) with a Cypress FX2LP USB controller, 128Mb SDRAM, 16 KB EEPROM, 72 GPIOs, 5 LEDs, 2 switches, and power via USB or external supply.
- FleaFPGA is a $65 board that features a MachXO2-7000HE with 256Mbit SDRAM, 512Kbit SRAM, USB 2 host, USB serial, VGA/composite video output, stereo audio, SD slot, PS/2 keyboard or mouse port, 18 GPIOs, 2 buttons, 4 LEDs, and built-in USB JTAG.
- LatticeXP2 Brevia is a $43 dev board with a bit of a caveat - the programmer needs a parallel port, and the USB programming cable, sold separately, costs $149! The FPGA is a pretty low end part with: compared to the XC3S500E it has 176Kb vs 433Kb RAM, 12 vs 20 multipliers, and 5K LUTs vs 9K1.
- LatticeECP3 Versa is very occasionally reduced to $99 on special (currently $262), which makes it the cheapest PCI-Express development board by far. It also has two gigabit Ethernet ports and high speed serial connectors. It appears that the FPGA device requires a licensed version of the design software, but this is also available for $99 for the first year. Pricing options beyond the first year are not very clear.
- iCEblink40-HX1K Evaluation Kit is a $39 board with USB programmer, four LEDs, four capacitive touch buttons, configuration PROM, 68 digital I/Os through 0.1" headers, and supposedly some PMOD and Arduino shield compatibility.
- TRIFDEV is currently on Kickstarter at £49. It is an Arduino shield that provides 58 extra I/Os, and can also be used as a standalone dev board. It has a MachXO2-1200, USB programmer, two buttons, and 5 LEDs.
- Bugblat pif ($25/$35) is a Raspberry Pi add-on board that provides a MachXO2-1200 or -7000, 17 external I/Os (in addition to those used to communicate with the Raspberry Pi), two LEDs, and programming circuitry.
- Bugblat tif ($25/$35) is a coin-sized, breadboardable MachXO2-1200 or -4000 board. It has 10 I/Os, USB programming (with cross-platform open source software that doesn't require drivers) and power port, two LEDs.
- [[http://www.latticesemi.com/Products/DevelopmentBoardsAndKits/MachXO2BreakoutBoard.aspx | MachXO2 Breakout Board] ($26) has a MachXO2-7000ZE and eight LEDs, 108 I/Os, prototype area, JTAG connector, and on-board USB programmer.
- Actel IGLOO nano Starter Kit is $99. It has switches and LEDs onboard, USB-serial, a USB programming adaptor, and what looks like plenty of low speed I/O.
- Microsemi SmartFusion Evaluation Kit is also $99 but you get a lot more for the money. It features an FPGA advertised as having 200K gates and an integrated 100 MHz ARM Cortex-M3, 10/100 Ethernet PHY and on-chip MAC, USB-serial, on-board USB programming interface, OLED display, 8 LEDs, two user switches, and an indeterminate number of analog and digital outputs. It looks like a very interesting and inexpensive board for developing mixed FPGA/microcontroller applications.
- TrioFlex ST32PA3-AP8 (35.09 EUR) gives you an Actel A3P060 FPGA and 50 MHz oscillator, with an AVR-compatible soft core preloaded in a stamp-sized module.
- devboards DB_START_4CE10 (99 EUR) has a Cyclone IV (EP4CE10), 16Mb SDRAM, 19 I/Os, 5 input pins, 6 LEDs, 2 buttons, and built-in USB programmer.
- [http://www.devboards.de/en/home/boards/product-details/article/db4cgx15/ | devboards DB4CGX15]] (133 EUR) is a reasonably priced PCIe development board with a Cyclone IV (EP4CGX15BF14C6N), 32Mb SDRAM, 20 I/Os, 4 input pins, 2 LEDs, high speed transceiver I/O via MMCX connectors, and a built-in USB programmer.
- DE0-Nano ($59 academic) provides a Cyclone IV, 16 Mbit flash, USB programmer, 3-axis accelerometer, 8-channel 12-bit ADC, 106 pins over three expansion headers, 32 MB SDRAM, 2 Kb EEPROM, 8 LEDs, 4 DIP switches, and two push button switches in a very small package.
- DE1-SoC ($150 academic, $199 otherwise) packs a Cyclone 5 5CSEMA5F31C6 (85K logic elements) with dual core ARM Cortex-A9 and 64 MB SDRAM, 1GB DDR3, micro SD, dual USB 2.0 host, gigabit Ethernet, PS/2, IR emitter and receiver, around 80 digital I/Os, 8 * 12-bit 1MSPS ADC inputs, VGA, audio codec, analog TV video input, four buttons, 10 switches, 11 LEDs, 6 * 7-seg displays, accelerometer, USB-serial, and USB programmer.
- Cyclone V GX Starter Kit ($179) packs a Cyclone V (77K LEs), 4 Gb DDR RAM, 4 Mb SRAM, high speed mezzanine connector with four 3.125 Gbps transceivers, 40 GPIOs, Arduino-compatible header with analog inputs, configuration flash, USB programmer, HDMI output, audio, 18 LEDs, 10 slide switches, 4 debounced buttons, CPU reset button, 4 seven segment displays, micro SD socket, and USB UART.
- Terasic Altera DE0 is $79 (academic price) for something that looks comparable to Digilent's Nexys2, though the connectors aren't suitable for high speed use.
- Thin Layer Embedded helix_4 ($41-$59) is a Cyclone IV module designed by an Australian company that combines 4 Mbits of SRAM, 512 Mbits of DDR2 (in the larger model), flash and a cryptography chip in a module that is designed to be mounted directly on your own PCBs. Carrier boards compatible with Arduino shields with USB programming via a PSoC are also available. A number of tutorials and examples have been provided. The developers are currently running an IndieGoGo campaign.
- Arrow BeMicro is $49 but you'd need the corresponding protoboard to use any of the I/Os. Mainly intended for embedded processor development. There's a short review highlighting some of the other limitations.
- Arrow BeMicro SDK for $79 is a newer version of the BeMicro that is intended for use with the Altera Nios II processor. It includes a Cyclone IV FPGA, microSD, 10/100 Ethernet, temperature sensor, 512 Mb mobile DDR, integrated programmer, 8 LEDs, buttons and switches, and an 80 pin edge connector. A corresponding protoboard is $30. There's also a BeInMotion add-on for $79 that provides dual H-bridge motor controllers, a stepper motor controller, and ADCs.
- KNJN Pluto boards are cheap ($29-$79) and small. No on-board peripherals, so they seem more suited to dropping in to a larger project than as a standalone development tool.
- Random Altera boards on eBay. For around $20 to $50 there are plenty of Altera CPLD and Cyclone II/IV boards. They tend to require a JTAG cable (though some even come with one). Many are very bare bones, but some have RAM and extra flash. Probably only recommended if you're already familiar with the parts as documentation is pretty lacking, but good value.
- FTDI Morph-IC-II ($110) combines a Cyclone II with a FT2232H USB interface chip to provide high speed data transfer. It has a total of 80 to 96 I/Os (split between the FPGA and FT2232H, and depending on who you ask) with a 0.1" spacing.
- Wayengineer sell a large range of very cheap ($28-77) Cyclone II boards from Shenzhen, most with RAM and a variety of I/O including LCDs, 7-segment LEDs, VGA, switches, etc. Again they're great value if you already have some experience with FPGAs, are comfortable reading schematics and don't require any vendor support.
- Ordb2a-ep4ce22 (149 EUR) is a development board that was designed for the OpenRISC processor and comes with a Linux port. It contains a 22K LUT Cyclone IV E, 32 MB SDRAM, 1 MB SPI flash, SDIO connector, Fast Ethernet, USB OTG, USB serial/JTAG, and expansion connectors with 62 GPIOs. Also available is an SO-DIMM board with an ARM processor and Ethernet switch.
- Amani F2 ($50) puts a Cyclone II EP2C5 with 4608 LEs on an Arduino shield. It provides 74 digital I/Os, including two PMod interfaces, a JTAG port, a push button, and an LED. A pad is provided for an EPCS1 flash memory device. The designs are CC licensed.
- EP2C20 core board ($46) is another Chinese board of unknown origin with little online documentation, but it looks like good value with on of the larger Cyclone II parts (18752 LEs), 256 Mb SDRAM, 2 Mb SRAM, a USB programming cable, four switches, and 30+ I/Os.
- freeSoC and freeSoC Mini ($75 and $50) are not FPGA boards, but rather boards based on the Cypress PSoC, which incorporates an ARM Cortex-M3 and reconfigurable mixed-signal logic.
- PSoC 4 Pioneer ($25 preorder) is Cypress' own cheap dev board offering. It has a PSoC 4200, which has a Cortex-M0 and support for both Arduino shields and Digilent PMods, a CapSense slider, RGB LED, and one button.
None of them! I ended up getting the Digilent Atlys, which has a Spartan-6, HDMI ports, gigabit Ethernet (though getting hold of the datasheet is nearly impossible), and a very nice high speed connector (though getting hold of the right mating connector was a minor challenge). It's a lot more expensive (at $200) than I would have hoped, but the Spartan-6 is significantly better than its predecessor.
If you manufacture or know of any other cheap FPGA development boards, please let me know so that I can include them on this list. Review units will be cheerfully accepted! :)
There is a long and comprehensive list of boards at FPGA-FAQ that includes a couple of other cheap options - there are a number of Spartan-3 generation boards that I haven't listed.