1.测试概念和原理
测试包含了三方面的内容:
试方式的分类
向量举例说明
例如,如果要测试74181ALU,其有14个输入端口
穷举测试向量, 就需要214=16384个测试矢量,对于一个有38个输入端口的16位的ALU来说,以10 MHz的速度运行完所有的测试矢量需要7.64个小时.
功能测试向量,要448个测试矢量,但是目前没有算法去计算矢量是否覆盖了芯片的所有功能。
结构测试向量,要47个测试矢量。这类测试矢量的缺点是有时候工具无法检测所有的故障类型。
测试的目的
2.可测性设计
可测性设计基础
所谓可测性设计是指设计人员在设计系统和电路的同时,考虑到测试的要求,通过增加一定的硬件开销,获得最大可测性的设计过程。
目前,主要的可测性设计方法有:
可测性设计的优势和不足
3.可测性方法(SCAN、BIST、 Boundary SCAN)
扫描通路测试 Scan
可控制性:把激励施加到被测单元的能力
可观察性:故障传播到原始输出端的能力
扫描测试的基本概念
带多路选择器的D型触发器
正常工作模式:scan_enable为0,此时数据从D端输入,从Q端输出。
扫描移位模式:scan_enable为1,此时数据从scan_in输入,从scan_out端输出。
带扫描端的锁存器
全扫描和部分扫描
扫描测试原理
扫描设计规则
基本扫描规则
三态总线
为了避免扫描模式(scan_mode)下的总线竞争,必须控制其控制端,通常的做法是在控制端加入多路选择器,使其固定在逻辑0或者逻辑1
门控时钟或者门控异步输入端
为了避免扫描模式下resetn不可控制,处理方法和三态总线一样,加入额外逻辑,让异步输入端处于非有效状态
内建自测试BIST
内建自测必须附加额外的电路,包括向量生成器、BIST控制器和响应分析器
BIST测试引脚:
BIST模块在设计中的集成
BIST电路作为逻辑电路的一部分通常在RTL级插入,并且需要与其他逻辑一起进行综合。数据、地址和一些控制信号在进入存储器之前需要经过多路选择器。
许多EDA工具可以在RTL级自动生成BIST电路并集成到设计中,其中最常用的是Mentor的mBISTArchitect和Synopsys的SoCBIST
边界扫描测试
IEEE 1149.1标准
边界扫描是欧美一些大公司联合成立的一个组织——联合测试行动小组(JTAG),为了解决印制电路板(PCB)上芯片与芯片之间互连测试而提出的一种解决方案。由于该方案的合理性,它于1990年被IEEE采纳而成为一个标准,即IEEE 1149.1。
该标准规定了边界扫描的测试端口、测试结构和操作指令。
IEEE 1149.1结构
主要包括TAP控制器和寄存器组。
寄存器组包括边界扫描寄存器、旁路寄存器、标志寄存器和指令寄存器
JTAG的基本原理
是在器件内部定义一个TAP(Test Access Port,测试访问口)通过专用的JTAG测试工具对内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。
端口定义
除此之外,还有一个可选端口TRST,为测试系统复位信号,作用是强制复位。
边界扫描的原理
在核心逻辑电路的输入和输出端口都增加一个寄存器,通过将这些I/O上的寄存器连接起来,可以将数据串行输入被测单元,并且从相应端口串行读出。
板级芯片的互连测试
TAP控制器
TAP控制器的作用是将串行输入的TMS信号进行译码,使边界扫描系统进入相应的测试模式,并且产生该模式下所需的各个控制信号。
边界扫描寄存器
边界扫描寄存器
指令寄存器
指令寄存器由移位寄存器和锁存器组成,长度等于指令的长度。IR可以连接在TDI和TDO的两端,经TDI串行输入指令,并且送入锁存器,保存当前指令。
在这两部分中有个译码单元,负责识别当前指令。由于JTAG有3个强制指令,所以该寄存器的宽度至少为2位。
边界扫描测试策略
逻辑单元BIST
Logic BIST是SoC设计中芯片可测性设计的发展方向。
大多数的ASIC使用基于扫描的DFT技术。对于规模越来越大的芯片来说,扫描测试的策略面临着巨大的挑战。
整体DFT实现及性能上考虑
扫描设计流程