What Is an FPGA?
FPGA (Field Programmable Gate Array) is the product of further development based on programmable devices such as PAL and GAL. It appears as a semi-custom circuit in the field of application-specific integrated circuits (ASICs), which not only solves the shortcomings of custom circuits, but also overcomes the shortcomings of the limited number of gate circuits of the original programmable devices. [1]
- Chinese name
- Field Programmable Logic Gate Array
- Foreign name
- Field Programmable Gate Array
- Short name
- FPGA
- category
- AI chip
- FPGA (Field Programmable Gate Array) is the product of further development based on programmable devices such as PAL and GAL. It appears as a semi-custom circuit in the field of application-specific integrated circuits (ASICs), which not only solves the shortcomings of custom circuits, but also overcomes the shortcomings of the limited number of gate circuits of the original programmable devices. [1]
Introduction to FPGA
- FPGA design is not a simple chip research. It is mainly to use the FPGA mode to design products in other industries. Unlike ASIC,
- Compared with the traditional chip design, FPGA chips are not limited to research and design chips, but can be optimized and designed with specific chip models for products in many fields. From the perspective of the chip device, the FPGA itself constitutes a typical integrated circuit in a semi-custom circuit, which contains a digital management module, an embedded unit, an output unit, and an input unit. On this basis, it is necessary for FPGA chips to comprehensively focus on comprehensive chip optimization design, and to improve the current chip design to add new chip functions, thereby simplifying the overall structure of the chip and improving performance. [3]
FPGA basic structure
- FPGA device is a kind of semi-custom circuit in the application-specific integrated circuit, which is a programmable logic array, which can effectively solve the problem of the original device with a small number of gate circuits. The basic structure of FPGA includes programmable input and output units, configurable logic blocks, digital clock management modules, embedded block RAM, wiring resources, embedded dedicated hard cores, and underlying functional units. Because FPGA has abundant wiring resources, repeatable programming and high integration, and low investment, it has been widely used in the field of digital circuit design. The FPGA design process includes algorithm design, code simulation and design, board debugging, designers and actual needs to establish the algorithm architecture, use EDA to establish a design scheme or HD to write design code, and ensure that the design scheme meets actual requirements through code simulation. Level debugging, use configuration circuit to download related files to FPGA chip, verify actual operation effect. [2]
FPGA working principle
- The FPGA uses the concept of logic cell array (LCA), which includes configurable logic modules.
FPGA chip design
- Compared with other kinds of chip designs, FPGA chips usually need to set a higher threshold and have a more stringent basic design process. Specifically, when designing, the relevant schematic diagrams of the FPGA should be closely combined to achieve a large-scale specialized chip design. Through the use of Matlab and the special design algorithm of C language, it should be able to achieve a smooth all-round transformation, so as to ensure that it conforms to the current mainstream chip design ideas. Under this premise, if the above design ideas are selected, then usually it is necessary to focus on the orderly integration of various components and the corresponding design language, thereby ensuring the availability and readability of the chip program design. Using FPGA can realize board debugging, code simulation and other related design operations, ensuring that the current code writing method and design scheme can meet specific design requirements. In addition, the design algorithm should put rationality in the first place, so as to realize the optimized project design effect and optimize the actual effect of chip operation. Therefore, as a designer, the first step is to build a specific algorithm module to complete the chip code design related to it. This is because the pre-designed code helps ensure the reliability of the algorithm, and the overall chip design effect can be significantly optimized. On the premise of fully completing board debugging and simulation testing, it should be possible to shorten the cycle of designing the entire chip consumption at the source, while also focusing on optimizing the existing overall hardware structure. For example, when it comes to developing some non-standard hardware interfaces, the new product design patterns mentioned above are usually used. [3]
- The main difficulty of FPGA design is to be familiar with the hardware system and internal resources, to ensure that the design language can achieve effective cooperation between components, improve the readability and utilization of the program. This also puts forward relatively high requirements for designers, and it is necessary to accumulate experience from multiple projects to meet relevant requirements. [3]
- In the design of the algorithm, it is necessary to focus on rationality, ensure the final completion of the project, propose solutions to the problem according to the actual situation of the project, and improve the operating efficiency of the FPGA. After the algorithm is determined, the module should be reasonably constructed to facilitate code design in the later stage. In the code design, you can use the pre-designed code to improve work efficiency and reliability. Write a test platform, perform code simulation tests and class debugging, and complete the entire design process. FPGA is different from ASIC, and the development cycle is relatively short. It can be combined with the design requirements to change the hardware structure. When the communication protocol is immature, it can help companies quickly launch new products to meet the needs of non-standard interface development. [3]
FPGA advantages and disadvantages
FPGA advantages
- The advantages of FPGA are as follows: [5]
- (1) FPGA is composed of hardware resources such as logic unit, RAM, and multiplier. By rationally organizing these hardware resources, hardware circuits such as multiplier, register, and address generator can be realized. [5]
- (2) FPGAs can be designed using block diagrams or Verilog HDL, from simple gate circuits to FIR or FFT circuits. [5]
- (3) The FPGA can be reprogrammed indefinitely. It only takes a few hundred milliseconds to load a new design solution. Reconfiguration can reduce hardware overhead. [5]
- (4) The operating frequency of the FPGA is determined by the FPGA chip and design. Some severe requirements can be met by modifying the design or replacing the faster chip. Factors such as craftsmanship). [5]
FPGA disadvantages
- The disadvantages of FPGA are as follows: [5]
- (1) All functions of the FPGA are implemented by hardware, and operations such as branch condition jump cannot be realized. [5]
- (2) FPGA can only implement fixed-point operations. [5]
- In summary: FPGA relies on hardware to implement all functions, and its speed can be compared with that of special-purpose chips, but the flexibility of design has a large gap compared with general-purpose processors. [5]
FPGA design language and platform
- Programmable logic devices are hardware carriers that implement the established functions and technical specifications of electronic application systems through EDA technology. FPGA, as one of the mainstream devices to achieve this approach, has direct user-facing, great flexibility and versatility. Convenient, hardware testing and fast implementation. [6]
- Hardware description language (HDL) is a language used to design digital logic systems and describe digital circuits. VHDL, Verilog HDL, System Verilog, and System C are commonly used. [6]
- As a comprehensive hardware description language, VHDL has characteristics that are independent of specific hardware circuits and independent of the design platform, have a wide range of description capabilities, are independent of specific devices, and can be complex The design of control logic is described with rigorous and concise codes. It has the support of many EDA companies and has been widely used in the field of electronic design. [6]
- VHDL is a high-level language for circuit design. Compared with other hardware description languages, VHDL has the characteristics of concise language, strong flexibility, and does not depend on device design. It makes it a universal hardware description language for EDA technology, making EDA Technology is easier for designers to master. [7]
- Verilog HDL is a widely used hardware description language that can be used in multiple stages of modeling, synthesis, and simulation of the hardware design process. [7]
- Verilog HDL advantages: similar to C language, easy to use, flexible. Case Sensitive. There are advantages in writing incentives and modeling. Disadvantages: Many errors cannot be found during compilation. [7]
- VHDL advantages: strict syntax and clear hierarchy. Disadvantages: long familiarity and inflexibility. [7]
- Quartus_ software is a complete multi-platform design environment developed by Altera Corporation, which can meet the design needs of various FPGAs and CPLDs, and is a comprehensive environment for on-chip programmable system design. [8]
- Vivado Design Suite is an integrated design environment released by FPGA vendor Xilinx in 2012. Including a highly integrated design environment and a new generation of tools from system to IC level, these are built on a shared, extensible data model and a common debugging environment. The Xilinx Vivado Design Suite provides a FIFO IP core that can be easily applied to the design. [9]
FPGA Industry Applications
FPGA video segmentation system
- In recent years, large-scale master control systems have been increasingly widely used, and the level of video segmentation technology related to them has also gradually improved. This technology is to use a multi-screen splicing display to display a video signal. The screen display scene is widely used. [2]
- With the advancement of technology, video segmentation technology has gradually matured, meeting the basic needs of people for clear video images. The FPGA chip has a special hardware structure. The internal structure can be adjusted by using a pre-edited logical structure file, and different files can be adjusted by using constrained files The connection and location of the logic unit properly handle the data line path, and its own flexibility and adaptability facilitate the development and application of users. When processing video signals, FPGA chips can make full use of their speed and structural advantages to implement pong-pong technology and pipeline technology. In the process of external connection, the chip uses data parallel connection to widen the bit width of the image information, and uses the internal logic function to increase the speed of image processing. Through the cache structure and clock management to achieve control of image processing and other equipment. In the overall design structure, the FPGA chip is in the core position, the interpolation processing of complex data, and the extraction and storage also play the role of overall control to ensure the stable operation of the system. In addition, video information processing is different from other data processing, which requires the chip to have special logic units and RAM or FIFO units to ensure that sufficient data transmission speed is improved. [2]
FPGA data delay and memory design
- FPGA has programmable delay digital unit, which has a wide range of applications in communication systems and various electronic devices, such as synchronous communication systems, time digitization systems, etc. The main design methods include numerical control delay line method, memory method, counter method Etc. Among them, the memory method is mainly realized by using FPGA's RAM or FIFO. [2]
- The use of FPGA to read and write SD card related data can be programmed according to the needs of specific algorithms and low FPGA chips. More practical changes can be achieved to continuously update read and write operations. Under this mode, only the original chip can be used to achieve effective control of the SD card, which significantly reduces the system cost. [2]
FPGA communication industry
- Under normal circumstances, the communications industry considers various factors such as cost and operation. In locations with a large number of terminal equipment, the amount of FPGA is large. The model is relatively high-end and can handle complex physical protocols to achieve logical control. At the same time, because of the logical link layer of the base station, the protocol part of the physical layer needs to be updated regularly, and it is more suitable to use FPGA technology. At present, FPGA is mainly used in the early and mid-term construction of the communication industry, and it is gradually replaced by ASIC in the later period. [2]
Other FPGA applications
- FPGA also has a wide range of applications in the fields of security and industry. For example, protocols such as video encoding and decoding in the field of security can be processed by FPGA in the process of front-end data acquisition and logic control. The industrial field mainly uses smaller FPGAs to meet the need for flexibility. In addition, because FPGAs have relatively high reliability, they are also widely used in the military and aerospace fields. In the future, with the continuous improvement of technology, the related processes will be upgraded. In many new industries such as big data, FPGAs will have wider application prospects. With the construction of 5G networks, a large number of FPGAs will be applied in the early stage, and new fields such as artificial intelligence will also use FPGAs more. [2]