确定性星体内建自测的制作方法

文档序号:23475983发布日期:2020-12-29 13:32阅读:208来源:国知局
确定性星体内建自测的制作方法

相关申请

本申请要求于2018年3月22日提交的、名称为“确定性星体内建自测”、以yingdiliu等人作为发明人、编号为62/646,494的美国临时专利申请的权益,该申请通过引用整体并入本文。

当前公开的技术涉及电路测试。所公开技术的各种实施方式对于系统内测试可以是特别有用的。



背景技术:

高级驾驶员辅助系统(adas)和自主驾驶汽车快速发展的背后是对传感器生成的数据的大量处理。反过来,这种趋势推动了其中越来越多的先进技术节点正被加速引入的蓬勃发展中的汽车电子市场。随着复杂的安全关键部件的数量迅速增长,该领域的集成电路(ics)必须遵守由功能安全标准(例如iso26262及其汽车安全完整性d级(asild)目标)驱动的最严格的高质量和长期可靠性要求。除了高质量的制造测试外,用于汽车ic的asild合规性还需要先进的和互补的测试方案,以解决汽车零件带来的挑战并支持以下测试要求中的一项或多项:(1)在功能性操作期间运行系统内测试的能力,(2)由于对钥匙开启(key-on)、钥匙关闭(key-off)的严格限制所导致的短测试应用时间,并且尤其是为定期在线测试而部署的空闲时间,(3)低测试功率,(4)低硅面积,(5)处理ic制造时未知的缺陷敏感性的能力,以及(6)容易地扩大规模(scaleup)的潜力。

逻辑内建自测(lbist)越来越多地与片上测试压缩一起使用,以跟上寻求可行的系统内测试替代的新技术的需求。lbist通常采用扫描作为其操作基准,以运行高质量的实速功率感知测试(at-speedpower-awaretest),并使用简单的外部装置来提供功率和时钟信号。利用大众市场驾驶安全关键系统,结合lbist和测试数据压缩的概念已允许多种测试方案能够与传统制造测试技术相匹敌。在非常短的时间段内可达到高测试覆盖率(包括系统级和现场测试过程),对于打算要长期部署的装置的高效和可靠的操作已经变得至关重要。然而,新的更复杂的缺陷和可靠性风险不可避免地提出这样的问题:当前测试方案的可持续性如何,以及不久可能需要什么测试设计方法。

在给定可行的向量计数的情况下,一些传统的lbist方案使用加权随机向量来处理不可接受的低故障覆盖率数。可替代地,可以通过扰动伪随机向量来获得期望的刺激。比特位翻转及其应用在这里可以用作示例。不幸的是,这些方案严重依赖于目标测试集,并且每次测试向量(testpattern)由于逻辑工程改变顺序(eco)而改变时,方案必须被实质性地重新合成。lbist功能的其他方面也需要被解决。例如,lbist方案应当较少受到未知状态的影响,或者应当以可编程方式产生低功率测试向量。然而,相关的常规方案仍然主要处理伪随机测试数据。利用这些测试向量,当针对高级故障模型时,实现期望的测试质量变得越来越困难。此外,随机向量抗性故障(randompatternresistantfailure)例行地需要测试点的插入以提高测试覆盖率。

如前所述,混合bist方案能够克服测试数据带宽的瓶颈。在混合bist方案中,确定性填充向量(deterministictop-uppattern)(用于检测随机抗性故障)以压缩形式存储在测试器上,然后可以使用现有的bist基础结构来执行矢量解压缩。底层编码方案通常利用测试立方(testcube)的低填充率的优势。该类中的方案包括线性反馈移位寄存器(linear-feedbackshiftregister)lfsr编码、静态和动态lfsr重播。

基于干扰伪随机测试向量的技术可以用包括确定性父向量及其随机或确定性派生量的向量群集来代替。例如,可以选择性地翻转由atpg生成的父测试向量的比特位。一种常规方案需要复杂的测试逻辑,其利用扫描顺序、相邻扫描单元之间的极性、在它们之间插入的控制点、以及波形发生器。利用这些特征,扫描链表现得像能够编码若干确定性测试向量的rom。在另一方案中,完全确定性测试压缩同时使用基于edt的压缩和解压缩的测试向量的确定性反演二者。尽管在该方案中用于父向量的存储大小较低,但实现某些测试覆盖率所需要的子向量的数量相当地高。非常需要一种使用不太复杂的逻辑并在测试应用时间和父测试数据量之间提供灵活权衡的新方法。



技术实现要素:

