数字设计:原理与实践(原书第5版)
作者 : [美]约翰·F.韦克利(John F. Wakerly)
译者 : 林生 葛红 金京林 等译
出版日期 : 2019-07-01
ISBN : 978-7-111-62941-2
定价 : 139.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 668
开本 : 16
原书名 : Digital Design: Principles and Practices, Fifth Edition
原出版社: Pearson Education Asia
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书作者以其严谨的学术态度和实际经验讲述了插件板级和VLSI系统中的数字设计基本原理和实践需求。本书重点强调CMOS逻辑系列并介绍数字电路、最新的GAL、ROM和RAM系统级设计,并提供大量的设计实例,以及具有指导意义的练习题。

图书特色

图书前言

本书写给所有需要设计和构建真正的数字电路的读者。为达到这个目的,读者必须掌握基本原理,同时还必须理解它们在真实世界中的工作情况。本书正是基于这种理念写作而成的,因此,确定了“原理与实践”这个主题。
在过去的30年里,随着集成电路的速度和集成度的快速提高,数字设计实践经历了非常大的转变。过去,数字设计者用成千上万的门电路和触发器来构建系统,专业课程的重点就是最小化和有效地利用芯片及板级资源。
现今,一个芯片可以包含几千万个晶体管并且可以利用编程的方式构建片上系统。过去要实现这样的系统,需要用几百个包含了上百万的单个门电路和触发器的分立芯片来构造。当前成功的产品开发更多地受限于设计团队正确、完整地定义产品详细功能的能力,而不是受限于团队将需要的所有电路集成到一个电路板或芯片上的能力。因此,现代专业课程的重点是设计方法论和软件工具,包括硬件描述语言(HDL)。设计团队利用HDL可以完成非常大型的分层数字系统的设计。
一方面,利用HDL,我们看到典型设计的抽象层次移向单个门电路和触发器之上的更高层次。而与此同时,芯片级和电路板级的数字电路的速度和集成度的提高,又迫使许多数字设计者在较低的电子电路级更具竞争力。
大多数称职且非常成功的数字设计者,都能够熟练地使用或者至少是精通上述两个抽象层次。本书提供了高级(HDL)、低级(电子电路)以及完整的“各种中间级”(门电路、触发器和一些较高级的数字设计构件)层次的基础知识。
目标读者
本书可以作为电气工程、计算机工程或计算机科学专业数字逻辑设计课程的入门与进阶教材。那些不熟悉基本电子学概念(electronics concept)或者对数字器件的电气特性不感兴趣的计算机科学专业的学生可以跳过第14章而掌握第1章的基础知识即可,书中的其他部分已尽可能地独立于这部分内容。另一方面,具有基本电子学基础的读者,则可通过阅读第14章的内容来快速掌握数字电子学知识。此外,那些不具备电子学基础的学生,可以通过阅读作者网站(www.ddpp.com)上的电子教材(20页)而获得基础知识。
虽然本书是入门级的,但比起一般的普通入门教材,它却包含更多的内容。我希望典型的课程采用书中不超过三分之二的内容,但是,每门课程所用到的是不同的三分之二。因此,我让各位教师或读者按照自己的需要去决定阅读内容。尽管如此,为了有助于选择,我已经在一些可选章节(optional section)的标题上打了星号。一般情况下,可以跳过这些章节而不影响后续必选章节的连贯性。而且,“方框注释”(boxed comment)中的材料通常都是可选的。
毫无疑问,有些人把本书当作进阶教程(second course)和实验教程(laboratory course)来使用。高年级学生可以跳过基础部分而直接进到感兴趣的部分。一旦具备了基础知识,一些最重要且有趣的内容(fun stuff)便是在许多章节和数字设计例子中采用Verilog。
并不像看起来那么长
有几个书评家抱怨本书之前的版本都太长了,目前的这个版本要稍短一些,但还是请记住:
你并不需要阅读所有的内容。对大多数读者来说可选读的内容都标记有“*”。
一些“方框注释”中的内容通常也是可选读的。
我遵照“参考质量”标准撰写本书,内容覆盖广泛,因此读者可以在后续课程中参考本书,或在以后的工作中,使用本书来更新你的知识甚或学习新知识。
各章描述
第1章给出了一些基本的定义和一些重要话题的预览,以及数字电路的内容,使读者在不深入阅读第14章的情况下,也可以完整阅读书中其他的内容。
第2章介绍二进制数制和编码。已经从软件课程中熟悉了二进制数制的读者,仍需要阅读2.10~2.13节,以便理解硬件是如何使用二进制编码的。高年级的学生可以阅读2.14节和2.15节,其中对检错码进行了很好的介绍。每个读者都应该阅读2.16.1节的内容,因为在许多现代系统中都要用到它。
第3章讲述组合逻辑设计原理,包括开关代数,以及组合电路分析、综合与最小化。
第4章从文档标准开始介绍各种数字设计实践,文档标准是设计者需要掌握的最重要的内容。然后介绍时序的概念,特别是组合型电路的时序,最后是关于HDL、设计流程和工具的讨论。
第5章介绍Verilog硬件描述语言。前几节需要通读,但部分读者可能希望跳过其余几节而只在需要时再来阅读,因为新的Verilog结构在后续章节用到时才会讲述(主要是第6章)。
第6章描述了两个“通用”组合逻辑元件ROM和PLD。然后讲述两个最常用的功能构件—译码器和多路复用器,其中每一个都会给出门级和基于Verilog的设计。读者可以从这里直接跳到第9章的状态机,然后再回到第7章和第8章。
第7章继续讨论门级和用Verilog实现的组合型构件,包括三态器件、优先编码器、异或和奇偶函数以及比较器,然后用一个非平凡“随机逻辑”函数的Verilog设计实例引出结论。
第8章讲述实现算术功能的组合型电路,包括加法和减法、移位、乘法和除法。
第9章介绍使用D触发器的传统状态机,包括采用状态表、状态图、ASM图和Verilog的状态机的分析和综合。
第10章介绍其他时序逻辑元件,包括锁存器、更多的边沿触发器件及其Verilog的行为模型。这一章还描述了用典型的FPGA实现的时序逻辑元件,并且为感兴趣的读者准备了关于时序PLD和反馈时序电路的内容。
第11章重点讲述两个最常用的时序电路构件—计数器和移位寄存器,以及它们的应用。还提供了门级和基于Verilog的例子。
第12章讲述了采用Verilog对状态机建模的更详细的内容,以及更多相关的例子。
第13章讨论时序电路设计的实践,包括同步系统结构、时钟和时钟偏移、异步输入和亚稳定性,以及一个用Verilog实现的双时钟同步的详细例子。
第14章描述数字电路的运算,重点在于逻辑器件的外部电气特性。起点是基础的电子学背景,包括电压、电流和欧姆定律。对如何使真实电路运作起来不感兴趣的读者或者有特权让别人来做这些苦活的人可以忽略这一章。
第15章全部都是关于存储器器件和FPGA的内容。存储器内容包括只读存储器和静态、动态读/写存储器的内部电路和功能行为特性。最后一节更详细地介绍Xilinx 7系列FPGA结构。
大多数章都包含参考资料、训练题和练习题。训练题通常是简答题或是启发性的问题,可以直接根据文本材料给出答案,而练习题通常需要更多的思考。第14章的训练题尤其广泛,是为使非电子工程师能较容易地理解这一章内容而专门设计的。
与第4版的不同
对于用过本书之前版本的读者和教师来讲,除了普通的更新之外,第5版还有几个关键的不同:
这个版本只涉及Verilog,没有VHDL。在不同的语言之间跳转只会使人分神。另外,Verilog及其后继者SystemVerilog是目前非官方背景中所选择的HDL。参看Steve Golson和Leah Clark撰写的论文《Language Wars in the 21st Century: Verilog versus VHDL-Revisited》(2016 Synopsys Users Group Conference),如果你不想阅读整篇论文,可以直接跳到最后一节。
这个版本有更多HDL的例子,更加强调设计流程和测试平台,包括纯粹的激励和自检信号。
为使本书更加便于非电子工程类的计算机工程专业的学生阅读,关于CMOS电路的详细内容移到了第14章,而在第1章中加入了最少量的电子学知识。这样,如果需要的话,就可以跳过整个关于CMOS的章节。
TTL、SSI、MSI、74系列逻辑、PLD以及CPLD都已经删去了。
卡诺图化简的内容最终被简化了。
本书在第5章中还有一个Verilog的综合性教程和参考资料,Verilog的概念散布在第6章和第7章的“恰逢其时”注释框中,这样一目了然,重点突出。
更多地强调了基于FPGA的设计、FPGA结构特性、综合结果以及权衡。
原来关于组合逻辑元件的一章被分成了三章,以便按照需要直接从一开始就进入状态机的内容。这样,也可以在最后讲述更多算术运算电路的内容。
用了整整一章来讲述用Verilog实现状态机,包括许多例子。
关于同步设计方法论的那一章目前包含一个详细的控制单元加数据通路的例子,以及一个关于采用异步FIFO的交叉时钟域的综合例子。
数字设计软件工具
本书中所有的Verilog例子都是采用Xilinx Vivado套件来编译和测试,这个套件包括以Xilinx 7系列FPGA为目标器件的Verilog、SystemVerilog以及VHDL设计的工具。然而,这些例子一般并不特别要求采用Vivado来编译,甚至不要求目标器件是Xilinx或任何其他FPGA。而且,本书也不包含关于Vivado的教程,Xilinx有丰富的在线资源可供参考。因此,读者可以将本书与任何Verilog工具一起使用,包括下面所描述的工具。
可以从Xilinx下载免费的Vivado “Webpack”版本,这个版本支持较小型的7系列FPGA,带有Zynq的SoC型FPGA以及评估板。这个下载容量很大,超过10GB,但这是一个综合工具套件。支持前7系列FPGA以及较小型Zynq FPGA的Xilinx ISE(Integrated Software Environment)也包含在免费的Webpack版本中。注意,legacy模式支持ISE,而自2013年后,ISE就再也没有更新过。要获取任何一种套件,登录www.xilinx.com网站搜索“Webpack download”即可。
如果你正在使用Altera(现在属于Intel)器件,那么公司还会提供一个好的“大学计划”和工具:搜索“Altera university support”,然后导航到“For Student”网页。这些免费的工具包括其以入门级FPGA和CPLD为目标器件的Verilog、SystemVerilog和VHDL设计的QuartusTM Prime Lite版本,以及一个配套的用于模拟的符合ModelSim工业标准的软件初始版本。
Altera和Xilinx都提供廉价的评估板,适用于直接或通过第三方等效实现基于FPGA的学生项目。这样的评估板可能包括开关和LED、模拟/数字转换器以及运动传感器,甚至还包括USB和VGA接口,通过厂家的大学计划,总花费可以少于100美元。
长期支持大学计划的专业数字设计工具还有Aldec公司的产品(www.aldec.com)。该公司提供流行的Active-HDL的学生版本,用于设计入门和模拟,除了通常的HDL工具,还包括方框图和状态机的图形编辑器,而且,其模拟器还包括一个波形编辑器,用于创建交互激励信号。为利用其特性,Active-HDL模拟器可以作为Vivado的一个插件来安装,以取代Vivado模拟器。
上述所有的工具以及大多数其他工程设计工具都是在Windows PC上运行的,所以,如果你是一个Mac迷,就必须习惯使用Windows PC!你可以在Mac的Windows仿真环境(比如VMware仿真环境)中运行,但是成功与否取决于具体的软件工具。使一个工具在你的PC上“快速运行”的最重要的条件就是配置一个固态硬盘驱动器而不是旋转硬盘驱动器。
即使并未打算完成你的原创设计,你也可以利用上述工具中的任何一个来测试和改进书中的例子,因为书中所有的源代码都在线提供,正如下面将要讨论的。
工程资源和www.ddpp.com
本书丰富的支持材料都可以从Pearson的网站“Engineering Resource”上获得。本书出版的时候,Pearson的相关链接是media.pearsoncmg.com/bc/abp/engineering-resoures。但是,你知道登录一个长链接的感受,直接登录作者的网站www.ddpp.com更为方便,这个网站中包含一个到Pearson网站的链接。而且,作者的网站还将包含最新的勘误表和其他“匆匆忙忙”做出的增改资料,以及可能某天会有的博客。
Pearson网站上的资源包括本书中所有Verilog模块的可下载源代码文件、选定的训练题和练习题的答案以及补充材料,例如,针对非电子工程人员提供的20页的电子学基础概念介绍。
敬告教师
Pearson维护着一个专供教师使用的附加材料的综合集。登录上述工程资源网站,导航到这本书,然后点击“Instructor Resources”链接。这个网站要求注册,可能需要花费几天时间等待获得访问权限。所提供的资源包括附加的训练题和练习题的解答、附加的源代码、更多的练习题以及可用于授课的艺术线条和图表。之前版本的材料也会根据要求发布在网站上,以协助教师实现从旧版技术到新版课程的转换。
其他的教师资源还包括作者的网站(www.ddpp.com),以及Xilinx、ALtera和Aldec的大学计划,登录www.ddpp.com可以找到这些资料的最新链接。制造商的网站提供了各种各样的产品资料、课程资料以及可以用于数字设计实验课程的打折的芯片和电路板,还会提供一些“功能全面”的工具包,你可以最大折扣获得,并用于后续课程和研究。
致谢
由于许多人的帮助才使得本书顺利出版。大多数人都对前四版的出版给予了帮助,在那里我已经表示了感谢。关于本书“原理”的方面,我还是要特别感谢我的老师、研究生导师以及我的朋友Ed McCluskey。关于本书“实践”的方面,我从我的朋友Jesse Jenkins、Xilinx的职员Parimal Patel和Trevor Bauer,以及同事McCluskey的导师—斯坦福大学的Subhasish Mitra教授那里获得了许多好的意见。
自本书第4版出版以来,我从读者那里收到了许多有益的意见。除了建议和其他促使本书改进的意见外,读者还指出了大量印刷上和技术上的错误,所有这些都在第5版中一并改正。
对这个版本最具实质性影响和贡献的是匿名(对我而言)的学术评审们,他们都是使用本书第4版或其他同类书籍作为教材的数字设计教师。我尽量接受他们的建议,这通常意味着要删去一些像我这样有经验的设计者(或者说是老前辈)过于固守的一些材料,而增加大量与基于HDL设计流程、测试平台和综合等相关的现代概念。
感谢Pearson的责任编辑Julie Bai在过去几年为这个项目所做的精心细致的工作。特别感谢她老板的老板Marcia Horton,她二三十年来一直关注我的项目,还要感谢Scott Disanno和Michelle Bayman,他们指导了这个版本的生产和发行过程。
还要感谢艺术家Peter Crowell,我在eBay上发现了他的画作,当时,编辑Julie Bai建议我们基于Piet Mondrian的作品设计一个封面,对于他的某些作品,她说“看起来几乎就像是逻辑电路的抽象”。Crowell的“Tuesday Matinee”完美地契合了我们的要求。他的画作“铺设”在封面上和每章开篇的边栏,与逻辑模块及其连接铺设在一片FPGA上非常相像。我们的封面设计师Marta Samsel采纳了我这个工程主义的观点,并将二者匹配得非常漂亮。
最后,我的妻子Joanne Jacobs非常支持这个项目,让我在“楼上”安静地工作,而她在“楼下”处理她的教育博客。她甚至不会抱怨,到了二月份,圣诞树还立在那里。

