Analysis of FPGA theory and its development potential

FPGA is a logic device that allows users to program. It has experienced unprecedented rapid development since its inception, and now it has become the core chip device for designing digital circuits. As an application oriented and capital-intensive technology system, FPGA plays an important role in computer, communication, automobile and other fields. With the continuous progress of semiconductor preparation technology, the performance of FPGA devices has also achieved leaps and bounds. Of course, new problems and challenges have emerged. Therefore, we need to constantly improve the architecture and algorithm of FPGA, and explore ways to make FPGA achieve higher performance and efficiency. This paper reviews the development of FPGA, and expounds the mainstream design technology of FPGA. It also summarizes the main advantages and disadvantages of FPGA, and points out the direction of future FPGA research.


Introduction
With the continuous development of electronic technology and integrated circuits, the integration degree and system scale of integrated circuits are constantly improving, and people put forward new requirements for integrated circuits.As a programmable logic device at any time, FPGA is widely used in many fields such as computer, communication, automobile and so on with its advantages of high efficiency, high integration and high reliability.The design of various devices based on FPGA has gradually becomes a hot topic.Section 2 of this paper reviews the history of the development of programmable logic devices, and discusses the process of the structure of programmable logic devices from simple to complex, and the function from simple to rich and efficient.Section 3 describes the current mainstream design technology of FPGA.Section 4 introduces the advantages and disadvantages of FPGA, and compares it with other devices.Section 5 discusses the further research direction of FPGA, and looks forward to the future development of FPGA.Finally, the full text is summarized.

FPGA overview
2.1.FPGA concept FPGA, full name known as field programmable gate array, is a product developed from programmable logic device (PLD), programmable array logic (PAL), generic array logic (GAL) and other programmable logic devices.As a semi-design chip, FPGA has better flexibility than application specific integrated circuit (ASIC), and effectively solves the limitation of finite number of programmable logic gates.The emergence of FPGA has given users great convenience [1].Users no longer need to use expensive ASICs to implement circuit functions, and the "half-baked nature" of FPGA allows users to change their logic design at any time to meet different application scenarios.FPGA has greatly promoted the development of integrated circuit technology and pointed out the direction for the future development of integrated circuit industry.

Development of programmable logic devices
In the 1970s, there were only three kinds of programmable logic devices: programmable read-only memory (PROM), erasable programmable read-only memory (EPROM) and electrically erasable programmable read-only memory (EEPROM).These memory devices can be used to memorize relevant information of the circuit.Later, MMI Company (now Lattice Company) designed and developed and popularized PAL.PAL is made by high-speed bipolar process, including anti-fuse technology, EPROM, etc., with less delay.However, it consumes a lot of power and cannot be programmed again [2].Most of the programmable devices in this period were simple in structure and could only realize relatively simple digital logic functions due to the structure limitation.
In the 1980s, programmable devices with complex structures such as GAL and PAL were designed and became formal PLD in strict sense, capable of realizing various digital logic functions.PLD is generally composed of "AND" and "NOT" arrays.When realizing logic functions, "AND OR" expressions are used to describe it.Therefore, PLD usually completes various logic combinations in the form of product sum.Compared with PAL, GAL has greater flexibility and can be reprogrammed on the original device, while PAL needs to be replaced with a new unprogrammed device [3].
PAL, GAL and other structures are relatively simple, and or array structures with low integration.With the continuous development of integrated circuits, larger and more integrated PLDs are needed.This single "AND/OR" array structure is a serious waste of resources.With the unremitting efforts of various manufacturers, in the 1990s, FPGA, complex programmable logic device (CPLD) and other large-scale programmable logic devices were born [4].Their appearance has greatly improved the circuit operation speed, with higher integration, wider application range and more flexibility than the previous PLD.Because of these advantages, they have become the first choice for manufacturers to design small and medium-sized integrated circuits.
In the 21st century, people will combine FPGA and central processing unit (CPU) together on the same FPGA device, that is, heterogeneous computing architecture.In the aspect of FPGA embedded, Xilinx provides two ways: embedded PowerPC hard core microprocessors and low-cost embedded softcore processors, such as Picoblaze.Xilinx's solution not only solves the problem of FPGA embedded system, but also links the two fields of digital logic and embedded system [5].
Nowadays, FPGA is developing towards the direction of digital analog mixing.It combines and collocates a variety of computing logic units (such as CPU, graphics processing unit (GPU), AI accelerator, etc.), so that it can meet the needs of different application scenarios and become what people call a "universal chip".

