用于核心的全局低功率捕获方案的制作方法

文档序号:6190733阅读:190来源:国知局
用于核心的全局低功率捕获方案的制作方法
【专利摘要】本发明提供了用于核心的全局低功率捕获方案。提供了用于测试集成电路的方法,以缓解扫描捕获模式期间的峰值功率问题。方法包括,对用于集成电路上的多个核心和高速缓存的每一个的第一时间窗的各自的持续时间进行编程。方法进一步包括对用于多个核心和高速缓存的每一个的第一时间窗期间的第一时钟信号的脉冲的数目进行计数。随后,方法包括,通过在各自的第二时间窗期间,生成用于多个核心和高速缓存的每一个的第二时钟信号的脉冲,来将捕获脉冲交错到多个核心和高速缓存,其中所生成的脉冲的数目基于为多个核心和高速缓存的每一个所计数的各自的第一时钟信号脉冲的数目。
【专利说明】用于核心的全局低功率捕获方案
【技术领域】
[0001]根据本发明的实施例总体上涉及测试集成电路,更具体地涉及在集成电路上实施基于扫描的测试。
【背景技术】
[0002]集成电路或者电路组合通常包括在内部生成或者由外部控制的一个或多个时钟。每个时钟都经由偏斜最小化网络分布到存储单元集,偏斜最小化网络将时钟脉冲在几乎相同的时间传递到所有存储单元。这样的时钟、其相关的存储单元以及由存储单元界定的组合逻辑框形成时钟域。
[0003]电路的扫描测试是众所周知的并且是最广泛使用的用于测试集成电路的可测试性设计(DFT)技术。其用可以链接以形成一个或多个扫描链的扫描单元来代替所有或部分原始存储单元。基于扫描的集成电路或者电路组合可以通过对移位周期随后是捕获周期进行重复来进行测试。在移位周期,将伪随机或者预定测试刺激源(stimuli)移位到所有扫描链中,使得其输出作为可控制的主要输入。在捕获周期,将测试响应锁存在一些或所有扫描链中,使得其输入作为可观察的主输出,因为捕获到扫描链中的值可以在下一个周期移位输出。
[0004]基于扫描的测试由于测试设备的高资本投入以及可能要求大量的时间来运行因此是昂贵的。用于基于扫描的测试的测试时间取决于测试运行得多快以及测试的容量,例如测试图案的量级。由于对于减小基于扫描的测试的测试成本和优化集成电路发布的周转期的高要求,因此扫描移位操作需要在不断提高的时钟速度下运行。
[0005]在较高的时钟速度下运行移位操作有助于减小总体测试时间。然而,这可能造成功率问题,其导致触发器和门在不适当电源条件下的不正确表现。这可能造成由于测试下的硅的电或热应力的误报,其可能导致显著的成品率损失。因此,测试系统的使用者别无选择,只有降低时钟速度以最小化功率相关的问题,这导致更长的测试时间。
[0006]此外,由于在测试扫描移位和扫描捕获操作期间的非常高的翻转率和逻辑活动,无论有无测试压缩,在扫描测试期间的动态功率消耗总是高于功能模式并且可能导致可能损坏封装的测试期间的极度热耗散。所增加的动态功耗可能造成芯片中的稳定性问题,这可能导致芯片随后在实际应用中的故障。这是因为,在扫描测试模式期间,功率耗散将超出设计用于芯片和封装的峰值功率。
[0007]某些常规系统已经尝试解决扫描捕获周期期间的功率减小,但是其在计算时间方面的高成本或者要求大量的实现和验证工作。例如,在本行业已经开发某些技术以实施低功率ATPG图案生成,其中图案生成工具将基于预定的翻转估计来使能集成电路的某些区域的时钟门控单元,而禁用其他的时钟门控单元。然而,该技术要求大量的存储器和CPU资源。
[0008]此外,还开发了 ATPG中的低功率捕获X填充方法,以减小捕获模式中的扫描触发器的输出处的过渡数目。然而,这些方法由于其导致低于随机填充的缺陷覆盖,因此也是有问题的。
[0009]另外,其他常规系统实现低功率捕获逻辑,使得ATPG工具能够基于给定的目标,在集成电路的选择性的区域中捕获时钟活动。该技术的示例在申请号为13/444,780和13/444,782、两者都名为“Power Droop Reduction Via Clock-Gating For At-Speed ScanTesting”、发明人为Amit Sanghani和Bo Yang的美国专利申请中公开。该技术是有效的,因为其阻止ATPG工具实施过多的计算,并且其在运行时间方面较快,然而,要求大量的实现和验证工作来实现并且存在大量的逻辑开销。

【发明内容】

