The perfect choice of one-stop service for diversification of architecture.
Figure 1: typical control plane / data plane processing system. In addition to the expensive ASIC, FPGA is the implementation method of stream data processing unit with the highest performance and the most economic benefit. Because of its flexible architecture, FPGA allows designers to implement processing systems including parallel and pipelined units. In this way, the designer can optimize the performance and delay of the system. The designer can then apply the data plane solution to an external discrete microprocessor for control. Adding the processor inside the FPGA can bring many advantages. The internal processor can greatly reduce the control delay between the processor and the data plane unit. The reduction of delay can release many processor cycles. The external processor must maintain communication with the data plane. The communication channel can be 32 bits or more, and more wires are required for addressing and control at the same time. Additional wires may require more powerful processor and FPGA packaging, resulting in increased system cost. Using PCI Express (PCIe) can greatly reduce the number of pins. Unfortunately, not all processors and FPGAs support this relatively new interface, and even if they do, the cost of PCIe devices is much higher than that of similar devices without PCIe. The implementation of control plane processor and data plane in FPGA can reduce the number of devices, board space and power consumption, and finally form a low-cost solution. There are both hard core processors such as PowerPC and soft core processors such as Xilinx MicroBlaze in FPGA. FPGA based processors can be configured according to application requirements. The system based on FPGA can transplant decision-making and computing functions between processor and FPGA logic, so as to realize system level optimization. Implementation of control plane / data plane system some tools can simplify the implementation of FPGA based control plane / data plane system. Compiling systems using wizards or by adjusting existing reference designs are two common methods. Through the wizard, FPGA tools can quickly assemble microprocessor systems. Using drop-down lists or check boxes, you can easily specify the target parts and the required processors and peripherals. At the same time, a signal processing pipeline with a processor bus interface can be quickly compiled for control using a tool such as MATLAB software. In addition, the c-to-hdl tool can also be used to build a digital signal pipeline. The connection of control plane / data plane can be simply completed through matching bus interface. Figure 2 shows the instruction window for starting the wizard and the final system built with the wizard.
Figure 3: clownfish detector control plane / data plane system. C-to-fpga compiler can enable developers to use new development tool sets and new technologies to solve software / hardware development problems. Developers can code the algorithm in the software first. Experience tells us that developing algorithms in software is more efficient than developing algorithms in hardware. The specific reasons are as follows: firstly, C language can enable programmers to develop algorithms at the level of high-level software language, which can not be achieved by using Verilog or VHDL hardware description language; Secondly, compared with similar hardware development tools, the debugging and testing tools for C language run faster, more efficient and generally easier to use. Equivalent to hardware algorithm, C language algorithm can run at full speed on the target processor, and the hardware algorithm needs to be tested and debugged on the simulation program first; Finally, the cost of C language development tools is much lower than that of similar hardware development tools. Therefore, engineers tend to develop algorithms in C language or similar high-level languages. Once a software language such as C language is used to verify an algorithm, the designer must measure its performance and determine whether the algorithm can run completely on the embedded processor or hardware, or whether the hardware software hybrid coprocessing implementation scheme is the best choice. Performance analysis tools can be used in this judgment process. If the code must be transferred to hardware, the designer must convert the algorithm manually or use the c-to-fpga tool. The c-to-fpga tool allows developers to quickly convert algorithms into HDL code, optimize the generated hardware processor, and execute hypothetical scenarios to balance performance and FPGA resources. The tool also enables software engineers to use the high-performance data processing logic inside FPGA, so as to become hardware engineers. Using Linux to connect the processor to the FPGA, Linux vendors working with FPGA manufacturers have developed drivers that allow the processor to communicate with and control the FPGA. First, you must configure Linux for this I / O device. The configuration step consists of two steps. First, load the customized driver into the Linux kernel: then, register the driver to a specific device number (such as 253):
The communication is completed by turning on the I / O device and then reading and writing the device. The example code segment is as follows:
The advantage of FPGA, the data bandwidth requirement of signal processor system often exceeds the level that general-purpose processor can economically obtain. In this case, designers usually divide their data processing system into two processing functions: using general-purpose processor for control processing, and using hardware accelerators such as FPGA for data processing. This constitutes a control plane / data plane processing system. FPGA is very suitable for implementing control plane and data plane functions at the same time. An FPGA can contain one or more soft processors such as MicroBlaze and / or hard processors such as PowerPC. Integrating them into FPGA can realize low delay and high bandwidth communication between control plane processor and data plane processing system. With the help of wizard and pre built reference design, the system compilation for embedded and data processing functions is simple and clear. By transforming the algorithm prototype built in C language into high-performance hardware processing unit, c-to-fpga tool helps to optimize this process. Finally, the communication and control coding between the processor and FPGA signal processing pipeline can be easily completed by using the available linux driver. Our case study is a typical application example. In this example, it is impractical to process HD video stream by low-cost general-purpose processor, but it can be easily solved by signal processing pipeline inside FPGA. The processor is then released to provide user interface, network and system management functions, and monitor and control the signal processing pipeline at the same time.