+13,00,000 products in offer

6,000 packages per day

+3,00,000 clients from 150 countries

Quick Buy Favourites
Cart

Programmable digital FPGA circuits

Date of publication: 18-11-2025 🕒 9 min read

FPGA devices have been commercially available for many years, yet despite many advantages, they cannot be said to be popular in applications. The main reasons are the high cost of the solution and lack of knowledge about the applications. The first of these features negatively affects the designer or another decision-maker regarding components, while the latter most often affects the programmer or embedded system designer, who is proficient in object-oriented languages but does not understand the hardware description language. In this text, we will examine selected practical features of FPGA devices and compare them to much better-known and accepted microcontrollers. We will also point out applications where the use of FPGA is indispensable and those where it becomes "excessive".

FPGA is the name of a group of integrated circuits derived from the first letters of the words Field-Programmable Gate Array. These devices can be programmed after production. The programming process of FPGA is called configuration, as it involves making connections between ready-made functional blocks available inside the structure. Unlike typical digital integrated circuits (gates, registers, flip-flops, counters, etc.) that have fixed functionality, FPGAs can be programmed repeatedly, providing flexibility in designing and testing different applications.

Buy FPGA devices

FPGAs consist of programmable logic blocks and programmable interconnections between them. These devices may contain not only digital blocks but also analog-to-digital converters, digital-to-analog converters, processor cores (general-purpose or DSP), interface blocks enabling cooperation with external devices, or even AI support units connected via Network-on-Chip (NoC), an embedded interconnection network transmitting data packets between blocks and components of the device. Thanks to rich features and flexible connections, FPGA devices can be configured to perform various functions, such as signal processing, embedded system control, or data processing acceleration.

One of the most important advantages of FPGA is the speed of computation. These devices operate differently than a microprocessor, which fetches and executes instructions sequentially. In FPGA, the processing result can appear "immediately," delayed only by a small propagation time. It is also significant that many operations can be performed in parallel, unlike in a microcontroller, which rarely supports simultaneous execution of many instructions.

Every FPGA device consists of three groups of components:

  1. The basic building blocks of each FPGA are logic blocks. Each contains a number of basic logic functors and registers. Logic functors perform logic operations, while registers store data.
  2. Logic blocks are connected by a connection bus. However, this term should not be mistaken for, e.g., a data bus on a computer motherboard. Unlike copper traces with fixed topology, these are flexibly programmable connections between blocks that allow connecting them almost arbitrarily.
  3. The entire configuration is stored in non-volatile configuration memory. In most FPGAs, this is external Flash/EEPROM memory that can be repeatedly erased and written. Some FPGA devices may have built-in configuration memory, but this is less common. The FPGA loads the configuration on power-up or hard reset. The availability of configuration memory allows easy construction and testing of prototypes and, in the case of a finished, operating device, easy updating or improving functionality. This is especially valuable in hardware produced in small series, where using FPGA is significantly more cost-effective than designing and producing dedicated integrated circuits (ASIC).

Figure 1. Simplified block diagram illustrating the structure of an FPGA device

Differences between FPGA and CPLD

CPLD devices (Complex Programmable Logic Device) were the precursors of FPGA devices and (despite having less functionality) are offered today for less complex applications. Most major suppliers offer a wide range, starting from the simplest versions designated as PAL, containing programmable elements and fixed parts predisposed to perform a certain logical function. This allows using a single integrated circuit instead of several logic functors but does not provide great flexibility for applications.

Buy CPLD devices

Compared to PAL, CPLD devices are more complex. They contain more gates, are equipped with non-volatile memory and RAM, making them suitable for more complex applications. For example, Intel® placed many PAL blocks called macrocells in a single, unified circuit package, where all inputs are available to every cell, and each macrocell can control any output. The connection structure is stored in electrically programmable memory called configuration memory, just like in FPGA. So, if CPLDs have macrocells, a programmable connection bus, and configuration memory, how do they differ from FPGAs?

Compared to FPGAs, CPLDs contain significantly fewer logic elements and do not have LUT arrays (look up tables). They have a more integrated architecture, with a much smaller number of logic blocks, and implement more complex logic functions in each block. Many connections between blocks in CPLD are predefined in the manufacturing process and cannot be changed during device configuration. They are not used for creating as complex applications as FPGAs, which can contain millions of logic functors. To illustrate, an FPGA can model a processor core, while a CPLD is useful for implementing an address decoder cooperating with it.

