由于大规模集成电路技术的飞速发展,一块FPGA芯片上能实现的逻辑功能大幅度增加,并进一步向嵌入式DSP模块和嵌入式处理器核技术发展,由此带来的结果是在一块FPGA芯片上能实现相当复杂的数字信号处理功能并保持相对较低的功耗,而芯片价格也一直在不断下降。如今,FPGA已不再局限于ASIC设计的原型实现和功能验证,而是可以直接用于复杂信号处理系统的商业化应用和解决方案的开发。《数字信号处理FPGA电路设计》专门为这样一种技术发展趋势而写作。
书中主要介绍基于FPGA的数字信号处理电路的设计和实现方法。使用由全球最大FPGA芯片供应商Xilinx公司的大学合作计划(XUP)提供的Virtex-Ⅱ Pro开发板和标准开发套件。书中除了介绍一些易于在FPGA上实现的DSP电路及其相关理论之外,特别强调采用FPGA作为电路实现平台时需要对算法和电路进行的特殊改造和设计,同时强调为充分利用硬件资源所需要采取的设计技巧。因此即使是从事ASIC设计的读者也能从《数字信号处理FPGA电路设计》获得关于DSP电路实现的许多参考知识。
《数字信号处理FPGA电路设计》可作为大专院校电子工程类高年级学生和研究生相关课程教材,也适用于工业界从事DSP应用开发的工程师自学或培训。《数字信号处理FPGA电路设计》能帮助读者获得从DSP算法设计到硬件实现的整个流程的专业训练,并在动手实现一些常用DSP电路的过程中熟悉业界通用的设计流程和EDA工具软件。
施国勇教授是我在上海交通大学任教时由衷地敬重的老师之一。他2005年夏从华盛顿大学回国时最初的办公桌就在我对面,那时候,七八个老师挤在浩然大厦15楼一个狭小的房间里,憧憬着闵行校园中的新微电子大楼的场景犹在眼前;而我,也得以近距离感受施教授深厚的数学功底和严谨的学术作风。
数字信号处理是所有电子信息类学生应该熟练掌握的专业基础课程之一。长期以来,由于理论性较强,涉及的数学内容较多,教学一直颇有难度。尽管近年来的教学改革陆续将MATLAB等软件工具引入课程,但距离实际的工程工作,比如设计出具有数字信号处理系统能力的软硬件系统以及芯片,仍然有较远距离。施国勇教授的这本书填补了这方面的空白。
这本书涉及的内容虽然属于基础性理论,但是,利用FPGA进行数字信号处理的教学方法却是国际工科电子类教育研究中的前沿课题。Xilinx公司有幸和欧洲该领域顶尖的专家教授合作,于2006年将这种最前沿的课程资料引入中国。经过施教授在上海交通大学面向研究生以及面向本科生近三年的实际教学,并经过教学实践的积累和提炼,终于成书,可喜可贺。
2010年以后,随着集成电路工艺越来越接近10nm,FPGA由于结构整齐、可现场编程,成为下一个十年中能够继续存活的为数不多的集成电路种类之一,并会加速发展,被更多的电子设备设计所采用。在这个进程中,FPGA也脱离了传统的角色,越来越多地运用于嵌入式数字信号处理系统中。因此,2010年后的工程师需要熟练掌握FPGA技术,同时也要熟练掌握数字信号处理技术,才能够应对电子设备可移动化、网络化、多媒体化的三重挑战。而本书的推出,使学生在第一次接触数字信号处理时,就以高度并行的思路,完整地将并行世界的本源,以FPGA设计的形式呈现出来,而Xilinx公司的System Generator等图形化工具的引入,使得这个学习过程变得容易并且富有乐趣。
Xilinx公司大学合作计划将一如既往地支持本书的后续发展,包括更新软件版本、更新实验板卡、联合实验室捐赠等,期待本书的读者和学生们从中获得学习的乐趣。
施国勇,上海交通大学微电子学院教授,博士生导师。1987年毕业于复旦大学数学系应用数学专业,2002处获美国华盛顿州立大学电机工程博士学位。曾任美国华盛顿大学电机工程系博士后研究员,荷兰爱因霍芬科技大学访问研究员。在自动控制、大规模集成电路设计自动化等领域发表论文50余篇。论文On Symbolic Model Order Reduction获2007年IEEE电路与系统协会Donald O.Pederson最佳论文奖。为2007年上海市浦江人才基金获得者,2006年和2008年国家自然科学基金面上项目主持人。
第1章 集成电路技术与数字信号处理
1.1 数字信号处理基本原理
1.2 FPGA技术
1.3 数字信号处理的应用
1.4 数字信号处理的发展趋势
1.5 基于FPGA设计基本要点
1.6 从算法到硬件:一个设计例子
1.7 一个电路多样性例子
1.8 本书的特色与重点
1.9 本书结构
1.10 对课堂教学的建议
1.11 本章小结
1.12 练习
1.13 参考文献
第2章 Virtex-Ⅱ Pro FPGA资源与设计工具
2.1 FPGA的基本资源
2.2 FPGA的设计流程
2.3 Xilinx FPGA的设计流程
2.4 Xilinx FPGA设计工具软件与安装
2.5 本章小结
2.6 与System Generator兼容的ISE和MATLAB版本信息
2.7 参考文献
第3章 基本算术运算电路
3.1 加法器设计与实现
3.2 符号数加法
3.3 溢出与饱和
3.4 乘法器设计
3.5 乘法器在Slice上的实现
3.6 符号数乘法
3.7 除法器设计
3.8 开平方根电路的设计
3.9 本章小结
3.10 练习
3.11 参考文献
第4章 采样与量化
4.1 Fourier级数与Fourier变换
4.2 采样数学模型
4.3 采样定理
4.4 混叠
4.5 下采样与上采样
4.6 采样与电路实现
4.7 量化
4.8 本章小结
4.9 练习
4.10 参考文献
第5章 低成本低功耗滤波器设计
5.1 CIC滤波器
5.2 CIC位宽分析
5.3 CIC电路实现
5.4 本章小结
5.5 练习
5.6 参考文献
第6章 CORDIC原理与实现
6.1 CORDIC基本原理
6.2 CORDIC的收敛性
6.3 双曲CORDIC
6.4 CORDIC电路实现
6.5 本章小结
6.6 练习
6.7 参考文献
第7章 FFT算法与电路实现
7.1 基2FFT算法推导
7.2 基2FFT蝶形计算电路
7.3 基4FFT算法推导
7.4 FFT电路结构设计
7.5 本章小结
7.6 练习
7.7 参考文献
第8章 自适应滤波器设计
8.1 最小二乘问题
8.2 最小二乘问题迭代算法
8.3 自适应滤波算法
8.4 自适应滤波器电路设计
8.5 QR分解与电路实现
8.6 本章小结
8.7 练习
8.8 参考文献
第9章 数据流图与时序分析
9.1 数据流图
9.2 数据流图时序分析
9.3 时序重整
9.4 节点时序重整
9.5 最短路径算法
9.6 本章小结
9.7 Karp定理证明
9.8 练习
9.9 参考文献
第10章 设计案例
10.1 用4个乘法器实现10抽头FIR滤波器
10.2 8位除法器设计与实现
10.3 8位开平方根电路的设计与实现
10.4 本章小结
附录 实验指导书
实验前言
参考文献
实验一 Xilinx Virtex-Ⅱ Pro实验板与设计软件
A1.1 实验简介
A1.2 实验目的
A1.3 实验任务
A1.4 实验报告写作要求
A1.5 实验步骤
A1.6 参考文献
实验二 基本算术电路的FPGA实现
A2.1 实验简介
A2.2 实验目的
A2.3 实验任务
A2.4 实验报告写作要求
A2.5 实验步骤
A2.6 练习
A2.7 参考文献
实验三 FIR滤波器设计
A3.1 实验简介
A3.2 实验目的
A3.3 实验任务
A3.4 实验报告写作要求
A3.5 实验步骤
A3.6 参考文献
实验四 数控振荡器设计与降频转换
A4.1 实验简介
A4.2 实验目的
A4.3 实验任务
A4.4 实验报告写作要求
A4.5 实验步骤
A4.6 参考文献
实验五 CIC滤波器设计与应用
A5.1 实验简介
A5.2 实验目的
A5.3 实验任务
A5.4 实验报告写作要求
A5.5 实验步骤
A5.6 参考文献
实验六 CORDIC计算向量长度
A6.1 实验简介
A6.2 实验目的
A6.3 实验任务
A6.4 实验报告写作要求
A6.5 实验步骤
A6.6 练习
A6.7 参考文献