当前: 首页 - 图书专区 - 数字设计:原理与实践(原书第4版)
数字设计:原理与实践(原书第4版)


  在线购买
John F. Wakerly
7-111-20666-8
75.00
626
2007年04月24日
林生 葛红 金京林
计算机 > 计算机控制与仿真 > 数字系统设计
Prentice Hall
2812
简体中文
16开
Digital Design: Principles and Practices, Fourth Edition
教材
电子与电气工程丛书







本书是一部经过多年教学锤炼的经典教科书,是作者严谨的学术风范与丰富的实践背景的完美结合,具有独到的“功底”。
  本书讲述了插件板级和VLSI系统中的数字设计基本原理和实践需求,提供了最广泛的逻辑设计实践,并给出了大量实际应用。本版涵盖了所有流行的HDL(包括Verilog、ABEL和VHDL),而且HDL的介绍穿插在各章中,但以节或小节的形式单独出现,以便读者根据需要进行选择。另外,本版加进了大量新的练习题。

本书特点
  ● 逻辑性强,条理清晰。每章开始都简介本章内容,增强了读者阅读的目的性和主动性。
  ● 对抽象的概念和方法展开生动有趣的讨论,使其更加容易理解和掌握。
  ● 实用性很强。涉及的实用技术包括ABEL、VHDL和Verilog语言的使用,通过可编程逻辑器件来实现最终的设计等。
  ● 讲述过程循序渐进,过渡自然。

