返回列表 发帖

[原创] DFT小讲座之3_SCAN Chain基础

[原创] DFT小讲座之3_SCAN Chain基础

本帖最后由 DFT_Elite 于 2018-5-16 14:00 编辑

1.jpg
2018-5-16 14:00

集成电路的生产异常复杂,是人类制造业向微观世界发展的巅峰前沿。任何生产偏差,设计漏洞甚至一粒PM2.5都会导致芯片出现各种缺陷,事实上生产过程中的造成defect的颗粒大小远远小于PM2.5 。Scan Chain(扫描链测试)作为数字集成电路测试的重要方法之一,可以有效的筛选出坏片,提高产品质量。不同意常规性的从测试,scan test测试触角伸入到芯片的任何角落,测试目标为电路中的标准单元,包括组合及时序逻辑。


扫描链测试可以很简单
作为结构性测试的主要手段(structural test),DFT工程师需要注意的是电路的可测性(足够的控制点和观测点)甚至不需要了解芯片的功能。在运用scan 测试方法的时候,整个芯片被看做是大量的寄存器和寄存器直接的组合逻辑。 这也符合scan test理论开发的初衷,为了侦测出生产过程中的defects。 芯片的功能不被检验,相反,从元器件最基本的电路反应入手,测试其中的异常,从而侦测到生产defect。
扫描链测试也可以很复杂

因为其横跨了在芯片设计的整个周期,各个角落。在设计scan test的时候需要综合考虑到芯片设计的方方面面,包括时钟设计,电源设计,芯片结构,PAD资源,逻辑综合规划等方方面面。


DFT的scan 工作流程之复杂,从以下流程图可见一斑:

2.jpg
2018-5-16 13:57


scan工作流程大概分为5步。

  • scan insertion  

  • test pattern generation

  • test pattern simulation

  • test pattern release

  • silicon bringup and diagnosis


test pattern release 及silicon bring-up and diagnosis不在scan 基础的scope之内,将会在后续session中继续深入讨论。


scan insertion

扫描链插入

在芯片功能设计完成后,整个网表是由一堆普通的寄存器和组合逻辑构成的。扫描链的插入就是指将普通寄存器替换成为扫描寄存器(scan flip-flop)的过程。

SE scan enable为其切换信号。


正常工作模式时,SE为0,这时scan FF的功能与原有的D-FF完全一致,data path 为D到Q。芯片的功能得以保持不变。 当SE被切换为1时,这时候scan FF执行其scan属性,data path为SI到Q。SI即为测试时的数据流向入口。

3.jpg
2018-5-16 13:59

3_1.png
2018-5-16 10:53

将片上的扫描寄存器Q-SI连接起来,就成为了扫描链。通过shift的方式可以由scan chain将数据串行输入的每个寄存器的SI端,达到控制每个寄存器的目的。 在capture模式下,将芯片组合逻辑的反馈传回寄存器,达到对芯片内部观测的作用。

4.png
2018-5-16 10:55

4_1.png
2018-5-16 10:55


Test Pattern Gen

测试向量的产生是基于故障模型[1]生成的。不同的故障模型所对应的测试向量由于其激活[2]和敏化[3]方式不同而不同。故障模型是对芯片上物理缺陷的抽象建模。

5.png
2018-5-16 10:57

如图所示,或非门的输入于VDD短接,导致其不能为‘0’。将其建模为stuck-at-1故障。

6.png
2018-5-16 10:58

如图所示,激活需要在故障点产生相反的值‘0’。A需要加载‘1’,

为了使该故障能在primary output O被观测到,B,C,D需要选定特殊的值使得该故障能在PO端被观测到。


测试向量便由此产生。

p.png
2018-5-16 11:01


TIPS:


[1]这里以常用的stuck at fault model举例说明.

[2]激活故障,在故障点产生于故障状态相反的值.

[3]敏化路径,将故障点的值传递至输出并观察.


