描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111629252
赞誉
译者序
前言
第1章 二进制1
1.1 课程计划1
1.2 管理复杂性的艺术1
1.2.1 抽象1
1.2.2 约束2
1.2.3 三条原则3
1.3 数字抽象3
1.4 数字系统4
1.4.1 十进制数4
1.4.2 二进制数5
1.4.3 十六进制数6
1.4.4 字节、半字节和字7
1.4.5 二进制加法8
1.4.6 有符号的二进制数8
1.5 逻辑门10
1.5.1 非门11
1.5.2 缓冲11
1.5.3 与门11
1.5.4 或门11
1.5.5 其他二输入逻辑门12
1.5.6 多输入门12
1.6 数字抽象之下13
1.6.1 电源电压13
1.6.2 逻辑电平13
1.6.3 噪声容限14
1.6.4 直流电压传输特性14
1.6.5 静态约束15
*1.7 CMOS晶体管16
1.7.1 半导体16
1.7.2 二极管17
1.7.3 电容17
1.7.4 nMOS和pMOS晶体管17
1.7.5 CMOS非门19
1.7.6 其他CMOS逻辑门19
1.7.7 传输门21
1.7.8 类nMOS逻辑21
*1.8 功耗22
1.9 总结和展望22
习题23
面试问题29
第2章 组合逻辑设计30
2.1 引言30
2.2 布尔表达式32
2.2.1 术语32
2.2.2 与或式32
2.2.3 或与式33
2.3 布尔代数34
2.3.1 公理34
2.3.2 单变量定理35
2.3.3 多变量定理36
2.3.4 定理的统一证明方法37
2.3.5 等式化简37
2.4 从逻辑到门38
2.5 多级组合逻辑40
2.5.1 减少硬件40
2.5.2 推气泡41
2.6 X和Z43
2.6.1 非法值X43
2.6.2 浮空Z43
2.7 卡诺图44
2.7.1 画圈的原理45
2.7.2 卡诺图化简逻辑45
2.7.3 无关项48
2.7.4 小结49
2.8 组合逻辑模块49
2.8.1 多路选择器49
2.8.2 译码器52
2.9 时序52
2.9.1 传输延迟和最小延迟53
2.9.2 毛刺55
2.10 总结57
习题57
面试问题62
第3章 时序逻辑设计63
3.1 引言63
3.2 锁存器和触发器63
3.2.1 SR锁存器64
3.2.2 D锁存器65
3.2.3 D触发器66
3.2.4 寄存器67
3.2.5 带使能端的触发器67
3.2.6 带复位功能的触发器67
*3.2.7 晶体管级的锁存器和触发器的设计68
3.2.8 小结68
3.3 同步逻辑设计69
3.3.1 一些有问题的电路70
3.3.2 同步时序电路71
3.3.3 同步和异步电路72
3.4 有限状态机72
3.4.1 有限状态机设计实例73
3.4.2 状态编码77
3.4.3 Moore型状态机和Mealy型状态机79
3.4.4 状态机的分解82
3.4.5 由电路图导出状态机83
3.4.6 小结86
3.5 时序逻辑电路的时序86
3.5.1 动态约束87
3.5.2 系统时序87
*3.5.3 时钟偏移91
3.5.4 亚稳态92
3.5.5 同步器93
*3.5.6 分辨时间的推导95
3.6 并行97
3.7 总结99
习题100
面试问题105
第4章 硬件描述语言107
4.1 引言107
4.1.1 模块107
4.1.2 硬件描述语言的起源108
4.1.3 模拟和综合109
4.2 组合逻辑110
4.2.1 位运算符110
4.2.2 注释和空格112
4.2.3 缩减运算符112
4.2.4 条件赋值112
4.2.5 内部变量114
4.2.6 优先级115
4.2.7 数字116
4.2.8 Z和X117
4.2.9 位混合118
4.2.10 延迟118
4.3 结构建模119
4.4 时序逻辑122
4.4.1 寄存器122
4.4.2 带复位功能的寄存器123
4.4.3 带使能端的寄存器124
4.4.4 多寄存器124
4.4.5 锁存器125
4.5 更多组合逻辑126
4.5.1 case语句127
4.5.2 if语句129
4.5.3 带有无关项的真值表130
4.5.4 阻塞式和非阻塞式赋值131
4.6 有限状态机134
*4.7 数据类型137
4.7.1 SystemVerilog137
4.7.2 VHDL138
*4.8 参数化模块140
4.9 测试程序142
4.10 总结145
习题145
面试问题152
第5章 常见数字模块153
5.1 引言153
5.2 算术电路153
5.2.1 加法153
5.2.2 减法158
5.2.3 比较器159
5.2.4 算术逻辑单元160
5.2.5 移位器和循环移位器162
*5.2.6 乘法162
*5.2.7 除法164
5.2.8 拓展阅读164
5.3 数制系统165
5.3.1 定点数系统165
*5.3.2 浮点数系统166
5.4 时序电路模块169
5.4.1 计数器169
5.4.2 移位寄存器169
5.5 存储器阵列171
5.5.1 概述171
5.5.2 动态随机访问存储器173
5.5.3 静态随机访问存储器174
5.5.4 面积和延迟174
5.5.5 寄存器文件174
5.5.6 只读存储器175
5.5.7 使用存储器阵列的逻辑176
5.5.8 存储器HDL176
5.6 逻辑阵列178
5.6.1 可编程逻辑阵列178
5.6.2 现场可编程逻辑门阵列179
*5.6.3 阵列实现182
5.7 总结183
习题184
面试问题190
第6章 体系结构191
6.1 引言191
6.2 汇编语言192
6.2.1 指令192
6.2.2 操作数:寄存器、存储器和常数193
6.3 编程196
6.3.1 数据处理指令196
6.3.2 条件标志198
6.3.3 分支200
6.3.4 条件语句201
6.3.5 循环202
6.3.6 存储器204
6.3.7 函数调用207
6.4 机器语言215
6.4.1 数据处理指令215
6.4.2 存储器指令218
6.4.3 分支指令219
6.4.4 寻址模式220
6.4.5 解释机器语言代码220
6.4.6 程序存储221
*6.5 编译、汇编与加载222
6.5.1 内存映射222
6.5.2 编译223
6.5.3 汇编224
6.5.4 链接225
6.5.5 加载226
*6.6 其他主题227
6.6.1 加载文字227
6.6.2 NOP227
6.6.3 异常228
6.7 ARM体
我们相信,构建微处理器是工程和计算机科学专业学生的特殊“仪式”。处理器的内部工作对于不熟悉的人来说似乎是神奇的,但经过仔细解释后,其实是直截了当的。数字设计本身就是一个强大而令人兴奋的主题。汇编语言编程揭示了处理器所使用的内部语言。微体系结构(简称为微结构)将它们链接在一起。
在这本日益流行的图书的前两个版本中,包括了由Patterson和Hennessy所撰写且被广泛使用的体系结构书籍中讨论的传统MIPS体系结构。作为最初的精简指令集计算体系结构之一,MIPS非常简洁,易于理解和构建。今天,MIPS仍然是一个重要的体系结构,在2013年被Imagination Technologies收购后,又被注入了新的活力。
在过去的20年中,ARM体系结构由于其高效和丰富的生态系统而大受欢迎。这段时间出货了超过500亿个ARM处理器,并且全球超过75%的人都在使用带有ARM处理器的产品。在撰写本书时,几乎所有在售的手机和平板电脑都包含一个或多个ARM处理器。有报道预测数百亿的ARM处理器将很快控制物联网。许多公司正在构建高性能ARM系统,以在服务器市场挑战Intel。由于其商业重要性和学生的兴趣,我们撰写了本书的ARM版本。
在教学上,MIPS和ARM版本的学习目标是相同的。ARM体系结构具有许多功能,包括寻址模式和条件执行,这些功能有助于提高效率,但增加了少量的复杂性。它与MIPS的微体系结构也非常相似,而条件执行和程序计数器是它们最大的差异。关于I/O的章节提供了大量使用Raspberry Pi的示例。Raspberry Pi是一种非常流行的基于ARM的嵌入式Linux单板计算机。
只要市场依然有需求,我们就希望能够同时提供MIPS和ARM两个版本。
特点
并列讲述SystemVerilog和VHDL语言
硬件描述语言(Hardware Description Language,HDL)是现代数字设计实践的中心,而设计者分成了SystemVerilog语言和VHDL语言两个阵营。在介绍组合逻辑和时序逻辑设计后,本书紧接着就在第4章中介绍硬件描述语言,并将在第5章和第7章用其来设计处理器的模块和整个处理器。然而,如果不讲授硬件描述语言,第4章可以跳过去,不影响后续章节。
本书的特色在于使用并列的方式讲述SystemVerilog语言和VHDL语言,使得读者可以快速对比两种语言。第4章描述了适用于这两种硬件描述语言的原则,而且并列给出了这两种语言的语法和实例。这种并列方法使得教师可以选择其中一种硬件描述语言讲述,同时,读者在专业实践中也可以很快从一种描述语言转到另一种描述语言。
ARM体系结构和微体系结构
第6章和第7章首次深入介绍了ARM体系结构和微体系结构。ARM是一种理想的体系结构,因为它是一种每年应用于数百万种产品中的真实体系结构,但又十分精简且易于学习。此外,由于其在商业和业余爱好者世界中的流行,已有多种ARM体系结构的模拟和开发工具。在本书中,所有与ARM技术相关的材料均经ARM Limited许可复制。
现实世界视角
除了讨论ARM体系结构的现实世界视角外,第6章还介绍了英特尔x86处理器的体系结构,以提供另一种视角。第9章(在线补充资料)还描述了Raspberry Pi单板计算机环境中的外围设备,这是一个非常流行的基于ARM的平台。这些现实世界视角的章节展示了该章中的概念与许多PC和消费电子产品中的芯片之间的关系。
高级微体系结构概览
第7章介绍了现代高性能微结构的特征,包括分支预测、超标量、乱序执行、多线程和多核处理器。这些内容对于第一次上体系结构课程的学生比较易于理解,展示了本书中的微结构原理是如何扩展到现代处理器设计中的。
章末的习题和面试问题
学习数字设计的最佳方式是实践。每章末尾都有很多习题用于实践所讲述的内容。习题后面是一组由这个领域工业界的同事向申请工作的学生提出的面试问题。这些问题可以让学生感受到面试过程中可能遇到的典型问题类型。习题的答案可以通过本书的配套网站和教师支持网站获得。
在线补充资料
补充资料可以通过booksite.elsevier.com/9780128000564获得。这个对所有读者开放的配套网站包括以下内容:
奇数编号习题的答案;
Altera公司专业级计算机辅助设计工具的链接;
链接到Keil的ARM微控制器开发套件(MDK-ARM),这是一个用于编译、汇编和模拟ARM处理器的C和汇编代码的工具;
ARM处理器的硬件描述语言(HDL)代码;
关于Altera Quartus Ⅱ工具的提示;
PPT格式的电子教案;
简单的课程和实验素材;
勘误表。
教师网站包括:
所有习题的答案;
链接到Altera的专业级计算机辅助设计(CAD)工具;
PDF格式和PPT格式的书中插图。
在线资料提供了在课程中使用Altera、Raspberry Pi和MDK-ARM工具的指南,同时也提供了关于构建实验的详细资料。
如何在课程中使用软件工具
Altera Quartus Ⅱ
Quartus Ⅱ Web Edition是专业级Quartu Ⅱ FPGA设计工具的免费版本。基于此软件,学生可以使用原理图或者硬件描述语言(SystemVerilog或VHDL)完成数字逻辑设计。在完成设计后,学生可以使用Altera Quartus Ⅱ Web Edition中包含的ModelSim-Altera Star
评论
还没有评论。