FPGA and DSP, the difference between the two is so big[Copy link]
FPGA is a programmable silicon chip, and DSP is digital signal processing. When system designers are in the architectural design stage of the project, they face the important question of whether to use FPGA or DSP. This article will first introduce the characteristics of FPGA and DSP respectively, and then analyze the differences between the two from the perspectives of internal resources, programming language, and functions. 1. Characteristics of FPGA and DSP Structural characteristics of FPAG 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. Large scale, high integration, fast processing speed, and high execution efficiency. It can complete complex sequential logic design, and the programming is flexible, convenient, simple, and can be repeatedly programmed. Many FPAGs can be reprogrammed infinitely. Reconfiguration can reduce hardware overhead. Disadvantages are: the original logic configuration is generally lost after power failure; the timing is difficult to plan; it cannot handle multiple events; it is not suitable for conditional operations. Structural characteristics of DSP 1. The Harvard structure and improved Harvard structure with data and program separation are used to execute instructions faster. 2. Pipeline technology is used to reduce the execution time of each instruction. 3. Multiple buses in the chip can perform instruction fetching and multiple data access operations at the same time. 4. Independent accumulator and adder, which can complete multiplication and accumulation operations simultaneously in one cycle. 5. There are DMA channel controllers and serial communication ports, etc., which are convenient for data transmission. 6. There are interrupt processors and timing controllers, which are convenient for forming small-scale systems. 7. It has software and hardware waiting functions and can interface with various memories. As a special microprocessor, DSP is mainly used for calculations, and its advantage is the flexibility of software. It is suitable for conditional processes, especially complex multi-algorithm tasks. DSP is programmed through assembly or high-level languages (such as C language) to implement solutions in real time. Therefore, the advantages of using DSP devices are: fast software update speed, which greatly improves the reliability, versatility, replaceability and flexibility of the system. Disadvantages: limited by serial instruction stream; more than a few MHZ sampling rate, a DSP can only complete very simple operations on data; long R&D cycle. 2. Internal resources FPGA focuses on designing hardware circuits with a certain function. The internal resources are tiny units such as VersaTIles (ActelFPGA). The internal units of FPGA initially use HDL language to implement the design description of hardware circuits before programming. The wiring resources inside the FPGA connect the signals inside and between these functional modules to form a larger module. FPGA can internally implement ALU, adder, multiplier, accumulator, FIFO, SRAM, DDRcontroller, FFT, HDLC, DMA, PWM and other digital circuits, which means that we need to use it to implement a specific or general hardware function, one or more modules, and each detail of these modules must be described in HDL to design and implement. Current FPGAs can directly embed microprocessors such as ARM7, CoretexM1, Core8051, etc., which are used as soft cores of FPGAs. Some FPGA manufacturers also put some hardware modules directly into FPGAs, which are hard cores inside FPGAs. Traditional FPGAs all implement pure digital circuits. In the industry, only Actel's FPGA has implemented the digital-analog hybrid PSC single-chip technology, which truly improves and expands the application functions and fields of FPGAs. In addition, most FPGAs have phase-locked loops such as PLL and DLL, and adjustable slew. Actel also has built-in hardware units such as OSC, RTC, and Powermanager. Even Actel's Fusion series has built-in 600kbps 12-bit ADC and analog interfaces such as MOSFETDriver. There are internal resources such as UserFlashMemeory and FlashROM to realize functions such as real PSC and Bootloader. DSP is mainly for algorithm processing. The internal resources are mainly multipliers, adders and other resources. There are SPI interfaces and UART interfaces, and they accept certain instruction sets. The internal resources are basically ready-made and need to be reconfigured according to customer needs. It is convenient for customers to use, but relatively speaking, its functions are limited, so it is mainly used in certain specific fields. DSP also has built-in phase-locked loops, counters, Baudrate generators, and some DSPs also have ADC analog interfaces. 3. Programming language FPGA mainly uses HDL, including VHDl, Verilog, and mixed digital and analog description languages Verilog-AMS. (Course recommendation: FPGA training) DSP uses C and assembly language programming. (Course recommendation: C6000 DSP training) 4. From a functional perspective, FPGA is widely used to implement digital circuit modules. It can basically realize all digital circuits, traditional digital function modules, and digital processing modules for specific customer product requirements. There are many types of FPGA IO bridges. The IO standards and protocols supported by different types and levels of FPGA are different, but the driving capabilities or voltages of these IOs are programmable. The realization of any digital function circuit, high-speed signal processing, signal processing in the control field, and the realization of bridge conversion protocols, Actel's Fusion can also be used for current/voltage detection, temperature detection, MOSFET driver, power management, and its unique Flash process technology can rely on battery power to work, and save data in real time when power is off, ultra-low power consumption, multiple working modes (Static, Sleepmode), especially the function of the IGLOO chip, which consumes only 5uW in Sleepmode. Such power consumption can be used in mobile handheld devices such as mobile phones and GPS to play a greater functional application. In addition, FPGA is used to implement the early design verification of ASIC, FPGA to implement the functions of DSP, CPU, MCU, memory controller, industrial PWM, SVPWM, Clarke, Park forward and inverse transformation, VGA control, data encoding and decoding, demultiplexing, processing of signals up to Gbps, protocol conversion and so on, which are all difficult for DSP to handle. There are many ready-made hardware modules, interfaces and controllers inside DSP, but they need software programming settings to realize PWM control, interface control, UART interface, SPI interface and other functions. However, due to the limitation of the clock cycle of the instruction set, DSP cannot process too high signals. As for signals of Gbps, LVDS and other signals are difficult to involve. Therefore, the corresponding application fields will be limited. However, customers in different fields have different design solutions and different focuses. Designers in some fields also like to use DSP. If FPGA is used to handle algorithm implementation, protocol processing, etc., it will be more costly than gain. 5. Applicable occasions DSP is suitable for systems with low 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. FPAG is suitable for systems with high-speed sampling rates (≥ several MHZ), high data rates, block diagram programming, fixed or repetitive processing tasks, and fixed point. ) Suitable for high-speed sampling frequencies, especially when tasks are relatively fixed or repetitive, as well as for prototype production and system development.