图书前言

本书目的

本书针对数字系统逻辑设计的第一门课程进行编写。本书的编写基于这样的前提: 学生应该完全理解和学习本课程中的基础概念。这些基本概念的例子有应用布尔代数描述逻辑电路中的信号和连接、使用系统化方法对逻辑电路进行化简、用简单器件互连实现更复杂的逻辑功能、根据时序表和状态转换图对时序逻辑电路进行分析,以及使用控制电路控制数字系统中的事件发生的顺序。

本书尝试在理论与应用之间取得平衡。基于这个原因,本书并没有过分强调开关理论中的数学运算。但是,本书仍然提供了正确理解逻辑设计中基础概念所需的理论。在学习完本书之后,学生应该为学习更先进的数字系统设计课程做好了准备,这些课程强调一些更直观的概念,如数字处理算法的发展、数字系统中子系统的划分,以及使用当前已有的硬件实现数字系统等。另外,学生也为学习开关理论方面的高级课程做好了准备,这些课程进一步拓展了本书中介绍过的某些理论概念。

本书内容

学完本书之后,读者应该可以应用开关理论来解决逻辑设计问题。这意味着既要学习开关电路基础理论,也要学习如何应用这些理论。在简单介绍数字系统之后,读者将学习开关代数,它是布尔代数的特例,是对开关电路进行分析和综合所需的基本数学工具。由对某个问题的文字表述开始,读者将学习如何设计一个逻辑门电路,该电路的输入端和输出端之间的信号具有特定的关系。接着读者将学习触发器的逻辑特性,它可以作为时序开关电路中的存储器件。通过将触发器和逻辑门电路相结合,读者将学习如何设计计数器、加法器、序列检测器以及类似的电路。读者还将学习VHDL硬件描述语言,以及该语言在组合逻辑设计、时序逻辑设计和简单数字系统设计中的应用。

随着集成电路技术的发展,更多的部件可以集成到一个芯片上,数字系统会变得越来越复杂,设计这样的复杂系统需要使用VHDL这样的硬件描述语言。本书将介绍VHDL在逻辑设计方面的应用,着重强调了VHDL语句与对应的数字硬件之间的关系。VHDL允许在用逻辑部件实现数字硬件之前,先在更高层次上对数字硬件进行描述和仿真。用于综合的计算机程序可以把数字系统的VHDL描述转换成相应的逻辑器件组合以及它们之间的互连。虽然使用这样的计算机辅助设计工具有助于实现逻辑设计过程的自动化,但我们仍然坚信在写VHDL代码之前,先理解基础逻辑部件功能及其时序是非常重要的。先让读者手工实现数字逻辑,可以让其全面地理解VHDL的功能以及不足之处。

自从本书第1版出版,虽然用于实现数字系统的技术有了很大的变化,但用于逻辑设计的基本原理并没有改变。真值表和状态转换表依旧用于确定逻辑电路的行为,布尔代数也依旧是逻辑设计的基本数学工具。即使可编程逻辑器件(Programmable Logic Devices,PLD)取代了单独的逻辑门和触发器,为了在更小的PLD上实现逻辑表达式,对逻辑表达式的化简依旧是值得的。合理的状态分配也依然重要,因为不合理的分配将导致需要更大的PLD来实现一个逻辑表达式。

本书内容组织

虽然在开关理论和逻辑设计领域有许多书籍可供我们选择,但本书既可以作为标准讲解式课程的教材,也可以作为自定学习进度式课程的教材。除了标准的学习内容及习题外,书中还有学习指导及其他帮助内容以方便自学。本书内容共分为20章,这些章形成一个合理的逻辑顺序,也就是说掌握前一章的内容通常是学习后续章节的先决条件。每一章包含4个部分,首先是学习目标,它准确列出了学完本章后你应该达到的目标。接着是学习指导,它包含有学习任务和学习问题,当学完某一章后,应该能够写出这些问题的答案。紧接其后的是学习内容及部分例题,这一部分与传统的教材类似。当结束某章的学习后,应该重新回顾一下学习目标,确信你已经达到了这些目标。每一章的内容都在自定学习进度式环境下经过大量的课堂测试,并根据读者的反馈做了相应的修改。

需要学习的内容分为三大主要部分。第1~9章讲解布尔代数和组合逻辑电路设计问题。第11~16章、第18章和第19章主要关注的是时序逻辑电路的分析和设计问题,这包括算术运算电路的设计。第10、17和20章介绍硬件描述语言VHDL及其在逻辑设计中的应用。

