zoukankan      html  css  js  c++  java
  • 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 的基本架构

  • 相关阅读:
    从零开始入门 K8s | 应用编排与管理
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    203. Remove Linked List Elements
    183. Customers Who Never Order
    182. Duplicate Emails
    181. Employees Earning More Than Their Managers
    1261. Find Elements in a Contaminated Binary Tree
    1260. Shift 2D Grid
  • 原文地址:https://www.cnblogs.com/lyc-seu/p/12698366.html
Copyright © 2011-2022 走看看