
本书是首批国家级一流本科课程“数字逻辑设计”的主讲教材,主要介绍数字逻辑设计的相关知识与思维方法。全书共11 章,内容包括初识数字逻辑、逻辑代数基础、卡诺图化简、组合逻辑电路、触发器、时序逻辑电路分析、时序逻辑电路设计、可编程逻辑器件。 本书可作为高等院校工科类专业数字逻辑设计课程的教材,也可供对数字逻辑设计感兴趣的人员参考。
当前,以“人工智能”、“大数据”及“5G”等为主导的信息技术的飞速发展正深刻地影响全球科技变革和社会变革。面向“制造强国”“网络强国”的战略需求,国家推行了一系列信息化引领的重大行动计划,包括《新一代人工智能发展规划》《“十四五”国家信息化规划》《国务院关于积极推进“互联网+”行动的指导意见》《促进大数据发展行动纲要》等。2017 年,教育部推动各大学实施新工科研究与发展战略,推动各学科的理论和技术与自动化、网络化、智能化相融合。面向技术发展前沿,在不断推进“数字中国”的进程中,如何培养具有创新思维和创新能力、符合技术进步和社会发展、兼具专业使命和家国情怀的新时期人才具有重要的意义。 数字逻辑设计的核心知识是计算机硬件系统设计的重要基础,与国产集成电路及芯片设计等技术息息相关。打造数字逻辑设计精品教材、培养硬件技术基础人才符合国家战略发展需求。新时期的“数字逻辑设计”课程应由知识型课程转型为逻辑思维养成、逻辑设计能力提升和综合素质培养型课程。目前,国内高校的“数字逻辑设计”课程普遍在大学二年级开设,也有一些高校在大学一年级开设。在学生基础参差不齐、授课学时不增反降的双重困难下,如何在有限的时间内使学生掌握知识精髓、具备解决复杂问题的系统能力,对教师和教材都提出了挑战。因此,一本优秀的教材不仅应让“教师易教”“学生易学”, 而且应能满足不同基础、不同层次的学习者。 与传统教材的编写思路不同,本书聚焦于逻辑分析和逻辑设计思维的建立,注重从环环相扣和层层深入的问题中揭示逻辑设计的精髓,深刻剖析隐藏在问题背后的本质,在逻辑设计思维养成、逻辑设计能力提升及系统能力及综合素质培养等方面做出了大胆尝试,具体如下。 (1)建立了“概念抽取→概念符号化→原理实例化→知识贯通化→应用系统化”的全新知识组织体系。采取由点及面、从局部入宏观的循序渐进式编写手法,递进式培养和提高学习者的数字逻辑分析及设计能力。 (2)采取“内容趣味化、概念实例化、知识案例化、过程图形化、理解形象化”的新颖表现手法,聚焦数字逻辑设计的核心知识和重点问题,采用一例多解、对比关联、剖析总结、拓展发散等多种形式,逐渐步入挑战性、探究性的深层学习。 (3)融入专业使命和家国情怀,使知识传授与价值引领并行。每章末尾都有一个精选的“情怀故事”,为全书注入了更多的正能量,起到了提升读者使命担当意识的积极作用。 (4)架构清晰、脉络清楚,每章既有内容导读和重点案例引领,又有研究探讨和深入思考。 本书内容编排独具匠心,为读者呈现出一个精彩纷呈的数字世界。本书共11 章,覆盖了“数字逻辑设计”的核心内容。全书立足于逻辑代数基础,围绕逻辑分析和逻辑设计两条主脉络来组织章节内容。全书整体架构及章节安排科学合理,清晰地表达了各章节内容之间的内在关系:由逻辑代数引出逻辑函数的表示及化简方法,由典型逻辑部件的构造过渡到复杂逻辑电路的分析及设计,由中规模芯片的使用递进到FPGA 等可编程逻辑器件的应用,再进阶为最新一代智能芯片的介绍,引领学习者逐步迈向深层次的学习。 尽管作者已经很努力,但内容难免有不完善之处,敬请广大读者谅解,并诚挚地欢迎读者提出宝贵建议,我们会在重印时及时更正。感谢所有为本书提供帮助的人!
第1 章开篇——初识数字逻辑············1 1.1 本书知识脉络······················.1 1.2 初识数字逻辑······················.2 1.2.1 数字系统设计的三个层次····3 1.2.2 几个基本概念·················4 1.2.3 数字系统中的开关器件·······5 1.3 编码··································.5 1.3.1 BCD 码························5 1.3.2 余3 码·························6 1.3.3 格雷码·························6 1.3.4 奇偶校验码····················9 1.4 研讨探究··························.10 1.5 深入思考··························.11 1.6 小故事大情怀····················.11 习题1 ····································.11 第2 章万丈高楼平地起——逻辑 代数基础 ··························.12 2.1 几个基本概念····················.12 2.2 基本逻辑运算····················.13 2.2.1 与运算(逻辑乘) ·········.13 2.2.2 或运算(逻辑加) ·········.14 2.2.3 非运算(逻辑反) ·········.14 2.3 复合逻辑运算····················.15 2.3.1 与非运算···················.15 2.3.2 或非运算···················.15 2.3.3 与或非运算·················.16 2.3.4 异或运算···················.16 2.3.5 同或运算···················.17 2.4 逻辑函数的表示方法···········.18 2.4.1 由真值表写出标准逻辑 表达式······················.18 2.4.2 由逻辑表达式画出真值表·.19 2.4.3 由逻辑图得出逻辑表达式·.20 2.4.4 由逻辑表达式画出逻辑图·.20 2.5 逻辑代数定理及规则···········.20 2.5.1 公理························.20 2.5.2 基本定理···················.21 2.5.3 特殊定理···················.21 2.6 代数化简法·······················.23 2.6.1 何为最简···················.23 2.6.2 代数化简法实例············.24 2.7 最小项与最大项·················.25 2.7.1 最小项与最大项的定义····.25 2.7.2 最小项与最大项的性质····.25 2.7.3 最小项与最大项表达式····.26 2.8 非完全给定函数·················.28 2.8.1 无关项······················.28 2.8.2 非完全给定函数的定义····.29 2.9 小材大用——应用异或门 设计旅客身高检测器···········.29 2.10 研究探讨························.30 2.11 深入思考························.30 2.12 小故事大情怀··················.31 习题2 ····································.31 第3 章方圆之间的神奇——卡诺图 化简 ································.33 3.1 卡诺图的含义····················.33 3.2 填写卡诺图·······················.34 3.2.1 由真值表填写卡诺图······.34 3.2.2 由标准与或式、标准或与式 填写卡诺图·················.34 3.2.3 由一般表达式填写卡诺图·.35 3.3 基于卡诺图的逻辑运算·······.35 3.4 卡诺图化简法····················.36 3.4.1 利用卡诺图读取最简 与或式······················.37 3.4.2 利用卡诺图读取最简 或与式······················.38 3.4.3 利用卡诺图读取最简 与或非式 ···················.38 3.5 带无关项的卡诺图化简········.39 3.6 卡诺图化简的进一步讨论·····.41 3.6.1 展开定理···················.41 3.6.2 卡诺图拆分后相邻单元格 的判断······················.41 3.7 研究探讨··························.43 3.8 深入思考··························.43 3.9 小故事大情怀····················.44 习题3 ····································.44 第4 章玩转逻辑门——组合逻辑 电路(一) ·······················.45 4.1 门电路的级数····················.45 4.1.1 二级门电路·················.45 4.1.2 二级门电路的8 种基本 形式 ························.47 4.2 利用单一逻辑门设计二级 组合逻辑电路···················.48 4.2.1 利用与非门设计二级组合 逻辑电路 ···················.48 4.2.2 利用或非门设计二级组合 逻辑电路 ···················.49 4.2.3 利用与或非门设计二级 组合逻辑电路 ··············.50 4.3 利用单一逻辑门设计多级 组合逻辑电路···················.51 4.3.1 利用与非门设计多级组合 逻辑电路 ···················.51 4.3.2 利用或非门设计多级组合 逻辑电路 ···················.51 4.4 多输出电路的设计··············.52 4.5 组合逻辑电路的分析···········.53 4.6 应用案例——多功能函数 发生器·····························.55 4.7 利用逻辑门设计组合逻辑 电路 ·······························.55 4.8 使用有限扇入门设计组合 逻辑电路 ·························.58 4.9 典型组合逻辑部件··············.59 4.9.1 半加器······················.59 4.9.2 全加器······················.60 4.9.3 并行加法器·················.61 4.9.4 集电极开路门··············.63 4.9.5 三态缓冲器·················.64 4.10 研讨探究························.66 4.11 深入思考························.67 4.12 小故事大情怀··················.67 习题4 ····································.67 第5 章险象环生——组合逻辑 电路(二) ·······················.69 5.1 组合逻辑电路中的险象········.69 5.1.1 门延迟······················.69 5.1.2 组合逻辑电路的冒险······.69 5.1.3 冒险的类型·················.70 5.2 险象的判别·······················.73 5.2.1 代数判别法·················.73 5.2.2 卡诺图判别法··············.74 5.3 险象的消除·······················.74 5.4 组合逻辑电路的测试···········.76 5.5 研讨探究··························.76 5.6 深入思考··························.77 5.7 小故事大情怀····················.77 习题5 ····································.77 第6 章数字逻辑的基石——组合 逻辑电路(三) ·················.79 6.1 集成电路的分类·················.79 6.2 数据选择器·······················.80 6.3 译码器·····························.83 6.3.1 二进制译码器··············.83 6.3.2 代码转换译码器············.85 6.3.3 显示译码器·················.87 6.4 编码器·····························.88 6.4.1 普通编码器·················.88 6.4.2 优先权编码器··············.90 6.5 数值比较器·······················.91 6.5.1 一位数值比较器············.91 6.5.2 多位数值比较器············.92 6.5.3 数值比较器的级联·········.93 6.6 奇偶校验器·······················.94 6.7 利用中规模芯片设计组合 逻辑电路 ·························.96 6.7.1 利用中规模芯片数据选择器 设计组合逻辑电路·········.96 6.7.2 利用中规模芯片译码器 设计组合逻辑电路·········100 6.8 研讨探究··························103 6.9 深入思考··························103 6.10 小故事大情怀··················103 习题6 ····································104 第7 章走在时间的边沿—— 触发器 ·····························106 7.1 时序逻辑电路的特点···········106 7.1.1 两个重要概念··············107 7.1.2 双稳态触发器/锁存器的 特点 ························107 7.1.3 锁存器和触发器的区别····108 7.2 锁存器·····························108 7.2.1 基本RS 锁存器············108 7.2.2 门控D 锁存器·············.113 7.2.3 锁存器或触发器的空翻 现象 ·······················.114 7.3 触发器····························.115 7.3.1 RS 触发器·················.116 7.3.2 D 触发器··················.116 7.3.3 JK 触发器·················.117 7.3.4 T 触发器···················.119 7.3.5 T ‘触发器···················120 7.4 带附加输入端的触发器········120 7.4.1 带异步清零端和异步 置 1 端······················120 7.4.2 带时钟使能端··············121 7.5 触发器类型转换·················122 7.5.1 代数法······················122 7.5.2 卡诺图法···················123 7.6 研讨探究·························.124 7.7 深入思考·························.124 7.8 小故事大情怀···················.124 习题7 ···································.125 第8 章与时间打交道——时序逻辑 电路分析 ·························.127 8.1 时序逻辑电路分类·············.127 8.2 寄存器····························.128 8.2.1 基本寄存器················.128 8.2.2 单向移位寄存器···········.129 8.2.3 双向移位寄存器···········.133 8.3 计数器····························.136 8.3.1 计数器的概念及特点·····.136 8.3.2 计数器的种类·············.136 8.3.3 时序逻辑电路的分析 方法 ·······················.136 8.3.4 同步计数器举例···········.137 8.3.5 异步计数器举例···········.139 8.4 节拍发生器······················.141 8.4.1 计数型节拍发生器举例···.141 8.4.2 移位型节拍发生器举例···.143 8.5 时序逻辑电路的分析··········.145 8.5.1 同步时序逻辑电路的 分析 ·······················.146 8.5.2 异步时序逻辑电路的 分析 ·······················.149 8.6 应用案例——简易I/O 电路··.151 8.7 研讨探究·························.153 8.8 深入思考·························.153 8.9 小故事大情怀···················.153 习题8 ···································.154 第9 章触发器用起来——时序逻辑 电路设计(一) ················.158 9.1 时序逻辑电路设计方法 概述 ······························.158 9.1.1 开篇示例··················.158 9.1.2 建立原始状态图和原始 状态表·····················.161 9.1.3 状态表化简················.167 9.1.4 状态分配··················.173 9.2 利用触发器设计同步时序 逻辑电路典型案例·············175 9.2.1 模8 可逆计数器············175 9.2.2 自动售卖机·················177 9.2.3 时序锁······················184 9.2.4 二进制串行加法器·········187 9.2.5 串行输入的8421BCD 码 检测器······················189 9.2.6 奇偶校验器·················193 9.3 复杂时序逻辑电路的设计·····194 9.3.1 码制转换器·················194 9.3.2 多序列检测器··············198 9.4 利用触发器设计异步时序 逻辑电路 ·························199 9.4.1 利用触发器设计异步时序 逻辑电路的方法···········199 9.4.2 利用触发器设计异步 计数器······················203 9.5 应用案例——时序逻辑电路 故障诊断 ·························208 9.6 研讨探究··························210 9.7 深入思考··························210 9.8 小故事大情怀···················.211 习题9 ···································.211 第10 章中规模芯片显身手—— 时序逻辑电路设计(二) ···215 10.1 计数器芯片·····················215 10.1.1 采用清零法设计计 数器 ·····················217 10.1.2 采用置数法设计计 数器 ·····················219 10.1.3 计数器级联··············219 10.1.4 计数器的应用···········223 10.1.5 可变模值计数器设计····225 10.2 寄存器芯片·····················226 10.2.1 寄存器芯片74LS194 概述·····················226 10.2.2 寄存器芯片的典型 应用 ····················.227 10.2.3 应用案例——同步 二进制串行加法器·····.230 10.3 应用案例——数字密码锁···.231 10.4 研讨探究·······················.233 10.5 深入思考·······················.233 10.6 小故事大情怀·················.233 习题10··································.234 第11 章我的芯片我做主——可编程 逻辑器件 ·······················.237 11.1 可编程逻辑器件概述········.237 11.2 ROM 的基本原理及应用····.238 11.2.1 ROM 系列概述·········.238 11.2.2 ROM 的基本原理······.239 11.2.3 ROM 的典型应用······.242 11.3 PROM 的基本原理及应用··.247 11.3.1 PROM 的基本原理·····.247 11.3.2 PROM 的典型应用·····.247 11.3.3 PROM 的扩展··········.251 11.4 其他低密度PLD··············.255 11.4.1 PLA 的基本原理及 应用 ····················.255 11.4.2 PAL 的基本原理及 应用 ····················.265 11.4.3 GAL 的基本原理及 应用 ····················.266 11.5 高密度PLD····················.271 11.5.1 CPLD 的基本原理······.271 11.5.2 FPGA 的基本原理······.272 11.6 新一代智能芯片··············.274 11.7 应用案例——简易十字路口 交通控制器 ····················.277 11.8 研讨探究·······················.280 11.9 深入思考·······················.280 11.10 小故事大情怀················.280 习题11··································.281 附录A 参考答案··························.283