内容简介
本书是为“数字逻辑设计”课程编写的入门教材,这门课是电气工程和计算机专业的基础课程。本书着重阐述了数字逻辑基础与逻辑电路的基本设计技术,通过许多例子来引入基本概念,强调综合电路及如何在实际芯片上实现电路。主要内容包括:逻辑电路、算术运算电路、编码器、译码器、多路选择器、移位寄存器、计数器、同步时序电路、异步时序电路、数字系统设计、逻辑函数的优化、计算机辅助设计工具等。本书适合作为高等院校电子和计算机工程专业的数字电路教材,也适合相关专业人士参考。
目录
出版者的话
译者序
前言
作者简介
第1章引言1
1.1数字硬件1
1.2设计流程3
1.3计算机结构4
1.4本书中的逻辑电路设计5
1.5信息的数字化表示5
1.6理论与实践9
习题10
参考文献10
第2章逻辑电路导论11
2.1变量与函数11
2.2反相12
2.3真值表13
2.4逻辑门和网络14
2.5布尔代数17
2.6利用“与”门、“或”门和“非”门进行综合23
2.7“与非”和“或非”逻辑网络电路28
2.8设计实例31
2.9CAD工具介绍34
2.10Verilog简介37
2.11最简化和卡诺图41
2.12最小化策略46
2.13和之积形式的最简式49
2.14非完整定义函数(无关项)50
2.15多输出电路51
2.16小结53
2.17解决问题的实例53
习题58
参考文献61
第3章数的表示方法和算术运算电路62
3.1按位计数法(数的位置表示法)62
3.2无符号数的加法运算64
3.3有符号数67
3.4快速加法器75
3.5使用CAD工具设计算术运算电路79
3.6乘法88
3.7其他数的表示方式90
3.8解决问题的实例94
习题97
参考文献99
第4章组合电路模块100
4.1多路选择器100
4.2译码器105
4.3编码108
4.4代码转换器109
4.5算术比较电路109
4.6用Verilog设计组合逻辑电路110
4.7小结121
4.8解决问题的实例121
习题126
参考文献128
第5章触发器、寄存器和计数器129
5.1基本锁存器129
5.2门控SR锁存器131
5.3门控D锁存器132
5.4边沿触发的D触发器134
5.5T触发器139
5.6JK触发器139
5.7术语小结140
5.8寄存器140
5.9计数器142
5.10复位同步147
5.11其他类型的计数器149
5.12用CAD工具设计含存储元件的电路151
5.13用Verilog构建寄存器和计数器156
5.14设计举例160
5.15触发器电路的时序分析164
5.16小结167
5.17解决问题的实例167
习题171
参考文献174
第6章同步时序电路175
6.1基本设计步骤176
6.2状态分配问题183
6.3Mealy状态模型185
6.4采用CAD工具设计有限状态机188
6.5串行加法器实例193
6.6状态最小化197
6.7基于时序电路的计数器设计202
6.8仲裁电路的FSM207
6.9同步时序电路的分析209
6.10算法状态机流程图211
6.11时序电路的形式模型213
6.12小结214
6.13解决问题的实例214
习题219
参考文献220
第7章数字系统设计222
7.1总线结构222
7.2简单的处理器227
7.3位计数电路234
7.4移位和加乘法器238
7.5除法器242
7.6算术平均248
7.7排序操作251
7.8时钟同步和时序问题258
7.9小结260
习题261
参考文献262
第8章逻辑函数的优化实现264
8.1多级综合264
8.2多级电路分析271
8.3逻辑函数的其他表示方法273
8.4基于立方体表示法的优化技术279
8.5小结288
8.6解决问题的实例289
习题293
参考文献294
第9章异步时序电路296
9.1异步行为296
9.2异步电路分析298
9.3异步电路综合303
9.4状态化简309
9.5状态分配316
9.6冒险324
9.7一个完整的设计实例328
9.8小结331
9.9解决问题的实例332
习题335
参考答案337
第10章计算机辅助设计工具338
10.1综合338
10.2物理设计342
10.3小结345
参考文献345
第11章逻辑电路测试346
11.1故障模型346
11.2测试集的复杂度347
11.3路径敏化348
11.4树形结构电路350
11.5随机测试351
11.6时序电路的测试353
11.7内建自测试355
11.8印制电路板359
11.9小结361
习题362
参考文献363
附录AVerilog参考364
附录B实现技术391
部分习题参考答案440
前言/序言
本书面向数字逻辑设计的入门课程,这门课程是大多数电子和计算机工程专业的一门基础课程。一个成功的数字逻辑电路设计者首先必须深入了解其基本概念,并且能够牢固掌握基于计算机辅助设计(CAD)工具的现代设计方法。
本书的主要目的为:1)通过典型的数字电路手工设计方法教给学生基本概念;2)清晰地展示当今采用CAD工具设计数字电路的方法。虽然目前除了少数情况外已经不再采用手工方法进行设计,但我们仍想通过教授这些手工设计技术,使学生对如何设计数字电路有一个感性的认识;并且手工设计方法能对CAD工具实现的功能进行很好的解释,使学生体会到自动设计的优势。本书通过简单的电路设计案例引出其基本概念,这些案例都同时采用手工方法和现代CAD方法设计。在建立了基本概念后,提供了更多基于CAD工具的复杂例子。因此,本书的重点仍然放在现代设计方法上,以说明当今数字电路是如何设计的。
技术本书将讨论现代数字电路实现技术,重点为教科书中最适合采用的可编程逻辑器件(PLD),其原因主要表现在两个方面:第一,PLD在实际设计中被广泛采用,并且适合于各种数字电路设计,事实上,从某些方面看学生们在他们的职业生涯中更喜欢基于PLD进行设计而不是任何别的技术;第二,可以通过最终用户的编程在PLD上实现电路。因此,在实验室中可以提供给学生一个机会,即基于实际芯片来实现书中的设计例子;学生也可以用自己的计算机仿真所设计电路的性能。为了达到设计目的,我们采用最常见的PLD:复杂可编程逻辑器件(CPLD)和现场可编程逻辑阵列(FPGA)。
在逻辑电路的具体设计中,我们强调硬件描述语言(HDL)的使用,因为基于HDL的方法在实际应用中是最有效的。我们还详细介绍了IEEE标准的Verilog HDL语言,并且在例子中广泛使用。
本书内容本书第3版的结构进行了较大的改进,第1~6章覆盖一个学期内该课程所需讲述的所有内容,而第7~11章则介绍更先进的内容。
第1章概述了数字系统的设计流程,讨论了设计流程中的关键步骤,解释了如何运用CAD工具自动实现所要求的众多工作;同时介绍了数字信息的表示方式。
第2章介绍了逻辑电路的基本知识,展示了如何使用布尔代数表示逻辑电路;介绍了逻辑电路综合和优化的概念,展示了如何使用逻辑门实现简单电路。第一次向读者展现Verilog,一个可用于描述逻辑电路的硬件描述语言例子。
第3章重点讲述了算术运算电路,讨论了数字系统中数字的表示方式,并说明了这样的数字如何运用到逻辑电路中。另外,该章还阐述了如何使用Verilog详细描述所期望的功能,以及CAD工具如何提供开发所期望电路的机制。
第4章介绍了用作构建模块的组合电路,包括编码器、译码器及多路选择器。这些电路非常便于阐明众多借助Verilog构建的应用,给读者提供了一个揭示Verilog更多高级特性的机会。
第5章介绍了存储单元,讨论了采用触发器实现的规则结构,如移位寄存器和计数器,并给出了这些结构的Verilog描述。
第6章详细阐明了同步时序电路(有限状态机),解释了这些电路的行为,并介绍了用手工和自动两种方法进行实际设计开发的技术。
第7章讨论了系统设计中经常遇到的问题及其解决办法,介绍了一个较大规模的数字系统层次化设计的例子,并给出了完整的Verilog代码。
第8章介绍了逻辑功能优化实现的更加先进的技术,提供了优化算法;解释了如何与二元决策图一样使用一种立方体表示法指定逻辑功能。
第9章讨论了异步时序电路。虽然没有面面俱到地叙述,但清晰展示了时序电路的主要特性。尽管异步时序电路在实际中的应用并不是很广泛,但是它们提供了一个深刻理解数字电路操作的非常好的途径。该章还展示了可能存在于电路结构内部的传播延迟和冒险竞争。
第10章给出了设计者在设计、实现及测试数字电路过程中经历的一个完整的CAD流程。
第11章介绍了电路的测试。逻辑电路的设计者必须清楚意识到电路测试的必要性,至少应熟悉测试最基本的知识。
附录A总结了完整的Verilog特性。整本书中都使用了Verilog,该附录便于读者在编写Verilog代码时随时查阅与参考。
附录B给出了数字电路的电特性,展示了如何采用晶体管搭建基本的门电路,介绍了影响电路性能的各种因素。该附录重点讨论了最新的技术,同时介绍了CMOS工艺和可编程逻辑器件。
课程内容建议书中大部分内容适用于两个季度的课程。在不需要花费太多时间教授Verilog和CAD工具时,1个学期甚至1个季度的课程也可以涵盖大部分最重要的内容。为了达到这个目的,我们按照模块化方式组织了Verilog内容以便于自学。多伦多大学不同班级的




















