为什么要做DFT ?
随着集成电路制造技术和复杂度的提高,集成电路设计工程师可以将一个系统集成在一个芯片中,其中可能包括逻辑部分、存储器、模拟部分、模数混合部分等等,这样的系统称为片上系统,也称为系统芯片(SoC)。相对于板上系统,系统芯片极大地缩小了系统体积,减少了板级系统中芯片与芯片之间的互连延迟,从而极大地提高了系统的性能。为了缩短上市时间和节约开发成本,系统芯片越来越多的采用嵌入式核进行设计,这些嵌入式核被称为IP(Intellectual Property)核,这种基于库资源的IP复用设计方式将成为IC设计的主流方式可测试性设计就是其中的难题之一。
常用技术有哪些呢
1. 边界扫描测试BSD
如图所示,为BSD(Boundray-Scan DFT)的总体拓扑结构,主要包括边界扫描单元(BSC)和测试访问端口控制器(TAP Controller)两部分,其核心就是TAP Controller。
图中的移位寄存器单元插入到IC的核心逻辑与I/O管脚之间,以提供通过所有IC的一条串行测试数据通路。因为移位寄存器单元位于IC的边界处,所以这些单元被称为边界扫描单元(BSC,Boundary Scan Cell),由它们构成的移位寄存器称为边界扫描寄存器。为了完成测试功能,相互连接的边界扫描单元必须具有数据移位、数据更新、数据捕获等功能,这些功能是由测试控制逻辑来控制的。测试控制逻辑由两条信号线驱动:TMS和TCK。所以,整个边界扫描测试要求IC中至少有四个可利用的测试管脚,或将它们附加到其他的功能管脚上。四个管脚TMS、TCK、TDI和TDO被称为测试访问端口(TAP, Test Access Port)
2.BIST
BIST技术是一种内建自测试技术,对于它的研究目前主要集中在低功耗和高故障覆盖率方面。
为了缩短测试时间,要考虑到很多因素,下面列出几个最重要的问题:
- 功耗约束: 芯片各个模块在并行测试时,功耗往往很高,所以必须确定功耗极限值,该值的确定往往与芯片的材料、电路性质等多种因素有关;
- 模块优先级: 系统芯片中各个模块的测试并非完全独立,外层模块的测试有时需要它的嵌入式模块先完成测试;
- 资源冲突: 测试资源包括内部与外部的各种总线、激励产生单元、响应分析器等。在并行测试期间,同一个测试资源不能在同一时刻分配给不同的测试模块,同一个模块也不能同时分配给不同的测试资源。
3 SCAN CHAIN
DFT的根基是什么?
接下来给出stuck at fault 测试的基本原理。以SA0测试为例。如图2-2所示,
暂记向量VIN=[A B C D] ,T=[A B C D Y] ,向输入端口加入激励,使得VIN=[1 0 0 0],则当SAO发生时,输出端口Y为0,反之,Y为1。可知SA0可以通过输出端口测试出来了。T被称为测试图形。认真分析会发现,VIN并不是任意的,
这牵扯到测试路径算法的问题,比较经典的是D算法,不再赘述
执行DFT的过程有哪些?
- 读入设计文件(电路代码.v 时序约束文件 .sdf 等) 图3-3 为电路的rtl结构。
-
设定测试协议。测试协议包括测试的模式,测试所采取的测试信号。常见的包括测试所需的时钟信号,控制端信号,复位信号等。
-
在插入DFT之前,要进行电路的设计规则检查,要在没有发生错误的前提再插入DFT
-
明确扫描架构 。简单的说就是明确测试的时序,包括周期,时钟,数据的延迟等
-
插入扫描链
-
做插入扫描链后的DRC,如果不通过需要进行修改。即使通过,如果错误覆盖率很低,也要进行迭代设计
-
提交设计文件方便以后的查询与更正。的部分内容截图,易知利于读者查询测试激励信号设置,同样也可以自己书写该文件,这要求比较高,可以提高设计的效率
DFT交付标准是什么?
1. DFT设计文档,测试策略
2. pattern 数据
3. 覆盖率出口要求, 报告,如图所示,覆盖率出口标准因项目而异,重要的是要分析出来那些确实是ND, UD