基本信息
- 原书名:Digital Design: A Systems Approach
- 作者: (美)威廉 J. 达利(William J. Dally) (美)R. 柯蒂斯·哈廷(R. Curtis Harting)
- 译者: 韩德强
- 丛书名: 计算机科学丛书
- 出版社:机械工业出版社
- ISBN:9787111579403
- 上架时间:2017-9-30
- 出版日期:2017 年10月
- 开本:16开
- 版次:1-1
- 所属分类:计算机 > 计算机控制与仿真 > 数字系统设计
教材

编辑推荐
Dally和Harting基于他们在数字设计领域的特殊经验,以一种清晰和建设性的方式结合了数字电路和体系结构设计。通过本书接触计算系统的不同抽象层次和视角,学生将发现一种现代和高效的方式来理解数字设计背后的基础知识和技术。
—— Giovanni De Micheli,瑞士联邦理工学院
所有你期望了解的数字设计的知识都可以从这本Dally教授的书中学到。作者基于几十年的实践经验,提炼出设计和组成完整数字系统所必需的方法和技术。本书条理清晰、叙述简洁,很好地覆盖了数字设计的基础知识和系统层面的技术。学习本书是将来有志成为微处理器和SoC设计师的学生的一个理想起点!
—— Robert Mullins,剑桥大学和树莓派基金会
这本书设立了本科讲授数字系统设计的新标准。书中实用的方法和具体的实例为任何想要理解和设计现代复杂数字系统的人提供了一个坚实的基础。
—— Steve Keckler,得克萨斯大学奥斯汀分校
这本书不仅讲如何做数字设计,而且更重要的是,它展示了如何做好的数字设计。本书强调尽量采用简洁接口进行模块化的重要性,生成不仅满足规范而且可以容易被其他人理解的数字工件的重要性。本书将不仅对于学生非常有用,而且对于该领域的实践者同样是一本非常有价值的参考书。
—— Chuck Thacker,微软公司
一本采用系统视角来讲解数字设计的非常棒的书。这本书是一个伟大的工作,专注于数字设计中的重要内容,从基础到系统,采用硬件描述语言HDL(Verilog)使得书中内容更加实用和符合工业界需求。
—— Rob A. Rutenbar,伊利诺伊大学厄巴纳-香槟分校
本书从系统的视角介绍了数字系统设计的全过程,不仅涵盖了组合逻辑电路、算术运算电路、时序逻辑电路和同步时序电路等基本的数字逻辑课程的内容,还给出了有限状态机、流水线、接口规范、系统时序、存储系统等计算机组成原理课程的知识。作者William J. Dally曾担任斯坦福大学计算机科学系主任,他不仅是斯坦福大学的教授,还是英伟达公司的首席科学家,具有丰富的教学经验和杰出的工程经验。
前
作者简介
威廉 J. 达利
(William J. Dally)
斯坦福大学工程学院Willard R.和Inez Kerr Bell教授,英伟达公司首席科学家;曾担任斯坦福大学计算机科学系主任。他和他的团队开发了系统结构、网络体系结构、信令、路由和同步技术,这些技术可以在当今大多数大型并行计算机中找到。他在工业界和学术界有着多年的工作经验,曾在贝尔实验室、加州理工学院和麻省理工学院任职,并曾在数字设备公司、克雷研究公司和英特尔公司当过顾问。他是美国国家工程院院士、IEEE会士、ACM会士、美国艺术与科学院院士。他曾获得很多荣誉,其中包括ACM Eckert-Mauchly奖、IEEE Seymour Cray奖、ACM Maurice Wilkes奖。他发表过200多篇论文,拥有超过75项授权专利,并且是《Digital Systems Engineering》《Principles and Practices of Interconnection Networks》的作者。
R. 柯蒂斯·哈廷
(R. Curtis Harting)
目前就职于谷歌公司。分别于2012年和2009年获得斯坦福大学博士学位和硕士学位,2007年获得杜克大学学士学位。他的主要研究兴趣是计算机体系结构,重点是并行、高性能和高能效的设计。
后
译者简介
韩德强
北京工业大学信息学部计算机学院实验中心主任,高级工程师。曾在企业从事过12年的x86工控机主板开发、控制工程研发,长期从事微机原理与接口、单片机技术、计算机控制、嵌入式系统等教学工作。与Intel、Microsoft、TI和Xilinx等国际知名企业有着深入合作关系。
内容简介
计算机书籍
本书从系统的视角,通过准确、清晰的讲解以及示例和Verilog文件,展示了如何使用简单的组合模块和时序模块来构建完整的系统。本书共分七部分,不仅涵盖了组合逻辑电路、算术运算电路、时序逻辑电路和同步时序电路等基本的数字逻辑课程的内容,还给出了有限状态机、流水线、接口规范、系统时序、存储系统等计算机组成原理课程的知识。
本书适合作为高等院校计算机及相关专业数字设计课程的本科生教材,也可作为微处理器和SoC设计人员的参考书。
出版发行:机械工业出版社(北京市西城区百万庄大街22号邮政编码:100037)
责任编辑:朱秀英 责任校对:李秋荣
印刷: 版次:2017年10月第1版第1次印刷
开本:185mm×260mm1/16 印张:29.25
书号:ISBN 978-7-111-57940-3 定价:129.00元
凡购本书,如有缺页、倒页、脱页,由本社发行部调换
客服热线:(010) 8837899188361066 投稿热线:(010) 88379604
购书热线:(010) 683262948837964968995259 读者信箱:hzjsj@hzbook.com
版权所有·侵权必究
封底无防伪标均为盗版
本书法律顾问:北京大成律师事务所韩光/邹晓东
作译者
当完成了本书的相关课程后,学生就应该具备在企业中进行数字设计的能力了。尽管缺乏实践经验,但他们已经掌握了数字设计实践中所需的全部工具。经验会随着时间慢慢增长。
本书是在作者25年以上本科生数字设计课程的教学经验(加州理工学院的CS181、麻省理工学院的6004以及斯坦福大学的EE121和EE108A),以及35年设计数字系统的经验(贝尔实验室、DEC公司、Cray公司、Avici公司、Velio通信、流处理器公司以及NVIDIA公司)基础上编著而成的。结合这两种经验,本书将教给学生实际工作中需要的有用知识,而所采用的方法已经被历届学生证明是有效的。
我们写这本书的初衷是市面上暂时找不到任何一本从系统级层面介绍数字设计的书。绝大部分同类教科书讲述的都是组合逻辑电路和时序的手工设计。虽然现如今的很多教科书都采用了硬件描述语言,但绝大多数采用的都是古老的TTL类型的设计风格,它只适用于使用7400四与非门器件的年代(20世纪70年代),无法培养可以设计出具有30亿晶体管的GPU的学生。如今,学生需要掌握如何分解状态机、划分设计,并构建正确时序的接口。对于这些话题,我们会采用一种简单的方式介绍,而不会陷入细节。
本书概要
图1所示流程图给出了本书的组织结构及各个章节的依赖关系。本书分为绪论、5个主要部分以及关于风格和验证的章节。
图1本书的组织结构及各章节的相互关系
第一部分绪论
第1章介绍数字系统,涵盖了信息表现形式的数字信号、噪声容限以及数字逻辑在当今世界中的作用。第2章介绍数字设计在工业中的应用,包括设计流程、现代实现技术、计算机辅助设计工具和摩尔定律。
第二部分组合逻辑
第3~9章论述了组合逻辑电路——输出值仅取决于当前输入值的数字电路。第3章介绍逻辑设计的理论基础——布尔代数。第4章介绍开关逻辑和CMOS门电路。第5章介绍用来计算CMOS电路延迟和功耗的简单模型。第6章介绍利用基础门电路手工设计组合电路的方法。第7章介绍利用Verilog硬件描述语言对组合逻辑的行为描述进行编码的自动设计过程。第8章介绍组合逻辑基础单元、解码器和多路选择器等。第9章给出了一些组合电路设计的实例。
第三部分算术电路
第10~13章介绍计数制(数制系统)和算术电路。第10章介绍数的基本表示法以及完成整数的+、-、×、÷四则运算的算术电路。第11章介绍定点数和浮点数的表示方法及其精度,还包括对浮点单元设计的讨论。第12章介绍快速算术电路的构建方法,包括超前进位、华莱士树和布斯编码。第13章介绍算术电路和系统的实例。
第四部分同步时序逻辑
第14~19章介绍同步时序逻辑电路(即状态仅在时钟边沿发生改变的时序电路)以及有限状态机的设计过程。第14章介绍基础知识。第15章介绍时序约束。第16章介绍的主题是数据通路时序电路的设计——其行为是由一个表达式而不是一个状态表进行描述的。第17章描述如何将复杂的状态机分解成几个更小、更简单的状态机。第18章介绍存储程序控制的概念,以及如何利用微码引擎建立有限状态机。这一部分以第19章的一系列实例作为结束。
第五部分实用设计
第20章和附录讨论了数字设计项目中的两个重要方面。第20章的主要内容是验证逻辑的正确性以及生产后测试是否能正确工作。附录的内容是教给学生恰当的Verilog编码风格。这种风格令代码具有可读性、可维护性,并使得CAD工具可以产生优化的硬件。学生应该在编写自己的Verilog程序之前、之中及之后都读一读附录的内容。
第六部分系统设计
第21~25章讨论系统设计并介绍一种数字系统设计和分析的系统化方法。第21章介绍系统设计过程中的6个步骤。第22章讨论系统级时序和接口时序的约定。第23章讲述模块和系统的流水线,还包括一些流水线的实例。第24章描述系统的互连,包括总线、交叉开关和网络等内容。第25章讨论存储器系统。
第七部分异步逻辑
目录
推荐语
译者序
前言
第一部分绪论
第1章数字抽象化
1.1数字信号
1.2数字信号容忍噪声
1.3数字信号表示复杂数据
1.3.1表示一年中的某一天
1.3.2表示减色法
1.4数字逻辑函数
1.5数字电路和系统的Verilog描述
1.6系统中的数字逻辑
小结
文献说明
习题
第2章数字系统设计实践
2.1设计流程
2.1.1设计规格
译者序
本书从系统的视角介绍了数字系统设计的全过程,不仅涵盖了组合逻辑电路、算术运算电路、时序逻辑电路和同步时序电路等基本的数字逻辑课程的内容,还给出了有限状态机、流水线、接口规范、系统时序、存储系统等计算机组成原理课程的知识。William J Dally不仅是斯坦福大学的教授,还是英伟达(NVIDIA)公司的首席科学家。他不仅具有丰富的教学经验,还具有杰出的工程经验。
在本书的翻译过程中,我被书中的内容深深吸引,甚至到了不可自拔的地步。该书与国内同类教材有着本质的区别。首先,国内教材大多采用数学的方法讲述计算机,而本书采用的是计算机的方法讲授计算机。譬如,计算机运算本就是一个有限字长的运算,整数和小数的位数是约定的。因此,在数制转换时根本无须考虑整数部分的“除基取余”法、小数部分的“乘基取整”法,而采用权重法可以轻而易举地将十进制数转换成二进制数。我在讲授这部分时,经常问学生的一句话是:“你们是喜欢做加减法,还是喜欢做乘除法?”这是一个将问题简单化还是复杂化的问题!其次,本书在讲述数字系统设计流程时,给出了国内教材很少涉及的风险评估以及缓解这些风险的方法,还给出了芯片和电路板设计中的一些工程方法。再次,本书给出了数字系统在实际工程中的巧妙应用之法,如在减色法中利用原色的逻辑或,可以正确得到间色和复色。诸如此类,举不胜举!
正如微软的Chuck Thacker所言:“这本书不仅介绍了如何做数字设计,更重要的是展示了如何做‘好的’设计。”我以近20年的计算机硬件和嵌入式系统教学、项目开发经验以及十几年的企业产品研发经验,强烈推荐这本教材!
本书由北京工业大学信息学部计算机学院的部分教师翻译。其中前言等文前内容和第1、2章由韩德强翻译;第3~7章由邵温翻译;第8、9章由高雪园翻译;第10~13章由杨淇善翻译;第14~19章由张丽艳翻译;第20~25章以及附录部分由鲁鹏程翻译;第26~29章由王宗侠翻译。全书的审校由韩德强完成。
本书在翻译过程中得到了机械工业出版社华章公司朱劼女士的大力支持,在此表示由衷的感谢!
限于译者的水平,翻译中难免有错误或不妥之处,真诚希望各位读者批评指正。
韩德强
2017年5月于北京工业大学
前言
当完成了本书的相关课程后,学生就应该具备在企业中进行数字设计的能力了。尽管缺乏实践经验,但他们已经掌握了数字设计实践中所需的全部工具。经验会随着时间慢慢增长。
本书是在作者25年以上本科生数字设计课程的教学经验(加州理工学院的CS181、麻省理工学院的6004以及斯坦福大学的EE121和EE108A),以及35年设计数字系统的经验(贝尔实验室、DEC公司、Cray公司、Avici公司、Velio通信、流处理器公司以及NVIDIA公司)基础上编著而成的。结合这两种经验,本书将教给学生实际工作中需要的有用知识,而所采用的方法已经被历届学生证明是有效的。
我们写这本书的初衷是市面上暂时找不到任何一本从系统级层面介绍数字设计的书。绝大部分同类教科书讲述的都是组合逻辑电路和时序的手工设计。虽然现如今的很多教科书都采用了硬件描述语言,但绝大多数采用的都是古老的TTL类型的设计风格,它只适用于使用7400四与非门器件的年代(20世纪70年代),无法培养可以设计出具有30亿晶体管的GPU的学生。如今,学生需要掌握如何分解状态机、划分设计,并构建正确时序的接口。对于这些话题,我们会采用一种简单的方式介绍,而不会陷入细节。
本书概要
图1所示流程图给出了本书的组织结构及各个章节的依赖关系。本书分为绪论、5个主要部分以及关于风格和验证的章节。
图1本书的组织结构及各章节的相互关系
第一部分绪论
第1章介绍数字系统,涵盖了信息表现形式的数字信号、噪声容限以及数字逻辑在当今世界中的作用。第2章介绍数字设计在工业中的应用,包括设计流程、现代实现技术、计算机辅助设计工具和摩尔定律。
第二部分组合逻辑
第3~9章论述了组合逻辑电路——输出值仅取决于当前输入值的数字电路。第3章介绍逻辑设计的理论基础——布尔代数。第4章介绍开关逻辑和CMOS门电路。第5章介绍用来计算CMOS电路延迟和功耗的简单模型。第6章介绍利用基础门电路手工设计组合电路的方法。第7章介绍利用Verilog硬件描述语言对组合逻辑的行为描述进行编码的自动设计过程。第8章介绍组合逻辑基础单元、解码器和多路选择器等。第9章给出了一些组合电路设计的实例。
第三部分算术电路
第10~13章介绍计数制(数制系统)和算术电路。第10章介绍数的基本表示法以及完成整数的+、-、×、÷四则运算的算术电路。第11章介绍定点数和浮点数的表示方法及其精度,还包括对浮点单元设计的讨论。第12章介绍快速算术电路的构建方法,包括超前进位、华莱士树和布斯编码。第13章介绍算术电路和系统的实例。
第四部分同步时序逻辑
第14~19章介绍同步时序逻辑电路(即状态仅在时钟边沿发生改变的时序电路)以及有限状态机的设计过程。第14章介绍基础知识。第15章介绍时序约束。第16章介绍的主题是数据通路时序电路的设计——其行为是由一个表达式而不是一个状态表进行描述的。第17章描述如何将复杂的状态机分解成几个更小、更简单的状态机。第18章介绍存储程序控制的概念,以及如何利用微码引擎建立有限状态机。这一部分以第19章的一系列实例作为结束。
第五部分实用设计
第20章和附录讨论了数字设计项目中的两个重要方面。第20章的主要内容是验证逻辑的正确性以及生产后测试是否能正确工作。附录的内容是教给学生恰当的Verilog编码风格。这种风格令代码具有可读性、可维护性,并使得CAD工具可以产生优化的硬件。学生应该在编写自己的Verilog程序之前、之中及之后都读一读附录的内容。
第六部分系统设计
第21~25章讨论系统设计并介绍一种数字系统设计和分析的系统化方法。第21章介绍系统设计过程中的6个步骤。第22章讨论系统级时序和接口时序的约定。第23章讲述模块和系统的流水线,还包括一些流水线的实例。第24章描述系统的互连,包括总线、交叉开关和网络等内容。第25章讨论存储器系统。
第七部分异步逻辑
媒体评论
“Dally和Harting凭借在数字设计方面的杰出经验,以清晰和富有建设性的方式将电路和体系结构设计融为一体。
学生通过接触计算系统的不同抽象层次及观点,将发现一条了解数字设计基础知识的现代的、有效的途径。”
Giovanni De Micheli,瑞士洛桑联邦理工学院
“Bill和Curt结合几十年的学术和行业经验编写的这本教材,从非常实用的角度讲授数字系统设计,同时给出了未来工程师所需的理论。他们努力让学生明白正在设计什么,以及正在构建什么。通过介绍主要的高级主题,譬如综合、延迟和逻辑功效以及同步,本书在入门级提供了不可多得的实用建议。这样做,即使工艺、工具和技术在未来发生了改变,这本书也将帮助学生做好准备。”
David BlackSchaffer,瑞典乌普萨拉大学
“你可以从Dally教授的数字设计一书中得到想要的一切。结合几十年的实践经验,Dally教授提供了设计和组成完整的数字系统所必需的工具。本书同时涵盖了基础知识和系统级议题,对于未来的微处理器和SoC设计人员来说,是一个理想的起点!”
Robert Mullins,剑桥大学和树莓派基金会
“这本书为如何给本科生讲授数字系统设计制定了一个新的标准。实用的方法和具体的实例为任何想要理解或设计现代复杂数字系统的人提供了坚实的基础。”
Steve Keckler,得克萨斯大学奥斯汀分校
“这本书不仅介绍了如何做数字设计,更重要的是展示了如何做‘好的’设计。它强调了具有清晰接口的模块化的重要性,以及生产出不仅满足设计规格而且容易被他人理解的数字工件的重要性。它使用许多恰当的示例和Verilog代码来达到目的。
书中讨论了异步逻辑设计主题,由于能源消耗已经成为数字系统中的主要关注点,这个主题可能变得越来越重要。
本书最后关于Verilog编码风格的附录特别有用。这本书不仅对学生很有价值,而且对该领域的从业人员也很有价值。我强烈推荐它。”
Chuck Thacker,微软公司