AMD FPGA基础与工程实践——基于Vivado2022.2与SystemVerilog
定价:¥79.00
作者: 李森
出版时间:2026-01
出版社:电子工业出版社
- 电子工业出版社
- 9787121496028
- 1-3
- 16开
- 2026-01
- 558
- 工学
- 电子信息类
- 电子信息与电气
- 本科 研究生及以上
内容简介
本书结合Vivado2022.2开发环境对FPGA的开发过程进行详细描述,注重理论与工程实践相结合。本书内容由浅入深,循序渐进。全书共11章,分别对初识FPGA、FPGA硬件与配置基础、Vivado与Sublime Text的安装与配置、Vivado基本开发流程、数字逻辑基础设计、FPGA常用的设计规范与方法、Vivado IP核使用基础、基本波形发生器、常用通信接口设计、FPGA综合数字系统设计及Vivado IDE高级技巧进行了详细描述。书中的设计代码均通过实际板级验证,读者可以直接将其应用于实际工程设计,同时大部分设计给出了对应的Testbench,便于读者通过仿真对设计进行更加深入的研究学习,快速提升设计能力。 本书可作为FPGA初学者、研究人员、工程技术人员的参考书籍,也可以作为大专院校相关专业的辅助教材。
目录
目录
第1章 初识FPGA 1
1.1 FPGA基础 1
1.1.1 FPGA是什么 1
1.1.2 FPGA的发展历程 1
1.2 FPGA的主流应用领域 2
1.2.1 视频图像处理 2
1.2.2 通信领域 3
1.2.3 数字信号处理 3
1.2.4 高性能计算 3
1.2.5 嵌入式领域 4
1.3 FPGA的开发流程 4
1.4 FPGA必备基础与学习方法 5
1.4.1 必备基础 5
1.4.2 学习方法 5
1.5 总结 5
第2章 FPGA硬件与配置基础 6
2.1 FPGA最小系统 6
2.1.1 最小系统的组成 6
2.1.2 电源电路 6
2.1.3 时钟电路 7
2.1.4 复位电路 7
2.1.5 JTAG配置电路 8
2.1.6 配置Flash电路 9
2.2 AMD FPGA的配置流程 9
2.2.1 配置模式 9
2.2.2 配置模式设置 10
2.2.3 配置功能引脚详解 12
2.2.4 FPGA配置过程详解 14
第3章 Vivado与Sublime Text的安装与配置 17
3.1 Vivado安装与License加载 17
3.1.1 Vivado安装 17
3.1.2 Vivado License加载 22
3.2 Sublime Text下载与安装 26
3.2.1 Sublime Text下载 26
3.2.2 Sublime Text安装 26
3.3 Vivado与Sublime Text关联 28
第4章 Vivado基本开发流程 30
4.1 工程建立基础 30
4.1.1 创建工程 30
4.1.2 RTL代码设计 33
4.1.3 逻辑仿真 36
4.1.4 添加约束 42
4.1.5 工程综合 43
4.1.6 工程实现 44
4.1.7 bit文件生成与程序下载 45
4.2 MCS文件生成与程序固化 47
4.2.1 MCS配置文件的生成 48
4.2.2 MCS文件下载 51
第5章 数字逻辑基础设计 55
5.1 编码器设计 55
5.1.1 编码器的原理 55
5.1.2 优先编码器SystemVerilog实现 55
5.1.3 逻辑仿真验证 56
5.2 流水灯设计 58
5.2.1 功能描述 58
5.2.2 流水灯SystemVerilog实现 58
5.2.3 仿真验证 59
5.2.4 实际验证 60
5.3 按键消抖设计 61
5.3.1 按键的物理结构 61
5.3.2 按键消抖的原理与状态机设计 61
5.3.3 按键消抖SystemVerilog实现 63
5.3.4 仿真验证 70
5.3.5 实际验证 71
5.4 数码管显示驱动设计 71
5.4.1 数码管基础 71
5.4.2 数码管的驱动设计原理 72
5.4.3 数码管扫描模块SystemVerilog实现 73
5.4.4 SN74HC595显示驱动设计 78
5.4.5 实际验证 80
5.5 数字时钟设计 80
5.5.1 任务描述 80
5.5.2 需求分析 81
5.5.3 逻辑功能实现 81
5.5.4 实际验证 95
第6章 FPGA常用的设计规范与方法 97
6.1 复位设计 97
6.1.1 同步复位设计 97
6.1.2 异步复位设计 98
6.1.3 异步复位同步释放 98
6.1.4 AMD(Xilinx)FPGA推荐复位设计 100
6.2 跨时钟域处理 101
6.2.1 单比特信号跨时钟域处理 101
6.2.2 多比特信号跨时钟域处理 104
6.3 状态机设计 105
6.3.1 状态编码形式选择 106
6.3.2 单进程、多进程(多段)状态机设计 106
6.3.3 三种状态机的比较 112
6.4 时序优化的基本方法 113
6.4.1 时序基础 113
6.4.2 插入寄存器 114
6.4.3 重定时 116
第7章 Vivado IP核使用基础 118
7.1 ILA IP核 118
7.1.1 ILA IP核创建 118
7.1.2 ILA IP核实际应用举例 120
7.1.3 ILA抓取窗口按钮说明 122
7.2 VIO IP核 123
7.2.1 VIO IP核创建 123
7.2.2 VIO IP核实际应用举例 125
7.3 锁相环——Clocking Wizard IP核 128
7.3.1 Clocking Wizard IP核创建 129
7.3.2 Clocking Wizard IP核仿真验证 132
7.4 块RAM使用——双端口RAM IP核 134
7.4.1 双端口RAM IP核的创建 134
7.4.2 双端口RAM IP核读写仿真 137
7.5 块RAM的使用——单端口ROM 140
7.5.1 ROM IP核的创建 140
7.5.2 单端口ROM读写仿真 143
7.6 块RAM使用——FIFO 144
7.6.1 单时钟FIFO IP核 144
7.6.2 双时钟FIFO IP核 150
第8章 基本波形发生器 157
8.1 PWM控制器设计 157
8.1.1 PWM控制器模块设计 157
8.1.2 PWM控制器SystemVerilog实现 158
8.1.3 PWM控制器仿真验证 160
8.2 三角波发生器设计 161
8.2.1 三角波发生模块设计 161
8.2.2 三角波发生器SystemVerilog实现 162
8.2.3 三角波发生器仿真验证 165
8.3 正弦波发生器设计 167
8.3.1 DDS的基本原理 168
8.3.2 幅度调节原理 169
8.3.3 正弦波模块设计 169
8.3.4 正弦波模块SystemVerilog实现 173
8.3.5 仿真验证 174
第9章 常用通信接口设计 177
9.1 UART通信与RS232、RS485接口 177
9.1.1 UART协议基础 177
9.1.2 UART发送设计 178
9.1.3 UART接收设计 191
9.1.4 RS485接口 202
9.2 SPI与ADC128S102 203
9.2.1 SPI协议简介 203
9.2.2 ADC128S102读写驱动框架设计 204
9.2.3 ADC驱动SystemVerilog实现 206
9.2.4 仿真验证 212
9.2.5 实际测试 215
9.3 IIC接口与24LC64 217
9.3.1 IIC协议简介 217
9.3.2 24LC64读写时序基础 218
9.3.3 24LC64写模块设计 220
9.3.4 24LC64读模块设计 222
9.3.5 实际测试 224
第10章 FPGA综合数字系统设计 229
10.1 基于XADC的FPGA温度监控与调节 229
10.1.1 功能概述 229
10.1.2 XADC IP核配置 229
10.1.3 XADC IP核使用讲解 233
10.1.4 代码设计 236
10.1.5 板级验证 243
10.2 FPGA程序编译时间与版本管理 244__
第1章 初识FPGA 1
1.1 FPGA基础 1
1.1.1 FPGA是什么 1
1.1.2 FPGA的发展历程 1
1.2 FPGA的主流应用领域 2
1.2.1 视频图像处理 2
1.2.2 通信领域 3
1.2.3 数字信号处理 3
1.2.4 高性能计算 3
1.2.5 嵌入式领域 4
1.3 FPGA的开发流程 4
1.4 FPGA必备基础与学习方法 5
1.4.1 必备基础 5
1.4.2 学习方法 5
1.5 总结 5
第2章 FPGA硬件与配置基础 6
2.1 FPGA最小系统 6
2.1.1 最小系统的组成 6
2.1.2 电源电路 6
2.1.3 时钟电路 7
2.1.4 复位电路 7
2.1.5 JTAG配置电路 8
2.1.6 配置Flash电路 9
2.2 AMD FPGA的配置流程 9
2.2.1 配置模式 9
2.2.2 配置模式设置 10
2.2.3 配置功能引脚详解 12
2.2.4 FPGA配置过程详解 14
第3章 Vivado与Sublime Text的安装与配置 17
3.1 Vivado安装与License加载 17
3.1.1 Vivado安装 17
3.1.2 Vivado License加载 22
3.2 Sublime Text下载与安装 26
3.2.1 Sublime Text下载 26
3.2.2 Sublime Text安装 26
3.3 Vivado与Sublime Text关联 28
第4章 Vivado基本开发流程 30
4.1 工程建立基础 30
4.1.1 创建工程 30
4.1.2 RTL代码设计 33
4.1.3 逻辑仿真 36
4.1.4 添加约束 42
4.1.5 工程综合 43
4.1.6 工程实现 44
4.1.7 bit文件生成与程序下载 45
4.2 MCS文件生成与程序固化 47
4.2.1 MCS配置文件的生成 48
4.2.2 MCS文件下载 51
第5章 数字逻辑基础设计 55
5.1 编码器设计 55
5.1.1 编码器的原理 55
5.1.2 优先编码器SystemVerilog实现 55
5.1.3 逻辑仿真验证 56
5.2 流水灯设计 58
5.2.1 功能描述 58
5.2.2 流水灯SystemVerilog实现 58
5.2.3 仿真验证 59
5.2.4 实际验证 60
5.3 按键消抖设计 61
5.3.1 按键的物理结构 61
5.3.2 按键消抖的原理与状态机设计 61
5.3.3 按键消抖SystemVerilog实现 63
5.3.4 仿真验证 70
5.3.5 实际验证 71
5.4 数码管显示驱动设计 71
5.4.1 数码管基础 71
5.4.2 数码管的驱动设计原理 72
5.4.3 数码管扫描模块SystemVerilog实现 73
5.4.4 SN74HC595显示驱动设计 78
5.4.5 实际验证 80
5.5 数字时钟设计 80
5.5.1 任务描述 80
5.5.2 需求分析 81
5.5.3 逻辑功能实现 81
5.5.4 实际验证 95
第6章 FPGA常用的设计规范与方法 97
6.1 复位设计 97
6.1.1 同步复位设计 97
6.1.2 异步复位设计 98
6.1.3 异步复位同步释放 98
6.1.4 AMD(Xilinx)FPGA推荐复位设计 100
6.2 跨时钟域处理 101
6.2.1 单比特信号跨时钟域处理 101
6.2.2 多比特信号跨时钟域处理 104
6.3 状态机设计 105
6.3.1 状态编码形式选择 106
6.3.2 单进程、多进程(多段)状态机设计 106
6.3.3 三种状态机的比较 112
6.4 时序优化的基本方法 113
6.4.1 时序基础 113
6.4.2 插入寄存器 114
6.4.3 重定时 116
第7章 Vivado IP核使用基础 118
7.1 ILA IP核 118
7.1.1 ILA IP核创建 118
7.1.2 ILA IP核实际应用举例 120
7.1.3 ILA抓取窗口按钮说明 122
7.2 VIO IP核 123
7.2.1 VIO IP核创建 123
7.2.2 VIO IP核实际应用举例 125
7.3 锁相环——Clocking Wizard IP核 128
7.3.1 Clocking Wizard IP核创建 129
7.3.2 Clocking Wizard IP核仿真验证 132
7.4 块RAM使用——双端口RAM IP核 134
7.4.1 双端口RAM IP核的创建 134
7.4.2 双端口RAM IP核读写仿真 137
7.5 块RAM的使用——单端口ROM 140
7.5.1 ROM IP核的创建 140
7.5.2 单端口ROM读写仿真 143
7.6 块RAM使用——FIFO 144
7.6.1 单时钟FIFO IP核 144
7.6.2 双时钟FIFO IP核 150
第8章 基本波形发生器 157
8.1 PWM控制器设计 157
8.1.1 PWM控制器模块设计 157
8.1.2 PWM控制器SystemVerilog实现 158
8.1.3 PWM控制器仿真验证 160
8.2 三角波发生器设计 161
8.2.1 三角波发生模块设计 161
8.2.2 三角波发生器SystemVerilog实现 162
8.2.3 三角波发生器仿真验证 165
8.3 正弦波发生器设计 167
8.3.1 DDS的基本原理 168
8.3.2 幅度调节原理 169
8.3.3 正弦波模块设计 169
8.3.4 正弦波模块SystemVerilog实现 173
8.3.5 仿真验证 174
第9章 常用通信接口设计 177
9.1 UART通信与RS232、RS485接口 177
9.1.1 UART协议基础 177
9.1.2 UART发送设计 178
9.1.3 UART接收设计 191
9.1.4 RS485接口 202
9.2 SPI与ADC128S102 203
9.2.1 SPI协议简介 203
9.2.2 ADC128S102读写驱动框架设计 204
9.2.3 ADC驱动SystemVerilog实现 206
9.2.4 仿真验证 212
9.2.5 实际测试 215
9.3 IIC接口与24LC64 217
9.3.1 IIC协议简介 217
9.3.2 24LC64读写时序基础 218
9.3.3 24LC64写模块设计 220
9.3.4 24LC64读模块设计 222
9.3.5 实际测试 224
第10章 FPGA综合数字系统设计 229
10.1 基于XADC的FPGA温度监控与调节 229
10.1.1 功能概述 229
10.1.2 XADC IP核配置 229
10.1.3 XADC IP核使用讲解 233
10.1.4 代码设计 236
10.1.5 板级验证 243
10.2 FPGA程序编译时间与版本管理 244__















