feature article
Subscribe Now

The Whole Wide World

Opal Kelly Connects FPGAs to USB 3.0

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. 

One thought on “The Whole Wide World”

Leave a Reply

featured blogs
May 22, 2019
In this week's Whiteboard Wednesdays video, Craig Johnson identifies the 4 steps to follow to create an effective strategy for moving electronic design work to the cloud. Skip one of these and... [[ Click on the title to access the full blog on the Cadence Community sit...
May 20, 2019
The Loch Ness Monster? There’s that old, grainy picture. Big Foot? I’ve seen the video. UFO’s? Who knows? But micro, rugged industrial connectors? Come on, that’s really hard to believe … But, industrial electronics is Samtec'€™s largest sellin...
May 20, 2019
Next week – Wednesday 29 May – I am presenting a technical webinar, looking at multicore issue. In particular, we will be looking at a number of benefits of a multicore design including how it can help reduce certification costs and effort '€¦ Here is the abstra...
Jan 25, 2019
Let'€™s face it: We'€™re addicted to SRAM. It'€™s big, it'€™s power-hungry, but it'€™s fast. And no matter how much we complain about it, we still use it. Because we don'€™t have anything better in the mainstream yet. We'€™ve looked at attempts to improve conven...