As FPGAs Make a Comeback, Should You Use One in Your System?
FPGAs are not new components, but they have started to see new attention for use in advanced electronics. Over the past few decades, the ASIC revolution gave designers access to many thousands of specialized components for almost any electronics application you can imagine. Specialty logic, precision measurement, bridge and interface conversion, specialized signal processing accelerators, and RF/analog components have targeted just about every application you can think of.
There is nothing wrong with ASICs and no one is suggesting you should not use them. However, it’s starting to become evident that the standard processing architecture implemented with combinational/sequential logic is unsustainable and inefficient for advanced applications. Field-programmable gate arrays (FPGAs) may offer an alternative approach to systems development, bringing with them several benefits not seen with traditional components. If you’re designing a new system that requires significant processing power, particularly in applications where SoCs and accelerators do not exist, you should consider using an FPGA.
Not all designers are familiar with FPGAs and how they can create some important advantages in an advanced embedded system. FPGAs implement a unique reconfigurable architecture not found in conventional processors that implement sequential + combinational logic. The internal gate structure of FPGAs means they can be programmed as specialized application processors for dedicated computational tasks.
FPGAs are constructed using logic blocks. These logic blocks are configurable in your application and nearly any logic can be instantiated in these logic blocks. This means that logical functions can be implemented in parallel as needed, or specialty logic can be dedicated to compute-intensive algorithms directly on silicon. Other processor architectures do not have this capability, instead relying on sequential + combinational logic to execute program instructions.
Example FPGA system architecture used in Xilinx FPGAs. CLBs (combinational logic blocks) are used to instantiate specialty logic. [Source]
This type of processor architecture gives embedded systems with an FPGA many benefits:
Dedicated processing: Logic blocks in an FPGA are solely dedicated to executing logic operations. They do not rely on translating programming instructions into logic operations with a general-purpose architecture. The result is lower power consumption for the same level of compute density as would be found in another type of processor.
Reconfigurability: The architecture implemented in an FPGA can be reconfigured later with the semiconductor vendor’s development tools, so systems with FPGAs can be future-proofed to some extent. Rather than updating an embedded firmware application, the silicon on the device is being reconfigured directly without swapping for a different component.
Flexibility: Logic blocks in an FPGA are programmed to match any digital logic operation you can develop in the vendor’s tools, so any functional logic found in an ASIC can be implemented directly in the FPGA silicon. A systems designer can reduce component count by implementing peripherals directly on silicon rather than placing them as external components.
Parallel processing: The initial architecture in an unprogrammed FPGA can be configured to have multiple logical processing flows in parallel. Multiple advanced algorithms can be implemented on a single device through instantiation on silicon. In a standard processor, this would require multiple cores or a multiprocessor architecture.
Hardware level security: By eliminating peripherals and instead instantiating logical operations directly on silicon, data is not being exposed outside the device. Processing on FPGAs is much more secure than processing with a coprocessor architecture or by sending data to external peripherals.
In summary: if you want to implement multiple high-compute operations (including parallelized algorithms) on a processor and you want to ensure minimal power consumption with lowest latency, then an FPGA offers the most powerful approach. In addition, if you need to do the same tasks but you don’t want to build custom silicon or an SoC, an FPGA is still the best approach. Once you’ve decided that an FPGA is the best processor for your embedded system, it’s important to see how it fits into the compute architecture for your product.
System Architecture With FPGAs
FPGAs can be used in multiple ways in advanced applications as the main processor, peripheral processor, expansion component, accelerator, or integrated as a processor block on silicon:
- As the main compute element; large FPGAs can be used to instantiate the entire compute architecture in silicon, including network interfaces; this reduces the total system component count and size.
- As an on-board peripheral or accelerator, where individual ASICs and application functions can be instantiated on silicon rather than with external components.
- As an expansion component, where the FPGA is used as a reconfigurable application processor placed on an expansion card. This expands the capabilities of an existing system into new areas and brings FPGA-driven processing into conventional architectures.
- As a peripheral in the main processor package (as a die in SiP, or as an accelerator block in an SoC); commercial products from major semiconductor vendors are already coming to market that take this approach.
The final point above is probably the most flexible of all the chipset options. It allows a standard approach to computing and application deployment to be implemented, but the FPGA block can be highly specialized to specific tasks required in the network. This reduces component count and system size, although it requires some specialized development. Some examples of these tasks include AI compute, image/video processing, sensor data acquisition, edge computing data centers, and much more.
Usage combinations with CPUs, GPUs, and FPGAs.
Once you’ve decided to use an FPGA as the main compute element in your next embedded system, it’s time to create a PCB for the system.
- A base board that supports an evaluation module
- A base board that supports a 3rd party SOM
- An individual board that includes one or more FPGAs
As FPGAs begin to dominate in advanced areas, we will start to see more reconfigurable FPGA-based accelerators included directly on-die in new application processors. Currently, semiconductor vendors are taking the multi-die or system-in-package approaches, but OEMs making their own semiconductors would be wise to consider integration of FPGA blocks into their SoCs.
If you’ve decided an FPGA is the best path forward for your system, make sure you have the best design, layout, and routing utilities in Allegro PCB Designer from Cadence. Only Cadence offers the best PCB design and analysis software that includes industry-standard CAD tools, powerful routing features, and much more. Cadence also has FPGA system floor planning and development tools to help ensure FPGA design success.
Subscribe to our newsletter for the latest updates. If you’re looking to learn more about how Cadence has the solution for you, talk to our team of experts.