第八讲集成电路可测性原理与设计

Download Report

Transcript 第八讲集成电路可测性原理与设计

第八讲
集成电路可测性原理与设计
浙大微电子
韩雁
2013.4
IC测试概念
• 在芯片设计正确的前提下,在制造过程中引
入的缺陷(故障)造成的电路失效,需要用
测试的方法将其检测出来。
• 对IC设计,用仿真手段验证设计正确性
• 对IC制造,用测试手段报告生产“良率”
• 故障的存在
– 影响电路功能的正确性
• 故障的定位
– 若大量电路由于相同原因失效,要找出问题所在
2015/4/12
浙大微电子
2/26
电路测试与电路仿真的不同
• 电路仿真
– 时间充裕
– 软件可对电路内部任意节点进行仿真
• 电路测试
– 测试机时昂贵,每分钟都计算成本
– 不可能对电路内部进行探测,故障排查困难
2015/4/12
浙大微电子
3/26
样品测试与产品测试的不同
1. 样品测试
– 人工进行
– 测试时间充裕
– 测试方法自由
2. 产品测试
– 机器测试
– 测试时间折进产品成本(有时比制造成本还高)
– 测试代码编写
2015/4/12
浙大微电子
4/26
1.样品的测试
• 大规模IC, 其输入/输出管脚众多。
• 理论上, 只有“穷尽”了输入信号的所有组
合, 并验证了输出信号相应无误后, 才能断
定此电路是合格产品。
• 二输入端“与非”门, 只有测试了00, 01,
10, 11四种输入状态下的输出分别是1, 1, 1,
0, 才能断定该“与非”门是合格产品。
• 这种方法类似于设计阶段所做的电路仿真。
2015/4/12
浙大微电子
5/26
实例:乘法/累加ASIC测试
穷尽法要做多少次测试?
28×27×215次
2015/4/12
浙大微电子
6/26
是否有一种切实可行的测试方法
127 255
C0 =   i×j
i =1 j =1
= 265297920
转化为二进制数
因为寄存器为15位,
所以C值最终应为
010000000000000
32
24
16
8
00001111110100000010000000000000
2015/4/12
浙大微电子
7/26
乘法/累加ASIC性能测试
测试乘法/累加电路的最高工作频率
• 当时钟频率较低时, 芯片输出C = C0,
工作正常。
• 将时钟频率不断提高, 每提高一次, 进行一
次测试, 直至测试结果C  C0, 说明电路工
作状态已发生紊乱, 工作频率上限即可确定。
2015/4/12
浙大微电子
8/26
准穷尽法概念及不足
上述测试可称之为“准穷尽法”测试,其不足为
– 累加器输入端Z的累加信号并不是严格按照穷尽法
来提供测试码的。
– 测试只保留了低15位数据, 因此并不排除更高位有
错误数据无法被发现的可能。虽然这种可能性比较
小。
2015/4/12
浙大微电子
9/26
2.产品测试
• 产品测试与样品测试不同, 目的在于如何让
机器用统一固定的算法来解决大量电路的
快速测试问题和为“故障定位”提供可能。
• 这就是DFT理论需要研究和解决的问题
• 产品测试要求具备的条件
– 电路要有可测性( 可测性设计是ASIC设计师在
电路设计初期就应考虑的问题),
– 提取出的测试矢量集要有较高的故障覆盖率
– 有故障模型和尽可能完备的“故障字典”
2015/4/12
浙大微电子
10/26
故障模型
在各种故障模型中比较常用的两种模型:
– “对电源短路模型”S-a-1 ( Stuck at 1)
– “对地短路模型”S-a-0 ( Stuck at 0)
可诊断由对电源短路或对地短路引起的电路失效
实例:
2015/4/12
浙大微电子
11/26
故障字典
• 实例中有5个测试点: A,B,C,P,D
• 10种故障可能: A1,A0,B1,B0,C1,C0,P1,P0,D1,D0
A1表示A点的S-a-1故障,A0表示A点的S-a-0故障
• 当电路无故障时, 输入与输出之间应有正确真值表
• 当有各种S-a-X故障时, 输出端D的测试值将有10种
可能的错误结果
• 将上两项结果合并即可形成一张故障字典
• 根据故障字典以及测量到的D值,即有可能分析电路
中S-a-1故障和S-a-0故障所处的位置。
2015/4/12
浙大微电子
12/26
正确值
2015/4/12
故障字典表
浙大微电子
13/26
正确值
•
•
•
•
故障字典表
当输入端A B C取值(0 0 0 )时, 即可测得P0故障或者D1故障
当取(0 1 0)时, 可测得A1故障或者是P0故障或者是D1故障
输入端的取值 ( 0 0 0),(0 0 1),(0 1 1),(1 0 1)称为测试向量
有些故障是不可区分的, 例如A0,B0,C1,P1,D0故障,
无论用哪一组测试向量都无法将它们区分开来, 这种故障称为
“等价故障”, 因为它们在电路中是逻辑等价的。
2015/4/12
浙大微电子
14/26
测试向量集及其提取
进一步分析还可发现, 要诊断上述电路中所有的
S-a-1故障和S-a-0故障, 并不需要对全部的8个
输入向量进行测试, 而只需其中的6个就够了:
•
•
•
•
•
•
(0 0 0), 可测P0,D1;
(0 0 1), 可测D1;
(0 1 0 ), 可测A1,P0,D1;
(1 0 0 ), 可测B1,P0,D1;
(1 1 1 ), 可测C0,D1;
(1 1 0 ), 可测A0,B0,C1,P1,D0
而( 0 1 1 )和( 1 0 1) 对测试故障没有特别贡献
因此只要将T(000, 001, 010, 100, 110, 111)
提取为测试向量集就可以了
2015/4/12
浙大微电子
15/26
故障覆盖率
故障覆盖率定义为:
用测试向量集可以测出的故障与电路中所有可能存
在的故障之比。
在上述实例中, 共有10个可能故障, 因此
• T(000, 001, 010, 100, 110, 111)能够检测出这所
有的10个故障, 因此其故障覆盖率为100%。
• T1(011, 101)仅能测出D1这一个故障, 故其故障覆
盖率为10%。
• T2(110 )的故障覆盖率为50%, 虽然它不能给等价
故障A0,B0,C1,P1,D0精确定位。
2015/4/12
浙大微电子
16/26
电路的可测性分析
电路测试的难易程度可由“测试因子”定量描述。
共6个(3个组合电路、三个时序电路):
•
CC0(X) -- 表示组合电路中X 结点S-a-0故障的可控制性。
•
CC1(X) -- 表示组合电路中X 结点S-a-1故障的可控制性。
•
CO(X) -- 表示组合电路中X 结点故障的可观察性。
•
SC0(X) -- 表示时序电路中X 结点S-a-0故障的可控制性。
•
SC1(X) -- 表示时序电路中X 结点S-a-1故障的可控制性。
•
SO(X) -- 表示时序电路中X 结点故障的可观察性。
2015/4/12
浙大微电子
17/26
某结点某故障的可控制性
• 可控制性:
– 人为地将某结点设置为某故障的难易程度
• 对于原始输入端I和原始输出端O, 一般有如下
约定:
– CC0( I ) = CC1( I ) = 1(组合电路的可控制性)
– SC0( I ) = SC1( I ) = 0(时序电路的可控制性)
– CO(O) = SO(O) = 0(组合与时序电路的可观察性)
值越小表示越易观察或控制
2015/4/12
浙大微电子
18/26
“与非”门测试因子的计算
Y = X1X2
CC1(Y) = min[ CC0(X1), CC0(X2) ] + 1
CC0(Y) = CC1(X1) + CC1(X2) + 1
CO(X1) = CC1(X2) + CO(Y) + 1
CO(X2) = CC1(X1) + CO(Y) + 1
SC1(Y) = min[ SC0(X1), SC0(X2) ]
SC0(Y) = SC1(X1) + SC1(X2)
SO(X1) = SC1(X2) + SO(Y)
SO(X2) = SC1(X1) + SO(Y)
2015/4/12
浙大微电子
19/26
“或非”门测试因子的计算
Y = X1  X2
CC1(Y) = CC0(X1) + CC0(X2) + 1
CC0(Y) = min[ CC1(X1), CC1(X2) ] + 1
CO(X1) = CC0(X2) + CO(Y) + 1
CO(X2) = CC0(X1) + CO(Y) + 1
SC0(Y) = min[ SC1(X1), SC1(X2) ]
SC1(Y) = SC0(X1) + SC0(X2)
SO(X1) = SC0(X2) + SO(Y)
SO(X2) = SC0(X1) + SO(Y)
2015/4/12
浙大微电子
20/26
一个简单组合逻辑的测试因子
Y = X1X2
CC1(Y) = min[ CC0(X1), CC0(X2) ] + 1
CC0(Y) = CC1(X1) + CC1(X2) + 1
CO(X1) = CC1(X2) + CO(Y) + 1
CO(X2) = CC1(X1) + CO(Y) + 1
X1  X2
对于原始输入I和原始输出O
CC0( I ) = CC1( I ) = 1
CO(O) = 0
2015/4/12
Y = X1  X2
CC1(Y) = CC0(X1) + CC0(X2) + 1
CC0(Y) = min[ CC1(X1), CC1(X2) ] + 1
CO(X1) = CC0(X2) + CO(Y) + 1
CO(X2) = CC0(X1) + CO(Y) + 1
浙大微电子
21/26
测试因子值
因为是组合电路, 故其与时序有关的测试因子值均为0
2015/4/12
浙大微电子
22/26
增加I/O端口降低测试因子的方法
• 当某结点X的可观察因子CO(X) 过大时,
可通过增加一个输出端口的办法, 将该点直接引出;
• 当某点X的可控制因子过大时,
– 当CC0(X)过大时,可插入一个“与门”使之下降:
CC0(X’) = min [ CC0(X), CC0( I ) ] + 1 = 1 + 1 = 2
– 当CC1(X)过大时,可插入一个“或门”使之下降:
CC1(X’) = min [ CC1(X), CC1( I ) ] + 1 = 1 + 1 = 2
• 在某些特殊情况下还可直接将该X点与增加的输入端I相连。
2015/4/12
浙大微电子
23/26
简单电路的可测性设计
• 直接从A,B模块增加输
出管脚进行测试
• 增加了输出管脚数和
芯片面积,封装成本
增加
• 用多路选择器,只需
增加一个管脚
2015/4/12
浙大微电子
24/26
多路选择器在可测性设计中的作用
不但将多路选择器用
在芯片电路的输出端,
而且将它们用在芯片
的内部, 利用它们把内
部的子电路分割开来
并彼此绝缘, 单独测试,
是大规模、超大规模
集成电路可测性设计
更常用的方法。
2015/4/12
浙大微电子
25/26
复杂电路的可测性设计(DFT)
• 对于组合电路
– 有非常成熟的测试矢量生成算法来检测电路中的
故障,无需增加DFT电路
• 对于时序电路来说
– 扫描链法,把内部的时序单元(DFF)改成特定
的扫描单元,然后把所有的扫描单元串成扫描链,
通过扫描链,将内部信息串行传到输出管脚。
– 内建自测试法(BIST),无需外部测试机台,
内部产生测试向量,将无故障响应值也事先存放
在芯片内部,自己比较并输出比较结果。
2015/4/12
浙大微电子
26/26
Thanks!
2015/4/12
浙大微电子
27/26