第0章 绪论 1
0.1 计算机历史 1
0.1.1 最初的机械计算机 1
0.1.2 早期的电子计算机 1
0.1.3 前四代计算机 2
0.1.4 第五代计算机以及未来 2
0.2 数字系统 3
0.2.1 数字与模拟系统 3
0.2.2 层次化的数字系统设计 4
0.3 可储存程序的数字计算机的体系结构 8
0.3.1 计算机指令 9
0.3.2 计算机中信息表示方法 10
0.3.3 计算机硬件 11
0.3.4 计算机软件 12
0.4 小结 14
参考文献 14
第1章 数制与编码 15
1.1 数制格式 15
1.1.1 位置表示法 15
1.1.2 常用的数制格式 16
1.2 运算 17
1.2.1 二进制运算 18
1.2.2 八进制运算 20
1.2.3 十六进制运算 22
1.3 数制的转换 24
1.3.1 转换方法 24
1.3.2 通用的转换算法 27
1.3.3 格式A到格式B=Ak的转换方法 28
1.4 有符号数的表示 29
1.4.1 符号-幅度表示法 30
1.4.2 补码表示法 31
1.5 计算机编码 42
1.5.1 数字编码 43
1.5.2 字符和其他编码 47
1.5.3 检错码和纠错码 50
1.6 本章小结 57
参考文献 58
习题 58
第2章 逻辑代数 61
2.1 布尔代数的基本原理 61
2.1.1 基本公理 61
2.1.2 公理的文氏图表示 62
2.1.3 对偶性 64
2.1.4 布尔代数的基本定理 65
2.2 开关函数 71
2.2.1 真值表 73
2.2.2 开关函数的代数形式 74
2.2.3 标准形式的推导 81
2.2.4 不完全确定函数 82
2.3 开关电路 84
2.3.1 逻辑门电路 84
2.3.2 基本的逻辑功能器件 85
2.4 组合电路的分析 95
2.4.1 代数方法 96
2.4.2 时序图的分析 98
2.5 组合电路的设计综合 102
2.5.1 与-或/与非电路网络 102
2.5.2 或-与/或非电路网络 103
2.5.3 两级电路结构 104
2.5.4 与-或-反电路 106
2.5.5 因子提取法 107
2.6 应用 108
2.7 逻辑电路的计算机辅助设计 111
2.7.1 设计周期 111
2.7.2 数字电路建模 112
2.7.3 设计综合和输入工具 117
2.7.4 逻辑仿真 122
2.8 本章小结 131
参考文献 131
习题 132
第3章 开关函数的化简 137
3.1 化简目的 137
3.2 最小化方法的特点 138
3.3 卡诺图 139
3.3.1 维恩图和真值表的关系 139
3.3.2 四个及四个以上变量的卡诺图 140
3.4 标准形式的函数在卡诺图中的表示 141
3.5 应用卡诺图化简开关函数 146
3.5.1 卡诺图简化函数的原则 147
3.5.2 开关函数化简的术语 148
3.5.3 卡诺图推导函数最小SOP形式的算法 149
3.6 卡诺图化简逻辑函数(POS形式) 155
3.6.1 POS形式化简中的术语 155
3.6.2 卡诺图推导POS形式最简表达式的算法 155
3.7 含不定项的函数 160
3.8 使用卡诺图消除组合电路的时序竞争 162
3.9 Q-M表格法化简方法 166
3.9.1 覆盖流程 169
3.9.2 带不定项的函数化简 172
3.9.3 多输出系统的化简 173
3.10 Petrick算法 176
3.11 计算机辅助的函数化简 177
3.11.1 开关函数的合并项表示 179
3.11.2 求解主蕴含项的逻辑代数方法 180
3.11.3 找出基本主蕴含项 181
3.11.4 完成最小覆盖集合 182
3.11.5 其他化简算法 184
3.12 本章小结 185
参考文献 185
习题 185
第4章 组合逻辑电路器件 193
4.1 自顶向下的模块化设计方法 193
4.2 译码器 195
4.2.1 译码器电路结构 195
4.2.2 使用译码器实现逻辑功能 196
4.2.3 使能输入端 198
4.2.4 标准MSI译码器 200
4.2.5 译码器的应用 203
4.3 编码器 207
4.3.1 编码器电路结构 208
4.3.2 标准MSI编码器 212
4.4 多路复用器/数据选择器 213
4.4.1 多路复用器电路结构 214
4.4.2 标准MSI多路复用器 216
4.4.3 多路复用器的应用 221
4.5 多路分配器/数据分配器 224
4.6 二进制算术单元 226
4.6.1 基本二进制加法电路 226
4.6.2 MSI二进制加法器模块 228
4.6.3 高速加法单元 231
4.6.4 二进制减法电路 234
4.6.5 算术溢出检测 236
4.7 比较器 237
4.8 设计实例:计算机的算术逻辑单元 241
4.9 模块化系统的计算机辅助设计 247
4.9.1 设计库 248
4.9.2 绘制层次化原理图 248
4.10 层次化系统的仿真 251
4.11 本章小结 252
参考文献 252
习题 253
第5章 可编程逻辑器件与组合逻辑电路设计 259
5.1 半定制逻辑器件 259
5.2 逻辑阵列电路 260
5.2.1 二极管数字逻辑电路 260
5.2.2 “与”逻辑阵列和“或”逻辑阵列 261
5.2.3 两级与-或阵列 263
5.2.4 现场可编程“与”阵列和“或”阵列 266
5.2.5 输出极性控制 268
5.2.6 双向管脚控制以及信号反馈输入 269
5.2.7 商用可编程逻辑芯片 272
5.3 现场可编程逻辑阵列 273
5.3.1 FPLA的电路结构 273
5.3.2 利用FPLA实现逻辑函数 273
5.4 通用只读存储器 278
5.4.1 PROM电路结构 278
5.4.2 用PROM器件实现逻辑函数 278
5.4.3 查找表 281
5.4.4 通用只读存储器的应用 282
5.4.5 只读存储器技术 282
5.5 可编程逻辑阵列 284
5.5.1 PAL电路结构 284
5.5.2 用PAL实现逻辑函数功能 285
5.5.3 PAL的输出和反馈选项 286
5.6 PLD设计的CAD辅助设计工具 290
5.6.1 用PDL语言设计PLD 291
5.6.2 PDL描述文件的处理 295
5.7 本章小结 296
参考文献 296
习题 297
第6章 时序电路器件入门 298
6.1 时序电路的模型 298
6.1.1 方框图表示 298
6.1.2 状态表和状态图 299
6.2 存储单元 301
6.3 锁存器 302
6.3.1 置位/复位型锁存器 302
6.3.2 门控SR锁存器 307
6.3.3 延迟锁存器 308
6.4 触发器 313
6.4.1 主从SR触发器 314
6.4.2 主从式D触发器 315
6.4.3 主从式JK触发器 316
6.4.4 边沿触发式D触发器 318
6.4.5 边沿触发的JK触发器 320
6.4.6 T触发器 321
6.4.7 锁存器和触发器的小结 323
6.5 其他的存储器件 324
6.6 定时电路 324
6.6.1 单脉冲电路 324
6.6.2 555定时器 324
6.7 时序电路的原型设计 326
6.8 本章小结 329
参考文献 329
习题 329
第7章 时序逻辑器件 335
7.1 移位寄存器 335
7.1.1 通用移位寄存器 336
7.1.2 标准TTL移位寄存器器件 337
7.2 电路设计实例 346
7.2.1 串行加法单元 346
7.2.2 串行累加器 347
7.2.3 并行累加器 348
7.3 计数器 348
7.3.1 同步二进制计数器 348
7.3.2 异步二进制计数器 352
7.3.3 减计数器 355
7.3.4 加/减计数器 355
7.4 模N计数器 358
7.4.1 同步BCD计数器 358
7.4.2 异步BCD计数器 360
7.4.3 模6和模12计数器 363
7.4.4 异步复位型模N计数器 366
7.4.5 同步复位型模N计数器 366
7.5 采用移位寄存器设计的计数器 367
7.5.1 环形计数器 368
7.5.2 扭环计数器 371
7.6 多序列计数器 376
7.7 数字小数比例乘法器 376
7.7.1 TTL比例乘法器 378
7.7.2 级联的数字比例乘法器 381
7.8 本章小结 382
参考文献 382
习题 383
第8章 同步时序电路的分析和设计 386
8.1 同步时序电路模型 386
8.1.1 Mealy型时序电路 387
8.1.2 Moore型时序电路 388
8.2 时序电路的分析 389
8.2.1 时序电路状态图的分析 390
8.2.2 时序逻辑电路图的分析 390
8.2.3 小结 398
8.3 同步时序电路的综合 399
8.3.1 电路综合的过程 400
8.3.2 触发器的输入表 401
8.3.3 JK触发器的方程推导法 403
8.3.4 设计实例 404
8.3.5 算法状态机图 420
8.3.6 独热有限状态机的设计步骤 424
8.4 具有不定态的电路 427
8.4.1 状态赋值和电路实现 428
8.5 时序电路的计算机辅助设计 429
8.5.1 设计输入和综合 430
8.5.2 设计分析和验证 434
8.6 本章小结 436
参考文献 437
习题 437
第9章 时序电路的简化 444
9.1 冗余状态 444
9.1.1 等价状态 444
9.1.2 等价和相容 445
9.2 状态化简(状态完全确定的时序电路) 446
9.2.1 状态观察 446
9.2.2 状态分组 447
9.2.3 状态蕴含表 449
9.3 状态不定时序电路的状态化简 452
9.3.1 状态的相容性 453
9.3.2 化简过程 456
9.4 最佳状态赋值方法 462
9.4.1 特殊状态赋值 463
9.4.2 状态赋值的原则 465
9.4.3 分组法 472
9.4.4 最优状态赋值 475
9.5 本章小结 475
参考文献 476
习题 476
第10章 异步时序电路设计 480
10.1 异步时序电路的分类 480
10.2 脉冲模式异步时序电路分析 481
10.3 脉冲模式异步时序电路的设计 486
10.3.1 脉冲模式异步时序电路设计过程 486
10.4 基本模式异步时序电路分析 492
10.4.1 分析方法概述 494
10.4.2 表格表示法 495
10.4.3 分析过程 496
10.5 基本模式异步时序电路设计 498
10.5.1 综合过程 498
10.6 竞争、死锁和冒险 506
10.6.1 竞争与死锁 507
10.6.2 竞争的避免 510
10.6.3 无“临界”竞争的状态赋值 512
10.6.4 “冒险” 516
10.6.5 电路分析 518
10.7 本章小结 518
参考文献 518
习题 518
第11章 时序电路可编程逻辑器件 528
11.1 输出锁存的可编程控制器件 528
11.1.1 现场可编程逻辑序列发生器 532
11.1.2 带输出锁存的PAL 536
11.1.3 带可编程逻辑宏单元的PLD 537
11.2 可编程门阵列 544
11.2.1 逻辑单元阵列 544
11.2.2 ACT FPGA器件 549
11.3 时序电路设计与PLD器件的选择 551
11.4 PLD设计实例 552
11.5 时序PLD的计算机辅助设计 557
11.5.1 用PDL设计时序电路 559
11.5.2 对PDL描述文件的处理 563
11.6 本章小结 565
参考文献 565
习题 565
第12章 逻辑电路的测试及可测试性设计 570
12.1 数字逻辑电路测试 570
12.2 故障模型 571
12.3 组合逻辑电路测试 572
12.3.1 测试向量产生 573
12.3.2 不可测故障 579
12.3.3 多输出电路 580
12.3.4 故障检测向量集 581
12.3.5 故障定位和诊断 584
12.3.6 随机测试 585
12.4 时序逻辑电路测试 586
12.5 可测性设计 589
12.5.1 扫描路径设计 589
12.6 内置自测电路 593
12.6.1 伪随机测试向量生成 593
12.6.2 特征分析 595
12.6.3 内置逻辑块观测单元 598
12.7 板级和系统级边界扫描 600
12.8 本章小结 603
参考文献 603
习题 604
第13章 系统设计实例 609
13.1 自动老虎游戏机 609
13.1.1 问题提出 609
13.1.2 系统需求和解决方案 610
13.1.3 逻辑设计 611
13.2 汽车密码锁 619
13.2.1 问题的提出 619
13.2.2 系统需求 619
13.2.3 逻辑设计 621
13.3 单车道交通控制器 626
13.3.1 系统需求 627
13.3.2 逻辑设计 629
13.4 超市收款机 634
13.4.1 系统需求 635
13.4.2 逻辑设计 635