本书写给所有需要设计和构建真正的数字电路的读者。为达到这个目的,读者必须掌握基本原理,同时还必须理解它们在真实世界中的工作情况。本书正是在这种观念的基础上写作而成的,因此确定了“原理与实践”这个主题。
  在过去的30年里,随着集成电路的速度和集成度的快速提高,数字设计实践经历了非常大的转变。过去,数字设计者用成千甚至上万的门电路和触发器来构建系统,专业课程的重点就是最小化和有效地利用芯片及板级资源。
  今天,一个芯片可以包含几千万个晶体管并且可以利用编程的方式创建片上系统。过去要实现这样的系统,需要用几百个包含了上百万的单个门电路和触发器的分立芯片来构造。如今,成功的产品开发更多地受限于设计团队正确、完整地定义产品详细功能的能力,而不是受限于团队将需要的所有电路集成到一个电路板或芯片上的能力。因此,现代专业课程的重点是设计方法论和软件工具,包括硬件描述语言(HDL)。设计团队利用HDL可以完成非常大型的分层数字系统的设计。
  一方面,利用HDL,我们看到典型设计的抽象层次移向更高的、单个门电路和触发器之上的层次。但是与此同时,芯片级和电路板级的数字电路的速度和集成度的提高,迫使许多数字设计者在较低的电子电路级更具竞争力。
  大多数有价值的以及非常成功的数字设计者,都能够熟练地使用或者至少是精通上述两个抽象层次。本书提供了高级(HDL)、低级(电子电路)以及全面的“广泛的中间级”(门电路、触发器和一些较高级的数字设计构件)层次的基础知识。
  目标读者
  本书可以作为电气工程、计算机工程或计算机科学专业数字逻辑设计课程的入门教材。那些不熟悉基本电子学概念或者对数字器件的电气特性不感兴趣的计算机科学专业的学生,可以跳过第3章;书中的其他部分已尽可能地独立于这部分内容。另一方面,具有基本电子学基础的读者,则可通过阅读第3章的内容来快速掌握数字电子学知识。此外,那些不具备电子学基础的学生,可以通过阅读20页的电子教材(在DDPPonline的Elec节中)而获得基础知识。DDPPonline是这本书基于Web的辅助材料的缩写。
  虽然本书是入门级的,但比起一般的普通入门教材,它却包含更多的内容。在写作过程中,我发现有许多重要的东西要写进去,而这些东西又不适于斯坦福大学的一学期课程或400页课本。因此,凭我个人的实践经验,把我认为比较重要的所有东西都写进去,由教师或读者自己去决定哪些是最需要的和最重要的。但为了有助于判断,我已经在一些可选节的标题上打了星号。在一般情况下,可以跳过这些节而不影响连贯性。在DDPPonline上可以找到更多的可选材料。
  毫无疑问,有些人把本书当做高级教程和实验课本来使用。能力强的学生可以跳过基础部分而直接进入到所喜欢的那部分。本书中最重要和最精彩的部分,就是对硬件描述语言ABEL、VHDL和Verilog的讲解。你会发现,这些内容对提高硬件编程能力大有裨益。
  另外,本书也可作为数字设计者的自学参考书。这一部分读者可分为两类:
  ·新手—刚刚开始从事数字设计,并且在学校里学过很“理论的”逻辑设计课程。这类读者应该集中学习第3章、第5章和7.11~7.13节的一个HDL,以及第6、8、9章,为接触实际课题打基础,做准备。
  ·老手—有经验的数字设计者。这类读者可能并不需要本书中的“实践性”材料,但是第2、4、7章的原理部分却有助于读者梳理思维,并且讨论了哪些内容是重要的。第6章和第8章中的举例应该会让这部分读者洞察和欣赏到各种各样的设计方法。最后,第5~8章中对ABEL、VHDL以及Verilog语言的描述和举例,都是专门为这部分读者学习基于HDL设计的方法而组织的。
  给评论者和其他人的一些话
  过去几年里,几个为本书写过评论的计算机科学专业学生和其他一些人对本书前一个版本所涉及的内容和讲述方式提出了意见。对于讲述方式,我只能为我没能力做得更好而道歉。但是,所选择的内容都是我认为一个未来的数字设计者应该知道的内容。由于我也雇佣过很多数字设计者,所以内容方面应该没什么可抱怨的,除非你读本书的目的不是想找一份工作或保留某份工作。
  我并非故意回避计算机科学(CS)专业的学生或计算机科学本身。我喜欢CS,而且我本人也接受过很多CS专业教育,有很多CS方面的经验—我可以分析算法,了解编译器和操作系统的内部原理,可以用LISP等语言编写代码。但是今天,我从数字设计公司经理那里听到的最多抱怨,就是刚毕业的学生知道如何很好地写出Verilog或VHDL代码,但对于如何产生好的硬件结果却毫无认识,甚至根本不知道什么叫做“好”!
  数字设计不仅仅是编写HDL代码—至少目前还不是。一个芯片设计公司的经理告诉我,他向自称知道如何完成基于HDL的硬件设计的应聘者提出的第一个问题就是,“在一个16位的计数器中有多少个触发器?”这并非是一个很难的问题,可是不能够回答这个问题的应聘者的数目却会让你惊讶!
  因此,如果仅仅是为了满足一个CS或其他学位的需要而使用本书,那么我要先道歉,你也许应该选择更复杂的、更正式的、更枯燥的或充满术语的书,或者包含Frisbee语言的书。对前一版本真正有抱怨的都是来自于CS专业或其他非EE-CE的评论者。
  另一方面,如果你有一天会成为电路级到系统级的数字设计者,那么务必请你学习本书中所有非选学的内容,包括VHDL或Verilog。学习这些内容应该不困难,因为许多喜欢前一版本的评论者称本书是精确的、逻辑性强的、清晰的、易于理解的、深刻但非常直观的、实用的、完整的、非常好的、非常完美的、有趣的、过渡自然的、诙谐的。当然,我承认本书有点傻或有时(比如现在)有点老土。而且,顺便说一下,甚至有一个CS评论者也说,“我喜欢这本书。”
  并不像看起来那么长
  有少数评论者认为本书的前一版本太长。目前推出的新版本要稍微短一些,但是,如果包括DDPPonline上的材料的话,实际内容就更多了。(确实如此,前一版本的页数可以用10位二进制编码,而新版加上DDPPonline的页数则需要用11位二进制编码。)但是,请记住:
  ·并不需要阅读所有内容。标有星号的节和小节对于大多数读者而言是选读内容。
  ·不必学习所有的HDL。HDL部分是相互独立的,各节和各小节的HDL部分也都与其他内容独立。因此,可以忽略任何或全部HDL的内容。但是,我还是建议你学习VHDL或Verilog。
  ·书中加方框的内容通常是选读的。
  各章说明
  下面对本书9章的内容做一简短的说明。这可能会让你想起一般软件指南中所说的—“写给不喜欢阅读手册的人”。看过这些简要的说明之后,也许你就不必阅读本书的其他内容了。
  ·第1章给出一些基本定义、基础知识和内容安排上的打算。这章不是本书的重点。
  ·第2章介绍二进制数制和编码。已经从软件课程中熟悉了二进制数制的读者,仍需要阅读2.10~2.13节,以便理解硬件是如何使用二进制编码的。能力强的学生可阅读2.14节和2.15节,其中对检错码进行了很好的介绍。每个读者都应该阅读2.16.1节的内容,因为在许多现代系统中都要用到它。
  ·第3章描述数字电路操作所用到的各种逻辑器件,主要强调它们的外部电气特性。本章要求的起步知识是电子学基础,包括电压、电流和欧姆定律等知识。不熟悉这些概念的读者,可以参考DDPPonline上的Elec节。那些对实际电路如何工作不感兴趣或者自己不屑于干这种工作的读者,则可以忽略这一章。
  ·第4章讲述组合逻辑设计原理,包括开关代数、组合电路分析、综合与最小化。
  ·第5章先对基于HDL的设计进行了一般性的介绍,然后讲述了三种HDL—ABEL、VHDL和Verilog。读者只需要学习其中一种语言,一般选择你将来工作的数字设计实验室要使用的那种。
  ·第6章首先讨论数字系统文档标准,对于有志于设计的读者,可能这是你开始实践的最重要的实践性内容。然后,该章介绍可编程逻辑器件(PLD),重点是它们实现组合逻辑函数的能力。该章剩下的部分描述常用的组合逻辑函数和应用。对于每一个函数,都介绍标准的MSI构件、用PLD实现的ABEL程序以及基于VHDL和Verilog的设计。
  ·第7章讲述时序逻辑设计原理,首先介绍锁存器和触发器。该章的重点是时钟同步状态机的分析与设计。但是,本章也大胆地介绍了基本模式电路以及反馈时序电路的分析与设计。在本章后几节,为满足时序电路设计的需要,介绍了ABEL、VHDL和Verilog的特性和编码风格。
  ·第8章讲述同步时序电路的设计实践。本章重点放在常用的函数方面,并给出应用MSI构件、ABEL和PLD、VHDL以及Verilog的设计例子。8.8节、8.9节讨论在进行完全同步设计中不可避免的障碍,并阐述在异步环境中如何使时序同步这个重要问题。
  ·第9章介绍存储器件、CPLD和FPGA。存储器部分包括只读存储器、静态和动态读/写存储器,而且是从内部电路和功能特性的观点进行介绍的。最后两节介绍CPLD和FPGA的体系结构。
  大多数章末都含有参考资料、训练题和练习题。训练题都是些简短回答或启发性的问题,根据课文中的材料就能够直接回答出来;而练习题则可能要求多做一点思考。第3章训练题的涉及面特别广泛,是为了使非电子、电气类读者容易学习本教材而安排的。
  许多附加的材料,包括本书第3版中删除的内容,都可以在DDPPonline上找到。
  www.ddpp.com、OneKey和DDPPonline
  本书丰富的支持材料可以从网站www.ddpp.com上获得,其中包括免费的材料,例如一些习题的解答和最新的勘误;还有受保护的材料,例如补充章节和附加练习及解答。任何人都可以从本书的网站上获得免费材料。
  只有使用OneKey的注册用户才可以获得受保护的材料。OneKey是由Prentice Hall在www.prenhall.com/OneKey上专为教师和学生提供的新的在线资源。每本书均包含一个惟一的OneKey访问码。购买旧版的学生也可以单独购买访问码。
  在本书中,使用DDPPonline作为OneKey网站的别名,可以通过www.prenhall.com/OneKey访问这个网站。必须使用访问码在这个网站上注册,然后每次使用这个网站都必须登录。另外,还可以通过www.ddpp.com或www.DDPPonline.com上的专门链接来访问OneKey。
  DDPPonline包含下列学生资源:
  ナ超过300页的补充材料和设计举例,组织成20多节,每节从几页到30页。有些节还包含了附加的练习题。
  ナ如果教师订购了OneKey,还会得到附加的习题解答。教师可以选择要公布的习题解答。请注意,这里并没有给出每道题的答案,所以,如果教师没有给出某些习题的答案的话,请不要责怪他们。
  ナ本书以及补充章节中所有示例的C、ABEL、VHDL和Verilog程序的源文件。