上架指导

数字设计

封底文字

本书是一部经过多年教学和工程实践锤炼的经典教科书,是作者牢固的理论功底、严谨的学术风范与丰富的实践背景的完美结合。
本书从原理和实践两个方面全面讲述了数字设计的概念、理论、方法以及最新的技术和实践。本书还提供了包括高级(HDL)、低级(电子电路)以及完整的“各种中间级”(门电路、触发器和一些较高级的数字设计构件)层次的数字设计的基础知识,详细讲述了插件板级和以FPGA为目标器件的基于Verilog的数字设计的基本原理和实践。另外,本版重新梳理和调整内容编排,并适当加入新的练习,使整书的可读性和学习效果大幅提升,本书可作为计算机、电子、电气及控制等专业学生的教材,也适合各领域的初学者和具备一定专业知识的专业人员用来掌握数字设计理论和实践。

本书特色
内容全面,适用面广。本书囊括数字设计从基础理论到最新技术的几乎所有相关知识,适合各类对数字设计感兴趣的人士使用。
逻辑性强,条理清晰。每章开始都简单介绍本章内容,增强了读者阅读的目的性和主动性。
循序渐进,过渡自然。讲述过程引人入胜,极大地提升了读者的阅读兴趣。
内容安排主次分明。选读内容的标题前标有星号以与必读内容区分开,方便读者根据自身情况进行选择性阅读。
整书编排结构灵活。常常采用方框注释的方式提醒读者注意重点概念和方法,并展开生动有趣的讨论,使其更易理解和掌握。
更加注重理论与实践相结合。理论覆盖全面,实践部分突出目前流行的基于最新Verilog设计方法和技术的讲解,使读者不仅掌握完成数字设计所需的理论知识,还具备构建实际数字系统的能力。

