Posted on 02. Apr, 2009 by ModuleTronics in Development Kits
Field Programmable Gate Arrays, or FPGAs, are high-speed chips which are filled with thousands of structures called logic blocks. These blocks allow you to build, using a specialized electronics programming language like Verilog or VHDL, a custom circuit on the chip to do whatever you need done in your circuit. The FPGA offers much of the benefits of a fully customized chip (known as an ASIC) but with much lower costs and the ability to re-program it during the development process.
FPGAs are one of those "mystery" devices to many hobbyists. They are shrouded in a haze of strange terminology and general lack of information compared to something like a PIC microcontroller or Arduino. That's a shame, because FPGAs pair very nicely with these microcontrollers to accomplish tasks which would not be optimal when performed only on a standard microcontroller. If you're familiar with computers, you know that a video card GPU is very effective at performing certain operations while the general purpose CPU is better at other things. A FPGA is like the video card in its ability to perform parallel operations and transforms, while the PIC or AVR is like the CPU because they do the general system control and logic.
Anyway, you can read more about getting oriented with FPGAs and how to use them if you dig a bit in the search engines. However, reading about them is really not enough. Unlike a AVR or PIC, where you can understand them if you have basic programming knowledge, the gate arrays use a different way of structuring the logic and arranging the code. By using VHDL or Verilog, you can do things that would be quite difficult in other languages, but it takes a bit of effort to completely understand things.
That's why an inexpensive development board is handy. Enter the Diligent Basys board. It features a Xilinx Spartan 3E FPGA along with supporting circuity such as a VGA interface, USB interface for programming and data exchange, and even a PS/2 interface to connect with a keyboard if you desire. Using the Basys, you will be able to experiment with generating video displays using the VGA output (something very handy for your other projects!) as well as many other I/O related tasks like data manipulation. The Basys has on-board LEDs and switches as well and is compatible with expansion modules that Diligent calls Pmodules.
Some features of the Diligent Basys include:
- Xilinx Spartan 3-E FPGA, 100K or 250K gate
- FPGA features 18-bit multipliers, 72Kbits of fast dual-port block RAM, and 500MHz+ operation
- 8 LEDs, 4-digit seven-segment display, four pushbuttons, 8 slide switches, PS/2 port, and a 3-bit VGA port
- XCF02 Platform Flash ROM that stores FPGA configurations indefinitely
- Three on-board voltage regulators (1.2V, 2.5V, and 3.3V) that allow use of 4V-12V external supplies
- User-settable oscillator frequency (25, 50, and 100 MHz), plus socket for a second oscillator
- Four 6-pin headers for user I/Os, and attaching Digilent PMOD accessory circuit boards
- USB 2 port for FPGA configuration and data transfers (software available as a free download)
You can develop and program the Diligent Basys and Spartan FPGA using normal tools like the ISE Webpack without any hidden expenses. The board kit is only $79 ($59 for students) and includes everything you need to get started. This is on my list of things to buy in the near future!
One question though: do you recommend Altera or Xilinx? Leave a comment if you prefer one over the other and why you do please.
Tags: FPGA, USB, VGA, Xilinx