Home > Common Problem > what is fpga

what is fpga

青灯夜游
Release: 2023-01-29 15:59:43
Original
54805 people have browsed it

FPGA is an integrated chip mainly composed of digital circuits, which is a type of programmable logic device (PLD); FPGA is a type and a half in the field of application-specific integrated circuits (ASIC). The emergence of customized circuits not only solves the shortcomings of customized circuits, but also overcomes the shortcomings of the limited number of gates in the original programmable devices.

what is fpga

The operating environment of this tutorial: Windows 7 system, Dell G3 computer.

What is fpga

FPGA (Field Programmable Gate Array) is the basis of programmable devices such as PAL (Programmable Array Logic) and GAL (General Array Logic) product of further development. It appears as a semi-custom circuit in the field of application-specific integrated circuits (ASIC), which not only solves the shortcomings of custom circuits, but also overcomes the shortcomings of the limited number of gates in the original programmable devices.

FPGA is essentially a kind of chip, an integrated chip mainly composed of digital circuits.

FPGA was invented in 1985 by Ross Freeman, one of the founders of Xilinx. It is a type of programmable logic device (PLD). This time is about 20 years later than the emergence of the famous Moore's Law, but once FPGA was invented, the subsequent development speed was faster than most people imagined.

Figure 1 shows the physical picture of the FPGA chip:

what is fpga
Figure 1 The physical picture of the FPGA chip

FPGA development history

Before the invention of PLD, engineers used discrete logic chips containing several logic gates to build circuit systems. It was difficult to implement complex logic functions.

In order to solve this problem, in the 1970s, the Programmable Logic Array (PLA) came out. The PLA contains a fixed number of AND gates and NOT gates, which form the "AND plane" respectively. ” and “or plane”, that is, “AND connection matrix” and “OR connection matrix”, and the connection matrix that can only be programmed once (because the programming here is based on fuse technology), so some relatively complex AND, or the logical function of multiple expressions, the internal structure of PLA is shown in Figure 2:


Figure 2 Internal structure of PLA

Also came out at the same time as PLA is programmable Programmable Read-Only Memory (PROM), its internal structure is shown in Figure 3. Like PLA, PROM contains an "AND connection matrix" and an "OR connection matrix" internally, but the connection matrix of the AND gate is fixed in hardware, and only the connection matrix of the OR gate is programmable.


Figure 3 PROM internal structure

If only the connection matrix of the AND gate is programmable, and the connection matrix of the OR gate is fixed by hardware, then this The chip is called Programmable Array Logic (PAL). According to the different working modes of the output circuit, PAL can be divided into three-state output, register output, and complementary output. However, PAL still uses the fuse process and can only be programmed once. . The structure diagram of PAL is shown in Figure 4.


Figure 4 PAL structure diagram

On the basis of PAL, a general array logic device (Generic Array Logic, GAL) has been developed. Compared with Compared with PAL, GAL has two improvements:

  • adopts an electrically erasable CMOS process, which can be compiled multiple times, enhancing the reconfigurability and flexibility of the device;
  • Adopts a programmable output logic macro cell (Output Logic Macro Cell, OLMC). By programming OLMC, the output of the GAL can be set to different states. Only one model of GAL can realize the working mode of all PAL device output circuits. Enhanced device versatility.

The structure diagram of GAL is shown in Figure 5:


Figure 5 GAL structure diagram

The early PLD was mainly composed of The above four types of chips are composed of PROM, PLA, PAL and GAL. Their common feature is that they can implement logic functions with good speed characteristics, but because their structures are too simple, they can only implement smaller digital circuits.

With the development of science and technology and the progress of society, people have higher and higher requirements for the integration of chips. Early PLD products could not meet people's needs, and Complex Programmable Logic Device (CPLD) was born. CPLD can be viewed as a continuation of the PLA device structure, and a CPLD device can also be viewed as a collection of several PLAs and a programmable connection matrix. The internal structure diagram of CPLD is shown in Figure 6.


Figure 6 CPLD structure diagram

FPGA came out a few years earlier than CPLD, and is called a high-density programmable logic device together with CPLD, but they are essentially different. The internal architecture of the FPGA chip does not follow a structure similar to PLA, but adopts the concept of Logic Cell Array (LCA), which changes the idea of ​​using a large number of AND gates and NOT gates in PLD devices in the past, mainly using lookup tables. and registers.

In addition, FPGA and CPLD also have differences in resource type, speed, etc., as shown in the table below.

##SpeedFastSlowOther resourcesRAM, PLL, DSP, etc.——## Confidentiality

In terms of internal implementation mechanism, the types of FPGA can be divided into based on SRAM technology, based on antifuse technology, and based on EEPROM/Flash technology. In terms of circuit structure, FPGA programmability refers to three aspects of programmability: programmable logic blocks, programmable I/O, and programmable wiring resources. Programmable logic blocks are the core of FPGA programmability, and the three technologies we mentioned above are also technologies for programmable logic blocks.

The structure diagram of FPGA is shown in Figure 7.


Figure 7 FPGA structure diagram

Technical advantages of FPGA

Many readers know FPGA It’s powerful, but what’s so powerful about it?

