Field Programmable Gate Array (FPGA)

Reading time: 15 minutes

A field programmable gate array (FPGA) is an integrated circuit designed to be configured by anyone for various purposes like hardware stimulation. FPGA is defined by two keywords namely field programmable and gate array.

Accordingly, FPGA means:

  • field programmable: An FPGA is designed to be easily reconfigured by developers, designers or customers. Verilog Hardware Description Language (VHDL) is used as the programming language for FPGA programming.

  • gate array: An FPGA consists of an array of programmable logic gates such as AND, OR, XOR, NOT, memory elements, DSP components and reconfigurable interconnects which are to connect logic gates together for performing a specific function.

An FPGA looks like:

FPGA

FPGA applications

An FPGA can be used as follows:

  • For design prototyping

  • For emulation

  • As hardware accelerator

  • In place of ASIC

    • Less time to market
  • Complete System on Chip (SoC) solution

  • An FPGA can be used to implement any Digital Signal Processing Algorithm such as:

    • Bluestein's FFT algorithm
    • Fast Fourier transform
    • Prime-factor FFT algorithm
    • Gerchberg–Saxton algorithm

and many other algorithms

  • FPGA can also be used to stimulate any hardware of your choice

FPGA Architecture

The most common FPGA architecture consists of:

  • array of logic blocks
  • Hard blocks like high speed multi-gigabit transceivers
  • Clocking circuitry

FPGA manufacturers

Major manufacturers of FPGA are:

  • Xilinx
  • Altera (part of Intel)
FPGA manufacturers

Why to use FPGA?

Field Programmable Gate Array are to be used because of the following reasons:

  • Fast-turnaround prototype implementation
  • Supported by CAD/EDA tools
  • High density
  • High speed
  • Programmable and versatile
  • Flexible
  • Reusable
  • Large amounts of logic gates, registers, RAM and routing
  • resources
  • Quick time-to-market
  • SRAM FPGA provide the benefits of custom CMOS