将此故障电路放入下图中的时序电路中,如果没有扫描链,激活故障和敏化路径的计算量将是天文级的。

7jpg.jpg
2018-5-16 11:03

扫描链测试可以极大的简化测试难度。通过SCAN SHIFT[1]模式,直接将1011向量通过pad串行加载到寄存器上。再通过SCAN CAPTURE[2]模式,让故障电路的输出被OB寄存器捕捉。再下一次load时,将故障点的值将通过scan chain串行输出到pad,由ATE[3]捕捉进行比较。


TIPS:


[1]shift模式是指将SE设置为1,scan FF通过si到q的通路首尾相接。数据传输为串行。

[2]capture模式是指将SE设置为0,此时scan FF工作为正常function 寄存器。 将function时候数据由D到q的通路capture到寄存器中。

[3]ATE automated testing equipment.


8.png
2018-5-16 11:11

该时序图反应了测试如上电路的pattern的时序关系。整个pattern分为3个阶段。

loading:将测试向量串行打入到寄存器中

capture:通过打一个clock pulse,将故障点的值加载到寄存器中

unload:将capture回来的值串行输出到pad供ATE测量比较。


Test Pattern Verify

测试向量验证

当测试向量产生以后,我们需要对其进行门级仿真。与芯片功能验证类似,也有不同之处,DFT工程师需要时刻紧绷,测试向量最终在ATE(自动测试机台)上能调用的资源只有芯片的输入输出端口。对芯片内部信号的force都必须慎之又慎。测试向量仿真从方法上可以分为,串行仿真和并行仿真。串行向量仿真时,测试激励加载于芯片测试输入端口,并在输出端口进行采样比较。并行向量仿真是将测试激励直接加载于扫描寄存器的SI端,并在寄存器的O端进行数据比较。两种方法各有优缺点,需要配合使用


scan test的理论就先简单介绍到这里。尽管听起来好像很简单,但在实际应用中,尤其是Billion门级的集成电路,扫描链的应用已经变得相当复杂。扫描链伸入到芯片的边边角角,是芯片在功能维度之外最庞大的系统。在这一领域里,我们要思考的包含并不限于:在制定扫描链测试时要考虑如何不影响芯片功能的主线,减少给芯片带来过多的面积,功耗开销。


请持续关注我们,更多专题,敬请期待.

9.jpg
2018-5-16 11:17

1.png

不错 ,顶一个

TOP

写的很好,学习了。

TOP

很好,谢谢,
~

TOP

很好,学习了

TOP

回复 2# 恋风恋歌123


    您好,如果我们需要获取扫描链上sff单元的状态(论文中写的是states of flip-flops)请问应该采取什么样的方法呢?上面贴子中说,在capture模式下,将芯片组合逻辑的反馈传回寄存器,达到对芯片内部观测的作用。这个地方不是特别理解。如果您知道的话,还请解答一下,谢谢!
目前我们使用的工具是TetraMAX2009

TOP

回复 5# RichardYu520


    您好,如果我们需要获取扫描链上sff单元的状态(论文中写的是states of flip-flops)请问应该采取什么样的方法呢?上面贴子中说,在capture模式下,将芯片组合逻辑的反馈传回寄存器,达到对芯片内部观测的作用。这个地方不是特别理解。如果您知道的话,还请解答一下,谢谢!
目前我们使用的工具是TetraMAX2009

TOP

写的很不错!

TOP

回复 6# 979436295


   应该是capture模式下,组合逻辑前面的寄存器提供输入,组合逻辑的输出传递给下一级寄存器,接着SE又置位1,激活扫描链,在图中经过一个时钟周期,组合逻辑的输出就通过扫描链的so端移位输出了,在外部就可以观测到

TOP

好帖子,最近刚好要学这个

TOP

返回列表

站长推荐 关闭


电子书:《模拟对话》,共50卷,数百篇精品文章,下载即奖励400信元!

电子书:《模拟对话》,共50卷,数百篇精品文章,下载即奖励400信元!


查看