The XEM6001 is a small, business-card sized (3.5’’ x 2.0’’) FPGA board featuring the Xilinx Spartan-6 FPGA.

Designed as a full-featured starter system, the XEM6001 provides access to most of the I/O pins on the 256-pin Spartan 6 device.  The XEM6001 is ideally suited to experiments based on the FrontPanel virtual instrumentation platform, integration into prototype development, or as a quick and easy way to add USB capability to an existing device.

The XEM6001 has been designed to be pin- and footprint-compatible to its Spartan-3 predecessor, the XEM3001.

Documentation and Reference Materials

The following is a comprehensive list of documentation available for this device.

XEM6001 User’s ManualThis online documentation space.
XEM6001 Pins ReferenceThe interactive Pins reference for the device provides detailed pinout
information as well as automated constraint file generation. Export
functionality is provided to PDF, CSV. Constraint files are provided
for UCF, XCD (Xilinx) and QSF, SDF (Altera).
FrontPanel SDK User‘s ManualThe online documentation space for the FrontPanel SDK.
FrontPanel API ReferenceOnline API reference with detailed usage for every API method.

Functional Block Diagram

USB 2.0 Interface

The XEM6001 uses a Cypress CY7C68013A FX2 USB microcontroller to make the device a USB 2.0 peripheral.  As a USB peripheral, the module is instantly recognized as a plug and play peripheral on millions of PCs.  More importantly, FPGA downloads happen blazingly fast, virtual instruments under FrontPanel update quickly, and data transfers are much faster than the parallel port interfaces common on many FPGA experimentation boards.

The USB interface also allows the XEM to be bus-powered which means it is ultra-portable requiring just a USB cable and the proper drivers to connect to any supporting PC, including laptops.

On-board Peripherals

The XEM6001 is designed as a low-cost, barebones device.  However, a few key peripherals have been added for convenience.


A small serial EEPROM is attached to the USB microcontroller on the XEM6001, but not directly available to the FPGA.  The EEPROM is used to store boot code for the microcontroller as well as PLL configuration data and a device identifier string.

The PLL configuration data is loaded from EEPROM and used to reconfigure the PLL each time a new configuration file is loaded to the FPGA.  Therefore, stable and active clocks will be present on the FPGA pins as soon as it comes out of configuration.  The stored PLL configuration may be changed at any time using FrontPanel’s PLL Configuration Dialog.

The EEPROM also stores a device identifier string which may be changed at any time using FrontPanel.  The string serves only a cosmetic purpose and is used when multiple XEM devices are attached to the same computer so you may select the proper active device.

Cypress CY22150 PLL

A multi-output, single-VCO PLL can provide up to five clocks, three to the FPGA and another two to the expansion connectors JP2 and JP3.  The PLL is driven by a 48-MHz signal output from the USB microcontroller.  The PLL can output clocks up to 150-MHz and is configured through the FrontPanel software interface or the FrontPanel API.

32 Mb SPI Flash

A serial flash device is available to the FPGA for configuration booting and post-configuration usage as general-purpose non-volatile memory.

LEDs and Pushbuttons

Eight LEDs and four pushbuttons are available for general use as debug inputs and outputs.

FrontPanel Support

The XEM6001 is fully supported by Opal Kelly’s FrontPanel software.  FrontPanel augments the limited peripheral support with a host of PC-based virtual instruments such as LEDs, hex displays, pushbuttons, toggle buttons, and so on.  Essentially, this makes your PC a reconfigurable I/O board and adds enormous value to the XEM6001 as an experimentation or prototyping system.

Programmer’s Interface

In addition to complete support within FrontPanel, the XEM6001 is also fully supported by the FrontPanel programmer’s interface (API), a powerful C++ class library available to Windows and Linux programmers allowing you to easily interface your own software to the XEM.

In addition to the C++ library, wrappers have been written for Java and Python making the API available under those languages as well.  Java and Python extensions are available under Windows and Linux.

Complete documentation and several sample programs are installed with FrontPanel.


Software, documentation, samples, and related materials are Copyright © 2006-2021 Opal Kelly Incorporated.

Opal Kelly Incorporated
Portland, OR 

All rights reserved. Unauthorized duplication, in whole or part, of this document by any means except for brief excerpts in published reviews is prohibited without the express written permission of Opal Kelly Incorporated.

Opal Kelly® and FrontPanel® are registered trademarks of Opal Kelly Incorporated. Linux is a registered trademark of Linus Torvalds. Microsoft and Windows are both registered trademarks of Microsoft Corporation. All other trademarks referenced herein are the property of their respective owners and no trademark rights are claimed.