DFT笔记47

5.6 FAULT COVERAGE ENHANCEMENT

在pseudo-random testing中,因为random pattern resistant (RP-resistant) 故障限制了故障覆盖率,如果要提升故障覆盖率有以下三种方法:

  1. test point insertion:额外加入了control points和observation points
  2. mixed-mode BIST:额外增加了deterministic patterns测试random pattern resistant (RP-resistant)
  3. hybrid BIST:就是把BIST本身再和外部测试(就是用测试机测试,补充一些deterministic data)结合起来

前两种方式是in-field coverage enhancement(就是测试时的覆盖率提升就已经做好了,叫现场的),最后一种是manufacturing coverage enhancement(就是需要手动提升)。

这三种方法在下面分节细讲。

5.6.1 Test Point Insertion

测试点的插入有两个典型的类型如下图:

  • control point:可以被连接到
    • a primary input
    • an existing scan cell output
    • a dedicated scan cell output
  • observation point:可以被连接到:
    • a primary output through an additional multiplexer
    • an existing scan cell input
    • a dedicated scan cell input

以下图做一个例子,图a是一个6输入与门,b图是插入一个control point和一个observation point的示意,能提升detection probability,从1/64提升到了7/128:

5.6.1.1 Test Point Placement

因为增加测试点会有面积和性能方面的负担,所以在哪里放置测试点是一件非常重要的事情,要最大化故障覆盖率,但是要用最少的测试点。

有很多技术已经被开发出来了,它们大概可以分为两大类:

  1. 用故障仿真的Fault simulation guided techniques:需要提前知道要用的TPG,根据给出pattern做故障仿真就能知道哪些故障测不出来要插入测试点。这个方法的缺点就是必须要事先知道要用的TPG,比如有些变化发生在出pattern后,这也会导致故障覆盖率的损失。
  2. 用可测性测量的Testability measure guided techniques:这项技术的发展用各种文献串起来了(有需要读)

还有一个很重要的需要注意的点就是插入测试点可能会影响性能,如果测试点插入到了关键路径上,那么就会造成delay,影响比较严重。针对这种问题,也有对应的技术Timing-driven test point insertion techniques解决。

5.6.1.2 Control Point Activation

一旦测试点被插入,驱动control points的逻辑也得被同步设计完成,可以让某些节点的值变为一些固定值。在normal operation时,control points不需要激活,在testing时,有两种策略激活control points:

  1. random activation:用pseudo-random generator实现,它的缺点是control points可能会互相干扰,达不到期望的故障覆盖率
  2. deterministic activation:会将BIST分为若干段,分段激活control points

5.6.2 Mixed-Mode BIST

test point insertion这个方法的主要缺点就是需要修改CUT,但是在很多情况下这是不希望发生的,比如遇到:

  • hard cores
  • macros
  • hand-crafted designs
  • legacy designs

所以这时候就可以考虑mixed-mode BIST这种方法:

  • 针对RP-testable faults:用Pseudo-random patterns
  • 针对RP-resistant faults:用additional deterministic patterns

下面分节讲三种generating deterministic patterns on-chip的方法。

5.6.2.1 ROM Compression

一个最简单的生成deterministic patterns on-chip的方法就是将它们存在一个read-only memory (ROM)中,这个方法的问题就在于ROM的容量往往不够,所以有很多ROM compression的技术被提出来降低所需ROM的容量。

5.6.2.2 LFSR Reseeding

这项技术不再是存储test patterns,而是存储LFSR seeds用它们来生成测试向量,LFSR不仅可以生成pseudo-random patterns,而且还能通过seeds生成deterministic patterns,因为seeds比pattern需要的存储空间小很多,所以很能节约ROM的空间,有a fixed characteristic (feedback) polynomial的LFSR有个问题就是它不能总是找到那个有效的生成deterministic test patterns的种子,所以有人1995年提出了multiple-polynomial LFSR (MP-LFSR)这个方法,如下图:

还有一些进一步降低存储空间的方法可以查阅文献,他们是用:

  • variable-length seeds
  • a special ATPG algorithm
  • folding counters
  • seed encoding
5.6.2.3 Embedding Deterministic Patterns

第三个对于mixed-mode BIST的方法就是在pseudo-random sequence中嵌入deterministic patterns。这个可以参考文献再仔细研究。

5.6.3 Hybrid BIST

这是种手动的故障覆盖率提升的方法,就是将BIST检测不到的故障所需的deterministic test patterns存在测试机里。更复杂的一些hybrid BIST方案可以从文献中得到,比如说将存入的pattern压缩的技术,在第6章中会有详细的描述。

相关推荐
Anjgst1 小时前
宝塔面板命令行
linux·运维·服务器·笔记
程序猿乐锅1 小时前
【Tilas|第七篇】学员管理实现
java·笔记·idea·tlias
ouliten1 小时前
C++笔记:Lambda表达式
c++·笔记
问心无愧05131 小时前
ctf show web 入门38
笔记
程序猿乐锅1 小时前
【Tilas|第六篇】班级管理实现
java·笔记·tlias
AOwhisky1 小时前
Docker 学习笔记:从生态系统到镜像构建
linux·运维·笔记·学习·docker·容器
Brilliantwxx1 小时前
【算法题】递归树+哈希表+分治异或+双指针
开发语言·c++·笔记·算法
LuminousCPP1 小时前
C 语言文件操作全攻略:从基础读写到随机访问与缓冲区原理
c语言·经验分享·笔记·文件操作
Brilliantwxx1 小时前
【C++】Stack和Queue(初认识和算法题OJ)
开发语言·c++·笔记·算法