本文主要介绍scan测试的基本原理和过程,试图让大家都能理解。
首先介绍scan测试的基本原理。
scan测试中两个最基本概念:
可控性(control)
可观测性(observe)
scan设计的两个基本流程:
把普通寄存器替换成可扫描的寄存器
把可扫描的寄存器连成扫描链
如下图所示:左边是普通寄存器,右边是可扫描寄存器,D端前面加一个二选一的MUX,选择端是scan_enable,为1时选择SI端,为0时选择D端。
如下图所示:把所有可扫描寄存器首尾连接在一起,就构成了扫描链。注意,增加了三个端口,分别是SI(scan out),SO(scan out)和SE(scan enable)。
综上所述:scan就是把普通寄存器替换成可扫描的寄存器,目的是创建control和observation点,然后把所有的可扫描寄存器连接在一起串成扫描链(scan chain),利用扫描链,工具自动产生测试patterns,让寄存器处于一个特定的值(control),然后将期望的值移出来进行对比(observe),来判断芯片是否有缺陷。
接下来介绍scan测试的基本过程。
scan测试可以大概分为如下四个步骤:
Test setup
初始化过程,让芯片进入scan test模式,可以由端口控制,也可以由内部寄存器控制。
Shift---load/unload
串行shift in确定值到scan chain的寄存器上,然后把测试结果shift out进行对比。
Capture
scan_enable拉低,从输入端口force确定值,从输出端口measure输出值,然后puluse capture clock。
Repeat load/unload---shift/capture until test is done
重复shift和capture过程,直到测试结束。
scan测试具体分析包含如下5个events:
Load scan chain(many cycles)
Force primary inputs(PI)
Measure primary outputs(PO)
Pulse capture clock
Unload values from scan cells
如下图所示:步骤2,3,4就是capture过程。
最后再介绍scan测试的具体细节。
主要具体介绍如下四个步骤:
LOAD
FORCE PI
MEASURE PO
PULUSE CAPTURE CLOCK
LOAD过程分为如下4步:
Force SE to "1"(scan enable)
Force SI(scan chain input pin)
Pulse shift clock
Repeat steps 2 and 3 until all scan cells are loaded
如下图所示:SE拉高后,经过三次shift过程,三个扫描寄存器分别处于确定值011(从左到右)状态
然后SE拉低,电路处于function模式,从PI端口A和B force两个确定值11,同时三个寄存器的输出端的值011传递到组合逻辑输入端,经过一段时间从PO端口measure确定值1。
最后新的一组patterns(101),串行shift in,同时内部电路的确定值(111),串行shift out进行对比。
以上即为scan测试的基本原理和过程。
更新至18课时:《芯片验证从入门到精通职业/就业培训》(含实训)!
更多ic设计好课,尽在创芯大讲堂