FPGAs currently make up the maximum evolution of PLDs (Programmable Logic Device), defined as integrated circuits in which Boolean logic equations can be programmed. There are currently a wide variety of these chips, and some of them can contain up to 10,000 logic gates. Likewise, FPGAs are logic circuits programmable directly by the user, which requires relatively low-cost tools, such as development software and the recording device. Recording or programming of one of these devices can be accomplished in milliseconds. It is the reason why modern industry, such as radar system manufacturing, radio connection, electronic warfare, etc, use high-end FPGA module, such as zynq ultrascale+ board
What is an FPGA?
Basically, an FPGA device is a semiconductor device that contains blocks of logic whose interconnection and functionality can be programmed. Programmable logic can reproduce functions as simple as those carried out by a logic gate or a combining system to complex systems on a chip. Historically, FPGAs emerged as an evolution of the concepts developed in PLAs (Programmable Logic Array) and CPLDs (Complex Programmable Logic Device).
A hierarchy of programmable interconnects allows the logic blocks of an FPGA to be interconnected according to the need of the system designer. These logic blocks and interconnections can be programmed after the manufacturing process by the user/designer. In this way an FPGA can perform any necessary logic function. A recent trend has been to combine the logic blocks and interconnections of FPGAs with microprocessors and related peripherals, to form a programmable system on a chip. Additionally, many modern FPGAs support partial system reconfiguration, allowing one part of the design to be reprogrammed, while the other parts continue to function. This is the beginning of the idea of reconfigurable computing, or reconfigurable systems.
FPGA versus CPLD
They are both digital logic chips but they have different characteristics. FPGAs contain up to 100,000 logic blocks, while CPLDs contain at most 100 logic blocks, both with flip-flops. In addition, FPGAs can contain arithmetic functions such as summations, comparators, and RAM; which leads to containing large digital designs. However, CPLDs have faster entry/exit times than FPGAs.
FPGA versus Microcontroller
Microcontrollers are based on CPU architecture and execute instructions in a sequential manner. In contrast, FPGAs are programmable logic devices and the algorithm runs in a parallel manner.
FPGA versus ASIC
FPGAs are widely used by manufacturers that produce small-scale technology, which cannot justify the production of ASICs (Application Specific Integrated Circuit) due to the low volumes of devices they sell. FPGAs have similar functionality, at lower costs and with a slightly lower speed, however they have a higher power consumption and they cannot encompass systems as complex as themselves. Despite this, FPGAs have the advantages of being reprogrammable (which add enormous flexibility to the design flow), their development and acquisition costs are much lower for small numbers of devices, and their development time is also shorter. Also FPGAs are used as prototypes, which can be debugged and allow refining the design. With the design software, it can be simulated in hardware before having the corresponding ASIC manufactured.