第1章 CPLD/FPGA项目开发入门 1
1.1 CPLD/FPGA开发系统概述 1
1.1.1 PLD的发展历程及发展趋势 1
1.1.2 CPLD/FPGA概述 3
1.1.3 CPLD/FPGA的结构与原理 4
1.2 CPLD/FPGA器件识别 10
1.2.1 CPLD/FPGA产品概况 10
1.2.2 MAX系列产品的基本功能及编程方式 14
1.3 CCIT CPLD/FPGA实验仪使用 16
1.3.1 实验仪结构设计 17
1.3.2 熟悉实验仪的元器件 17
1.3.3 解析主控芯片EPM1270T144C5 18
1.3.4 了解实验仪的外围接口及其引脚对应关系 19
1.3.5 设计实验仪原理图 21
1.3.6 USB-Blaster下载口 21
1.4 Quartus Ⅱ开发环境安装 27
1.4.1 Quartus Ⅱ软件功能简介 27
1.4.2 Quartus Ⅱ软件安装 28
1.4.3 USB-Blaster下载电缆安装 29
1.5 Quartus Ⅱ软件开发环境的应用 33
1.5.1 简单的三人表决器功能描述 34
1.5.2 文本方式输入 35
1.5.3 原理图方式输入 43
1.6 技能实训 47
第2章 Verilog HDL(硬件描述语言) 50
2.1 Verilog HDL基础知识 50
2.1.1 Verilog HDL的基本结构 50
2.1.2 Verilog HDL的数据类型 54
2.1.3 Verilog HDL的运算符及表达式 56
2.1.4 Verilog HDL的基本语句 58
2.2 Verilog HDL实例设计 64
2.2.1 闪烁灯设计 65
2.2.2 流水灯设计 68
2.3 技能实训 72
2.3.1 闪烁灯实训设计 72
2.3.2 流水灯实训设计 74
第3章 基于CPLD/FPGA的单元项目开发 78
3.1 项目1设计基本逻辑门电路 78
3.2 项目2设计译码器 81
3.2.1 任务1设计3-8译码器 82
3.2.2 任务2设计八段LED数码管译码电路 85
3.2.3 技能实训 88
3.3 项目3编码器和数据选择器设计 91
3.3.1 任务1设计8-3优先编码器 92
3.3.2 技能实训 94
3.3.3 任务2设计4-1数据选择器 98
3.3.4 技能实训 100
3.4 项目4触发器设计 102
3.4.1 任务1触发器概述 103
3.4.2 任务2识别基本触发器 103
3.4.3 任务3识别触发器的逻辑功能 104
3.4.4 任务4设计时钟触发器 105
3.4.5 任务5设计直接置位复位触发器 105
3.4.6 任务6转换不同逻辑功能的触发器 106
3.4.7 技能实训 107
3.5 项目5全加器设计 110
3.5.1 任务1设计一位全加器 110
3.5.2 任务2设计串行进位加法器 111
3.5.3 任务3设计先行进位加法器 112
3.5.4 任务4设计加减法器 115
3.5.5 技能实训 116
3.6 项目6计数器设计 118
3.6.1 任务1设计二进制计数器 119
3.6.2 任务2设计七进制计数器 121
3.6.3 任务3采用异步置数和同步清零的方法设计七进制计数器 121
3.6.4 技能实训 123
3.7 项目7乘法器设计 126
3.7.1 任务1利用被乘数左移法设计无符号乘法器 127
3.7.2.任务2利用部分积右移法设计无符号乘法器 130
3.7.3 任务3设计带符号乘法器 131
3.8 项目8键盘LED发光二极管应用设计 132
3.8.1 任务1键盘LED发光二极管应用之一 132
3.8.2 任务2键盘LED发光二极管应用之二 137
3.8.3 任务3键盘去抖动设计 138
3.8.4 技能实训 140
3.9 项目9静态、动态LED发光二极管显示 143
3.9.1 任务1静态数码管的显示设计 144
3.9.2 任务2动态数码管的显示设计 147
3.9.3 技能实训 150
3.10 项目10点阵LED显示屏及其汉字显示 153
3.10.1 任务1点阵LED显示屏测试 153
3.10.2 任务2汉字显示 157
3.10.3 技能实训 160
3.11 项目11蜂鸣器应用设计 163
3.11.1 任务1发出报警声 164
3.11.2 任务2设计简易数字电子琴 166
3.11.3 任务3设计“梁祝”音乐片段 168
3.11.4 技能实训 171
3.12 项目12 LCD液晶显示系统设计 177
3.12.1 任务1了解液晶显示的基础知识 178
3.12.2 任务2液晶屏滚动显示“www ccit.js.cn”字符 184
3.12.3 技能实训 191
3.13 项目13 UART异步串行通信设计 197
3.13.1 任务1串行通信基础知识 198
3.13.2 任务2串行发送模块设计 201
3.13.3 任务3串行接收模块设计 205
3.13.4 课后思考 208
第4章 基于CPLD/FPGA的综合项目开发 209
4.1 项目1基于Verilog HDL的数字时钟设计与实现 209
4.1.1 任务1任务提出及设计分析 209
4.1.2 任务2分频模块设计 212
4.1.3 任务3校时模块设计 213
4.1.4 任务4计时处理模块设计 214
4.1.5 任务5报时模块设计 215
4.1.6 任务6显示模块设计 218
4.1.7 任务7顶层模块设计 220
4.1.8 任务8下载调试运行 221
4.1.9 技能实训 222
4.2 项目2基于Verilog HDL的交通信号灯模拟控制设计 228
4.2.1 任务1任务提出及设计分析 228
4.2.2 任务2初始化模块设计 231
4.2.3 任务3分频模块设计 231
4.2.4 任务4控制A方向4盏灯亮灭模块设计 232
4.2.5 任务5控制B方向4盏灯亮灭模块设计 233
4.2.6 任务6 A、 B方向各种灯剩余时间的显示模块设计 234
4.2.7 任务7顶层文件设计 236
4.2.8 任务8下载调试运行 237
4.3 项目3基于Verilog HDL的四路数字式竞赛抢答器设计 237
4.3.1 任务1任务提出及设计分析 238
4.3.2 任务2信号锁存电路设计 239
4.3.3 任务3计分电路设计 240
4.3.4 任务4数码管显示电路设计 243
4.3.5 任务5顶层文件设计 244
4.3.6 任务6下载调试运行 245
4.3.7 课后思考 246
附录 247
附录A Verilog HDL关键字 247
附录B Quartus Ⅱ支持的Verilog HDL数据类型和语句 247
附录C基于Verilog HDL的CPLD/FPGA设计常见问题解析 248
参考文献 258