ARM, DSP, FPGA comparison - very detailed and in-depth[Copy link]
ARM (Advanced RISC Machines) is a well-known company in the microprocessor industry. It has designed a large number of high-performance, low-cost, low-energy RISC processors, related technologies and software. The ARM architecture is the first RISC microprocessor designed for the low-budget market. It is basically the industry standard for 32-bit microcontrollers. It provides a series of cores, system extensions, microprocessors and system chip solutions. The four functional modules can be configured and produced by manufacturers according to the requirements of different users. Since all products use a common software system, the same software can run in all products. At present, ARM has a market share of more than 90% in the handheld device market, which can effectively shorten the time for application development and testing, and also reduce R&D costs. ARM is a 32-bit microcontroller. Its internal hardware resources have high performance. The ability to load an operating system is its main feature. With an operating system, it can perform multi-tasking real-time processing like a PC, that is, it can complete multiple tasks at the same time without affecting each other. DSP (digital signal processor) is a unique microprocessor with its own complete instruction system. It is a device that processes large amounts of information using digital signals. Its biggest feature is that it has a dedicated hardware multiplier and Harvard bus structure inside, which can process a large number of digital signals quickly. A digital signal processor includes a control unit, an arithmetic unit, various registers, a certain number of storage units, etc. in a small chip. It can also connect several memories on its periphery and communicate with a certain number of external devices. It has comprehensive software and hardware functions and is itself a microcomputer. DSP adopts Harvard design, that is, the data bus and the address bus are separated, so that the program and data are stored in two separate spaces, allowing the instruction fetching and execution instructions to overlap completely. That is to say, the next instruction can be fetched and decoded while executing the previous instruction, which greatly improves the speed of the microprocessor. In addition, it allows transmission between program space and data space because it increases the flexibility of the device. Its working principle is to receive analog signals, convert them into digital signals of 0 or 1, and then modify, delete, and strengthen the digital signals, and interpret the digital data back to analog data or actual environment format in other system chips. It is not only programmable, but also has a real-time running speed of tens of millions of complex instructions per second, far exceeding that of general-purpose microprocessors. It is an increasingly important computer chip in the digital electronic world. Its powerful data processing capability and high running speed are the two most commendable features. Because of its strong computing power, fast speed, small size, and high flexibility in software programming, it provides an effective way to engage in various complex applications. According to the requirements of digital signal processing, DSP chips generally have the following main features: (1) One multiplication and one addition can be completed in one instruction cycle; (2) The program and data spaces are separated, and instructions and data can be accessed at the same time; (3) There is fast RAM on the chip, which can usually be accessed in two blocks at the same time through independent data buses; (4) It has hardware support for low-overhead or no-overhead loops and jumps; (5) Fast interrupt processing and hardware I/O support; (6) It has multiple hardware address generators that operate in a single cycle; (7) It can perform multiple operations in parallel; (8) It supports pipeline operations, so that operations such as instruction fetch, decoding, and execution can be executed in an overlapping manner. Of course, compared with general-purpose microprocessors, other general functions of DSP chips are relatively weak. FPGA is the abbreviation of Field Programmable Gate Array. It is a product further developed on the basis of programmable devices such as PAL, GAL, PLD, and is the most integrated type in application-specific integrated circuits (ASICs). FPGA adopts a new concept of logic cell array LCA (Logic Cell Array), which includes three parts: configurable logic module CLB (Configurable Logic Block), input and output module IOB (Input Output Block) and internal wiring (Interconnect). Users can reconfigure the logic module and I/O module inside the FPGA to realize the user's logic. It also has the characteristics of static reprogrammable and dynamic in-system reconstruction, so that the function of the hardware can be modified by programming like software. As a semi-custom circuit in the field of application-specific integrated circuits (ASICs), FPGA not only solves the shortcomings of customized circuits, but also overcomes the shortcomings of the limited number of gate circuits of the original programmable devices. It is no exaggeration to say that FPGA can complete the functions of any digital device, from high-performance CPUs to simple 74 circuits, which can be realized by FPGA. FPGA is like a blank sheet of paper or a pile of building blocks. Engineers can freely design a digital system through traditional schematic input method or hardware description language. Through software simulation, we can verify the correctness of the design in advance. After the PCB is completed, you can also use the online modification capability of FPGA to modify the design at any time without changing the hardware circuit. Using FPGA to develop digital circuits can greatly shorten the design time, reduce the PCB area, and improve the reliability of the system. FPGA is set by the program stored in the on-chip RAM to set its working state, so the on-chip RAM needs to be programmed when working. Users can use different programming methods according to different configuration modes. When powered on, the FPGA chip reads the data in the EPROM into the on-chip programming RAM. After the configuration is completed, the FPGA enters the working state. After power failure, the FPGA returns to a blank chip, and the internal logical relationship disappears. Therefore, the FPGA can be used repeatedly. FPGA programming does not require a dedicated FPGA programmer, only a general EPROM or PROM programmer is required. When the FPGA function needs to be modified, just replace an EPROM. In this way, the same FPGA, different programming data, can produce different circuit functions. Therefore, the use of FPGA is very flexible. It can be said that FPGA chips are one of the best choices for small-batch systems to improve system integration and reliability. At present, there are many varieties of FPGA, including XILINX's XC series, TI's TPC series, ALTERA's FIEX series, etc. Difference: ARM has a relatively strong transaction management function, which can be used to run interfaces and applications, etc. Its advantages are mainly reflected in the control aspect; ARM is a 32-bit single-chip microcomputer, and its internal hardware resources have high performance. It can load the operating system as its main feature. With the operating system, it can process multiple tasks in real time like a PC, that is, it can complete multiple tasks at the same time without affecting each other. DSP is mainly used for calculation, such as encryption and decryption, modulation and demodulation, etc., and its advantages are powerful data processing capabilities and high operating speed; FPGA can be programmed with VHDL or Verilog HDL, which is flexible. Because it can be programmed, debugged, reprogrammed and repeated, it can be fully designed, developed and verified. When there are small changes in the circuit, the advantages of FPGA can be more evident. Its on-site programming ability can extend the life of the product in the market, and this ability can be used for system upgrades or debugging. DSP VS FPGA DSP is a general-purpose signal processor that uses software to implement data processing; FPGA uses hardware to implement data processing. DSP has low cost, flexible algorithms, and strong functionality, while FPGA has good real-time performance and high cost. FPGA is suitable for engineering applications with simple control function algorithms and a large number of repeated calculations, while DSP is suitable for engineering applications with complex control functions and a large number of computing tasks. DSP implements algorithms in software, while FPGA implements algorithms in hardware, so the processing speed of FPGA will be higher; an important reason why FPGA is faster than DSP is that FPGA can implement parallel computing, while DSP, due to hardware structural conditions, mainly relies on software to extract instructions for execution, which is understood as serial execution.