作者简介
约翰·F. 韦克利(John F. Wakerly) 于斯坦福大学获得电子工程博士学位。他目前是思科系统公司广域网业务部主管工程项目的副总裁,还是斯坦福大学的兼职教授。他著有数字设计、微电脑体系结构、计算机可靠性等方面的50多部著作,并在电信与网络领域拥有13项专利。

作者简介

[美]约翰·F.韦克利(John F. Wakerly):约翰·F. 韦克利(John F. Wakerly) 于斯坦福大学获得电子工程博士学位。他目前是思科系统公司广域网业务部主管工程项目的副总裁,还是斯坦福大学的兼职教授。他著有数字设计、微电脑体系结构、计算机可靠性等方面的50多部著作,并在电信与网络领域拥有13项专利。

译者序

自2007年原书的第4版修订出版至今已过去十多年了,随着集成电路的速度和集成度的快速提高,数字设计实践经历了非常大的转变。作为一本既注重原理性知识,又注重实践应用的教科书,不仅要清楚地讲解数字系统中的基本概念和方法,还要跟随相关技术的发展变化,将数字设计的流行技术和工具介绍给读者。本书保持了原理和实践两方面并重的特质,并对整体内容和编排格式做出了修订和调整,使得本书的可读性和实用性有了全面提升。
本次改版仍然保留了原书一贯的优秀特性:结构上,逻辑关系明确、条理层次清楚;内容上,全面、详尽;讲解上,循序渐进、深入浅出。用严谨的描述、生动的实例、有趣的注释、发人深省的讨论和丰富的习题,使抽象的概念、晦涩的方法和复杂的技术变得易于理解和掌握。
与第4版相比,第5版的主要变化在于:全书内容从9章扩展到了15章,并对章节的编排顺序进行了调整。一方面将原来篇幅过多的章节拆分为两个或多个章节,以提高其可读性;另一方面增加了许多新概念和新技术,特别是增加了一些实例的详细讲解,使读者进一步提高硬件编程能力和设计实践能力。另外,全书利用方框注释将扩展性的内容和设计实例中深入细致的讲解与正文剥离开来,形成了多方位、多层次的内容展现,使读者能够根据自身需求,有选择地阅读本书,大大提高了本书的使用效率。同时,本书缩减了部分目前已经较少使用的内容,充分体现了本书“与时俱进”的特点。
本书不仅适合作为计算机、电子、电气及控制等专业学生的教材,而且对于打算自学这方面内容的读者和技术人员,也是一本不可多得的好书。
本书的翻译工作是在第4版的基础上进行的,征得原来所有译者的同意,与上版内容相同的部分仍然引用原来的译文,只对修改和变动的部分进行了翻译和调整。因此,衷心感谢原来的所有译者。本次改版的翻译工作由华南师范大学计算机学院的葛红、吴继明和谭琦共同完成。特别感谢吴继明和谭琦,因未参与之前的翻译工作,所以对于二位老师来讲,此次翻译是一个艰苦而耗时的过程。
由于时间和水平有限,书中难免存在错误,敬请读者指正。