所公开技术的各个方面涉及确定性星体内建自测(stellarbuilt-inself-test)技术。在一个方面中,存在用于测试电路的系统,该系统包括:扫描链,其包括扫描单元,所述扫描链在测试模式下被配置为移入测试向量,将测试向量应用至所述电路,捕获所述电路的测试响应,以及移出所述测试响应;控制器,其包括存储电路(storagecircuitry),所述控制器被配置为基于存储在所述存储电路中的子测试向量信息来生成比特位反转信号;和比特位反转电路(bit-invertingcircuitry),其耦合至控制器,所述比特位反转电路被配置为在移位操作期间基于所述比特位反转信号来反转与多个移位时钟周期相关联的父测试向量的比特位以生成子测试向量,其中用于比特位反转的所述多个移位时钟周期在每m个移位时钟周期发生一次,并且所述子测试向量信息包括m的信息和所述移位操作中的所述多个移位时钟周期的位置。

对于测试集的所有父测试向量的所有子向量,m可以是相同的。所述父测试向量和所述移位操作中的所述多个移位时钟周期的位置可以由测试向量生成软件工具确定,并且所述测试向量生成软件工具执行向量生成过程(process),包括:首先执行电路结构分析以识别超级门,使用所述超级门来运行自动测试向量生成(atpg)过程以确定父测试向量,并为父测试向量生成子测试向量。所述向量生成过程还可以包括:执行向量重新排序,并保存有效的子测试向量。

该系统可以进一步包括:测试向量解压缩电路(testpatterndecompressingcircuitry),该测试向量解压缩电路被配置为将压缩的父测试向量解压缩为父测试向量。可以在所述测试向量解压缩电路中执行反转比特位。测试向量解压缩电路可以包括铃流发生器(ringgenerator)和移相器。可以由插入在所述铃流发生器和所述移相器之间的xor门来执行反转比特位。

存储电路可以包括用于存储m的信息的第一寄存器和用于存储在所述移位操作中的所述多个移位时钟周期的位置的信息的第二寄存器。所述控制器还可以包括递减计数器,所述递减计数器耦合到所述第二寄存器的输出,并且可以基于将所述递减计数器的输出和所述第一寄存器的输出进行组合来生成所述比特位反转信号。

在另一方面中,存在一个或多个非暂时性计算机可读介质,其存储用于使一个或多个处理器执行方法的计算机可执行指令,该方法包括:在电路设计中创建上述系统,以用于测试根据所述电路设计所制造的电路。

在所附的独立和从属权利要求中阐述了某些发明方面。来自从属权利要求的特征可以适当地与独立权利要求的特征以及其他从属权利要求的特征相组合,而不仅是如权利要求中明确阐述的那样。

以上在本文中已经描述了各个发明方面的某些目的和优点。当然,应该理解,根据所公开的技术的任何特定实施例,不是必需可实现所有这些目的或优点。因此,例如,本领域技术人员将认识到,所公开的技术可以以实现或优化如本文所教导的一个优点或一组优点的方式来实施或执行,而不是必需实现如本文可能教导或建议的其它目的或优点。

附图说明

图1示出可编程计算机系统,利用该可编程计算机系统可以采用所公开技术的各种实施例;

图2示出根据所公开技术的各种实施例的用于测试电路的系统的示例;

图3示出加载有父测试向量及其若干子测试向量的扫描链的示例;

图4示出根据所公开的技术的各种示例可以实施的比特位反转电路的框图的示例;

图5示出根据所公开的技术的各种示例可以实施的比特位反转控制器的框图的示例;

图6示出根据所公开的技术的一些实施例的详细的内建自测架构的示例;

图7示出由两个与(and)门构成的无扇出区域形成的超级门的示例;

图8示出根据所公开的技术的一些实施例的用于生成父测试向量及其子测试向量的算法的示例;

图9示出关于十个工业设计的基本数据。

图10使用图9的两个工业设计示出随着连续的补码之间的距离的持续增加,要存储的父测试向量的数量如何下降以及要应用的向量的数量如何上升。

具体实施方式

一般考虑

所公开技术的各个方面涉及确定性星体内建自测技术。在下面的描述中,出于解释的目的阐述了许多细节。然而,本领域普通技术人员将意识到,所公开的技术可以不使用这些特定细节进行实践。在其他情况下,没有详细描述众所周知的特征,以避免对所公开的技术造成混淆。

本文描述的一些技术可以以存储在计算机可读介质上的软件指令、在计算机上执行的程序指令或二者的一些组合来实施。例如,一些所公开的技术可以被实施为电子设计自动化(eda)工具的组成部分。这种方法可以在单个计算机或联网计算机上执行。