[0010]因此,需要允许扫描捕获操作运行在高时钟速度,同时减小全速(例如在应用程序速度)捕获周期期间的峰值功率,而无任何覆盖影响和最小测试时间影响的系统。另外进行扫描测试模式功率监控,以避免在生产测试期间测试模式下对功率分布网络施加压力是必要的。本发明的实施例提供用于减小扫描捕获模式期间的峰值功率问题的方法和系统,其计算效率高并且提供高的缺陷覆盖。
[0011]根据本发明一个实施例,交错捕获时钟到CPU核心和高速缓存例如L2C高速缓存,被用于减小在扫描捕获周期高于可接受的峰值功率量级,从而允许扫描捕获期间的全速测试,其转而减小生产测试期间的总体测试时间。
[0012]在一个实施例中,提供用于测试集成电路的方法。方法包括,对用于集成电路上的多个核心和高速缓存的每一个的第一时间窗的各自的持续时间进行编程。方法进一步包括对用于多个核心和高速缓存的每一个的第一时间窗期间的第一时钟信号的脉冲的数目进行计数。随后方法包括,通过在各自的第二时间窗期间,生成用于多个核心和高速缓存的每一个的第二时钟信号的脉冲,来将捕获脉冲交错到多个核心和高速缓存,其中所生成的脉冲的数目基于为多个核心和高速缓存的每一个所计数的各自的第一时钟信号脉冲的数目。
[0013]在另一个实施例中,公开了用于测试集成电路的方法。方法包括,对用于集成电路上的多个模块的每一个的第一时间窗的各自的持续时间进行编程,其中模块包括核心和高速缓存。进一步,方法包括对用于多个模块的每一个的第一时间窗期间的第一时钟信号的脉冲的数目进行计数。最后方法包括,通过在各自的第二时间窗期间,生成用于多个核心和高速缓存的每一个的第二时钟信号的脉冲,来将捕获脉冲动态交错到模块的第一子集,其中所生成的脉冲的数目基于为多个模块的每一个所计数的各自的第一时钟信号脉冲的数目。
[0014]在不同的实施例中,提供了用于测试集成电路的系统。系统包括,包括测试器处理器的计算机系统,其中测试器处理器通信地耦连到集成电路。进一步集成电路包括多个核心和高速缓存、可操作为对用于集成电路上的多个核心和高速缓存的每一个的第一时间窗的各自的持续时间进行编程的I/o端口、以及多个快速时钟生成模块。快速时钟生成模块配置为,对用于多个核心和高速缓存的每一个的第一时间窗期间的第一时钟信号的脉冲的数目进行计数。快速时钟生成模块进一步配置为,通过在各自的第二时间窗期间生成用于多个核心和高速缓存的每一个的第二时钟信号的脉冲,来将捕获脉冲交错到多个核心和高速缓存,其中所生成的脉冲的数目基于为多个核心和高速缓存的每一个所计数的各自的第一时钟信号脉冲的数目。[0015]以下结合附图更详细的描述将提供对本发明的本质和优点的更好的理解。
【专利附图】

