文章目录
- 1 概述
-
- 1.1 测试和测试矢量的分类
- 2 故障建模及ATPG原理
-
- 2.1 故障建模的概念?
- 2.2 为什么要建模故障?
- 2.3 常见的故障模型有哪些?
- 2.4 ATPG是什么?
- 3 可测性设计基础
-
- 3.1 可测性的含义?
- 3.2 可测性设计(Design For Testability,DFT)的含义?
- 3.3 可测性设计的优势和不足?
- 4 扫描测试(SCAN)
-
- 4.1 扫描测试结构的基本单元?
- 4.2 扫描测试原理?
- 4.3 at-speed 测试 ?
- 4.4 扫描设计规则?
- 4.5 可测性设计流程及相关扫描测试 EDA 工具?
- 5 内建测试存储器
-
- 5.1 存储器测试方法?
- 6 边界扫描测试
1 概述
测试的含义:目前所指的测试通常是芯片流片后的测试,定义为对测试电路施加已知的测试矢量,观察输出结果,比较已知正确的输出结果,判断芯片的功能、性能和结构。
1.1 测试和测试矢量的分类
- 验证测试(Verification Testing,也称为 Design Validation) 进行功能测试和全面测试 AC、DC参数测试。
- 生产测试(Manufacturing Testing) 测试的目的是明确判断被测芯片是否通过测试。
- 可靠性测试(Reliability Testing) 保证产品的可靠性。
- 接收测试(Acceptance Testing) 芯片在用户手中,用户将再次测试。
- 穷举测试矢量(Exhaustive Vector) 覆盖率高但数量大。
- 功能测试矢量(Functional Vector) 验证各设备的功能是否正确,主要应用和验证测试。
- 结构测试矢量(Structural Vector) 基于故障模型的测试矢量,无法检测所有的故障类型。
2 故障建模及ATPG原理
基本概念:
- 缺陷:在集成电路制造过程中,硅片上产生的物理异常,如某些设备多余或遗漏。
- 故障:缺陷与正常功能不同。
- 误差:由故障引起的系统功能偏差或错误。
- 漏洞:由一些设计问题引起的功能错误。
2.1 故障建模的概念?
以数学模型模拟芯片制造过程中的物理缺陷,便于研究故障对电路或系统的影响,诊断故障位置。
2.2 为什么要建模故障?
电路中可能存在各种物理缺陷,由于某些物理缺陷对电路功能的影响太复杂,无法充分理解,难以分析。故障模型,从而避免了物理缺陷分析的复杂性。
2.3 常见的故障模型有哪些?
- 数字逻辑单元中的故障模型
- (1) 固定型故障(Stuck At Fault,SAF) 最早、最常见的故障模型用于集成电路测试。 假设电路或系统的信号永久固定为逻辑0或逻辑1,简记为SA0(Stuck At 0)和SA1(Stuck At 1) 故障可以合并,如非门输入端A ST0 与输出端 Y 的 ST1 故障等效。考虑测试矢量集的时候可以合并故障,选一个子故障集就行。
- (2) 晶体管固定开/短路故障(Stuck-open/Stuck-short) 测量开路故障输出逻辑 输出端口的静态电流需要测量固定短路故障。
- (3) 桥接故障(Bridging Faults) 桥接故障是指节点间电路的短路故障。 分为三类:逻辑电路与逻辑电路之间的桥接故障,节点间无反馈桥接故障,节点间无反馈桥接故障。
- (4) 跳变延迟故障(Transition Delay Fault,TF) 指电路不能在规定的时间内通过 0 跳变到 1 或从 1 跳变到 0 的故障。 在电路上传输一段时间后,跳变延迟故障表现为固定故障。
- (5) 延迟传输故障(Path Delay Fault) 指信号在特定路径上的传输延迟,通常与测试路径有关 AC 特别是关键路径,参数联系在一起。
- 存储器的故障类型
- (1) 单元固定故障(Stuck-At Fault) 存储单元固定在 0 或 1.为了检测,需要读写每个存储单元和传输线 0 和 1 操作。
- (2) 状态跳变故障(Transition Delay Fault,TF) 这是一种特殊类型的固定故障。在读写存储单元时,不会发生正常的跳变。为了检测每个单元的相反值,请立即读取当前值。
- (3) 单元耦合故障(Coupling Fault,CF) 主要针对 RAM,写一个单元时,会影响另一个单元的电容。 类型:反应类型(CFin,inversion)、等幂类型(CFid,idempotent,只有当单元有特定数据时,单元内容才会发生变化单的状态耦合(CFst,state,单元内容在其他位置有特定内容时发生变化)。 为了检测所有单元在对连接单元进行奇数跳变后的读取操作,以避免可能的耦合故障。
- (4) 图形敏感故障附近(Neighborhood Pattern Sensitive Faults,NPSF) 当特定存储单元周围的其他存储单元出现一些特定数据时,该单元将受到影响。
- (5) 地址译码故障(Address Decode Fault,ADF) 类型:1 对于给定的地址,没有存储单元。 存储单元没有相应的物理地址。 多个固定存储单元可以访问给定地址。 有多个地址可以访问一个存储单元。
- (6) 数据保留故障(Data Retention Fault) 指存储单元在规定时间内无法有效保持其数据值的故障。
2.4 ATPG是什么?
产生自动测试(Automatic Test Pattern Generation)。采用故障模型,通过分析芯片的结构生成测试向量,进行结构测试,筛选出不合格的芯片。
测试向量:指在原输出端观察到特定故障并在被测电路原输入端施加的激励。
完成工作:
- 根据某种故障类型,确定当前测试矢量能覆盖多少物理缺陷
- 对于特定的抽象电路,工具可以自动选择匹配的故障模型。
故障检测率:表示测试矢量集对故障的覆盖程度。故障覆盖率 = 检测到的故障数量 / 被测电路故障总数。
ATPG工具:Synopsys 的 TetraMAX 和 Menter 的 Fastscan
3 可测性设计基础
3.1 可测性的含义?
框架定义:生成、评估、运行测试,以满足一系列测试对象(如故障覆盖率、测试时间等)。 工业范围狭窄的定义:可以测试和检验设计产品中存在的各种制造缺陷的程序。
3.2 可测性设计(Design For Testability,DFT)的含义?
它是指设计师在设计系统和电路时,考虑到测试要求,通过增加一定的硬件成本,获得最大可测性的设计过程。 辅助设计是基于故障模型的结构测试服务,用于检测故障生产。 主要的可测性设计方法:
- 扫描通道测试
- 内建自测试
- 边界扫描测试。
两个重要概念:
- 可控制性(Controllability):指将信号设置为0或1的难度。
- 可观测性(Obsevability):指观察这个信号所产生故障的难度。
3.3 可测性设计的优势和不足?
优势 | 不足 |
---|---|
可以利用EDA工具进行测试矢量的生产 | 增大了芯片的面积、提高了出错概率 |
便于故障的诊断和调试 | 增加设计的复杂程度 |
可以提高芯片成品率并衡量其品质 | 需要额外的引脚,增加了硅片面积 |
减少了测试成本 | 影响了芯片的功耗、速度和其他性能 |
4 扫描测试(SCAN)
扫描测试被认为是最理想的结构故障测试结构,不仅可重复利用,也有助于测试向量的生成。
能够检测的故障包括线路的断路和短路、线路和器件的延迟等。
组合逻辑的故障模型的测试分析可以从输出端口倒推出输入端口,得到测试矢量。
时序逻辑需要一个或多个时钟周期才能将测试矢量送至被测节点。扫描测试方法是解决时序电路测试的最佳方案。
4.1 扫描测试结构的基本单元?
测试矢量的施加及传输是通过将寄存器用特殊设计的带有扫描功能的寄存器代替,使其连接成一个长的移位寄存器链来实现。 扫描测试结构的基本单元是扫描触发器,使用最广泛的是带多路选择器的D触发器和带扫描端的锁存器。
-
带多路选择器的D触发器
scan-enabel 控制电路为 正常工作模式 或者 扫描模式。 增加芯片面积和功耗。
-
带扫描端的锁存器 电平敏感扫描器。
c为高电平,正常工作模式。a为高电平,扫描工作模式。 b为高电平时,存在第一级锁存器的数据传输到 sq 端。 时钟生成和分配异常复杂。
将扫描单元按扫描移位模式连接起来,就构成扫描测试的基本结构。
扫描方式:
- 全扫描:在设计中的每个寄存器都用具有扫描功能的寄存器代替。
- 部分扫描:电路中一部分采用了扫描测试结构,而一部分没有。
4.2 扫描测试原理?
为了测试 G3 输入断电 SA1 故障测试,流程:
- 1 将测试矢量(100)移入,也就是移位寄存器链输出从右到左分别是 1 0 0,当电路正常时,输出应该是0,当有 ST1 故障,输出就为1.
- 2 测试矢量移入后,就可以切换到正常工作模式看看输出了。此时输出存在最后一个寄存器上。
- 3 再切换到扫描模式,将故障响应通过扫描链输出,同时新的测试矢量输入。
4.3 at-speed 测试 ?
检测延迟故障(包括状态跳变故障和延迟故障),通常采用 at-speed 测试方法,可以包含一切 stuck-at 故障。
at-speed 测试 测试一个延迟故障需要对组合逻辑施加两个测试向量,第一个设置电路状态,下一个引起触发器翻转。两种方法产生并施加at-speed 测试向量。
- 移位启动
- 慢速移位快速捕获(Slow Shift Fast Capture)
4.4 扫描设计规则?
为了保证电路中每个节点符合可控制和可观测的需求,再扫描链插入之前会进行扫描设计规则检测。
- 使用同种类扫描单元进行替换,通常选择带多路选择器的扫描触发器;
- 在原始输入端必须能够对所有触发器的时钟端和异步复位端进行控制;
- 时钟信号不能作为触发器的输入信号;
- 三态总线在扫描测试模式必须处于非活跃状态:
- ATPG无法识别的逻辑应加以屏蔽和旁路。
4.5 扫描测试的可测性设计流程及相关 EDA 工具?
扫描测试的设计包括两部分内容:测试电路插入 和 测试矢量生成。
测试电路的插入:
- 在电路中(RTL)加入测试控制点,包括测试使能信号和必要的时钟控制信号。
- 在扫描模式下将触发器替换为扫描触发器,并且将其传入扫描链。
- 通过检查 DRC ,保证每个触发器的可控制性和可观察性。
测试矢量的生成主要利用 ATPG 工具完成:
- 扫描插入工具: Synopsys 的DFT Compiler、Mentor 的DFTAdvisor。
- ATPG工具: Synopsys 的TetraMAX、Mentor 的Fastscan。
- 测试矢量验证: Synopsys 的TetraMAX。
Synopsys 的DFT Compiler为例,将 DFT 实现放在综合流程中,不会妨碍原功能、时序、信号完整或功耗的要求,实现过程:
- 1 信号定义
- 2 设计综合
- 3 扫描插入
- 4 设计规范检查
5 存储器的内建测试
5.1 存储器测试方法?
- (1)直接访问测试方法 在芯片外增加直接访问存储器的端口,通过直接读/写存储单元来测试存储器。
- (2)通过片上微处理器进行测试 微处理器作为“测试仪”,利用微处理器存储器中的汇编语言程序来实现所需要的存储器测试算法。
- (3)利用存储器内建自测(Built-In-Self-Test,BIST)。 通过在存储器周围加入额外的电路来产生片上测试向量并进行测试比较,完成对存储器的测试。BIST 的方法可以用于 RAM、ROM和Flash 等存储设备中,主要用于 RAM 中。
- (4)扫描寄存器测试 对于小型的嵌入式存储器通常使用局部边界扫描寄存器,需要给嵌入式存储器增加测试外壳。由于外壳的延迟,存储器的读写速率将降低。
- (5)用 ASIC 功能测试的方法进行测试 对于小型存储器,ASIC 供应商提供了简单的读写操作用于 ASIC 的功能操作。
6 边界扫描测试
边界扫描测试(Boundary scan)是为了解决PCB上芯片与芯片之间的互连测试而提出的一种解决方案。