testability analysis:可以来表征,内部状态从primary input的可控性,以及从primary output的可观性。
主要有两个用途:1)在test generation阶段,可以选择一个更容易得到的值的路径来,generate pattern;
2)可以分析到poor testability的area,从而更好的执行DFT方法,如test point的插入;
The Sandia Controllability/Observability Analysis Program(SCOAP) 是第一个广泛使用的testability analysis方法。
对每一个signal都会计算出一个controllability和observability的值,来表征可控性,与可观性。
topology-based testability analysis(像SCOAP),计算较快,但是可能会产生一些误差,对于加入冗余逻辑的一些电路来讲。
Simulation-based testability analysis,可以产生较为准确的结果,但是运算时间较长。
SCOAP中的6中基本信号:
1)CC0:combinational 0-controllability of s (default 1)
2)CC1:combinational 1-controllability of s (default 1)
3)CO:combinational observability of s (default 0)
4)SC0:sequential 0-controllability of s (default 0)
5)SC1:sequential 1-controllability of s (default 0)
6)SO:sequential observability of s (default 0)
其中的combinational measure CC0/CC1/CO的值,为了达到控制或观测该信号,需要的signal的数量。
sequential measure SC0/SC1/SO的值,代表为了控制或观测该信号,需要的clock cycle的个数。
CC0(q)表示在电路中,为了控制q为0,需要多少的signal来进行set。
SC0(q)表示在电路中,为了控制q为0,需要多少的FF的clock工作。
SCOAP的第一步是进行combinational controllability的计算,在每一个gate后,都会在函数后加一。
(函数与Gate的类型有关,加1表示多了一个logic gate)
第二步是进行combinational observability的计算,同样的函数加一,表示经过一级level的logic gate。
sequential的control和observe的计算,加一不再是通过一个logic gate,而是通过一个storage element。
SCOAP是一种deterministic testability的分析方法,在test generation中广泛应用。
但是像在BIST中,需要的是random/pseudo-random的test pattern,这时需要分析电路的random testability,
这样的分析方法叫做:Probability-based testability measures。
在probability-based testability measures方法中,
C0(s)表示从primary input,可控信号为0的概率;(default为0.5)
C1(s)表示从primary intput,可控信号为1的概率;(default为0.5)
O(s)表示从primary可观测到s的值的概率(default为0)
对于每个信号s,C0(s)+C1(s)=1;
在logic的计算过程中,函数与SCOAP的是不同的。
存在的问题:在分析random的test pattern时,有些信号的可控或可测的概率会很小,这样的信号叫做
random-pattern resistant(RP-resistant)。
RP-resistant的存在是random的test pattern fault covergae总是比determination test pattern低的
主要原因,如在BIST中,需要加入test point来解决这个问题。
Simulation-based testability analysis:
在SCOAP和probability-based testability的测试分析中,只有topological的信息被利用,这些信息是静态的,
所以这样的分析方法,速度通常较快。
但是当在电路包含一些redundant fanout时,分析通常结果会不准确。
相较于这样的方法,dynamic/simulation-based的分析方法可以通过statistical sampling来得到更精确的结果。
通常的分析方法有Logic simulation和fault simulation。
Logic simulation:输入一系列test pattern,收集信号为0/1/0-1/1-0的结果与变化。进而得到poor testability的点。
Fault simulation:像random resistant fault analysis。这样的方法。
由于这样的仿真时间都会比较长,所以一般应用在对fault coverage要求很高的场合。像医疗和航空芯片等。
RTL Testability Analysis:
以上三种方法都是在gate level上进行分析的。
RTL的testability analysis可以很大程度的减少test development的时间,而且由于RTL中有更少的redundant fanout,
RTL有比netlist更简单的模型,所以仿真的精确度可能更高。
RTL的主要分析方法:建立一个structure的graph,来代表数据在RTL中的transfer,
由这个graph的sequential depth来作为标准,判断test的困难程度。