Field programmable gate arrays (FPGAs) are powerful and flexible devices. They combine the performance of custom designs with reprogrammability, even after the system is in the field. As a result, FPGAs are increasingly used in various systems, from the Mars rover to fighter jets and from communications and automotive systems to a growing variety of embedded applications. Following this FAQ on application opportunities for FPGAs will discuss how using FPGAs impacts the design process and a brief review of FPGA system integration issues.
This article will begin by looking at two “generic” applications for FPGAs used in a variety of end-use systems; security/cryptographic uses and image processing. It will consider specific opportunities to use FPGAs in automotive, aviation, medical and industrial systems. One of the factors driving FPGA adoption is the growing availability of embedded application-specific cores. For most of the applications discussed below, pre-defined cores already exist. Examples include cryptographic IP cores, DSP cores, image processing cores, communications (and software-defined radio) cores, 5G/MIMO cores, power line communications cores, industrial and automotive ethernet cores, and so on.
Security can be a complex issue when working with FPGAs. It consists of a combination of FPGA-specific security concerns and application-related concerns. First, intellectual property (IP) theft from a foundry can be a serious concern for custom ICs in general. FPGAs address this concern since the sensitive IP is usually not loaded into the FPGA until it has been delivered. Also, FPGAs can use bitstream encryption to protect IP that has been loaded onto the FPGA or external memory. But more is needed to ensure secure FPGAs and end applications.
Software-based cryptographic protocols are the basis of many security functions. There is a trend toward replacing these software-based approaches with security solutions embedded directly in hardware, especially for critical systems and embedded applications. The complexity of software-based security is problematic since it presents a large “attack surface” that is not easily defended from determined intruders.
Using hardware-based security applications based on FPGAs can address many of the shortcomings of existing software-based implementations. FPGAs’ inherent programmability, even after they have been sent into the field, enables continuous bug fixes and security updates to be performed efficiently and as often as needed.
Also, cryptographic applications require a large number of operations, making them a good place to use FPGAs. The transformations and permutations used in cryptographic algorithms can be programmed into FPGAs with low overhead and good performance. Cryptographic operations on FPGAs can be implemented with parallelism to accelerate performance further.
FPGA-based cores for MD5e, SHA-2, and other cryptographic functions have benefited from the ability to perform bit-level operations. Public-key systems and intrusion-detection functions have been built using FPGAs. The various cryptographic and security applications take advantage of the inherent speed and flexibility that FPGAs enable.
Image processing with FPGAs
In real-time image processing applications, FPGAs bring the benefits of low latency and power efficiency. For example, a smart camera with an embedded FPGA can perform image processing in real-time as it is streamed from the sensor. The camera provides a processed data stream instead of a series of images. FPGAs’ inherent parallelism can process the spatial content (data level) and temporal content (task level) inherent in image processing.
For the best performance, software needs to be optimized specifically for FPGA image processing. Existing image processing algorithms are usually optimized for serial processors and can’t take advantage of the inherently parallel capabilities of FPGAs.
FPGAs can enable smart video surveillance systems to analyze the images and identify potentially suspicious activities in real-time. Such a system could be implemented using a series of IP cores: an image processing core for processing the video; a computer vision core to analyze the image data; and an encryption-based communications core for sending the data to a central location where it can be further analyzed and acted on by human operators.
FPGAs can be used to implement a range of image processing functions, including filtering, segmentation, compression, clustering, and so on. Applications are far-ranging and include autonomous vehicles, traffic sign recognition, tissue image analysis in medical systems, robotics and smart vision systems, video compression and encryption, and so on.
FPGAs AI and image processing
Not only can FPGAs be used for image processing, but they are also increasingly being used in a wide variety of artificial intelligence (AI) and machine learning (ML) applications. Image processing is just one example of the application of FPGAs to AI. They bring high performance, flexibility, and scalability to deep-learning and machine-vision systems.
As software-defined devices, FPGAs can deliver continuous performance optimization without any hardware changes. Compared with other devices, FPGAs can be updated to the latest machine learning algorithms, improving their “intelligence.”
When used for deep learning inference, FPGAs can quickly process large quantities of information with low and consistent power consumption. They can also provide low latency across a variety of applications, including machine vision and LIDAR, and are inherently future-proofed and able to support new processes and applications with a relatively simple field upgrade.
ADAS and FPGAs
In addition to machine vision and LIDAR, a typical ADAS design includes a complex network of sensors for speed, braking, lane detection, traffic signal recognition, and so on. The flexibility and speed of processing with FPGAs can handle the multitude of sensor and other inputs for motion estimations, object identification, and image enhancement and implement appropriate actions. Importantly, sensor and image processing functions are available as hardware cores or software cores. That speeds time to market and enhances functionality.
FPGAs offer an important advantage in ADAS applications compared with digital signal processing; by supporting parallel processing, FPGAs can enable faster responses to potential hazards and changing conditions. And FPGAs are typically comparable to or lower in power consumption than application-specific standard products (ASSPs) when used for complex processing in multi-input and output systems such as ADAS.
Future autonomous vehicles will rely on real-time communications between vehicles. FPGAs are expected to be helpful in these and other communications applications.
Software-defined radios and FPGAs
Advanced software-defined radio (SDR) applications benefit from a combination of FPGAs and digital signal processors (DSPs). In an SDR, the DSP can be external to the FPGA but is often embedded in the FPGA as a functional block or core. SDR technology supports emerging wireless protocols for wideband, ultra-wideband, and complex MIMO antenna configurations, including emerging 5G systems. FPGAs are used to connect high-speed peripherals such as wideband A/D and D/A converters, digital receivers, and communication links to programmable processors in real-time.
FPGAs are also well-suited for diverse timing functions, such as the synchronization needed by SDRs. And data formatting functions such as serial-to-parallel conversion, data packing, multiplexing, packet formation, and time stamping are efficiently performed using FPGAs.
Low-power SDR designs can also be implemented using FPGAs. With embedded DSP cores, parallel logic processing, and memory cores, FPGAs can support advanced wideband communications in low power portable and battery-powered SDRs for military, public safety, and commercial wireless networking.
While they are low-power, FPGA SDRs can be high-performance and include: advanced wideband waveforms such as OAM and OFDM modulation protocols; embedded encryption and decryption logic providing flexible and field upgradable advanced encryption engines; high-speed wireless data modems; and multiple SDR IP cores including packet processors, and application layer processors.
From aviation to medical systems
Military and commercial aviation equipment often uses commercial off-the-shelf (COTS) FPGAs to save time and cost while delivering high reliability. In aircraft designs, minimizing weight is a critical consideration, and it of often impractical to have a separate device for every function. Allocation of functions between multiple modules can provide fault-tolerance and improve reliability. In the case of military aircraft, relatively insensitive maintenance and other data are processed by the same subsystem as more sensitive data such as targeting information. The ability to allocate functions and provide separation of logical modules in an FPGA is a common practice. It protects sensitive data at the same time that it provides a level of fault tolerance.
Manufacturers of medical equipment, automotive systems, and industrial equipment can also benefit from FPGAs’ flexibility, cost-effectiveness, and obsolescence-mitigating benefits. The advantages of FPGAs in these and other systems can include:
- Use of FPGAs avoids the non-recurring engineering expenses and minimum ordering requirements compared with custom ASICs
- Time to market is faster and less risky compared with ASIC development cycles
- The ability to integrate application-specific IP or hardware cores can enable further cost reductions and product differentiation
- Systems can be adapted to multiple industry standards or protocols and can be updated as those standards and protocols evolve
- Systems and functions can be reprogrammed during the design process and after the equipment is in the field.
Industrial Ethernet and FPGAs
The Ethernet POWERLINK protocol implemented with FPGAs can be used to enhance industrial automation systems. POWERLINK is an open-source protocol managed by the Ethernet POWERLINK Standardization Group (EPSG). POWERLINK can be implemented purely in software, but time-critical tasks can be moved to dedicated hardware such as FPGAs to reach maximum performance.
Using FPGAs to implement the Ethernet POWERLINK protocol can provide system flexibility and high performance for a low cost. Using an FPGA, there are several options for implementing the protocol. Basic choices include the possibility of a one-chip solution with the application processor embedded in the FPGA, or the processor can be external, providing the possibility of higher performance. It is also possible to embed additional functions in the FPGA, such as motor controllers or programmable logic controllers, further reducing system complexity and lowering costs.
FPGAs can be optimized for use in various applications and can contribute to higher system performance and lower costs. But using these complex devices has a significant impact on the design process. The next (third) FAQ in this series will consider how FPGAs impact the design process. The fourth and final FAQ will delve into system integration challenges with FPGAs.
Ethernet POWERLINK, Ethernet POWERLINK Standardization Group
FPGA-based security solutions, Intel
Image Processing Using FPGAs, MDPI
Intel Vision Products Deep Learning Inference Acceleration, Intel