在2005年秋季英文书出版之时,DDPPonline网站中包括下列补充章节(名称和标题):
  ABEL 各种各样的ABEL主题
  BiPLD 双极型PLD
  BJT 双极结型晶体管
  CAD 计算机辅助设计工具
  Cntr 计数器设计主题
  Dec 译码器设计主题
  DFT 可测试的设计
  Diode 二极管和二极管逻辑
  ECL 发射极耦合逻辑
  Elec Bruce M. Fleischer的电子电路评论
  Enc 编码器设计主题
  IEEE IEEE标准符号
  JKSM 利用J-K触发器的状态机的分析与综合
  Min 组合逻辑最小化的附加主题
  Mux 多路复用器设计主题
  Pin SSI、MSI、PLD以及ROM/RAM引脚
  Pmin 可编程组合逻辑最小化主题
  Rel 可靠性评估
  Sreg 移位寄存器设计主题
  TTL 关于TTL逻辑的附加主题
  XCabl 利用ABEL进行组合逻辑设计举例
  XCbb 利用MSI模块进行组合逻辑设计举例
  XCver 利用Verilog进行组合逻辑设计举例
  XCvhd 利用VHDL进行组合逻辑设计举例
  XPLD X系列PLD
  XSabl 利用ABEL进行时序逻辑设计举例
  XSbb 利用MSI模块进行时序逻辑设计举例
  XSver 利用Verilog进行时序逻辑设计举例
  XSvhd 利用VHDL进行时序逻辑设计举例
  Zo 发布平台和反应
  敬告教师
  在DDPPonline上有一些专供给任课教师用的辅助材料,但只有通过OneKey系统注册的教师才可以使用这部分内容。要注册或了解更多关于OneKey的内容,请访问www.prenhall. com/OneKey或联系Prentice Hall代理商。
  在这个专为教师设置的站点,包含了本书中的所有图表。可以利用这些文件直接制作演示幻灯片,或者选择合适的材料嵌入到你自己设计的其他演示材料中。
  这个网站上还包含部分习题解答,这些习题占书中习题的半数以上,约200页。利用OneKey的课程管理系统,可以选择其中一部分开放给在OneKey上注册了的学生。注意,有些解答(基本上是第3版的全部学生解答),无论你是否可访问OneKey,都可以在www.ddpp.com上找到。这个网址告诉你是哪些解答,另外,还包含从第3版到第4版的交叉引用。
  对教师来说,还有其他资源,包括Xilinx的大学计划(www.xilinx.com/ programs/univ)和Aldec的教育计划  (www.aldec.com/education/university)。Xilinx网站提供了大量的产品资料、课程资料以及用于数字设计实验课程的芯片和插件。Aldec网站提供了Aldec自己的软件包和第三方的兼容工具以及原型系统。