Take the microcontroller as an example. We all know that the microcontroller is powerful and can do almost everything, while the FPGA is only stronger than it. Because as long as the functions that the microcontroller can implement, the FPGA can definitely implement them. Of course, this requires a major premise - when the FPGA resources are sufficient. However, the functions that FPGA can realize may not be easily realized by microcontroller. This is an indisputable fact. If you don’t believe it, it only means that you don’t understand FPGA yet.

Speaking of which, readers can’t help but ask, since FPGA is so powerful, why are microcontrollers used more widely? That's because in business, price is often one of the important factors affecting products.

The price of MCU is much lower than that of FPGA, and depending on the performance and resources, the price of FPGA also varies greatly. The price of a single FPGA chip ranges from tens of yuan to hundreds of thousands of yuan. . In comparison, the price of single-chip microcomputer is much cheaper. If we can achieve the same function with a low-priced single-chip computer, we will not choose a relatively expensive FPGA, unless the single-chip computer cannot meet the functional requirements. Therefore, when the company conducts its own development, in order to save costs, it may choose a cheaper microcontroller instead of a relatively expensive FPGA. Because microprocessors such as microcontrollers and ARM are in high demand, the price is more advantageous.

But whether it is a microcontroller, ARM or FPGA, they are just a tool to help us realize functions. The specific choice needs to be analyzed based on specific problems. In short, there are no universal tools, only tools that meet production needs. We should not be biased against a certain tool, but should consider it comprehensively. Likewise, as you learn more, you'll find that these tools all need to be mastered.

The application scenarios of FPGA are far less than that of microcontrollers and ARM, and they mainly target problems that cannot be solved by microcontrollers and ARM. For example, if flexible and efficient, high throughput, low batch latency, fast parallel computing, reconfigurable, reprogrammable, customized performance and customized power consumption are required, these tasks can only be undertaken by FPGA.

Compared with integrated circuits (Application Specific Integrated Circuit, ASIC) designed for special purposes, FPGA has three advantages:

1) Flexibility

By programming an FPGA, the FPGA can perform any logic function that an ASIC can perform. The unique advantage of FPGA lies in its flexibility, that is, the chip function can be changed at any time. This feature can reduce the cost and risk of the product when the technology is not yet mature. This feature is particularly important in the early days of the popularization of 5G technology.

2) Shortened time to market

The FPGA can be used directly after programming. The FPGA solution does not need to go through the chip tape-out cycle of three months to one year, which provides enterprises with Strive for time to market for products.

3) There is a certain cost advantage

The main difference between FPGA and ASIC is that the ASIC solution has fixed costs while the FPGA solution has almost none. When the usage is small, use The FPGA solution does not need to pay millions of dollars in one-time tape-out costs, and it does not need to bear the risk of tape-out failure. At this time, the cost of the FPGA solution is lower than that of ASIC. As the usage increases, the cost advantage of the FPGA solution gradually increases. After a certain amount of usage is reduced, the ASIC solution has more advantages in terms of cost due to the economies of scale produced by a large number of tape-outs, as shown in the following figure:


Figure 8 Cost comparison between FPGA solution and ASIC solution

Therefore, FPGA is usually used in digital signal processing, video processing, image processing, 5G communication field, medical field, industrial control, cloud service, accelerated computing, artificial intelligence, data center , autonomous driving, chip verification and other fields play an irreplaceable role. Only by mastering the general FPGA design method can you make great achievements in the fields where FPGA is unique.

The application direction of FPGA

FPGA is between software and hardware. If you use it for interface and communication, it will favor hardware; use it for For algorithms and control, it tends to be software. With the rise of artificial intelligence and machine vision, FPGAs are more biased towards heterogeneous software algorithms and have the potential to compete with GPUs.

The performance comparison chart between FPGA and GPU is shown in Figure 9:


Figure 9 The performance comparison chart between FPGA and GPU

FPGA software direction: Focus on software development, develop FPGA's accelerated application capabilities in data analysis, artificial intelligence, machine vision and other fields, mainly using OpenCL and HLS technology to achieve collaborative development of software and hardware.

FPGA Hardware Direction: Focusing on logic design, focusing on application design, integrated circuit design and chip verification capabilities in specific fields of FPGA.

The initial application field of FPGA was the communication field. However, with the development of the information industry and microelectronics technology, FPGA technology has become one of the most popular technologies in the information industry, and its application scope has expanded to include aerospace, automobiles, Popular fields such as medical care, broadcasting, testing and measurement, consumer electronics, and industrial control. With the development of technology and advancement of technology, it has begun to penetrate into life from all angles.

For more related knowledge, please visit the FAQ column!

Table: Performance comparison between FPGA and CPLD
Device types/characteristics FPGA CPLD
Internal structure Look Up Table Product Term
Program storage Internal SRAM structure, external EEPROM or Flash storage program Internal EEPROM or Flash
Resource type Rich trigger resources Rich combinational logic resources
Integration degree High Low
Use occasions Complete more complex algorithms Complete control logic
Generally cannot be kept secret (encryption core can be used) Can be encrypted

The above is the detailed content of what is fpga. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template