第1章 绪论 1
1.1 EDA概述 1
1.1.1 EDA的含义 1
1.1.2 EDA历史发展回顾 1
1.2 EDA主要内容 2
1.2.1 大规模可编程逻辑 2
1.2.2 硬件描述语言 3
1.2.3 软件开发工具 4
1.2.4 实验室开发系统 5
1.3 数字系统的设计 5
1.3.1 数字系统的设计模型 5
1.3.2 数字系统的设计方法 6
1.4 VHDL在EDA中的应用 7
1.5 EDA前景展望 9
1.6 本章小结 9
1.7 课后习题 10
1.7.1 填空题 10
1.7.2 选择题 10
1.7.3 问答题 10
第2章 VHDL入门 11
2.1 关于VHDL 11
2.1.1 什么是VHDL 11
2.1.2 VHDL的特点 12
2.2 VHDL程序示例 13
2.3 本章小结 15
2.4 课后习题 16
2.4.1 填空题 16
2.4.2 选择题 16
2.4.3 问答题 16
2.4.4 上机题 16
第3章 VHDL程序结构 17
3.1 实体 17
3.1.1 实体语句结构 17
3.1.2 类属说明语句 18
3.1.3 PORT端口说明 19
3.2 结构体 20
3.2.1 结构体语句格式 21
3.2.2 结构体说明语句 21
3.2.3 结构体功能描述语句 22
3.3 块语句结构 22
3.3.1 块语句格式 23
3.3.2 块语句的应用 23
3.3.3 块语句在综合中的体现 24
3.3.4 块语句和结构体 24
3.4 子程序 26
3.4.1 过程 26
3.4.2 函数 29
3.4.3 重载 30
3.5 库(Library) 32
3.5.1 库的种类 33
3.5.2 库的使用 34
3.6 程序包(Package) 35
3.7 配置(Configuration) 36
3.8 本章小结 39
3.9 课后习题 39
3.9.1 填空题 39
3.9.2 选择题 39
3.9.3 问答题 40
3.9.4 上机题 40
第4章 VHDL语言要素 41
4.1 VHDL文字规则 41
4.1.1 数值型文字 41
4.1.2 字符串型文字 42
4.1.3 标识符 42
4.1.4 下标和下标段名 43
4.2 VHDL数据对象 44
4.2.1 常量(CONSTANT) 44
4.2.2 变量(VARIABLE) 44
4.2.3 信号(SIGNAL) 45
4.2.4 数据对象的比较 46
4.3 VHDL数据类型 46
4.3.1 VHDL预定义数据类型 47
4.3.2 IEEE预定义标准逻辑位与矢量 49
4.3.3 其他预定义标准数据类型 50
4.3.4 用户自定义数据类型方式 51
4.3.5 枚举类型 52
4.3.6 数组类型 52
4.3.7 记录类型 54
4.3.8 数据类型转换 55
4.4 VHDL操作符 56
4.4.1 操作符的种类 56
4.4.2 算术操作符 57
4.4.3 关系操作符 59
4.4.4 逻辑操作符 59
4.4.5 重载操作符 60
4.5 本章小结 60
4.6 课后习题 61
4.6.1 填空题 61
4.6.2 选择题 61
4.6.3 问答题 62
4.6.4 上机题 62
第5章 VHDL顺序语句 63
5.1 赋值语句 63
5.1.1 信号赋值和变量赋值 63
5.1.2 赋值目标 64
5.2 流程控制语句 65
5.2.1 IF语句 65
5.2.2 CASE语句 67
5.2.3 LOOP语句 69
5.2.4 NEXT语句 70
5.2.5 EXIT语句 71
5.3 WAIT语句 72
5.3.1 WAIT语句 73
5.3.2 WAIT ON语句 73
5.3.3 WAIT UNTIL语句 74
5.3.4 WAIT FOR语句 74
5.4 子程序调用语句 75
5.4.1 过程调用 75
5.4.2 函数调用 76
5.5 返回语句(RETURN) 76
5.6 空操作语句(NULL) 77
5.7 报告语句(REPORT) 78
5.8 断言语句(ASSERT) 78
5.9 本章小结 79
5.10 课后习题 79
5.10.1 填空题 79
5.10.2 选择题 79
5.10.3 问答题 80
5.10.4 上机题 80
第6章 VHDL并行语句 81
6.1 进程语句(PROCESS) 81
6.2 并行信号赋值语句 83
6.2.1 简单信号赋值语句 83
6.2.2 条件信号赋值语句 84
6.2.3 选择信号赋值语句 85
6.3 并行过程调用语句 86
6.4 元件例化语句 88
6.5 类属映射语句 90
6.6 生成语句 91
6.7 本章小结 93
6.8 课后习题 94
6.8.1 填空题 94
6.8.2 选择题 94
6.8.3 问答题 94
6.8.4 上机题 94
第7章 Quarfus Ⅱ基本使用方法 95
7.1 Quartus Ⅱ设计流程 95
7.2 应用Quartus Ⅱ的VHDL设计 95
7.2.1 创建工程和编辑设计文件 95
7.2.2 创建工程 97
7.2.3 编译前设置 99
7.2.4 全程编译 100
7.2.5 仿真 101
7.2.6 观察RTL电路 104
7.3 本章小结 105
7.4 课后习题 105
7.4.1 填空题 105
7.4.2 选择题 106
7.4.3 问答题 106
第8章 基本电路的VHDL实现 107
8.1 组合逻辑的VHDL实现 107
8.1.1 译码器、编码器 107
8.1.2 加法器、乘法器和除法器 112
8.2 时序电路的VHDL实现 115
8.2.1 触发器 115
8.2.2 寄存器 117
8.2.3 计数器 118
8.3 状态机的VHDL实现 120
8.3.1 Mealy状态机 121
8.3.2 Moore状态机 123
8.4 本章小结 125
8.5 课后习题 126
8.5.1 填空题 126
8.5.2 选择题 126
8.5.3 问答题 126
8.5.4 上机题 126
第9章 交通灯控制器 127
9.1 系统设计要求 127
9.2 系统设计方案 127
9.3 主要模块设计 128
9.4 VHDL编程 128
9.5 系统仿真与分析 131
9.6 本章小结 132
第10章 数字秒表 133
10.1 系统设计要求 133
10.2 系统设计方案 133
10.3 主要模块设计 134
10.4 VHDL编程 134
10.5 系统仿真与分析 137
10.6 本章小结 140
第11章 多路彩灯控制器 141
11.1 系统设计要求 141
11.2 系统设计方案 141
11.3 主要模块设计 141
11.4 VHDL源程序 142
11.5 系统仿真与分析 145
11.6 本章小结 148
第12章 数字式竞赛抢答器 149
12.1 系统设计要求 149
12.2 系统设计方案 149
12.3 主要模块设计 150
12.3.1 第一判断电路 150
12.3.2 计分电路 150
12.3.3 显示电路 150
12.4 VHDL源程序 151
12.5 系统仿真与分析 158
12.6 本章小结 160
第13章 电梯控制器 161
13.1 系统设计要求 161
13.2 系统设计方案 161
13.3 主要模块设计 162
13.4 VHDL源程序 163
13.5 仿真结果与分析 172
13.6 本章小结 174
第14章 出租车计费器 175
14.1 系统设计要求 175
14.2 系统设计方案 175
14.3 主要模块设计 176
14.3.1 速度模块 176
14.3.2 计程模块 176
14.3.3 计时模块 176
14.3.4 计费模块 176
14.4 VHDL源程序 177
14.5 仿真结果与分析 184
14.6 本章小结 186
第15章 微波炉控制器 187
15.1 系统设计要求 187
15.2 系统设计方案 187
15.3 主要模块分析 188
15.3.1 状态控制电路 188
15.3.2 数据装载电路 189
15.3.3 计时电路模块 189
15.4 VHDL源程序 190
15.5 系统仿真与分析 198
15.6 本章小结 200
第16章 FIR滤波器 201
16.1 系统设计要求 201
16.2 系统设计方案 201
16.3 主要模块设计 204
16.3.1 寄存器 204
16.3.2 加法器 204
16.3.3 减法器 204
16.3.4 乘法器 204
16.4 VHDL编程 205
16.5 系统仿真与分析 219
16.6 本章小结 220
第17章 I2C总线控制器 221
17.1 系统设计要求 221
17.1.1 I2C总线术语的定义 221
17.1.2 I2C数据传输时序 222
17.2 系统设计方案 223
17.2.1 时钟分频模块 223
17.2.2 指令译码模块 223
17.2.3 数据移位寄存模块 225
17.2.4 双向数据总线SCL和SDA的连接 225
17.3 主要模块设计 225
17.4 VHDL编程 226
17.5 仿真结果与分析 240
17.6 本章小结 240
第18章 直接数字频率合成器 241
18.1 系统设计要求 241
18.2 系统设计方案 241
18.3 主要模块设计 242
18.3.1 相位累加器 242
18.3.2 脉冲产生模块 243
18.3.3 ROM查找表模块 243
18.4 VHDL编程 249
18.5 系统仿真与分析 256
18.6 本章小结 260
第19章 序列检测器 261
19.1 设计要求 261
19.2 模块分析 261
19.3 源程序和仿真 262
19.4 本章小结 264
第20章 自动售货机 265
20.1 设计要求 265
20.2 模块分析 265
20.3 源程序和仿真 266
20.4 本章小结 272
第21章 智能函数发生器 273
21.1 设计要求 273
21.2 模块分析 273
21.3 源程序和仿真 274
21.4 本章小结 287
第22章 多功能调制解调器 289
22.1 设计要求 289
22.2 模块分析 289
22.2.1 ASK调制与解调 289
22.2.2 FSK调制与解调 290
22.2.3 PSK调制与解调 290
22.3 源程序和仿真 292
22.4 本章小结 304
第23章 通用异步收发器 305
23.1 设计要求 305
23.2 模块分析 305
23.3 源程序与仿真 308
23.4 本章小结 316
附录A 习题答案 317