Anti fuse programming technology
The structure of anti-fuse is divided into upper electrode, lower electrode and anti-fuse in the middle.The anti-fuse acts as a switch.Before programming, the anti-fuse usually exists in the form of open circuit.When the appropriate program is programmed, a high voltage is applied to the electrodes at both ends of the anti-fuse, and the huge current melts the medium between the two electrodes of the anti-fuse, making the circuit open.
There are many kinds of anti-fuse structures, such as ONO type anti fuse and MTM type anti fuse.Figure 1 is the structural diagram of ONO type anti-fuse [6]. Figure 2 shows the structural section of the MTM anti fuse [7].
Figure 2. MTM type anti fuse structure.It can be seen that the upper and lower electrodes of the MTM anti fuse are different metal conductors, with amorphous silicon connected in the middle.Because there are some gaps between the upper and lower metals, and the amorphous silicon is just in these gaps, the actual area of the chip can be saved.Unlike ONO, MTM anti fuse is passive.After programming, the resistance value of the anti-fuse is much smaller than that of the ONO type, which makes the MTM type have better device performance than the ONO type, and the cost is lower, so it is widely used.
The anti-fuse technology has many advantages.The chip area of anti-fuse technology is small, and the on resistance and capacitance are also small.It can be directly used after adding voltage through programming, which is very convenient and safe.At the same time, the anti -use technology only allows programming once, so it does not need many kinds of complex structures.The configuration is simple, the technology is simple and understandable, and can effectively save costs.Of course, the defects of anti-fuse technology cannot be ignored.It is precisely because of the one-time programming and the product produced by using the anti-fuse technology, once the production is completed, the function can no longer be changed, and the flexibility is very low, which is not conducive to the development of new products.At the same time, under different processes, the properties of anti-fuse materials are quite different, and the circuit scale designed by anti-fuse technology is also small.

SRAM programming technology
The memory composed of five transistors is the most basic structural unit of SRAM, as shown in figure 3.People use transmission tubes to store, read and write information to circuits.When the transmission tube is connected, people can read or rewrite the information.When the transmission tube is cut off, the information is stored in the inverter, and the stored information is output from the Q terminal and the Q terminal.Theoretically, the circuit can be rewritten infinitely by SRAM programming technology as can be seen in figure 3. SRAM programming technology also has some drawbacks.After disconnecting the power supply, all the information stored in the circuit will be lost, so we need to add some memory that is not easy to lose information to save the information in the SRAM unit [8].Moreover, the different states of the corresponding circuit of the transmission tube conduction and cut-off are equivalent to a switch.However, this switch will bring a lot of capacitive and resistive loads to the circuit, resulting in the lack of information.

Flash/E2PROM programming technology
The biggest advantage of using Flash and E2PROM technology is that you can turn off the power at any time without worrying about information loss.At the same time, the storage unit of Flash cancels the E2PROM tunnel type storage unit selector tube, so that when a signal passes, the information covering a certain area can be removed, which is simple and easy to operate [9].Compared with other technologies, this technology has higher efficiency and better stability.A common E2PROM-FLOTOX tube structure is shown in figure 4.  FPGA has incomparable advantages over traditional digital circuits.People can program the hardware and optimize it quickly, so that FPGA can achieve high performance and low power consumption while quickly customizing.The higher performance enables the chip circuit to complete more complex and difficult tasks than before.At the same time, lower power consumption can enable FPGA to be used in some scenarios with limited power consumption, and reduce energy consumption and cost.Many relevant experiments point out that using FPGA to accelerate various algorithms can improve the energy efficiency by 100 times of CPU and 10 times of GPU in the same computing power [10].
4.1.2.High parallelism.FPGA integrates many different logic units, and parallelization algorithm can realize rapid optimization of hardware logic structure.Task level or data level parallelism can improve the parallelism of most machine learning algorithms.

Flexibility.
Compared with ASIC, once it is designed, it can no longer change its function.The reconfigurability of FPGA has significant advantages.With this feature, people can constantly modify after the design is completed, so that the FPGA finally meets people's expectations.Not only that, it can also adapt to the changing needs of different scenarios and promote the birth of new products.

Security.
In today's digital information age, need to face a sea of data every moment, so the security of data has become an important issue that people cannot ignore.At present, the protection of data and computers mainly comes from the software level, but this protection cannot eliminate the hidden dangers caused by the underlying security or attacks.FPGA can start from the hardware to make chips that can protect data and better enhance security.
The comparison result of FPGA related performance parameters with CPU, GPU and ASIC is shown in table 1 [11].FPGA reconfigures some logic as required.During dynamic reconfiguration, the running program can continue to run, but the cost incurred after reconfiguration needs to be considered.The advantage of dynamic reconfiguration is that it can timely adjust the architecture and constantly improve the hardware logic.However, both static and dynamic reconfiguration will take a long time.How to shorten the reconstruction time is an unsolved problem.

