第1章 FPGA基本情况介绍 1
1.1 FPGA简史 1
1.1.1 FPGA与ASIC 1
1.1.2 FPGA与CPLD 4
1.1.3 Altera与Xilinx 5
1.1.4 Verilog与VHDL 6
1.2 FPGA芯片(Xilinx)介绍 8
1.2.1 FPGA的基本结构 8
1.2.2软核、硬核及固核 12
1.2.3 7系列FPGA简介 13
1.3 FPGA的应用领域 17
1.3.1机器学习 17
1.3.2 5G无线 19
1.3.3嵌入式视觉 20
1.3.4工业物联网 21
1.3.5云计算 22
1.3.6 FPGA硬件加速平台 23
1.4总结 23
第2章 FPGA设计基础知识 24
2.1软件下载及安装 24
2.1.1 ISE下载及安装 24
2.1.2 ModelSim下载及安装 28
2.1.3 Vivado下载及安装 29
2.1.4 ISE关联ModelSim 32
2.1.5 Vivado关联ModelSim 36
2.1.6 UE(UltraEdit)的安装和配置 40
2.2 Verilog基本语法介绍 44
2.2.1发展历史 44
2.2.2语言设计思路 45
2.2.3语言要素 46
2.2.4数据类型 47
2.2.5流程控制 50
2.2.6语言描述方法 52
2.2.7逻辑门级描述 56
2.2.8晶体管级描述 57
2.2.9逻辑综合编辑 58
2.2.10可综合代码 58
2.2.11不可综合结构类型 58
2.2.12高级功能编辑 59
2.3 FPGA开发流程 60
2.3.1设计流程 60
2.3.2典型FPGA开发流程与注意事项 61
2.4总结 63
第3章 FPGA初级设计 64
3.1呼吸灯设计与实现 64
3.1.1需求分析 64
3.1.2流程 64
3.1.3时序图 65
3.1.4时序图寄存器分析 66
3.1.5源码展示 67
3.1.6仿真文件 68
3.1.7仿真结果分析 69
3.1.8约束文件 70
3.1.9扩展训练 70
3.2流水灯设计与实现 70
3.2.1需求分析 70
3.2.2流程 71
3.2.3时序图 71
3.2.4时序图寄存器分析 72
3.2.5源码展示 73
3.2.6仿真文件 74
3.2.7仿真结果分析 74
3.2.8扩展训练 75
3.3按键控制LED设计与实现 75
3.3.1需求分析 75
3.3.2流程 75
3.3.3时序图 75
3.3.4时序图寄存器分析 76
3.3.5源码展示 77
3.3.6仿真文件 79
3.3.7仿真结果分析 80
3.3.8扩展训练 81
3.4自动售货机设计与实现 81
3.4.1需求分析 81
3.4.2流程 81
3.4.3时序图 82
3.4.4时序图寄存器分析 84
3.4.5源码展示 87
3.4.6仿真文件 87
3.4.7仿真结果分析 89
3.4.8扩展训练 90
3.5总结 90
第4章 FPGA中级设计 91
4.1串口通信设计与实现 91
4.1.1需求分析 91
4.1.2 UART协议简介 91
4.1.3流程图 93
4.1.4源码分析 94
4.1.5仿真测试 97
4.2 VGA设计与实现 99
4.2.1需求分析 99
4.2.2 VGA原理简介 99
4.2.3源码展示分析 103
4.2.4仿真结果分析 106
4.2.5扩展训练 107
4.3 VGA显示图像 107
4.3.1需求分析 107
4.3.2流程 107
4.3.3时序图 108
4.3.4调用RAM模块1P核步骤 108
4.3.5扩展训练 110
4.4 Sobel算子实现 110
4.4.1需求分析 110
4.4.2 Sobel算子详解 110
4.4.3 Sobel算子流程 112
4.4.4 Sobel算子时序图 113
4.4.5核心代码展示和分析 114
4.5总结 120
第5章 PGA高级设计 121
5.1 DDR3理论讲解和实践部分 121
5.1.1 DDR3工作流程 121
5.1.2 DDR3的一些基本概念 123
5.1.3文档研读 128
5.1.4 DDR3的IP核测试 133
5.1.5总结 139
5.2 PCI-e理论讲解和实践 139
5.2.1理论讲解 139
5.2.2扩展和未来方向 144
5.2.3硬件协议摘要 144
5.2.4 RIFFA简介 147
5.2.5 RIFFA使用之FPGA端 150
5.2.6 RIFFA使用之PC端 157
5.3总结 159
第6章 FPGA高级综合设计 160
6.1 System Generator介绍及安装 160
6.2 System Generator工具的基本使用方法 166
6.2.1 System Generator中的库 167
6.2.2 System Generator中的数据类型 174
6.2.3 System Generator自动代码生成 174
6.3 System Generator实例 175
6.3.1 FIR滤波器实例 176
6.3.2 FFT实例 193
6.3.3数字正交解调(DDC)实例 199
6.4 HLS介绍及安装 211
6.5 HLS工具的基本使用方法 213
6.6 HLS实例——基于HLS的Sobel边缘检测 214
6.6.1再次出现的Sobel算子 214
6.6.2 MATLAB仿真实现边缘检测 216
6.6.3 HLS实现图像边缘检测 216
6.7总结 224