FPGA (Field Programmable Gate Array) has seen a rapid growth in the recent years. This post will discuss about what is FPGA (Field Programmable Gate Array), its architecture, how it works,its applications, advantages and disadvantages.
What is Field Programmable Gate Array (FPGA)
Field Programmable Gate Array is system level Integrated Circuit (IC) that helps to create customized digital logic. They are electrically programmed silicon devices which are pre-fabricated. It incorporates millions of logic gates in a single chip. FPGA is a programmable hardware which consists of arrays of Logic Blocks. It can be reconfigured many times as it uses dedicated hardware.
Fig. 1 – Introduction to FPGA
Field Programmable Gate Array has become a preferred implementation media for digital circuits. The programmable Logic and Interconnection Matrix makes them flexible. FPGA’s provide cost-effective solution and quick to market as compared to ASIC’s.
Configuration of Field Programmable Gate Array (FPGA) takes less than a minute and offers Parallel processing i.e. portion of FPGA can be reconfigured while the rest of FPGA is running to implement other functionality. Both the functionality that is configured will execute at the same time.
It is based on Look Up Tables which can implement any Boolean functions. It consists of programmable SRAM, high-speed input/output pins (I/O), Logic Blocks and Interconnection Matrix. Xilinx in the year 1985 combined the idea of Programmable Logic Devices and Gate Arrays to discover FPGA’s.
Fig. 2 – Field Programmable Gate Array (FPGA) Development Board
Architecture of Field Programmable Gate Array (FPGA)
The architecture of Field Programmable Gate Array comprises of three main components. They are:
- Programmable Logic Blocks (Configurable Logic Blocks)
- I/O Blocks (Input/output Blocks)
- Interconnection Matrix
Programmable Logic Blocks (Configurable Logic Blocks)
Programmable or Configurable Logic Blocks help in implementing Logic functions. This module provides basic logic and storage functionality. They are arranged in a two-dimensional grid and are interconnected by routing wire segments as shown in the Fig. 3.
The density of the logic block depends upon the length and number of wire segments used for Routing. Configurable Logic Block may consist of single Basic Logic Element (BLE) or clusters of BLE which are interconnected. BLE consists of LUT (Look Up Table), Flip-Flop and Multiplexer as shown in the Fig. 3.
Fig. 3 – Architecture of Field Programmable Gate Array (FPGA)
I/O Blocks (Input/output Blocks)
I/O Blocks consists of interfacing pins which helps in connecting Logic blocks to external components. They are located at the periphery of the grid and also connected to the Interconnection Matrix.
The function of Routing the signals and providing connections between the Logic Blocks and I/O Blocks is the task of Interconnection Matrix. It consists of wires and switches to establish the connection within FPGA.
How does Field Programmable Gate Array (FPGA) Work
FPGA’s are used as functional blocks in a system which are initially not configured. They are prefabricated and customized according to the application. Configuration is achieved through programming, using VHDL (Very High Definition Language) or Verilog by the end user. The configuration is done through SRAM cells, EPROM or EEPROM.
FPGA reads its configuration from its memory. Logic function is compiled using a software on a computer. Binary file is synthesized and programmed on to FPGA chip for logic emulation.
SRAM based FPGA’s are widely used in varied applications and hence let us focus on the working principle of SRAM-FPGA’s. In this type, memory cells are scattered throughout Field Programmable Gate Array. SRAM (also called Static Random Access Memory) is used to store the programmed value.
Let us consider Fig.4 which shows schematic representation of Configurable Logic Block. Basically, FPGA’s use LUT’s (Look Up Tables) for creating digital logic. This structure contains LUT’s which are used to map input values to output values. Logic Block has programmable Flip-Flop’s and multi programmable Multiplexers.
Look Up Tables are configured using Bit-stream to implement Boolean function. It has four inputs A, B, C, D and the 16 inputs to the Multiplexers determine the Boolean function to be implemented based on the entries of the Truth Table.
These 16 binary values are stored in Registers i.e. D Flip-Flop. These Registers are either set to Logic High or Low. The entire circuit behaves like a 16:1 Mux. If input bits ABCD is 0000, then MSB or top-most input of Mux is routed to output ‘Y’. Truth Table is constructed for different values of input bits. For 4 input bits, there are 16 entries and output ‘Y’ is recorded and verified. LUT-4 uses 16 SRAM bits to implement 4 inputs Boolean Function.
Fig. 4 – Schematic Representation of Configurable Logic Block
Similarly, LUT with k inputs (LUT-k) contains 2k configuration bits and it can implement any k-input Boolean function. Thus, this structure effectively implements arbitrary, complex digital logic.
Let us take an Example of 2 input LUT, that implements the function:
a and b are the inputs. For different values of the inputs, Truth Table is created. Four entries of the Truth Table are shown in the Fig. 5.
Fig. 5 – Schematic Representation of Two Input LUT
Applications of Field Programmable Gate Array (FPGA)
The applications include:
- FPGA’s are widely used for defense applications like Radar and Sonar.
- Medical imaging implementation requires Field Programmable Field Array.
- They are primarily used in Real-time speech recognition systems.
- They are also used in Avionic systems as they are economical compared to Microprocessors and Microcontrollers.
- They are used in Crypto Systems.
- They are used in ASIC Prototyping.
- They are used in Automotive infotainment applications.
- They are extensively used in Life Science applications like Genome Sequencing.
- FPGA’s are used in Data Analytics applications.
- They are used in Video Transcoding.
Fig. 6 – Applications of FPGA
Advantages of Field Programmable Gate Array (FPGA)
The advantages include:
- Prototype implementation is fast and reliable.
- Operation speed is high.
- Offers reconfiguration and hence they are reusable.
- FPGA’s offer flexibility in design.
- Performance is high i.e. larger data can be processed with fewer clock cycles at high frequencies.
- They are capable of Parallel Processing.
- FPGA’s are economical.
- They operate faster than ASIC’s (Application Specific Integrated Circuits).
Disadvantages of Field Programmable Gate Array (FPGA)
The disadvantages include:
- Programming is complex.
- Power consumption is high.