Basics of FPGA Architecture and
Applications
What is FPGA?
An FPGA (Field Programmable Gate Array) is a type of digital integrated circuit that can be
programmed (configured) by the user after manufacturing to perform a wide range of logic
functions. It contains an array of logic blocks, interconnects, and I/O blocks that can be
customized to implement complex digital circuits.
FPGA Architecture
The general FPGA architecture consists of three types of modules. They are I/O blocks or Pads,
Switch Matrix/ Interconnection Wires and Configurable logic blocks (CLB). The basic FPGA
architecture has two dimensional arrays of logic blocks with a means for a user to arrange the
interconnection between the logic blocks. The functions of an FPGA architecture module are
discussed below:
CLB (Configurable Logic Block) includes digital logic, inputs, outputs. It implements the user logic.
Interconnects provide direction between the logic blocks to implement the user logic.
Depending on the logic, switch matrix provides switching between interconnects.
I/O Pads used for the outside world to communicate with different applications.
Block Diagram:
Logic Block contains MUX (Multiplexer), D flip flop and LUT. LUT implements the combinational
logical functions; the MUX is used for selection logic, and D flip flop stores the output of the LUT
The basic building block of the FPGA is the Look Up Table based function generator. The number of
inputs to the LUT vary from 3,4,6, and even 8 after experiments. Now, we have adaptive LUTs that
provides two outputs per single LUT with the implementation of two function generators.
Xilinx Virtex-5 is the most popular FPGA, that contains a Look up Table (LUT) which is connected
with MUX, and a flip flop as discussed above. Present FPGA consists of about hundreds or
thousands of configurable logic blocks. For configuring the FPGA, Modelsim and Xilinx ISE
softwares are used to generate a bitstream file and for development.
Common Applications of FPGAs:
Digital signal processing (DSP)
Embedded system prototyping
Communication systems
Image and video processing
Custom processor implementation
Industrial automation and robotics
Cryptography and security systems
Difference Between FPGA and Microcontroller:
Feature FPGA Microcontroller
Sequential
Architecture Parallel (hardware-based) (software-
based)
Programming HDL (VHDL/Verilog) C/C++
Fixed
Flexibility Highly reconfigurable
instruction set
Slower, suitable
Speed Faster for parallel tasks
for control
Control-
Use Case Custom digital logic design
oriented tasks