BeagleWire is an Open Source FPGA Board With BeagleBone Compatibility
Beaglebone boards are low power open source single board computers created to teach open source hardware and software to makers. However, BeagleWire is a development platform designed for use with Beaglebone board. BeagleWire is a Beaglebone compatible shield based on the Lattice iCE40HX FPGA and is also an open source FPGA development board, a rare feature for FPGA boards. The BeagleWire’s hardware, software, and FPGA toolchain are completely open source.
At the heart of BeagleWire is the Lattice Semiconductor Lattice iCE40Hx FPGA which affords individuals the opportunity to make changes and reprogram. BeagleWire does not require external tools (JTAG), and the whole software stack is Open Source. BeagleWire can be easily expanded by adding external modules such as, modules for high-speed data acquisition, software-defined radio, or advanced control applications. Using common connectors like Pmod and Grove makes it possible to connect various interesting external modules which are widely available in stores. This makes prototyping new imaginative digital designs easier.
Lattice iCEv40Hx is from the Lattice iCE40 family. The latter is simply a family of FPGAs which have a regular structure, and are created to support cheap, high volume system and consumer applications. iCE40 is an energy saving device that enables work with small batteries.
BeagleWire has special features and advantages which are FPGA: Lattice iCE40HX4K – TQFP 144 Package, GPMC port access from the BeagleBone, SPI programming port from the BeagleBone, does not require external tools (JTAG), minimalistic architecture and very regular structure, has an energy saving device which allows it to work with small batteries, it is cheap and easy to use for application development, fully open-source toolchain and many more.
BeagleWire software support is still developing. Some of the useful examples and ready to use answers can be found there. For communication between FPGA and ARM, GPMC can be used. Programming is done by SPI interface. BeagleWire uses second BeagleBone SPI port. SPI frequency should be between 1Mhz and 25Mhz. Also, BeagleWire software repository contains a simple SDRAM controller written in Verilog which supports communication between SDRAM and iCE40.