本书是作者结合多年来的教学经验编写的专业技术类教材,编写上尽力避免传统理论化的教学思路,注重于FPGA技术的实践性和应用性。在内容的编排上,为初学者提供了基础知识部分,包括Quartus软件的使用、硬件描述语言语句及语法、FPGA技术常用设计方法等;基本电路及应用系统的设计实例,包括DDS电路、存储器电路、显示接口电路、温湿度控制系统设计等;最后是工程应用实例部分,在工程实例方面,选择了目前应用较为广泛的图像处理、触摸屏、调频调幅电源等。本书力求通过大量实例,为读者提供一个较为开阔的设计应用视野,从而能尽快提升FPGA开发及应用能力。
样章试读
目录
- 目录
前言
第1章 可编程逻辑器件及开发概述 1
1.1 可编程逻辑器件简介 1
1.1.1 可编程逻辑器件发展历程 1
1.1.2 可编程逻辑器件特点 2
1.2 可编程逻辑器件设计应用基础 3
1.2.1 硬件描述语言 3
1.2.2 可编程逻辑器件 3
1.2.3 设计软件 4
1.3 可编程逻辑器件开发流程 4
1.4 可编程逻辑器件应用领域 5
第2章 Quartus 软件的使用 7
2.1 原理图输入设计流程 7
2.1.1 半加器的设计原理 7
2.1.2 创建工程 8
2.1.3 建立图形设计文件 11
2.1.4 工程的编译 13
2.1.5 引脚分配 13
2.1.6 工程的下载验证 13
2.2 硬件描述语言输入设计流程 14
2.2.1 全加器的设计原理 15
2.2.2 半加器的硬件描述语言程序 15
2.2.3 创建工程 16
2.2.4 输入半加器程序设计文件 16
2.2.5 生成元件符号 16
2.2.6 利用生成元件符号设计全加器电路 16
2.3 宏功能模块 (LPM) 的调用 18
2.3.1 存储器的初始化 18
2.3.2 宏功能模块 LPM ROM 的创建 19
2.3.3 查看宏功能模块 ROM 的设计文件 22
2.4 SignalTap Ⅱ嵌入式逻辑分析仪使用 23
2.4.1 SignalTap Ⅱ嵌入式逻辑分析仪的设置 23
2.4.2 编译下载 25
2.4.3 信号波形的捕捉 26
第3章 Verilog HDL 简介 28
3.1 Verilog HDL 硬件描述语言概述 28
3.2 Verilog HDL 程序的构成 28
3.2.1 二-十进制编码器及 Verilog HDL 描述 28
3.2.2 Verilog HDL 程序的基本构成 30
3.3 Verilog HDL 语法规则 32
3.3.1 Verilog HDL 文字规则 32
3.3.2 数据对象 34
3.3.3 运算符 36
3.4 Verilog HDL 中的语句 36
3.4.1 并行语句 36
3.4.2 顺序语句 43
3.5 Modelsim 仿真工具的使用 48
3.5.1 程序中无宏功能模块的 Modelsim 使用流程 49
3.5.2 宏功能模块的 Modelsim 使用流程 53
3.5.3 Testbench 文件的编写 57
第4章 有限状态机设计 61
4.1 有限状态机设计简介 61
4.1.1 有限状态机的特点及分类 61
4.1.2 基于有限状态机的电路设计步骤 61
4.2 Moore 型有限状态机的设计 62
4.3 Mealy 型有限状态机的设计 65
4.4 有限状态机设计举例:十字路口交通灯控制电路 67
4.4.1 设计要求 67
4.4.2 设计分析 67
4.4.3 设计实现 69
第5章 常用功能电路设计 72
5.1 DDS 电路 72
5.1.1 DDS 原理 72
5.1.2 基于 FPGA 的 DDS 电路实现 73
5.1.3 仿真与分析 75
5.2 m 序列信号产生电路 76
5.2.1 m 序列信号产生原理 76
5.2.2 设计举例 76
5.2.3 仿真与分析 77
5.3 SPI 接口电路 78
5.3.1 SPI 通信协议 78
5.3.2 基于 FPGA 的 SPI 通信协议实现 79
5.3.3 应用举例 81
5.4 RAM 存储器接口电路 85
5.4.1 SRAM 存储器 85
5.4.2 基于双 RAM 乒乓操作的数据存储电路 86
5.5 CRC 校验电路 94
5.5.1 CRC 校验原理 94
5.5.2 CRC 校验码的编码原理 95
5.5.3 基于 FPGA 的逐比特比较法求解 CRC 校验码设计实现 96
5.5.4 仿真与分析 97
5.6 LCD 控制电路 99
5.6.1 LCD 简介 99
5.6.2 基于 FPGA 的 LCD 控制电路设计 103
5.7 VGA 控制电路 107
5.7.1 VGA 简介 107
5.7.2 扫描原理 108
5.7.3 VGA 控制时序 108
5.7.4 数模转换芯片 DAC ADV7123 109
5.7.5 基于 FPGA 的 VGA 彩条控制电路设计 109
第6章 应用设计实例 115
6.1 温湿度采集及显示 115
6.1.1 设计要求 115
6.1.2 设计方案 115
6.1.3 相关原理简介 116
6.1.4 温湿度模块设计 118
6.1.5 串口通信模块设计 124
6.1.6 JAVA GUI 设计 127
6.1.7 系统测试 130
6.2 频率计 132
6.2.1 设计要求 132
6.2.2 设计方案 132
6.2.3 测频原理简介 132
6.2.4 设计实现 134
6.3 基于 VGA 显示的接球游戏 140
6.3.1 设计要求 140
6.3.2 设计分析 140
6.3.3 VGA 时序控制模块设计 141
6.3.4 游戏逻辑产生模块设计 144
6.3.5 游戏测试 149
第7章 基于 FPGA 的图像采集处理系统 151
7.1 设计内容 151
7.2 图像采集模块 152
7.2.1 图像捕捉模块 153
7.2.2 I2C 总线配置模块 156
7.2.3 数据格式转换模块 165
7.3 SDRAM 控制模块 170
7.4 VGA 显示控制模块 172
7.4.1 VGA 显示原理 172
7.4.2 VGA 控制模块 172
7.5 图像处理算法及实现 175
7.5.1 图像的透明算法及实现 176
7.5.2 图像灰度处理算法及实现 181
7.5.3 图像降噪算法及实现 183
7.5.4 边缘检测算法及实现 189
第8章 基于触摸屏的电子相册设计 193
8.1 设计要求 193
8.2 相关内容简介 193
8.2.1 LCD 显示驱动芯片 TPG110 193
8.2.2 A/D 转换器 (AD7843) 194
8.3 方案设计 195
8.4 基于 FPGA 的各模块实现 196
8.4.1 LCD 串行控制模块 196
8.4.2 ADC 串行控制模块 196
8.4.3 触摸检测模块 204
8.4.4 FLASH 到 SDRAM 控制模块 206
8.4.5 4 端口 SDRAM 控制模块 212
8.4.6 LCD 时序控制模块 214
8.5 系统的测试 219
8.5.1 LCD 触摸屏与 FPGA 的连接 219
8.5.2 FLASH 中图片下载 220
8.5.3 设计验证 221
第9章 基于 FPGA 的调频调幅电源设计 222
9.1 变频电源的技术分析 222
9.1.1 SPWM 调制技术 222
9.1.2 SPWM 控制方式 222
9.2 变频电源硬件的总体设计 223
9.3 基于 FPGA 的变频电源控制电路的设计 224
9.3.1 变频电源数字控制电路 224
9.3.2 SPWM 波形的实现 224
9.3.3 三路相位差 120±的SPWM波形的生成 231
9.3.4 DCPWM 模块 233
9.4 变频电源的性能测试及分析 236
9.4.1 变频电源的性能 236
9.4.2 变频电源测试结果及分析 237
第10章 电子设计竞赛综合实例 238
10.1 第十届全国大学生电子设计竞赛 F 题 238
10.1.1 任务 238
10.1.2 要求 238
10.1.3 说明 239
10.2 参考设计 240
10.2.1 频率可调时钟产生电路 240
10.2.2 m 序列产生电路 242
10.2.3 曼彻斯特码产生电路 242
10.2.4 从曼彻斯特码提取已知频率的同步时钟的电路 243
10.2.5 从曼彻斯特码中恢复数据的电路 246
10.2.6 从曼彻斯特码提取未知频率的同步时钟的电路 247
10.3 有源低通模拟滤波器的设计 252
附录A DE2开发平台 256
A.1 DE2板上资源及硬件布局 256
A.2 DE2电路组成 258
A.3 DE2平台的开发环境 260
A.4 DE2平台的扩展接口 261
A.5 DE2平台上 EP2C35F672 的引脚分配表 261
附录B DE2-115开发平台 273
B.1 DE2-115板上资源及硬件布局 273
B.2 DE2-115平台上提供的资源 273
B.3 DE2-115平台的扩展接口 274
B.4 DE2-115平台的开发环境 275
B.5 DE2-115平台上 EP4CE115F29C7的引脚分配表 275
参考文献 282