近年来,人工智能、大数据和云计算等新信息技术得到越来越多的应用,它们共同的特点就是需要对海量数据进行高性能的处理。与采用CPU、DSP和GPU实现数字信号处理(数据处理)系统相比,现场可编程门阵列(Field Programmable Gate Array,FPGA)具有天然并行处理能力以及整体功耗较低的优势,使得它成为这些新信息技术普及推广不可或缺的硬件处理平台,被越来越多地应用于这些新技术中。
一般而言,业界将FPGA归结为硬件(数字逻辑电路)范畴,而算法归结为软件范畴。在十年前,当采用FPGA作为数字信号处理平台时,设计者必须使用硬件描述语言来描述所构建的数字信号处理系统模型;而大多数的算法设计人员并不会使用硬件描述语言,这样就对他们使用FPGA实现数字信号处理算法造成了困难,从而限制了FPGA在这些新技术方面的应用普及和推广。当采用FPGA作为数字信号处理实现平台时,软件算法人员希望他们自己只关注算法本身,而通过一些其他工具将这些软件算法直接转换为FPGA硬件实现。
近年来,出现了新的建模工具,它们都是以软件算法人员的视角为出发点来构建数字信号处理系统的,这样显著降低了算法设计人员使用FPGA实现算法的难度,实现了软件和硬件的完美统一。本书将着重介绍Xilinx公司Vivado集成开发环境下提供的两种新的数字信号处理建模工具,即System Generator工具(它使用MATLAB环境下的Simulink)和高级综合工具(High Level Synthesis,HLS)。这两个数字信号处理系统建模工具的出现,使得算法人员可以专注于研究算法本身;然后通过这些建模工具,将算法直接转换成寄存器传输级(Register Transfer Level,RTL)描述;最后下载到FPGA内进行算法实现。这样,当采用Xilinx FPGA作为数字信号处理硬件平台时,显著提高了系统的建模效率,并且可以在性能和实现成本之间进行权衡,以探索最佳的解决方案。
本书从传统的硬件描述语言、Simulink模型设计和C/C++高级综合3个角度,对基于Xilinx 7系列FPGA平台下的通用数字信号处理、通信信号处理和数字图像处理的建模与实现方法进行详细介绍。全书共5篇21章,主要内容包括:信号处理理论基础,数字信号处理实现方法,数值的表示和运算,基于FPGA的数字信号处理的基本流程;CORDIC算法、离散傅里叶变换、快速傅里叶变换、离散余弦变换、FIR滤波器、IIR滤波器、重定时信号流图、多速率信号处理、串行FIR滤波器、并行-串行FIR滤波器、多通道FIR滤波器以及其他类型数字滤波器的原理与实现;数控振荡器、通信信号处理和信号同步的原理与实现;递归结构信号流图的重定时,自适应信号处理原理与实现;数字图像处理、动态视频拼接的原理与实现。
本书所介绍的内容反映了Xilinx FPGA在实现高性能数字信号处理(数据处理)系统时的最新研究成果;力图帮助读者在使用FPGA构建数字信号处理系统时,知道如何在实现性能和实现成本之间进行权衡,如何正确使用不同的数字信号处理系统建模工具和方法,更重要的是知道如何将软件算法转换成硬件实现。
在编写本书的过程中,得到了Xilinx公司大学计划的支持和帮助,提供了最新的Vivado 2017集成开发工具以及《DSP for FPGA Primer》等文档和材料。此外,也得到了Mathworks公司图书计划的支持和帮助,为作者提供了正版授权的MATLAB R2016b集成开发环境,以及相关设计所要使用的工具包。在此,向他们的支持和帮助表示衷心的感谢。在编写本书的过程中,仍然参考了已经毕业研究生张艳辉的研究成果,以及本科生汤宗美和刘仪参与本书教学资源的编写工作,在此向他们的辛勤劳动表示感谢。最后,向电子工业出版社编辑的辛勤工作表示感谢。
编著者
2018年12月于北京