Xilinx FPGA数字信号处理设计――基础版
- ISBN:9787121406072
- 装帧:简裝本
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:316
- 出版时间:2021-03-01
- 条形码:9787121406072 ; 978-7-121-40607-2
本书特色
着眼工程设计,精解设计实例;分解实现步骤,注重实现细节;完成仿真测试,详细性能分析;提供完整代码,迅速提升实力。
内容简介
本书以Xilinx公司的FPGA为开发平台,以Verilog HDL及MATLAB为开发工具,详细阐述数字信号处理技术FPGA实现的原理、结构、方法及仿真测试过程,并通过大量的实例分析FPGA实现过程中的具体技术细节。本书主要包括FPGA概述、设计语言及开发工具、FPGA设计流程、常用接口程序的设计、FPGA中的数字运算、典型IP核的应用、FIR滤波器设计、IIR滤波器设计、快速傅里叶变换的设计等内容。本书思路清晰、语言流畅、分析透彻,在简明阐述设计原理的基础上,重点追求对工程实践的指导性,力求使读者在较短的时间内掌握数字信号处理技术FPGA实现的知识和技能。
目录
第1章 FPGA概述 3
1.1 FPGA的发展趋势 3
1.2 FPGA的结构 5
1.2.1 可编程输入/输出单元(IOB) 5
1.2.2 可配置逻辑块(CLB) 6
1.2.3 数字时钟管理模块(DCM) 7
1.2.4 块RAM(BRAM) 8
1.2.5 布线资源 8
1.2.6 专用硬IP核 8
1.3 FPGA的工作原理 9
1.4 FPGA与其他处理平台的比较 10
1.4.1 ASIC、DSP、ARM的特点 10
1.4.2 FPGA的特点及优势 11
1.5 FPGA的主要厂商 12
1.5.1 Xilinx公司 12
1.5.2 Intel公司 13
1.5.3 Lattice公司 13
1.5.4 Actel公司 14
1.5.5 Atmel公司 15
1.6 如何选择FPGA 15
1.7 小结 16
1.8 思考与练习 16
第2章 设计语言及开发工具 17
2.1 Verilog HDL简介 17
2.1.1 HDL的特点及优势 17
2.1.2 选择VHDL还是Verilog 18
2.1.3 Verilog HDL的特点 19
2.2 Verilog HDL的基本语法 20
2.2.1 Verilog HDL的程序结构 20
2.2.2 数据类型及基本运算符 23
2.2.3 Verilog HDL的运算符优先级及Verilog HDL的关键词 25
2.2.4 赋值语句与块语句 26
2.2.5 条件语句和分支语句 29
2.3 常用的FPGA开发工具 30
2.3.1 ISE开发工具 30
2.3.2 ModelSim仿真软件 32
2.4 MATLAB软件 34
2.4.1 MATLAB的简介 34
2.4.2 MATLAB的工作界面 35
2.4.3 MATLAB的特点 36
2.5 FPGA数字信号处理板CXD301 37
2.6 小结 39
2.7 思考与练习 39
第3章 FPGA设计流程 41
3.1 FPGA设计流程概述 41
3.2 流水灯实例设计 44
3.2.1 明确项目需求 44
3.2.2 读懂电路原理图 44
3.2.3 形成设计方案 46
3.3 流水灯实例的Verilog HDL程序设计与综合 47
3.3.1 建立FPGA工程 47
3.3.2 Verilog HDL程序输入 48
3.3.3 程序综合及查看RTL原理图 52
3.4 流水灯实例的功能仿真 54
3.4.1 生成测试激励文件 54
3.4.2 采用ModelSim进行仿真 55
3.4.3 ModelSim的仿真应用技巧 57
3.5 流水灯实例的设计实现与时序仿真 59
3.5.1 添加约束文件 59
3.5.2 设计实现并查看分析报告 60
3.5.3 时序仿真 61
3.6 程序文件下载 62
3.6.1 bit文件下载 62
3.6.2 mcs文件下载 64
3.7 小结 66
3.8 思考与练习 67
第4章 常用接口程序的设计 69
4.1 秒表电路设计 69
4.1.1 数码管的基本工作原理 69
4.1.2 秒表电路实例需求及电路原理分析 70
实例4-1:秒表电路设计 70
4.1.3 形成设计方案 71
4.1.4 顶层文件的Verilog HDL程序设计 71
4.1.5 数码管显示模块的Verilog HDL程序设计 72
4.1.6 秒表计数模块的Verilog HDL程序设计 75
4.1.7 按键消抖模块的Verilog HDL程序设计 77
4.2 串口通信设计 79
4.2.1 RS-232串口通信的概念 79
4.2.2 串口通信实例需求及电路原理分析 81
实例4-2:串口通信电路设计 81
4.2.3 顶层文件的Verilog HDL程序设计 81
4.2.4 时钟模块的Verilog HDL程序设计 82
4.2.5 接收模块的Verilog HDL程序设计 84
4.2.6 发送模块的Verilog HDL程序设计 86
4.3 A/D接口和D/A接口的程序设计 87
4.3.1 A/D转换的工作原理 87
4.3.2 D/A转换的工作原理 87
4.3.3 A/D接口和D/A接口的实例需求及电路原理分析 88
实例4-3:A/D接口和D/A接口电路设计 88
4.3.4 A/D接口和D/A接口的Verilog HDL程序设计 89
4.4 常用接口程序的板载测试 90
4.4.1 秒表电路的板载测试 90
4.4.2 串口通信的板载测试 91
4.4.3 通过ChipScope对A/D接口和D/A接口进行板载测试 92
4.5 小结 99
4.6 思考与练习 100
下篇 设 计 篇
第5章 FPGA中的数字运算 103
5.1 数的表示 103
5.1.1 定点数的定义和表示 104
5.1.2 定点数的三种形式 105
5.1.3 浮点数的表示 106
5.1.4 自定义的浮点数格式 108
5.2 FPGA中的四则运算 110
5.2.1 两个操作数的加法运算 110
实例5-1:在Verilog HDL中同时使用有符号数及无符号数进行运算 111
5.2.2 多个操作数的加法运算 113
5.2.3 采用移位相加法实现乘法运算 113
5.2.4 采用移位相加法实现除法运算 114
5.3 有效数据位的计算 114
5.3.1 有效数据位的概念 114
5.3.2 加法运算中的有效数据位 115
5.3.3 乘法运算中的有效数据位 116
5.3.4 乘加运算中的有效数据位 117
5.4 有限字长效应 117
5.4.1 有限字长效应的产生因素 117
5.4.2 A/D转换器的有限字长效应 118
5.4.3 数字滤波器系数的有限字长效应 119
实例5-2:采用MATLAB仿真二阶数字滤波器的频率响应 119
5.4.4 滤波器运算中的有限字长效应 121
实例5-3:采用MATLAB仿真一阶数字滤波器的输出响应 122
5.5 小结 124
5.6 思考与练习 124
第6章 典型IP核的应用 127
6.1 IP核在FPGA中的应用 127
6.1.1 IP核的一般概念 127
6.1.2 FPGA设计中的IP核类型 128
6.1.3 CMT与FPGA时钟树 130
6.2 时钟管理IP核 131
6.2.1 全局时钟资源 131
6.2.2 利用IP核生成多路时钟信号 132
实例6-1:时钟管理IP核设计 132
6.3 乘法器IP核 135
6.3.1 实数乘法器IP核 135
实例6-2:通过实数乘法器IP核实现实数乘法运算 136
6.3.2 复数乘法器IP核 138
实例6-3:通过复数乘法器IP核实现复数乘法运算 139
6.4 除法器IP核 141
6.4.1 FPGA中的除法运算 141
6.4.2 测试除法器IP核 142
实例6-4:通过除法器IP核实现除法运算 142
6.5 存储器IP核 144
6.5.1 ROM核 144
实例6-5:通过ROM核产生正弦波信号 144
6.5.2 RAM核 147
实例6-6:采用RAM核完成数据速率的转换 147
6.6 数控振荡器IP核 152
6.6.1 数控振荡器工作原理 152
6.6.2 采用DDS核设计扫频仪 154
实例6-7:采用DDS核设计扫频仪 154
6.7 小结 157
6.8 思考与练习 157
第7章 FIR滤波器设计 159
7.1 数字滤波器的理论基础 159
7.1.1 数字滤波器的概念 159
7.1.2 数字滤波器的分类 160
7.1.3 滤波器的特征参数 161
7.2 FIR滤波器的原理 162
7.2.1 FIR滤波器的概念 162
7.2.2 线性相位系统的物理意义 163
7.2.3 FIR滤波器的相位特性 164
7.2.4 FIR滤波器的幅度特性 166
7.3 FIR滤波器的FPGA实现结构 167
7.3.1 滤波器结构的表示方法 167
7.3.2 直接型结构的FIR滤波器 168
7.3.3 级联型结构的FIR滤波器 169
7.4 基于累加器的FIR滤波器设计 170
7.4.1 基于累加器的FIR滤波器性能分析 170
实例7-1:基于累加器的FIR滤波器的FPGA设计 170
7.4.2 基于累加器的FIR滤波器设计 173
7.4.3 基于累加器的FIR滤波器FPGA实现后的仿真 174
7.5 FIR滤波器的MATLAB设计 177
7.5.1 基于fir1()函数的FIR滤波器设计 177
实例7-2:基于fir1()函数的FIR滤波器设计 178
7.5.2 各种窗函数性能的比较 180
7.5.3 各种窗函数性能的仿真 181
实例7-3:通过MATLAB仿真由不同窗函数设计的FIR滤波器性能 181
7.5.4 基于firpm()函数的FIR滤波器设计 183
实例7-4:采用firpm()函数设计FIR滤波器 184
7.5.5 基于FDATOOL的FIR滤波器设计 185
实例7-5:使用FDATOOL设计带通FIR滤波器 186
7.6 FIR滤波器系数的量化方法 187
实例7-6:利用MATLAB设计低通FIR滤波器并进行系数量化 187
7.7 并行结构FIR滤波器的FPGA实现 189
7.7.1 并行结构FIR滤波器的Verilog HDL设计 189
实例7-7:采用并行结构设计15阶FIR滤波器 189
7.7.2 并行结构FIR滤波器的功能仿真 192
7.8 串行结构FIR滤波器的FPGA实现 193
7.8.1 两种串行结构原理 193
7.8.2 全串行结构FIR滤波器的Verilog HDL设计 194
实例7-8:采用全串行结构设计15阶FIR滤波器 194
7.8.3 串行结构FIR滤波器的功能仿真 198
7.9 基于FIR核的FIR滤波器设计 200
7.9.1 FIR滤波器系数文件(COE文件)的生成 200
实例7-9:采用FIR Compiler v5.0核设计61阶低通FIR滤波器 201
7.9.2 基于FIR核的FIR滤波器设计步骤 203
7.9.3 基于FIR核的FIR滤波器功能仿真 206
7.10 FIR滤波器的板载测试 207
7.10.1 硬件接口电路 207
实例7-10:FIR滤波器的CXD301板载测试 207
7.10.2 板载测试程序 207
7.10.3 板载测试验证 211
7.11 小结 212
7.12 思考与练习 213
第8章 IIR滤波器设计 215
8.1 IIR滤波器的理论基础 215
8.1.1 IIR滤波器的原理及特性 215
8.1.2 IIR滤波器常用的结构 216
8.1.3 IIR滤波器与FIR滤波器的比较 219
8.2 IIR滤波器的MATLAB设计 220
8.2.1 采用butter()函数设计IIR滤波器 220
8.2.2 采用cheby1()函数设计IIR滤波器 221
8.2.3 采用cheby2()函数设计IIR滤波器 221
8.2.4 采用ellip()函数设计IIR滤波器 222
8.2.5 采用yulewalk()函数设计IIR滤波器 222
8.2.6 几种IIR滤波器设计函数的比较 223
实例8-1:采用不同IIR滤波器设计函数设计IIR滤波器并进行性能比较 223
8.2.7 采用FDATOOL设计IIR滤波器 225
实例8-2:采用FDATOOL设计带通IIR滤波器 225
8.3 直接型结构IIR滤波器的FPGA实现 226
8.3.1 直接型结构IIR滤波器系数的量化方法 226
8.3.2 直接型结构IIR滤波器的有限字长效应 228
实例8-3:仿真测试不同量化字长对滤波器性能的影响 228
8.3.3 直接型结构IIR滤波器的FPGA实现方法 230
实例8-4:直接型结构IIR滤波器的FPGA设计 230
8.3.4 直接型结构IIR滤波器的Verilog HDL设计 231
8.3.5 MATLAB与ISE14.7的数据交互 235
8.3.6 在MATLAB中生成测试信号文件 236
8.3.7 测试激励文件中的文件IO功能 239
8.3.8 利用MATLAB分析输出信号的频谱 241
8.4 级联型结构IIR滤波器的FPGA实现 242
实例8-5:级联型结构IIR滤波器的FPGA设计 242
8.4.1 滤波器系数的转换 242
8.4.2 级联型结构IIR滤波器的系数量化 244
8.4.3 级联型结构IIR滤波器的FPGA实现 244
8.4.4 级联型结构IIR滤波器的Verilog HDL设计 245
8.4.5 级联型结构IIR滤波器FPGA实现后的仿真 247
8.5 IIR滤波器的板载测试 248
8.5.1 硬件接口电路 248
实例8-6:IIR滤波器的CXD301板载测试 248
8.5.2 板载测试程序 249
8.5.3 板载测试验证 249
8.6 小结 251
8.7 思考与练习 251
第9章 快速傅里叶变换的设计 253
9.1 FFT的原理 253
9.1.1 DFT的原理 253
9.1.2 DFT的运算过程 255
9.1.3 DFT运算中的几种常见问题 256
9.1.4 FFT算法的基本思想 257
9.2 FFT算法的MATLAB仿真 258
9.2.1 通过FFT测量模拟信号的频率 258
实例9-1:利用FFT测量单频信号的频率 258
9.2.2 通过FFT测量模拟信号的幅度 261
实例9-2:利用FFT测量2路频率叠加信号的幅度 261
9.2.3 频率分辨率与分辨不同频率的关系 263
实例9-3:仿真FFT参数对分析信号频谱的影响 263
9.3 FFT核的使用 267
9.3.1 FFT核简介 267
9.3.2 FFT核的接口信号及时序 268
9.4 信号识别电路的FPGA设计 270
9.4.1 频率叠加信号的时域分析 270
实例9-4:信号过零检测分析 270
9.4.2 信号识别电路的设计需求及参数分析 272
实例9-5:信号识别电路的FGPA设计 272
9.4.3 信号识别电路的Verilog HDL设计 273
9.4.4 信号识别电路的ModelSim仿真 276
9.5 信号识别电路的板载测试 279
9.5.1 硬件接口电路 279
实例9-6:信号识别电路的CXD301板载测试 279
9.5.2 板载测试的方案 280
9.5.3 顶层文件的设计 281
9.5.4 测试信号生成模块的设计 283
9.5.5 接收模块的设计 285
9.5.6 数据整理模块的设计 286
9.5.7 串口通信模块的设计 287
9.5.8 板载测试验证 290
9.6 小结 294
9.7 思考与练习 294
参考文献 295
作者简介
杜勇,四川省广安市人,高级工程师、副教授,现任教于四川工商学院,居住于成都。1999年于湖南大学获电子工程专业学士学位,2005年于国防科技大学获信息与通信工程专业硕士学位。发表学术论文十余篇,出版《数字滤波器的MATLAB与FPGA实现》《数字通信同步技术的MATLAB与FPGA实现》《数字调制解调技术的MATLAB与FPGA实现》《锁相环技术原理及FPGA实现》等多部著作。
-
全图解零基础word excel ppt 应用教程
¥15.6¥48.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
机器学习
¥59.4¥108.0 -
情感计算
¥66.8¥89.0 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥48.3¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
LINUX实战——从入门到精通
¥48.3¥69.0 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥38.7¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0