本书是基于OBE教育理念,按照电子信息类专业培养目标,采用反向设计的方法而编写的。本书详细介绍了数字逻辑电路的基础理论和分析、设计方法,并把数字电路的VHDL语言描述结合其中,详细介绍了数字电路系统的设计与仿真方法。此外,书中提供了大量采用Proteus和Quartus软件进行设计的实验项目和课程设计项目,以提高学生的应用能力。
本书可以作为高等学校电子信息类专业教材,也可以供数字电路设计人员参考。
在长期的教学过程中,经常听到同学们反映数字电路比模拟电路好学。如果仅仅是认识门电路、触发器、少量中规模芯片的功能,搭接简单的数字电路,如在面包板上实现数字钟,等等,得出这个结论未尝不可。学习数字电路至少有两个目的,一是为后续的微机原理课程打下基础,便于我们理解CPU、存储器、接口电路的结构及工作原理,在此基础上才能编写程序,让微机按照我们的意图工作;二是直接利用数字电路知识进行数字电路系统的设计。数字电路不能完全由小、中规模芯片组成,这样结构过于庞杂。所以,在学习数字电路的同时应同时学习VHDL(Veryhighspeed integrated circuit Hardware Description Language,超高速集成电路硬件描述语言)或Verilog的电路描述方法,利用可编程逻辑芯片来设计数字电路。本书把传统的数字电路和基于VHDL语言的电路描述设计有机融合,在编写方式上力图改变实践教学为理论教学服务或忽视实践教学的做法,根据人才培养目标,设计实践教学的最终目的、具体内容、实施过程,将传统以理论教学为主转变为理论与实验相结合的教学方法,着重培养学生的数字逻辑电路设计能力。使用本书前应具备“C语言程序设计”“电路原理”“模拟电路”等课程的基础知识。本书选择VHDL语言进行电路描述,但不涉及太多的语法,只需掌握IF、CASE语句即可。本书建议理论学时60、实验学时30、课程设计1周, 具体教学安排如下:
第1章 数制与编码(6学时):先介绍二、十进制数及其之间的进制转换;再介绍几种二-十进制编码,以及利用二-十进制编码进行加法运算、运算和的调整方法;然后介绍格雷码;最后以两个2421BCD码加法电路设计为例,进行基于VHDL电路描述的设计介绍,将会用到QUARTUSⅡ设计软件,软件使用方法在第7章的7.3节进行详细介绍;通过软件仿真,初步认识电路设计中出现的“竞争与冒险”现象。
第2章 逻辑代数基础(8学时): 介绍了逻辑代数基础、数字逻辑电路的设计方法,并巩固了数字逻辑电路的设计方法。其中会用到Proteus电路设计仿真软件,该软件的使用方法将在第7.1节进行详细介绍。第1、2章均介绍了两个2421BCD码加法电路设计,分别给出了两种数字电路设计方法。
第3章 集成逻辑门电路(6学时):介绍CMOS集成门电路,使学生理解诸如逻辑代数“与”运算和电路中逻辑与门的“与”运算之间的区别,从而为学习后续章节的数字逻辑电路设计打下基础。通过第2、3章的学习,使学生理解电路设计中为什么会出现“竞争与冒险”现象,掌握静态冒险的检查与消除。
第4章 中规模组合电路及VHDL描述设计(10学时):介绍常用的中规模组合电路芯片及其应用设计,以及相应的VHDL描述设计;通过中规模电路及门电路设计、VHDL描述设计,实现5421码数据的加法运算,包括编码输入和译码输出。通过第1~4章的学习,初步掌握传统的数字电路设计、基于VHDL语言的电路描述设计方法。
第5章 集成触发器(8学时):介绍有记忆功能的电路(触发器)的组成及工作原理;通过7路抢答器的设计,理解为什么电路中需要记忆单元,以及如何设计记忆单元。
第6章 时序逻辑电路的分析、设计和描述(22学时):通过大量举例,介绍时序逻辑电路的分析、设计和描述; 利用74LS192、74LS153、门电路、触发器来设计万年历,介绍传统数字电路的设计方法;通过红外传输系统的设计与仿真,介绍基于VHDL语言的电路设计方法。上述两个数字电路设计将会应用第7章的多数实验内容,建议理论课与实验课同步进行,并适当增加、修改一些功能要求,或改变设计方法。这两个电路也适合用于课程设计。此章是本书份量最重的一章。
第7章 实验与课程设计:介绍了数字电路设计中需要用到的软件的使用方法,详细介绍了实验项目、课程设计项目。
本书适合进行线上线下混合式教学,同时提供教学课件,配套的课程网站有:超星尔雅:https://mooc1-1.chaoxing.com/course/template60/92757197.html;中国大学MOOC:http://www.icourse163.org/learn/preview/JMU-1205706806?tid=1205992221#/learn/content. 本书第1~6章由方怡冰编著,第7章由郑新旺编著。书中的例子都是经过多年的教学实践、提炼后精心选择的,均通过仿真、下载、实际电路调试。
本书将传统数字电路与VHDL电路描述设计有机融合,从数字电路的角度学习VHDL描述设计,并不强调VHDL语法学习,不增加数字电路理论课时,只适当增加实验课时,就可以利用课程设计验证学习效果。学生们掌握了VHDL描述设计方法后,也有助于学习Verilog描述设计方法。
方怡冰
第1章 数制与编码 1
1.1 进位计数制 2
1.1.1 基数和权 2
1.1.2 2n进制数之间的转换 2
1.1.3 十进制数和二进制数的转换 3
1.2 二-十进制编码 4
1.2.1 几种二-十进制编码 4
1.2.2 二-十进制编码的加法 6
1.2.3 加法电路的VHDL描述 8
1.3 格雷码 12
习题 15
第2章 逻辑代数基础 16
2.1 基本概念 16
2.1.1 逻辑变量和逻辑函数 16
2.1.2 基本逻辑运算 16
2.1.3 导出逻辑运算 18
2.1.4 逻辑函数的表示方法 20
2.2 逻辑代数的定理和规则 23
2.2.1 逻辑代数的基本定律 23
2.2.2 常用公式 23
2.2.3 展开定理 24
2.2.4 逻辑代数的三个规则 25
2.3 逻辑函数的标准表达式 25
2.3.1 标准与或式 26
2.3.2 标准或与式 27
2.3.3 不完全确定的逻辑函数 28
2.4 数字逻辑电路设计方法 30
2.4.1 逻辑电路的设计 30
2.4.2 两个2421BCD码相加和的调整电路设计 31
习题 35
第3章 集成逻辑门电路 39
3.1 MOS晶体管 39
3.1.1 MOS晶体管的分类 39
3.1.2 MOS管的三个工作区 40
3.1.3 MOS管的开关时间 40
3.2 CMOS反相器 41
3.2.1 CMOS反相器的结构和工作原理 41
3.2.2 CMOS反相器的电压传输特性 42
3.2.3 CMOS反相器功耗 44
3.2.4 CMOS反相器的开关时间 44
3.3 CMOS其他逻辑门电路 45
3.3.1 CMOS与非门 45
3.3.2 CMOS或非门 46
3.3.3 门的输入端数的扩展 47
3.3.4 缓冲门、与门及或门 47
3.3.5 CMOS与或非门和异或门 48
3.4 CMOS集成电路的输出结构 49
3.4.1 推挽输出 49
3.4.2 三态输出 49
3.4.3 漏极开路输出 50
3.5 CMOS电路使用中应该注意的问题 51
3.6 TTL逻辑门电路简介 53
3.7 组合逻辑电路的竞争与冒险 54
3.7.1 冒险的分类 55
3.7.2 冒险的检查及消除 56
习题 58
第4章 中规模组合电路及VHDL描述设计 61
4.1 常见组合电路结构 61
4.2 编码器 62
4.2.1 普通编码器的VHDL描述 62
4.2.2 2421码编码器的VHDL描述 65
4.2.3 优先编码器74HC148 66
4.2.4 优先权编码器的VHDL描述 68
4.3 译码器 69
4.3.1 普通译码器的VHDL描述 69
4.3.2 2421码译码器的VHDL描述 70
4.3.3 中规模译码器74HC139、74HC138、74HC154 71
4.3.4 用VHDL描述中规模译码器74HC138
74
4.3.5 显示译码器74LS47、74LS48 75
4.3.6 用VHDL描述显示译码器 77
4.4 加法器 78
4.4.1 中规模全加器74LS83、74HC283
78
4.4.2 利用中规模全加器做全减器 79
4.4.3 利用VHDL描述加/减法器 81
4.4.4 中规模电路设计 83
4.5 数据选择器 85
4.5.1 用VHDL描述数据选择器 86
4.5.2 利用中规模数据选择器设计电路 87
4.6 数值比较器 92
4.7 综合设计 94
4.7.1 用中规模电路及门电路设计 96
4.7.2 用VHDL设计 97
4.7.3 利用4位V5421FULL加法电路扩展设计8位加法电路 108
习题 109
第5章 集成触发器 115
5.1 触发器的基本特性及其记忆作用 116
5.2 电位型触发器 117
5.2.1 基本RS触发器 117
5.2.2 带使能端的RS触发器 123
5.2.3 D触发器 123
5.2.4 锁存器 124
5.3 时钟控制的集成触发器 125
5.3.1 主从触发器 125
5.3.2 T触发器 129
5.3.3 边沿触发器 129
5.4 集成触发器的时间参数 133
5.4.1 建立时间和保持时间 133
5.4.2 时钟信号的时间参数 134
习题 134
第6章 时序逻辑电路的分析、设计和描述 139
6.1 时序电路基础 139
6.1.1 同步时序电路的分类和描述 139
6.1.2 常用时序电路 140
6.2 小规模计数器的分析、设计及VHDL描述 142
6.2.1 小规模计数器的分析 142
6.2.2 小规模计数器的设计 146
6.3 小规模一般时序电路的设计及VHDL描述 152
6.3.1 投币机的设计举例 152
6.3.2 空调温度调节电路设计举例 158
6.4 中规模集成计数器及应用设计 162
6.4.1 可预置十进制可逆计数器74LS192 163
6.4.2 利用74LS192设计万年历 167
6.4.3 四位二进制加1计数器74LS169 172
6.5 小规模移位寄存器及VHDL描述 176
6.5.1 移位寄存器的构成 176
6.5.2 环形、扭环形计数器 178
6.5.3 序列信号发生器 181
6.6 中规模移位寄存器及应用设计 190
6.6.1 通用移位寄存器74LS194及序列信号发生器设计 191
6.6.2 JK输入的移位寄存器74LS195及M序列的缩短设计 192
6.6.3 8位移位寄存器74LS164及串—并转换电路设计 193
6.6.4 8位移位寄存器74LS166及并—串转换电路设计 197
6.6.5 8位并—串—并转换电路设计 199
6.6.6 利用中规模芯片设计序列信号发生器电路 200
6.7 序列信号的产生与接收检测电路的设计 203
6.7.1 序列信号发生器电路的VHDL描述 203
6.7.2 序列信号接收检测电路设计 204
6.7.3 组成完整的序列信号产生和接收检测电路 208
6.8 红外传输系统的设计与仿真 209
6.8.1 空调机温度信号、基带信号产生及调制信号产生电路 211
6.8.2 空调机温度调节总电路及接收解码 214
6.8.3 仿真结果分析 216
习题 218
第7章 实验与课程设计 226
7.1 Proteus快速入门 226
7.2 FPGA开发板简介 230
7.3 基于FPGA开发板的Quartus使用教程 239
7.4 实验项目 256
7.4.1 组合逻辑电路实验(一) 256
7.4.2 组合逻辑电路实验(二) 258
7.4.3 组合逻辑电路实验(三) 260
7.4.4 组合逻辑电路实验(四) 263
7.4.5 组合逻辑电路实验(五) 265
7.4.6 组合逻辑电路实验(六) 267
7.4.7 组合逻辑电路实验(七) 271
7.4.8 时序逻辑电路实验(一) 274
7.4.9 时序逻辑电路实验(二) 276
7.4.10 时序逻辑电路实验(三) 277
7.4.11 时序逻辑电路实验(四) 280
7.4.12 时序逻辑电路实验(五) 282
7.4.13 时序逻辑电路实验(六) 286
7.5 系统综合设计项目 289
7.5.1 数字万年历 289
7.5.2 基于红外通信的空调温度控制器 297
7.5.3 交通信号灯控制器 301
7.5.4 红外遥控数字密码锁 302
参考文献 304