第1章 设计概念 1
1.1 数字硬件 1
1.1.1 标准芯片 2
1.1.2 可编程逻辑器件 3
1.1.3 全定制设计芯片 3
1.2 设计过程 4
1.3 数字硬件的设计 5
1.3.1 基本设计周期 5
1.3.2 数字硬件单元的设计 6
1.4 本书的逻辑电路设计 8
1.5 理论与实际 9
参考文献 10
第2章 逻辑电路导论 11
2.1 变量与函数 11
2.2 反相 13
2.3 真值表 14
2.4 逻辑门与网络 14
2.4.1 逻辑网络的分析 15
2.5 布尔代数 17
2.5.1 文氏图 20
2.5.2 记号与术语 22
2.5.3 运算的优先级 22
2.6 用与门、或门和非门进行综合 23
2.6.1 积之和形式与和之积形式 25
2.7 设计实例 28
2.7.1 三路灯控制 28
2.7.2 多路器电路 30
2.8 CAD工具简介 31
2.8.1 设计输入 31
2.8.2 综合 33
2.8.3 功能模拟 34
2.8.4 小结 34
2.9 VHDL简介 35
2.9.1 用VHDL表示数字电路 36
2.9.2 如何写简单VHDL代码 36
2.9.3 如何写VHDL代码 38
习题 39
2.10 结论 39
参考文献 42
第3章 实现技术 43
3.1 晶体管开关 43
3.2 NMOS逻辑门 45
3.3 CMOS逻辑门 48
3.3.1 逻辑门电路的速度 52
3.4 负逻辑系统 52
3.5.1 7400系列标准芯片 54
3.5 标准芯片 54
3.6 可编程逻辑器件 56
3.6.1 可编程逻辑阵列PLA 56
3.6.2 可编程阵列逻辑PAL 58
3.6.3 对PLA和PAL编程 60
3.6.4 复合可编程逻辑器件CPLD 61
3.6.5 现场可编程门阵列 63
3.6.6 使用CAD工具在CPLD和FPGA中实现电路 67
3.7 客户定制芯片、标准单元和门阵列 67
3.8 实际特性 69
3.8.1 金属氧化物场效应晶体管的制造和特性 70
3.8.2 MOSFET的导通电阻 72
3.8.3 逻辑门的电平 73
3.8.4 噪声容限 74
3.8.5 逻辑门的动态运行 75
3.8.6 逻辑门的功耗 77
3.8.7 通过晶体管开关传送1和0 79
3.8.8 逻辑门的扇入和扇出 80
3.9 传输门 84
3.9.2 多路器电路 85
3.9.1 异或门 85
3.10 可编程器件(SPLD,CPLD和FPGA)的实现细节 86
3.10.1 FPGA的实现 91
3.11 结束语 92
习题 93
参考文献 100
第4章 逻辑函数的优化实现 101
4.1 卡诺图 101
4.2 最小化的策略 107
4.2.1 名词术语 108
4.2.2 最小化过程 109
4.3 和之积形式的最小化 111
4.4 不完全规定函数 113
4.5 多输出电路 114
4.6 与非门和或非门组成的逻辑网络 116
4.7 多级综合 118
4.7.1 提取公因子 118
4.7.2 功能分解 121
4.7.3 多级与非和或非电路 125
4.8 多级电路分析 127
4.9 立方体表示法 131
4.9.1 立方体和超立方体 131
4.10 使用立方体表示法对函数最小化 134
4.10.1 产生质蕴涵项 134
4.10.2 确定必要质蕴涵项 136
4.10.3 求最小覆盖的完整过程 138
4.11 一些实际问题 140
4.12 CAD工具 140
4.12.1 逻辑综合和优化 141
4.12.2 物理设计 142
4.12.3 时序模拟 143
4.12.4 设计流程小结 144
4.12.5 由VHDL代码综合而得的电路实例 145
4.13 小结 150
习题 150
参考文献 154
第5章 数的表示方法和算术运算电路 155
5.1 数的位置表示法 155
5.1.1 无符号整数 155
5.1.3 八进制和十六进制数的表示方法 156
5.1.2 十进制系统和二进制系统之间的转换 156
5.2 无符号数的加法运算 158
5.2.1 全加器的分解 161
5.2.2 行波进位加法器 161
5.2.3 设计实例 162
5.3 有符号数 163
5.3.1 负数 164
5.3.2 加法和减法 165
5.3.3 加法器、减法器 168
5.3.4 基数补码方案 170
5.3.5 算术运算的一般观察 173
5.3.6 电路的性能 174
5.4 快速加法器 174
5.4.1 先行进位加法器 175
5.5 使用CAD工具设计算术运算电路 180
5.5.1 使用原理图编辑器设计算术运算电路 180
5.5.2 使用VHDL设计算术运算电路 182
5.5.3 VHDL代码中表示数字方法 185
5.5.4 算术赋值语句 186
5.6 乘法 189
5.6.1 无符号数的阵列乘法器 190
5.6.2 有符号数的乘法 192
5.7 数的其他表示方法 193
5.7.1 定点数 193
5.7.2 浮点数 193
5.7.3 二-十进制表示法 194
5.8 ASCII字符代码 198
习题 200
参考文献 203
6.1 多路器 204
第6章 组合电路积木块 204
6.1.1 以多路器为元件的逻辑综合 206
6.1.2 使用香农展开的多路器综合 209
6.2 译码器 213
6.2.1 多路分解器 216
6.3 编码器 217
6.3.1 二进制编码器 217
6.3.2 优先级编码器 218
6.5 算术比较电路 219
6.4 代码转换器 219
6.6 用VHDL设计组合逻辑电路 221
6.6.1 赋值语句 221
6.6.2 选择信号赋值语句 221
6.6.3 条件信号赋值语句 224
6.6.4 FOR生成语句 226
6.6.5 并行和顺序赋值语句 228
6.6.6 进程语句 228
6.6.7 CASE语句 232
6.7 结束语 235
习题 236
参考文献 239
第7章 触发器、寄存器、计数器和一个简单的处理器 240
7.1 基本的锁存器 241
7.2 SR选通锁存器 242
7.2.1 用与非门组成选通RS锁存器 244
7.3 选通D锁存器 244
7.3.1 传输延迟的影响 246
7.4.2 边沿触发的D触发器 247
7.4 主-从触发器和边沿触发D触发器 247
7.4.1 主-从D触发器 247
7.4.3 带有清0和预置信号的D触发器 250
7.5 T触发器 252
7.5.1 可配置的触发器 253
7.6 JK触发器 253
7.7 术语小结 254
7.8 寄存器 254
7.8.1 移位寄存器 254
7.8.2 并行存取的移位寄存器 255
7.9 计数器 256
7.9.1 异步计数器 257
7.9.2 同步计数器 258
7.9.3 具有并行加载功能的计数器 262
7.10 同步清0 263
7.11 其他类型的计数器 264
7.11.1 二-十进制计数器 265
7.11.2 环形计数器 265
7.12 用CAD工具设计含存储元件的电路 267
7.12.1 用图形编辑器设计含存储元件的电路 267
7.11.4 关于计数器设计的评述 267
7.11.3 Johnson计数器 267
7.12.2 在VHDL代码中使用锁存器和触发器 270
7.12.3 用VHDL的顺序语句描述存储元件 270
7.13 用CAD工具设计包含寄存器和计数器的电路 273
7.13.1 用图形编辑器设计包含寄存器和计数器的电路 273
7.13.2 用VHDL描述含寄存器和计数器的电路 276
7.13.3 使用VHDL的顺序语句描述寄存器和计数器 276
7.14.1 总线结构 283
7.14 设计实例 283
7.14.2 简单的处理器 293
7.14.3 反应计时器 302
7.15 小结 306
习题 306
参考文献 310
第8章 同步时序电路 311
8.1 基本设计步骤 312
8.1.1 状态图 312
8.1.3 状态分配 313
8.1.2 状态表 313
8.1.4 选择触发器得到次态和输出表达式 315
8.1.5 时序图 316
8.1.6 设计步骤小结 317
8.2 状态分配问题 320
8.2.1 一热态位编码 322
8.3 Mealy状态模型 323
8.4 用CAD工具设计有限状态机 327
8.4.1 用VHDL描述Moore型有限状态机 327
8.4.2 VHDL代码的综合 329
8.4.3 电路的模拟与测试 331
8.4.4 另一种风格的VHDL代码 332
8.4.5 使用CAD工具的设计步骤小结 334
8.4.6 用VHDL代码指定状态分配 334
8.4.7 用VHDL描述Mealy型有限状态机 336
8.5 串行加法器实例 338
8.5.1 串行加法器的Mealy型有限状态机 338
8.5.2 串行加法器的Moore型有限状态机 339
8.5.3 串行加法器的VHDL代码 341
8.6 状态最小化 345
8.6.1 划分最小化过程 345
8.6.2 不完全规定有限状态机 350
8.7 用时序电路的方法设计计数器 351
8.7.1 模8计数器的状态图和状态表 352
8.7.2 状态分配 352
8.7.3 用D触发器实现 353
8.7.4 用JK触发器实现 355
8.7.5 实例——另一种计数器 357
8.8 仲裁器电路的有限状态机 359
8.8.1 仲裁器电路的实现 360
8.8.2 减小状态机的输出延迟 364
8.8.3 小结 364
8.9 同步时序电路的分析 364
8.10 算法状态机(ASM)流程图 367
8.11 时序电路的形式模型 370
8.12 结束语 371
习题 371
参考文献 374
第9章 异步时序电路 376
9.1 异步行为 376
9.2 异步电路分析 379
9.3 异步电路综合 385
9.4 状态化简 395
9.5 状态分配 406
9.5.1 迁移图 408
9.5.2 利用未指定的次态项 411
9.5.3 利用附加状态变量的状态分配 414
9.5.4 一热态位状态分配 418
9.6.1 静态冒险 419
9.6 冒险 419
9.6.2 动态冒险 423
9.6.3 冒险的影响 424
9.7 一个完整的设计实例 424
9.7.1 自动售货机控制器 425
9.8 本章小结 429
习题 429
参考文献 432
10.1.1 带使能输入的触发器和寄存器 433
第10章 数字系统设计 433
10.1 积木块电路 433
10.1.2 带有使能输入的移位寄存器 434
10.1.3 静态随机访问存储器(SRAM) 436
10.1.4 PLD中的SRAM模块 438
10.2 设计实例 438
10.2.1 位计数器电路 439
10.2.2 含有时间信息的算法状态图 440
10.2.3 移位加乘法器 443
10.2.4 除法器 447
10.2.5 算术平均数 454
10.2.6 排序操作 458
10.3 时钟同步 466
10.3.1 时钟偏移 466
10.3.2 触发器的时间参数 468
10.3.3 触发器的异步输入 469
10.3.4 消除开关抖动 470
10.4 结论 470
习题 471
参考文献 474
第11章 逻辑电路的测试 475
11.1 故障模型 475
11.1.1 固定故障 475
11.1.2 单故障与多故障 475
11.1.3 CMOS电路 476
11.2 测试集的复杂性 476
11.3 路径敏化 477
11.3.1 指定故障的检测 478
11.4 树型结构的电路 480
11.5 随机测试 481
11.6 时序电路的测试 483
11.6.1 可测性设计 483
11.7 内建自测试 486
11.7.1 内建逻辑块观察器 489
11.7.2 名标分析 491
11.7.3 边界扫描 491
11.8 印制电路板 492
11.8.1 PCB的测试 493
11.8.2 测试设备 494
11.9 本章小结 495
习题 495
参考文献 497
附录A VHDL简介 498
附录B 使用指南1 541
附录C 使用指南2 566
附录D 使用指南3 581
附录E 商业器件 602
附录F 英汉词汇对照表 613