本书是一本系统介绍数字电路设计的优秀教材,旨在教会读者关于数字设计的基本概念和基本方法。全书共分10章,内容涉及数字逻辑的基本理论、组合逻辑电路、时序逻辑电路、寄存器和计数器、存储器与可编程逻辑器件、寄存器传输级设计、半导体和CMOS 集成电路、标准IC和FPGA实验、标准图形符号、Verilog HDL与数字系统设计等。全书结构严谨,选材新颖,内容深入浅出,紧密联系实际,教辅资料齐全。
第五版前言
自从《数字设计(第四版)》出版以来,
基于数字技术来接收、
控制和传输信息的设备在商业领域中的应用呈现快速增长的趋势,
新的手机和手持移动设备层出不穷,
性能也在大幅提升。在这些美观的用户界面之下,使用二进制代码进行数据传输的二进制系统扮演了很重要的角色。这些系统的基本理论并没有发生太大变化,然而制造商对某些核心理论的完善,
以及现代化设计工具的应用进一步推动了市场的发展。因此,
为适应新技术, 本书精炼了内容并且加强了对数字器件的传统理解和现代设计方法介绍。
《数字设计与Verilog实现(第五版)》的内容大部分建立在前面四个版本基础上的,
除此之外, 用户的反馈也帮助我们确定了一部分内容编写的方向。 这个版本中的内容更侧重于数字设计的基础课程以及当今主流数字系统设计技术CMOS电路。
本书适合的读者范围很广,
计算机科学、 计算机工程以及电子工程专业的学生均可阅读。 本书的核心内容包括: (1)布尔逻辑, (2)逻辑门, (3)同步有限状态机, (4)
数据通路控制器。所有这些都是要通过数字系统的设计来实现的。
该版同时取消了一些电子电路的内容,所以读者可能无法再找到有关异步状态机或者双极型晶体管的描述。
另外, 随着网络上有关的辅助材料越来越多, 我们减少了关于FPGA的篇幅。 现在的设计者更倚重于硬件描述语言(HDL), 《数字设计与Verilog实现(第五版)》把更多的注意力放在了应用上, 以及怎样才能思路清晰地使用Verilog
HDL对数字系统进行设计和开发。
多样化的学习方法
《数字设计与Verilog实现(第五版)》提供了多样化的学习方法。称作VARK的学习方法区分了四种主要的学习模式: (V) Visual,
视觉; (A) Aural,
听觉; (R) Reading,
阅读; (K)Kinesthetic,
动觉。 VARK方法以及范例可以用来支持课堂教学。本书中提供了高标准的图例图解(Visual), 对于大量的范例及讨论, 学生使用免费的模拟器进行实验, 内容包括怎样设计一个逻辑系统并使它正常工作(Kinesthetic),
而最后的听觉(Aural)部分的内容则交给教师来完成。
因此, 使用《数字设计与Verilog实现(第五版)》来开展数字设计课程教学, 可以给学生带来丰富且循序渐进的学习体验。
有些人可能会对本书的内容以及第一堂课就涉及硬件描述语言(HDL)抱有疑问,
事实上我们注意到,
伴随着新生的为集成电路设计的CAD工具的大量普及,
当今工业界已经逐步淘汰了20世纪80年代开始的基于原理图的设计。原理图创造了一种用接线图对系统功能进行描述的方法,
然而其不足之处在于对于任何人来说,
想要在较短时间内没有任何仪器的帮助和说明书,
仅由画在纸上的逻辑电路原理图来确定电路功能无疑是很困难的。因此工业界转而把目光放在硬件描述语言(诸如Verilog HDL)上,
开始使用HDL来描述逻辑功能的设计,
并且囊括了功能说明、
模拟、 仿真测试以及与实际硬件系统(如标准ASIC或FPGA单元)的综合调试。原理图方法只有通过对详细的并且精确分级的设计模块文档的仔细分析,
才能达到实用的目的。较旧的范例中,设计者们依仗多年的经验来制作电路原理图以说明其功能。而在当今工业的设计图中,
设计者们使用硬件描述语言来更直接、
更有效地说明数字系统的功能,
而不需要多年积累的经验,
同时通过综合的模拟工具来自动生成原理图作为参考。工业实践证明传统原理图带来的低效能如果不被新的分析方法取代,
将会给新一代大型复杂集成电路的设计带来巨大困难。
我们再次说明,
在《数字设计与Verilog实现(第五版)》的第一课就涉及硬件描述语言,
并不代表要摒弃传统基础理论和手工设计方法。对于学生来说理解硬件是如何工作的仍然非常重要。
因此我们保留了详尽的组合和连续逻辑模块的内容。手工设计在锻炼学生能力的同时,
将结果与HDL范例中得到的结果进行比较,
可以进一步加深学生对硬件知识的理解。无论如何,
我们想强调的是硬件是如何设计的,
为学生将来在工业上的工作实践打下坚实基础,
这就是为什么基于硬件描述语言的设计实践是至关重要的。
适用性
书中内容的次序很好地适应了课程需求,
是由基于传统手工工艺的数字电路设计、
使用硬件描述语言的数字电路设计和在两者之间或两者混合的课程组成。因为当今综合性设计工具的高度自动化使得逻辑分析最小化。卡诺图以及其他相关的主题可以被最优化地呈现在数字设计的开始或者在使用硬件描述语言测试、
设计、 模拟电路之后。本书的内容包含了手工设计电路和基于硬件描述语言设计电路的范例。通过每章结尾前后参照的习题,
让传统手工设计任务变成采用硬件描述语言并且需要同伴一起完成的任务。通过在模拟结果、
习题的解答和手工设计的解决方案中添加注释,
将传统手工设计和基于硬件描述语言的电路设计有机结合起来。
内容的更新
《数字设计与Verilog实现(第五版)》遵循最新的IEEE 1364标准,
此次修订后的版本更新如下:
●
去除了一些非典型的逻辑电路(诸如RTL、 DTL、
射级耦合逻辑电路)。
●
在每章的最后加上了有关网络搜索主题的内容来指导学生在互联网上进行相关内容的扩展阅读。
●
每章最后对大约三分之一的问题进行了复习。
●
包含所有新的习题的解答手册。
●
有关卡诺图化简的内容更加合理。
●
增加了基本的CMOS技术在逻辑门上的应用。
●
附录中包含了有关半导体技术的介绍。
设计方法论
这个版本对于如何在数字系统中设计状态机来控制数据通道提供了一种比较系统的方法论。
此外,这些材料的框架用来解决控制器如何处理数据通道发出的信号等实际问题,例如系统反馈(响应)的问题。
因此, 我们提供了设计复杂交互数字系统的基本方法。这种方法论在人工以及基于硬件描述语言的设计中都可以得到运用。
合适的HDL内容
仅仅局限于介绍硬件描述语言的语法是远远不够的,书中只在需要的地方提供了这些Verilog语法元素,
而且正确的语法并不意味着这个电路模块就能够正常实现它的功能或者顺利组合成一个物理硬件。我们希望学生能够通过生产实践,确认手工模型能够有效地被综合成物理硬件电路。如果不能做到这点会导致软件竞争问题的出现,
并会造成模拟的结果与综合成物理硬件后的结果不符。同样,
设计时不进行生产实践也许能够得到正确的模拟结果,
但因为设计者的方法不同,
从而在设计过程中会不经意地造成硬件闭锁。而工业实践会给我们提出无竞争和无闭锁的设计要求,
所以对学生来说,
在生产过程中学习和运用硬件描述语言模型而不是仅仅依赖于综合工具是十分重要的。验证
在生产过程中的一个重要步骤是检验电路是否能够正常工作。现在的数字电路教学过程中并没有足够地重视验证这个环节,
而是仅仅关注设计本身,验证通常被看成是第二位的。这种观点会带来一种这个电路将会很好地工作的不成熟的想法。同样,生产过程中一般是通过分析模型是否可读、
可携带、 可回收来对基于硬件描述语言的模型进行检验的。通过对硬件描述语言模型进行检验,
可获取可观的收益。我们将对模型的建立和参数的使用进行讨论。同时本书还将提供测试题和所有练习的解决方案,
用来(1)检验电路是否正常工作; (2)强调测试中的重点内容; (3)通过自测题介绍重要的概念, 例如测试平台的自检。我们提倡并推荐通过测试方案的研究去指导测试平台的研制,
我们会在教材中图文并茂地介绍和推荐一些测试的方法,
并且在教材结尾的习题答案中扩展它们。
硬件描述语言课程的内容
我们确保教材中所有的范例和所有的解决方案符合设计数字化硬件的工业生产标准。像上一版一样,硬件描述语言内容被放置在一个单独的部分,
这样可以按照教学安排进行删减,这个版本并没有减少关于手工设计的论述,也没有制定讲课的顺序。书中的论述适合同时学习数字电路和硬件描述语言的初学者。本书旨在帮助学生自主设计一个项目并且在以后的计算机体系结构课程中取得成功。
教师资源相关的教师资源申请方式请参见书后的教学支持说明。
教师可以在 www.pearsonhighered.com/mano处下载课程资源, 包括: ● 所有的硬件描述语言示例的源代码和测试题。
●
教材中所有的数据和表格。
●
所有在手工解决方案中的硬件描述语言模型源代码。
●
可下载的用于课堂教学的图形化解决方案。
HDL 模拟器
本书推荐使用两个由SynaptiCAD(www.syncad.com)提供的模拟器。第一个是VeriLogger Pro, 这是一个传统的能模拟硬件描述语言示例和检验硬件描述语言问题的模拟器。此模拟器符合IEEE1995标准,对旧的模型十分有用。另一个是一种交互的模拟器Verilogger Extreme,
符合IEEE1995和IEEE2001标准。这个模拟器允许设计者在完成对模型的模拟之前对自己的设计方案进行模拟和分析。这种技术对学生十分有用,
它可以快速输入布尔逻辑和D触发器以及锁存器的表达式来校验等价性和测试触发器及锁存器。
各章摘要
下面简要介绍各章的要点。
第1章:
介绍了用于表达数字系统信息的各种二进计数制,
解释并说明了二进制数和二进制代码,
给出了带符号的二进制数及BCD十进制数的加减法举例。
第2章:
介绍了布尔代数的基本定理,
描述了布尔表达式与其对应的逻辑图之间的相互关系,
研究了两个逻辑变量的所有可能的逻辑运算,
在此基础上给出了数字系统设计中最有用的逻辑门。本章还介绍了基本的CMOS逻辑门。
第3章:
介绍了布尔表达式的卡诺图化简法,
这种方法也可以用于简化由与或门、
与非门和 或非门构成的数字电路; 讨论了其他所有可能的两级门电路及其实现方法, 给出了Verilog
HDL用于简单门级建模的例子。
第4章:
概述了组合电路