• XLR8: Arduino-compatible FPGA-based Application Accelerator

What is XLR8?

XLR8 is a drop-in replacement for an Arduino Uno, but with a twist. It is an Arduino-compatible board that uses a Field-Programmable Gate Array (FPGA) as the main processing chip.

The FPGA provides a reconfigurable hardware platform that hosts a clone of an ATmega328 microcontroller. The FPGA also provides the ability to implement custom logic that accelerates specific functionality known to be slow or otherwise problematic for the standard 8-bit ATmega328 microcontroller.

The FPGA-based hardware acceleration and offload provided by XLR8 results in significantly improved performance in the same physical footprint and using the same tool chain as standard Arduino Uno boards.

If you have a project that's using an Uno, you can swap in an XLR8 board right out of the box, and it will just work. You won't even know you're actually running your sketch on an FPGA, at least not until you fire up one of the accelerated functions…and then the magic happens.

Bottom line: XLR8 provides a solution to accelerate your Arduino-based applications and projects.

Why XLR8?

Our team has a lot of experience developing custom processor chips, but we also like to tinker, experiment and build things. Arduino is well known in our ranks as a great platform for Makers.

So, we started thinking about how to take the expertise we have in chip design (ASIC and FPGA) and apply it to the Arduino space. Initially, we were talking about building an FPGA Arduino shield, but quickly decided that the FPGA was "too far away" from the processor to really be interesting. It would take too long to get information back and forth between the two.

We realized that what we really wanted, what would really be unique, what would add the most value, was to have the microcontroller ON the FPGA rather than sitting next to it or attached to it through the standard headers.

Xcelerator Blocks

An Xcelerator Block is an optimized hardware implementation of a unique processor-intensive function.   Since everything needs a cool acronym, we simply refer to one of these blocks as an “XB”.

Basically, an XB is a custom piece of hardware, implemented on the same FPGA fabric as the ATmega328 and tightly integrated with the microcontroller. XBs can access the same register space and even integrate with the instructions of the microcontroller.

The first XB we developed targets floating-point math. So, instead of 100 or more clock cycles to do a floating point add, our custom hardware can do it in 6 clocks. Multiply and subtract see similar improvement, and divide is even better.

And if you've ever been frustrated by that annoying servo jitter when you just want it to be still, our hardware-based servo controller XB provides a rock-steady PWM signal that is more than 15 times more stable than the standard Arduino library.

XLR8 ships with pre-installed XBs that target application-specific behavior, and the board can be field-updated to change the XBs implemented on the FPGA.

We currently have XBs for:

  • Floating Point Math
  • Servo Control
  • NeoPixel Control (in development)

Early feedback from developers indicates interest in XBs targeting functions such as:

  • Proportional-Integral-Derivative (PID) control
  • Event Counters and Timers
  • Quadrature Encoders/Decoders
  • Pulse Width Modulation (PWM)
  • Multiple UARTS
  • Fast Fourier Transforms (FFT)
  • Enhanced Analog-to-Digital Functionality

Alorium Technology has plans to add additional XBs and will be developing those and rolling them out soon.

User-Created XBs

Out of the gate, Alorium Technology’s primary goal was to create an FPGA-based board that is a drop-in replacement for the Arduino Uno. It supports FPGA image updates via the USB port, and there is also a JTAG footprint on the board so that more advanced FPGA users could use a JTAG programmer to talk to the FPGA directly.

The ATmega328 core that we have developed has been designed to be easily extendable, and initially, Alorium Technology will provide limited support for users who want to create their own XBs and interface to the on-chip microcontroller. Down the road, we do plan to provide access to enough source code and documentation to make it possible for someone proficient with Verilog or VHDL, and with Quartus II, to create their own XBs. The sky’s the limit on what can be done, and the XBs created this way can be shared with the rest of the XLR8 community.

XLR8 Advantages

 

Technical Specifications

XLR8 is based on the popular Arduino Uno board, and matches the Uno’s physical footprint, so any mounting brackets or shields that fit Uno will also fit XLR8.

Because we’ve used a 3.3V FPGA as the main chip on the board, the final design will include circuitry for handling level shifting on the I/Os. Electrically, we’ve gone out of our way to be sure that XLR8 is compatible with the 5V environment that Arduino Uno users are accustomed to.

Out of the box, the board has 5V tolerant inputs, and 3.3V outputs. On the digital I/O, the board has pads for pull-up resistors which, when populated, can create true 5V drive capability on these pins.

On the analog pins, we have used an op-amp circuit to emulate the zero-to-5V behavior of the ADCs on the Atmel chips. However, unlike an Arduino board, XLR8 will give correct ADC results regardless of whether it’s powered from USB or from the barrel connector. When a standard Arduino board is powered from USB, it will give incorrect ADC readings due to a reduced 5v supply. Additionally, XLR8’s ADC is higher performing in both speed (1MHz) and resolution (12 bit) than the ATmega ADC, so watch for future XBs that will help users take advantage of this increased ADC performance.

The ATmega core will be running at 16MHz on the initial production boards, the same as on the Uno. However, our timing analysis has shown that the XLR8 hardware should be able to run at least twice that frequency, though there will be some library updates needed to make it seamless for the user. We plan to release updated FPGA images soon to take advantage of the additional performance on the FPGA, which will translate directly to increased application performance.

For the USB-to-serial interface, we use an FTDI chip. The pre-production boards use an FT232RQ, and the production boards will have an FT230XQ on them. Paired with a mini-USB connector, the board has a very similar feel to it as Sparkfun’s Redboard.

Write a review

Please login or register to review

XLR8: Arduino-compatible FPGA-based Application Accelerator

  • Product Code:KS-XLR-8-Arduino
  • Reward Points:97
  • Availability:In Stock
  • रo 9,703.00

  • Price in reward points:9703

  • 2 or more रo 9,626.00
  • 3 or more रo 9,548.00
  • 7 or more रo 9,470.00
  • 13 or more रo 9,393.00

Related Products

Nexys 3 Spartan-6 FPGA Trainer Board

Nexys 3 Spartan-6 FPGA Trainer Board

The Nexys 3 digital system development platform features the newest Spartan®-6 FPGA from Xilinx®, 48..

रo 36,985.00

Nexys 4 DDR Artix-7 FPGA: Trainer Board

Nexys 4 DDR Artix-7 FPGA: Trainer Board

The Nexys 4 DDR is a drop-in replacement for our cellular RAM-based Nexys boards. Featuring the same..

रo 51,094.00

Learning FPGAs

Learning FPGAs

Learn how to design digital circuits with FPGAs (field-programmable gate arrays), the devices that r..

रo 650.00

PYNQ-Z2 Development Board

PYNQ-Z2 Development Board

PYNQ-Z2 is a FPGA development board based on ZYNQ  XC7Z020 FPGA, intensively designed to suppor..

रo 21,715.00

Spartan Edge Accelerator Board - Arduino FPGA Shield with ESP32

Spartan Edge Accelerator Board - Arduino FPGA Shield with ESP32

Spartan Edge Accelerator Board is a Xilinx Spartan FPGA development board in the Arduino UNO shield ..

रo 4,692.00

BeagleWire

BeagleWire

BeagleWire is a completely open source FPGA development board. Unlike most other FPGA dev boards, th..

रo 13,710.00

Tags: XLR8, Arduino, FPGA, Accelerator

The product is currently Out-of-Stock. Enter your email address below and we will notify you as soon as the product is available.

Name
Email
Phone
Comments