DFT笔记36

4.10 ATPG FOR NON-STUCK-AT FAULTS

4.10.1 Designing an ATPG That Captures Delay Defects

现在的集成电路是时钟频率越来越快,但是尺寸却越来越小,导致电路在低频下能正常工作,一旦进入高频就无法正常工作,这种缺陷就是delay defect,即便stuck-at fault model可以检测出一些delay defect,但还是不够,所以人们又开发了一些别的故障模型,比如:

  • transition fault
  • the path-delay fault
  • segment delay fault

这一节集中讨论path-delay fault,在这个故障中,有几个设定:

  1. path P:给定的延迟路径
  2. on-input:信号是这个,说明是路径P的输入信号
  3. off-input:信号是这个,说明不是路径P的输入信号,而是路径中的门的输入

故障类型有两种:

  1. rising fault:用上箭头表示(比如↑ g1 g4 g7是途经门g1 g4 g7的rising path)
  2. falling fault:用下箭头表示

这个dalay测试有三种方式:

  1. launch-on-capture (也叫broadside or double-capture):第一个n-bit的向量被scan进入电路中的n个scan flip-flops,这是在低速下完成的;然后用另一个时钟实现过渡;最后用全速时钟实现capture。第二个向量随后进入即可
  2. launch-on-shift(也叫skewed-load):还是一个n-bit的向量,它的前n-1比特向量先以低速shift进入电路,第n比特向量作为一个过渡,最后用全速时钟实现capture。第二个向量随后进入即可
  3. enhanced-scan:有一个向量对(V1, V2)被存储在tester memory里面,V1被load进入scan chain后立即被用于初始化电路,随后V2被scan in,然后立即用于capture。(这里用到了一个hold-scan design)

enhanced-scan这种方法比另外两种方法的故障覆盖率更高,但是它的代价是hold-scan cells的成本,因为它会增加芯片的面积,但是它的优点大于缺点,比如:

  1. 它可以防止组合逻辑引用正在shift的数值
  2. 增强了对失效芯片的诊断能力
  3. 需要的存储空间更小,也就是需要用到的向量更少
4.10.1.1 Classification of Path-Delay Faults

path-delay faults可以被分类成几种:

  1. statically sensitizable path:如果路径P的所有off-inputs,对于某些向量,都能和他们对应的noncontrolling values对应上
  2. statically unsensitizable path:如果路径P的所有off-inputs,都不能和他们对应的noncontrolling values对应上
  3. false path:传输无法从path的起始传到末端。false path通常都是statically unsensitizable的

下图展示了statically unsensitizable ↓ abce,因为在第二个向量上d不能是noncontrolling value,但是这个路径不是false的,因为传输可以由multi-path实现从a到e:

single-path sensitizable:这种情况要求路径P的off-inputs在两个向量种都被置为noncontrolling values,这是最严格的要求,所以符合这样要求的路径很少。可以在single-path sensitizability的基础上放松一些限制的条件,例如不必把所有的off-inputs都设置成noncontrolling values,用下图的例子来说明:

下降沿传递路径↓ bdfg是目标路径,在第一个向量中(下降沿的向量,第一个是1,第二个是0,很好理解吧),a和e可以放松条件,b的跳变沿还是可以传递到g,这是因为在第一个向量中(向量为1),b到d的传播不受a的影响,同样的f到g的传播也不受另一个信号影响。另一方面,需要c始终是保持1,因为要保证d到f的向量可传递。

robustly testable :以上这个路径就是robustly testable path,也就是说,上述路径的测试不受其他延迟故障影响。还用上面这个例子说明,图中a的两个向量是X和0,X也就是"don't care",如果这个X换成1,b的状态转换仍然会传递给d,因为d的状态转换取决于a和b两个转换中的更晚的一个,简单来说就是a的跳变延迟并不会影响到目标路径被探测到。(这里如果a真的晚于b的跳变,不就影响了目标路径的延迟了吗???)

由上面的例子,对于robustly testable path P,off-input的标准可以总结出两条规律:

  • 如果P的on-input从controlling变化为noncontrolling,那么off-input的第一个向量就可以是"don't care"
  • 如果P的on-input从noncontrolling变化为controlling,那么off-input的两个向量都得是稳定的一个noncontrolling value

