第1章 数字设计概述及FPGA 1
1.1 数字设计概述 1
1.1.1 数字设计基本概念 1
1.1.2 数字设计基本模型 1
1.1.3 数字设计基本结构 2
1.2 FPGA概述 2
1.2.1 FPGA基本概念 2
1.2.2 FPGA基本结构 3
1.2.3 FPGA主要生产厂商 4
1.2.4 开发平台FPGA芯片介绍 7
1.3 基于FPGA的数字设计方法 9
1.3.1 设计流程 9
1.3.2 基本设计方法 12
第2章 数字设计硬件开发平台BASYS2与BASYS3 13
2.1 FPGA设计开发平台简介 13
2.1.1 FPGA设计开发平台基本性能与组成结构 13
2.1.2 BASYS2与BASYS3基本结构 13
2.1.3 BASYS2与BASYS3实物描述 14
2.2 BASYS2设计开发平台 14
2.2.1 BASYS2开发板性能 14
2.2.2 BASYS2基本配置 14
2.2.3 BASYS2功能详述 16
2.3 BASYS3实验平台简介 23
2.3.1 BASYS3开发板性能 23
2.3.2 BASYS3基本配置 23
2.3.3 BASYS3功能详述 24
第3章 数字设计软件开发环境Xilinx ISE 30
3.1 Xilinx ISE集成开发环境介绍 30
3.2 Xilinx ISE 14.7 软件安装 31
3.3 Xilinx ISE设计流程概述 43
3.3.1 新建工程 43
3.3.2 新建设计源文件 45
3.3.3 设计文件综合 46
3.3.4 设计文件仿真 49
3.3.5 工程实现 53
3.4 Vivado集成开发环境介绍 55
3.5 Vivado软件安装 56
3.6 Vivado设计流程概述 58
3.7 利用Vivado进行功能仿真 74
第4章 数字设计FPGA开发语言HDL 80
4.1 HDL概述 80
4.2 VHDL 80
4.2.1 基本结构 80
4.2.2 语言要素 95
4.2.3 基本语句 115
4.2.4 基本描述方法 138
4.3 Verilog语言 141
4.3.1 基本结构 142
4.3.2 语言要素 143
4.3.3 基本语句 154
4.3.4 任务与函数 163
4.3.5 编译预处理 172
4.4 HDL程序设计实例 175
第5章 数字设计组合逻辑FPGA基础实验 178
5.1 二选一多路选择器实验 178
5.1.1 实验目的 178
5.1.2 实验任务 178
5.1.3 实验设备 178
5.1.4 实验原理 178
5.1.5 实验过程 178
5.1.6 预习要求 180
5.1.7 实验报告要求 180
5.2 3-8译码器实验 180
5.2.1 实验目的 180
5.2.2 实验任务 180
5.2.3 实验原理 180
5.2.4 实验过程 181
5.2.5 预习要求 183
5.2.6 实验报告要求 183
5.3 8-3优先编码器实验 184
5.3.1 实验目的 184
5.3.2 实验任务 184
5.3.3 实验原理 184
5.3.4 实验过程 185
5.3.5 预习要求 188
5.3.6 实验报告要求 189
5.4 七段显示译码器实验 189
5.4.1 实验目的 189
5.4.2 实验任务 189
5.4.3 实验原理 189
5.4.4 实验过程 190
5.4.5 预习要求 193
5.4.6 实验报告要求 193
5.5 两位二进制比较器实验 193
5.5.1 实验目的 193
5.5.2 实验任务 193
5.5.3 实验原理 194
5.5.4 实验过程 194
5.5.5 预习要求 196
5.5.6 实验报告要求 197
5.6 八位二进制加法器实验 197
5.6.1 实验目的 197
5.6.2 实验任务 197
5.6.3 实验原理 197
5.6.4 实验过程 198
5.6.5 预习要求 204
5.6.6 实验报告要求 204
5.7 简单算术逻辑单元实验 205
5.7.1 实验目的 205
5.7.2 实验任务 205
5.7.3 实验原理 205
5.7.4 实验过程 205
5.7.5 预习要求 210
5.7.6 实验报告要求 210
第6章 数字设计时序逻辑FPGA基础实验 211
6.1 带预置的D触发器实验 211
6.1.1 实验目的 211
6.1.2 实验任务 211
6.1.3 实验原理 211
6.1.4 实验过程 211
6.1.5 预习要求 213
6.1.6 实验报告要求 214
6.2 计数器实验 214
6.2.1 实验目的 214
6.2.2 实验任务 214
6.2.3 实验原理 214
6.2.4 实验过程 214
6.2.5 预习要求 217
6.2.6 实验报告要求 218
6.3 分频器实验 218
6.3.1 实验目的 218
6.3.2 实验任务 218
6.3.3 实验原理 218
6.3.4 实验过程 218
6.3.5 预习要求 223
6.3.6 实验报告要求 223
6.4 寄存器实验 223
6.4.1 实验目的 223
6.4.2 实验任务 223
6.4.3 实验原理 223
6.4.4 实验过程 224
6.4.5 预习要求 226
6.4.6 实验报告要求 227
6.5 移位寄存器实验 227
6.5.1 实验目的 227
6.5.2 实验任务 227
6.5.3 实验原理 227
6.5.4 实验过程 227
6.5.5 预习要求 230
6.5.6 实验报告要求 230
6.6 序列信号发生器实验 230
6.6.1 实验目的 230
6.6.2 实验任务 230
6.6.3 实验原理 230
6.6.4 实验过程 231
6.6.5 预习要求 234
6.6.6 实验报告要求 234
6.7 序列信号检测器实验 234
6.7.1 实验目的 234
6.7.2 实验任务 234
6.7.3 实验原理 234
6.7.4 实验过程 235
6.7.5 预习要求 238
6.7.6 实验报告要求 238
6.8 四位数据扫描显示实验 238
6.8.1 实验目的 238
6.8.2 实验任务 239
6.8.3 实验原理 239
6.8.4 实验过程 239
6.8.5 预习要求 244
6.8.6 实验报告要求 244
6.9 八位二进制-BCD码转换器实验 244
6.9.1 实验目的 244
6.9.2 实验任务 244
6.9.3 实验原理 245
6.9.4 实验过程 245
6.9.5 预习要求 250
6.9.6 实验报告要求 250
第7章 数字系统FPGA设计实例 251
7.1 汽车转向灯控制器设计 251
7.1.1 设计任务与指标 251
7.1.2 设计原理与方案 251
7.1.3 设计与实现 251
7.2 洗衣机控制器设计 254
7.2.1 设计任务与指标 254
7.2.2 设计原理与方案 254
7.2.3 设计与实现 255
7.3 交通灯控制器设计 263
7.3.1 设计任务与指标 263
7.3.2 设计原理与方案 264
7.3.3 设计与实现 265
7.4 拔河游戏设计 276
7.4.1 设计任务与指标 276
7.4.2 设计原理与方案 276
7.4.3 设计与实现 277
7.5 猜数游戏设计 285
7.5.1 设计任务与指标 285
7.5.2 设计原理与方案 286
7.5.3 设计与实现 286
7.6 智力抢答器设计 294
7.6.1 实验目的 294
7.6.2 设计任务与指标 294
7.6.3 设计原理与方案 295
7.6.4 设计与实现 296
第8章 挑战性项目设计 307
8.1 周期计数器设计 307
8.1.1 挑战 307
8.1.2 背景与描述 307
8.1.3 论证 307
8.2 可编程方波发生器设计 308
8.2.1 挑战 308
8.2.2 背景与描述 308
8.2.3 论证 309
8.3 网络路由器设计 309
8.3.1 挑战 309
8.3.2 背景与描述 309
8.3.3 论证 310
8.4 安全系统 310
8.4.1 挑战 310
8.4.2 背景与描述 310
8.4.3 论证 311
8.5 译码器及多路选择器的应用 311
8.5.1 挑战 311
8.5.2 背景与描述 312
8.5.3 论证 312
8.6 乐器演奏控制设计 313
8.6.1 挑战 313
8.6.2 背景与描述 313
8.6.3 论证 314
8.7 矩阵键盘接口设计 314
8.7.1 挑战 314
8.7.2 背景与描述 314
8.7.3 论证 315
8.8 步进电机驱动设计 315
8.8.1 挑战 315
8.8.2 背景与挑战 315
8.8.3 论证 316
8.9 卡式电话计费器 317
8.9.1 挑战 317
8.9.2 背景与描述 317
8.9.3 论证 318
8.10 数字钟设计 318
8.10.1 挑战 318
8.10.2 背景与描述 318
8.10.3 论证 319
参考文献 320