We often talk about your FPGA projects in these pages as if they were your whole universe. We know they’re not. Most often, your FPGA project is a small part of a bigger task, and the FPGA is acting as a sub-part – ranging from the glue that sticks incompatible parts together to the system-on-chip at the core of your system. Since FPGAs are used in many small-volume and prototyping projects, we often use pre-made modules or even development boards for the FPGA portion of our design. That way, we don’t have the huge additional task of designing our own PCB.
In those types of projects, we’re often putting a big chunk of our functionality on a regular-old PC. It makes sense. There’s no point in designing custom hardware to do something that we can accomplish with a little bit of code on our laptop – and these days our laptop’s capabilities are impressive. If we do as much of our project as possible in software and use a custom-hardware FPGA module only for the part that has performance requirements software can’t handle, we’re probably making life as easy as possible for ourselves.
These types of systems are often set up for things like video processing – where input from a high-speed camera is pre-processed by an FPGA module, then handed off to a PC for more mundane tasks. In these cases, the bandwidth of the connection between the FPGA and our computer is critical. Opal Kelly has just released a pair of new modules based on Xilinx’s Spartan-6 devices that offer USB 3.0 connectivity – giving over 300Mbps of real-world transfer rate. That’s a really big pipe for pumping data over to your PC. In fact, it’s about 8x faster than the company’s existing USB 2.0 modules. Now, before you go saying that USB 2.0 already had a spec of 480 Mbps, remember we’re talking real-world here, and USB 2.0 was actually good for more like 30-40 Mbps in the real world.
For a lot of consumer applications, the USB 2.0 vs 3.0 difference is marginal. USB 2.0 is “fast enough” so that the increased speed isn’t really noticeable. In this domain, however, the FPGA-to-PC connection can end up being the bottleneck in the system, so USB 3.0 can enable applications that were just not possible before. The increased performance capabilities of Spartan-6 for things like parallelizing DSP and video processing algorithms could pretty easily outpace real-world USB 2.0 performance, so we need something with the punch of USB 3.0 to really take maximum advantage of these newer-generation FPGAs.
Opal Kelly is releasing two new modules, the XEM6310-LX45 – which is
based on the Xilinx XC6SLX45, and the XEM6310-LX150 – which is based on the Xilinx XC6SLX150. Both modules include integrated DDR2 SDRAM, power supplies, and configuration flash. Opal Kelly also provides a “FrontPanel” SDK and application for configuration and management of the module as well as turnkey USB integration. The FrontPanel SDK is a combination of device firmware, USB drivers, software API on the host PC side, and lightweight HDL modules. This allows you to build your own applications in C, C++, Python, Ruby, Java, Matlab, LabView (or other 3rd party languages) on Windows, Mac OS X, Linux, and QNX.
If you have used Opal Kelly modules before, this new set has a strong lineup of new features in addition to the USB 3.0 upgrade. The primary interfaces, which Opal Kelly calls “Wires” (asynchronous interfaces), “Triggers” (synchronous interfaces for event-based information), and “Pipes” (synchronous interfaces for bulk-data transfer) – have all been upgraded from 16-bit to 32-bit. They have also beefed up the flash memory resources – including both “System Flash” (attached directly to the USB controller, and not requiring FPGA configuration), and “FPGA Flash” (flash connected directly to the FPGA).
There are also now “Reset Profiles” that simplify the management of start-up events under the control of the USB microcontroller. This allows you to sequence all the post-FPGA-configuration events so that signals are at the right levels at the right times, preventing a lot of reset condition headaches.
In addition to the Spartan-6 FPGA, the XEM6310 modules – which are smaller than a credit card at 75mm x 50mm x 15.9mm – include a 128-MiB SDRAM, 2x 32MiB serial flash, Cypress FX3 high-speed USB 3.0 interface, a low-jitter 100MHz clock oscillator, eight LEDs, two 80-pin 0.8mm Samtec board-to-board connectors, over 110 user IO and 4 GCLK pins on expansion connectors, and they can be powered by an external DC source.
These modules are designed more for “production” use rather than as “development boards,” so, for smaller-volume projects, they should be ideal. In quantities of 100+ the modules are priced at $349.95 and $599.95 respectively.