Top 7 considerations when selecting FPGA
Field Programmable Gate Arrays (FPGAs) are powerful and flexible devices. They combine custom-designed performance with reprogrammability, even after the system is in service. As a result, FPGAs are increasingly used in systems ranging from Mars rovers to fighter jets, from communications and automotive systems to a growing number of embedded applications. In this article, we’ll discuss Top 7 considerations when selecting FPGA.
It begins by introducing two “generic” applications of FPGAs for various end-use systems; security/encryption usage and image processing. It will consider specific opportunities for using FPGAs in automotive, aerospace, medical and industrial systems. One of the factors driving FPGA adoption is the increasing availability of specific cores for embedded applications. For most of the applications discussed below, predefined kernels already exist. Examples include cryptographic IP cores, DSP cores, image processing cores, communication (and software-defined radio) cores, 5G/MIMO cores, powerline communication cores, industrial and automotive Ethernet cores, and more.
Security can be a complex issue when using FPGAs. It consists of a combination of FPGA-specific security concerns and application-related concerns. First, intellectual property (IP) theft from foundries is often a serious problem for custom ICs. FPGAs solve this problem because sensitive IP is often not loaded into an FPGA until it is delivered. Additionally, the FPGA can use bitstream encryption to protect IP that has been loaded onto the FPGA or external memory. But more work needs to be done to secure FPGAs and end applications.
1. Encrypted FPGA
Software-based encryption protocols are the basis for many security features. There is a trend to replace these software-based approaches with security solutions embedded directly into hardware, especially for critical systems and embedded applications. The sophistication of software-based security is problematic because it presents a large “attack surface” that is not easy to defend against determined intruders.
Using FPGA-based hardware-based security applications can address many of the shortcomings of existing software-based implementations. The inherent programmability of FPGAs enables continuous bug fixes and security updates to be efficiently performed as needed, even after they are in the field.
Also, cryptographic applications require a lot of operations, which makes it 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 the FPGA can be implemented in parallel to further improve performance.
FPGA-based cores for MD5e, SHA-2, and other cryptographic functions benefit from the ability to perform bit-level operations. The public key system and intrusion detection functions are built using FPGAs. A variety of encryption and security applications take advantage of the inherent speed and flexibility of FPGAs.
2. Image processing with FPGA
In real-time image processing applications, FPGAs bring the advantages of low latency and low power consumption. For example, a smart camera with an embedded FPGA can perform image processing in real-time as the image is streamed from the sensor. The camera provides a stream of processed data rather than a series of images. The inherent parallelism of FPGAs can handle both the spatial content (data level) and the temporal content (task level) inherent in image processing.
For best performance, software needs to be optimized specifically for FPGA image processing. Existing image processing algorithms are often optimized for serial processors and cannot take advantage of the inherent parallelism capabilities of FPGAs.
FPGAs can enable intelligent video surveillance systems to analyze images in real-time and identify potentially suspicious activity. Such a system can be implemented using a series of IP cores: an image processing core for processing video; a computer vision core for analyzing image data; and an encryption-based communications core for sending data to a central location, where There it can be further analyzed and acted upon by a human operator.
FPGAs can be used to implement a range of image processing functions, including filtering, segmentation, compression, clustering, and more. Applications are broad, including autonomous vehicles, traffic sign recognition, tissue image analysis in medical systems, robotics and intelligent vision systems, video compression and encryption, and more.
3. FPGA AI and Image Processing
FPGAs are not only used for image processing, but are also increasingly used in various artificial intelligence (AI) and machine learning (ML) applications. Image processing is just one example of applying FPGAs to AI. They bring high performance, flexibility and scalability to deep learning and machine vision systems.
As software-defined devices, FPGAs provide continuous performance optimization without any hardware changes. Compared to other devices, FPGAs can be updated to the latest machine learning algorithms, making them “smarter”.
When used for deep learning inference, FPGAs can quickly process large amounts of information with low and consistent power consumption. They can also provide low latency in a variety of applications including machine vision and lidar, and are inherently future-proof and capable of supporting new processes and applications with relatively simple field upgrades.
4. 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 more. The flexibility and speed of FPGA processing can handle large numbers of sensors and other inputs for motion estimation, object recognition, and image enhancement, and implement appropriate operations. Importantly, the sensor and image processing functions are available as hardware cores or software cores. This speeds time to market and enhances functionality.
FPGAs have important advantages in ADAS applications compared to digital signal processing; by supporting parallel processing, FPGAs can respond more quickly to potentially hazardous and changing conditions. When used for complex processing in multiple input and output systems such as ADAS, FPGAs typically consume the same or less power than Application Specific Standard Products (ASSPs).
The self-driving cars of the future will rely on real-time communication between vehicles. FPGAs are expected to help with these and other communications applications.
5. Software Defined Radios and FPGAs
Advanced software defined radio (SDR) applications benefit from the combination of FPGA and digital signal processor (DSP). In SDR, the DSP can be external to the FPGA, but is usually embedded in the FPGA as a functional block or core. SDR technology supports emerging wireless protocols for broadband, 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 various timing functions, such as synchronization required for SDR. And using FPGAs, data formatting functions such as serial-to-parallel conversion, data packing, multiplexing, packet formation, and time stamping can be efficiently performed.
Low-power SDR designs can also be implemented using FPGAs. With embedded DSP cores, parallel logic processing, and memory cores, FPGAs can support advanced broadband communications in low-power portable and battery-operated SDRs for military, public safety, and commercial wireless networks.
Although they are low-power, FPGA SDRs can be high-performance, including: advanced wideband waveforms such as OAM and OFDM modulation protocols; embedded encryption and decryption logic that provides a flexible and field-upgradable advanced encryption engine; high-speed wireless data modem; and multiple SDR IP cores, including packet processors and application layer processors.
6. From aviation to medical systems
Military and commercial aerospace equipment often uses commercial off-the-shelf (COTS) FPGAs to save time and cost while providing high reliability. Minimizing weight is a key consideration in aircraft design, and it is often impractical to have separate equipment for each function. Distributing functions among multiple modules provides fault tolerance and improves reliability. For military aircraft, relatively insensitive maintenance and other data and more sensitive data such as targeting information are handled by the same subsystem. It is a common practice to distribute functionality and provide the ability to separate logic blocks in FPGAs. It provides a degree of fault tolerance while protecting sensitive data.
Manufacturers of medical devices, automotive systems, and industrial equipment can also benefit from FPGAs’ flexibility, cost-effectiveness, and reduced obsolescence. The advantages of FPGAs in these and other systems include:
- Using FPGAs avoids non-recurring engineering costs and minimum order requirements compared to custom ASICs
- Faster time to market and lower risk compared to ASIC development cycles
- The ability to integrate application-specific IP or hardware cores can further reduce costs and enable product differentiation
- The system can accommodate multiple industry standards or protocols and can be updated as these standards and protocols evolve
- Systems and functions can be reprogrammed during the design process and after the device is in service.
7. Industrial Ethernet and FPGAs
The Ethernet POWERLINK protocol implemented using 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 an FPGA, for maximum performance.
Implementing the Ethernet POWERLINK protocol using an FPGA can provide system flexibility and high performance at low cost. With an FPGA, there are several options for implementing the protocol. Basic options include the possibility of a single-chip solution that embeds the application processor into the FPGA, or the processor can be external, providing the possibility of higher performance. Additional functionality, such as motor controllers or programmable logic controllers, can also be embedded in the FPGA, further reducing system complexity and cost.
That’s all for this article on 7 important things to look out for when choosing an FPGA. FPGAs can be optimized for a variety of applications, helping to improve system performance and reduce cost. But using these complex devices can have a significant impact on the design process. If you have any questions about FPGA or have doubts about purchasing electronic components and electronic chips, please contact our senior technical engineers, and we will solve your problems as soon as possible.