An FPGA for DIY Electronics
The latest version of Arduino’s MKR (Maker) family development board, the Arduino MKR Vidor-4000, is a small-form-factor FPGA development platform.
Since its introduction in 2011, the Arduino low-cost electronics prototyping platform has allowed engineers, designers, educators, and makers to create new industrial tools and consumer products. One of the more attractive features of the Arduino is that it allows the personalization of new features and functions to be realized by way of customized boards, called shields. The shield mounts on top of the Arduino through two single, inline female connectors soldered on both sides of the Arduino board. Now, there is a new family of Arduino called the MKR (Maker), which is allowing more computing power and connective capabilities.
The MKR Vidor-4000 Peripherals
The latest version of the MKR platform to hit the market is the MKR Vidor-4000 field programmable gate array (FPGA). The MKR Vidor-4000 is not packaged using the usual, signature footprint Arduino printed-circuit boards (PCBs) known in the maker community. Instead, the PCB has a dimensional footprint of 83 mm (3.25 in) by 25 mm (0.98 in). This small form factor has a variety of peripheral connectors as well as semiconductor integrated circuits. Unlike the Arduino Uno, the MKR Vidor board has a mini high definition multimedia interface (HDMI) connector, which allows it to be attached to a high definition monitor. The Vidor PCB also has Peripheral Component Interconnect Express (PCIe), allowing the FPGA to be connected to a larger processor system for applications like image recognition processing.
Another connector provided on the board is a standard Mobile Industry Processor Interface (MiPi) for attaching a camera. Appropriate inline connectors (female or male) can be soldered on both sides of the MKR Vidor PCB for accessing the board’s I/O pins. On a traditional Arduino Uno board, the inter-integrated circuit (I2C) is obtained by inserting two solid wires into the appropriate inline female connector’s cavities. The MKR Vidor PCB has an I2C bus connector soldered onto the board instead. The MKR Vidor-4000 FPGA PCB is also 3.3V compliant. Therefore, a lithium-ion polymer (LiPo) connector is provided for battery operation.
In addition to a variety of electrical connections, the MKR Vidor board has processing and communication capabilities by way of populated semiconductor ICs. For providing the FPGA capabilities, an Intel Cyclone 10 IC is mounted onto the PCB. The Cyclone chip includes 16K logic elements (LEs), 504kb of embedded RAM, and a 56 x 18 x 18-bit hardware multiplier array to support the high-speed, on-board digital signal processor (DSP). It also has 8 MB of Static Random-Access Memory (SRAM) with a 2 MB Quad Serial Peripheral Interface (QSPI). NOR Flash IC provides the appropriate processing power for the MKR Vidor FPGA device. As an added feature, there is 1 MB of user available memory for the Vidor board. A SAMD21 processor supports the computing power of the Vidor board along with providing control signal resources to the Cyclone 10 IC.
Other special features supported by the MKR Vidor include a u-blox NINA-102 WiFi module. This module’s design is based on the ESP32 WiFi system on a chip (SoC) that’s popular with other wireless microcontroller development platforms. In addition, the Arduino team has provided cryptography on this board via a Microchip ECC508 cryptography IC, which provides local networks and internet secure connections.
Programming the MKR Vidor-4000 FPGA
FPGA programming is related to the digital circuits’ physical wiring description in contrast to calling functions, as on a typical microcontroller. With an FPGA development toolchain, programming the digital IC can be accomplished using a schematic editor. Counters, latches, flip-flops, logic gates, and memory blocks can be drawn to create specific processing or controls applications for the FPGA using the schematic editor. A binary file of the target application is then developed from the schematic editor and uploaded to the FPGA.
Another programming approach is to use a high-level description language (HDL). There are two variants of the HDL—one being very high-level description language (VHDL) or Verilog. With either programming options, sophisticated control, signal processing, and imaging recognition applications can be developed using the MKR Vidor-4000 FPGA platform.
Additional information on sample code and cost of the MKR Vidor-4000 FPGA PCB can be found on the Arduino website.
Don Wilcher is a passionate teacher of electronics technology and an electrical engineer with 26 years of industrial experience. He’s worked on industrial robotics systems, automotive electronic modules/systems, and embedded wireless controls for small consumer appliances. He’s also a book author, writing DIY project books on electronics and robotics technologies.