What Is a Field-Programmable Gate Array (FPGA)?

These unique pieces of hardware can be programmed to perform almost any function.

Written by Brooke Becher
a blue and green FPGA
Image: Shutterstock
UPDATED BY
Brennan Whitfield | Aug 08, 2024

An FPGA, or field-programmable gate array, is an integrated circuit (IC) that can be programmed and reprogrammed by end users after manufacturing. It can be configured to perform almost any function in parallel, offering unmatched flexibility at optimal performance speeds.

FPGA Definition

A field-programmable gate array (FPGA) is a highly modular chip that can be programmed and reprogrammed by an end user after manufacturing to perform almost any function.

What Is an FPGA?

Field programmable gate arrays (FPGAs) are chips designed to be modified “in field” by customers after they have been manufactured. As part of the programmable logic device family, these semiconductor devices allow end users to define a chip’s digital circuitry on a hardware level via software. So while most other chips come with a fixed, built-in function, FPGAs are made up of configurable logic blocks (CLBs) and interconnects that can be programmed — and reprogrammed — to perform nearly any task.

FPGAs are known for their versatility and customizability, which are determined by the end user rather than a manufacturer. They excel in applications requiring parallel processing and high-speed data manipulation, and are used in everything from telecommunications to aerospace.

“FPGAs are not something new, but their adoption for new use cases has driven the adoption and development of many new hardware platforms,” James Lupton, chief technology officer at hardware manufacturer Blackcore Technologies, told Built In. “This generally allows developers to make decisions on the best tool for the task at hand, rather than being limited by typical software-based applications.”

Related ReadingWhat Is a Superconductor?

 

Why Use an FPGA?

FPGAs can be programmed to do almost anything. They offer a performance advantage in situations when a system’s logic may change or quick iteration is needed.

“FPGAs are extremely suitable for applications where the requirements are not well defined at the beginning or are rapidly changing,” Jan Marjanovič, senior FPGA engineer at Atom Computing, told Built In. As such, they’ve become essential to building modern physics experiments, including particle accelerators, quantum computers and telescopes, he added.

FPGA chips are particularly useful for executing very specific tasks where manufacturers are not developing a dedicated chip for such purposes. While other chips may run faster, their functions are carved into their silicone hardware and cannot be easily changed.

Additionally, FPGAs offer unmatched flexibility as well as parallel processing capabilities, making them a fair trade-off for highly tailored projects.

“No other type of device can match FPGAs in terms of latency and determinism while providing the flexibility to change a design on the fly,” Marjanovič said.

Related ReadingTop Semiconductor Companies You Should Know

 

A brief explanation on how FPGAs work. | Video: Charles Clayton

How Does an FPGA Work?

When a line of code is input into an FPGA, instead of being compiled into instructions for a processor, it gets mapped into physical hardware blocks (known as configurable logic blocks) using a hardware description language (HDL).

Each of these hardware blocks consist of registers and logic gates that are programmed using small, reloadable memory units known as look-up-tables (LUTs). With the help of a routing fabric that interconnects each block, the LUTs perform simple logic operations to implement the logic gates and carry out functions as instructed by the written code. This process is kept in sync to a clocking network distributed throughout the device.

End users can manipulate code within the look-up-tables as well as the interconnects in order to create desired connections and pathways. When programmed, the FPGA effectively becomes a customized digital circuit, executing the specified logic operations and data arrays in parallel, allowing for high-speed processing and flexibility at low latency when implementing complex algorithms and tasks.

“Much like how Legos can be arranged in different ways by shifting the pieces around, so too can the logic blocks be rearranged within an FPGA,” Deane said. “Users can configure blocks and connections through software to perform those tasks, making FPGAs uniquely versatile.”

This reconfigurability enables FPGAs to easily adapt with changing requirements while maintaining optimal performance for a wide range of functions across different applications, from signal processing and hardware acceleration to embedded systems and networking.

 

Use Cases for FPGAs

Thanks to their versatility, FPGAs have found their way into a diverse range of industries, including the following:

Data Centers and Cloud Computing

Data centers and cloud computing applications use FPGAs to expedite specific tasks such as data processing, encryption and decryption, as well as machine learning inference, by implementing custom hardware accelerators.

Computer Vision Systems

