An FPGA in an Arduino
The Arduino is a popular prototyping tool for a number of reasons. Firstly, it does not require a bulky expensive programmer (such as PIC chips) and can be programmed via USB. Secondly, Arduino boards are open source and, because of this, there are many manufacturers of Arduino boards that offer competitive prices. Thirdly, Arduinos are famous for their robust ecosystem of shields and library support which makes using even complex devices such as ethernet chips a breeze.
As technology has progressed, so too has the Arduino. Many industry trends are reflected in the release of new Arduino boards. For example, the introduction of the Arduino Yun added Wi-Fi capabilities and the Arduino Duo ushered in more powerful processors. Miniaturization was realized with the Arduino Nano and wearable electronics was introduced with the LilyPad. But all of these improvements involve specialized hardware which performs unique tasks such as radio communication or low power usage.
Now that FPGAs are becoming cheaper and more readily available, Arduino is about to release an Arduino with an inbuilt FPGA, the MKR Vidor 4000. The "MKR" portion of its name is pronounced as "maker" and Massimo Banzi, co-founder and CTO of Arduino, refers to it as being a "maker form factor" board. This is unsurprising as Arduino is generally accepted to be designed for makers and not of particular interest to professional EEs.
While the specific FPGA is currently unknown the image of the product suggests that the Arduino will be fitted with an Intel Cyclone 10 FPGA and the Arduino website states that the FPGA contains 16K logic elements, 504Kbit of RAM, 56 18x18 hardware multipliers for highspeed DSP applications. The website also states that the FPGA pins can toggle up to 150MHz and can also be configured as common communications ports such as UART, I2C, and SPI. If true, then this FPGA addon could be extremely useful for designers who want to design high-speed digital systems that need to capture data and process it quickly (such as Digital Signal Processors).
However, how many hobbyists really need to use an FPGA?
The Arduino Vidor 4000. Image courtesy Arduino.cc
How will this help designers?
Access to an FPGA allows designers to create custom circuits to connect to the Arduino, which can eliminate the need for external circuitry. It also allows the offloading of I/O functions from the Arduino to the FPGA but this comes at the cost of requiring a communication line between the FPGA and the Arduino (unless the FPGA and CPU are integrated into the same package, in which case the two may have a special I/O communication line).
FPGAs, however, are complex devices and are often programmed in languages such as HDL and Verilog which are not for the faint-hearted. While Arduino announced that they are designing a cloud-based compiler system that will make using the FPGA easy this is yet to be seen. More times than not as a system is made easier to use it sacrifices its power, ability, and control. Having said that, the Vidor 4000 could be an invaluable educational tool for those who want to start with FPGAs.
More Like a Pi?
The Vidor 4000 does not just boast the inclusion of an FPGA; it also has various I/O devices that make it seem more like a Pi than an Arduino.
Included on the Vidor 4000 are also a Nina W102 Wi-Fi module, an ECC508 crypto chip, a micro HDMI connector, an MIPI camera connector, and a MiniPCI express connector with up to 25 user programmable pins. These features, especially the in-built Wi-Fi, create a potentially popular IoT platform that can perform incredibly complex tasks. With the onboard crypto chip, SSL verification and HTTPS will become a trivial task and help to offload security tasks from the main microcontroller.
While this device will not be as powerful as a Raspberry Pi, it is definitely smaller and more focused on hardware which is something that the Pi falls behind on.
Competing FPGA Maker Boards
The Vidor 4000 is obviously not the first board to come out with FPGA capabilities, but it's also not the first built with Arduino compatibility in mind. Another product currently on the market, XLR8, is an Arduino-compatible development board that is FPGA-based, includes an embedded 8-bit AVR instruction set compatible microcontroller, and is programmable through the Arduino IDE.
The XLR8. Image courtesy Aloriumtech
The XLR8 is preconfigured with “xcelerator blocks” which are blocks that are especially designed to handle specific tasks. Blocks that the unit comes preinstalled with include a quadrature, a floating point math block, servo controller, NeoPixel controller, and an enhanced ADC.
Integrating FPGAs into an Arduino project will no doubt create a whole new wave of projects and ideas that hobbyists will be able to build—but FPGAs are complex devices. However, with glue logic being problematic in a world where 10MHz just won't cut it, Arduino users may start to design their own hardware from scratch and FPGAs being included in microcontrollers may change the way that circuits are built.
The MKR Vidor 4000 will be available from Arduino's store on June 15th. Are you planning to give it a try? Let us know in the comments below what you think you could do with it.