2.2.1
Definition
The Field Programmable Gate Array, abbreviated to FPGA, is a pre-fabricated IC. It is a digital device which belongs to the category of reconfigurable digital devices, and has a number of pre-defined reconfigurable resources which allow the FPGA to be programmed or reprogrammed as any type of digital circuit or system after it has been fabricated (Brown and Rose, 1996).
It has been commonly considered that the modern FPGA era began with the first commercial FPGA introduced in 1985 – the Xilinx XC2064 FPGA, a static RAM, the SRAM (Pavlov and Sachdev, 2008), based FPGA that has 64 Configurable Logic Blocks (CLBs), 58 inputs and outputs (IOs), and
internal configurable fabric which is implemented as 4-input Look-Up Tables (LUTs), (Carter et al., 1986; Xilinx Inc., 1985; Kuon et al., 2007), which can be classified as fine-grained. Today, FPGAs have grown and developed significantly. A modern FPGA can contain more than 330,000 logic blocks, and have thousands of IOs (Kuon et al., 2007; Altera Corp., 2011b; Xilinx Inc., 2015a). As a result, FPGAs are widely utilised in digital systems, and used as a central configurable hub between different subsystems.
2.2.2
Applications
In the last two decades, by benefiting from the modern Very-Large-Scale Integration (VLSI) circuits technology (Weste and Harris, 2010), the FPGA scale has been increased significantly. FPGAs can be applied to a variety of applications. The applications of the FPGA can be summarised as follows:
1) From the hardware perspective, the FPGA can implement any logic circuits (Brown and Rose, 1996). In comparison with complex gate- level-ASIC-based digital PCBs (Printed Circuit Boards), the use of FPGAs can simplify the PCB, and lead to the FPGA being an all-in- one solution for digital logic. Moreover, modern FPGAs have a large number of configurable resources, including heterogeneous blocks; these enable the FPGA to build different digital subsystems, or even an entire system.
2) From the semiconductor industry perspective, due to the flexibility of the FPGA, FPGAs are widely used to verify new designs, or fast proto- typing designs. For example, the FPGA can be utilised to investigate timing and logic verification of a new digital design.
3) From the product perspective, the FPGA can implement high-speed, high-precision applications. These applications include: ultra high- speed interfaces, sophisticated controllers, high-speed signal processors,
advance filters and complex communication systems. (Brown and Rose, 1996).
4) From the research and academic perspective, primitive concepts of recon- figurable computing were first convinced in Estrin and Viswanathan’s paper (Estrin, 1960; Estrin and Viswanathan, 1962). Since the avail- ability of the FPGA, the implementations of these concepts can finally be accomplished. FPGAs are also utilised in the areas of dynamic reconfigurable, working-load-adaptive, and fault-tolerant systems. On the other hand, the FPGA also enables research in FPGA architectures, and Computer-Aided Design (CAD) algorithms.
2.2.3
Advantages and disadvantages
When FPGAs merge with ASICs level fabrication, according to Gokhale and Graham’s book (Gokhale and Graham, 2005), a number of advantages are notable:
1) Since the FPGA is programmable and offered as a standard product, for a system development, the design-to-market time can be significantly reduced.
2) Pre-fabricated FPGA products allow designers to focus on the higher level development, so by using the FPGA, there is no engineering cost at the microelectronic-level implementations, testings and fabrications. 3) FPGA manufacturers provide a number of different FPGAs, referred
to commercial FPGA products, and these FPGAs are pre-tested by the FPGA manufacturer. Therefore, FPGA, or FPGA product, can be a distinct platform to verify new designs without considering the fault of microelectronic level.
4) When the FPGA is deployed for post-fabricated electronic systems, the reconfigurability of the FPGA is beneficial as it means that new
functions or changes can be added or made to the circuit level. This can be achieved remotely or by an on-line means.
In contrast, the negative effects of using FPGAs are also presented, and these are:
1) Modern FPGAs utilise SRAM (Pavlov and Sachdev, 2008) as the basic configurable elements, as well as deploying many pre-defined routing resources. This means that FPGAs use a greater area, have longer delays and consume more power compared with ASICs.
2) Although the revised Moore’s law has predicted that the IC integrated transistor number is doubled every two years (Moore, 1965, 2006), area overhead is still the major issue in the FPGA and increases the fabrication cost; the cost is much higher than the ASIC when an ASIC is used in mass fabrication.
3) From the circuit performance perspective, when implementing the same application on both an ASIC and FPGA, Kuon and Rose point out that (Kuon and Rose, 2006), as reconfigurable resources exist in the FPGA, the FPGA can use up to 20 to 30 times more chip area. At the same time, the FPGA can be 3 to 4 times slower and consume 10 times more power than the ASIC. Although the fabrication technology is continuously developed, the circuit performance on FPGAs might still be lower than ASICs. This is due to massive reconfigurable resources in FPGAs.
4) Normally a design or application is mapped to the FPGA using the CAD flow, the results of of these CAD algorithms can significantly affect the performance of the design on FPGAs; this is because different CAD algorithms can produce different mappings and use different reconfigurable resources of a FPGA. As a result, design or application performances cannot be guaranteed as the mapping is not unique.
Programmable Logic Blocks Programmable Routing Programmable IO Blocks
Figure 2.1: A generic FPGA architecture (Gokhale and Graham, 2005)