前言 1
第Ⅰ部分 设计与测试 1
第1章 测试综述 1
1.1 可靠性与测试 1
1.2 设计过程 1
译者序 1
1.3.2 时间模拟 4
1.4 测试 4
1.3.1 功能模拟 4
1.3 验证 4
1.5 故障及其检测 6
1.6 测试码生成 7
1.7 故障覆盖率 8
1.8 测试类型 8
1.8.1 穷举测试 8
1.8.2 伪穷举测试 8
1.8.3 伪随机测试 9
1.8.4 确定性测试 9
1.9 测试应用 9
1.9.2 自动测试仪器 10
1.9.1 在线测试与离线测试 10
1.9.3 片上测试与片外测试 11
1.10 易测试性设计 11
1.10.1 可控性 12
1.10.2 可观察性 12
1.11 测试经济 12
1.11.1 收益和缺陷级 13
1.11.2 故障覆盖率和缺陷级别 13
1.12 进一步研究 14
参考文献 15
习题 16
第2章 缺陷、失效和故障 18
2.1 简介 18
2.2 物理缺陷 19
2.2.1 材料过多和缺失 20
2.2.2 氧化物断裂 20
2.2.3 电迁移 20
2.3 故障模式 21
2.3.1 开路 21
2.3.2 短路 21
2.5 固定型故障 22
2.5.1 单固定型故障 22
2.4 故障 22
2.5.2 多固定故障 24
2.6 故障列表 24
2.6.1 等价关系 24
2.6.2 支配关系 25
2.6.3 故障精简 25
2.7 桥接故障 26
2.8 短路和开路故障 28
2.8.1 NMOS电路 29
2.8.2 CMOS电路 29
2.9 时延故障 32
2.10 暂时失效 33
2.10.1 瞬时故障 33
2.10.2 间歇故障 34
2.11 噪声失效 34
参考文献 35
习题 38
第3章 设计表示 39
3.1 抽象级 39
3.2 数学方程 41
3.2.1 开关函数 41
3.2.2 布尔差分 42
3.2.3 有限状态机 43
3.2.4 晶体管级表示 43
3.3 列表格式 45
3.3.1 真值表 45
3.3.2 状态表 45
3.4 图形表示 46
3.5 图 47
3.6 二叉判断图 49
3.7 网表 51
3.8.1 Verilog语言 52
3.8 硬件描述语言 52
3.8.2 VHDL语言 54
参考文献 54
习题 55
第4章 VLSI设计流程 57
4.1 简介 57
4.2 CAD工具 57
4.3 算法 58
4.4 综合 59
4.4.1 行为综合 62
4.4.2 逻辑综合 62
4.5 设计方法 63
4.6 半定制设计 64
4.6.1 标准单元设计 64
4.6.2 掩模可编程门阵列 65
4.6.3 可编程设备 65
4.7 物理设计 67
4.7.1 平面布局 67
5.7.1 故障覆盖率 69
4.7.2 布局 69
4.7.3 布线 70
4.7.4 反标 72
参考文献 73
习题 74
第Ⅱ部分 测试流程 77
第5章 测试中模拟的角色 77
5.1 简介 77
5.2 大型设计的模拟 78
5.2.1 测试平台 78
5.2.2 基于设计周期的模拟 79
5.3 逻辑模拟 79
5.4 模拟方法 79
5.4.1 编译模拟 79
5.4.2 事件驱动模拟 80
5.5 时间模型 81
5.5.2 混合级模拟 83
5.6 故障模拟 83
5.5.1 静态时间分析 83
5.6.1 并行故障模拟 84
5.6.2 演绎故障模拟 85
5.6.3 并发故障模拟 87
5.7 故障模拟结果 89
5.7.2 故障字典 90
习题 91
参考文献 91
第6章 自动测试码生成 93
6.1 简介 93
6.2 术语和符号 93
6.2.1 基本操作 93
6.2.2 逻辑和集合操作 94
6.2.3 故障列表 95
6.3 D算法 96
6.3.1 内部节点情况 97
6.3.2 原始输入情况 98
6.4 临界路径 99
6.3.3 原始输出情况 99
6.3.4 选择策略 99
6.5 回溯和扇出重汇聚 101
6.6 PODEM 101
6.7 其他算法 105
6.7.1 FAN算法 105
6.7.2 SOCRATES 105
6.8 时序电路测试 105
6.8.1 功能测试 106
6.8.2 确定性测试码生成 109
参考文献 112
习题 114
第7章 电流测试 116
7.1 简介 116
7.2 基本概念 117
7.3 无故障电流 119
7.3.1 转换与静止电流 119
7.3.2 转换时延 120
7.4 电流感应技术 121
7.4.1 片外测量 121
7.4.2 片上测量 122
7.5 故障检测 123
7.5.1 泄漏故障 124
7.5.2 桥接故障 125
7.5.3 固定开路故障 125
7.5.4 时延故障 126
7.6 测试码生成 127
7.6.1 基于开关级模型 127
7.6.2 基于泄露模型故障 128
7.7 深亚微级技术的影响 128
参考文献 130
习题 132
第Ⅲ部分 易测试性设计 133
第8章 专用技术 133
8.1 简介 133
8.2 DFT的内容 133
8.2.1 测试码产生及应用 133
8.2.2 当前大规模集成电路特性 134
8.3 易测试性分析 135
8.4 初始化及测试点 138
8.4.1 初始化 138
8.4.2 观测点 138
8.4.3 控制点 139
8.5 易测试性划分 140
8.6 易测试的电路 145
8.6.1 C易测试性 146
8.6.2 扩充测试 149
参考文献 150
习题 151
第9章 路径扫描设计 153
9.1 简介 153
9.2 路径扫描设计 153
9.3 测试码产生 154
9.4 测试码应用 155
9.4.1 测试触发器 156
9.4.2 测试电路的组合部分 156
9.5 路径扫描设计的例子 156
9.6 存储设备 158
9.6.1 两端口触发器 158
9.6.2 时钟门锁 159
9.7 扫描结构 160
9.7.1 级敏扫描设计 160
9.7.2 扫描集结构 161
9.9.1 额外区域与引脚 162
9.9 路径扫描设计的代价 162
9.8 多级扫描链 162
9.9.2 性能 163
9.9.3 测试时间 163
9.9.4 热消耗 163
9.10 部分扫描测试 163
9.10.1 定义 165
9.10.2 选择扫描触发器 165
9.10.3 测试应用 166
9.11 调整扫描链上的触发器 166
9.11.1 最优化测试应用 166
9.11.2 最优化连接线 168
参考文献 169
习题 170
第10章 边界扫描测试 172
10.1 简介 172
10.2 传统电路板测试 172
10.3 边界扫描体系结构 174
10.4 测试访问端口 175
10.5 寄存器 176
10.5.1 边界扫描单元 176
10.5.3 边界扫描寄存器 177
10.5.2 旁通寄存器 177
10.5.4 指令寄存器 178
10.5.5 设备识别寄存器 178
10.6 TAP控制器 178
10.6.1 控制器状态 178
10.6.2 指令集 180
10.7 操作模式 181
10.7.1 正常操作 182
10.7.2 测试模式操作 182
10.10 进一步研究 184
10.9 边界扫描设计的代价 184
10.8 边界扫描语言 184
10.7.3 测试边界扫描寄存器 184
参考文献 185
习题 185
第11章 内建自测试 186
11.1 简介 186
11.2 伪随机测试码生成 187
11.2.1 线性反馈移位寄存器 187
11.2.2 LFSR结构 188
11.2.3 LFSR的数学理论基础 189
11.3.2 1-计数 194
11.3 响应压缩 194
11.3.1 奇偶测试 194
11.3.3 转换计数 195
11.3.4 特征分析 196
11.3.5 空间压缩 199
11.4 抗随机码故障 201
11.5 BIST结构 202
11.5.1 BIST结构 202
11.5.2 自主测试 202
11.5.3 循环BIST 203
11.5.4 BILBO 204
11.5.5 随机测试槽 205
11.5.6 STUMPS 206
参考文献 208
习题 209
第Ⅳ部分 特殊结构 211
第12章 存储器测试 211
12.1 动机 211
12.2 存储器模型 211
12.2.1 功能模型 211
12.2.3 RAM组织 213
12.2.2 存储器单元 213
12.3 缺陷和故障模型 214
12.3.1 缺陷 214
12.3.2 阵列故障模型 214
12.3.3 外围逻辑 217
12.4 存储器测试类型 217
12.4.1 规格测试 218
12.4.2 特性测试 218
12.4.3 功能测试 218
12.5 功能测试方案 219
12.4.4 电流测试 219
12.5.1 MSCAN 220
12.5.2 GALPAT算法 220
12.5.3 算法测试序列 220
12.5.4 步进码序列 221
12.5.5 棋盘测试 222
12.6 存储器BIST 223
12.7 存储器诊断与维修 225
参考文献 225
习题 226
13.1 简介 228
13.2 FPGA 228
第13章 FPGA与微处理器的测试 228
13.2.1 结构 229
13.2.2 可编程能力 231
13.3 FPGA的易测试性 232
13.3.1 缺陷与故障 232
13.3.2 FPGA测试方法 233
13.4 基于RAM的FPGA的测试 233
13.4.1 功能测试 233
13.4.2 IDDO测试 235
13.4.3 BIST 236
13.5 微处理器 238
13.4.4 诊断测试 238
13.5.1 微处理器模型 239
13.5.2 微处理器验证 240
13.6 微处理器的测试 241
13.6.1 指令集的验证 242
13.6.2 数据路径的测试 242
13.7 现代微处理器中的DFT特性 244
13.7.1 SUN公司处理器的测试 244
13.7.2 Alpha 21164处理器的测试 245
13.7.3 Intel Pentium Pro的测试 245
13.7.5 IBM S/390的测试 247
13.7.4 AMD K6的测试 247
13.7.6 惠普PA8500的测试 248
参考文献 248
习题 251
第Ⅴ部分 高级论题 253
第14章 易测试性综合 253
14.1 简介 253
14.2 易测试性相关内容 253
14.3 综合回顾 254
14.4 高级综合 254
14.4.1 模型编译 255
14.4.2 转化 257
14.4.3 调度 257
14.4.4 分配和绑定 259
14.5 测试综合方法 260
14.5.1 划分 261
14.5.2 可控制性和可观察性 262
14.5.3 反馈回路 263
14.5.4 路径扫描 264
14.5.5 BIST插入 265
参考文献 268
习题 269
15.1 简介 271
15.2 核的分类 271
第15章 SOC测试 271
15.3 设计与测试流程 272
15.4 内核测试需求 273
15.5 测试体系结构的概念 274
15.5.1 测试数据的源和接受器 275
15.5.2 测试访问机制 275
15.5.3 内核测试包装 276
15.6.1 直接访问测试方案 277
15.6 测试策略 277
15.6.2 应用边界扫描 279
15.6.3 路径扫描的使用 280
15.7 进一步研究 284
15.7.1 虚拟插座接口联盟 284
15.7.2 IEEE P1500标准 284
参考文献 285
习题 286
附录A 参考书目 287
附录B 缩写词表 292