SoC FPGA application design challenges, risks, and solutions
When you’re ready to start designing a new high-performance product you may be considering using an integrated solution such as Xilinx Zynq MPSoC or Intel SoC FPGAs. It’s important to consider the challenges and technical risks that come with these solutions.
In this article, we’ll discuss how to overcome challenges and minimize risks for projects using high-end versions of SoC FPGAs.
We’ll use the Xilinx Zynq UltraScale+ MPSoC family as an example to explain what FPGA SoCs are. In a single device, these products integrate an FPGA programmable fabric with a processing system (PS) that includes a 64-bit quad-core or dual-core Arm® Cortex™-A53 and a dual-core Arm Cortex-R5. Also included in high-end versions are an ARM Mali™-400MP Graphics Processor, H.265/264 Video Codec Unit, multiport external memory interfaces and a rich set of peripheral connectivity interfaces.
Designing applications that take advantage of the features and flexibility provided by SoC FPGAs requires an understanding of their complexity and the challenges that must be considered in early planning stages.
4 challenges engineers face when designing SoC FPGA applications
SoC FPGA manufacturers generally provide reference solutions, complete and accurate documentation and offer technical support; however, the devil is in the details.
Below are 4 challenges that engineers should be prepared for when designing SoC FPGA solutions, and how to mitigate technical risks.
1. Power Management
Often overlooked, power management is probably one of the most critical parts of the design that requires special attention to ensure a reliable and robust design in production.
Technical risk: SoC FPGA solutions commonly need more than 12 power rails, each having requirements such as load steps, slew rate, voltage limit, noise, sequencing, etc. And, different power architecture options allow for trade-offs between performance and flexibility.
Risk mitigation: To maximize your chances of success, you must take time to design and validate power management and rely on power solutions that have been previously qualified. If you need to accelerate your development schedule, you can partner with designers who have extensive expertise and have already worked with SoC FPGA power management solutions.
2. Moving Data Between the FPGA Fabric and the System Processors
SoC FPGAs contain multiple interconnect interfaces with configurable data bus sizes, dedicated interfaces to some peripherals, address translation, traffic QoS, etc.
Technical risk: Moving data between the FPGA fabric, the host processor memory, and the various peripherals of each system is complicated.Interconnect interfaces must be configured properly to work under all system conditions and configurations.
Risk mitigation: If the product you want to design needs to move a lot of data between different interfaces quickly, it is critical that you have a well thought-out, solid approach. You could end up with serious performance limitations if you rush or lack expertise. Consider reaching out to multi-disciplinary experts who have faced similar challenges and are able to confidently recommend end-to-end solutions.
3. Operating Systems (OS) for Safety Critical Applications
Industries where functional safety is paramount frequently require the use of RTOS (e.g. QNX, Nucleus) and development tools specifically designed for safety-critical applications. Industrial, aerospace, medical, automotive and automotive industries will often have this requirement.
Technical risk: To deploy a solution quickly, designers may try to take advantage of a reference framework based on Linux Operating System (OS). It’s possible to deploy a different OS on different cores to take advantage of the benefits of each of them. An example of such an application would be to use three cores to run an RTOS responsible for all safety-critical software aspects while a fourth core could be running Linux to provide networking services such as WiFi or TCP/IP stacks to communicate with the outside world.
To design safety-critical applications, it is essential to properly architect the different software components since several resources can be shared between the different cores.
Risk mitigation: In-depth knowledge of the different SoC resources (memory, interrupt controller, peripherals, FPGA fabric) as well as the functionalities and configurations of each OS is needed to design these solutions.
4. Signal Integrity
SoC FPGAs have several high-speed interfaces to move large amounts of data quickly, from SERDES links running at more than 25Gbps to DDR-4 memory interfaces, operating at 2666MT/s.
Technical risk: If you do not take enough time to ensure the signal integrity of your PCBs, you may waste a lot of time troubleshooting afterwards.
Risk mitigation: Analyze signal integrity using simulation tools capable of accurately modeling PCBs, electronic packages, and interconnects. Ensure that your design has enough margin over process, voltage and temperature variations.
Mitigating risks when designing SoC FPGA solutions
Mitigating risks requires a top-notch multi-disciplinary R&D team.
Is power properly managed for reliable production?
Will your solution will quickly move data between different interfaces without latency and throughput issues?
Are the different software components of a safety-critical application properly architected?
Can you properly analyze signal integrity?
Before starting an SoC FPGA project, ensure that your team has the expertise and confidence to overcome these challenges and more.
For help with certain aspects of your SoC FPGA project or to learn more about these types of solutions, contact us.
Using FPGAs for demanding applications
Wherever you see incredibly fast, leading-edge technology like autonomous driving, electronic trading, and satellite communications, look for FPGAs. The processing capabilities, massive bandwidth, and energy efficiency of FPGAs is allowing designers to create increasingly high-performance solutions for many market segments and industries.
In this article we’ll explore what you need to know about deciding when and where to use FPGAs:
In December 2015, Intel bought Altera for $16.7B making it its largest acquisition ever
Microsoft is now using FPGA in its data centers
Amazon is offering FPGAs on their cloud services
The global FPGA market in 2019 was valued at $9B and is projected to grow near 10% CAGR over the next 7 years.
The January 2020 article Could FPGAs Outweigh CPUs in Compute Share? from nextplatform.com says, "According to Xilinx CTO, Ivo Bolsens … FPGAs won’t just gain incremental momentum, they will put the CPU out of work almost entirely. ‘In the future you will see more FPGA nodes than CPU nodes. The ratio might be something like one CPU to 16 FPGAs,’ Bolsens predicts, adding that it’s not just a matter of device numbers, ‘acceleration will outweigh general compute in the CPU."
Pros and Cons of FPGAs
When an application requires a lot of information to be processed quickly, FPGA solutions offer higher performance compared to standard CPUs. Although the use of standard CPU platforms is still the most flexible option, in some demanding applications the use of FPGA solutions is fully justified.
The main reasons for using FPGAs instead of CPU-based solutions are:
Low Latency FPGAs can compute and process data extremely rapidly.
Throughput FPGAs have massive I/O bandwidth and can continuously process huge amount of data thanks to their parallelism capabilities.
Flexibility FPGAs are used to execute algorithms at hardware-level processing speeds with the flexibility to change the algorithms in milliseconds.
Energy efficiency In some applications, FPGAs will provide some significant energy savings over traditional CPU-based solutions.
How do FPGAs deliver such high performance? As explained in The Principles of FPGAs on electronic design.com, "Unlike processors, FPGAs are truly parallel in nature. Each independent processing task is assigned to a dedicated section of the chip. Therefore, the performance of one part of the application is not affected when more processing tasks are added."
Spider chart comparing CPU and FPGA
Despite all the advantages, there are factors that limit the use of FPGAs on a larger scale:
Cost FPGA solutions are still generally significantly more expensive than solutions based on standard CPUs.
Limited developer resources It can be difficult to program FPGAs using RTL languages (Verilog, VHDL) given the limited number of developers possessing this expertise.
The High-End FPGA Showdown series (part 3 Design Tools – Where it All Begins) on eejournal.com states, "Engineers with software-only backgrounds often fail to appreciate the complexity involved in using these devices and the long learning curve required to gain enough proficiency to use FPGAs near their capability…Taking full advantage of FPGAs requires digital logic to be designed, and, despite decades of progress, we are not yet at the point where FPGAs can be optimally used without at least some degree of hardware expertise in the design process."
To overcome these challenges, the two main FPGA manufacturers, Xilinx and Intel, are trying to democratize access to FPGAs by offering design tools that allow FPGAs to be programmed using more standard programming languages, such as C, C++ and Python, accessible to a larger pool of developers.
And, there is a growing ecosystem of solutions available that allow developers to accelerate development times without having to reinvent the wheel. Some vendors now offer complete framework solutions that integrate multiple FPGA modules (cores) along with software drivers and libraries enabling system developers to focus their development on their applications and differentiators.
How different industries are using FPGAs in high-performance applications
FPGAs have been deployed at massive scale in data centers, military and aerospace applications, telecommunication infrastructure, healthcare, and now in ADAS and autonomous vehicles.
Which applications are best suited to use FPGAs? We’ll provide a few examples for each of these key verticals:
The aerospace and defense market is generally less sensitive to cost compared to consumer applications, making FPGAs even more likely to be adopted by manufacturers in this segment.
Examples of Aerospace & Defense FPGA applications:
Phased array RADAR and satellite communication systems must be capable of processing and computing an enormous quantity of data in real time, which makes them ideal examples of good uses of FPGAs. Phased array technology uses an arrangement of antenna elements where the relative phase of each element is varied to steer the radiation pattern. This architecture requires massive I/Os bandwidth as well as high-performance Digital Signal Processing (DSP) capabilities, which can only be realized using a hardware solution such as FPGA.
Missile guidance systems and other military applications use FPGA for low latency.
Electronic warfare systems and secure communication systems such as network encryptors and wireless radios use FPGA technologies to take advantage of high throughput processing capabilities and re-configurability.
As we enter the 5G communication era, the next generation of wireless technology will present huge opportunities for businesses, industry, and consumers.
We’re seeing 5G communication offering multiple capabilities, including
ultra-fast data rates
massive device connectivity
To overcome complex technical issues and continuously evolving standards, Xilinx’s latest FPGAs (Versal™) have been used by Samsung to build a universal, flexible, and scalable platform that can address multiple operator requirements. In this example, FPGAs are used to provide
low latency performance
optional re-programmability as the 5G radio standards evolves and new features gets released
In the long run, manufacturers of 5G commercial base stations are likely to eventually replace FPGA devices by converting them into ASIC devices. Such conversions will generally provide power consumption improvement and huge cost reduction savings for commercial base station manufacturers.
Data Centers (Hardware Acceleration)
Using FPGA for hardware acceleration in data centers has gained a lot of traction recently. Hyperscale customers are increasingly adopting FPGA to cope with increasingly complex workloads across compute, storage and networking applications.
Here are a few emerging applications that take advantage of FPGA in data centers to accelerate their workload:
Financial technology Tick-to-trade electronic trading, market data processing, pre-trade risk checks, smart order router
Network acceleration Encryption, compression, deep packet inspection, virtual switching and routing
Video and imaging Video transcoding, live streaming, image processing
High Performance Computing Genome sequencing, scientific simulations, machine learning
Achieving maximum throughput and ultra-low latency performance while having the flexibility to reconfigure the hardware is paramount for financial technology and network acceleration applications. Video, imaging, and HPC applications leverage FPGA technologies for their high throughput, power consumption efficiency and re-configurability to adapt to evolving workloads.
Automotive - Advanced Driver Assistance Systems (ADAS) and Autonomous Driving (AD)
Automated driving systems require the highest level of safety to fully enable the new world of mobility. Automotive-grade FPGAs and MPSoCs (FPGAs with Embedded ARM processors) deliver high performance and low latency to enable safety-critical functionality in the new era of Autonomous Driving.
The various sensors in vehicles generate massive amounts of data, all of which must be merged into a single data pipe for real-time processing. The data aggregation, pre-processing and distribution capability of FPGAs and MPSoCs helps improve AI processing by merging sensor data and efficiently preparing it for vehicle control.
Thanks to their I/O bandwidth, massive computing capabilities, low-latency performance, and reconfigurability, automotive-grade FPGAs and MPSoCs are ideal for implementing ADAS and AD functionalities.
Key examples of Automotive FPGA and MPSoC solutions:
Automated Valet Parking (AVP) In December 2019, Xilinx announced that their MPSoC will be used in Baidu’s Apollo Computing Unit (ACU) for sensor fusion and deep learning inference processing required to handle the complex driving environment of AVP.
Advanced Driver Assistance Systems (ADAS) Subaru has selected Xilinx’s automotive qualified MPSoC for their next-generation vision-based advanced driver assistance system.
LiDAR solutions with 3D data imaging Multiple startup companies are also using FPGAs and MPSoC to develop automotive LiDAR solutions that can deliver accurate, real-time 3D data imaging.
Artificial intelligence and machine learning technologies are contributing to smarter, more efficient and effective solutions for the healthcare industry. The quantity of data, calculations, and images that need to be processed quickly make high-performance FPGA applications ideal for medical solutions.
Examples of Healthcare FPGA solutions:
Imaging High resolution image processing in real time is used in scanners, diagnostic machines, and other essential medical equipment.
Vision Systems Reliable vision systems are critical for surgical solutions including robotic assistance.
Monitors Fast response time and reliability make monitoring devices such as automated external defibrillators and clinical defibrillators more efficient and accurate.
High Performance Computing As noted in the Hardware Acceleration section of this article, genome sequencing, scientific simulations, and machine learning all benefit from FPGA performance.
Additional benefits that FPGAs offer to medical solutions are security and the ability to update functionality. The wired.com article Most Medical Imaging Devices Run Outdated Operating Systemssays, "health care providers can make updatability a major priority in procurement to push manufacturers toward more flexible designs."
When to Use FPGAs or CPUs
To take advantage of the performance of the FPGA and the flexibility of the CPU, some products combine both. An example would be to use an FPGA to continuously process, at full line rate, millions of packets per second by decoding each packet and extracting meaningful information that can be effectively presented to multiple Virtual Machines (VM) running on CPUs. Software solutions can then be deployed on CPUs to enable detailed analysis of the data collected to extract higher level information that can be presented to the end users.