The rapid development of digital signal processing technology and large-scale integrated circuit technology has provided us with new ideas and methods for designing digital circuits . The current digital system design is developing in the direction of fast speed, large capacity, small size and light weight. The development of DSP and FPGA technology makes this trend possible and inevitable.
Like computers, the theory of digital signal processing has been around since the 1960s. With the emergence of DSP in the 1980s, its rapid development has changed the face of signal processing. Today, DSP has been widely used in various fields such as voice, image, communication, radar, electronic countermeasures, instrumentation, etc. DSP has played a very critical role and has become the main method of digital circuit design.
Since the 1980s, the emergence of an advanced gate array, FPGA, has created another digital circuit design method with very good application prospects. The advantages of FPGA-based digital circuit design in terms of reliability, volume and cost are huge.
In addition to the above two solutions, there is also a DSP + FPGA solution, as well as a solution that selects an FPGA with an internally embedded DSP module to implement the system.
1 Structural characteristics of DSP and FPGA
1.1 Structural characteristics of DSP
DSP is a microprocessor with a special structure. The DSP chip uses a Harvard structure with separate programs and data, has a dedicated hardware multiplier, widely uses pipeline operations, and provides special DSP instructions, which can be used to quickly implement various digital signal processing algorithms. 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 memory and data memory are two independent memories, each of which is independently addressed and can access instructions and data at the same time;
(3) The chip has fast RAM, which can usually be accessed simultaneously in two blocks through independent data buses;
(4) Hardware support for low-overhead or no-overhead loops and jumps;
(5) Fast interrupt processing and hardware I/O support;
(6) Having multiple hardware address generators operating in a single cycle;
(7) Multiple operations can be performed in parallel;
(8) Support pipeline operation so that operations such as instruction fetch, decoding and execution can be performed in an overlapping manner.
1.2 Structural Characteristics of FPGA
The structure of FPGA is derived from the design concept based on semi-custom gate array. In essence, FPGA is an ASIC (Application Specific Integrated Circuit) design technology that is more convenient than semi-custom.
The structure of FPGA is mainly divided into three parts: programmable logic blocks, programmable I/O modules, and programmable internal connections. There are two main types of programmable logic blocks and programmable interconnection resources: lookup table type and multi-way switch type.
The programmable logic unit of the lookup table type FPGA is composed of a function generator composed of an SRAM (Static Random Access Memory) that functions as a lookup table, which controls the logic that executes the FPGA application function. The output of the SRAM is the value of the logic function, and the output state controls the on and off of the transmission gate or multiplexer signal to achieve programmable connection with other functional blocks. The basic structure of the multiplexer type programmable logic block is a multiplexer configuration. Using the characteristics of the multiplexer, different logic functions can be achieved when each input of the multiplexer is connected to a fixed level or input signal. A large number of multiplexers and logic gates are connected to form a logic block that implements a large number of functions.
FPGA is divided into two categories according to its configuration mechanism: reconfigurable and one-time programmable. In recent years, FPGA has been widely used in the design of digital systems due to its advantages of high integration, fast processing speed and high execution efficiency.
2 DSP and FPGA performance comparison
The internal structure of DSP gives it the following advantages: all instructions are executed in a single cycle, instructions are pipelined, internal data, address, instruction and DMA (Direct Memory Access) buses are separated, and there are more registers.
Compared with general-purpose microprocessors, DSP chips have relatively weaker general functions. DSP is a specialized microprocessor suitable for conditional processes, especially complex multi-algorithm tasks. In terms of operation, it is subject to the clock rate, and the number of useful operations performed per clock cycle is also limited. For example, TMS320C6201 has only two multipliers and a 200 MHz clock, so it can only complete 400M multiplications per second.
The simulation algorithm and specific index requirements are mapped to the general DSP. The typical DSP is programmed through assembly or high-level languages such as C language to implement the solution in real time. If the DSP uses standard C program, this C code can implement high-level branch logic and judgment. For example, the protocol stack of the communication system is difficult to implement on FPGA. In terms of effect, 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, but the disadvantage of DSP is that it is limited by the serial instruction stream.
FPGA has many free gates, and by connecting these gates, multipliers, registers, address generators, etc. can be formed. As long as these are done at the block diagram level, many blocks can be completed at a very high level from simple gates to FIR (Finite Impulse Response) or FFT (Fast Fourier Transform). But its performance is limited by the number of gates it has and the clock speed. For example, a Virtex device with 200,000 gates can implement 10 16-bit multipliers with a 200MHz clock.
FPGA contains a large number of resources for implementing combinational logic, which can complete the design of large-scale combinational logic circuits; at the same time, it also contains a considerable number of triggers, with the help of which, FPGA can also complete complex sequential logic functions. By using various EDA (Electronic Design Automatic) tools, designers can easily implement complex circuits in FPGA. Like microprocessors, many FPGAs can be reprogrammed infinitely, and loading a new design only takes a few hundred milliseconds. Even field products can be implemented very simply and quickly. In this way, the use of reconfiguration can reduce hardware overhead.
At sampling rates above a few MHz, a DSP can only perform very simple operations on the data. Such simple operations are easily implemented with an FPGA, and can reach very high sampling rates. At lower sampling rates, overall complex programs can be implemented using a DSP, which is very difficult for an FPGA.
DSPs have an advantage for slower events. They can be queued and guaranteed to execute, but there may be some delay before they are processed. FPGAs cannot handle multiple events because each event has dedicated hardware, but using this dedicated hardware to implement each event allows each event to execute simultaneously.
If the main working environment needs to be switched, the DSP can do this by creating a new subroutine in the program, and the FPGA needs to create dedicated resources for each configuration. If these configurations are relatively small, then several configurations can exist in the FPGA at the same time; if the configuration is large, it means that the FPGA needs to be reconfigured, and this method can only be used sometimes.
Finally, FPGAs are programmed in a block diagram format, which makes it easy to see the data flow. DSPs are programmed in a sequential flow of instructions. Most single-processor systems start out as some kind of block diagram. In fact, most system designers find it easier to port a block diagram to an FPGA than to convert it to C code for a DSP. [page]
3 How to choose DSP and FPGA solutions
3.1 Principles of solution selection
There are many factors to consider when choosing a solution for the core processing part of a digital system, such as how to make full use of existing resources (including software and hardware), the operating clock rate required by the system, and the characteristics of the algorithm or working method, which have a great impact on the selection of the best solution.
Specifically, in the initial solution demonstration stage, the solution selection can be made based on the answers to the following questions:
(1) What is the sampling rate of this system?
If it is above a few MHz, FPGA is the obvious choice.
(2) Is the system already programmed in C? If so, the DSP can be implemented directly. It may not be the best implementation of the solution, but it is easy to develop further.
(3) What is the data rate of the system?
If it is higher than 20-30Mbyte/second, it is better to use FPGA for processing.
(4)How many conditional operations are there?
If not, FPGA is a good choice; if many, software implementation, that is, DSP implementation, is a better choice.
(5) Does the system use floating point?
If so, it is better to use a programmable DSP. So far, some FPGA developers, such as Xilinx, do not support floating point cores, although you can design it yourself.
(6) Are the required libraries available?
Both DSPs and FPGAs offer basic building blocks such as FIR or FFT. However, more complex or specialized building blocks may not be available, which will determine the choice.
3.2 Example of solution selection
Several digital circuit design examples are provided below to help understand the scheme selection principles introduced earlier.
(1) Sampling filter for wireless data receiver. Typical CIC (Control Integrated Circuit) filter operates at a sampling rate of 50 to 100 MHz. A 5-step CIC has 10 registers and 10 adders. The required acceleration is 500 to 1000 MHz.
At this rate, any DSP processor will be difficult to implement. However, CIC has a very simple structure, so it will be very easy to implement it with FPGA. A sampling rate of 100MHz can be achieved, and some models of FPGA may even have some spare resources for further processing.
(2) Implement the communication stack protocol - ISDN (Integrated Services Digital Network). IEEE1394 has a lot of complex C code, which is not suitable for FPGA implementation; but it is very simple to implement it with DSP. Moreover, a signal coding base can be retained, so that the code stack can be implemented on the DSP of a certain product, or on a separate protocol processor on another DSP. This will give opportunities to suppliers who specialize in providing authorization for code stacks.
(3) Baseband processor of digital RF receiver. Some types of receivers require FFT to obtain the signal, and then a matched filter to obtain the signal at one time. These two modules can be easily implemented with any solution. However, if the working mode conversion/signal acquisition and signal reception conversion is required; the DSP solution is more suitable because the FPGA solution needs to complete two modules at the same time.
It should be noted here that RF is better implemented with FPGA because this is a hybrid, multi-tasking system. If a larger FPGA is used, both modules can be implemented with one FPGA. [page]
(4) Image Processor. Image processing is usually simple and repetitive, which makes it suitable for FPGA implementation. However, an imaging process is often used to identify "spots" or "regions of interest" in the observed target. These "spots" may be of different sizes, making the back-end judgment and processing process more complicated. At the same time, the algorithms used are often adaptive, depending on what the spots look like. Therefore, it is appropriate to use DSP to form the back-end processing part of the image processing pipeline.
In short, DSP and FPGA represent two types of digital system signal processing processes, each with its own strengths and weaknesses. For many high-speed sampling frequency applications, especially when the tasks are relatively fixed or repetitive, FPGA solutions are suitable; similarly, for lower sampling rates and highly complex software problems, DSP solutions are suitable.
4 New design ideas
4.1 DSP+FPGA Structure
The biggest feature of the DSP+FPGA structure is its flexible structure, strong versatility, and suitability for modular design, which can improve algorithm efficiency; at the same time, its development cycle is short and the system is easy to maintain and expand.
For example, in a real-time signal processing system implemented by DSP+FPGA structure, the low-level signal preprocessing algorithm processes a large amount of data and has high requirements for processing speed, but the operation structure is relatively simple, which is suitable for hardware implementation using FPGA, so that both speed and flexibility can be taken into account. The characteristic of high-level processing algorithm is that the amount of data processed is less than that of low-level algorithm, but the control structure of the algorithm is complex, which is suitable for implementation with DSP chip with high operation speed, flexible addressing mode and powerful communication mechanism.
FPGA can complete module-level tasks and act as a coprocessor of DSP. Its programmability makes it have the speed of ASIC and high flexibility.
DSP has the flexibility of software, while FPGA has the high speed of hardware. From the perspective of the device, it can meet the requirements of processing complex algorithms. The DSP+FPGA structure provides a better solution for how to deal with the relationship between software and hardware in the design. At the same time, the system has a flexible processing structure and has strong adaptability to algorithms of different structures, especially suitable for real-time signal processing tasks.
4.2 FPGA with embedded DSP module
Another major trend in digital circuit design is to embed some DSP modules that can realize basic digital signal processing functions into FPGA chips.
Some companies have or plan to integrate ASIC-based microprocessors or DSP cores with programmable logic arrays on a single chip. The DSP performance provided by FPGAs has exceeded 128 billion MACs per second, which is much higher than the performance of traditional DSPs currently provided by mainstream suppliers.
Among them, Xilinx, as the world's leading manufacturer of programmable logic devices, has advanced FPGA technology and advanced development tools. In November 2000, Xilinx XtremeDSP was launched in an attempt to enter this market. Virtex-II can provide 600 billion MAC (multiplication and accumulation operations) per second. With this parallel structure, each sample in a 256-order FIR filter can be processed within one clock cycle, thus greatly improving the performance and efficiency of DSP.
The goal of Xilinx XtremeDSP is to meet the high-performance challenges of the broadband revolution. Other features include optimizing DSP design based on factors such as chip area (corresponding to the resources used) and system frequency. The XtremeDSP initiative also launched some development tools to fill the gap between traditional DSP and FPGA design methods.
The enhanced structure of the new Virtex-II series gives it a unique advantage in implementing algorithms that require calculations. Test data provided by Xilinx shows that Xilinx FPGA runs 100 times faster than the fastest DSP in the industry. Therefore, a single FPGA can replace the traditional so-called DSP processor array.
Currently, many mobile phone base station products in the world use Xilinx's Virtex-E FPGA. In order to establish a large number of connections, mobile phone base stations need to process a large amount of data, most of which are implemented using some kind of DSP.
Another outstanding product is the QuickDSP series launched by QuickLogic, which provides embedded DSP building blocks and programmable logic flexibility. In addition to the previous programmable logic and storage modules, this new series also includes dedicated multiplication and addition modules. These synthetic modules can realize DSP functions. Software that supports DSP functions can be obtained from the company. In addition to QuickWorks development software, the DSP wizard package allows users to generate optimized functions, such as fixed-point or floating-point arithmetic logic, FIR and IIR (Infinite Impulse Response) filters, etc., with just a few clicks of the mouse.
It can be predicted that in the near future, digital systems implemented with a single DSP or FPGA will be replaced by a DSP+FPGA structure or an FPGA design structure embedded with a DSP module.
Previous article:Design of orthogonal signal source filter based on CPLD and DDS
Next article:Multi-core DSP Bootloader code loading method
Recommended ReadingLatest update time:2024-11-16 15:40
- Popular Resources
- Popular amplifiers
- Analysis and Implementation of MAC Protocol for Wireless Sensor Networks (by Yang Zhijun, Xie Xianjie, and Ding Hongwei)
- MATLAB and FPGA implementation of wireless communication
- Modern arc welding power supply and its control
- Intelligent Control Technology of Permanent Magnet Synchronous Motor (Written by Wang Jun)
- Huawei's Strategic Department Director Gai Gang: The cumulative installed base of open source Euler operating system exceeds 10 million sets
- Analysis of the application of several common contact parts in high-voltage connectors of new energy vehicles
- Wiring harness durability test and contact voltage drop test method
- Sn-doped CuO nanostructure-based ethanol gas sensor for real-time drunk driving detection in vehicles
- Design considerations for automotive battery wiring harness
- Do you know all the various motors commonly used in automotive electronics?
- What are the functions of the Internet of Vehicles? What are the uses and benefits of the Internet of Vehicles?
- Power Inverter - A critical safety system for electric vehicles
- Analysis of the information security mechanism of AUTOSAR, the automotive embedded software framework
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- MTK7686 serial port transparent transmission
- The amplifier has a high PSRR, so there is no need to worry about power supply variations?
- How to design the mobile phone power-on circuit
- Request expert explanation
- C2000 floating point calculation notes - differences between CPU and CLA and error handling techniques
- EEWORLD University ---- Theoretical basis of IoT terminal development
- Tips for implementing I2C with MSP
- ARM-based support for advanced video graphics capabilities on MCUs
- 12-bit ADC
- New Bluetooth TFT color screen capacitive touch electronic bracelet 10 yuan each