Date: Jan 22, 2021
Click Count: 2866
FPGA is a kind of programmable silicon chip, DSP is digital signal processing, when the system designer is facing the important question of whether to use FPGA or DSP in the architectural design stage of the project. This article will first introduce the characteristics of FPGA and DSP separately, and then analyze the differences between the two from the perspectives of internal resources, programming languages, and functions.
1. Features of FPGA and DSP
Structural characteristics of FPAG
There are a large number of logic gates and flip-flops in the chip, most of which are look-up 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, and simple, and can be repeated multiple times. Many FPGAs can be programmed repeatedly indefinitely. Using reconfiguration can reduce hardware overhead. The disadvantages are: the original logic configuration is generally lost after a power failure; timing is difficult to plan; it cannot handle multiple events; it is not suitable for conditional operation.
Structural characteristics of DSP
The Harvard structure with separated data and program and the improved Harvard structure is adopted to execute instructions faster.
Using pipeline technology to reduce the execution time of each instruction.
Multi-bus on-chip, which can perform instruction fetching and multiple data access operations at the same time.
Independent accumulator and adder, multiplication and accumulation can be done simultaneously in one cycle.
With a DMA channel controller and serial communication port, it is convenient for data transmission.
With an interrupt processor and timing controller, it is convenient to form a small-scale system.
With software and hardware waiting for function, it can interface with various memories.
As a special microprocessor, DSP is mainly used for calculation. The advantage is the flexibility of software. Suitable for conditional processes, especially complex multi-algorithm tasks. DSP uses assembly or high-level language (such as C language) for programming, real-time implementation of the program. Therefore, the advantage of using DSP devices is that the software update speed is fast, which greatly improves the reliability, versatility, replaceability, and flexibility of the system. Disadvantages: Restricted by the serial instruction stream; more than a few MHZ sampling rate, a DSP can only complete very simple calculations on the data; long development cycle.
2. Internal resources
FPGA focuses on the design of hardware circuits with a certain function. The internal resources are tiny units such as VersaTIles (ActelFPGA). The internal units of the FPGA are initially programmed using HDL language to implement the design description of the hardware circuit. The wiring resources inside the FPGA connect the signals inside and between the functional modules to form a larger module. FPGA can implement ALU, adder, multiplier, accumulator, FIFO, SRAM, DDR controller, FFT, HDLC, DMA, PWM, and other digital circuits internally, which means that we need to use it to implement a specific or general hardware function One or more modules, the details of these modules must use HDL to describe the design and implementation.
The current FPGA can directly embed microprocessors such as ARM7, CoretexM1, Core8051, and other microprocessors for the soft core of the FPGA. Some FPGA manufacturers directly implement some hardware modules into the FPGA. These are the hard cores inside the FPGA. Traditional FPGAs implement pure digital circuits. Only Actel's FPGAs in the industry have implemented digital-analog hybrid PSC single-chip technology, which has truly improved and expanded the application functions and fields of FPGAs.
Also, most FPGAs have phase-locked loops such as PLL and DLL, and Slew is adjustable. Actel also has built-in hardware units such as OSC, RTC, and Power manager. Even Actel's Fusion series also has a built-in 600kbps 12bit Analog interfaces such as ADC and MOSFETDriver, internal resources such as UserFlashMemeory, FlashROM, etc. can realize real PSC, Bootloader, and other functions.
DSP is mainly for algorithm processing. The internal resources are mainly multipliers, adders, and other resources. There are SPI interfaces and UART interfaces, which accept a certain set of instructions. The internal resources are ready and need to be reconfigured according to customer needs. , It is convenient for customers to use, but its function is relatively limited, so it is mainly used in some specific fields. DSP also has an embedded phase-locked loop, counter, Baudrate generator, and some DSPs also have ADC analog interfaces.
3. Programming language
FPGAs mainly use HDL, including VHDL, Verilog, and Verilog-AMS, a description language of mixed digital and analog. About FPGA programming language, please click to read.
DSP uses C, assembly language programming.
4. Functional perspective
FPGAs are commonly used to implement digital circuit modules and basically can implement all digital circuits, traditional digital functional modules, and digital processing modules for specific customer product requirements. There are many types of FPGA IO bridges, and the IO standards and protocols supported by different types of FPGAs are not the same, but the drive capabilities or voltages of these IOs are all programmable. Realization of any digital functional circuit, high-speed signal processing, signal processing in the control field, and the realization of bridge conversion protocol. Actel's Fusion can also be used for current/voltage detection, temperature detection, MOSFET driver, power management, and its unique Flash process The 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, Sleep mode), especially the function of the IGLOO chip, which consumes only 5uW in Sleep mode. Such power consumption can be used in mobile phones, GPS, and other mobile handheld devices to play more functional applications.
Besides, FPGA is used to realize the pre-design verification of ASIC, FPGA realizes DSP function, realizes CPU function, MCU function, memory controller, PWM, SVPWM, Clarke, Park forward and inverse conversion Realization, VGA control, data encoding, and decoding, demultiplexing, signal processing up to Gbps, protocol conversion realization, etc. are all functions that DSP is difficult to handle.
There are many ready-made hardware modules and interfaces and controllers inside the DSP, but software programming is required 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 handle signals that are too high. As for Gbps signals, signals such as LVDS are difficult to deal with. So the corresponding application areas will be limited. However, customers in different fields have different design plans and different priorities. Designers in some fields also like to use DSP, such as algorithm implementation, protocol processing, etc. If you switch to FPGA for processing, it will not pay off.
5. Applicable occasions
DSP is suitable for the system with low sampling rate, low data rate, multi-condition operation, processing complex multi-arithmetic tasks, using C language programming, and the system using floating point. ) It is suitable for multi-condition processes at lower sampling rates, especially complex multi-algorithm tasks.
FPAG is suitable for system high-speed sampling rate (≥several MHZ), high data rate, block diagram programming, fixed or repeated processing tasks, and fixed-point use. ) It is suitable for high-speed sampling frequency, especially when the task is relatively fixed or repetitive, as well as the occasions of prototype and system development.
FPGA Configuration Flash Memory
CPLD XA9500XL Family 3.2K Gates 144 Macro Cells 64.5MHz 0.35um, CMOS Technology 3.3V Automotive 144-Pin CSBGA
CPLD XA9500XL Family 1.6K Gates 72 Macro Cells 64.5MHz 0.35um Technology 3.3V Automotive 100-Pin TQFP
CPLD XA9500XL Family 1.6K Gates 72 Macro Cells 64.5MHz 0.35um Technology 3.3V Automotive 64-Pin VTQFP
FPGA Virtex-4 FX Family 19224 Cells 90nm Technology 1.2V 672-Pin FCBGA