SoC设计方法与实现第十章可测性设计郭炜魏继增郭筝谢憬内容大纲•测试的概念和原理•故障建模•自动测试向量生成•可测性设计•可测性方法(SCAN、MEMORYBIST、BoundarySCAN)内容大纲•测试的概念和原理•故障建模•自动测试向量生成•可测性设计•可测性方法(SCAN、MEMORYBIST、BoundarySCAN)测试概念和原理•测试包含了三方面的内容:已知的测试矢量、确定的电路结构和已知正确的输出结果按测试方式的分类•穷举测试矢量穷举测试矢量是指所有可能的输入矢量。•功能测试矢量功能测试矢量主要应用于验证测试中,目的是验证各个器件的功能是否正确。•结构测试矢量这是一种基于故障模型的测试矢量,它的最大好处是可以利用电子设计自动化(EDA)工具自动对电路产生测试向量,并且能够有效地评估测试效果。测试向量举例说明•例如,如果要测试74181ALU,其有14个输入端口穷举测试向量就需要214=16384个测试矢量,对于一个有38个输入端口的16位的ALU来说,以10MHz的速度运行完所有的测试矢量需要7.64个小时测试向量举例说明•功能测试向量以74181ALU为例,只需要448个测试矢量,但是目前没有算法去计算矢量是否覆盖了芯片的所有功能。•结构测试向量74181ALU只需要47个测试矢量。这类测试矢量的缺点是有时候工具无法检测所有的故障类型。SoC测试的目的•寻找最小的测试向量集去覆盖更多的芯片以及板级的故障•衡量标准:故障覆盖率自动测试设备(ATE)测试设备附件探针卡机械手测试板4x1典型测试项目1.连接性(接触)测试2.DC参数测试3.功能测试4.AC参数测试内容大纲•测试的概念和原理•故障建模•自动测试向量生成•可测性设计•可测性方法(SCAN、MEMORYBIST、BoundarySCAN)缺陷、故障、误差和漏洞•缺陷是指在集成电路制造过程中,在硅片上所产生的物理异常,如某些器件多余或被遗漏了。•故障是指由于缺陷所表现出的不同于正常功能的现象,如电路的逻辑功能固定为1或0。•误差是指由于故障而造成的系统功能的偏差和错误。•漏洞是指由于一些设计问题而造成的功能错误,也就是常说的bug。制造缺陷和故障表现形式制造过程中的缺陷故障表现形式线与线之间的短路逻辑故障电源与电源之间的短路总的逻辑出错逻辑电路的开路固定型故障线开路逻辑故障或延迟故障MOS管源漏端的开路延迟或逻辑故障MOS管源漏端的短路延迟或逻辑故障栅级氧化短路延迟或逻辑故障PN结漏电延迟或逻辑故障常见故障模型•固定型故障•晶体管固定开/短路故障•桥接故障•延迟故障•存储单元故障•模拟故障固定型故障•这是在集成电路测试中使用最早和最普遍的故障模型,它假设电路或系统中某个信号永久地固定为逻辑0或者逻辑1,简记为SA0(Stuck-At-0)和SA1(Stuck-At-1)固定型故障举例•共包含2×(Npins+Nports)=2×(11+5)=32个固定型故障故障合并•端口A的SA0故障和端口Z的SA0故障等效,同样的端口A的SA1故障和端口Z的SA1故障等效,因此在考虑测试矢量集的时候可以合并故障,只需要从子故障集合{A:SA0,Z:SA0}和{A:SA1,Z:SA1}中各选择一个故障类型。晶体管开路故障晶体管短路故障存储器故障模型•单元固定故障(SAF,Stuck-AtFault)单元固定故障指的是存储器单元固定在0或1。为了检测这类故障需要对每个存储单元和传输线进行读/写0和1的操作。•状态跳变故障(TF,TransitionDelayFault)状态跳变故障是固定故障的特殊类型,发生在对存储单元进行写操作的时候,不发生正常的跳变。这里需要指出的是跳变故障和固定故障不可相互替代,因为跳变故障可能在发生耦合故障时发生跳变,但是固定故障永远不可能改变。为了检测此类故障必须对每个单元进行0-1和1-0的读/写操作,并且要在写入相反值后立刻读出当前值。单元耦合故障•这些故障主要针对RAM,发生在一个单元进行写操作时,这个单元发生跳变的时候,会影响到另一个单元的内容。单元耦合可能是反相类型•临近图形敏感故障•该故障主要有4类:对于给定的地址,不存在相对应的存储单元;对于一个存储单元,没有相对应的物理地址;对于给定的地址,可以访问多个固定的存储单元;对于一个存储单元,有多个地址可以访问。地址译码故障内容大纲•测试的概念和原理•故障建模•自动测试向量生成•可测性设计•可测性方法(SCAN、MEMORYBIST、BoundarySCAN)自动测试向量生成•利用软件程序可以实现ATPG算法,达到测试向量自动生成的目的。这里的测试向量是指为了使特定故障能够在原始输出端被观察到,而在被测电路原始输入端所施加的激励。通过软件程序,可以自动完成以下两项工作:基于某种故障类型,确定当前测试矢量能够覆盖多少物理缺陷;对于特定的抽象电路,工具能够自动选择能够匹配的故障模型。ATPG算法•在抽象出有效故障模型的基础上,就可以开发各种自动测试产生(ATPG,AutomaticTestPatternGeneration)向量了。常用的ATPG算法有伪随机算法和AD-Hoc算法对于组合逻辑来说还有D算法、PODEM算法和FAN算法ATPG算法步骤•故障类型的选择ATPG可以处理的故障类型不仅仅是阻塞型故障,还有延时故障和路径延时故障等,一旦所有需要检测的故障类型被列举,ATPG将对这些故障进行合理的排序,可能是按字母顺序、按层次结构排序,或者随机排序。•检测故障在确定了故障类型后,ATPG将决定如何对这类故障进行检测,并且需要考虑施加激励向量的测试点,需要计算所有会影响目标节点的可控制点。•检测故障传输路径寻找传输路径可以说是向量生成中最困难的,需要花很多时间去寻找故障的观测点的传播。因为通常一个故障拥有很多的可观测点,一些工具一般会找到最近的那一个。不同目标节点的传输路径可能会造成重叠和冲突,当然这在扫描结构中是不会出现的。ATPG工具的使用步骤•将含扫描结构的门级网表输入到ATPG工具。•输入库文件。必须与门级网表相对应并且能被ATPG工具识别。•建立ATPG模型。输入库文件后,ATPG工具将根据库文件和网表文件建立模型。•根据STIL文件做DRC检测。STIL文件是标准测试接口文件,包含扫描结构的一系列信息和信号的约束。•生成向量。这里需要选择建立哪种故障模型。•压缩向量。这一步骤可以节约将来芯片测试时候的工作站资源和测试时间。•转换ATPG模式的向量为ATE所需要格式的测试向量。•输出测试向量和故障列表。内容大纲•测试的概念和原理•故障建模•自动测试向量生成•可测性设计•可测性方法(SCAN、MEMORYBIST、BoundarySCAN)可测性设计基础•所谓可测性设计是指设计人员在设计系统和电路的同时,考虑到测试的要求,通过增加一定的硬件开销,获得最大可测性的设计过程。•目前,主要的可测性设计方法有:扫描通路测试(Scan)内建自测试(BIST)边界扫描测试(BoundaryScan)可测性设计的优势和不足优势不足可以利用EDA工具进行测试矢量的生成增大了芯片的面积、提高了出错概率便于故障的诊断和调试增加设计的复杂程度可以提高芯片的成品率并衡量其品质需要额外的引脚,增加了硅片面积减少测试成本影响了芯片的功耗、速度和其他性能内容大纲•测试的概念和原理•故障建模•自动测试向量生成•可测性设计•可测性方法(SCAN、MEMORYBIST、BoundarySCAN)Scan•可测试性•Scan的基本概念•扫描测试设计规则1G3G2G1B=0C=0D=1E=1测试向量=00110Bs.a.1A可控制性•把激励施加到被测单元的能力G3G4A=0s.a.1A0Y故障传播B期望:0故障响应:1可观察性•故障传播到原始输出端的能力固定型故障检测举例固定型故障检测举例•寻找图中故障点的测试向量扫描测试的基本概念•扫描测试是目前数字集成电路设计中最常用的可测性设计技术,这里说的是内部扫描,不同于边界扫描。•扫描时序分成时序和组合两部分,从而使内部节点可以控制并且可以观察。•测试矢量的施加及传输是通过将寄存器用特殊设计的带有扫描功能的寄存器代替,使其连接成一个或几个长的移位寄存器链来实现的。带多路选择器的D型触发器正常工作模式:scan_enable为0,此时数据从D端输入,从Q端输出。扫描移位模式:scan_enable为1,此时数据从scan_in输入,从scan_out端输出。DQDQScan-inScan-enable10Scan-outD带扫描端的锁存器全扫描和部分扫描扫描测试原理扫描设计规则•扫描测试要求电路中每个节点处于可控制和可观测的状态,只有这样才能保证其可替换为相应的扫描单元,并且保证故障覆盖率。•为了保证电路中的每个节点都符合设计需求,在扫描链插入之前会进行扫描设计规则的检查。基本扫描规则•使用同种类扫描单元进行替换,通常选择带多路选择器的扫描触发器;•在原始输入端必须能够对所有触发器的时钟端和异步复位端进行控制;•时钟信号不能作为触发器的输入信号;•三态总线在扫描测试模式必须处于非活跃状态;•ATPG无法识别的逻辑应加以屏蔽和旁路。三态总线•为了避免扫描模式(scan_mode)下的总线竞争,必须控制其控制端,通常的做法是在控制端加入多路选择器,使其固定在逻辑0或者逻辑1门控时钟或者门控异步输入端•为了避免扫描模式下resetn不可控制,处理方法和三态总线一样,加入额外逻辑,让异步输入端处于非有效状态ATPG工具不识别的逻辑•旁路黑盒整体DFT实现及性能上考虑•尽量避免异步时钟设计;•限制不同时钟域的数量;•对于多时钟域的设计,处于同一时钟域的触发器最好连在同一根扫描链上;•注意扇出比较多的端口,如scan_enable信号,尤其在综合的时候需要特别注意;•对于存储器、模拟电路等不可综合的逻辑加入适当的隔离旁路结构;•避免过长的扫描链;•考虑到测试模式下功耗过高所造成的问题,可将扫描测试分成数个部分,分开进行插入,在不同的扫描测试模式下,测试不同的部分;•尽量减少额外逻辑带来的面积、功耗的增大;•通过复用外围引脚,减少扫描测试对引脚的要求。整体DFT实现及性能上考虑常用的测试综合和ATPG工具•扫描插入工具:Synopsys的DFTCompiler、Mentor的DFTAdvisor。•ATPG工具:Synopsys的TetraMAX、Mentor的Fastscan。•测试矢量验证:Synopsys的TetraMAX。扫描设计流程存储器内建自测•存储器本身的物理结构密度很大。通常对存储器的测试将受到片外引脚的限制,从片外无法通过端口直接访问嵌入式存储器。•随着存储器容量和密度的不断增加,各种针对存储器的新的错误类型不断产生。•SoC对于存储器的需求越来越大。目前在许多设计中,存储器所占硅片面积已经大于50%,预计到2014年这一比率会达到94%。•对于SoC系统而言,SRAM、DRAM、ROM、EEPROM和Flash都可以嵌入其中,因此需要不同的测试方法去测试。•存储器的测试时间越来越长,在未来的超大规模集成电路设计过程中,存储器将取代数字逻辑而占据芯片测试的主要部分。存储器测试方法测试方法优点缺点直接访问测试方法可以进行非常详细的测试可以使用故障诊断工具在芯片I/O上有巨大损失布线代价可能很大通过片上微处理器进行测试不需要额外硬件没有性能损失必须要有微处理器的存在存储器内建自测有自动工具支持可以进行全速测试有良好的故障覆盖率对于测试机来说,消耗最少有一定的硬件开销对存储器带来永久的性能损失故障诊断和修复比较麻烦硬件本身的可测试性扫描寄存器测试可以进行故障分析避免了在芯片I/O性能损失测试时间会很长需要大量的额外硬件用ASIC功能测试的方法进行测试不需要额外硬件没有性能损失只能执行简单算法只适合小型存储器BIST的基本概念•内建自测必须附加额外的电路,包括向量生成器、BIST控制器和响应分析器BIST测试引脚•B