robustly testable因为不用考虑其他路径的延迟,是一种很理想的情况,但是对于大多数的电路,这样的路径很少,因此,对于其他robustly untestable paths,要寻求有更少限制的测试。

再看一个下图的例子:

一个与门,假设a是on-input,b是off-input,按照上述robust sensitization的规则,如果a从noncontrolling变为controlling值,那么b就得是一个steady noncontrolling value,这样a就不受电路中other delay faults影响。但是如果这样的要求不能满足,就要适当考虑放宽条件,如果b的跳变不发生延迟,那么它就不必非得是一个固定值,也就是b可以是X1而不必须是固定的1,这种条件叫做nonrobust sensitization condition。

下图又展示了一个例子:

目标路径为↑ bcdf,它是robustly untestable但是nonrobustly testable(它显然是无法验证的,但是又非完全无法验证),在nonrobustly testable路径中,有些跳变可能会被丢失,比如跳变在f处就被丢失了。

那么对于nonrobustly testable path P中的off-input又可以总结出一条规律:

  • off-input如果在第二个向量处是noncontrolling值,那么它的第一个向量就可以是X

还有更多关于path-delay faults的分类呢:

  • validatable nonrobustly testable path-delay faults
  • functional sensitizable path-delay faults
  • multi-path-delay faults
  • etc.

已经讲的这些都已经很多了(((φ(◎ロ◎;)φ))),竟然还有这么多分类🙄

4.10.1.2 ATPG for Path-Delay Faults

和stuck-at test generation相比,path-delay fault test generation有些不同:

  1. stuck-at test generation只需要一个向量,path-delay fault test generation需要两个向量,即一对向量
  2. path-delay fault test generation需要跳变在path的一开始就被launched
  3. path-delay fault test generation需要off-inputs的值满足要求

path-delay fault test generation的向量是一对,每一个都可以是0或1或X,所以有一个向量值系统,代表如下:

  • S0---Initial and final values are both logic 0.
  • S1---Initial and final values are both logic 1.
  • U0---Initial logic can be either 0 or 1, but final value is logic 0.
  • U1---Initial logic can be either 0 or 1, but final value is logic 1.
  • XX---Both initial and final values are "don't cares."

这个系统中的这些值可以用布尔运算,运算法则如下面三个表,除了这三种运算外别的运算也同样适用:

有了这个5-valued system,ATPG算法就可以用来生成path-delay的测试了。

4.10.2 ATPG for Transition Faults

如果电路中所有的path都能robust tests,那么就不用做额外的工作,但是现实是很少的path是robust tests,很多小的延迟都藏在robustly untestable path或者less critical path中,这样这些延迟就会被漏掉。

transition faults有两种:

  1. slow-to-rise
  2. slow-to-fall

需要用到的一对向量是{V1,V2}:

  1. V1 (called the initial vector)
  2. V2 (called the test vector)

讲了两条引理和案例证明,但很晦涩。但是总结起来就是path-delay fault model丢失的故障只能通过transition fault model实现。

和delay fault models一样,transition tests也可以通过三种不同的方式实现:

  1. launch-on-capture
  2. launch-on-shift
  3. enhanced-scan
相关推荐
一定要AK2 小时前
JVM 全体系深度解析笔记
java·jvm·笔记
chushiyunen2 小时前
milvus笔记、常用表结构
笔记·算法·milvus
YunQuality2 小时前
六西格玛黑带三个月拿证经验分享
笔记·职场和发展·职场·学习方法
QDYOKR1682 小时前
一文了解什么是OKR
大数据·人工智能·笔记·钉钉·企业微信
ZhiqianXia2 小时前
PyTorch 学习笔记(12):ATen C++ 算子引擎的完整架构之旅
pytorch·笔记·学习
landuochong2003 小时前
用 Claude Code 直接写 Obsidian 笔记-增强版
人工智能·笔记·skill·claudecode
泰晶科技3 小时前
【晶振电子元件基本术语】
笔记
IT摆渡者3 小时前
JUMPSERVER堡垒机部署
linux·运维·网络·经验分享·笔记
chushiyunen3 小时前
pymilvus操作milvus向量数据库笔记(一)
笔记·milvus