• Design-for-Testability(DFT)的基本知识点


    Design-for-Testability(DFT)的基本知识点

    基础知识

    1. CP和FT

    • CP是(ChipProbe)的缩写,指的是芯片在wafer(晶圆)的阶段,就通过探针卡扎到芯片管脚上对芯片进行性能及功能测试,有时候这道工序也被称WS(WaferSort)

    • FT是Final Test的缩写,指的是芯片在封装完成以后进行的最终测试,只有通过测试的芯片才会被出货,详尽的测试。

    参考https://blog.csdn.net/lzwsdu/article/details/53502894:

    什么情况下需要CP?

    1. 因为封装本身可能影响芯片的良率和特性,所以芯片所有可测测试项目都是必须在FT阶段测试一遍的.而CP阶段则是可选

    2. CP阶段原则上只测一些基本的DC,低速数字电路的功能,以及其它一些容易测试或者必须测试的项目.凡是在FT阶段可以测试,在CP阶段难于测试的项目,能不测就尽量不测.一些类似ADC的测试,在CP阶段可以只给几个DC电平,确认ADC能够基本工作.在FT阶段再确认具体的SNR/THD等指标

    3. 由于CP阶段的测试精度往往不够准确,可以适当放宽测试判断标准,只做初步筛选.精细严格的测试放到FT阶段

    4. 如果封装成本不大,且芯片本身良率已经比较高.可以考虑不做CP测试,或者CP阶段只做抽样测试,监督工艺

    5. 新的产品导入量产,应该先完成FT测试程序的开发核导入.在产品量产初期,FT远远比CP重要.等产品逐渐上量以后,可以再根据FT的实际情况,制定和开发CP测试

    2. 测试工程师需要考虑什么

    降低测试成本:

    • 从测试规划开始考虑芯片性能要求,ATE,Load Board等,通过减少chain length, memory instance number 来降低成本
    • ATPG effciency
    • 选择合适的test vectors

    3. 什么是DFT

    DFT = Design-for-Testability

    • 额外的pin

    • 会插入或改变原有的逻辑

    DFT cost:

    • area cost
    • performance 降低
    • ATPG tool cost 和 pattern debug cost
    • ATE testing cost

    如何减小DFT cost:

    • 合理的test plan, 比如减小chain length, memory concurrent testing
    • 减少图形(pattern) 数量
    • 增加测试频率

    Fault Model

    physical fault:

    • IO leakage 或 short
    • net open
    • material pollution

    Logic fault:

    • signal hard fault
    • delay fault
    • static current fault

    Fault model 就是在physical fault 和 Logic fault之间建立一个桥梁,或者说是一个反应物理fault影响的逻辑模型

    比如下面一个SA fault (static fault):

    A pin可能在物理上被短路到了地,因此在建模时相当于将其置为静态的0.

    Transition fault: 主要考察speed和timing

    • STR: slow to rise
    • STF: slow to fall

    Path delay fault: 也是反应在速度和时序上,考察整个路径上的延时是否超时,通常是关键路径

    IDDQ: 测试CMOS电路在静态时的总电流。

    • 在静态时CMOS只有leakage电流或二极管反向电流
    • 任何开路,短路都会导致总电流异于常规,导致IDDQ variation

    Fault class hierarchy

    • DT - Detected
    • PT - Possibly detected
    • UD - Undetectable
    • AU - ATPG untestable
    • ND - Not detected

    DFT Methods

    • Ad-hoc (功能点测试)
    • Structured (结构化测试):
      • Scan
      • Built-in self-test (BIST)
        • Memory
        • Logic
      • Boundary scan

    Ad-hoc

    在设计者关注的地方增加可测试逻辑:

    • 增加可控制节点和观测节点
    • 将大的电路分解为小的测试blocks

    例如在下面的ROM前增加一个scan点可以观察进入ROM的数据是否有误。

    缺点:

    Scan:

    将DFF换成带扫描模式的DFF,并将其串起来形成scan chain

    逻辑BIST

    BIST = Build in self test

    将ATE(自动测试机)的工作(Test data generation, test response evaluation) 放到片上。

    另外,可以保护系统的内部数据,因为少了外面的控制和观测,所以对内部节点的信息不可获取。

    缺点:

    • 开销大
    • 较低的fault coverage,较高的测试时间
    • Debug 困难,只知道错了,但不知道错在哪

    常用于对pin数量要求不大(pin比较少),有安全问题的芯片,例如:公交卡芯片

    Boundary Scan

    测试多芯片互联。测试板级制造过程的错误,包括使用了错误的元件,pin的错误短路、开路等

    • 有独立的子系统(独立时钟)
    • 只需要5个pin: TDI, TDO, TMS, TCK, TRST(可以不用) (JTAG)
    • 通过将多片的TDO和TDI串联可以测试多片的互联

    基本JTAG:

    例如,通过TAP模式选择,检测device的身份验证,验证是否时正确的芯片。

    DFT-Scan

    D算法:

    1. 选择一个特定的fault point(猜测的有fault的地方)
    2. 输入驱动值,保证其值到达fault point时产生的理论值跟fault相反
    3. 传播fault值到最近的输出点
    4. 记录测试图形,报fault

    例子:下面的U1单元输出怀疑有static fault(接地短路)

    • 首先在U1的输入上给0,如果U1没问题,则输出应该时1(绿色,表示无fault), 否则,输出0(红色,表示static 0 fault)
    • 其他pin的输入需要做配合,使得最后的输出pin能够反应U1的值,这样U1的fault就被挪到了输出pin上,判断输出值即可判断U1是否有问题

    对于这个例子,有如下几个概念:

    1. Input Stimulus: 测试激励,这边指 1000
    2. Expected response: 预期响应,这边指没有fault时的输出值,为1
    3. Test Vector: 测试向量,即上面两个合在一起10001
    4. Test pattern:测试图形,为了检测一个目标fault而构建的一个或多个测试向量序列

    实际上,我们并不知道U1是否有问题,就算最后输出报了fault,也无法确定是不是U1出错。所以实际上做的时候会迭代多次,根据不同的测试激励逐渐缩小fault点范围,直到排查到fault点。

    D-算法的优缺点

    • 优点:
      • Deterministic: 确定的,是一步接一步做的
      • Exhaustive: 穷举的,直到测完或者有undetectable的fault
    • 缺点:
      • 一次只能测一个fault
      • 在每一步都要进行决策
      • 对于一些难以检测的fault可能要多次迭代测试

    注意:有些fault点是测不到的,比如冗余逻辑

    练习

    Scannable Equivalent Filp-Flop

    上面的方法是测组合逻辑,而要测时序逻辑,则需要将DFF进行替换:

    之后将所有替换后的DFF串起来形成一条链。

    目的:方便将测试激励灌到任意DFF中。

    方法

    • SE选中SI端,经过scan shift将测试激励通过SI端移到寄存器中
    • SE选中D端,让寄存器Capture数据
    • SE选中SI端,继续shift,将待测点结果输出到output pin
    • 继续Capture ...

    例子:

    可以看到,要测标记点的fault,需要给1000的测试激励,首先通过SI端将数据依次打入对应寄存器,之后capture fault结果,然后继续shift,此时经过若干周期就能将所有DFF的capture值从PO导出来,就可以判断fault结果了。

    ATPG

    自动测试图形(pattern)生成。芯片测试需要有pattern, 手工设计pattern是非常耗时的。主要Tools: Teramax, Testkcompress, Encouter Test.

    ATPG flow:

    • Read design
    • Build design
    • DRC
    • Prepare for ATPG
    • Run ATPG
    • Save patterns and faults

    Memory 在测试的时候是交给BIST来做的,是一个black box,但是这样在Memory block的附近可观测性很低,如何解决?

    • 加bypass逻辑,(mem输入到输出加DFF)
    • 使用TetraMax Model (为memory建模)

    MBIST

    为什么要做MBIST?

    • Memory在现在芯片中占比越来越大。(80%-90% Today)

    • mem对工艺波动非常敏感

    • 目前很多嵌入的mem都有内置的redundancy(冗余逻辑),可以替换一些失效的mem区域,而失效区域需要BIST来检测到

    Memory类型

    • SRAM
    • DRAM
    • CAM
    • ROM
    • FLASH

    MBIST一般只针对SRAM, DRAM, ROM

    Memory Defects

    1. 地址解码逻辑
    2. 读写控制逻辑
    3. memory cell

    同样,memory 的fault也有stuck-at fault(钳位在固定电平) 和transition fault。此外,mem还有Coupling Fault:

    Coupling Fault:

    • Inversion Coupling Faults(CFin)

      • 一个cell上的跳变导致另一个cell往反方向跳变

    • Idempotent Coupling Faults

      • 跟上面类似,只是导致另一个cell往固定值跳变
    • Bridge Coupling Faults (BF)

      • 在内部cell之间存在桥接,效果是看上去两个cell相或,相与
    • Neighborhood Pattern Sensitive faults

    MBIST 算法

    • Address Decoder Algorithm
    • March Algorithm
    • Checkerboard Algorithm

    MBIST 的基本架构

  • 相关阅读:
    单核时代,PHP之类多线程或者多进程的,是怎么处理并发的?是排队吗?
    高并发下的Node.js与负载均衡
    telnet 查看端口是否可访问
    同步与异步--
    函数式编程沉思录(草稿)
    面向状态机编程
    promise是有状态的moand
    异步链式编程—promise沉思录
    同步与异步
    网络编程释疑之:同步,异步,阻塞,非阻塞
  • 原文地址:https://www.cnblogs.com/lyc-seu/p/12698366.html
Copyright © 2020-2023  润新知