This article describes FPGA architecture modules which includes fpga logic blocks,switch matrix and IO pad. It also provides parameters for selecting an FPGA chip based on applications and HDL code to be ported.
The generic structure of the FPGA consists of three types of resources viz. comfigurable logic blocks, input/output blocks or pads, interconnection wires/switch matrix. The most popular FPGA is Xilinx virtex-5 FPGA contains 6 input LUT associated with muxes,logic and flipflop as described below. Modern FPGAs contain upto hundreds of thousands of CLBs. Sophisticated software such as Xilinx ISE and ModelSIM is used for development and to generate bitstream file for configuring FPGA.
The Basic FPGA Architecture has 2 dimensional arrays
of logic blocks with a means for the user to configure the
interconnection between the logic blocks and the function of each logic block.
The FPGA Architecture consists of following:
Configurable Logic Block(CLB) - It contains digital logic,inputs outputs. It implements user logic.
Interconnects- which provides routing between the logic blocks to implements the user logic
Switch Matrix - provides switching between interconnects depending on the logic.
Input/Output pads - used for outside world to communicate in Applications
Logic Block consists of
LUT: It implements the combinational logic functions
Register (D flip flip): it stores the output of LUT
MUX: it is used for selection logic
N-bit LUT is implemented as a 2n X 1 memory; Inputs choose one of 2n memory locations. Memory locations are loaded with values taken from configuration bit streams of the user. Inputs to Mux control are the CLB inputs.
The basic building block of FPGA is the LUT(Look Up Table) based function generator. The number of inputs to LUT vary from three,four,six and even eight after experiments. Now we have adaptive LUTs which provides two outputs per single LUT with implementation of two function generators.
Types of FPGAs based on Applications
Based on applications FPGAs are categorized into three types high end FPGAs,low end FPGAs and Mid-range FPGAs. High end FPGAs are developed for high performance and logic density. Low end FPGAs are developed for low complexity,low power consumption per chip and low logic density. Mid range FPGAs are optical solution between the above two and developed as a balance between the cost and the performance.
Examples of High end FPGAs are Virtex family from Xilinx, Stratix family from Altera, ProASIC3 family by Microsemi, Speedster 22i family from Achronix.
Examples of low end FPGAs are Spartan family from Xilinx, Cyclone family from Altera,Mach XO/ICE40 from Lattice semiconductor, fusion family from Microsemi.
Examples of Mid range FPGAs are Artix-7/Kintex-7 series from Xlinix,Arria from Altera,ECP3 and ECP5 series from Lattice semiconductor and IGL002 from Microsemi.
Selecting an FPGA chip
Above mentioned internal architecture elements of FPGA are very important in selecting an FPGA chip based on the application. Important selection parameters are mentioned below.
• On chip RAM size
• Input/output interfaces
• Device speed grade
• Number of DSPs or Multiplier blocks
• Operating temperature
• Package size
• Device density
• Input/Output pins
Other than the above parameters the HDL code to be ported on the selected FPGA chip will decide whether the selected device is sufficient to store the logic for the application under development. The same can be inferred from the synthesis cycle count report.
Due to availability of advanced high end FPGAs, they have become alternative to ASIC and ASSP some vendors are marketing FPGAs suitable for testing the code before ASIC implementation. ARM based System On Chips(SoCs) combine processor,memory controllers and peripherals with custom FPGA in a single chip. Now FPGAs are available in 45nm,28nm,20nm and 16nm. Research is on going to develop 14 and 10nm devices soon.