There’s a lot of fascinating facts about the FPGA market. One vital point to know is that the market is projected to be valued at 9.5 billion dollars by the year 2023. This is huge, right? It might also interest you to know that almost 90% of the market is controlled by two rivals; Xilinx and Altera. These facts and more shall be addressed in this piece, however, we aim to begin with a very simple introduction.
What is FPGA Technology?
FPGA is an acronym and it represents Field Programmable Gate Array. Basically, it is a semiconductor logic chip and as the name implies, it can be programmed to execute any kind of digital logic function. It can be likened to a programmable logic device (PLD), although there’s a major distinction. While PLDs only have hundred of gates, FPGAs comprise thousands.
A field programmable gate array is configured using a hardware description language (HDL), the same way an ASIC is programmed. Languages like Verilog, SystemVerilog, and VHDL all fit the description. Although FPGA has the advantage of being reprogrammable and reusable as the architecture isn’t fixed.
What Makes the FPGA Architecture?
There are three major components that make up the FPGA architecture.
- Programmable Logic Blocks
- Programmable Routing (interconnects)
- Input and Output blocks
Structure of an FPGA
Programmable Logic Blocks
This block provides the essential elements that are required for computation and storage. Here, we talk of logic elements like the flip-flops, the programmable combinational logic, and also the fast carry logic. Nowadays, we have FPGAs that contain an eclectic mix of memory blocks and multiplexers. This configuration allows each element to be controlled via the configuration memory.
Programmable Routing (interconnects)
Programmable routing makes it possible to establish a connection between the logic blocks and the input and output ports. This is what completes a user-defined design unit. For the routing, tri-state buffers and pass transistors are used in a logic cluster.
Input and Output blocks
The logic blocks and the routing architecture are interfaced with the external components via the programmable input and output port. The input/output cell comprises the input and output pad, as well as the logic circuit that surrounds it.
Because of the complexity surrounding the design of the I/O block and the strict requirements of the supply and reference voltage the selection of standards is an important criterion.
Types of FPGA According to Their Applications
We have 3 types of FPGAs based on how they are used;
- Low-end FPGAs: designed for low power consumption, low logic density and low complexity per chip
- Mid-range FPGAs: these are developed as a balance between the performance and the cost.
- High-end FPGAs: these are developed for logic density and high performance.
Design Flow of the FPGA Architecture
The architecture of an FPGA comprises;
- The design entry
- The design synthesis
- The implementation of the design
- Programming of the device
- Design verification
The Design Entry
A schematic-based hardware description language or a schematic entry tool (or both) can be used for design entry. The former is ideal for an algorithmic design while the latter gives greater visibility and control over hardware.
The Design Synthesis
This involves the transformation of the VHDL code into a netlist format. The syntax of the code is checked for correctness and the hierarchy of the design architecture is analyzed.
The Implementation of the Design
Firstly, the netlist is translated to a logic design file and then the circuit is divided into sub-blocks in a way that ensures that they fit the FPGA logic blocks. Routing places the sub-blocks into the logic block.
Programming of the Device
After the design has been routed, it must then be loaded on the FPGA. This involves the conversion of the design into a format that the FPGA supports.
Behavioral Simulation (the register transfer language simulation), functional simulation, and the static timing simulation are different ways by which we verify the design.
What are the Applications of FPGA?
FPGAs are used for a wide range of applications. Below is an extensive list (which is far from exhaustive) of the various applications.
- Digital signal processing
- Device controllers
- Software-defined radio
- Random logic
- ASIC prototyping
- Medical imaging
- Computer hardware emulation
- Integrating multiple SPLDS
- Voice recognition
- Cryptocurrency miners
- Communication encoding
What are the Advantages of an FPGA?
- FPGAs take advantage of hardware parallelism and this allows them to exceed the computing power of digital signal processors (DSPs).
- The flexibility and rapid prototyping ability greatly improve the time to market.
- FPGAs are reprogrammable and this means they can serve a variety of purposes without incurring additional cost.
- They are reliable and upgradable, making maintenance easy.