本书以一种流行的方式介绍了从计算机组织和设计到更细节层次的内容,涵盖了数字逻辑设计的主要内容,展示了使用VHDL和Verilog这两种主要硬件描述语言设计MIPS处理器的技术细节,并通过MIPS微处理器的设计强化数字逻辑的概念。本书的典型特色是将数字逻辑和计算机体系结构融合,教学内容反映了当前数字电路设计的主流方法,并突出计算机体系结构的工程特点,书中的大量示例及习题也可以加强读者对基本概念和技术的理解和记忆。
目录
Digital Design and Computer Architecture,Second Edition
出版者的话
译者序
本书赞誉
前言
第1章二进制1
11课程计划1
12控制复杂性的艺术1
121抽象1
122约束2
123三Y原则3
13数字抽象3
14数制4
141十进制数4
142二进制数5
143十六进制数6
144字节、半字节和全字7
145二进制加法8
146有符号的二进制数8
15逻辑门10
151非门11
152缓冲器11
153与门11
154或门11
155其他两输入逻辑门11
156多输入门12
16数字抽象13
161电源电压13
162逻辑电平13
163噪声容限13
164直流电压传输特性14
165静态约束15
17CMOS晶体管16
171半导体16
172二极管17
173电容17
174nMOS和pMOS晶体管17
175CMOS非门19
176其他CMOS逻辑门19
177传输门20
178类nMOS逻辑20
18功耗21
19总结和展望22
习题22
面试问题28
第2章组合逻辑设计29
21引言29
22布尔表达式31
221术语31
222与或式31
223或与式32
23布尔代数33
231公理33
232单变量定理33
233多变量定理34
234定理的统一证明方法35
235等式化简36
24从逻辑到门37
25多级组合逻辑39
251减少硬件39
252推气泡40
26X和Z41
261非法值X41
262浮空值Z41
27卡诺图42
271画圈的原理43
272卡诺图化简逻辑44
273无关项46
274小结47
28组合逻辑模块47
281复用器47
282译码器50
29时序51
291传播延迟和最小延迟51
292毛刺54
210总结55
习题55
面试问题60
第3章时序逻辑设计61
31引言61
32锁存器和触发器61
321SR锁存器62
322D锁存器63
323D触发器64
324寄存器64
325带使能端的触发器65
326带复位功能的触发器65
327晶体管级锁存器和触发器的设计66
328小结66
33同步逻辑设计67
331一些有问题的电路67
332同步时序电路68
333同步电路和异步电路70
34有限状态机70
341有限状态机设计实例70
342状态编码74
343Moore型状态机和Mealy型状态机76
344状态机的分解79
345由电路图导出状态机80
346有限状态机小结82
35时序逻辑的时序82
351动态约束83
352系统时序83
353时钟偏移87
354亚稳态88
355同步器89
356分辨时间的推导90
36并行92
37总结94
习题95
面试问题100
第4章硬件描述语言101
41引言101
411模块101
412硬件描述语言的起源101
413模拟和综合102
42组合逻辑104
421位运算符104
422注释和空白104
423缩位运算符106
424条件赋值106
425内部变量106
426优先级109
427数字109
428Z和X110
429位混合111
4210延迟112
43结构化建模113
44时序逻辑115
441寄存器115
442复位寄存器115
443带使能端的寄存器116
444多寄存器116
445锁存器119
45更多组合逻辑119
451case语句120
452if语句122
453带有无关项的真值表122
454阻塞赋值和非阻塞赋值124
46有限状态机127
47数据类型130
471SystemVerilog130
472VHDL131
48参数化模块133
49测试程序135
410总结138
习题138
面试问题145
第5章数字模块146
51引言146
52算术电路146
521加法146
522减法151
523比较器152
524算术逻辑单元153
525移位器和循环移位器154
526乘法155
527除法156
528补充阅读156
53数制157
531定点数157
532浮点数157
54时序电路模块160
541计数器160
542移位寄存器160
55存储器阵列162
551概述162
552动态随机访问存储器164
553静态随机访问存储器165
554面积和延迟165
555寄存器文件165
556只读存储器165
557使用存储器阵列的逻辑167
558存储器HDL167
56逻辑阵列168
561可编程逻辑阵列169
562现场可编程逻辑门阵列169
563阵列实现173
57总结174
习题174
面试问题180
第6章体系结构181
61引言181
62汇编语言182
621指令182
622操作数:寄存器、存储器和常数183
63机器语言187
631R类型指令187
632l类型指令188
633J类型指令189
634解释机器语言代码189
635存储程序189
64编程190
641算术/逻辑指令190
642分支193
643条件语句194
644循环195
645数组197
646函数调用200
65寻址方式206
66编译、汇编和装入208
661内存映射208
662转换成二进制代码和开始执行程序209
67其他主题211
671伪指令211
672异常212
673有符号指令和无符号指令212
674浮点指令213
68从现实世界看:x86结构214
681x86寄存器215
682x86操作数215
683状态标志216
684x86指令集216
685x86指令编码218
686x86的其他特性219
687小结219
69总结219
习题220
面试问题227
第7章微体系结构228
71引言228
711体系结构状态和指令集228
712设计过程229
713MIPS微体系结构230
72性能分析230
73单周期处理器231
731单周期数据路径231
732单周期控制235
733更多指令237
734性能分析239
74多周期处理器240
741多周期数据路径240
742多周期控制244
743更多指令252
744性能分析254
75流水线处理器255
751流水线数据路径257
752流水线控制258
753冲突258
754更多指令269
755性能分析269
76硬件描述语言表示270
761单周期处理器270
762通用模块274
763基准测试程序276
77异常279
78高级微体系结构281
781深流水线282
782分支预测282
783超标量处理器284
784乱序处理器285
785寄存器重命名287
786单指令流多数据288
787多线程288
788同构多处理器289
789异构多处理器289
79从现实世界看:x86微体系结构290
710总结295
习题296
面试问题300
第8章存储器和输入/输出系统301
81引言301
82存储器系统性能分析304
83高速缓存305
831高速缓存中存放的数据305
832高速缓存中的数据查找305
833数据的替换311
834高级高速缓存设计312
835MIPS高速缓存的发展314
84虚拟存储器315
841地址转换316
842页表317
843转换后备缓冲器318
844存储器保护319
845替换策略319
846多级页表319
85I/O简介321
86嵌入式I/O系统322
861PIC32MX675F512H微控制器322
862通用数字I/O326
863串行I/O328
864计时器336
865中断337
866模拟I/O339
867其他微控制器外设343
87PC I/O系统358
871USB359
872PCI和PCI Express360
873DDR3内存360
874网络360
875SATA361
876连接到PC361
88从现实世界看:x86存储器和I/O系统363
881x86高速缓存系统363
882x86虚拟存储器364
883x86可编程I/O365
89总结365
后记365
习题365
面试问题371
附录A数字系统实现372
附录BMIPS指令396
附录CC语言编程400
附录DMIPS处理器的FPGA实现433
补充阅读452
索引454