第1章 EDA开发技术基础 1
1.1 EDA技术基础 1
1.1.1 EDA技术简介 1
1.1.2 EDA技术的发展 2
1.2 EDA技术涉及的内容 3
1.2.1 可编程逻辑器件 3
1.2.2 硬件描述语言 4
1.2.3 集成开发环境 5
1.2.4 实验开发系统 5
1.3 常用的硬件描述语言 6
1.3.1 AHDL语言 6
1.3.2 VerilogHDL语言 6
1.3.3 VHDL语言 6
1.4 EDA的集成开发环境 8
1.4.1 QuartusⅡ集成开发环境 8
1.4.2 ISE和ModelSim集成开发环境 9
1.4.3 ispLEVER集成开发环境 10
1.5 使用EDA技术进行数字系统开发 11
1.5.1 数字系统的设计模型 11
1.5.2 数字系统的设计方法 11
1.5.3 使用VHDL语言进行数字系统的开发流程 12
1.6 课后习题 15
1.6.1 填空题 15
1.6.2 简答题 15
第2章 Quartus Ⅱ集成开发环境 16
2.1 Quartus Ⅱ应用基础 16
2.1.1 使用图形用户界面 17
2.1.2 使用EDA工具设计界面 18
2.1.3 使用命令行可执行界面 20
2.1.4 QuartusⅡ集成开发环境的应用流程 21
2.1.5 Quartus Ⅱ的常用窗口 22
2.2 在Quartus Ⅱ集成开发环境中进行VHDL语言开发 23
2.2.1 编辑设计文件 24
2.2.2 创建工程 25
2.2.3 设置工程属性 27
2.2.4 编译项目 28
2.2.5 仿真 29
2.2.6 观察RTL电路 33
2.2.7 其他 34
2.3 课后习题 34
2.3.1 填空题 34
2.3.2 简答题 35
2.3.3 实验题 35
第3章 VHDL语言基础 37
3.1 VHDL语言程序的结构 37
3.2 VHDL语言的实体 39
3.2.1 实体说明 39
3.2.2 实体的类属说明 39
3.2.3 实体的端口说明 40
3.3 VHDL语言的结构体 41
3.3.1 结构体的说明语句 42
3.3.2 结构体的信号定义 42
3.3.3 结构体的功能描述语句 42
3.4 VHDL语言的描述风格 43
3.4.1 行为描述 44
3.4.2 数据流描述 45
3.4.3 结构描述 45
3.4.4 混合描述 47
3.5 课后习题 48
3.5.1 填空题 48
3.5.2 简答题 48
3.5.3 实验题 49
第4章 VHDL语言的基本要素 50
4.1 VHDL语言文字的命名规范 50
4.1.1 数值型文字 50
4.1.2 字符串型文字 51
4.2 VHDL语言的标识符 51
4.2.1 短标识符 51
4.2.2 扩展标识符 52
4.3 VHDL语言的下标和下标段名 52
4.3.1 下标 52
4.3.2 下标段名 53
4.4 VHDL语言的注释 53
4.5 VHDL语言的数据对象 54
4.5.1 常量 54
4.5.2 变量 55
4.5.3 信号 56
4.5.4 文件 57
4.6 VHDL语言的数据类型 58
4.6.1 VHDL语言的数据类型按性质分类 58
4.6.2 VHDL语言的数据类型按数据来源分类 58
4.6.3 VHDL语言的数据类型简介 59
4.6.4 VHDL语言的数据类型转换 67
4.7 VHDL语言的操作符 70
4.7.1 VHDL语言的操作符种类和优先级 70
4.7.2 VHDL语言的算术操作符 72
4.7.3 VHDL语言的关系操作符 74
4.7.4 VHDL语言的逻辑操作符 75
4.7.5 VHDL语言的重载操作符 76
4.8 课后习题 76
4.8.1 填空题 76
4.8.2 简答题 77
4.8.3 实验题 77
第5章 VHDL语言的顺序描述语句 79
5.1 赋值语句 79
5.2 代入语句 80
5.3 赋值语句和代入语句进阶 81
5.3.1 赋值语句和代入语句的区别 81
5.3.2 赋值语句和代入语句的赋值对象 82
5.4 流程控制语句 84
5.4.1 IF语句 84
5.4.2 CASE语句 86
5.4.3 LOOP语句 88
5.4.4 NEXT语句 89
5.4.5 EXIT语句 90
5.5 WAIT语句 91
5.5.1 WAIT语句的无限等待 91
5.5.2 WAIT ON语句 92
5.5.3 WAIT UNTIL语句 92
5.5.4 .WAITFOR语句 93
5.5.5 多条件WAIT语句 94
5.6 空操作语句 94
5.7 报告语句 94
5.8 断言语句 95
5.9 课后习题 96
5.9.1 填空题 96
5.9.2 简答题 96
5.9.3 实验题 97
第6章 VHDL语言的并行描述语句 98
6.1 并发信号代入语句 98
6.1.1 并发信号代入语句基础 98
6.1.2 条件信号代入语句 99
6.1.3 选择信号代入语句 100
6.2 进程语句 101
6.3 元件调用语句 103
6.4 端口映射语句 105
6.4.1 端口位置映射 105
6.4.2 端口名称映射 106
6.5 类属参数传递语句 106
6.6 块语句 107
6.6.1 普通块语句 107
6.6.2 卫式块语句 109
6.7 过程语句 110
6.7.1 子程序和包集合 110
6.7.2 过程语句的定义与使用 111
6.7.3 并发过程调用语句 113
6.8 函数语句 114
6.9 返回语句 115
6.10 生成语句 116
6.10.1 FOR-GENERATE结构的生成语句 116
6.10.2 IF-GENERATE结构的生成语句 117
6.11 延时语句 119
6.11.1 惯性延时语句 119
6.11.2 传输延时语句 120
6.12 课后习题 120
6.12.1 填空题 120
6.12.2 简答题 121
6.12.3 实验题 121
第7章 使用VHDL语言设计组合逻辑电路 123
7.1 组合逻辑电路设计基础 123
7.1.1 逻辑代数基础 123
7.1.2 逻辑函数的表示方法 126
7.1.3 逻辑代数的定理和规则 127
7.1.4 组合逻辑电路设计过程 129
7.1.5 组合逻辑电路中的竞争与冒险 130
7.1.6 组合逻辑电路的设计模式和方法 132
7.2 组合逻辑的基本电路设计 132
7.2.1 与门设计 133
7.2.2 非门设计 137
7.2.3 或门设计 139
7.2.4 与非门设计 143
7.2.5 异或门设计 146
7.2.6 三态门设计 149
7.3 译码器设计 153
7.3.1 变量译码器设计 153
7.3.2 码制变化译码器设计 156
7.3.3 显示译码器设计 161
7.4 编码器设计 165
7.4.1 编码器基础 165
7.4.2 74系列优先编码器 165
7.4.3 VHDL描述的优先编码器 165
7.5 数据选择器设计 167
7.5.1 数据选择器基础 167
7.5.2 74系列数据选择器 168
7.5.3 数据选择器的VHDL语言实现 169
7.6 比较器设计 171
7.6.1 比较器基础 171
7.6.2 74系列比较器 172
7.6.3 VHDL描述的比较器 173
7.7 加法器设计 175
7.7.1 加法器基础 175
7.7.2 74系列加法器 176
7.7.3 加法器的VHDL语言实现 177
7.8 减法器设计 180
7.8.1 减法器基础 180
7.8.2 减法器的VHDL 语言实现 181
7.9 乘法器设计 182
7.9.1 乘法器的工作原理 182
7.9.2 乘法器的VHDL 语言实现 183
7.10 奇偶检测电路设计 184
7.10.1 奇偶检测电路基础 184
7.10.2 74系列奇偶检测电路 185
7.10.3 VHDL描述的奇偶检测电路 185
7.11 其他逻辑电路设计 187
7.11.1 双向总线设计 187
7.11.2 补码器 189
7.12 课后习题 190
7.12.1 填空题 190
7.12.2 简答题 190
7.12.3 实验题 190
第8章 使用VHDL语言设计时序电路 192
8.1 时序电路基础 192
8.2 时序电路的时钟信号 193
8.2.1 VHDL语言的时钟边沿描述 193
8.2.2 使用时钟作为敏感信号 194
8.3 时序电路的复位信号 196
8.3.1 时序电路的同步复位方法 196
8.3.2 时序电路的异步复位方法 197
8.4 基础时序电路(触发器)设计 198
8.4.1 RS触发器设计 199
8.4.2 JK触发器设计 205
8.4.3 D触发器设计 209
8.4.4 T触发器设计 212
8.5 寄存器设计 214
8.5.1 寄存器基础 214
8.5.2 74系列寄存器 214
8.5.3 VHDL语言描述的寄存器 214
8.6 移位寄存器设计 214
8.6.1 移位寄存器基础 214
8.6.2 74系列移位寄存器 215
8.6.3 VHDL语言描述的移位寄存器 216
8.7 计数器设计 221
8.7.1 计数器基础 221
8.7.2 74系列计数器 221
8.7.3 VHDL语言描述的计数器 222
8.8 课后习题 225
8.8.1 填空题 225
8.8.2 简答题 226
8.8.3 实验题 226
第9章 使用VHDL语言设计存储器 228
9.1 只读存储器设计 228
9.1.1 只读存储器基础 228
9.1.2 只读存储器的VHDL语言实现 228
9.2 随机存储器设计 232
9.2.1 随机存储器基础 232
9.2.2 随机存储器的VHDL语言实现 233
9.3 先进先出存储器设计 236
9.3.1 先进先出存储器基础 236
9.3.2 先进先出存储器的VHDL语言实现 236
9.4 课后习题 238
9.4.1 填空题 238
9.4.2 简答题 238
9.4.3 实验题 238
第10章 使用VHDL语言设计状态机 239
10.1 状态机基础 239
10.1.1 状态机的分类 239
10.1.2 状态机的VHDL语言描述方法 240
10.1.3 状态机的状态编码 241
10.1.4 状态机的非法状态 242
10.2 状态机的VHDL语言实现 243
10.2.1 带变量输出的状态机 243
10.2.2 带同步复位的状态机 245
10.2.3 米勒型状态机 247
10.2.4 莫尔型状态机 249
10.2.5 带莫尔/米勒型输出的状态机 251
10.3 状态机的实际应用 253
10.3.1 状态机应用实例——序列信号发生器 253
10.3.2 状态机应用实例——循环彩灯控制器 255
10.4 课后习题 258
10.4.1 填空题 258
10.4.2 简答题 258
10.4.3 实验题 258
第11章 VHDL语言的层次化设计 260
11.1 层次化结构设计基础 260
11.2 自顶向下的设计方法 262
11.3 VHDL语言的库 263
11.3.1 库的声明 263
11.3.2 VHDL语言的常用库 264
11.4 VHDL语言的程序包 265
11.4.1 程序包的定义和使用 266
11.4.2 VHDL语言的常用程序包 267
11.5 VHDL语言的配置 275
11.5.1 配置的标准调用格式和结构 276
11.5.2 结构体中的元件配置 279
11.5.3 端口映射和实体映射的配置 280
11.5.4 块的配置 280
11.5.5 使用配置来传递类属性 280
11.6 课后习题 282
11.6.1 填空题 282
11.6.2 简答题 282
11.6.3 实验题 282
第12章 VHDL语言的仿真、综合和优化 283
12.1 VHDL语言的仿真 283
12.1.1 使用VHDL语言生成仿真输入信号 284
12.1.2 VHDL语言仿真程序的规范 289
12.1.3 VHDL语言仿真的δ延时 292
12.2 VHDL语言的综合 293
12.2.1 VHDL语言综合的分类 293
12.2.2 VHDL语言的综合约束条件 294
12.2.3 VHDL语言的综合工艺库 295
12.2.4 门级映射 296
12.3 VHDL语言的设计优化 296
12.3.1 VHDL语言的设计优化基础 296
12.3.2 VHDL语言的模块复用 297
12.3.3 VHDL语言的流水线设计 300
12.4 课后习题 301
12.4.1 填空题 301
12.4.2 简答题 302
12.4.3 实验题 302
第13章 VHDL语言的属性描述语句 304
13.1 属性预定义 304
13.2 数值类属性描述语句 304
13.2.1 一般数据的数值属性描述语句 305
13.2.2 数组的数值属性描述语句 306
13.2.3 块的数值属性描述语句 307
13.3 函数类属性描述语句 309
13.3.1 数据类型的属性函数 309
13.3.2 数组的属性函数 312
13.3.3 信号的属性函数 313
13.4 信号类属性描述语句 317
13.4.1 属性'DELAYED语句 317
13.4.2 属性'STABLE语句 319
13.4.3 属性'QUIET语句 320
13.4.4 属性'TRANSACTION语句 322
13.5 数据类型类属性描述语句 323
13.6 数据区间类属性描述语句 324
13.7 用户自定义属性语句 325
13.8 课后习题 327
13.8.1 填空题 327
13.8.2 简答题 327
13.8.3 实验题 327
第14章 VHDL语言的数字系统设计应用实例 328
14.1 交通灯控制器 328
14.1.1 交通灯控制器的需求分析 328
14.1.2 交通灯控制器的系统设计 328
14.1.3 交通灯控制器的VHDL语言实现 329
14.1.4 交通灯控制器的仿真 332
14.2 出租车计费器 333
14.2.1 出租车计费器的需求分析 333
14.2.2 出租车计费器的系统设计 334
14.2.3 出租车计费器的VHDL语言实现 336
14.2.4 出租车计费器的仿真 344
14.3 自动售货机 346
14.3.1 自动售货机的需求分析 346
14.3.2 自动售货机的系统设计 346
14.3.3 自动售货机的VHDL语言实现 347
14.3.4 自动售货机的仿真 350
14.4 通用异步发送器 352
14.4.1 通用异步发送器的需求分析 353
14.4.2 通用异步发送器的系统设计 353
14.4.3 通用异步发送器的 VHDL语言实现 355
14.4.4 通用异步发送器的仿真 362