What’s an Xcelerator Block?
An Xcelerator Block (XB) is an optimized hardware implementation of a given function, process or behavior that resides on the programmable portion of FPGA fabric. XBs communicate with the FPGA-based AVR microcontroller through the addressable register interface.
XLR8 and Snō ship with pre-installed XBs that help with well known challenges Arduino users face:
- Floating Point Math
- Servo Control
- NeoPixel Control
- Enhanced Analog-to-Digital Converter
Both can be field-updated to change the XBs implemented on the FPGA.
In addition, users can create their own custom Xcelerator Blocks using our OpenXLR8 flow.
This XB completely eliminates the “jitter” problem that commonly faces developers using Arduino to control servos for drones, robotic platforms, sensor alignment or other applications. The XLR8 servo control block can be used by simply including a different header file and then leaving the rest of your sketch completely unchanged!
Enhanced Analog-to-Digital Converter
The Enhanced Analog-to-Digital Converter (ADC) XB provides a solution that improves sampling performance and overall results. With the ADC XB, you can sustain a 12-bit output resolution and can achieve a sample rate of 154k samples/second! This means XLR8 or Snō could be a great solution for interesting audio applications or other projects where finer ADC resolution is required.
*This XB is burned onto FPGA during manufacturing
The NeoPixel Control XB provides three key improvements for controlling NeoPixel shields, strips, and arrays:
- Data memory is not used for pixel color storage.
- Interrupts are not disabled while updating the pixel array.
- Changing pixel brightness does not corrupt color data.
These improvements open the door to new and enhanced ways of implementing NeoPixels in your projects. In addition, the XLR8 board can drive arrays as large as 1280 pixels!
Floating Point Math
Intense mathematical computation is a known challenge for applications using Arduino-compatible solutions. The Floating Point XB provides hardware based floating point math implemented in the FPGA fabric. Functions and operations can be accessed from your sketch by installing our library and using our floating point arithmetic functions.
Quadrature encoders are extremely valuable for calculating speed and direction in robotics applications, industrial automation, or other applications where measuring a spinning motor or servo yields valuable data. They are often decoded using software interrupt routines. But at high speeds or high resolution, a microcontroller can be quickly overwhelmed.
The Quadrature XB moves this operation into custom hardware, allowing more microcontroller cycles to be available for other functions, and also enabling much higher sampling rates of the quadrature encoder outputs.