关于本书的市场信息和相关资源,以及最新的订购信息都可以在  www.prenhall.com /wakerlyinfo上找到。
  致谢
  由于许多人的帮助才使得本书顺利出版。大多数人都是在前三版中给予了帮助,在那里我已经表示了感谢。虽然第4版的准备过程是比较孤单地进行的,但也得到了思科系统公司的朋友Prem Jain和Mike Volpi的帮助,这使得我的工作更加顺利。他们以及思科公司削减了我所应承担的任务,把本来需要10个月的本书修订时间缩短到5个月之内。
  关于本书“原理”方面,我还是要特别感谢我的老师、研究生导师和朋友Ed McCluskey。关于“实践”方面,我发起的“数字设计师名人斋”的主要成员之一Dave Raaum对新的Verilog材料进行了审核并提出许多建议。
  自本书第3版出版以来,我从读者那里收到了许多有益的意见。除了提出许多建议和改进的意见外,一些读者还指出了许多印刷上和技术上的错误。在第4版中,这些错误都一并进行了改正。
  我十分感谢Prentice Hall的责任编辑Tom Robbins,他在过去的几年里为本书做了很多工作。他是在(基本)完成本书的一个项目后更换工作的第3或第4个编辑,这使我怀疑和我一起工作是否让人不可避免地崩溃或成功,或者二者兼而有之。特别感谢Tom的老板—Marcia Horton,她在Tom离开后接管了他的工作。如果你正在阅读这些内容的话,那么她所做的一项工作就是从火里救出了这一页!
  印刷编辑和校对Jennie Kaufman也做了精彩的工作,他确保了本书的一致性并发现了印刷问题,包括第2版和第3版中几处其他人(包括我自己)都没有发现的问题。还要感谢产品编辑Scott Disanno,承蒙他在我与出版社之间进行了很顺利的沟通,并且在项目的最后阶段给予我很大的帮助。
  感谢艺术家Ken Bakeman,我几年前用Google搜索“wakerly”时就发现了他的作品。他最初的全电子“画作”出现在本书的封底,后来封面也采用了这个作品。这种圆形图案据说是2001年6月出现在英格兰北安普敦郡的Barrowden、靠近Wakerly Woods的庄稼地里的怪圈。现在,“Wakerly Woods”常常被错拼成“Wakerley Woods”,但我没什么可抱怨的。我过去居住在Waverley街,人们也总是会混淆这两个拼写。无论如何,非常感谢Ken提供他的作品作为本版的封面。
  在前几版中,此时我会感谢我的妻子Kate,但我非常难过地告诉你,经过7个写书项目和近34年的婚姻生活,在与乳腺癌长期搏斗之后,Kate于2004年初去世了。因此,我提到在为本版书做准备时非常孤独,这一点也不夸张。然而,对于我、我的孩子、我们的家庭以及朋友而言,Kate永远在我们的心里。
  在本书出版之前,最后的感谢送给我的新老朋友和助理作者—未婚妻Joanne Jacobs,她在本书的准备过程中给予我极大的支持和鼓励。

  John F. Wakerly
  于伊利诺伊州,Oakbrook Terrace
