Channels ▼

Al Williams

Dr. Dobb's Bloggers

Inexpensive FPGA Development

June 30, 2010

I am always surprised how many embedded developers don't work with FPGAs. Sure there was a time when the barrier to entry to FPGAs was high. But today its really no worse getting started with FPGAs then it is getting started with microcontrollers.

I've written about FPGAs in DDJ over the years, both with an introductory slant and more project-oriented articles. So what do you need to get started? The easiest way to start is to get an evaluation board, a programming cable, and the vendor's software which is usually free (at least for some version of the tools).

The only hitch might be the programming cable. Some evaluation boards have a parallel port or USB programmer built in and you just need a standard PC cable. But most rely on an external JTAG interface. If you have a PC with a printer port, that's easy enough. If you don't then expect to get robbed for an expensive USB cable unless the board has its own USB interface.

In no particular order:

  • Avnet Xilinx Spartan 3A Evaluation Kit - I have one of these. The price isn't currently showing up online but I think I paid less than $50 for mine. You get a lot for the price, including a Cypress PSoC programmer for the onboard CPU and a built-in USB programmer. The downside is there isn't much I/O on the board.
  • Open Workbench - This is a simple board with little I/O. In theory, this board is meant to operate as a logic analyzer using some open source firmware, but for about $43 you could use it anywhere you need a Spartan 3E. USB programming is onboard, too.
  • Digilent Xilinx Spartan 3 - My favorite because of all the I/O. However, you need a parallel or USB JTAG cable. The Digilent USB cable is inexpensive but -- like all the USB boards mentioned -- requires its own software to program the FPGA. Just over $100 but for $50 more you can get a much larger FPGA which I recommend.
  • LatticeXP2 Brevia - I don't have one of these but for $29 (till the end of August, anyway) it looks like quite a deal IF you have a parallel port.

Granted, two of these boards have USB onboard but there's a catch. You can't use the "standard" tools with these USB connections for programming. You still use the usual tools to generate a bitstream (think of it as a "hex" file for the FPGA) but then you have to use the cable's program to download it. By itself, that's not a big deal. But if you want to use the FPGA vendor's debugging software, for example, it won't recognize the cheap USB cables. Of course, that software is usually not free so if you are buying the software, a $200 USB cable is probably not a problem anyway. And if you just want to program the non-standard software isn't a big deal.

I notice I don't have any Altera boards on my list. Even though I first learned about FPGAs with Altera, I haven't used them lately, so I don't know what's available at low cost. If you have a suggestion for Altera or any other "starter" FPGA hardware, leave a comment.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.