尽管为了方便呈现,以特定的次序顺序描述了所公开的方法的操作,但应当理解,这种描述方式包含重新排序,除非通过以下阐述的特定语言要求特定的顺序。例如,在一些情况下,顺序地描述的操作可以被重新排序或并发地执行。此外,为了简单起见,所公开的流程图和框图通常未显示其中特定方法可以与其他方法结合使用的各种方式。

方法或装置的详细描述有时使用如“生成”和“反转(invert)”的术语以描述所公开的方法或装置功能/结构。这些术语是高级别描述。对应于这些术语的实际操作或功能/结构将根据特定的实施方式而变化,并且本领域普通技术人员可以容易地对其进行辨别。

此外,如本文所使用,术语“设计”旨在包含描述整个集成电路装置的数据。该术语还旨在也包含描述整个装置的一个或多个部件(诸如集成电路装置的一部分)的较小的数据组。

示例性操作环境

可以通过由计算装置(诸如可编程计算机)执行软件指令来实施所公开技术的各种示例。相应地,图1显示计算装置101的说明性示例。如该图中所示,计算装置101包括具有处理单元105和系统存储器107的计算单元103。处理单元105可以是用于执行软件指令的任何类型的可编程电子装置,但是它传统上将是微处理器。系统存储器107可以包括只读存储器(rom)109和随机存取存储器(ram)111二者。如本领域普通技术人员将理解的,只读存储器(rom)109和随机存取存储器(ram)111二者都可以存储用于由处理单元105执行的软件指令。

处理单元105和系统存储器107通过总线113或替代通信结构直接地或间接地连接至一个或多个外围装置。例如,处理单元105或系统存储器107可以直接地或间接地连接至一个或多个附加的存储器存储装置,诸如“硬”磁盘驱动器115、可移动磁盘驱动器117、光盘驱动器119或闪存存储卡121。处理单元105和系统存储器107也可以直接地或间接地连接至一个或多个输入装置123和一个或多个输出装置125。输入装置123可以包括例如键盘、指示装置(诸如鼠标、触摸板、触控笔、轨迹球或操纵杆)、扫描仪、摄像机和麦克风。输出装置125可以包括例如监视器显示器、打印机和扬声器。根据计算机101的各种示例,外围装置115-125中的一个或多个可以被容纳在计算单元103内部。可替代地,外围装置115-125中的一个或多个可以在用于计算单元103的壳体的外部并且通过例如通用串行总线(usb)连接而连接至总线113。

在一些实施方式中,计算单元103可以直接地或间接地连接至用于与构成网络的其他装置进行通信的一个或多个网络接口127。网络接口127根据一个或多个通信协议(诸如传输控制协议(tcp)和因特网协议(ip)),将来自计算单元103的数据和控制信号转换为网络消息。此外,接口127可以采用用于连接至网络的任何合适的连接代理(或代理的组合),包括例如无线收发器、调制解调器或以太网连接。这种网络接口和协议在本领域中是众所周知的,因此这里将不更详细地讨论。

应当理解,计算机101仅作为示例示出,并且不旨在作为限制。可以使用包括图1所示的计算机101的部件的一个或多个计算装置来实施所公开技术的各种实施例,所述一个或多个计算机装置仅包括图1所示的部件的子集,或者包括部件的可替代组合,包括未在图1中显示的部件。例如,可以使用一个多处理器计算机、布置成网络的多个单处理器和/或多个多处理器计算机、或二者的一些组合来实施所公开技术的各种实施例。

用于测试的设计、测试向量生成、进行测试和诊断

特征尺寸的减小增加了集成电路中的制造缺陷将导致故障芯片的可能性。非常小的缺陷也会导致晶体管或互连线出现故障。即使单个故障的晶体管或连线也可能导致整个芯片不适当地工作。无论制造过程是在原型阶段还是在大量制造阶段,制造缺陷都是不可避免的。因此,有必要在制造过程中测试芯片。还需要诊断故障芯片以提高并保持生产良率。

测试通常包括将一组测试刺激(测试向量)应用至被测电路,然后分析由被测电路生成的响应。功能测试试图验证被测电路按照其功能规范进行操作,而结构测试尝试确定被测电路已按照结构网表中指明的那样由一些低级别构建块正确地组装而成,并且这些低级别构建块及它们的布线连接已被没有缺陷地制造。对于结构测试,假定如果功能验证已显示网表的正确性,并且结构测试已确认结构电路元件的正确组装,则电路应当正确地工作。结构测试已被广泛采用,至少部分因为它使测试(测试向量)生成能够专注于测试有限数量的相对简单的电路元件,而不必须处理功能状态和状态转换的呈指数爆炸式的多重性。