本书既适合计算机科学专业的学生学习,也适合工程专业的学生学习。与逻辑门电路方面有关的内容包含在附录A中,以便于计算机专业学生或者其他没有电子电路基础的学生可以方便地跳过这些内容。本书做了一定的安排,即使学生跳过有关奎因麦克拉斯基(QuineMcCluskey)方法的第6章,也不会影响本书的连贯性。与VHDL有关的3章可以按正常顺序学习,既先学习其他章节后再学习这几章,也可以全部跳过这几章。

补充材料及学习资源 

本书还为教师和学生提供了相关的支持材料,这些补充材料都放在出版公司的网站上。若想获取这些额外的课程材料,可以访问网站: www.cengagebrain.com。在该主页顶部的搜索框里输入本书(原书)的ISBN号(即9781133628484),就可以访问到这些资源所在的页面。

教师有关资源

教师可以利用的资源包括一本教师指导手册(Instructors Soluton Manual,ISM),这本手册包含了把本书用作标准课程教材和自定学习进度式课程教材时的建议、每章的测验,以及关于实验仪器和方法的建议。教师指导手册也包含了习题答案、每章测验的答案及实验题的答案。

教师指导手册有纸质版和电子版两种形式。已注册的教师可以在出版商网站上获取电子版指导手册,这个网站还提供一套包含本书所有图片和表格的PowerPoint讲稿,以及包含所有公式和例题的Lecture Builder PowerPoint讲稿。

学生有关资源

由于计算机在逻辑设计过程中发挥着重要的作用,因此将计算机应用引进到第一门逻辑设计课程中是非常重要的。本书可以使用一个计算机辅助逻辑设计程序,该程序名字是LogicAid。这个程序可以方便学生根据最小项、真值表及状态转换表推导出简化的逻辑表达式,使学生从许多枯燥的计算中解脱出来,使其在较短时间解决更复杂逻辑设计问题成为可能。LogicAid还提供了有关卡诺图(Karnough maps)及状态转换图推导的指导和帮助。

有几章包含有仿真练习或实验练习,这些练习提供对逻辑电路进行设计以及对其操作进行测试的机会。逻辑仿真器SimUaid可以用于对逻辑设计进行验证。测试所需的实验设备包括带有集成电路触发器和逻辑门的面包板,或者带有可编程逻辑器件的电路板。若无法获得这些设备,可以用SimUaid对实验练习进行仿真,或者只当做一个设计问题布置下去,这对于第8、16和20章尤为重要,因为这些章中的综合设计问题有助于复习和整合前面几章所讲的内容。

DirectVHDL软件提供了对硬件的VHDL描述进行快速检查和仿真的方法。当输入VHDL代码时这个软件就会对其语法进行检查,这样就可以在仿真阶段改正尽可能多的语法错误。

与以前版本的变化

本书在第5版的基础上做了相当多的改进。增加了可编程逻辑和VHDL硬件描述语言,更加强调仿真以及计算机辅助设计在逻辑电路中的重要性,扩充了关于VHDL、冒险、锁存器以及单跃变状态赋值方面的讨论。书中还增加了大量的习题。第7版还有下面几方面的变化: 数制系统的介绍重新进行组织,这样可以轻易地跳过原码部分内容。在“布尔代数”这章(即第2章)里,先用开关网络和真值表推导出用于定义布尔代数的开关代数定律,然后再推导用于开关代数表达式化简的定理。加法器的介绍也做了扩充,包括了先行进位加法器。书中还包括了多路选择器的其他实现以及高电平有效和低电平有效的介绍,还包括了其他类型的门控锁存器的介绍和异步时序电路的简单介绍。本书还介绍了非完全给定状态转换表以及它们是如何产生的,并且详细地介绍了如何化简非完全给定状态转换表。本书全面扩充了习题,具有挑战性的习题要比常规练习题的比重更大。另外,伴随本书的逻辑设计和仿真的软件也做了相应的更新和完善。

致谢

用于自学目的书不能因为要提高效率而简单编写,它必须经过多次测试及修订才能完成。我们希望向参与本过程的许多教授、监考老师和学生表示感谢。特别感谢David Brown博士,他协助从事自定学习进度式课程的教学,并且对第5版的改进提出了许多有帮助的建议。还要特别感谢研究生教学助理Mark Story,他为第5版书设计了大量新的习题并提供了答案,他还在提高本书内容的一致性与表达的清晰性方面提供了许多建议。

作者尤其感谢本书的许多评审员,他们包括: 

Clark Guest,University of California,San Diego

Jayantha Herath,St Cloud State University

Nagarajan Kandasamy,Drexel University

Avinash Karanth Kodi,Ohio University

Jacob Savir,Newark College of Engineering

Melissa C.Smith,Clemson University

Larry M.Stephens,University of South Carolina

欢迎来自读者的反馈,包括批评性的以及欣赏性的反馈。

Charles H. Roth,Jr.

Larry L. Kinney