What is FPGA?
FPGA (Field Programmable Gate Array) is a product further developed on the basis of programmable devices such as PAL (Programmable Array Logic) and GAL (General Array Logic). It appeared as a semi-custom circuit in the field of application-specific integrated circuits (ASIC), which not only solved the shortcomings of custom circuits, but also overcome the shortcomings of the limited number of original programmable device gate circuits.
The introduction of FPGA
FPGA design is not a simple chip research, but mainly uses the FPGA model to design products in other industries. Different from ASIC, FPGA is widely used in the communication industry. FPGA-related products are becoming more and more closely related to smart products used in daily life, providing more possibilities for promoting technological progress and social development.
Compared with the traditional mode of chip design, FPGA chips are not simply limited to research and design chips, but can be optimized for products in many fields with the help of specific chip models. From the perspective of chip devices, the FPGA itself constitutes a typical integrated circuit in a semi-custom circuit, which contains digital management modules, embedded units, output units, and input units. On this basis, it is necessary to focus on the comprehensive chip optimization design of FPGA chips, and add new chip functions by improving the current chip design, thereby realizing the simplification of the overall structure of the chip and the improvement of performance.
Basic structure of FPGA
FPGA device belongs to a kind of semi-custom circuit in the application-specific integrated circuit. It is a programmable logic array, which can effectively solve the problem of the small number of gate circuits in the original device.
The basic structure of FPGA includes programmable input and output units, configurable logic blocks, digital clock management modules, embedded block RAM, routing resources, embedded dedicated hard cores, and embedded functional units at the bottom layer.
Because FPGA has the characteristics of abundant wiring resources, reprogrammable and high integration, and low investment, it has been widely used in the field of digital circuit design. The design process of FPGA includes algorithm design, code simulation and design, board debugging, the designer and the actual needs to establish the algorithm structure, use EDA to establish the design scheme or HD to write the design code, ensure that the design scheme meets the actual requirements through code simulation, and finally carry out the board. Level debugging, use the configuration circuit to download the relevant files to the FPGA chip to verify the actual operation effect
How FPGA Works
FPGA adopts the concept of Logic Cell Array (LCA), which includes three parts: Configurable Logic Block (CLB), Input Output Block (IOB), and Interconnect. Field Programmable Gate Array (FPGA) is a programmable device. Compared with traditional logic circuits and gate arrays (such as PAL, GAL and CPLD devices), FPGA has a different structure.
The FPGA uses a small look-up table (16×1RAM) to implement combinational logic. Each look-up table is connected to the input of a D flip-flop, and the flip-flop drives other logic circuits or drives I/O. The logic function can also realize the basic logic unit module of sequential logic function, and these modules are connected to each other or to the I/O module by metal wiring.
The logic of FPGA is realized by loading programming data into the internal static storage unit. The value stored in the memory unit determines the logic function of the logic unit and the connection between modules or between modules and I/O, and finally determines the logic function of the logic unit. What FPGAs can do, FPGAs allow unlimited programming.
FPGA Chip Design
Compared with other types of chip designs, FPGA chips usually require a higher threshold and a more stringent basic design process. Specifically, when designing, it should be closely combined with the relevant schematic diagram of the FPGA, and a large-scale special chip design is realized accordingly. By using the special design algorithm of Matlab and C language, it should be possible to achieve a smooth transformation in all directions, so as to ensure that it conforms to the current mainstream chip design ideas.
Under this premise, if the above design ideas are selected, it is usually necessary to focus on the orderly integration of various components and the corresponding design language, thereby ensuring chip programming with strong usability and readability. Using FPGA can realize board debugging, code simulation and other related design operations to ensure that the current code writing method and design scheme can meet specific design requirements.
In addition, regarding the design algorithm, the rationality should be put in the first place, so as to realize the optimized project design effect and optimize the effectiveness of the chip operation. Therefore, as a designer, the first thing is to build a specific algorithm module, so as to complete the chip code design related to it. This is because the pre-designed code helps to ensure the reliability of the algorithm, and the overall chip design effect can also be significantly optimized.
Under the premise of fully completing the board debugging and simulation test, it should be possible to shorten the cycle of designing the entire chip consumption at the root, and at the same time, it is also committed to optimizing the overall structure of the current existing hardware. For example, when it comes to developing some non-standard hardware interfaces, the above-mentioned new product design patterns are usually used.
The main difficulty of FPGA design is to be familiar with the hardware system and internal resources, to ensure that the design language can realize the effective cooperation between components, and to improve the readability and utilization of the program. This also puts forward relatively high requirements for designers, and it takes the accumulation of experience in multiple projects to meet the relevant requirements.
In the algorithm design, it is necessary to focus on the rationality, to ensure the final effect of the project, and to propose a solution to the problem according to the actual situation of the project to improve the operating efficiency of the FPGA. After the algorithm is determined, the modules should be constructed reasonably to facilitate the later code design.
Pre-designed code can be used in code design to improve work efficiency and enhance reliability. Write a test platform, perform code simulation testing and board debugging, and complete the entire design process.
Unlike ASIC, FPGA has a relatively short development cycle, and can change the structure of hardware according to design requirements. In the case of immature communication protocols, it can help companies quickly launch new products to meet the needs of non-standard interface development.
Advantages and disadvantages of FPGA
Advantages FPGA
- FPGA is composed of hardware resources such as logic unit, RAM, and multiplier. By rationally organizing these hardware resources, hardware circuits such as multipliers, registers, and address generators can be realized.
- FPGA can be designed using block diagrams or Verilog HDL, from simple gate circuits to FIR or FFT circuits
- FPGA can be reprogrammed indefinitely, loading a new design in just a few hundred milliseconds, using reconfiguration to reduce hardware overhead
- The operating frequency of the FPGA is determined by the FPGA chip and design, and some harsh requirements can be met by modifying the design or replacing a faster chip (of course, the operating frequency is not unlimited and can be increased, but is affected by the current IC process and other factors. constraints)
Disadvantages of FPGA
- All functions of FPGA are realized by hardware, and operations such as branch conditional jump cannot be realized
- FPGA can only implement fixed-point operations
- FPGA relies on hardware to implement all functions, and its speed can be compared with special-purpose chips, but its design flexibility is far behind that of general-purpose processors.
FPGA Design Language and Platform
Programmable logic device is a hardware carrier that realizes the established functions and technical indicators of electronic application systems through EDA technology. As one of the mainstream devices to realize this approach, FPGA has direct user-oriented, flexibility and versatility. Convenience, hardware testing and fast implementation.
Hardware Description Language (HDL) is a language used to design digital logic systems and describe digital circuits. The commonly used ones are VHDL, Verilog HDL, System Verilog and System C.
As a comprehensive hardware description language, VHDL for high-speed integrated circuits is independent of specific hardware circuits and design platforms. It has a wide range of description capabilities, does not depend on specific devices, and can convert complex The design of control logic is described by rigorous and concise code, which has been supported by many EDA companies and has been widely used in the field of electronic design.
VHDL is a high-level language used for circuit design. Compared with other hardware description languages, it has the characteristics of concise language, strong flexibility, and no dependence on device design, making it a general hardware description language for EDA technology. Technology is easier for designers to master.
Verilog HDL is a widely used hardware description language, which can be used in multiple stages such as modeling, synthesis, and simulation of the hardware design process.
Verilog HDL Advantages: Similar to C language, easy to use and flexible. Case Sensitive. Advantages in writing incentives and modeling. Disadvantage: Many errors cannot be found at compile time.
Advantages of VHDL: Rigorous syntax and clear hierarchy. Disadvantages: long familiarity time, not flexible enough.
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 the design of programmable systems on a chip.
The Vivado Design Suite is an integrated design environment released by FPGA manufacturer Xilinx in 2012. Includes a highly integrated design environment and a new generation of system-to-IC-level tools built on a shared extensible data model and common debug environment. The FIFO IP cores are available in the Xilinx Vivado Design Suite for easy use in designs.
FPGA Industry Applications
1.Video segmentation system
In recent years, large-scale master control systems have been increasingly widely used, and the level of related video segmentation technology is also gradually improving. The scenes displayed on the screen are widely used.
With the advancement of technology, video segmentation technology has gradually matured, meeting people’s basic needs for clear video images. The hardware structure of FPGA chips is relatively special. The pre-edited logic structure file can be used to adjust the internal structure, and the constrained file can be used to adjust different The connection and location of the logic unit, properly handle the data line path, its own flexibility and adaptability facilitate the user’s development and application.
When processing video signals, FPGA chips can make full use of their speed and structural advantages to realize ping-pong technology and pipeline technology. In the process of external connection, the chip adopts the way of data parallel connection to widen the bit width of the image information, and use the internal logic function to improve the speed of image processing.
Image processing and other devices are controlled through cache structures and clock management. In the overall design structure, the FPGA chip is at the core position, and the interpolation processing, extraction and storage of complex data also play a role in overall control to ensure the stable operation of the system. In addition, video information processing is different from other data processing, requiring the chip to have special logic units and RAM or FIFO units to ensure sufficient data transmission speed.
2.Data Delay and Storage Design
FPGA has a programmable delay digital unit, which is widely used in communication systems and various electronic devices, such as synchronous communication systems, time numerical systems, etc. The main design methods include numerical control delay line method, memory method, and counter method. etc., in which the memory method is mainly implemented by using the RAM or FIFO of the FPGA.
Using FPGA to read and write SD card-related data can be programmed according to the needs of specific algorithms, and the FPGA chip can be programmed, and the read and write operations can be continuously updated with changes in the actual situation. In this mode, only the original chip can be used to effectively control the SD card, which significantly reduces the cost of the system.
3.Communications industry
Under normal circumstances, the communication industry comprehensively considers various factors such as cost and operation. In locations with a large number of terminal devices, the amount of FPGA is relatively large. The base station is most suitable for using FPGA, and almost every board of the base station needs to use FPGA chips, and The model is relatively high-end, which can handle complex physical protocols and realize logical control.
At the same time, due to the logical link layer of the base station, the protocol part of the physical layer needs to be updated regularly, so 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 is gradually replaced by ASIC in the later stage.
4.Other industry applications
FPGA is also widely used in security, industry and other fields. For example, protocols such as video coding and decoding in the security field can be processed by FPGA in the process of front-end data acquisition and logic control. The industrial field mainly uses smaller-scale FPGAs to meet the needs of flexibility.
In addition, because FPGA has relatively high reliability, it is also widely used in military and aerospace fields. In the future, with the continuous improvement of technology, related processes will be upgraded and transformed. In many new industries such as big data, FPGA will have wider application prospects. With the construction of 5G network, FPGA will be widely used in the initial stage, and new fields such as artificial intelligence will also use FPGA more.