葛红
2019年4月

图书目录

出版者的话
译者序
前言
第1章 引言 1
1.1 关于数字设计 1
1.2 模拟与数字 2
1.3 模拟信号 5
1.4 数字逻辑信号 5
1.5 逻辑电路与门电路 6
1.6 数字设计的软件技术 9
1.7 集成电路 11
1.8 逻辑族和CMOS 13
1.9 CMOS逻辑电路 13
1.10 可编程器件 17
1.11 专用集成电路 19
1.12 印制电路板 19
1.13 数字设计层次 20
1.14 成本最小化 22
1.15 继续学习 23
训练题 23
第2章 数制和编码 24
2.1 按位计数制 24
2.2 二进制、八进制和十六进制 25
2.3 二–十进制转换 27
2.4 二进制数的加法和减法 29
2.5 负数的表示 31
2.5.1 原码表示法 31
2.5.2 补码数制 31
2.5.3 二进制补码表示法 32
*2.5.4 二进制反码表示法 33
*2.5.5 余码表示法 33
2.6 二进制补码的加法和减法 33
2.6.1 加法规则 33
2.6.2 图示法 34
2.6.3 溢出 35
2.6.4 减法规则 35
2.6.5 二进制补码与无符号二进制数 36
*2.7 二进制反码的加法和减法 37
*2.8 二进制乘法 38
*2.9 二进制除法 39
*2.10 十进制数的二进制编码 40
2.11 格雷码 42
*2.12 字符编码 43
2.13 动作、条件和状态的编码 45
*2.14 n维体与距离 46
*2.15 检错码和纠错码 47
2.15.1 检错码 48
2.15.2 纠错码与多重检错码 49
2.15.3 汉明码 51
2.15.4 循环冗余校验码 53
2.15.5 二维码 53
2.15.6 校验和码 55
2.15.7 n中取m码 55
2.16 用于串行数据传输与存储的编码 55
2.16.1 并行/串行数据 55
*2.16.2 串行线路编码 56
参考资料 58
训练题 59
练习题 61
第3章 开关代数和组合逻辑 64
3.1 开关代数 65
3.1.1 公理 66
3.1.2 单变量定理 67
3.1.3 二变量定理和三变量定理 68
3.1.4 n变量定理 69
3.1.5 对偶性 71
3.1.6 逻辑函数的标准表示法 72
3.2 组合电路分析 74
3.3 组合电路的综合 79
3.3.1 电路描述与设计 80
3.3.2 电路处理 82
3.3.3 组合电路最小化 85
*3.3.4 卡诺图 86
*3.4 时序冒险 88
3.4.1 静态冒险 88
3.4.2 利用卡诺图发现静态冒险 89
3.4.3 动态冒险 91
3.4.4 设计无冒险电路 91
参考资料 92
训练题 93
练习题 94
第4章 数字设计实践 97
4.1 文档标准 97
4.1.1 方框图 98
4.1.2 门的符号 100
4.1.3 信号名和有效电平 101
4.1.4 引脚的有效电平 102
4.1.5 常量逻辑信号 103
*4.1.6 “圈到圈”逻辑设计 104
4.1.7 HDL模型中的信号命名 106
4.1.8 绘制布局图 108
4.1.9 总线 110
4.1.10 附带的图示信息 111
4.2 电路时序 112
4.2.1 时序图 112
4.2.2 传输延迟 114
4.2.3 时序说明 115
*4.2.4 采样时序说明 116
4.2.5 时序分析工具 119
4.3 基于HDL的数字设计 120
4.3.1 HDL的历史 120
4.3.2 为什么用HDL 121
4.3.3 HDL的EDA工具组 121
4.3.4 基于HDL的设计流程 123
参考资料 126
训练题 126
练习题 128
第5章 Verilog硬件描述语言 129
5.1 Verilog模型和模块 130
5.2 逻辑系统、网格、变量和常量 134
5.3 向量和操作符 137
5.4 数组 140
5.5 逻辑操作符和表达式 142
5.6 编译器命令 143
5.7 结构化模型 144
5.8 数据流模型 148
5.9 行为化模型(过程代码) 149
5.9.1 always语句与程序块 149
5.9.2 过程语句 151
5.9.3 推理出的锁存器 151
5.9.4 赋值语句 151
5.9.5 begin-end程序块 153
5.9.6 if和if-else语句 154
5.9.7 case语句 155
5.9.8 循环语句 158
5.10 函数和任务 160
5.11 时间维度 163
5.12 模拟 164
5.13 测试平台 165
5.14 时序逻辑设计的Verilog特性 169
5.15 综合 169
参考资料 170
训练题 171
练习题 171
第6章 基本组合逻辑元件 173
6.1 只读存储器 175
6.1.1 ROM和真值表 175
6.1.2 用ROM实现任意组合逻辑函数 176
6.1.3 FPGA查询表 178
*6.2 组合型PLD 179
6.2.1 可编程逻辑阵列 179
6.2.2 可编程阵列逻辑器件 181
6.3 译码和选择 183
*6.3.1 一种更加数学化的译码器定义 184
6.3.2 二进制译码器 185
6.3.3 更大型的译码器 188
6.3.4 用Verilog实现的译码器 190
6.3.5 定制的译码器 200
6.3.6 七段译码器 204
6.3.7 二进制编码器 205
6.4 多路复用器 206
6.4.1 门级多路复用器电路 208
6.4.2 扩展多路复用器 212
6.4.3 多路复用器、多路分配器和总线 212
6.4.4 用Verilog实现多路复用器 214
参考资料 217
训练题 218
练习题 219
第7章 更多的组合构件 224
7.1 三态器件 224
7.1.1 三态缓冲器 224
*7.1.2 标准MSI三态缓冲器 226
7.1.3 用Verilog实现三态输出 229
7.1.4 用FPGA实现三态输出 230
7.2 优先编码器 232
7.2.1 级联优先编码器 233
7.2.2 用Verilog实现优先编码器 234
7.3 异或门和奇偶校验功能 238
7.3.1 异或门和异或非门 238
7.3.2 奇偶校验电路 240
7.3.3 奇偶校验的应用 240
7.3.4 用Verilog实现异或门和奇偶校验电路 243
7.4 比较器 247
7.4.1 比较器结构 247
7.4.2 迭代电路 248
7.4.3 迭代比较器电路 249
7.4.4 数值比较器 250
7.4.5 用HDL实现比较器 253
7.4.6 用Verilog实现比较器 254
7.4.7 比较器测试平台 257
*7.4.8 比较比较器的性能 261
*7.5 用Verilog实现的随机逻辑示例 265
训练题 270
练习题 272
第8章 组合算术元件 278
8.1 加法和减法 278
8.1.1 半加器和全加器 278
8.1.2 串行进位加法器 279
8.1.3 减法器 280
8.1.4 先行进位加法器 281
8.1.5 组间串行进位加法器 283
8.1.6 组间先行进位 285
*8.1.7 MSI算术逻辑单元 287
8.1.8 用Verilog实现加法器 288
*8.1.9 并行前缀加法器 295
*8.1.10 FPGA CARRY4 元件 300
8.2 移位和旋转 302
8.2.1 桶形移位器 302
8.2.2 用Verilog实现桶形移位器 305
8.3 乘法 311
8.3.1 组合乘法器结构 311
*8.3.2 用Verilog实现乘法 314
*8.4 除法 319
8.4.1 基本无符号二进制除法算法 319
8.4.2 用Verilog实现除法 320
参考资料 324
训练题 325
练习题 325
第9章 状态机 329
9.1 状态机基础 329
9.2 状态机结构和分析 332
9.2.1 状态机结构 332
9.2.2 输出逻辑 333
9.2.3 状态机的时序 334
9.2.4 使用D触发器的状态机分析 335
9.3 用状态表设计状态机 341
9.3.1 状态表设计举例 342
*9.3.2 状态最小化 345
9.3.3 状态赋值 346
*9.3.4 采用D触发器的综合 350
9.3.5 超越状态表 353
*9.4 用状态图设计状态机 354
*9.5 用ASM图设计状态机 358
9.6 用Verilog设计状态机 362
参考资料 364
训练题 365
练习题 367
第10章 时序逻辑元件 372
10.1 双稳态元件 372
10.1.1 数字分析 372
10.1.2 模拟分析 372
10.1.3 亚稳态特性 374
10.2 锁存器和触发器 374
10.2.1 S-R锁存器 375
10.2.2 _S-_R锁存器 377
10.2.3 D锁存器 377
10.2.4 边沿触发D触发器 379
10.2.5 具有使能端的边沿触发D触发器 381
10.2.6 T触发器 381
10.3 用Verilog实现锁存器和触发器 382
10.3.1 实例化语句和库元件 382
10.3.2 行为化锁存器和触发器模型 386
10.3.3 更多关于用Verilog实现时钟的讨论 392
10.4 多位寄存器和锁存器 392
10.4.1 MSI寄存器和锁存器 393
10.4.2 用Verilog实现多位寄存器和锁存器 394
*10.5 各种各样的锁存器和双稳态器件的应用 395
10.5.1 开关消颤 395
10.5.2 总线保持器电路 396
*10.6 时序PLD 397
10.7 FPGA时序逻辑元件 398
*10.8 反馈时序电路 402
10.8.1 基本分析 402
10.8.2 分析具有多个反馈回路的电路 405
10.8.3 反馈时序电路设计 407
10.8.4 用Verilog实现反馈时序电路 408
参考资料 409
训练题 409
练习题 411
第11章 计数器和移位寄存器 416
11.1 计数器 416
11.1.1 行波计数器 417
11.1.2 同步计数器 417
11.1.3 一个通用的4位计数器电路 418
11.1.4 二进制计数器状态的译码 421
11.1.5 用Verilog实现计数器 422
11.2 移位寄存器 426
11.2.1 移位寄存器的结构 426
11.2.2 移位寄存器型计数器 429
11.2.3 环形计数器 429
*11.2.4 Johnson计数器 431
11.2.5 线性反馈移位寄存器型计数器 433
11.2.6 用Verilog实现移位寄存器 436
11.2.7 时序发生器举例 439
11.2.8 LFSR举例 445
*11.3 迭代电路与时序电路 447
参考资料 449
训练题 450
练习题 452
第12章 用Verilog实现状态机 457
12.1 Verilog状态机编码风格 457
12.1.1 基本的编码风格 457
12.1.2 一个Verilog状态机举例 458
12.1.3 组合的状态存储器和次态逻辑 460
12.1.4 复位输入 461
12.1.5 用Verilog实现Moore型流水线输出 462
12.1.6 不用状态表的直接Verilog编程 463
*12.1.7 状态机抽取 464
12.2 Verilog状态机测试平台 465
12.2.1 状态机测试平台构造方法 465
12.2.2 测试平台举例 466
12.2.3 为测试检查次态逻辑 470
12.2.4 总结 471
12.3 1计数器 472
12.4 组合锁 474
12.5 雷鸟车尾灯 477
12.6 重新设计交通灯控制器 480
12.7 猜谜游戏 484
*12.8 “无关”状态编码 487
12.9 状态机分解 489
12.10 三部曲游戏 494
参考资料 500
训练题 501
练习题 502
第13章 时序电路设计实践 508
13.1 时序电路文档实践 508
13.1.1 一般要求 508
13.1.2 逻辑符号 509
13.1.3 状态机描述 509
13.1.4 时序图和时序规格说明 510
13.2 同步设计方法论 514
13.2.1 同步系统结构 514
13.2.2 一个同步系统设计举例 516
13.3 同步设计的难点 521
13.3.1 时钟偏移 521
13.3.2 选通时钟 524
13.3.3 异步输入 527
13.4 同步器故障和亚稳定性 529
13.4.1 同步器故障 529
13.4.2 亚稳定性消解时间 530
13.4.3 可靠同步器设计 530
13.4.4 亚稳定的时序分析 531
13.4.5 更好的同步器 533
13.4.6 其他同步器设计 534
13.5 双时钟同步举例 536
参考资料 550
训练题 550
练习题 551
第14章 数字电路 554
14.1 CMOS逻辑电路 555
14.1.1 CMOS逻辑电平 555
14.1.2 MOS晶体管 556
14.1.3 基本的CMOS反相器电路 557
14.1.4 CMOS“与非”门和“或非”门 558
14.1.5 扇入 559
14.1.6 非反相门 560
14.1.7 CMOS“与或非”门和“或与非”门 561
14.2 CMOS电路的电气特性 563
14.2.1 概述 563
14.2.2 数据表和规格说明 564
14.3 CMOS静态电气特性 566
14.3.1 逻辑电平和噪声容限 566
14.3.2 带电阻性负载的电路特性 567
14.3.3 带非理想输入的电路特性 571
14.3.4 扇出 573
14.3.5 负载效应 574
14.3.6 未用的输入端 574
14.3.7 如何损坏CMOS器件 575
14.4 CMOS动态电气特性 575
14.4.1 转换时间 576
14.4.2 传输延迟 580
14.4.3 功率损耗 581
*14.4.4 电流尖峰与去耦电容器 582
*14.4.5 电感效应 583
*14.4.6 同时切换与地电平弹跳 584
14.5 其他CMOS输入和输出结构 586
14.5.1 传输门 586
14.5.2 施密特触发器输入 587
14.5.3 三态输出 588
*14.5.4 漏极开路输出 589
*14.5.5 驱动发光二极管和继电器 591
*14.5.6 多源总线 592
*14.5.7 线连逻辑 593
*14.5.8 上拉电阻 593
14.6 CMOS逻辑系列 596
14.6.1 HC和HCT 596
14.6.2 AHC和AHCT 597
*14.6.3 HC、HCT、AHC和AHCT的电气特性 597
*14.6.4 AC和ACT 600
*14.6.5 FCT和FCT-T 600
*14.7 低电压CMOS逻辑和接口 601
14.7.1 3.3V LVTTL和LVCMOS的逻辑电平 601
14.7.2 5V容许输入 602
14.7.3 5V容许输出 603
14.7.4 TTL/LVTTL接口小结 604
14.7.5 低于3.3 V的逻辑电平 604
14.8 差分信号 605
参考资料 605
训练题 606
练习题 609
第15章 ROM、RAM和FPGA 613
15.1 只读存储器 613
15.1.1 ROM的内部结构 614
15.1.2 二维译码 615
15.1.3 商用ROM类型 616
15.1.4 并行ROM接口 619
*15.1.5 并行ROM时序 620
15.1.6 与非闪存的字节串行接口 621
*15.1.7 与非存储器的时序和存取带宽 625
*15.1.8 与非存储器的存储管理 626
15.2 读/写存储器 627
15.3 静态RAM 628
15.3.1 静态RAM的输入和输出 628
15.3.2 静态RAM的内部结构 629
*15.3.3 静态RAM的时序 630
*15.3.4 标准异步SRAM 632
*15.3.5 同步SRAM 632
15.4 动态RAM 636
15.4.1 动态RAM的结构 636
15.4.2 SDRAM的时序 638
15.4.3 DDR SDRAM 641
15.5 现场可编程门阵列 641
15.5.1 Xilinx 7系列FPGA家族 642
15.5.2 CLB和其他逻辑资源 645
15.5.3 输入/输出块 647
15.5.4 可编程互连 649
参考资料 650
训练题 651
练习题 651

教学资源推荐
作者: (美)S.A. Reza Zekavat 著
作者: (美)Mark D.Birnbaum
作者: (美)Dick Blandford John Parr 著
作者: (美)Robert L. Boylestad 著
参考读物推荐