LOGi-Pi and LOGi-Bone are expansion boards featuring Xilinx Spartan 6 for respectively the Raspberry Pi, and the Beaglebone Black. Valent F(x), the company who designed the boards, is currently looking for funds via Kickstarter in order to bring the cost down to $89, or even $69 for early backers.

The boards can also be used in standalone configuration via the JTAG header, and a JTAG programmer.

LOGi-Pi Connected to the Raspberry Pi

LOGi-Pi interfaces to Broadcom BCM2835 SoC via SPI, and LOGi-Bone uses the GPMC interface of the Sitara processor in the Beaglebone Black, so if you need high throughput, Beaglebone Black combines with LOGi-Bone appears to be a much better option.

Several software and firmware components are available for the boards including:

LOGi-Loader to load a bit-stream from the host development board with a single command: logi_loader file.bit. It’s also possible to automatically load a given bitstream from the host during system startup, and the user can configure the FPGA to self-configure from onboard flash each time the FPGA is powered on.

LOGi-Library is a C-library communication abstraction layer to enable the host development board and the FPGA to readily communicate with one another. For the Raspberry Pi, the library is a Python wrapper.

LOGi-Hard – Open source IP that implements a wishbone master from the host processor, a set of wishbone peripherals (wishbone-registers, wishbone-memory, wishbone-fifo …) and a set of interface peripherals (servo-controller, pwm-controller, ad-controller, pid-controller …). More IP cores can be downloaded directly from opencores.org.

LOGi-Demo – A a few demos that are based on the LOGI-Hard library and custom software components:

Autonomous Vehicle Control demo – This demo provide all the material to start designing your own Autonomous Ground Vehicle (AGV). The architecture controls the servo, runs a PID controller, and detect colors using the LOGi-Cam. A software stack written in Python handles inputs from GPS and an inertial measurement unit (IMU) to guide your AGV through a series waypoints.

The software, HDL, demos, and hardware files are available in their github repo. The LOGi-Cam mentioned above is another add-on board with the OV7670 sensor to add a camera to the LOGi boards.

The project had a low target of $6,900, and they’ve already raised over $12,000, so the project will go ahead. If you are interested you can pledge $89 for the LOGi-Pi or LOGi-Bone, adding the LOGi-Cam will cost a total of $115. If you have a Raspberry Pi and a Beaglebone, you can get a bundle LOGi-Pi + LOGi-Bone for $135. Shipping is $10 outside the US, and delivery is expected in April 2014.

You can also find getting started guides, and Raspbian and Ubuntu images, and more technical details on Valent F(X) Wiki.

I’ve asked some details about the throughput between the host and the FPGA board:

* Raspberry Pi: “Max theoretical bandwidth for the logi-pi is 3.8MB/s using our protocol over SPI to address the wishbone bus,(16 bit overhead for each transfer). In Practice we got ~3MB/s in user space.”
* BeagleBone Black: “We have a theoretical bandwidth of 76MB/s and measured up to 69MB/s in user space for transfer of 128KB blocks. Our kernel driver gives access to the whole address space of the FPGA with EDMA but can be re-written to be application specific and get better bandwidth. For now the overhead for switching from user-space to kernel space impacts a lot the performance, thus writing an application specific kernel driver (ours uses EDMA and burst access) with interrupt for transfer generated by the FPGA could get you close to theoretical bandwidth. “