Is FPGA Design Coming Back in Style?
Growing out of the ASIC revolution of the 1970s came the MCU, MPU, and FPGA revolution, where host controllers were built onto a single chip filled with logic blocks and many integrated features. In 2021, some in the industry have declared that FPGAs are now the platform of choice for advanced applications. See what people are saying and where you might opt for an FPGA in your design. I’m not old enough to remember the 1970s, a time when ASICs were making their way into the market and ultimately aiding greater levels of integration and form factor reduction. The legacy of ASICs continues to this day, and popular manufacturers still offer a broad range of chips that perform specialized functions with a small footprint. Some of the tasks that would have been very difficult to implement in general-purpose programmable logic were suddenly easy to implement when those functions were built into an ASIC with specialized logic or dedicated features. Early in the same decade, microcontrollers were introduced by Intel, giving designers everything they needed to build more integrated systems rather than relying on discrete logic circuits.-
After ASICs and MCUs came field-programmable gate arrays in 1984, with the first component introduced by Xilinx. Early on, ASIC designers were using FPGAs to emulate the logic they intended to implement in their ASIC designs as a sort of test platform. As time went on, FPGAs were implemented in more production hardware, either as a complement to typical ASICs or to implement specialty logic functions that weren’t available in other processors or ASICs. The number of interfaces available on FPGA platforms has also expanded to the point where an FPGA can be used as the host controller for any embedded system.
Today, FPGA design continues to be popular among experienced embedded developers, and the projected growth rates in the global FPGA market range from 6.4% to 10% CAGR over the next 6-7 years. Just for reference, the top-end estimate is on par with the 10.1% projected CAGR in the global MCU market. The question for the embedded designer is, what’s driving the popularity of FPGAs compared to other platforms, and should an FPGA be your starting point for a new design? We’ll look more at these questions while comparing some system architecture options for a new embedded system.
What’s Driving New FPGA Designs?
FPGAs have always been popular in a few broad cases thanks to their adaptability, as was discussed in an earlier article on this blog. Some of the high-level areas where FPGAs were traditionally successful include:
Implementation of specialty logic in compact platforms, which would normally need to be implemented using slow sequential logic in MCUs
Application areas or products where time to market is critical due to the long development time for ASICs
Any application requiring hardware virtualization or emulation
Any product that might require fast reprogramming without connecting to an external system
If you’re not familiar with FPGA design and programming, but you know some of the basic ideas that govern FPGA operation, then the above list shouldn’t be surprising. These are rather broad areas to consider, but they translate into real applications in several industries.
FPGAs vs. MPUs/MCUs and ASICs
You’ll notice above that I’ve spent a lot of time referencing ASICs as the main competitor to FPGAs. Indeed, the huge range of components allows embedded developers to mix and match their MCU, specialty functions with ASICs, and low-speed peripherals or interfaces. FPGAs carry several advantages in different areas, and it’s worth comparing all these options as they pertain to an embedded system.
From the above list, it should be clear the role FPGAs can play: adaptable host controllers for embedded systems that are application and OS agnostic. An FPGA design gives the additional advantage of upgradeability, as long as the board and system design can accommodate these changes. Once we look at some newer applications in industry, it should be clear why FPGAs are more popular today, with their popularity only expected to grow into the near future.
Major Industry Users
There isn’t a single product category that has been traditionally responsible for FPGA consumption. Since they were first introduced, the major industry consumers of FPGAs include telecom systems, mil-aero, automotive, lightweight consumer products, and even the oil and gas industry. In fact, some of the original technology that would become FPGAs was originally developed under Zilog, a subsidiary of Exxon whose IP was later acquired by Xilinx.
As FPGAs have gained popularity, the focus has shifted into other industries that require specialty logic implemented directly on a single processor, despite the huge number of ASICs from many vendors that might cover the same designs. As an example, many mezzanine card and daughter card products in the mil-aero market use FPGAs as an adaptable embedded computing platform that provides extremely fast data rates with access to multiple peripherals and cards via a backplane. Telecom and networking remain one application area with widespread FPGA design and development due to the faster required time to market and the relative ease of upgrades to accommodate changes in standards and technology rollouts.
FPGA Design and Development Today
The areas highlighted above haven’t seen a decrease in FPGA usage. Telecom is one area to highlight; as an example, Huawei is one of the world’s largest consumers of FPGAs, and they even market an “FPGA cloud” platform, offering accelerated cloud computing as a service. There is even a Huawei Cloud GitHub repository to help users get started with application development. THe use of FPGA in their infrastructure has also contributed to their ability to roll out 5G services before other telecoms. Today, the same advantages identified above are pushing FPGA design and development into two areas: robotics and AI. While the two areas are deeply linked, AI is arguably a much bigger driver of new FPGA design and development.
AI is Driving FPGA Design and Usage
Leaders in the FPGA space project that implementation of AI in more hardware systems will drive major changes in silicon usage on these components. This isn’t to say that you can’t use an MCU in robotics or lightweight AI; the proliferation of AI accelerator modules that connect via USB or a PCIe bridge illustrates an effort to accommodate MCU/MPU developers for intelligent embedded systems. However, FPGAs are a much more adaptable platform where inference calculations can be performed very quickly by parallelizing computation; the FPGA fabric can be customized to fit the algorithm, whereas sequential logic in GPUs/MCUs/MPUs cannot.
One newer component that is being used in high-compute embedded systems, including systems implementing on-board AI inference, is the Zynq-7000 All Programmable series SoC from Xilinx. This component runs up to 866 MHz with an ARM Cortex-A9 core-based application processor. Additional interfaces like gigabit Ethernet, DDR, Flash, PCIe, and high GPIO count make this component easy to integrate into edge compute systems. Low-speed interfaces like I2C and SPI also allow the Zynq to operate with ASICs that capture data from analog sensors or other standard interfaces (CANBus, RS-485, etc.).
Xilinx is one of the leaders in AI on FPGAs, and they provide plenty of developer resources. One interesting development with the Zynq processor is the implementation of Python on Zynq, or PYNQ as Xilinx calls it. Other FPGA vendors are building out their product lines to compete with Zynq, so embedded AI developers will have plenty of options for on-device AI compute using an FPGA design.
Challenges in Using FPGAs
FPGAs are great platforms for the experienced developer who is working in more advanced application areas. When the standards landscape, ASIC solutions landscape, and MCU/MPU capabilities are lacking or rapidly changing, an FPGA is probably a better option for a new system. Although FPGAs have enabled success in a range of areas, they carry their own set of hardware and development challenges:
Heat management: Just like their MCU/MPU cousins, FPGAs can be significant generators of heat, depending on the size of the component. This is not a new challenge, although it is compounded by design requirements in compact, high-compute systems like edge computing, or in high-power 5G equipment. Some of my clients have looked at heat dissipation strategies involving unique heat sinks or bonding to the enclosure in these systems.
Place and route: In high-compute applications, there is still a challenge with place and route tasks, where proprietary vendor software gets mapped onto the FPGA fabric. This takes time as compiler software has to use an algorithm to find a mapping that supports all logic functions in the applications. The application areas where this is a challenge are high-performance computing and data centers. This could also be problematic in AI when an FPGA is used for system-level tasks in addition to inference/training.
Development resources: The FPGA developer community is not nearly as large as the ASIC + MCU community, or the open-source software community as a whole. MCUs are easier for inexperienced developers to start using thanks to hugely popular platforms like Arduino and ESP32. However, FPGA vendors have gotten much better at providing resources to developers so they can quickly implement solutions on FPGAs. The numbers of new FPGA projects on GitHub have also kept pace with MCU projects, as shown in the table below.
What Will FPGAs Look Like in the Future?
Current FPGAs allocate approximately 50% or more of the silicon area to IOs as older FPGA-based products required interfacing with a huge range of peripherals over multiple interfaces. As the focus shifts more to high-compute applications like AI, don’t be surprised when more silicon area is dedicated to AI-compute blocks, possibly with evolving interconnects and flexible data movement at runtime. Heterogeneous integration will also filter into FPGA SoCs, where AI blocks, GPUs/TPUs, high-bandwidth memories, and RF front-ends are combined into a single compact package.
Even though FPGAs can have ASIC features implemented and reprogrammed in the FPGA fabric as needed, they are still an excellent complement to ASIC-based systems. One design architecture that makes sense is to place all features that may require upgrades into the FPGA, while using the standardization of ASICs to interface with simpler peripherals like sensors and data buses. This certainly reduces FPGA design time as developers can focus on perfecting the high-compute features that are needed in the end product. If you want to use this type of architecture in intelligent embedded systems, you’ll likely
ORIGINAL TOPIC FROM OCTOPART