The programming threshold is high.
FPGA programming language is different from CPU. Traditional CPUs often use high-level programming languages, but FPGA often uses Verilog or VHDL, which will take programmers more time to become familiar with and master.In recent years, with the continuous improvement of EDA software and the popularization of high-level comprehensive tools, FPGA programming problems have been alleviated to some extent [12].However, even depending on the comprehensive functions in EDA, programmers still need professional knowledge to be competent if they want to write efficient code.How to improve the programming efficiency of programmers on FPGA platform still needs further exploration.Due to the data intensive FPGA algorithm, the energy consumption of storage components is as high as 50% to 80% of the total.At the same time, compared with off chip memory, the bandwidth improvement brought by on-chip memory is more obvious in the final computing performance.How to design an efficient computing framework and reduce the consumption of storage energy is the key issue at present.Common methods of memory optimization include pingpong mechanism, data compression, refresh rate control, optimization of memory cells and access modes, and use of non-volatile memory.On a resource constrained platform like FPGA, you can analyze the calculation process, increase the data reuse rate, and improve the circuit performance.At the same time, the storage area can be divided and processed separately according to the different data reuse rates.The comparison of performance parameters among accelerators is shown in table 2 [13].

Data optimization.
We all know that data precision and performance are inversely related.However, in some scenarios that do not require high data accuracy, we can appropriately reduce the accuracy to obtain higher performance.As shown in Table 2, if the data precision of FPDNN is reduced from 32 to 16, the performance will be increased from 81 to 364.36, greatly improving.However, the resulting calculation error cannot be ignored.In different application scenarios, we need to balance the advantages and disadvantages of data accuracy and performance to obtain the highest possible performance without causing large differences in calculation results.

FPGA cluster.
Since the performance of one FPGA chip circuit is limited, we naturally think that using multiple FPGA integration may achieve better results.At present, the research in this direction is still rare, and there is less data, so there is a large space for exploration.

Algorithm compatibility.
There are many algorithms based on FPGA, and there are great differences between different algorithms.When designing circuits, we should consider the compatibility of different algorithms.It can be analyzed the calculation process of different algorithms, divide the algorithm into several stages, and skip or mask other unnecessary stages when using a certain algorithm to improve compatibility [14].
5.1.5.Research on heterogeneous computing platform.ASIC, FPGA, GPU, NPU, DSP, etc. belong to different computing units and are good at handling different computing tasks.Combining different computing units and assigning a computing task to a corresponding computing unit can greatly improve performance and efficiency.However, heterogeneous computing still faces many challenging problems.
How to make different computing units cooperate with each other is a key problem in the field of heterogeneous computing.

Conclusion
This paper mainly summarizes the development history, mainstream design technology and future development direction of FPGA, and compares and analyzes the characteristics, advantages and disadvantages of FPGA.The continuous improvement of semiconductor fabrication process and user requirements has brought new problems and challenges to FPGA design researchers.In order to meet a variety of application scenarios, FPGA continues to improve in performance, power consumption, integration and other aspects.At the same time, FPGA still has various shortcomings.Due to the structure, compatibility and other factors in application, the performance cannot be improved more effectively.Scientists from all countries need to continue to make efforts to study and solve them.It is believed that FPGA technology will achieve greater innovation and development in the future and better facilitate people's lives.

Figure 1 .
Figure 1.ONO type anti fuse structure.The upper electrode is Poly polysilicon, and the lower electrode is nitrogen ion.The ONO structure in the middle is the dielectric layer connecting the upper and lower electrodes.Figure2shows the structural section of the MTM anti fuse[7].

Figure 3 .
Figure 3. SRAM Structure of Five Transistors.SRAM programming technology also has some drawbacks.After disconnecting the power supply, all the information stored in the circuit will be lost, so we need to add some memory that is not easy to lose information to save the information in the SRAM unit[8].Moreover, the different states of the corresponding circuit of the transmission tube conduction and cut-off are equivalent to a switch.However, this switch will bring a lot of capacitive and resistive loads to the circuit, resulting in the lack of information.

Table 1 .
Comparison of FPGA related performance parameters with CPU, GPU and ASIC.
4.2.1.The reconstruction cost is high.Although the reconfigurability of FPGA brings great convenience to people's circuit design, the time of reconfiguration cannot be ignored.FPGA reconfiguration can be divided into static reconfiguration and dynamic reconfiguration.Static reconfiguration refers to configuration during program compilation, and FPGA loading and configuration before circuit operation.Dynamic reconfiguration is carried out during task running, and

Table 2 .
Comparison of performance parameters among accelerators