译者序
译者简介
前言
第1章  引言 1
1.1  关于数字设计 1
1.2  模拟与数字 2
1.3  数字器件 4
1.4  数字设计的电子技术 5
1.5  数字设计的软件技术 6
1.6  集成电路 8
1.7  可编程逻辑器件 10
1.8  专用集成电路 11
1.9  印制电路板 12
1.10  数字设计层次 12
1.11  游戏名字 15
1.12  继续学习 15
训练题 16
第2章  数制和编码 17
2.1  按位计数制 17
2.2  八进制和十六进制 18
2.3  常用按位计数制的转换 20
2.4  非十进制数的加法和减法 21
2.5  负数的表示 23
2.5.1  符号-数值表示法 23
2.5.2  补码数制 24
2.5.3  基数补码表示法 24
2.5.4  二进制补码表示法 25
*2.5.5  基数减1补码表示法 26
*2.5.6  二进制反码表示法 26
*2.5.7  余码表示法 27
2.6  二进制补码的加法和减法 27
2.6.1  加法规则 27
2.6.2  图示法 28
2.6.3  溢出 28
2.6.4  减法规则 29
2.6.5  二进制补码与无符号二进制数 29
*2.7  二进制反码加法和减法 30
*2.8  二进制乘法 31
*2.9  二进制除法 32
2.10  十进制数的二进制编码 33
2.11  格雷码 35
*2.12  字符编码 36
2.13  动作、条件和状态的编码 37
*2.14  n 维体与距离 39
*2.15  检错码和纠错码 40
2.15.1  检错码 40
2.15.2  纠错码与多重检错码 41
2.15.3  汉明码 43
2.15.4  循环冗余校验码 44
2.15.5  二维码 45
2.15.6  校验和码 46
2.15.7  n中取m码 46
2.16  用于串行数据传输与存储的编码 47
2.16.1  并行/串行数据 47
*2.16.2  串行线路编码 47
参考资料 50
训练题 51
练习题 52
第3章  数字电路 54
3.1  逻辑信号与门电路 54
3.2  逻辑系列 58
3.3  CMOS逻辑 59
3.3.1  CMOS逻辑电平 59
3.3.2  MOS晶体管 59
3.3.3  基本的CMOS反相器电路 60
3.3.4  CMOS“与非”门和“或非”门 62
3.3.5  扇入 63
3.3.6  非反相门 64
3.3.7  CMOS“与或非”门和“或与非”门 65
3.4  CMOS电路的电气特性 66
3.4.1  概述 67
3.4.2  数据表和规格说明 68
3.5  CMOS稳态电气特性 69
3.5.1  逻辑电平和噪声容限 70
3.5.2  带电阻性负载的电路特性 71
3.5.3  非理想输入时的电路特性 75
3.5.4  扇出 76
3.5.5  负载效应 77
3.5.6  不用的输入端 77
3.5.7  如何毁坏CMOS器件 78
3.6  CMOS动态电气特性 79
3.6.1  转换时间 79
3.6.2  传播延迟 83
3.6.3  功率损耗 84
3.6.4  电流尖峰与去耦电容器 85
3.6.5  电感效应 85
3.6.6  同时切换与地电平弹跳 87
3.7  其他CMOS输入和输出结构 89
3.7.1  传输门 89
3.7.2  施密特触发器输入 89
3.7.3  三态输出 91
*3.7.4  漏极开路输出 92
*3.7.5  驱动发光二极管 93
*3.7.6  多源总线 94
*3.7.7  线连逻辑 95
*3.7.8  上拉电阻 95
3.8  CMOS逻辑系列 97
3.8.1  HC和HCT 98
3.8.2  AHC和AHCT 98
3.8.3  HC、HCT、AHC和AHCT的电气特性 99
*3.8.4  AC和ACT 102
*3.8.5  FCT和FCT-T 103
*3.8.6  FCT-T的电气特性 103
*3.9  低电压CMOS逻辑和接口 104
3.9.1  3.3V LVTTL和LVCMOS逻辑 104
3.9.2  5V容许输入 105
3.9.3  5V容许输出 106
3.9.4  TTL/LVTTL接口小结 107
3.9.5  比3.3V低的逻辑电平 107
*3.10  双极逻辑 108
3.10.1  二极管逻辑 108
3.10.2  双极结型晶体管 109
3.10.3  晶体管-晶体管逻辑 111
3.10.4  TTL逻辑电平和噪声容限 114
3.10.5  TTL扇出 114
3.10.6  TTL系列 115
3.10.7  一个TTL数据表 116
3.10.8  CMOS/TTL接口 117
3.10.9  发射极耦合逻辑 118
参考资料 120
训练题 121
练习题 124
第4章  组合逻辑设计原理 127
4.1  开关代数 128
4.1.1  公理 128
4.1.2  单变量定理 130
4.1.3  二变量定理和三变量定理 130
4.1.4  n变量定理 131
4.1.5  对偶性 133
4.1.6  逻辑函数的标准表示法 135
4.2  组合电路分析 138
4.3  组合电路的综合 141
4.3.1  电路描述与设计 142
4.3.2  电路处理 144
4.3.3  组合电路最小化 145
4.3.4  卡诺图 147
4.3.5  最小化“积之和”表达式 148
4.3.6  其他最小化问题 154
4.3.7  程序化的最小化方法 154
*4.4  定时冒险 155
4.4.1  静态冒险 156
4.4.2  利用卡诺图发现静态冒险 157
4.4.3  动态冒险 158
4.4.4  设计无冒险电路 158
参考资料 159
训练题 160
练习题 161
第5章  硬件描述语言 165
5.1  基于HDL的数字设计 166
5.1.1  为什么用HDL 166
5.1.2  HDL工具组 166
5.1.3  基于HDL的设计流程 167
5.2  ABEL硬件描述语言 169
5.2.1  ABEL程序结构 170
5.2.2  ABEL编译器操作 171
5.2.3  when语句和等式块 172
5.2.4  真值表 174
5.2.5  范围、集合和关系 175
5.2.6  测试向量 176
5.2.7  ABEL的其他特点 178
5.3  VHDL硬件描述语言 178
5.3.1  程序结构 178
5.3.2  类型、常量和数组 181
5.3.3  函数和过程 184
5.3.4  库和包 187
5.3.5  结构形式的设计元素 188
5.3.6  数据流形式的设计元素 191
5.3.7  行为形式的设计元素 193
5.3.8  时间尺度 197
5.3.9  模拟 198
5.3.10  测试平台 199
5.3.11  时序逻辑设计的VHDL特性 201
5.3.12  综合 201
5.4  Verilog硬件描述语言 201
5.4.1  程序结构 202
5.4.2  逻辑系统、网格、变量和常量 205
5.4.3  向量和操作符 208
5.4.4  数组 210
5.4.5  逻辑操作符和表达式 211
5.4.6  编译器指令 212
5.4.7  结构形式的设计元素 213
5.4.8  数据流形式的设计元素 216
5.4.9  行为形式的设计元素(过程代码) 217
5.4.10  函数和任务 228
5.4.11  时间尺度 230
5.4.12  模拟 230
5.4.13  测试平台 231
5.4.14  时序逻辑设计的Verilog特性 233
5.4.15  综合 233
参考资料 234
训练题 235
练习题 235
第6章  组合逻辑设计实践 238
6.1  文档标准 239
6.1.1  方框图 240
6.1.2  门的符号 241
6.1.3  信号名和有效电平 242
6.1.4  引脚的有效电平 243
6.1.5  “圈到圈”逻辑设计 245
6.1.6  HDL程序中的信号命名 247
6.1.7  绘制布局图 248
6.1.8  总线 250
6.1.9  附带的图示信息 251
6.2  电路定时 253
6.2.1  定时图 253
6.2.2  传播延迟 254
6.2.3  定时规格说明 255
6.2.4  定时分析 257
6.2.5  定时分析工具 258
6.3  组合型PLD 258
6.3.1  可编程逻辑阵列 258
6.3.2  可编程阵列逻辑器件 260
6.3.3  通用阵列逻辑器件 263
6.3.4  复杂型可编程逻辑器件 264
*6.3.5  CMOS型 PLD电路 265
*6.3.6  器件编程与测试 267
6.4  译码器 268
6.4.1  二进制译码器 268
6.4.2  大规模元件的逻辑符号 269
6.4.3  3-8译码器74x138 270
6.4.4  级联二进制译码器 273
6.4.5  用ABEL和PLD实现译码器 274
6.4.6  用VHDL实现译码器 279
6.4.7  用Verilog实现译码器 283
*6.4.8  七段译码器 286
6.5  编码器 287
6.5.1  优先级编码器 288
6.5.2  优先级编码器74x148 289
6.5.3  用ABEL和PLD实现编码器 291
6.5.4  用VHDL实现编码器 293
6.5.5  用Verilog实现编码器 293
6.6  三态器件 294
6.6.1  三态缓冲器 294
6.6.2  标准MSI三态缓冲器 296
6.6.3  用ABEL和PLD实现三态输出 299
*6.6.4  用VHDL实现三态输出 302
*6.6.5  用Verilog实现三态输出 304
6.7  多路复用器 305
6.7.1  标准MSI多路复用器 306
6.7.2  扩展多路复用器 308
6.7.3  多路复用器、多路分配器和总线 310
6.7.4  用ABEL和PLD实现多路复用器 312
6.7.5  用VHDL实现多路复用器 314
6.7.6  用Verilog实现多路复用器 316
6.8  “异或”门和奇偶校验电路 317
6.8.1  “异或”门和“异或非”门 317
6.8.2  奇偶校验电路 318
6.8.3  9位奇偶校验发生器74x280 319
6.8.4  奇偶校验的应用 319
6.8.5  用ABEL和PLD实现“异或”
门和奇偶校验电路 321
6.8.6  用VHDL实现“异或”门和
奇偶校验电路 321
6.8.7  用Verilog实现“异或”门
和奇偶校验电路 323
6.9  比较器 325
6.9.1  比较器结构 325
6.9.2  迭代电路 326
6.9.3  迭代比较器电路 327
6.9.4  标准MSI大小比较器 327
6.9.5  用HDL实现比较器 330
6.9.6  用ABEL和PLD实现比较器 331
6.9.7  用VHDL实现比较器 331
6.9.8  用Verilog实现比较器 333
*6.10  加法器、减法器和ALU 337
6.10.1  半加器和全加器 337
6.10.2  串行进位加法器 337
6.10.3  减法器 338
6.10.4  先行进位加法器 339
6.10.5  MSI加法器 341
6.10.6  MSI算术逻辑单元 343
6.10.7  组间先行进位 345
6.10.8  用ABEL和PLD实现加法器 346
6.10.9  用VHDL实现加法器 347
6.10.10  用Verilog实现加法器 349
*6.11  组合乘法器 351
6.11.1  组合乘法器结构 351
6.11.2  用ABEL和PLD实现乘法 354
6.11.3  用VHDL实现乘法 354
6.11.4  用Verilog实现乘法 358
参考资料 362
训练题 363
练习题 365
第7章  时序逻辑设计原理 371
7.1  双稳态元件 372
7.1.1  数字分析 373
7.1.2  模拟分析 373
7.1.3  亚稳态特性 373
7.2  锁存器与触发器 374
7.2.1  S-R锁存器 375
7.2.2  S- - R-锁存器 377
7.2.3  具有使能端的S-R锁存器 377
7.2.4  D锁存器 378
7.2.5  边沿触发式D触发器 379
7.2.6  具有使能端的边沿触发式D触发器 381
7.2.7  扫描触发器 382
*7.2.8  主从式S-R触发器 383
*7.2.9  主从式J-K触发器 384
*7.2.10  边沿触发式J-K触发器 385
7.2.11  T触发器 386
7.3  时钟同步状态机分析 387
7.3.1  状态机结构 387
7.3.2  输出逻辑 388
7.3.3  特征方程 389
7.3.4  使用D触发器的状态机分析 389
7.4  时钟同步状态机设计 396
7.4.1  状态表设计举例 397
7.4.2  状态最小化 400
7.4.3  状态赋值 401
7.4.4  采用D触发器的综合 403
*7.4.5  采用J-K触发器的综合 405
7.4.6  采用D触发器的其他设计例子 406
7.5  用状态图设计状态机 409
*7.6  用转移表综合状态机 414
7.6.1  转移方程 414
7.6.2  激励方程 415
7.6.3  其他方法 415
7.6.4  状态机的实现 416
7.7  另一个状态机设计举例 416
7.7.1  猜谜游戏 416
7.7.2  未用状态 418
7.7.3  输出编码状态赋值 419
7.7.4  “无关”状态编码 420
7.8  状态机的分解 421
*7.9  反馈时序电路 423
7.9.1  基本分析 424
7.9.2  分析具有多个反馈回路的电路 426
7.9.3  竞争 428
7.9.4  状态表与流程表 429
7.9.5  CMOS D触发器分析 430
*7.10  反馈时序电路设计 431
7.10.1  锁存器 431
7.10.2  设计基本模式流程表 433
7.10.3  流程表的最小化 434
7.10.4  无竞争状态赋值法 435
7.10.5  激励方程 437
7.10.6  本质冒险 437
7.10.7  小结 439
7.11  ABEL时序电路设计特性 440
7.11.1  寄存型输出 440
7.11.2  状态图 441
*7.11.3  外部状态记忆 445
*7.11.4  指定Moore型输出 445
*7.11.5  用with语句指定Mealy型输出和
流水线输出 446
7.11.6  测试向量 448
7.12  用VHDL设计时序电路 450
7.12.1  时钟电路 450
7.12.2  用VHDL设计状态机 452
7.12.3  VHDL状态机举例 454
7.12.4  VHDL中的状态赋值 456
7.12.5  VHDL中的流水线型输出 457
7.12.6  不用状态表的直接VHDL编程 458
7.12.7  更多VHDL状态机例子 459
7.12.8  用VHDL定义触发器 461
7.12.9  VHDL状态机测试平台 462
7.12.10  反馈时序电路 465
7.13  用Verilog设计时序电路 466
7.13.1  时钟电路 466
7.13.2  用Verilog设计状态机 467
7.13.3  Verilog状态机举例 469
7.13.4  Verilog中的流水线型输出 471
7.13.5  不用状态表的直接Verilog编程 471
7.13.6  更多Verilog状态机例子 472
7.13.7  用Verilog定义触发器 474
7.13.8  Verilog状态机测试平台 476
7.13.9  反馈时序电路 478
参考资料 478
训练题 479
练习题 483
第8章  时序逻辑设计实践 489
8.1  时序电路文档标准 489
8.1.1  一般要求 489
8.1.2  逻辑符号 490
8.1.3  状态机描述 490
8.1.4  定时图和定时规格说明 491
8.2  锁存器和触发器 494
8.2.1  SSI型锁存器和触发器 494
*8.2.2  开关消颤 495
*8.2.3  最简单的开关消颤电路 496
*8.2.4  总线保持电路 497
8.2.5  多位寄存器和锁存器 497
8.2.6  用ABEL和PLD实现寄存器和锁存器 500
8.2.7  用VHDL实现寄存器和锁存器 503
8.2.8  用Verilog实现寄存器和锁存器 506
8.3  时序型PLD 507
8.3.1  时序型GAL器件 507
8.3.2  PLD定时规格说明 511
8.4  计数器 513
8.4.1  行波计数器 513
8.4.2  同步计数器 514
8.4.3  MSI型计数器及应用 514
8.4.4  二进制计数器状态的译码 518
8.4.5  用ABEL和PLD实现计数器 519
8.4.6  用VHDL实现计数器 521
8.4.7  用Verilog实现计数器 524
8.5  移位寄存器 526
8.5.1  移位寄存器结构 526
8.5.2  MSI移位寄存器 527
8.5.3  移位寄存器计数器 529
8.5.4  环形计数器 529
*8.5.5  Johnson计数器 532
*8.5.6  线性反馈移位寄存器计数器 533
8.5.7  用ABEL和PLD实现移位寄存器 536
8.5.8  用VHDL实现移位寄存器 542
8.5.9  用Verilog实现移位寄存器 545
*8.6  迭代电路与时序电路 548
8.7  同步设计方法 549
8.8  同步设计中的障碍 552
8.8.1  时钟偏移 552
8.8.2  选通时钟 555
8.8.3  异步输入 556
8.9  同步器故障和亚稳定性 558
8.9.1  同步器故障 558
8.9.2  亚稳定性分辨时间 559
8.9.3  可靠同步器设计 559
8.9.4  亚稳定的定时分析 560
8.9.5  更好的同步器 562
8.9.6  其他同步器设计 563
8.9.7  同步高速数据传输 565
参考资料 572
训练题 574
练习题 575
第9章  存储器、CPLD和FPGA 580
9.1  只读存储器 580
9.1.1  ROM用于“随机”组合逻辑函数 581
*9.1.2  ROM的内部结构 583
*9.1.3  二维译码 585
9.1.4  商用ROM的类型 587
9.1.5  ROM的控制输入和定时 590
9.1.6  ROM的应用 592
9.2  读/写存储器 596
9.3  静态RAM 597
9.3.1  静态RAM的输入和输出 597
9.3.2  静态RAM的内部结构 597
9.3.3  静态RAM的定时 599
*9.3.4  标准静态RAM 600
*9.3.5  同步SRAM 602
9.4  动态RAM 605
9.4.1  动态RAM的结构 605
9.4.2  SDRAM的定时 607
9.4.3  DDR SDRAM 609
9.5  复杂可编程逻辑器件 610
9.5.1  Xilinx XC9500 CPLD系列 611
9.5.2  功能块体系结构 612
9.5.3  输入/输出块体系结构 614
9.5.4  开关矩阵 615
9.6  现场可编程门阵列 617
9.6.1  Xilinx XC4000 FPGA系列 617
9.6.2  可配置逻辑块 618
9.6.3  输入/输出块 620
9.6.4  可编程互连 621
参考资料 623
训练题 624
练习题 624
John F. Wakerly 于斯坦福大学获得电子工程博士学位。他目前是思科系统公司广域网业务部主管工程项目的副总裁,还是斯坦福大学的兼职教授。他著有数字设计、微电脑体系结构、计算机可靠性等方面的50多部著作,并在电信与网络领域拥有13项专利。
林生男,华南师范大学计算机学院教授。先后任教于西安电子科技大学信息工程系和华南师范大学计算机科学系,多年从事数字逻辑与数字系统、计算机网络方向的课程教学与科研。在数字逻辑设计方面,编著有《时序逻辑电路设计原理》,译著有《数字系统设计基础》和《数字设计:原理与实践(原书第3版)》。在计算机网络方面,编著有《计算机通信网原理》和《计算机通信与网络教程》(第1版、第2版),译著有《计算机网络与因特网(原书第4版)》。

  葛红  女,华南师范大学计算机学院副教授。1989年,于重庆大学自动化系本科毕业。1997年,于华南理工大学自动化系获得硕士学位,2004年获得博士学位。多年从事数字逻辑和数字系统方向的课程教学和实验指导,主要译著有《数字设计:原理与实践(原书第3版)》和《VHDL设计指南》。

  金京林  女,华南师范大学计算机学院副教授。1984年于吉林大学本科毕业,1987年于中国科学院长春光学精密机械和物理研究所获得硕士学位。先后在北京化工大学计算机系和华南师范大学计算机系从事教学和科研工作,主要研究方向是计算机体系结构。主要译著有《数字设计:原理与实践(原书第3版)》。
读者书评
发表评论



高级搜索
数字设计和计算机体系结构(英文版)
数字系统设计课程设计
数字系统测试与可测试设计


版权所有© 2008 北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260