为了使开发和应用测试向量更容易,某些可测试性特征被添加到电路设计中,这被称为测试设计或可测试性设计(dft)。扫描测试是最为常规的dft方法。在基本的扫描测试方案中,电路设计中的所有或大多数的内部顺序状态元件(锁存器、触发器等)被做成经由串行接口可控制的和可观察的。这些功能状态元件通常由被称为扫描单元的双用途状态元件代替。扫描单元连接在一起以形成扫描链——用于移入测试向量和移出测试响应的串行移位寄存器。扫描单元可以如最初意图用于功能目的那样进行操作(功能/任务模式),并且可以作为用于扫描的扫描链中的单元来进行操作(扫描模式)。广泛使用的扫描单元的类型包括具有双向多路复用器的边沿触发触发器,用于进行数据输入。双向多路复用器通常由被称为扫描_使能(scan_enable)的单个控制信号控制,该单个控制信号从扫描信号输入端口或系统信号输入端口选择用于扫描单元的输入信号。扫描信号输入端口通常连接至另一扫描单元的输出,而系统信号输入端口连接至功能逻辑。扫描单元可以用作控制点和观察点二者。控制点可以用于设定在被测电路的一些位置处的某些逻辑值,激发(激活)故障并将不正确的值传播到观察点。扫描测试允许测试设备访问通过主要输入/输出和/或一些物理测试点而深度嵌入的门,并且当尝试控制或观察一些内部电路元件处发生了什么时,可以消除对复杂的状态转换序列的需要。

用于扫描测试的测试向量通常通过自动测试向量生成(atpg)过程来生成。atpg通常专注于一组从门级故障模型派生的故障。缺陷是在制造过程期间在装置中引起的瑕疵或物理缺陷。故障模型(或简称故障)是对缺陷如何更改设计行为的描述。对于给定的目标故障,atpg包括两个阶段:故障激活和故障传播。故障激活在故障位点建立与由故障产生的信号值相反的信号值。故障传播通过使从故障位点到扫描单元或主输出的路径敏化(sensitizeapath)来向前传播故障影响。如果由扫描单元或主输出捕获的测试响应值与预期值不同,则称为通过测试向量检测到某个位点处的故障。atpg的目的是找到测试向量,当该测试向量应用于电路时,使测试器能够区分正确电路行为和由一个或多个特定故障引起的有故障的电路行为。atpg的有效性通过应当与测试应用时间成正比的故障模型所实现的故障覆盖率和生成的向量的数量(测试向量计数)来测量。这里,故障覆盖率被定义为检测到的故障的数量与故障的总数量之比率。

在实践中使用的最流行的故障模型是单个固定(stuck-at)故障模型。在该模型中,电路中的其中一条信号线被假定为被固定在固定的逻辑值,而与什么输入被供应至电路无关。固定故障模型是逻辑故障模型,因为没有任何延迟信息与故障定义相关联。延迟故障基于电路的时序而导致电路功能中的错误。它们是由门中的信号的有限的上升和下降时间段以及门之间的互连的传播延迟引起的。转换故障(transitionfault)用于简化点缺陷的建模,所述点缺陷影响门的输入或输出的延迟。在基于扫描的测试中,转换故障与额外的延迟相关联,该额外延迟足够大,从而导致通过故障位点的任何路径的延迟都超过时钟周期。单元内部故障模型可以使用晶体管级电路仿真(模拟仿真)推导出。该方法可以针对各种单元内部缺陷准确找到单元内的缺陷位置。

在电路设计和制造处理中,制造测试筛选出包含缺陷的芯片(管芯(die))。然而,该测试本身没有识别可能观察到的不可接受的低的或波动的良率的原因。物理故障分析(pfa)可以检查故障芯片以定位一个或多个缺陷位置并找出根本原因。该处理通常包括蚀刻掉某些层,然后通过扫描电子显微镜或聚焦离子束系统对硅表面进行成像。该pfa过程费力且费时。为了促进pfa过程,通常采用诊断(也称为扫描诊断)以基于分析故障日志(故障文件、失效(failure)文件)来缩小所述一个或多个缺陷的可能位置的范围。故障日志通常包含关于测试在何时(例如,测试器周期)失败、何处(例如,在什么测试器通道)失败以及如何(例如,在什么逻辑值)失败,以及哪些测试向量生成预期的测试响应的信息。电路设计的布局信息也可以被采用以进一步减少嫌疑缺陷(defectsuspects)的数量。

