书籍详情
Intel FPGA数字信号处理设计(基础版)
作者:杜勇
出版社:电子工业出版社
出版时间:2022-03-01
ISBN:9787121431227
定价:¥118.00
购买这本书可以去
内容简介
本书以Intel公司的FPGA器件为开发平台,采用MATLAB及VHDL语言开发工具,详细阐述了数字信号处理技术的实现原理、结构、方法及仿真测试过程,并通过大量工程实例分析其在FPGA实现过程中的具体技术细节。其主要内容包括FPGA技术基础、常用接口设计、FPGA中数的运算、典型IP核设计、FIR滤波器、IIR滤波器、FFT变换设计等内容。
作者简介
杜勇,四川省广安市人,高级工程师、副教授,现任教于四川工商学院;1999年于湖南大学获电子工程专业学士学位,2005年于国防科技大学获信息与通信工程专业硕士学位;发表学术论文十余篇,出版《数字滤波器的MATLAB与FPGA实现》《数字通信同步技术的MATLAB与FPGA实现》《数字调制解调技术的MATLAB与FPGA实现》《锁相环技术原理及FPGA实现》等图书。
目录
目 录
上 篇
第1章 FPGA概述 (3)
1.1 FPGA的发展趋势 (3)
1.2 Intel FPGA的基本结构 (5)
1.2.1 可编程输入/输出单元 (6)
1.2.2 可配置逻辑块 (7)
1.2.3 时钟网络资源 (9)
1.2.4 嵌入式块RAM (9)
1.2.5 丰富的布线资源 (10)
1.2.6 内嵌专用硬核 (10)
1.3 FPGA的工作原理 (10)
1.4 FPGA与其他数字信号处理平台的比较 (11)
1.4.1 ASIC、DSP、ARM的特点 (12)
1.4.2 FPGA的特点及优势 (13)
1.5 FPGA的主要厂商 (14)
1.5.1 Xilinx公司 (14)
1.5.2 Intel公司 (15)
1.5.3 Lattice公司 (15)
1.5.4 Actel公司 (16)
1.5.5 Atmel公司 (17)
1.6 工程中如何选择FPGA器件 (17)
1.7 小结 (18)
1.8 思考与练习 (19)
第2章 设计语言及开发环境 (21)
2.1 VHDL语言简介 (21)
2.1.1 HDL语言的特点及优势 (21)
2.1.2 选择VHDL还是Verilog HDL (22)
2.2 VHDL语言基础 (23)
2.2.1 VHDL语言简介 (23)
2.2.2 程序结构 (24)
2.2.3 数据类型 (26)
2.2.4 数据对象 (29)
2.2.5 运算符 (29)
2.2.6 VHDL语句 (33)
2.3 QuartusⅡ开发环境 (37)
2.3.1 QuartusⅡ简介 (37)
2.3.2 QuartusⅡ的用户界面 (38)
2.4 ModelSim简介 (40)
2.4.1 ModelSim的主要特点 (40)
2.4.2 ModelSim的工作界面 (41)
2.5 MATLAB简介 (42)
2.5.1 MATLAB介绍 (42)
2.5.2 MATLAB的工作界面 (42)
2.5.3 MATLAB的特点及优势 (43)
2.6 FPGA信号处理板CRD500 (45)
2.7 小结 (47)
2.8 思考与练习 (47)
第3章 FPGA设计流程 (51)
3.1 FPGA设计流程简介 (51)
3.2 流水灯实例设计 (53)
3.2.1 明确项目需求 (53)
3.2.2 读懂电路原理图 (54)
3.2.3 形成设计方案 (56)
3.3 流水灯实例的Verilog HDL程序设计与综合 (57)
3.3.1 建立FPGA工程 (57)
3.3.2 VHDL程序输入 (59)
3.4 流水灯实例的功能仿真 (61)
3.4.1 生成测试激励文件 (61)
3.4.2 采用ModelSim进行仿真 (64)
3.4.3 ModelSim的仿真应用技巧 (67)
3.5 流水灯实例的设计实现与时序仿真 (68)
3.5.1 添加约束文件 (68)
3.5.2 时序仿真 (70)
3.6 程序下载 (71)
3.6.1 sof文件下载 (71)
3.6.2 jic文件下载 (73)
3.7 小结 (75)
3.8 思考与练习 (76)
第4章 常用接口程序的设计 (77)
4.1 秒表电路设计 (77)
4.1.1 数码管的基本工作原理 (77)
4.1.2 秒表电路实例需求及电路原理分析 (78)
4.1.3 形成设计方案 (78)
4.1.4 顶层文件的VHDL程序设计 (79)
4.1.5 数码管显示模块的VHDL程序设计 (81)
4.1.6 秒表计数模块的VHDL程序设计 (84)
4.1.7 按键消抖模块的VHDL程序设计 (88)
4.2 串口通信设计 (91)
4.2.1 RS-232串口通信的概念 (91)
4.2.2 串口通信实例需求及电路原理分析 (92)
4.2.3 顶层文件的VHDL程序设计 (93)
4.2.4 时钟模块的VHDL程序设计 (95)
4.2.5 接收模块的VHDL程序设计 (96)
4.2.6 发送模块的VHDL程序设计 (99)
4.3 A/D接口和D/A接口的程序设计 (100)
4.3.1 A/D转换的工作原理 (100)
4.3.2 D/A转换的工作原理 (101)
4.3.3 A/D接口和D/A接口的实例需求及电路原理分析 (102)
4.3.4 A/D接口和D/A接口的VHDL程序设计 (102)
4.4 常用接口程序的板载测试 (104)
4.4.1 秒表电路的板载测试 (104)
4.4.2 串口通信的板载测试 (105)
4.4.3 使用Signal Tap对A/D接口和D/A接口进行板载测试 (106)
4.5 小结 (111)
4.6 思考与练习 (111)
下 篇
第5章 FPGA中的数字运算 (115)
5.1 数的表示 (115)
5.1.1 定点数的定义和表示 (116)
5.1.2 定点数的三种形式 (117)
5.1.3 浮点数表示 (118)
5.1.4 自定义浮点数的格式 (120)
5.2 FPGA中的四则运算 (122)
5.2.1 两个操作数的加法运算 (122)
5.2.2 多个操作数的加法运算 (125)
5.2.3 采用移位相加法实现乘法运算 (125)
5.2.4 采用移位相加法实现除法运算 (126)
5.3 有效数据位的计算 (126)
5.3.1 有效数据位的概念 (126)
5.3.2 加法运算中的有效数据位 (127)
5.3.3 乘法运算中的有效数据位 (128)
5.3.4 乘加运算中的有效数据位 (129)
5.4 有限字长效应 (129)
5.4.1 有限字长效应的产生因素 (129)
5.4.2 A/D转换器的有限字长效应 (130)
5.4.3 数字滤波器系数的有限字长效应 (131)
5.4.4 滤波器运算中的有限字长效应 (133)
5.5 小结 (136)
5.6 思考与练习 (136)
第6章 典型IP核的应用 (137)
6.1 IP核在FPGA中的应用 (137)
6.1.1 IP核的一般概念 (137)
6.1.2 FPGA设计中的IP核类型 (138)
6.2 时钟管理IP核 (140)
6.2.1 全局时钟资源 (140)
6.2.2 利用IP核生成多路时钟信号 (141)
6.3 乘法器IP核 (145)
6.3.1 实数乘法器IP核 (145)
6.3.2 复数乘法器IP核 (148)
6.4 除法器IP核 (150)
6.4.1 FPGA中的除法运算 (150)
6.4.2 测试除法器IP核 (151)
6.5 存储器IP核 (153)
6.5.1 ROM核 (153)
6.5.2 RAM核 (157)
6.6 数控振荡器IP核 (163)
6.6.1 数控振荡器工作原理 (163)
6.6.2 采用DDS核设计扫频仪 (164)
6.7 小结 (168)
6.8 思考与练习 (169)
第7章 FIR滤波器设计 (171)
7.1 数字滤波器的理论基础 (171)
7.1.1 数字滤波器的概念 (171)
7.1.2 数字滤波器的分类 (172)
7.1.3 数字滤波器的特征参数 (173)
7.2 FIR滤波器的原理 (174)
7.2.1 FIR滤波器的概念 (174)
7.2.2 线性相位系统的物理意义 (175)
7.2.3 FIR滤波器的相位特性 (176)
7.2.4 FIR滤波器的幅度特性 (178)
7.3 FIR滤波器的FPGA实现结构 (179)
7.3.1 FIR滤波器结构的表示方法 (179)
7.3.2 直接型结构的FIR滤波器 (180)
7.3.3 级联型结构的FIR滤波器 (181)
7.4 基于累加器的FIR滤波器设计 (181)
7.4.1 基于累加器的FIR滤波器性能分析 (181)
7.4.2 基于累加器的FIR滤波器设计步骤 (184)
7.4.3 基于累加器的FIR滤波器FPGA实现后的功能仿真 (186)
7.5 FIR滤波器的MATLAB设计 (190)
7.5.1 基于fir1()函数的FIR滤波器设计 (190)
7.5.2 各种窗函数性能的比较 (193)
7.5.3 各种窗函数性能的仿真 (194)
7.5.4 基于firpm()函数的FIR滤波器设计 (196)
7.5.5 基于FDATOOL的FIR滤波器设计 (198)
7.6 FIR滤波器的系数量化方法 (200)
7.7 并行结构FIR滤波器的FPGA实现 (202)
7.7.1 并行结构FIR滤波器的VHDL设计 (202)
7.7.2 并行结构FIR滤波器的功能仿真 (206)
7.8 串行结构FIR滤波器的FPGA实现 (207)
7.8.1 两种串行结构原理 (207)
7.8.2 全串行结构FIR滤波器的VHDL设计 (208)
7.8.3 全串行结构FIR滤波器的功能仿真 (212)
7.9 基于FIR核的FIR滤波器设计 (215)
7.9.1 FIR滤波器系数文件(COE文件)的生成 (215)
7.9.2 基于FIR核的FIR滤波器的设计步骤 (217)
7.9.3 基于FIR核的FIR滤波器的功能仿真 (219)
7.10 FIR滤波器的板载测试 (220)
7.10.1 硬件接口电路 (220)
7.10.2 板载测试程序 (221)
7.10.3 板载测试验证 (224)
7.11 小结 (225)
7.12 思考与练习 (226)
第8章 IIR滤波器设计 (227)
8.1 IIR滤波器的理论基础 (227)
8.1.1 IIR滤波器的原理及特性 (227)
8.1.2 IIR滤波器的常用结构 (228)
8.1.3 IIR滤波器与FIR滤波器的比较 (231)
8.2 IIR滤波器的MATLAB设计 (232)
8.2.1 采用butter()函数设计IIR滤波器 (232)
8.2.2 采用cheby1()函数设计IIR滤波器 (233)
8.2.3 采用cheby2()函数设计IIR滤波器 (233)
8.2.4 采用ellip()函数设计IIR滤波器 (234)
8.2.5 采用yulewalk()函数设计IIR滤波器 (234)
8.2.6 几种IIR滤波器设计函数的比较 (235)
8.2.7 采用FDATOOL设计IIR滤波器 (237)
8.3 直接型结构IIR滤波器的FPGA实现 (238)
8.3.1 直接型结构IIR滤波器的系数量化方法 (238)
8.3.2 直接型结构IIR滤波器的有限字长效应 (240)
8.3.3 直接型结构IIR滤波器的FPGA实现方法 (242)
8.3.4 直接型结构IIR滤波器的VHDL设计 (243)
8.3.5 MATLAB与QuartusⅡ13.1的数据交互 (248)
8.3.6 在MATLAB中生成测试信号文件 (249)
8.3.7 测试激励文件中的文件I/O功能 (252)
8.3.8 利用MATLAB分析输出信号的频谱 (255)
8.4 级联型结构IIR滤波器的FPGA实现 (256)
8.4.1 滤波器系数的转换 (256)
8.4.2 级联型结构IIR滤波器的系数量化 (258)
8.4.3 级联型结构IIR滤波器的FPGA实现 (258)
8.4.4 级联型结构IIR滤波器的VHDL设计 (259)
8.4.5 级联型结构IIR滤波器FPGA实现后的仿真 (262)
8.5 IIR滤波器的板载测试 (263)
8.5.1 硬件接口电路 (263)
8.5.2 板载测试程序 (264)
8.5.3
上 篇
第1章 FPGA概述 (3)
1.1 FPGA的发展趋势 (3)
1.2 Intel FPGA的基本结构 (5)
1.2.1 可编程输入/输出单元 (6)
1.2.2 可配置逻辑块 (7)
1.2.3 时钟网络资源 (9)
1.2.4 嵌入式块RAM (9)
1.2.5 丰富的布线资源 (10)
1.2.6 内嵌专用硬核 (10)
1.3 FPGA的工作原理 (10)
1.4 FPGA与其他数字信号处理平台的比较 (11)
1.4.1 ASIC、DSP、ARM的特点 (12)
1.4.2 FPGA的特点及优势 (13)
1.5 FPGA的主要厂商 (14)
1.5.1 Xilinx公司 (14)
1.5.2 Intel公司 (15)
1.5.3 Lattice公司 (15)
1.5.4 Actel公司 (16)
1.5.5 Atmel公司 (17)
1.6 工程中如何选择FPGA器件 (17)
1.7 小结 (18)
1.8 思考与练习 (19)
第2章 设计语言及开发环境 (21)
2.1 VHDL语言简介 (21)
2.1.1 HDL语言的特点及优势 (21)
2.1.2 选择VHDL还是Verilog HDL (22)
2.2 VHDL语言基础 (23)
2.2.1 VHDL语言简介 (23)
2.2.2 程序结构 (24)
2.2.3 数据类型 (26)
2.2.4 数据对象 (29)
2.2.5 运算符 (29)
2.2.6 VHDL语句 (33)
2.3 QuartusⅡ开发环境 (37)
2.3.1 QuartusⅡ简介 (37)
2.3.2 QuartusⅡ的用户界面 (38)
2.4 ModelSim简介 (40)
2.4.1 ModelSim的主要特点 (40)
2.4.2 ModelSim的工作界面 (41)
2.5 MATLAB简介 (42)
2.5.1 MATLAB介绍 (42)
2.5.2 MATLAB的工作界面 (42)
2.5.3 MATLAB的特点及优势 (43)
2.6 FPGA信号处理板CRD500 (45)
2.7 小结 (47)
2.8 思考与练习 (47)
第3章 FPGA设计流程 (51)
3.1 FPGA设计流程简介 (51)
3.2 流水灯实例设计 (53)
3.2.1 明确项目需求 (53)
3.2.2 读懂电路原理图 (54)
3.2.3 形成设计方案 (56)
3.3 流水灯实例的Verilog HDL程序设计与综合 (57)
3.3.1 建立FPGA工程 (57)
3.3.2 VHDL程序输入 (59)
3.4 流水灯实例的功能仿真 (61)
3.4.1 生成测试激励文件 (61)
3.4.2 采用ModelSim进行仿真 (64)
3.4.3 ModelSim的仿真应用技巧 (67)
3.5 流水灯实例的设计实现与时序仿真 (68)
3.5.1 添加约束文件 (68)
3.5.2 时序仿真 (70)
3.6 程序下载 (71)
3.6.1 sof文件下载 (71)
3.6.2 jic文件下载 (73)
3.7 小结 (75)
3.8 思考与练习 (76)
第4章 常用接口程序的设计 (77)
4.1 秒表电路设计 (77)
4.1.1 数码管的基本工作原理 (77)
4.1.2 秒表电路实例需求及电路原理分析 (78)
4.1.3 形成设计方案 (78)
4.1.4 顶层文件的VHDL程序设计 (79)
4.1.5 数码管显示模块的VHDL程序设计 (81)
4.1.6 秒表计数模块的VHDL程序设计 (84)
4.1.7 按键消抖模块的VHDL程序设计 (88)
4.2 串口通信设计 (91)
4.2.1 RS-232串口通信的概念 (91)
4.2.2 串口通信实例需求及电路原理分析 (92)
4.2.3 顶层文件的VHDL程序设计 (93)
4.2.4 时钟模块的VHDL程序设计 (95)
4.2.5 接收模块的VHDL程序设计 (96)
4.2.6 发送模块的VHDL程序设计 (99)
4.3 A/D接口和D/A接口的程序设计 (100)
4.3.1 A/D转换的工作原理 (100)
4.3.2 D/A转换的工作原理 (101)
4.3.3 A/D接口和D/A接口的实例需求及电路原理分析 (102)
4.3.4 A/D接口和D/A接口的VHDL程序设计 (102)
4.4 常用接口程序的板载测试 (104)
4.4.1 秒表电路的板载测试 (104)
4.4.2 串口通信的板载测试 (105)
4.4.3 使用Signal Tap对A/D接口和D/A接口进行板载测试 (106)
4.5 小结 (111)
4.6 思考与练习 (111)
下 篇
第5章 FPGA中的数字运算 (115)
5.1 数的表示 (115)
5.1.1 定点数的定义和表示 (116)
5.1.2 定点数的三种形式 (117)
5.1.3 浮点数表示 (118)
5.1.4 自定义浮点数的格式 (120)
5.2 FPGA中的四则运算 (122)
5.2.1 两个操作数的加法运算 (122)
5.2.2 多个操作数的加法运算 (125)
5.2.3 采用移位相加法实现乘法运算 (125)
5.2.4 采用移位相加法实现除法运算 (126)
5.3 有效数据位的计算 (126)
5.3.1 有效数据位的概念 (126)
5.3.2 加法运算中的有效数据位 (127)
5.3.3 乘法运算中的有效数据位 (128)
5.3.4 乘加运算中的有效数据位 (129)
5.4 有限字长效应 (129)
5.4.1 有限字长效应的产生因素 (129)
5.4.2 A/D转换器的有限字长效应 (130)
5.4.3 数字滤波器系数的有限字长效应 (131)
5.4.4 滤波器运算中的有限字长效应 (133)
5.5 小结 (136)
5.6 思考与练习 (136)
第6章 典型IP核的应用 (137)
6.1 IP核在FPGA中的应用 (137)
6.1.1 IP核的一般概念 (137)
6.1.2 FPGA设计中的IP核类型 (138)
6.2 时钟管理IP核 (140)
6.2.1 全局时钟资源 (140)
6.2.2 利用IP核生成多路时钟信号 (141)
6.3 乘法器IP核 (145)
6.3.1 实数乘法器IP核 (145)
6.3.2 复数乘法器IP核 (148)
6.4 除法器IP核 (150)
6.4.1 FPGA中的除法运算 (150)
6.4.2 测试除法器IP核 (151)
6.5 存储器IP核 (153)
6.5.1 ROM核 (153)
6.5.2 RAM核 (157)
6.6 数控振荡器IP核 (163)
6.6.1 数控振荡器工作原理 (163)
6.6.2 采用DDS核设计扫频仪 (164)
6.7 小结 (168)
6.8 思考与练习 (169)
第7章 FIR滤波器设计 (171)
7.1 数字滤波器的理论基础 (171)
7.1.1 数字滤波器的概念 (171)
7.1.2 数字滤波器的分类 (172)
7.1.3 数字滤波器的特征参数 (173)
7.2 FIR滤波器的原理 (174)
7.2.1 FIR滤波器的概念 (174)
7.2.2 线性相位系统的物理意义 (175)
7.2.3 FIR滤波器的相位特性 (176)
7.2.4 FIR滤波器的幅度特性 (178)
7.3 FIR滤波器的FPGA实现结构 (179)
7.3.1 FIR滤波器结构的表示方法 (179)
7.3.2 直接型结构的FIR滤波器 (180)
7.3.3 级联型结构的FIR滤波器 (181)
7.4 基于累加器的FIR滤波器设计 (181)
7.4.1 基于累加器的FIR滤波器性能分析 (181)
7.4.2 基于累加器的FIR滤波器设计步骤 (184)
7.4.3 基于累加器的FIR滤波器FPGA实现后的功能仿真 (186)
7.5 FIR滤波器的MATLAB设计 (190)
7.5.1 基于fir1()函数的FIR滤波器设计 (190)
7.5.2 各种窗函数性能的比较 (193)
7.5.3 各种窗函数性能的仿真 (194)
7.5.4 基于firpm()函数的FIR滤波器设计 (196)
7.5.5 基于FDATOOL的FIR滤波器设计 (198)
7.6 FIR滤波器的系数量化方法 (200)
7.7 并行结构FIR滤波器的FPGA实现 (202)
7.7.1 并行结构FIR滤波器的VHDL设计 (202)
7.7.2 并行结构FIR滤波器的功能仿真 (206)
7.8 串行结构FIR滤波器的FPGA实现 (207)
7.8.1 两种串行结构原理 (207)
7.8.2 全串行结构FIR滤波器的VHDL设计 (208)
7.8.3 全串行结构FIR滤波器的功能仿真 (212)
7.9 基于FIR核的FIR滤波器设计 (215)
7.9.1 FIR滤波器系数文件(COE文件)的生成 (215)
7.9.2 基于FIR核的FIR滤波器的设计步骤 (217)
7.9.3 基于FIR核的FIR滤波器的功能仿真 (219)
7.10 FIR滤波器的板载测试 (220)
7.10.1 硬件接口电路 (220)
7.10.2 板载测试程序 (221)
7.10.3 板载测试验证 (224)
7.11 小结 (225)
7.12 思考与练习 (226)
第8章 IIR滤波器设计 (227)
8.1 IIR滤波器的理论基础 (227)
8.1.1 IIR滤波器的原理及特性 (227)
8.1.2 IIR滤波器的常用结构 (228)
8.1.3 IIR滤波器与FIR滤波器的比较 (231)
8.2 IIR滤波器的MATLAB设计 (232)
8.2.1 采用butter()函数设计IIR滤波器 (232)
8.2.2 采用cheby1()函数设计IIR滤波器 (233)
8.2.3 采用cheby2()函数设计IIR滤波器 (233)
8.2.4 采用ellip()函数设计IIR滤波器 (234)
8.2.5 采用yulewalk()函数设计IIR滤波器 (234)
8.2.6 几种IIR滤波器设计函数的比较 (235)
8.2.7 采用FDATOOL设计IIR滤波器 (237)
8.3 直接型结构IIR滤波器的FPGA实现 (238)
8.3.1 直接型结构IIR滤波器的系数量化方法 (238)
8.3.2 直接型结构IIR滤波器的有限字长效应 (240)
8.3.3 直接型结构IIR滤波器的FPGA实现方法 (242)
8.3.4 直接型结构IIR滤波器的VHDL设计 (243)
8.3.5 MATLAB与QuartusⅡ13.1的数据交互 (248)
8.3.6 在MATLAB中生成测试信号文件 (249)
8.3.7 测试激励文件中的文件I/O功能 (252)
8.3.8 利用MATLAB分析输出信号的频谱 (255)
8.4 级联型结构IIR滤波器的FPGA实现 (256)
8.4.1 滤波器系数的转换 (256)
8.4.2 级联型结构IIR滤波器的系数量化 (258)
8.4.3 级联型结构IIR滤波器的FPGA实现 (258)
8.4.4 级联型结构IIR滤波器的VHDL设计 (259)
8.4.5 级联型结构IIR滤波器FPGA实现后的仿真 (262)
8.5 IIR滤波器的板载测试 (263)
8.5.1 硬件接口电路 (263)
8.5.2 板载测试程序 (264)
8.5.3
猜您喜欢