第一篇 基础知识 3
项目1 了解FPGA/CPLD 3
1.1 FPGA/CPLD的基本结构 3
1.1.1 FPGA的基本结构 3
1.1.2 CPLD的基本结构 7
1.1.3 FPGA和CPLD的比较 10
1.2 Altera的FPGA/CPLD 11
1.2.1 Altera的FPGA 11
1.2.2 Altera的CPLD 15
1.2.3 FPGA/CPLD选型 17
1.3 FPGA/CPLD的开发流程 19
小结 20
课后练习 21
项目2 学习VHDL语言的基本知识 22
2.1 VHDL程序结构 22
2.1.1 简单VHDL程序举例 23
2.1.2 实体 24
2.1.3 结构体 26
2.1.4 库和程序包 27
2.1.5 配置 29
2.2 VHDL的语言要素 33
2.2.1 语法规则 33
2.2.2 标识符 33
2.2.3 数据类型 34
2.2.4 运算操作符 40
2.3 VHDL基本语句 44
2.3.1 顺序语句 45
2.3.2 并行语句 50
2.3.3 子程序 52
小结 54
课后练习 54
项目3 熟悉FPGA/CPLD的开发环境 55
3.1 常用开发软件 55
3.2 QuartusⅡ的使用 56
3.2.1 QuartusⅡ的用户界面 61
3.2.2 设计输入 64
3.2.3 设计编译 78
3.2.4 设计仿真 88
3.2.5 器件编程 91
3.3 DE2开发板 94
3.3.1 DE2开发板简介 94
3.3.2 DE2开发板的使用 98
小结 124
课后练习 125
第二篇 应用开发 129
项目4 门电路设计 129
4.1 基本逻辑门的设计 129
4.1.1 设计要求 129
4.1.2 构思——方案选择 129
4.1.3 设计——VHDL源程序设计 129
4.1.4 实现——编辑、编译 130
4.1.5 运行——仿真、编程测试 131
4.2 三态门的设计 132
4.2.1 设计要求 132
4.2.2 构思——方案选择 132
4.2.3 设计——VHDL源程序设计 132
4.2.4 实现——编辑、编译 133
4.2.5 运行——仿真、编程测试 133
小结 135
课后习题 135
项目5 编码器设计 136
5.1 普通编码器的设计 136
5.1.1 设计要求 136
5.1.2 构思——方案选择 136
5.1.3 设计——VHDL源程序设计 137
5.1.4 实现——编辑、编译 138
5.1.5 运行——仿真、编程测试 138
5.2 优先编码器的设计 140
5.2.1 设计要求 140
5.2.2 构思——方案选择 140
5.2.3 设计——VHDL源程序设计 141
5.2.4 实现——编辑、编译 142
5.2.5 运行——仿真、编程测试及结果分析 142
小结 144
课后练习 144
项目6 译码器设计 145
6.1 3-8译码器的设计 145
6.1.1 设计要求 145
6.1.2 构思——方案选择 145
6.1.3 设计——VHDL源程序设计 146
6.1.4 实现——编辑、编译 147
6.1.5 运行——仿真、编程测试 147
6.2 二-十进制BCD译码器的设计 148
6.2.1 设计要求 149
6.2.2 构思——方案选择 149
6.2.3 设计——VHDL源程序设计 149
6.2.4 实现——编辑、编译 149
6.2.5 运行——仿真、编程测试 150
小结 151
课后练习 151
项目7 触发器设计 152
7.1 同步RS触发器的设计 152
7.1.1 设计要求 152
7.1.2 构思——方案选择 152
7.1.3 设计——VHDL源程序设计 153
7.1.4 实现——编辑、编译 153
7.1.5 运行——仿真、编程测试 154
7.2 同步复位D触发器的设计 155
7.2.1 设计要求 155
7.2.2 构思——方案选择 155
7.2.3 设计——VHDL源程序设计 155
7.2.4 实现——编辑、编译 156
7.2.5 运行——仿真、编程测试 157
小结 158
课后练习 158
项目8 计数器设计 159
8.1 同步计数器设计 159
8.1.1 设计要求 159
8.1.2 预备知识 159
8.1.3 构思——方案选择 161
8.1.4 设计——编写VHDL源程序 161
8.1.5 实现——编译与仿真 162
8.1.6 运行——编程测试与结果分析 162
8.2 异步计数器设计 163
8.2.1 设计要求 163
8.2.2 预备知识 163
8.2.3 构思——方案选择 164
8.2.4 设计——编写VHDL源程序 165
8.2.5 实现——编译与仿真 166
8.2.6 运行——编程测试与结果分析 167
小结 167
课后练习 168
项目9 分频器设计 169
9.1 占空比与分频系数可调的分频器设计 169
9.1.1 设计要求 169
9.1.2 预备知识 169
9.1.3 构思——方案选择 169
9.1.4 设计——编写VHDL源程序 169
9.1.5 实现——编译与仿真 170
9.1.6 运行——编程测试与结果分析 171
9.2 与空比为50%的奇数分频器设计 171
9.2.1 设计要求 171
9.2.2 构思——提出设计方案 171
9.2.3 设计——VHDL源程序设计 171
9.2.4 实现——编译与仿真 172
9.2.5 运行——编程测试与结果分析 173
小结 173
课后练习 173
项目10 电梯控制器 174
10.1 设计要求 174
10.2 必备知识 174
10.2.1 状态机的基本概念 174
10.2.2 状态机的VHDL设计 175
10.3 项目实施 181
10.3.1 构思——总体方案设计 181
10.3.2 设计——编写各模块的VHDL源程序 182
10.3.3 实现——编译与仿真 187
10.3.4 运行——编程测试与结果分析 188
小结 189
项目11 交通灯控制器 190
11.1 设计要求 190
11.2 构思——总体方案确定 190
11.3 设计——VHDL编程 191
11.3.1 分频模块设计 191
11.3.2 控制模块设计 192
11.3.3 显示模块设计 199
11.3.4 顶层设计 204
11.4 实现——硬件编程 210
11.5 运行——测试结果分析 210
小结 211
项目12 简单微处理器设计与实现 213
12.1 设计要求 213
12.2 预备知识 213
12.2.1 微处理器的硬件系统 213
12.2.2 微处理器的指令系统 214
12.3 构思——设计思路与方案 215
12.4 设计——VHDL源程序设计 218
12.5 实现——编译与仿真 221
12.6 运行——编程测试与结果分析 222
小结 223
参考文献 225