本书旨在为读者提供一个全面而深入的现场可编程门阵列(FPGA)技术指南,不仅涵盖了FPGA的基本原理、发展历程及其在现代电子系统设计中的重要性,还详细探讨了其在多个前沿领域的实际应用,如数字信号处理、嵌入式系统设计、网络通信和人工智能等。 书中首先介绍了可编程逻辑器件的基础知识,包括FPGA的发展历程、特点及其与CPLD和ASIC的比较,帮助读者理解FPGA在整个电子设计自动化领域的重要地位。接着,深入讲解了Verilog HDL语言的基础及高级特性,通过丰富的实例展示了如何使用Verilog进行FPGA设计。第3、4章重点讲述了FPGA集成开发环境的使用方法,从安装、工程创建再到具体的设计流程,提供了详尽的操作指导。本书特别强调了实际应用的重要性,通过大量的实验案例,从基础设计到复杂系统实现,逐步引导读者掌握FPGA设计的核心技能。 本次修订更新了最新的FPGA芯片型号和技术动态,并增加了多种实验设计实例,以满足不同层次读者的需求。为了便于学习,本书配套了丰富的教学资源,包括电子课件、微课视频、实验指导书、代码库等。相关教学资源可登录机工教育服务网(www.cmpedu.com)免费注册后下载,或联系编辑索取(微信:18515977506,电话:010-88379753)。 本书不仅是高校电子信息类相关专业师生的教学参考书,也是从事FPGA设计工作的工程师们不可或缺的技术手册。通过对本书的学习,读者不仅能掌握FPGA的基本理论知识,还能提升解决实际问题的能力,在FPGA的世界里探索、成长和进步。希望每位读者都能从中获得宝贵的知识和无尽的乐趣。
本书旨在为读者提供一个全面而深入的现场可编程门阵列(FPGA)技术指南,不仅涵盖了FPGA的基本原理、发展历程及其在现代电子系统设计中的重要性,还详细探讨了其在多个前沿领域的实际应用,如数字信号处理、嵌入式系统设计、网络通信和人工智能等。 书中首先介绍了可编程逻辑器件的基础知识,包括FPGA的发展历程、特点及其与CPLD和ASIC的比较,帮助读者理解FPGA在整个电子设计自动化领域的重要地位。接着,深入讲解了Verilog HDL语言的基础及高级特性,通过丰富的实例展示了如何使用Verilog进行FPGA设计。第3、4章重点讲述了FPGA集成开发环境的使用方法,从安装、工程创建再到具体的设计流程,提供了详尽的操作指导。本书特别强调了实际应用的重要性,通过大量的实验案例,从基础设计到复杂系统实现,逐步引导读者掌握FPGA设计的核心技能。 本次修订更新了最新的FPGA芯片型号和技术动态,并增加了多种实验设计实例,以满足不同层次读者的需求。为了便于学习,本书配套了丰富的教学资源,包括电子课件、微课视频、实验指导书、代码库等。相关教学资源可登录机工教育服务网(www.cmpedu.com)免费注册后下载,或联系编辑索取(微信:18515977506,电话:010-88379753)。 本书不仅是高校电子信息类相关专业师生的教学参考书,也是从事FPGA设计工作的工程师们不可或缺的技术手册。通过对本书的学习,读者不仅能掌握FPGA的基本理论知识,还能提升解决实际问题的能力,在FPGA的世界里探索、成长和进步。希望每位读者都能从中获得宝贵的知识和无尽的乐趣。
李辉,教授,博士,从事无线通信和智能信号处理方面的研究和教学工作。主持和参与完成国家及省部级项目5项,获国家发明专利授权15项,发表SCI、EI收录论文33篇,主编教材2部。
第1章 可编程逻辑器件概述1
1.1 可编程逻辑器件简介1
1.1.1 可编程逻辑器件的发展历程1
1.1.2 可编程逻辑器件的特性要求3
1.1.3 可编程逻辑器件的应用领域4
1.2 FPGA简介6
1.2.1 FPGA的基本概念6
1.2.2 FPGA的特点与应用6
1.2.3 FPGA器件介绍8
1.2.4 FPGA的器件选型8
1.2.5 FPGA的基本开发流程10
1.2.6 FPGA的发展趋势及意义13
1.3 FPGA与CPLD14
1.3.1 FPGA的原理与基本结构14
1.3.2 CPLD的原理与基本结构21
1.3.3 FPGA与CPLD的比较24
1.4 FPGA与ASIC25
1.4.1 ASIC简介25
1.4.2 FPGA与ASIC的特点及选择26
习题127
第2章 Verilog HDL概述28
2.1 Verilog HDL简介28
2.1.1 Verilog HDL的产生与发展28
2.1.2 Verilog HDL的抽象级别29
2.1.3 Verilog HDL的特点29
2.2 数据类型及运算符30
2.2.1 常量31
2.2.2 变量33
2.2.3 运算符及优先级36
2.3 模块结构及描述方式43
2.3.1 模块结构43
2.3.2 描述方式46
2.4 逻辑控制语句54
2.4.1 条件语句(if-else语句)54
2.4.2 条件语句(case语句)56
2.4.3 循环语句58
2.5 系统任务及函数62
2.5.1 系统任务63
2.5.2 函数65
2.5.3 常用的系统任务及函数70
2.6 仿真文件撰写语法78
2.6.1 仿真文件的基本结构78
2.6.2 初始化过程79
2.6.3 测试向量生成80
2.6.4 波形输出80
2.6.5 仿真结果分析80
2.7 Verilog HDL设计实例81
2.7.1 简要语法总结81
2.7.2 设计实例82
习题285
第3章 Vivado集成开发环境86
3.1 Vivado简介86
3.1.1 Vivado安装及新建工程87
3.1.2 用户界面介绍93
3.1.3 工程创建94
3.1.4 实例讲解99
3.1.5 Vivado的功能特性100
3.1.6 Vivado的五大特征101
3.1.7 Vivado的两种工作模式102
3.2 Vivado的设计104
3.2.1 Vivado下的FPGA设计流程104
3.2.2 Vivado系统级设计流程105
3.3 Vivado设计套件107
3.3.1 单一共享可扩展的数学模型108
3.3.2 标准化XDC约束文件(SDC)109
3.4 Vivado的调试过程111
3.4.1 设计调试原理和方法111
3.4.2 创建新的FIFO调试工程112
习题3113
第4章 Quartus Prime开发工具114
4.1 软件介绍114
4.1.1 软件安装115
4.1.2 ModelSim的安装120
4.1.3 用户界面122
4.1.4 软件的工具与功能125
4.2 设计流程128
4.2.1 电路设计133
4.2.2 综合139
4.2.3 布局布线142
4.2.4 仿真146
4.2.5 ModelSim仿真150
4.2.6 配置与下载157
4.3 可支持扩展的EDA工具162
习题4163
第5章 常用IP核164
5.1 ROM164
5.1.1 ROM IP核特征164
5.1.2 DPROM165
5.1.3 SPROM166
5.1.4 ROM IP核在Vivado中的实现167
5.2 MMCM172
5.2.1 MMCM IP 特征173
5.2.2 MMCM模块输入/输出信号174
5.2.3 相比于PLL的优势174
5.2.4 MMCM IP核在Vivado中的实现175
5.3 FFT180
5.3.1 FFT IP 核特征181
5.3.2 FFT 变体181
5.3.3 变量串流182
5.3.4 FFT处理器引擎183
5.3.5 FFT IP核在Quartus中的实现184
5.4 UART189
5.4.1 UART IP核的特征189
5.4.2 接口和寄存器190
5.4.3 发射器与接收器逻辑190
5.4.4 波特率191
5.4.5 数据位,停止位,奇偶校验191
5.4.6 UART IP核在Quartus中的实现192
习题5200
第6章 FPGA实验与应用实例201
6.1 分路器201
6.1.1 模块简介201
6.1.2 模块代码201
6.1.3 仿真测试202
6.2 加法器204
6.2.1 模块简介205
6.2.2 模块代码205
6.2.3 仿真测试206
6.3 数字滤波器208
6.3.1 模块简介208
6.3.2 模块代码209
6.3.3 仿真测试209
6.4 有限状态机212
6.4.1 模块简介212
6.4.2 模块代码212
6.4.3 仿真测试213
6.5 PWM发生器215
6.5.1 模块简介215
6.5.2 模块代码216
6.5.3 仿真测试216
6.6 数字分频器219
6.6.1 模块简介219
6.6.2 模块代码220
6.6.3 仿真测试221
6.7 多路选择器222
6.7.1 模块简介222
6.7.2 模块代码223
6.7.3 仿真测试223
6.8 BCD与二进制转换225
6.8.1 模块简介226
6.8.2 模块代码226
6.8.3 仿真测试227
6.9 数码管显示230
6.9.1 模块简介230
6.9.2 模块代码231
6.9.3 仿真测试232
6.10 VGA显示驱动234
6.10.1 模块简介234
6.10.2 模块代码237
6.10.3 仿真测试238
习题6240
随手扫一扫~了解多多