FPGAs assist computer vision systems with image processing, object detection and pattern recognition. They enable real-time processing of image data in massive volumes with low latency, and are well-suited for applications like surveillance, autonomous vehicles and industrial inspection.

ASIC Prototyping

FPGAs allow application-specific integrated circuit (ASIC) designers to quickly validate and debug prototypes before committing to costly fabrication. By programming an FPGA to mimic the functionality of an ASIC, developers can test the design's functionality, performance and compatibility with external system components in a real-world environment — cutting a product’s time-to-market.

High-Performance Computing

In high-performance computing, FPGAs quicken computationally intensive tasks with custom hardware accelerators tailored to specific algorithms or workloads. This enables high-throughput and energy-efficient processing of tasks run in parallel, such as scientific simulations, data analytics and cryptography.

Aerospace and Defense

Radar signal processing, communication and electronic warfare systems all have built-in FPGAs. Their high radiation tolerance and ability to deliver secure transmissions make them an asset to the aerospace and defense sectors, where reliability, performance and real-time processing are critical.

Energy

FPGAs are used in the energy sector for tasks such as power grid monitoring, control systems and renewable energy management. Because of their custom hardware solutions, they have the ability to improve both performance and scalability of smart grid infrastructure, with maximal use of resources at low levels of power consumption.

Industrial

FPGAs enable real-time processing, customization, faster time-to-market and non-recurring engineering costs. On factory lines, these digital circuits power the sensors, actuators and various other processes that run automation and industrial robotics.

Medical

Medical imaging, patient monitoring, diagnostic equipment and therapy applications feature FPGAs, as they offer efficient data analysis, image processing, and signal filtering.

Automotive

FPGAs are actively being used to develop the cars of tomorrow. They can be found in advanced driver-assistance systems, infotainment systems and vehicle control units thanks to their ability to quickly process data in real-time and adapt to ever-changing conditions.

 

Advantages of FPGAs

For end users, FPGAs come with a notable list of perks.

Programmability

A defining characteristic of FPGAs is that they’re reconfigurable. The fact that these highly flexible hardware devices can be programmed and reprogrammed after manufacture means that they can serve virtually any purpose.

Customization

FPGAs are unique in that they allow end users to optimize hardware for tailor-made designs with specific application requirements. These ‘do-anything’ devices enable the implementation of custom logic and unique functionalities that may otherwise not be replicable with market alternatives.

Parallelism

FPGAs support parallel processing, which enables them to execute multiple tasks at once. By distributing workloads across multiple processing units, higher throughputs and increased performances can be achieved in real time with maximal efficiency at low latency. Parallel systems also benefit from enhanced fault tolerance — so if one unit fails or experiences a temporary glitch, processing can continue without interruption.

Cost Efficiency

Because an FPGA can be reprogrammed an innumerable amount of times, they can be extremely cost effective. Even though FPGAs often pose a higher upfront cost, end users no longer have to worry about costs related to bugs, tooling, updates or redesign down the line.

Quick Iteration

Given their reprogrammability, FPGAs provide end users with a way to quickly iterate and test their ideas before committing to full-scale production when developing hardware designs. Reconfigurable digital circuits ease prototyping processes for quick turnaround, reducing time-to-market as well as development costs.

 

Disadvantages of FPGAs

Even with limitless reconfigurability, the tech still faces a few drawbacks.

Complexity

Designing with FPGAs can be more complex and time-consuming compared to using industry standard processors, like ASICs. There is a steeper learning curve that requires expertise in hardware description languages, like Verilog or VHDL, which engineers must use to navigate the digital logic and design constraints of FPGA architectures.

Power Consumption

In some cases, FPGAs can consume more power compared to their application-specific counterparts or custom-designed hardware for specific tasks. This higher power consumption can limit their suitability for power-constrained environments or battery-powered devices.

“While FPGAs can sometimes be more power-efficient than CPUs,” Deane said, “they generally consume more power than GPUs, particularly in data analytics and extract, transform and load tasks.”

Higher Initial Cost 

According to printed circuit board manufacturer Hillaman Curtis, FPGAs can cost anywhere from a few dollars into the thousands. Because FPGAs are built for anything, they have more components and require more power consumption when compared to similar devices, like central processing units (CPUs) and graphics processing units (GPUs).

 