Figure 2. Macrocell of the MAX7000 series device (source: manufacturer's documentation)

In most FPGA devices, the configuration is stored in external memory, usually attached via a serial interface. Configuration data is copied to the FPGA's RAM at each power-up or hard reset. This creates a delay at device startup, greater for more complex FPGAs, which is not the case with CPLDs having stored configuration in built-in EEPROM memory.

A drawback of FPGA compared to CPLD is the higher application cost.

  • FPGA may require a special, efficient power system, in which it is necessary to control the enabling sequence of individual voltages and react in a specific way in case of any failure.
  • Configuration stored in external memory is susceptible to unauthorized access, which may be important for application security.
  • FPGA applications requiring significantly more external components are much more expensive.
  • The high price of FPGAs practically eliminates more complex devices in popular applications. CPLDs are not so costly and can successfully be used in popular electronic devices, replacing several or even a dozen logic devices. However, despite many advantages, when a logic function needs to be implemented, many designers will still choose the better-known microcontroller...

Table 1. Comparison of selected parameters of FPGA and CPLD devices

Feature/parameter CPLD FPGA
Application flexibility Low High
Price Low High or very high
Application security High Susceptible to unauthorized access
Operation speed High High
Capacity/application size Low High or very high
Hardware application Simple Complex or very complex
Programming In hardware configuration languages or by functional schemes

Differences between FPGA and microcontroller

Functional blocks built into FPGA, especially A/D converters, D/A converters, or interface modules for external devices, may resemble the surroundings of a microcontroller core. An FPGA can have built-in RAM and non-volatile Flash memory, but this resemblance is deceptive.

Modern, advanced FPGA devices are functionally more complex than advanced, complex microcontrollers. For example, connecting functional blocks inside an FPGA may use NoC (Network on Chip) technology, where within the integrated circuit structure, data packets are transmitted using buses managed by built-in switches. This is useful for signal processing and conditioning and for algorithms employing machine learning and artificial intelligence.

The speed of FPGA operation compared to a microcontroller is truly astonishing. This is because a typical microcontroller core fetches and executes instructions one by one. To speed up data processing, it offloads some operations to peripheral units (e.g., data transmission to and from memory via DMA), but this does not change its operational rhythm. In FPGAs, depending on configuration, the FPGA usually transmits the response immediately after receiving data and furthermore can execute many threads simultaneously. Remember, for instance, that evaluating a signal does not involve taking one sample and then evaluating it in the next step, but refers to a certain evaluation scheme available as a network of connected logic functors, so it can be available with accuracy up to the device's propagation time.

A microcontroller contains a processor core, RAM, ROM, Flash, and peripherals, such as input/output ports, timers, A/D and D/A converters on a single integrated circuit. It is designed to perform specific tasks. While some modules can be enabled/disabled to save power, their functionality cannot be redefined. It is fixed during production, including the operation and connection of blocks. A microcontroller is somewhat like a microcomputer mounted on a tiny printed circuit board within a single package. Changing its configuration requires modifying the board, including circuit traces, component placement, and their interconnections.

An FPGA device is built from programmable logic blocks connected by configurable interconnections. Functors can be combined into various functional blocks capable of performing different logical operations, and modern advanced FPGA devices engage very advanced connection technologies such as NoC.

Programming FPGA (and CPLD) consists of defining logical connections and functions using hardware description languages (HDL) such as VHDL or Verilog. Configuration, especially for simpler devices, can also be done using a logic schematic, placing and connecting typical logic components. Configuring FPGA requires knowledge of digital circuit design. Programming a microcontroller uses structural or object-oriented programming languages. Today, most applications move away from low-level assembler towards high-level languages such as C, C++, Java, and others. Microcontroller programming resembles programming "large" computers, making it easier for most programmers, who often lack knowledge of the operation and optimization of logic blocks. The FPGA program memory stores configuration, while the microcontroller memory stores commands and parameters.

Table 2. Comparison of selected parameters of microcontrollers and FPGA

Feature/parameter Microcontroller FPGA
Application flexibility High High
Price Low or medium High or very high
Application security Susceptible to unauthorized access Susceptible to unauthorized access
Operation speed Low compared to FPGA High
Memory capacity / application size From very small to very large High or very high
Hardware application Simple Complex or very complex
Possibility of analog operation None or limited
Programming In assembler or high-level languages In hardware configuration languages

Differences between FPGA and ASIC

The most important feature of ASIC devices, as indicated by their name, is that they are designed to perform a specific task. This could be, for example, receiving and decoding a radio signal, controlling a specific display model, or others. Note that ASIC does not necessarily have to be programmable, although there are commercially available ones containing a processor core for which applications can be created.

The boundary between a typical integrated circuit and an ASIC device is very thin. They are mainly separated by production volume; ASICs are produced in smaller numbers compared to mass-produced integrated circuits. Many manufacturers offer integrated circuits without indicating whether they are mass-produced or ASICs.

The architecture of an ASIC is defined by the designer and cannot be changed after manufacturing. Usually, when ASICs have a processor core, no program development is required, only setting some specific parameters. Similarly, the type of communication with the environment and data formats are defined during design, and even if switching between different types is possible, changes cannot be introduced.

Compared to configuring FPGA, the ASIC design process is more complex and costly, possibly requiring specialist knowledge beyond digital circuit design, but the final product is more optimized for specific applications, performance, and energy efficiency.

ASICs are used in applications requiring high performance with low power consumption and miniature dimensions. Specialization allows them to offer excellent practical parameters. Additionally, ASICs are usually ready to use immediately after soldering or placing in a socket and do not need to load configuration from external memory. They can also have mixed functionality or be purely analog. This is not possible with FPGAs, which provide very high performance by parallel processing of digital data, after conversion from analog to digital and vice versa.

Ready-to-use ASICs can be many times cheaper than FPGAs. They are much more expensive and time-consuming to design, but these costs are amortized over typically large volumes. This comes at the expense of lack of reconfiguration capability, but it is not always needed. Similarly to microcontrollers, FPGAs can be used to prototype ASICs, but ASICs cannot model FPGA operation. Of course, here we mean modeling that allows recording a useful configuration for FPGA, not just achieving similar functionality.

Table 3. Comparison of selected parameters of ASIC and FPGA

Feature/parameter ASIC FPGA
Application flexibility Very low High
Price Low or medium High or very high
Application security High Susceptible to unauthorized access
Operation speed High High
Capacity/application size Low or none High or very high
Hardware application Simple Complex or very complex
Possibility of analog operation Depends on design None or limited
Programming Limited capability or not required In hardware configuration languages

Bibliography:

  • Control Engineering Poland – FPGA in Automation- www.controlengineering.pl/uklady-fpga-w-automatyce-nowe-mozliwosci-i-zastosowania
  • Lattice Semiconductor – FPGA in Industry 4.0- www.latticesemi.com/en/Blog/2022/12/20/23/00/2022-How-FPGAs-Can-Make-Industry-4-Work
  • Wikipedia – Fourth Industrial Revolution- www.pl.wikipedia.org/wiki/Czwarta_rewolucja_przemys%C5%82owa
  • Designing Embedded Systems in FPGA Devices- www.helion.pl/pobierz-fragment/projektowanie-systemow-wbudowanych-w-ukladach-fpga-valery-salauyou-adam-klimowicz,e_321i/pdf
  • The Power (of) Memory – Elektronika Praktyczna- www.ep.com.pl/files//2012.pdf
  • Wikipedia – Field-Programmable Gate Array- www.pl.wikipedia.org/wiki/Bezpośrednio_programowalna_macierz_bramek
  • FPGA-Based System Design – Wayne Wolf- www.eeeforum.weebly.com/uploads/1/0/2/5/10254481/fpga1.pdf
  • “Real-Time Image Processing on FPGA” – SpringerLink- www.link.springer.com/chapter/10.1007/978-3-642-24106-2_18

Transfer Multisort Elektronik (TME) is one of the world’s largest global distributors of electronic components, electrotechnical parts, workshop equipment, and industrial automation. The catalog includes over 1,500,000 products from 1,300 leading manufacturers. TME’s modern logistics centers in Łódź and Rzgów (Poland), with a combined area of over 40,000 m², ship nearly 6,000 packages daily to customers in more than 150 countries.

TME also invests in the development of knowledge and skills of young engineers and electronics enthusiasts through the TME Education project, and supports the tech community by organizing the TechMasterEvent series, promoting innovation and experience exchange.

rightColumnPicture rightColumnPicture

READ ALSO