Is it a deep learning algorithm? Is it an old computer? Does it stand for a Professional Golf Association? Should I say “a FPGA” or “an FPGA”? What is FPGA?
It is true that there is a friendly professional golf association sharing the acronym but GMV is not part of that group. As a technological company we focus more on the FPGA acronym identifying a digital processing electronic component. In this case, FPGA stands for Field Programmable Gate Array. It is an embedded chip, a digital processing component that provides a hardware architecture that can be programmed to describe a specific hardware component. Sorry, what?
To put it briefly, an FPGA is a programmable and reconfigurable hardware device for implementing digital systems, from low-level components to complete system-on-chip (SoC) and board-level designs. An FPGA developer will: “Program the physical hardware of the device rather than write software to run on a predefined processor, DSP or other device”.
Most of us understand what a general purpose processor is. We are familiar with embedded processors in smartphones. You might also have heard about more specific processors for graphic applications, such as GPUs and maybe even the more specific Digital Signal Processors (DSPs). All these different processing elements are a fixed hardware component where you can program software that will be run in them following a set of rules to use the hardware available and the fixed functionality they can provide. In an FPGA, you can program the hardware component itself, the digital functions you want your hardware to have, and you create the interconnections and processing rules. You can in fact program (describe) a general purpose processor with your own functions and rules, you can describe a GPU or a DSP, you can create a hardware component in the FPGA that afterwards can run software created by others.
Cars, Internet of things, smartphones, space….FFGA floods everything
There are plenty of FPGA devices in many industrial fields; in a car, for instance, there are hundreds, mainly in sensors, and, driven by car digitalization and the self-driving cars, the number is increasing. Smartphones, internet access and processing clusters impacted the FPGA market as a ramp-up growth and the trend is expected to continue in the future. Interesting fields for FPGA market in the near future are AI and the Internet-of-things, due to the hardware flexibility of reprogramming and the high-performance at low power consumption (FPGA provides the best performance per watt figures of any processing device).
In the space domain, the FPGA as well as other electronic devices suffer from radiation-induced faults and for that reason space-qualified FPGAs are protected. Protection is added in electronics technology as hardened by design processes or in the firmware design as a fault-tolerant functional architecture implementation. One example of European high-performance and radiation-hardened FPGAs are the NG-MEDIUM and NG-LARGE devices from NanoXplore, which GMV developed in the QUEENS-FPGA ESA project for deep analysis and evaluation, including a high-performance computer-vision implementation for the satellite capture phase of the Active Debris Removal scenario.
What are we doing in GMV in the Space Segment and Robotics unit?
FPGA hardware is a device where programmers can exploit parallelism and pipelining techniques in order to accelerate the execution of time-consuming algorithms, or to implement interface protocols and data manipulation in streaming. GMV applies this knowledge and capabilities for the selection of FPGA-based co-processors in space avionics. For instance, in the Mars Sample Return mission GMV provides the Sample Fetching Rover of the mission with a localization and mapping system based on stereo-vision images of the surface close to the rover. Complex image processing is performed in real-time with high speed requirements. An accurate and precise image-processing algorithm used for this task would not be feasible in the mission if part of this code is not re-implemented into the FPGA. Another example of image processing is the Vision-Based Navigation system for Phobos Sample Return mission guiding the Descent and Landing of the spacecraft onto the surface of Phobos at a specific design position in an autonomous way without Ground Control Center support (from Earth).
Precise algorithm-implementing feature detection and tracking, allowing control of the spacecraft, takes far more than 1 second per frame in conventionally used space-qualified processors in software. The same algorithm, re-designed and implemented in an FPGA takes less than 130 milliseconds. In the HERA mission, GMV Romania is designing an Interface Control Unit (ICU) board that gathers information from different spacecraft sensors in parallel through different types of interfaces and at different speeds. In addition, the HERA ICU provides room for the image processing acceleration needed in the Guidance, Navigation and Control functions, as well as implementing data compression of sensor data to reduce the downlink communication to Earth.
Some other examples are the readout of an imaging sensor, telemetry and telecommand modules supporting a microprocessor as well as reconfigurable and adaptable high-speed sensor acquisition and data fusion, which are also implemented in FPGAs for space avionics. Parallelism, streaming processing, pipelining, flexibility and hardware reconfigurability are key aspects that will prompt you to use FPGAs instead of other devices. In addition to pure FPGA utilization in space, they are also used during early development phases as a prototype element for complex hardware before converted into an ASIC.
Summary of FPGA at a glance:
- An electronic chip (integrated circuit)
- Divided in predefined configurable logic blocks (CLBs) with configurable connections, clock & power trees. Considered as an array of CLBs that can be connected together through a vast interconnection matrix to form complex digital. Pass transistors are used in the routing matrix.
- An engineer programs a desired hardware functionality (specificity vs general purpose)
- Programming physically alters the device
- ‘Synthesizer‘ (software EDA tool) converts code into circuitry, made using the switches inside the various CLBs
- Relatively high-level automation of bitstream generation through the EDA tools that create it automatically to match a “programmed” specification.
- It doesn’t have to be fully digital. Some also accept analog signals
- Flexibility: It can be reprogrammed, unlike an application-specific IC (ASIC) and cheaper (far lower non-recurring cost)
- High Performance: really fast due to: Specific programming, parallelization, pipeline, multiple IOBs. Best performance per watt figures.
- Other Hard blocks: multipliers, generic DSP blocks, embedded processors and memories, high speed I/O logic as Eth MACs, PCI controllers, bridges…
- Anti-tampering and prevention of reserve engineering attempts can be programmed for hacking avoidance.
- A rapid prototyping hardware, easy to debug compared to fixed circuits.
- High reliability, commercial vs industrial vs defense vs space grade built-in configurations withstanding different radiation energy and range of temperatures from -40ºC to +125ºC.
A last detailed paragraph. An FPGA provides a matrix of interconnected independent blocks/cells (configurable logic blocks). Each block can be configured to implement basic functions. These blocks can be interconnected by programming the switches that enable routing signals among the configurable blocks. Input and output pins of the FPGA chip can also be routed with the configurable blocks. There is not only one path of interconnections; there might be several, allowing implementation of different data processing paths in parallel, without any constraint of an already implemented fixed hardware.
Now you have some idea of what an FPGA is and how we are using FPGA devices at GMV. Get in touch with us to find out more.
PS: As a Spaniard I was unsure whether it should be “a FPGA” or FPGA”. I did my best. My FPGA quandrary, as a Spanish-speaker, is whether it should be masculine or feminine (“la FPGA” vs “el FPGA”).
David González Arjona
Las opiniones vertidas por el autor son enteramente suyas y no siempre representan la opinión de GMV
The author’s views are entirely his own and may not reflect the views of GMV