【附图说明】
[0016]在附图的图中以示例而非限制的方式对本发明的实施例进行说明,其中同样的参考数字指代类似元件。
[0017]图1是常规的基于扫描的测试的示范性扫描移位和扫描捕获周期的时序图。
[0018]图2是常规的基于扫描的测试的在示范性扫描移位和扫描捕获周期期间功率活动的时序图。
[0019]图3A是能够实现本公开的实施例的、计算系统的示例的框图。
[0020]图3B是根据本发明的一个实施例的、本发明的实施例可以在其上实现的自动化测试设备装置的示意图。
[0021]图4是示出了根据本发明的一个实施例的、用于将测试时钟和测试处理系统中的功能时钟进行复用的示例性电路的示意框图。
[0022]图5示出了根据本发明一个实施例的、动态快速测试模式(FTM)引擎的时序图。
[0023]图6A示出了根据本发明一个实施例的、交错模式I的时序图。
[0024]图6B示出了根据本发明一个实施例的、交错模式2的时序图。
[0025]图6C示出了根据本发明一个实施例的、交错模式3的时序图。
[0026]图6D示出了根据本发明一个实施例的、交错模式O的时序图。
[0027]图7示出了根据本发明一个实施例的、用于使用动态FTM引擎实现捕获交错的示例性电路。
[0028]图8示出了根据本发明一个实施例的、用于使用动态FTM引擎实现动态捕获时钟交错示例性电路。
[0029]图9描绘了根据本发明一个实施例的、针对基于扫描的测试解除在扫描捕获周期期间在全局级的峰值功率问题的示例性过程的流程图。
【具体实施方式】
[0030]现在将对本公开的各实施例加以详细参考,其示例在附图中示出。在结合这些实施例进行描述的同时,应理解它们并不意图将本公开限定于这些实施例。相反,本公开意在涵盖可以被包括在由所附权利要求所定义的本公开的精神和范围内的替代、修改或等同物。此外,在下面本公开的详细描述中,将阐述大量具体细节以提供对本公开更彻底的理解。然而,应理解本公开可以在没有这些具体细节的情况下被实施。在其他示例中,未详细描述公知的方法、算法、部件和电路以避免对本公开的各方面内容造成不必要的混淆。
[0031]接下来的部分详细描述以算法、逻辑框、处理以及对计算机存储器内数据比特进行操作其他象征性表示来提出。这些描述和表示是由数据处理领域技术人员所使用的手段,以向本领域的其他技术人员最有效地传达他们工作的实质。在本应用中,算法、逻辑框、处理等等,被设想为得出期望结果的步骤或指令的自洽序列。步骤利用物理量的物理操纵。通常,尽管不是必要地,这些量采用能在计算机系统中被存储、转移、组合、对比和另外操纵的电或磁信号的形式。已经证明,主要是出于共同使用的原因,将这些信号称为事务处理、比特、值、元素、符号、字符、样本、像素等等有时是方便的。[0032]然而应该牢记,所有这些类似的术语是与合适的物理量相关联的,并且仅仅是附属于这些量的方便的标签。除非特别的声明否则如从以下所述所明确的,应该理解,贯穿本公开利用诸如“编程”、“计数”、“交错”、“路由”、“生成”、“移位”、“分配”、“关联”、“移动”、“存取”、“确定”、“识别”、“高速缓存”、“维持”、“增量”等等术语的描述,是指计算机系统,或类似电子计算设备,或处理器(例如图3A的系统110)的动作和过程(例如图900的流程图9)。计算机系统或类似电子计算设备对计算机系统存储器、寄存器或其他这样的信息存储、传送或显示设备中的表示物理量(电的)的数据进行操作和变化。
[0033]本文描述的实施例可一般围绕着存在于某一形式的计算机可读存储介质上的计算机可执行指令加以讨论,诸如由一台或多台计算机或其他设备执行的程序模块。以示例的方式但非限制,计算机可读存储介质可以包括非暂时性计算机可读存储介质和通信介质;非暂时性计算机可读介质包括除了暂时性传播信号之外所有的计算机可读介质。通常,程序模块包括例程、程序、对象、部件、数据结构等等,其执行特定任务或实现特定的抽象数据类型。程序模块的功能可以在各种实施例按照期望加以组合或分配。
[0034]计算机存储介质包括易失性和非易失性、可移动的和不可移动的以任何方法或技术实现的介质,用于存储信息诸如计算机可读指令、数据结构、程序模块或其他数据。计算机存储介质包括但不限于,随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程ROM(EEPR0M)、闪速存储器或其他存储器技术、压缩光盘ROM (⑶-ROM)、数字多用盘(DVD)或其他光学存储、盒式磁带、磁带、磁盘存储或其他磁性存储设备、或任何其他可用来存储期望信息并可访问以重新得到这些信息的介质。
[0035]通信介质可体现计算机可执行指令、数据结构及程序模块,并包括任何信息递送介质。以示例的方式但非限制于,通信介质包括有线介质诸如有线网络或直接有线连接,以及无线介质诸如声频、射频(RF)、红外线及其他无线介质。以上的任意组合也可包括在计算机可读介质范围内。
[0036]图3A是能够实现本公开的实施例的、测试器计算系统110的示例的框图。计算系统110宽泛地代表任何能够执行计算机可读指令的单或者多处理器计算设备或系统。计算机系统110的示例包括但不限于,工作台、笔记本电脑、客户侧终端、服务器、分布式计算系统、手持设备或任何其他计算系统或设备。在其大多数基本配置中,计算系统110可以包括至少一个处理器114和系统存储器116。
[0037]测试器处理器114通常代表任何类型或形式的、能处理数据或解释并执行指令的处理单元。在某些实施例中,处理器114可以从软件应用或模块接收指令。这些指令可以使处理器114实施一个或多个本文描述和/或示出的示范性实施例的功能。
[0038]系统存储器116通常代表任何类型或形式的、能存储数据和/或其他计算机可读指令的易失性或非易失性存储设备或介质。系统存储器116的示例包括但不限于,RAM、ROM、闪速存储器或任何其他适合的存储器设备。虽然不加以要求,但在某些实施例中计算系统110可以包括易失性存储器单元(诸如,系统存储器116)和非易失性存储设备(诸如,主存储设备132)这两者。
[0039]计算系统110除处理器114和系统存储器116外还可以包括一个或多个部件或元件。例如,在图3A的实施例中,计算系统110包括存储器控制器118、输入/输出(I/O)控制器120以及通信接口 122,它们每个都可以经由通信基础设施112互相连接。通信基础设施112通常代表任何类型或形式的、能促进计算设备中一个或多个组件之间通信的基础设施。通信基础设施112的示例包括但不限于,通信总线(诸如工业标准架构(ISA)、外围部件互连(PCI)、PCI Express (PCIe)或类似总线)和网络。
[0040]存储器控制器118通常代表任何类型或形式的、能处理存储器或数据或者能控制计算系统110的一个或多个部件间通信的设备。举例来说,存储器控制器118可以经由通信基础设施112来控制处理器114、系统存储器116及I/O控制器120之间的通信。
[0041 ] I/O控制器120通常代表任何类型或形式的、能协调和/或控制计算设备的输入输出功能的模块。举例来说,I/o控制器120可以控制或促进计算系统110的一个或多个元件之间的数据的转移,诸如处理器114、系统存储器116、通信接口 122、显示适配器126、输入接口 130以及存储接口 134。
[0042]通信接口 122宽泛地代表任何类型或形式的、能促进示范性计算系统110和一个或多个附加设备之间通信的通信设备或适配器。举例来说,通信接口 122可以促进计算系统110和包括附加计算系统的私人或公共网络之间的通信。通信接口 122的示例包括但不限于,有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器以及任何其他适合的接口。在一个实施例中,通信接口 122经由至诸如因特网的网络的直接链路提供了到远程服务器的直接连接。通信接口 122也可以通过任何其他适合的连接来间接提供这种连接。
[0043]通信接口 122也可以代表主机适配器,配置为经由外部总线或通信通道来促进计算系统110与一个或多个附加网络或存储设备之间的通信。主机适配器的示例包括但不限于,小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、IEEE (电气与电子工程师协会)1394主机适配器、串行高级技术附件(SATA)和外部SATA (eSATA)主机适配器、高级技术附件(ATA)和并行ATA (PATA)主机适配器、光纤通道接口适配器、以太网适配器等等。通信接口 122也可以允许计算系统110参与分布式或远程计算。例如,通信接口 122可以从远程设备接收指令,或向远程设备发送指令用于执行。
[0044]如图3A所示,计算系统110还可以包括至少一个经由显示适配器126耦合到通信基础设施112的显示设备124。显示设备124通常代表任何类型或形式的、能视觉显示由显示适配器126所转发的信息的设备。类似地,显示适配器126通常代表任何类型或形式的、配置为转发图形、文本和其他数据用于在显示设备124上显示的设备。
[0045]如图3A所示,计算系统110也可包括至少一个经由输入接口 130耦合到通信基础设施112的输入设备128。输入设备128通常代表任何类型或形式的、能向计算系统110提供计算机生成或人工生成的输入的输入设备。输入设备128的示例包括但不限于,键盘、定位设备、语音识别设备、控制杆、触摸屏、扩音器或任何其他输入设备。
[0046]如图3A所示,计算系统110也可包括主存储设备132和经由存储接口 134耦合到通信基础设施112的可选备用存储设备133。存储设备132和133通常代表任何类型或形式的、能存储数据和/或其他计算机可读指令的存储设备或介质。举例来说,存储设备132和133可以是磁盘驱动器(例如,所谓的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱动器、闪盘驱动器等等。存储接口 134通常代表任何类型或形式的、用来在存储设备132和133与计算系统110的其他部件之间转移数据的接口或设备。
[0047]在一个示例中,数据库140可存储在主存储设备132内。数据库140可代表单个数据库或计算设备的一部分,或者它可代表多个数据库或计算设备。举例来说,数据库140可代表(存储于)计算系统110的一部分,和/或图2 (下文)中示范性网络架构200的一部分。或者,数据库140可代表(存储于)一个或多个能被诸如计算系统110和/或部分网络架构200所访问的物理上单独的设备。
[0048]继续参考图3A,存储设备132和133可配置为,对配置为存储计算机软件、数据或其他计算机可读信息的可移动存储单元进行读取和/或写入。适合的可移动存储单元的示例包括但不限于,软盘、盒式磁带、光盘、闪速存储器设备等等。存储设备132和133还可包括其他类似结构或设备,以允许计算机软件、数据或其他计算机可读指令载入计算系统110。举例来说,存储设备132和133可配置为读取和写入软件、数据或其他计算机可读信息。存储设备132和133还可以是计算系统110的一部分,或可以是通过其他接口系统访问的单独的设备。
[0049]许多其他设备或者子系统可以连接到计算系统110。相反,无需提供图3A所示出的所有部件和设备以施行本文所述的实施例。以上所引用的设备和子系统还可以按照不同于图3A所示的方式来互连。计算系统110还可以采用任何数目的软件、固件和/或硬件配置。以举例来说,本文公开的示范性实施例可在计算机可读介质上编码为计算机程序(也称作计算机软件、软件应用、计算机可读指令或计算机控制逻辑)。
[0050]包含计算机程序的计算机可读介质可载入计算系统110。存储于计算机可读介质上的全部或部分计算机程序随后可存储于系统存储器116和/或存储设备132和133的各部分中。当由处理器114执行时,载入计算系统110中的计算机程序可使处理器114实施和/或作为实施本文描述和/或示出的示范性实施例的功能的手段。附加地或替代地,本文描述和/或示出的示范性实施例可在固件和/或硬件中实现。
[0051]以举例来说,根据本发明的实施例的运行基于扫描的测试的计算机程序可以存储在计算机可读介质上并且随后存储在系统存储器116和/或存储设备132和133的不同部分。当计算机程序由处理器114执行时,使得处理器114执行和/或是用于实施实行本发明的基于扫描的测试的过程所需的功能的手段。
[0052]图3B是根据本发明的一个实施例的、目前基于扫描的测试系统可以在上实现的自动化测试设备(ATE)装置的示意图。在一个实施例中,图3B的测试器计算系统110实施与参考图3A所述的计算系统110相同的功能,并且包括一个或多个链接的计算机。在其他实施例中,测试器计算系统通常只包括单个计算机。测试器计算系统110是总体系统控制单元,包括测试器处理器114,其运行负责指挥在测试下的经连接的设备例如正在扫描测试的集成电路上的测试的用于ATE的软件。
[0053]通信器总线191提供测试器计算系统和测试器硬件之间的高速电子通信信道。通讯器总线还可以称为背板、模块连接使能器或者系统总线。物理上,通信器总线191是可能是电的或光的等高速、高带宽多路连接总线。
[0054]测试器硬件181包括提供测试刺激源给在测试下的设备(DUT) 189和190并测量DUT对刺激源的反应,并且将其与所期望的反应进行比较所需的电子和电气部件和连接器的复杂集。在本发明的一个实施例中,DUT可以是多个正扫描测试的集成电路。
[0055]用于核心的全局低功率捕获方案
[0056]本发明的实施例提供用于减小在扫描捕获模式期间在全局级的峰值功率问题的方法和系统。根据本发明一个实施例,通过使用动态快速测试模式(FTM)引擎交错捕获时钟到核心和高速缓存例如L2C高速缓存,来减小扫描捕获期间的全局级的峰值功率。这允许全速捕获,而无任何覆盖影响以及最小的测试时间影响。
[0057]图1是常规的基于扫描的测试的示范性扫描移位和扫描捕获周期的时序图。基于扫描的测试是测试集成电路的操作的经济有效的方案,其包括诸如触发器电路或者锁存器的功能逻辑元件和寄存器元件,具有不同元件之间的功能互连。集成电路设计包括用于重新配置集成电路元件的互连的特定规范,使得在一个或多个输入引脚串行进入的测试数据信号可以沿不同于从一个寄存器元件到另一个的正常功能系统的路径的扫描链移位(“扫描”),以便将测试矢量的信号放置到需要的位置。这在图1的时期Tl期间发生,其是扫描移位周期。当由扫描进入(ScanIn)信号矢量103代表的输入通过脉冲时钟(Clock)信号102扫描进入时,扫描使能(ScanEnable)信号101被使能并且在该时间期间设定为高。
[0058]集成电路随后临时返回其正常功能系统配置一个或多个时钟脉冲,以在给定测试矢量值,产生与来自集成电路中的正常逻辑功能的具体逻辑功能结果对应的测试输出。这些输出在扫描捕获周期T2被捕获。在扫描捕获模式,扫描翻转器将捕获组合逻辑的响应,以准备使用扫描卸载来移位该捕获响应。可以施加两个脉冲,启动(Launch) 105和捕获(Capture) 106,以产生在集成电路中的触发器和锁存器的输出处的具体逻辑功能的测试输出。
[0059]在T3期间集成电路随后回复到扫描移位配置,并移位出如图1中由信号矢量扫描出(Scan Out) 104所代表的测试输出,沿扫描链到在该处测试输出可以被取回并与期望的结果进行比较以诊断故障的一个或多个输出引脚。
[0060]在较高的时钟速度下运行扫描移位操作有助于减小总体测试时间。然而,这可能造成集成电路中的触发器和锁存器同时切换导致的功率问题。针对基于扫描的测试,测试功率主要分为扫描链移位功率和扫描链捕获功率。在扫描移位模式期间,移位时钟应用于贯穿扫描链加载扫描数据和卸载扫描数据。由于与功能模式相比的高的翻转率和逻辑活动,平均的移位功率将支配扫描移位期间的散热。另外极度峰值功率可能造成由于对于功率导轨的电压下降的扫描链故障,并且导致上述的成品率损失。
[0061]图2是常规的基于扫描的测试的在示范性扫描移位和扫描捕获周期期间功率活动的时序图。在扫描移位期间的峰值功率取决于在扫描时钟255的激活沿上的相同时间时控的触发器的数目。从图2的功率分布图250的表示可以看出,在时期201和203中的扫描移位周期期间所有触发器一起翻转导致极度峰值功率情况。这导致高于功率导轨上的可取的电压下降,其降低设备速度并且可能造成误报。另外这导致由于每个移位时钟周期的多个极度功率峰值的高的平均移位功率。减小移位时钟255的每激活沿所翻转的触发器的数目可以有效减小峰值功率。
[0062]某些相关的共同未决的申请公开了针对基于扫描的测试的、用于减小扫描移位期间在局部级和全局级的峰值功率问题的技术。2012年12月28日提交的申请号为13730551、律师事务所卷号为 NVID-PSC-11-0240-US1、名为 “SYSTEM FOR REDUCING PEAKPOWER DURING SCAN SHIFT AT THE LOCAL LEVEL FOR SCAN BASED TESTS”、
【发明者】为MiIindSonawane> Satya Puvvada 和 Amit Sanghani 的美国专利申请。此外,2012 年 12 月 28 日提交的申请号为13730628、律师事务所卷号为NVID-PSC-11-0240-US2、名为“SYSTEM FORREDUCING PEAK POWER DURING SCAN SHIFT AT THE GLOBAL LEVEL FOR SCAN BASED TESTS”、
【发明者】为 Milind Sonawane、Satya Puvvada 和 Amit Sanghani 的美国专利申请。
[0063]然而上述两个共同未决的申请并未解决解除扫描捕获周期期间的峰值功率问题的这一问题。从图2的捕获期202期间的功率分布图250可以看出,扫描捕获期间的峰值功率和扫描移位期间一样是有问题的。
[0064]在一个实施例中,本发明针对解除应用程序速度(或者“全速”)捕获功率问题。为了使用自动测试图案生成(ATPG)测试来检测全速时序错误,需要以功能时钟速度对捕获时钟进行脉冲。
[0065]然而如从图2中捕获期期间功率分布图250的峰值可以看到的,由于与从时钟域中的组合逻辑捕获响应并将其移位到扫描链相关联的高的切换速率,捕获周期期间高速度的功能时钟是个问题。在捕获周期期间对于给定时钟沿处的高数目的过渡可能远大于功能模式,其可能造成扫描期间的较高的瞬时电流消耗。较高的电流转而造成使得功率网格中的较高功率下降的高的压降(或者IR下降)。网格中高于正常功率下降的这些下降造成单元延迟(cell delay)增加,如果时钟周期或者电压没有相应增加则其可能造成功能部件故障,因此导致成品率损失。该故障机制在全速测试期间更为突出,因为其对于路径延迟比定期固定测试更敏感。
[0066]此外,IR下降可能导致突出的已知的时钟延伸(扩宽的时钟周期),其可能导致自动测试设备(ATE)上的错误通过,并且可能造成测试逃逸。此外,过度IR下降可能导致在不适当功率(或者VDD)条件下的不正确表现,其可能造成导致成品率下降的误报。
[0067]因此,本发明通过交错捕获时钟到核心例如CPU或者GPU核心以及集成电路上的高速缓存例如L2C高速缓存来解决扫描捕获功率问题。在本发明之前,测试下集成电路上的所有CPU核心和的高速缓存会在相同时间在捕获期间被脉冲,从而造成峰值功率问题。在一个实施例中,为了完成交错,本发明利用专利号为7,305,598、申请日为2005年3月25 日、名为 “TEST CLOCK GENERATION FOR HIGHER-SPEED TESTING OF A SEMICONDUCTORDEVICE”的美国专利申请中所公开的动态快速测试模式(FTM)引擎。
[0068]测试下的半导体芯片典型分为单独的知识产权(IP)核心(或者构成功能完整的单元的制定电路)。在一个实施例中,本发明可以用于交错时钟例如到共享功率导轨的芯片上的所有IP。此外,本发明可以用于不同类型的集成电路例如中央处理单元(CPU)、图形处理单元(GPU)等。
[0069]图4是示出了根据本发明一个实施例的、用于将测试时钟与处理系统例如正使用扫描测试方法论测试的CPU或者GPU芯片中的功能时钟进行复用的示例性电路的示意图。如图4所示,测试时钟410可以在时钟树的根处与功能时钟405进行复用,用于较早的时序收敛并且保存路由资源。测试时钟410和功能时钟405两者由ATE通过耦连到系统110中的测试器处理器114的1/0引脚来外部驱动。信号TeSt_m0de415用于在功能时钟和测试时钟之间进行选择。所选择的时钟随后路由到示例性核心的核心1420和核心2430以及系统中的高速缓存L2C425。对于基于扫描的测试系统要求单独的测试时钟和功能时钟,这是因为典型扫描移位周期不能操作在功能周期在其上操作的相同的高频率。
[0070]在另一个实施例中,本发明使用用于生成用于全速测试的时钟的动态FTM模块。如上所述,由于因峰值功率问题而不能运行在应用程序速度的扫描移位周期,在ATPG期间复用到系统中的各种IP的测试时钟410是较低频率的。然而捕获周期需要运行在用于时钟域中的组合逻辑的功能时钟的较高的速度下,以产生准确的结果。因此,动态FTM引擎用于动态发出多个全速脉冲,以促进快速序列的和的其他全速测试诸如逻辑内建自测试(LBIST)。
[0071]虽然不那么复杂的常规系统典型在捕获周期期间仅要求启动和捕获脉冲,如图1和图2所示,但更复杂的系统通常要求捕获周期期间的多个脉冲以得到更多的测试覆盖。由于对于更复杂的系统在捕获周期期间所需的捕获脉冲的数目可能跨完全的图案集而改变,因此需要由测试器系统发射的以得到完全覆盖的全速脉冲的数目可能是硬编码的。取而代之,需要可变的并且优选是可编程的。
[0072]在一个实施例中,如图5所示,在捕获周期的时间窗Twindow510期间的测试时钟410脉冲的数目由动态FTM引擎计数,并且在Temit时间窗530期间发射相同数目的全速脉冲。然而计数测试时钟脉冲的时间窗的持续时间可以例如由用户在JTAG寄存器中编程。改变Twindow的持续时间将转而变化由FTM引擎所发射的捕获周期的数目。可替代地,在一个实施例中,计数测试时钟脉冲的窗的最优大小可以由测试器处理器114动态确定。
[0073]图5示出了根据本发明一个实施例的、用于动态快速测试模式(FTM)引擎的时序图。在扫描移位周期,扫描使能101 (如图1所示)是有效的(asserted),并且测试时钟102翻转以应用扫描测试的初始状态。如图5所示,一旦完成移位,则扫描使能信号将是无效的(deasserted)并且FAST_STEP_EN501将是有效的。FAST_STEP_EN501触发FTM弓丨擎中的控制逻辑以选择快速时钟信号,快速时钟clk_in503,而非用于捕获脉冲的生成的TEST CLK410,以路由到系统中的扫描链。FTM引擎从锁相环(PLL)接收快速时钟输入。
[0074]在一个实施例中,在FTM引擎中存在两个计数器。一个计数器保持跟踪快速时钟clk_in503的数目以确定Twindow510的持续时间,其可以是可编程的。另一个计数器保持跟踪在Twindow510期间的测试时钟的数目。然后在Temit窗530期间FTM引擎将发射与在Twindow窗期间的测试时钟脉冲的数目相同数目的快速时钟脉冲用于扫描捕获。例如,在图5中在计数Twindow期间的TEST CLK410信号的三个脉冲之后,FTM引擎发射三个快速时钟周期为clk_out信号502。在Temit530之后,扫描移位周期将开始并且扫描使能101将是有效的,以扫描出捕获周期的结果。
[0075]应该再次注意,因为用于捕获周期的快速脉冲在于Twindow的结束处开始的Temit期间发射,所以捕获脉冲开始的点可以通过控制Twindow的大小来控制,Twindow的大小可通过JTAG寄存器编程。
[0076]图7示出了根据本发明的一个实施例的、用于使用动态FTM引擎705来实现捕获交错的示例性电路。示例性电路实施在具有两个核心和L2C的系统上的捕获周期交错。然而,本发明不限于此。在不同的实施例中,可以修改电路以在具有多个核心和高速缓存的集成电路(IC)上操作。图6A、6B、6C和6D示出了根据本发明一个实施例的、由图7的示例性电路实现的交错模式1、交错模式2、交错模式3和交错模式O的各自的示例性时序图。
[0077]在一个实施例中,本发明的时钟交错通过为集成电路中的每个核心和高速缓存创建不同的Twindow和Temit区域来获得。这可以通过对图7中的寄存器中的3个即fast_step_cnt L2C710、fast_step_cnt_core2711 和 fast_step_cnt_corel712 进行编程来进行。然而,在捕获期间对集成电路中的IP核心和高速缓存之间的时钟进行交错的挑战在于,系统需要考虑核心和高速缓存之间的任何路径。举例来说,在图4中核心1420和核心2430两者都与L2C425共享公共路径。如果至所有这三个模块的时钟被交错,那么对于核心I和L2C之间以及核心2和L2C之间的路径会丢失覆盖。因此,需要在核心I和L2C两者一起进行脉冲的周期中评估核心I和L2C之间的路径。类似,需要在核心2和L2C两者被一起进行脉冲的周期中评估核心2和L2C之间的路径。
[0078]在典型系统中,半导体上可能不存在IP核心之间的路径,但是芯片上会存在核心和高速缓存之间的路径。然而,本发明的原理将类似地也可应用于各种核心之间存在组合路径的实施中。
[0079]在所有三个fast_step_cnt 寄存器即 fast_step_cnt L2C710、fast_step_cnt_core2711和fast_step_cnt_corel712编程为具有不同值的情况中,以下三个不同ATPG运行将要求最小化由于时钟交错的覆盖丢失。
[0080]1.如图6C的交错模式3所示,由信号波形601、602和603分别代表的、至核心1、核心2、和L2C的捕获脉冲时钟将会相互之间进行交错。另外,如图6C中所见,由于在fast_step_cnt寄存器中的经编程的不同的值,用于核心和L2C模块的每一个的Twindow持续时间不同。Twindow_corel604 比 Twindow_core2605 短,Twindow_core2605 转而比 Twindow_L2C605短。结果,用于核心和L2C模块的每一个的Temit区域在不同的时间开始,从而允许用于所有三个模块的捕获脉冲相对于彼此交错。因为所有核心和L2C被个别地进行脉冲,所以核心和L2C之间的路径在后续ATPG运行中需要进行遮蔽(mask)和评估。
[0081 ] 2.如由图6A的交错模式I所示,当核心I和L2C —起被进行脉冲而核心2被交错时,核心I和L2C之间的路径接收覆盖。在该运行期间核心2和L2C之间的路径将被遮蔽。捕获脉冲由核心I和L2C在由信号波形610所指示的相同的时间接收。由核心2所接收并由信号波形611所指示的捕获脉冲相对信号610被交错。
[0082]3.最后,如图6B中的交错模式2的波形618所示,为接收核心2和L2C之间的路径的覆盖,核心2和L2C需要一起进行脉冲。同时,如由波形617所示,核心I时钟将被交错并且因此在该运行中核心I和L2C之间的路径将被遮蔽。
[0083]图6D简单示范操作的后备模式,其中没有时钟的交错。核心1、核心2和L2C将都在由波形621所指示的相同的时间得到捕获脉冲。如果在具体测试配置中时钟交错不能实现或者不需要实现,那么使用该模式。
[0084]图6和7中所示的静态捕获时间交错机制将允许将捕获时钟交错到集成电路中的不同的核心和L2C并解除捕获功率问题。然而,如参考图6和7的示例所指示的,为了生成用于这些不同组合的ATPG图案,单独的ATPG运行要求对经交错的区域之间的路径进行遮蔽。这对于在多个模式中的图案的生成和/或验证方面是低效率的。
[0085]因此,本发明的实施例进一步提供使用动态FTM引擎的、用于CPU核心的动态捕获时钟交错技术,动态FTM引擎将允许动态交错捕获时钟并单一生成ATPG图案。图8示出了根据本发明一个实施例的、使用动态FTM引擎来为四个核心和一个L2C实现动态捕获时钟交错的示例性电路。如图8所述,模块805、806、808和809的每一个是与各自核心或L2C相关联的个别的动态FTM引擎。
[0086]核心和L2C的每一个的交错,由用于采用模块的每一个的各自的Twindow的持续时间来编程的其各自的tmc2clk_fast_step_cnt_core寄存器(寄存器815到819)控制。在非动态捕获时钟交错模式中,每个FTM模块中所编程的fast_step_Cnt寄存器值确定不同核心和L2C之间的交错。如图6D所示,如果所有FTM模块编程为相同的fast_skp_cnt值,那么所有区域是未交错的,并且将在相同的时间对捕获时钟进行脉冲。然而,如果在非动态模式中,fast_step_Cnt值是不同的,那么捕获时钟被交错,但是随后ATPG图案需要生成为单独运行,以查明所有路径的完全覆盖。
[0087]动态捕获时钟交错模式NV_CLK_FTM_dynstagger_mode_ctrl890包括控制逻辑,其确定用于交错的最优的组合和序列,使得ATGP图案可以单一生成,并且用于所有路径的覆盖以可能的最有效的方式获得。举例来说,模块890将能够评估是否某些核心没有和L2C共享路径。在这样的情况中,在那些核心和L2C之间将不要求遮蔽。这样模块890阻止系统或者用户必须实施确保用于所有路径的覆盖的单独的ATPG图案运行。或者例如工具将能够基于ATPG图案或者基于因为核心2可以和L2C共享功率导轨并且将其一起进行脉冲将导致峰值功率问题,而确定是否将核心I和L2C而非核心2和L2C —起进行脉冲是更有利的。
[0088]基于ATPG矢量,动态捕获时钟交错模式将动态确定和重新布置集成电路上的各种模块之间的时钟交错操作的组合和序列。因此,动态捕获时钟交错允许采用ATPG的相同执行或者调用来完成测试覆盖。
[0089]当图8所示的动态捕获时钟交错模式使能时,针对剩余核心应该不进行交错的核心的数目的组合由tmc2car_staggered_unit_cnt寄存器850定义。使用JTAG寄存器来编程该值,以基于功率估计结果来预设特定组合。一旦使用tmc2car_staggered_unit_cnt寄存器值使能特定单元数,那么基于在扫描移位结束处的tmc2car_stagger_mode_scanflops851的内容,可以由模块890在捕获期间选择用于交错的不同的组合和序列。
[0090]图9描绘了根据本发明实施例的、针对基于扫描的测试解决在捕获移位周期期间在全局级的峰值功率问题的示例性过程的流程图。然而发明不限于由流程图900提供的描述。当然,相关领域技术人员从本文所提供的教导应该理解其他功能流在本发明的范围和精神内。将继续参考上述示例性实施例来描述流程图900,虽然方法不限于那些实施例。
[0091]在步骤902,对用于测试下的IC上的每个CPU核心例如模块420和430以及高速缓存例如模块425的Twindow期的持续时间进行编程。在图7的一个实施例中,例如3个寄存器 fast_step_cnt L2C710、fast_step_cnt_core2711 和 fast_step_cnt_corel712 可以包括JTAG位,其可由用户编程的或者可以由系统基于某标准来动态选择,例如LBIST要求达到16个用于捕获的脉冲,因此Twindow期可以由ATE系统中的测试器处理器114将这该因素加以考虑来选择。在一个实施例中,三个寄存器的每一个可以编程为具有不同的值,使得核心和高速缓存模块的每一个的捕获时钟脉冲被交错。
[0092]在步骤940,用于核心和L2C的每一个的FTM模块795的每一个将对用于各自的核心和L2C的Twindow区域510中的测试时钟脉冲的数目进行计数。
[0093]在步骤906,FTM引擎将发射和Twindow窗期间的测试时钟脉冲的数目相同数目的快速时钟脉冲用于扫描捕获。举例来说,在图5中在计数Twindow期间的TEST CLK410信号的三个脉冲之后,FTM引擎发射三个快速时钟周期为clk_out signal502。由于核心和高速缓存的每一个的Twindow区域的可变长度以及Temit区域的不同的各自的开始点,因此完成了时钟交错。[0094]在步骤908,通过将高速缓存和与其共享路径的每一个核心分别进行脉冲,与此同时交错剩余核心,来获得对所有组合路径的完全覆盖。在非动态系统中,将需要调度不同ATPG运行以最小化因时钟交错的覆盖丢失。例如,在对所有核心和高速缓存分开进行脉冲的实施例中,将需要调度不同的运行以在单独的周期覆盖每一个核心和L2C高速缓存之间的路径。另一方面,动态系统将能够使用单个ATPG矢量来动态配置IC上的各种核心和高速缓存之间的脉冲的组合和序列,以获得完全测试覆盖。
[0095]同时,前述公开阐述了使用特定框图、流程图和示例的各种实施例,每个框图部件、流程图步骤、操作和/或本文描述和/或示出的部件均可单独地和/或共同地,通过使用各种不同的硬件、软件或固件(或其任意组合)配置来实现。另外,对包含在其他部件内的部件的任何公开均应视为示例,因为可实现许多其他架构来达到相同的功能。
[0096]本文描述和/或示出的工艺参数和步骤序列仅以示例方式给出。举例来说,虽然本文示出和/或描述的步骤可能以特定的顺序显示或论述,但这些步骤不是必须按所示出或论述的顺序来实施。本文描述和/或示出的各种示范性方法也可以省略一个或多个本文描述或示出的步骤,或包括附加步骤作为那些所公开步骤的补充。
[0097]虽然本文已围绕全功能计算系统描述和/或示出了各种实施例,但这些示范性实施例中的一个或多个可分配为各种各样的形式的程序产品,而与用来实际执行分配的计算机可读介质的特定类型无关。本文公开的实施例也可以使用实施某些任务的软件模块来实现。这些软件模块可包括脚本、批处理或其他可被存储在计算机可读存储介质上或计算系统内的可执行文件。这些软件模块可以配置计算系统来实施一个或多个本文公开的示范性实施例。本文公开的软件模块中的一个或多个可在云计算环境中实现。云计算环境可经由因特网提供各种服务和应用。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等等)可通过Web浏览器或其他远程接口访问。本文描述的各种功能可通过远程桌面环境或任何其他基于云计算的环境提供。
[0098]前述的描述,出于解释的目的,已参考特定实施例进行了描述。然而,上述说明性的论述不旨在穷举或将本发明限制在所公开的明确形式上。鉴于以上教导,许多修改和变形是可能的。实施例被选择和描述以最好地解释本发明的原理及其实际应用,从而使其他的本领域技术人员采用各种适用于特定预期用途的修改来最好地利用本发明和各种实施例。
[0099]根据本发明的实施例因此被描述。虽然本公开已在特定实施例中加以描述,但应理解本发明不应被解释为限于这些实施例,而应根据以下的权利要求来进行解释。
【权利要求】
1.一种用于测试集成电路的方法,所述方法包括: 对用于所述集成电路上的多个核心以及高速缓存中的每一个的第一时间窗的各自的持续时间进行编程; 对用于所述多个核心和所述高速缓存中的每一个的所述第一时间窗期间的第一时钟信号的脉冲的数目进行计数;以及 通过在各自的第二时间窗期间生成用于所述多个核心和所述高速缓存中的每一个的第二时钟信号的脉冲,将捕获脉冲交错到所述多个核心和所述高速缓存,其中所生成的脉冲的数目基于为所述多个核心和所述高速缓存中的每一个所计数的第一时钟信号脉冲的相应数目。
2.根据权利要求1所述的方法,进一步包括,在单独的ATPG运行中将所述多个核心中的每一个与所述高速缓存进行脉冲、同时交错剩余核心,以获得对相应核心和所述高速缓存之间的组合路径的覆盖。
3.根据权利要求2所述的方法,进一步包括遮蔽所述高速缓存和所述剩余核心之间的路径。
4.根据权利要求1所述的方法,进一步包括,通过对所述多个核心和所述高速缓存的第一子集一起进行脉冲、同时交错剩余核心,以动态地获得在单个ATPG运行期间对所述集成电路上的实质上所有组合路径的覆盖。
5.根据权利要求4所述的方法,其中,动态地确定所述第一子集中所要包括的模块,以及其中所述模块可以包括核心和所述高速缓存。
6.根据权利要求5所述的方法,其中当对所述第一子集中的所述核心和所述高速缓存一起进行脉冲时,将所述第一子集中的所述模块和所述剩余核心之间的组合路径遮蔽。
7.根据权利要求1所述的方法,其中所述集成电路从包括图形处理器和中央处理器的组中选择。
8.根据权利要求1所述的方法,其中所述第一时间窗的所述各自的持续时间是用户可编程的。
9.一种用于测试集成电路的方法,所述方法包括: 对用于所述集成电路上的多个模块中的每一个模块的第一时间窗的各自的持续时间进行编程,其中所述模块包括多个核心以及高速缓存; 对用于所述多个模块中的每一个模块的所述第一时间窗期间的第一时钟信号的脉冲的数目进行计数;以及 通过在各自的第二时间窗期间,生成用于所述多个核心和所述高速缓存中的每一个的第二时钟信号的脉冲,来将捕获脉冲动态交错到模块的第一子集,其中所生成的脉冲的数目基于为所述多个模块中的每一个模块所计数的第一时钟信号脉冲的相应数目。
10.根据权利要求9所述的方法,其中模块的第二子集同时接收所述第二时钟信号的脉冲,其中所述模块的第二子集包含不包括在所述第一子集中的模块。
11.根据权利要求10所述的方法,其中所述第二子集中的模块的数目的值是可编程的。
12.一种用于测试集 成电路的系统,所述系统包括: 包括测试器处理器的计算机系统,其中所述测试器处理器通信地耦连到集成电路,其中所述集成电路包括: 多个核心以及高速缓存; I/O端口,可操作为对用于所述集成电路上的所述多个核心和所述高速缓存中的每一个的第一时间窗的各自的持续时间进行编程;以及 多个快速时钟生成模块,配置为: 对用于所述多个核心和所述高速缓存中的每一个的所述第一时间窗期间的第一时钟信号的脉冲的数目进行计数;以及 通过在各自的第二时间窗期间生成用于所述多个核心和所述高速缓存中的每一个的第二时钟信号的脉冲,来将捕获脉冲交错到所述多个核心和所述高速缓存,其中所生成的脉冲的数目基于为所述多个核心和所述高速缓存中的每一个所计数的第一时钟信号脉冲的相应数目。
13.根据权利要求12所述的系统,其中所述多个快速时钟生成模块进一步配置为,在单独的ATGP运行期间将所述多个核心中的每一个与所述高速缓存一起进行脉冲、同时交错剩余核心,以获得对相应核心和所述高速缓存之间的组合路径的覆盖。
14.根据权利要求13所述的系统,其中所述多个快速时钟生成模块进一步配置为,遮蔽所述高速缓存和所述剩余核心之间的路径。
15.根据权利要求12所述的系统,进一步包括动态捕获时钟交错模块,其配置为通过对所述多个核心和高速缓存的第一子集一起进行脉冲、同时交错剩余核心,来动态获得单个ATPG运行期间对所述集成电路上的实质上所有的组合路径的覆盖。
16.根据权利要求15所述的系统,其中由所述动态捕获时钟交错模块动态地确定所述第一子集中所要包括的高速缓存和多个核心。
17.根据权利要求12所述的系统,其中所述I/O端口是JTAG端口,其可操作为由用户编程。
18.根据权利要求12所述的系统,其中所述集成电路从包括图形处理器和中央处理器的组中选择。
19.根据权利要求12所述的系统,其中所生成的捕获脉冲的数目能够通过变化用于所述多个核心和所述高速缓存中的每一个的所述第一时间窗的各自的持续时间来改变。
【文档编号】G01R31/28GK103913696SQ201310741793
【公开日】2014年7月9日 申请日期:2013年12月27日 优先权日:2012年12月28日
【发明者】萨蒂亚·普瓦达, 米林得·索纳瓦乐, 阿米特·桑加尼, 阿奴伯哈·辛哈, 维沙尔·阿加瓦尔 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1