Types of FPGAs

FPGAs come in three different types: static RAM (SRAM)-based, flash-based and antifuse-based.

Static RAM (SRAM) FPGA

Static RAM or SRAM-based FPGAs use volatile static random access memory cells to store its configuration data, meaning that data must be loaded and reprogrammed each time the FPGA is powered on. This allows an FPGA to be programmed any amount of times (including in-system), though this also means data could be lost in the case of power outage or malfunction. SRAM-based FPGAs are often used for device prototyping or testing.

Flash FPGA

Flash-based FPGAs use non-volatile flash memory cells to store its configuration data, which allows an FPGA to save its data and remain live at power-up. They can also be reprogrammed in-system like SRAM-based FPGAs. Flash-based FPGAs tend to be used for applications that require instant-on functionality without having to reload configuration data at each power-up.

Antifuse FPGA

Antifuse-based FPGAs use non-volatile memory and are live at power-up, but are one-time programmable. These FPGAs can save their data when powered off, but they cannot be reconfigured once programmed. Antifuse FPGAs are mostly used for applications that require security and don’t need reconfiguration, like those in the military, aerospace and defense industries.

 

Companies Using FPGAs

Here are a few providers leading FPGA manufacturing and development:

 

BAE Systems engineers hardware and software solutions for aerospace and security applications. Its expertise extends to developing FPGAs to support cross domain solutions, or CDS, which facilitate secure connectivity for high-trust networks. For example, BAE Systems’ FPGA-powered Secure VoIP Gateway allows users on networks of varying trust levels to securely communicate.

 

AMD manufactures semiconductors and computing technologies, including FPGAs. The company’s FPGA portfolio offers multiple FPGA series, with automotive grade, defense grade or space grade specifications available. AMD also creates FPGA evaluation kits for rapid development across FPGA applications.

 

Intel offers FPGAs through its acquisition of Altera, a manufacturer of programmable logic devices. Altera FPGAs come in several series and types to meet varied design needs. FPGA design software, tools and development kits are also provided by Intel to help users throughout the FPGA design process.

 

Lattice Semiconductor specializes in manufacturing low-power FPGAs for use in communications, computing and more applications. The company sells general purpose, ultra low power, video connection and control and security FPGAs, all with a focus of reducing development time for designers.

 

Microchip is a provider of FPGA, embedded control and microprocessor solutions. It manufactures standard, SoC (System on a Chip) and rad-tolerant FPGAs for applications in aviation, automotive and other industrial industries. Additionally, Microchip offers FPGA development and design software.

 

FPGA vs. ASIC

FPGAs can be easily reprogrammed in post production, allowing for greater flexibility than ASICs, which are custom-designed chips built for a specific application. While the former is more versatile, the latter is tailor-made to execute specialized tasks — often with higher performance rates.

 

FPGA vs. Microcontroller

FPGAs are designed for complex tasks, processing parallel inputs at once, while microcontrollers handle specific tasks with lower complexity and power consumption. The latter offer simple, ease-of-use designs that are only customizable on a superficial level, and limited to reading one line of code at a time.

 

FPGA vs. CPU

FPGAs excel in tasks requiring high parallelism and specialized computation. CPUs, on the other hand, are general-purpose processors that execute instructions sequentially, handling tasks like data manipulation, logic operations and control flow within a computer system. While FPGAs offer flexibility and parallelism at the hardware level, CPUs provide versatility and programmability at the software level.

 

FPGA vs. GPU

Both FPGA and GPUs are used to process tasks in parallel. The difference is in the intent, said Tom Deane, chief product officer of analytics processing unit manufacturer Speedata

“GPUs are designed with fixed architecture to handle task specific functions, such as graphics rendering, scientific simulations and machine learning algorithms,” he added. But FPGAs offer more flexibility, because they can be reprogrammed, “without achieving the same level of efficiency in tasks that are well-optimized with GPUs.”

Frequently Asked Questions

FPGAs — or field programmable gate arrays — are semiconductor devices that can be programmed and reprogrammed after manufacturing to create custom digital circuits.

FPGAs trump CPUs in customizability, especially when tasked to perform specific functions in parallel and at low latency.

Rose Velazquez contributed reporting to this story.

Explore Job Matches.