芯片制造测试中的测试应用通常由自动测试设备(ate)(测试器的类型)来执行。基于扫描的测试在ate上消耗大量存储空间和测试时间。数据量随芯片上的逻辑门的数量而增加,而扫描单元的数量则保持相同。然而,实际考虑和ate规范经常限制可用于扫描进/出的引脚的数量和最大扫描频率二者。非常需要减少需要加载到ate上并最终加载到被测电路的测试数据的量。幸运地,测试向量是可压缩的,主要因为只有1%到5%的测试向量比特位是通常指定的比特位(关注比特位),而其余的是未指定的比特位(无关比特位(don't-carebit))。未指定的比特位可以采用任何值,而对故障覆盖率没有影响。测试压缩还可以利用测试立方倾向于被高度关联的事实。测试立方是确定性测试向量,其中无关比特位不会被atpg填充。存在相关性是因为电路中的故障是结构上相关的。

已经开发了各种测试压缩技术。通常,在扫描链之前和之后插入附加的片上硬件。在扫描链之前添加的硬件(解压缩器)被配置为解压缩来自ate的测试刺激,而在扫描链之后添加的硬件(压缩器)被配置为压缩由扫描链捕获的测试响应。解压缩器扩展来自n个测试器通道的数据以填充大于n个扫描链。扫描链的数量的增加缩短了每个扫描链,并因此减少了在每个测试向量中移位所需要的时钟周期的数量。因此,测试压缩不仅可以减少存储在测试器上的数据的量,而且可以减少针对给定测试数据带宽的测试时间。

嵌入式确定性测试(edt)是测试压缩技术的一个示例。基于edt的压缩由两个互补部分组成:嵌入在芯片上的硬件,以及确定性atpg软件,所述确定性atpg软件生成利用嵌入式硬件的压缩向量。edt硬件以连续流解压缩器为特征。通过将外部测试数据作为布尔变量来执行测试立方的edt压缩。扫描单元概念地填充有符号表达式,该符号表达式是注入到解压缩器中的输入变量的线性函数。在解压缩器包括铃流发生器和相关联的移相器的情况下,可以使用对应于其值被指定的扫描单元的一组线性方程。可以通过求解方程组来确定压缩向量。如果这样确定的压缩向量然后通过解压缩器进行扫描,则将相应地生成由atpg指定的比特位。未指定的比特位基于解压缩器架构被设定为伪随机值。有关基于edt的压缩和解压缩的附加的详细信息可以在2004年5月的ieeetrans.cad第23卷第776-792页,作者为j.rajski、j.tyszer、m.kassab和n.mukherjee,题为“嵌入式确定性测试(embeddeddeterministictest)”的文章中,以及以下编号的美国专利文献中找到:6,327,687、6,353,842、6,539,409、6,543,020、6,557,129、6,684,358、6,708,192、6,829,740、6,874,109、7,093,175、7,111,209、7,260,591、7,263,641、7,478,296、7,493,540、7,500,163、7,506,232、7,509,546、7,523,372、7,653,851,其全部内容通过引用并入本文。

逻辑内建自测(logicbist)是允许电路使用嵌入式测试逻辑对自身进行测试而不需要外部测试器的dft技术。经典逻辑bist应用包括:在老化测试期间检测早期失效率缺陷、使得能够使用仅提供功率和时钟信号的低成本和/或低速测试器,以及进行系统内建自测以提高航空/国防、汽车、电信和医疗保健行业中的系统的可靠性。典型的逻辑bist系统包括:用于自动地生成测试向量的测试向量生成器、用于将测试响应压缩为签名的测试响应分析器(压缩器)以及用于协调bist操作并用于提供通过/失败指示的逻辑bist控制器。伪随机向量发生器(prpg)(常用的测试向量发生器)可以由线性反馈移位寄存器(lfsr)或元胞自动机(cellularautomaton)来构造。为了增加故障覆盖率,可以采用加权的lfsr。另一方法是以一些方式将随机测试向量与确定性向量结合,因为bist逻辑可以用于处理被确定性地生成并存储在芯片上的压缩的测试向量。

所有上述处理,用于测试的设计插入、测试向量生成、和逻辑诊断,通常由各种电子设计自动化工具来执行,例如从俄勒冈州威尔逊维尔的明导公司(mentorgraphicscorporation)可获得的tessent系列软件工具中的那些工具。

用于系统内测试的确定性两级压缩

图2示出了根据所公开技术的各种实施例的用于测试电路的系统200的示例。系统200包括比特位反转控制器210、扫描链220和比特位反转电路230。包括扫描单元的扫描链220被配置为在测试模式中移入测试向量、将测试向量施加到电路、捕获电路的测试响应以及移出测试响应。比特位反转控制器210包括存储电路,并且被配置为基于存储在存储电路中的子测试向量信息来生成比特位反转信号。该存储电路可以包括存储器电路、寄存器电路(registercircuitry)、或二者。寄存器电路可以由触发器形成。耦合到比特位反转控制器210的比特位反转电路230被配置为基于比特位反转信号来反转与多个移位时钟周期相关联的父测试向量的比特位,以在移位操作期间生成子测试向量。这里,用于比特位反转的所述多个移位时钟周期在每m个移位时钟周期发生一次。相应地,m表示连续的比特位反转时间帧之间的距离。子测试向量信息包括m的信息以及移位操作中所述多个移位时钟周期的位置。

也在图2中显示的是一对父测试向量240和子测试向量250的示例。当父测试向量240被移入扫描链220时,与移位时钟周期251、252和253相关联的比特位被单独地反转(有时也被称为“翻转”或“互补”)。结果,在移位操作之后,子测试向量250(而不是父测试向量240)被加载到扫描链220中。在该示例中,第一比特位反转时钟周期对应于从右端开始计数的第四移位时钟周期,并且比特位反转时钟周期在每五个移位时钟周期发生一次(m=5)。

图3示出加载有父测试向量310及其子测试向量320、330、340……的扫描链的示例。子向量320在比特位反转时间帧(比特位反转移位时钟周期)321、322和323上与父测试向量310不同;子向量330在比特位反转时间帧331、332和333上与父测试向量310不同;以及子向量340在比特位反转时间帧341、342和343上与父测试向量310不同。这些比特位反转时间帧间隔相等。它们的开始位置可以是连续的、相等间隔的、或不相等间隔的。如将在下面详细讨论的,开始位置可以在测试向量生成期间确定。利用所公开的技术的一些实施方式,对于父测试向量310的所有子测试向量,每个子测试向量内的比特位反转时间帧之间的间隔是相同的。对于测试集中的所有父测试向量的所有子测试向量,间隔也可以相同。用于不同测试集的比特位反转时间帧之间的间隔可以被设定为相同或不同。图中的填充的和未填充的小圆代表指定的比特位——比特位的值被指定用于单独地或以某种组合方式检测目标故障。通过翻转与某些时间帧相关联的比特位,所派生的子测试向量可以检测由父测试向量不能检测到的故障。

图4示出了可以根据所公开的技术的各种示例实施的比特位反转电路400的框图的示例。比特位反转电路400包括一系列异或(xor)门440。每个xor门440可以基于比特位反转控制信号410来反转来自测试向量比特位输入420的一个测试向量比特位。如果比特位反转控制信号410被设定为“0”,则测试向量比特位将通过xor门440而没有改变。如果比特位反转控制信号410被设定为“1”,则测试向量比特位将被xor门440反转(从“0”到“1”或从“1”到“0”)。xor门的输出被耦合到比特位反转电路400的测试向量比特位输出430。本领域普通技术人员应该理解,比特位反转电路400仅是比特位反转电路230的示例,并且可以使用不同的电路来实施比特位反转电路230。

图5示出了可以根据所公开技术的各种示例来实施的比特位反转控制器500的框图的示例。比特位反转控制器500包括初始偏移寄存器510、递减计数器520、时钟间补码(cbc)寄存器530,一系列与非(nand)门540和与(and)门550。cbc寄存器530存储时钟间补码(cbc)向量,该时钟间补码向量定义了被补码(complement)(反转/翻转)的连续时间帧之间的距离m(移位时钟周期)。cbc寄存器530的内容用于通过与非门540对递减计数器520进行门控。这里,m被二进制编码为2d–1,其中d=log2m。例如,假设cbc寄存器530是9位寄存器,并且每16个移位时钟周期执行比特位反转一次(m=16)。存储在cbc寄存器530中的向量将是000001111(d=log216=4,2d–1=15)。仅当递减计数器520的最后四位数中的每一个变为“0”时,每个与非门540才可以输出“1”,这意味着与门550每16个移位时钟周期输出一次“1”。

如前所述,父测试向量可以具有以不同的移位时钟周期开始比特位反转的多个子测试向量。可以利用二进制子选择向量对这些不同的开始点(初始偏移值)进行编码。如果四个子测试向量具有分别在1、4、5和10处的初始比特位反转时间帧,则子选择向量可以被表示为0000010000110010,即具有有效的比特位b1、b4,、b5和b10(最低有效比特位在右手侧)。以如下方式基于子选择向量的内容上载初始偏移寄存器510:如果该向量的比特位b是有效的,b=0,1,……,k–1,则寄存器获得b的二进制编码值。初始偏移随后用于将与扫描移位时钟同步地工作的递减计数器520初始化。通过观察计数器并检测在其最低有效d比特位上的全0序列,可以决定何时产生比特位反转信号。对于n比特位寄存器,如前所述,这是通过其输出的乘积最后由n输入与门550递送的n个与非门540来实现的。

图6示出了根据所公开的技术的一些实施例的详细的内建自测架构的示例。该架构具有压缩铃流发生器640和移相器650的解压缩器。解压缩器可以将压缩的测试向量解压缩为测试向量。在铃流发生器640和移相器650之间的是比特位反转电路620,该比特位反转电路620被配置为基于由比特位反转控制器610生成的比特位反转信号在某些移位时钟周期对比特位进行补码。比特位反转控制器610从系统内测试控制装置630接收用于子测试向量的初始偏移632的信号和用于时钟间补码向量633的信号。除了以上两个信号之外,系统内测试控制装置630还通过多路复用器680将压缩的父测试向量631供应至父种子寄存器660。多路复用器680从系统内测试控制装置630中选择压缩的父测试向量631,或者从父种子寄存器660中选择回收的压缩的测试向量,或者从ate中选择压缩的父测试向量670。前一个或两个用于系统内测试,而最后一个或两个用于制造测试。

在根据所公开的技术的一些实施例的系统内测试中,单个向量群集的应用可以如下进行。在应用原始父向量(禁用补码信号)并在比特位反转控制器610(其比特位指示出考虑了递减计数器的哪个部分)中设立cbc寄存器之后,系统内测试控制装置630中的处理器尝试加载比特位反转控制器610中的初始偏移寄存器,其随后用于将也在比特位反转控制器610中的递减计数器初始化。使偏移被设定为3。因此,计数器的极少数的第一状态将是如下:3、2、1、0(这里补码信号将成为有效)、2n–1、2n–2等。一旦最低有效d比特位再次变为全0向量,则递送下一补码信号。注意,在这种情况下所有补码都相对于第一扫描移位时钟脉冲进行了3个周期的相移。一旦应用了整个子向量,初始偏移寄存器被重新加载有对应于下一有价值的子向量的相移,然后重复该过程,父向量种子在父种子寄存器中循环,直到生成了所有期望的子向量为止。现在是时候如上所述应用没有补码的下一个父向量,然后再应用其派生量。前者可以通过重新加载父种子寄存器和禁用由and门驱动的补码导线的组合来实现。

在图6中,父测试向量以压缩的形式存储在芯片上,与未压缩的形式相比,需要更少的存储空间。此外,每个父测试向量可以生成多个子测试向量。可以例如通过如上所述的单个子选择向量来对用于一个父测试向量的所有子测试向量的初始偏移进行编码。这进一步降低测试数据存储器的使用。由于该附加的测试压缩,所公开技术的各种实施方式有时被称为确定性两级压缩。

应当注意,系统内测试控制装置630不必须包括处理器,并且简单的逻辑电路可以执行该功能。还应当注意,尽管在图6中将比特位反转控制器610和系统内测试控制装置630示为单独的单元,但是可以使用单个片上装置来实施这两个单元。

作为确定性测试方法,需要使用软件工具来确定父测试向量及其子测试向量。根据所公开技术的各种实施例,软件工具可以首先执行电路结构分析以识别超级门。超级门具有树状结构,包括同类型的门和它们所属的无扇出区域(ffrs)。图7示出超级门700的示例。超级门700具有由and门制成的两个无扇出区域710和720。图中还显示了接收无扇出区域720的输出的两个逻辑730和740。父测试向量750将超级门700的所有输入设定为“1”,这可以检测在超级门700的输出上的固定0(stuck-at-0)故障。通过将其比特位b0、b16......,然后比特位b1、b17……等进行补码,可以派生多个子测试向量。这些子测试向量可以检测超级门700的输入处所有固定1(stuck-at-1)故障。因此,由父向量和系统派生的子向量组成的群集可以检测超级门的许多相关故障。

接下来,可以计算并记录scandia可控性/可观察性分析程序(scoap)可测性度量。随后,通过运行atpg来创建一组完整的确定性测试向量。该步骤本质上是框架,该框架迭代地产生并验证连续的父向量及其派生量,每次是给定数量父向量。通常地,单个且可压缩的父向量将是针对正确选择的故障而获得的atpg产生的测试立方的合并的结果。故障选择过程随机地从整个故障列表挑选故障f。然而,通常,f不会变为直接atpg目标。反而选择了在承载(host)f的超级门的输出处的故障,而不是f。以这种方式存在更好的机会获得最合适的父向量,该最合适的父向量可以被随后部署以产生检测超级门或对应的ffr中的所有目标故障的派生的测试向量。此外,scoap值还可以用于通过选择在承载f的ffr内的具有可控性和可观察性度量的最高总和的故障来引导选择过程。现在,每个atpg产生的刺激都成为测试群集的内核,该测试群集还包括由于通过使用连续补码之间的用户定义的时间段对父向量进行多个补码而获得的其子向量。

一旦生成了给定数量的父测试向量,现在就可以在启用了故障丢弃(faultdropping)的情况下对相应的测试群集进行单独的故障模拟。注意,该过程比一些常规方法具有显著更少的cpu密集性,因为派生的向量受到了相当的限制,并且其数量可以容易地由用户控制。此外,可以以仅保留有效的子向量(即那些检测到一些故障的子向量)的方式进一步修改每个群集。结果,每个父向量现在被分配二进制编码的子选择向量,并记录父向量种子。重复以上呈现的过程,直到达到完整的测试覆盖率。

为了进一步减少测试向量的总数量,向量重新排序过程可以应用于在先前步骤中获得的所有有效向量(父级和子级二者)。这些测试向量可以首先相对于它们检测到的故障的数量以降序进行排序。在后续步骤中,故障丢弃模拟从以最大故障检测计数为特征的测试向量开始,反复地确定由连续向量检测到的故障。因此,该阶段基本上实施了揭示先前检查的向量尚未检测到的故障的逆序故障仿真。它还会为其成员被移除的那些群集更新子选择向量。值得注意的是,如果在对测试向量重新排序后它们的所有向量(包括父级)都没有检测到任何新的故障,则可以在该阶段期间删除整个测试群集。所呈现的算法实际上产生了最小组的测试群集,其允许灵活地权衡测试覆盖率、测试应用时间、和片上测试存储器的大小。该算法可以概括为图8所示。

已经使用12种工业设计对所公开的技术的一些实施例进行了测试,所有这些工业设计具有基于片上edt的测试压缩。它们代表不同的设计风格和扫描方法。在图9中列出关于设计(诸如门的数量、扫描单元的数量、扫描架构、以及固定故障的总数量)的基本数据。实验结果表明,所公开的技术可以显著地减少需要被保存为种子的向量的数量,同时保持测试覆盖率。与一些常规技术相比,所公开的技术需要存储的测试向量减少了2-4倍。

由于初始偏移值的数量增加,因此增加cbc的值可能潜在地增加子向量的数量。更大数量的针对每个父测试向量的子向量将导致需要更少数量的父测试向量,从而导致片上存储器更小。然而,测试时间取决于测试向量(父测试向量和子测试向量)的总数量。因此,可能存在cbc值的最佳范围。图10使用图9的两个工业设计示出随着增加连续的补码之间的距离(由变量cbc表示),要存储的(以可压缩种子的形式的)父测试向量的数量如何下降,以及要应用的向量(包括父级及其派生量二者)的数量如何上升。曲线1010和1020表示存储的父测试向量,而曲线1030和1040表示需要应用的总测试向量。这两个图都表明,虽然增加cbc值可能导致父向量的数量的减少(并因此导致片上测试存储器相对较小),但是这种现象与最终需要应用的测试向量的数量的可见增加相关联,或者可替代地与增加的测试时间的可见增加相关联。对于设计d3和d5二者,在32和64之间的范围内的cbc可以是好的权衡。

结论

已经示出并描述了所公开的技术的原理,对于本领域技术人员将明显的是,所公开的实施例可以在布置和细节上被修改,而不脱离这种原理。鉴于可以应用所公开技术的原理的许多可能的实施例,应当认识到,所示出的实施例仅是该技术的优选示例,并且不应被视为限制所公开技术的范围。相反,所公开的技术的范围由所附权利要求及其等同物限定。因此,我们要求保护所有这些落在这些权利要求的范围和精神内的内容,作为我们所公开的技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1