Open hardware FPGA platform for multi-camera systems
Topics: Open FPGA, Open machine vision, Open hardware
Advanced multi-camera systems often require the low latency, high bandwidth and energy-efficiency that FPGA solutions can provide.
The deep control over hardware and software working in tandem offered by FPGAs can be a great fit for applications such as real-time object detection and tracking, signal conversion, stereovision, as well as image compression, overlays and ISP processing.
The challenge with FPGA development however is that much of the ecosystem revolves around proprietary, vendor-specific technologies, platforms and tools. At Antmicro, we are working to change that and push FPGAs towards a more open source and software-driven approach, and with that, more widespread adoption, one step at a time.
Zynq Video Board - a carrier board not only for Zynq
Antmicro’s Zynq Video Board is an open hardware carrier board we released on GitHub to drive high-end video applications. Despite the Zynq-centric name, the board supports all current - and future - Mars FPGA and FPGA SoC modules offered by our partner Enclustra.
We have used the Zynq Video Board and many similar platforms to build advanced custom video streaming and processing products for our clients, including gate logic and corresponding custom Zephyr and Linux drivers. We released the Zynq Video Board on a permissive license to push towards an open source ecosystem that can make high-end camera projects simpler to kickstart.
The board joins a long list of open source PCB contributions from Antmicro, such as our NVIDIA Jetson Nano / Xavier NX baseboard, Google Coral baseboard, or our own chiplet-based GEM ASIC development platform .
The default module supported by the board is the Mars ZX3, with the popular Zynq-7020 FPGA SoC. It’s a flexible combination of an ARM dual-core Cortex-A9 processor and 85K Artix-7 programmable logic cells.
The Zynq Video Board break-routes a typical set of I/O interfaces from the Mars module:
- Gigabit Ethernet
- USB 2.0 host with on-board hub with two regular USB connectors for downstream ports
- JTAG connector supporting Xilinx Platform Cable
- two Digilent Pmod connectors for external accessories
- eight general purpose LEDs and 4 buttons for debugging and testing
The board also exposes a debug Micro USB providing access to a quad-channel USB/serial converter - FTDI FT4232H. One of the channels is dedicated to controlling and managing the operating system running on the ARM core inside the Zynq-7020 using a serial debug console, whereas the other three channels are connected to the FPGA fabric inside the Zynq, enabling a serial console and a JTAG to be interfaced with the soft-cores in the FPGA. As all the debug interfaces are available to the host PC platform over a single USB connection, software debugging gets hugely simplified.
A 50-pin FFC connector with a unified pin-out present on the Zynq Video Board matches a variety of video accessories designed by Antmicro, including the OV9281 Camera Board, recently released as an open hardware design. In its current configuration, the camera interface allows connecting up to two video sources, with signals transmitted over a 2-lane MIPI CSI-2. The CSI data lanes are connected to the differential I/Os of the Mars module through a dedicated resistor net implementing a D-PHY interface. It enables receiving CSI signals from IP cores in the FPGA.
A standard HDMI connector break-routes a set of Mars I/O differential signals and ensures ESD protection and signal conditioning. By default, the HDMI interface connector allows implementing HDMI output from IP cores in the FPGA.
FPGA-oriented services and use cases
Antmicro’s open hardware Zynq Video Board is a flexible evaluation platform suitable for a variety of applications, such as machine vision and the development of advanced multi-core and heterogeneous processing systems, data encoding and advanced real-time control tasks.
Our FPGA-related services focus on creating custom hardware, FPGA gateware and software for advanced products our customers want to build, and the ZVB is ideal as a starting point.
If an Artix-7 FPGA is used in place of the Zynq, we can offer designs based on a configurable soft RISC-V SoC builder which can run Zephyr or Linux, with relevant I/O drivers contributed by Antmicro.
For Zynq/UltraScale+, we have created the Enclustra Build Environment, a configurable buildsystem for all Enclustra FPGA SoC modules - and offer Linux customization services including interfacing hardware and software via dedicated Linux drivers. We have also built many asynchronous multi-processing (AMP) solutions for Zynq and UltraScale+ for use cases which need to combine real time operation with complex Linux applications.
Our experience and use of software-driven, open source-based methodologies in the FPGA area makes us uniquely positioned to assist our customers in completing advanced projects involving machine vision and other industrial IoT applications. If you are about to start one, do not hesitate to reach out to us at email@example.com.