本书内容按“基础一电路部件设计一集成电路设计”的顺序进行讲解,基础部分(第l~4章),涉及EDA技术概况、数字逻辑电路设计基础和传统设计方法、VHDL语言的基本知识和程序结构;电路部件设计部分(第5~7章),用72个电路设计案例介绍使用VHDL语言设计组合逻辑电路、时序逻辑电路和有限状态机;集成电路设计部分(第8~10章),第8章借助14个例子介绍用VHDL语言进行复杂数字系统设计的思想、手段、流程和方法,第9章介绍仿真、综合与优化,第lO章讲述如何用当前最流行的EDA工具软件Quartu5II进行电路设计。
本书根据作者多年高校EDA教学、研发经验,借助近200个专业案例,全方位介绍VHDL语言及其在电路设计中的各种应用。
本书内容按“基础一电路部件设计一集成电路设计”的顺序进行讲解,基础部分(第l~4章),涉及EDA技术概况、数字逻辑电路设计基础和传统设计方法、VHDL语言的基本知识和程序结构;电路部件设计部分(第5~7章),用72个电路设计案例介绍使用VHDL语言设计组合逻辑电路、时序逻辑电路和有限状态机;集成电路设计部分(第8~10章),第8章借助14个例子介绍用VHDL语言进行复杂数字系统设计的思想、手段、流程和方法,第9章介绍仿真、综合与优化,第lO章讲述如何用当前最流行的EDA工具软件Quartu5II进行电路设计。各章采用先介绍技术,再用相关电路设计实例演示其应用,并在最后指出其应用场合,实用性强。
本书可作为高等院校电子、通信、计算机、自动化、仪器仪表等专业开设EDA课程的教材,也可作为电子设计工程师的实用参考书。
第1章 概述 1
1.1 硬件描述语言介绍 1
1.2 VHDL语言的发展与特点 2
1.3 VHDL语言的开发流程 4
1.4 可编程逻辑器件简介 5
1.5 学习小结 7
1.6 思考与练习 7
第2章 数字逻辑基础 8
2.1 逻辑代数基础 8
2.1.1 逻辑变量和逻辑函数 8
2.1.2 基本逻辑运算 8
2.1.3 逻辑函数的表示方法 11
2.1.4 逻辑代数的定理和规则 12
2.2 组合逻辑电路 13
2.2.1 组合逻辑电路的分析 14
2.2.2 组合逻辑电路的综合 15
2.2.3 组合逻辑电路中的竞争与冒险 16
2.3 时序逻辑电路 18
2.3.1 触发器 18
2.3.2 时序逻辑电路的分析 22
2.3.3 时序逻辑电路的设计 26
2.4 学习小结 28
2.5 思考与练习 29
第3章 VHDL程序结构与要素 31
3.1 VHDL程序基本结构 31
3.1.1 实体 32
3.1.2 结构体 35
3.1.3 描述风格 36
3.2 VHDL文字规则 40
3.2.1 数值型文字 40
3.2.2 标识符 42
3.3 VHDL基本数据对象与数据类型 43
3.3.1 VHDL数据对象 43
3.3.2 VHDL数据类型 47
3.4 VHDL表达式与运算符 57
3.5 学习小结 63
3.6 思考与练习 63
第4章 VHDL基本描述语句 64
4.1 顺序描述语句 64
4.1.1 WAIT语句 65
4.1.2 代入语句 68
4.1.3 赋值语句 69
4.1.4 IF语句 71
4.1.5 CASE语句 75
4.1.6 FOR LOOP语句 78
4.1.7 WHILE LOOP语句 79
4.1.8 NEXT语句 80
4.1.9 EXIT语句 82
4.1.10 RETURN语句 83
4.1.11 REPORT语句 83
4.1.12 NULL语句 84
4.1.13 ASSERT语句 85
4.2 并行描述语句 86
4.2.1 并发信号代入语句(Concurrent Signal Assignment) 87
4.2.2 进程语句(PROCESS) 92
4.2.3 元件调用语句(COMPONENT) 94
4.2.4 端口映射语句(PORT MAP) 96
4.2.5 类属参数传递语句(GENERIC) 98
4.2.6 块语句(BLOCK) 100
4.2.7 过程语句(PROCEDURE) 105
4.2.8 函数(FUNCTION) 108
4.2.9 生成语句(GENERATE) 111
4.2.10 延时语句 115
4.3 属性描述语句 117
4.3.1 属性预定义 117
4.3.2 数值类属性描述语句 117
4.3.3 函数类属性描述语句 124
4.3.4 信号类属性描述语句 132
4.3.5 数据类型类属性描述语句 139
4.3.6 数据区间类属性描述语句 140
4.3.7 用户自定义属性语句 141
4.4 学习小结 142
4.5 思考与练习 144
第5章 组合逻辑电路的VHDL语言描述 145
5.1 基本逻辑门电路 145
5.1.1 2输入与非门电路 145
5.1.2 2输入或非门电路 148
5.1.3 反相器电路 149
5.1.4 2输入异或门电路 150
5.1.5 2输入同或门电路 151
5.1.6 多输入门电路 152
5.2 选择器电路 155
5.2.1 2选1选择器 156
5.2.2 16选1选择器 157
5.3 编码器与译码器电路 159
5.3.1 编码器 159
5.3.2 译码器 161
5.4 三态门及总线缓冲器电路 165
5.4.1 三态门 165
5.4.2 总线缓冲器 167
5.5 加法器电路 170
5.6 求补器电路 177
5.7 乘法器电路 178
5.8 数值比较器电路 182
5.9 移位器电路 185
5.10 学习小结 186
5.11 思考与练习 187
第6章 时序逻辑电路的VHDL语言描述 189
6.1 时序电路的时钟信号 189
6.1.1 时钟边沿的描述 189
6.1.2 时钟作为敏感信号 191
6.2 时序电路的复位信号 193
6.2.1 时序电路的同步复位方法 193
6.2.2 时序电路的异步复位方法 194
6.3 锁存器电路 195
6.3.1 电平锁存器 195
6.3.2 同步锁存器 196
6.3.3 异步锁存器 197
6.3.4 自定制锁存器 198
6.4 触发器电路 200
6.4.1 D触发器 200
6.4.2 T触发器 205
6.4.3 JK触发器 208
6.5 寄存器电路 210
6.5.1 10位通用寄存器 211
6.5.2 串入-串出移位寄存器 211
6.5.3 串入-并出移位寄存器 214
6.5.4 循环移位寄存器 216
6.5.5 双向移位寄存器 220
6.5.6 串/并入-串出移位寄存器 221
6.6 计数器电路 225
6.6.1 同步计数器 225
6.6.2 异步计数器 230
6.6.3 自定制计数器 231
6.7 学习小结 234
6.8 思考与练习 235
第7章 有限状态机的VHDL语言描述 236
7.1 有限状态机概述 236
7.2 有限状态机的VHDL语言描述 237
7.3 Moore型状态机的设计 247
7.4 Mealy型状态机的设计 250
7.5 有限状态机的状态编码 252
7.5.1 符号化的状态编码 252
7.5.2 直接状态编码 252
7.6 非法状态的处理 258
7.7 学习小结 261
7.8 思考与练习 261
第8章 采用VHDL的数字系统设计 262
8.1 层次化结构设计 262
8.2 自顶向下的设计方法 263
8.3 库 265
8.4 程序包 267
8.5 配置 275
8.6 系统设计实例 280
8.6.1 存储器设计 281
8.6.2 4位微处理器设计 287
8.7 学习小结 296
8.8 思考与练习 296
第9章 仿真、综合与优化 297
9.1 仿真 297
9.1.1 仿真输入信号的生成 298
9.1.2 仿真的δ延时 305
9.2 综合 306
9.2.1 约束条件 307
9.2.2 工艺库 308
9.2.3 门级映射 309
9.3 设计优化 309
9.3.1 模块复用 310
9.3.2 流水线设计 313
9.4 设计实现 315
9.5 学习小结 317
9.6 思考与练习 317
第10章 在Quartus II中进行电路设计 318
10.1 Quartus II软件的安装 318
10.1.1 配置要求 318
10.1.2 安装步骤 319
10.1.3 授权方法 324
10.1.4 设计特点 326
10.2 Quartus II软件的设计流程 328
10.2.1 图形用户界面设计流程 328
10.2.2 EDA工具设计流程 330
10.2.3 命令行可执行文件 331
10.2.4 Quartus II软件的设计流程 332
10.2.5 常用窗口介绍 333
10.3 设计项目输入 334
10.3.1 创建工程项目文件 335
10.3.2 创建图形编辑文件 336
10.3.3 创建文本编辑文件 346
10.3.4 创建存储器编辑文件 348
10.3.5 创建波形编辑文件 350
10.4 设计项目编译与仿真 353
10.4.1 Quartus II软件的编译器选项设置 353
10.4.2 编译设计项目 359
10.4.3 仿真设计项目 361
10.5 设计项目时序分析 364
10.5.1 时序分析的基本参数介绍 364
10.5.2 时序分析选项设置 364
10.5.3 进行时序分析 366
10.5.4 查看时序分析结果 367
10.6 设计项目的下载编程 367
10.6.1 器件编程介绍 368
10.6.2 进行器件编程 368
10.7 学习小结 370
10.8 思考与练习 370
附录A VHDL保留字 371
附录B 常用逻辑符号对照表 372
附录C 常用VHDL开发软件 372
附录D 习题答案 373
参考文献 393