本文主要介绍scan测试的基本原理和过程,试图让大家都能理解。首先介绍scan测试的基本原理。 scan测试中两个最基本概念: 1. 可控性(control) 2. 可观测性(observe) scan设计的两个基本流程: 1. 把普通寄存器替换成可扫描的寄存器 2. 把可扫描的寄存器连成扫描链 如下图所示:左边是普通寄存器,右边是可扫描寄存器,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测试可以大概分为如下四个步骤: 1. Test setup 初始化过程,让芯片进入scan test模式,可以由端口控制,也可以由内部寄存器控制。 2. Shift---load/unload 串行shift in确定值到scan chain的寄存器上,然后把测试结果shift out进行对比。 3.Capture scan_enable拉低,从输入端口force确定值,从输出端口measure输出值,然后puluse capture clock。 4.Repeat load/unload---shift/capture until test is done 重复shift和capture过程,直到测试结束。 scan测试具体分析包含如下5个events: 1. Load scan chain(many cycles) 2. Force primary inputs(PI) 3. Measure primary outputs(PO) 4. Pulse capture clock 5. Unload values from scan cells 如下图所示:步骤2,3,4就是capture过程。 最后再介绍scan测试的具体细节。 主要具体介绍如下四个步骤: 1. LOAD 2. FORCE PI 3. MEASURE PO 4. PULUSE CAPTURE CLOCK LOAD过程分为如下4步: 1. Force SE to "1"(scan enable) 2. Force SI(scan chain input pin) 3. Pulse shift clock 4. 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测试的基本原理和过程。 |