The difference between FPGA and DSP (rough summary)[Copy link]
I. Structural features FPGA a. There are a large number of logic gates and triggers in the chip, most of which are lookup table structures, and the implementation process is mostly SRAM b. It can be quickly designed and improved through hardware description language, and can be repeatedly programmed c. The original logic configuration will generally be lost after power failure; the timing is difficult to plan; it cannot handle multiple events; it is not suitable for conditional operations DSP a. It adopts the Harvard structure and improved Harvard structure with data and program separation, 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 the previous instruction is executed, which greatly improves the speed of the microprocessor. b. DSP is programmed through assembly or high-level language (such as C language), and has a complete C language compiler c. It has software and hardware waiting functions and can interface with various memories d. It has interrupt processor and timing controller, which is convenient for forming a small-scale system e. It has DMA channel controller and serial communication port, which is convenient for data transmission f. It is suitable for mass production to reduce costs. The disadvantage is that once the (hardware) design is determined, it is not easy to modify 2. Internal resources FPGA a.FPGA focuses on designing hardware circuits with a certain function. The internal resources are tiny units such as Versatiles (ActelFPGA) b. The wiring resources inside the FPGA connect the signals inside these functional modules and between modules to form larger modules. c.FPGA can internally implement ALU, adder, multiplier, accumulator, FIFO, SRAM, DDRcontroller, FFT, HDLC, DMA, PWM and other digital circuits, that is to say, we need to use it to implement a specific or general hardware function or one or more modules. The details of these modules must be described in HDL to design and implement d.It is widely used to implement digital circuit modules. It can basically realize all digital circuits, traditional digital function modules, and digital processing modules that meet the specific needs of customer products e.The driving capability or voltage of IO is programmable DSP a.DSP is mainly for algorithm processing. The internal resources are mainly multipliers, adders and other resources. It has SPI interface and UART interface and accepts certain instruction sets b.The internal resources are basically ready-made and need to be reconfigured according to customer needs c. But relatively speaking, its functions are limited, so it is mainly used in certain specific fields d. There are many ready-made hardware modules, interfaces and controllers inside, but software programming is required to realize PWM control, interface control, UART interface, SPI interface and other functions e. Limited by the clock cycle of the instruction set, DSP cannot process too high signals III. Applicable occasions FPGA FPAG is suitable for systems with high-speed sampling rates (≥several MHZ), high data rates, block diagram programming, fixed or repeated processing tasks, and fixed point. ) Suitable for high-speed sampling frequencies, especially when the tasks are relatively fixed or repeated, as well as for prototypes and system development DSP DSP is suitable for systems with lower sampling rates, low data rates, multi-conditional operations, processing complex multi-algorithm tasks, programming in C language, and systems using floating points. ) Suitable for multi-conditional processes at lower sampling rates, especially complex multi-algorithm tasks