测试集成电路系统中命名器件参量 数据的储存与搜索系统 本发明背景
本发明领域
概括地说,本发明涉及用于半导体制造过程的自动测试设备。更具体地说,本发明涉及测试过程中使用的命名器件参量数据的存储和搜索。
相关技术说明
自动测试设备被广泛用于半导体制造过程。通常,在制造过程中,半导体至少测试一次;而有时,要完成更多步测试。由于每一个元件都要测试,对于半导体制造的经济性来说,快速测试至关重要,测试速度慢会阻碍生产半导体元件所需的昂贵生产设备的充分利用。现代半导体元件非常复杂,并且存在许多操作状态。必须逐一经过这些操作状态,才能完成整个测试过程。因此,采用自动测试设备将测试数据分配给一个半导体器件,并在生产过程中非常快速地进行大量测量。
图1示出了现有的一种通用自动测试系统。为了实现全面快速测试,该自动测试系统通常包含:一个测试器主体112、一个计算机工作站110和一个操作装置114。计算机工作站110同时控制操作装置114和测试器主体112。它控制操作装置114将半导体器件(图中未示出)定位在与测试器主体112上的大量测试探针118接触的位置。通常,一个测试器会包括一个含有测试探针118的独立的测试头。然而,这个特点对于本发明并不重要。
然后,计算机工作站110控制测试器主体112对测试中的器件进行一系列测试。每个测试过程通常都包含一个设置部分,在该设置部分控制信号从计算机工作站110传输到测试主体112。控制信号通常是通过总线116传输的数字信号,它配置测试主体112的硬件以便为测试过程进行所需的测量。根据控制信号,测试主体112地硬件提供激励并测量在测器件的响应。
如图1所示,测试主体112的硬件包含大量表示为引脚124的电路。每个引脚124均产生信号或对测试探针118的某一个进行测量。每个引脚124均可提供或测量静态信号或直流信号。另外,每个引脚124可以提供或测量有时称为“脉冲串”的交替数据。
在一个脉冲串期间,测试主体112由时序电路120控制。时序电路120使得每个引脚124从相关的存储器128读取一个数据值序列。每个数据值均表示引脚在特定点的对应测试探针118上随时使用的或准备测量的信号的信号类型。如果该引脚将测量值和一个期望值作比较,其比较结果也可被存入存储器128。
所有引脚124在某一时刻应提供的数值或希望测量的数值由数据值集定义,该数据值集被称作“向量”。在一个脉冲串期间,要执行许多向量。这些向量必须以很高的速率执行,以便模拟在测器件的实际操作条件。测试半导体器件所需的脉冲串通常需要有几百万个向量来定义。当设定测试系统测试某种特定类型的元件时,将这些向量按特定方式装载到存储器128。该装载过程可能持续几分钟,并且对每个脉冲串只装载一次。相反地,对每个脉冲串,计算机工作站110发送命令指明哪些向量作为脉冲串的一部分将被执行。一旦该脉冲串结束,计算机工作站110就从存储器128或时序电路120读取脉冲串的结果。
此外,测试器主体112包括一个或多个测试仪器126。一个测试仪器126完成某个特定的测试功能。例如,它可以产生一个特定的测试信号,如正弦波信号。另一方面,测试仪器126可以以高速率采样信号,这样该信号随后就能由数字信号处理器进行分析。这些功能可以作为脉冲串的一部分被执行,也可以独立于脉冲串执行。
对一个元件的完整测试,有时称为一个“作业”,它包含一系列间或有直流测量值或测试仪器126所得测量值的脉冲串。这些脉冲串可用于测量在测器件的特定功能特性。另一方面,每一个脉冲串仅能将在测器件置于可获得直流测量值的状态。执行这些测试环节命令的过程,常常称为“流程”,它由计算机工作站110的软件监控。
一旦,一个器件完成全面测试,或在确定有缺陷的点完成测试后,则计算机工作站110向操作装置114发送控制信号,然后操作装置114将下一个要测试的器件送到测试主体112并重复上述过程。计算机工作站110还采集有关特定器件合格或不合格的数据,并且能够处理此数据以便丢弃有缺陷的器件,或者完成诸如对具有不合格趋势的数据进行分析的其它功能。
由于测试过程需要用到大量数据,所以,为了进行有效地测试,对所储存的命名器件参量数据进行检索的速度至关重要。因此,需要一种在存储器中存储数据的方法,以实现检索数据的快速搜索。
本发明概述
本发明是一种半导体测试系统,其电子数据表格工作簿具有含有多层嵌套命名器件参量数据的一个或多个电子数据表格。数据管理器将命名数据储存在存储器中,并在需要时搜索所储存的命名数据。数据管理器含有一个或多个储存器(Container),每个储存器具有一个既可以按二叉树形式也可以按顺序排列向量形式存储多层嵌套命名数据的模式。二叉树中的数据映射到带有数字标识的顺序排列向量中,该数字标识确定命名数据在顺序排列向量中的位置。这些储存器的嵌套层数和命名数据的嵌套层数相同。
每一个储存器具有一个对二叉树搜索命名数据的搜索模式,并且利用与命名数据相关的映射标识在顺序排列向量中搜寻命名数据。然后,该储存器储存数字标识。此搜索在这些嵌套层中搜寻命名数据及其在嵌套层中的顺序。
【附图说明】
图1是现有测试器的硬件方框图。
图2是本发明测试器的原理框图。
图3是一个引脚排列图的电子数据表格的例图。
图4示出了图3的引脚排列图数据的图形表示。
图5示出了用于存储图3和图4所示电子数据表格信息的数据管理器的功能框图。
图6示出了用于数据管理器中的存储及检索结构的细节。
图7示出了图3中按二叉树布局的引脚排列图数据的第一层。
图8示出了一个引脚排列图D储存器,它用于图3和图7所示的嵌套引脚排列图信息的第一层。
图9示出了用于图4嵌套层的D储存器的一个嵌套实例。
图10示出了一个用以说明一个引脚名称在数据的一个嵌套层中可被使用几次的电子数据表格。
图11示出了一个D多储存器(Dmulticontainer)的结构。
本发明的详细说明
图2是有关本发明整个测试系统的详细原理框图。该系统包括一个PC工作站2000、测试硬件2002、一个操作装置2004和一个主机2006。PC工作站的软件由生产界面2008和测试开发与执行程序模块2010组成。
首先说明生产界面2008,它被用作操作员与测试开发及执行程序2010之间、主机2006与操作装置/探针2004之间的界面。在该优选实施例中,生产界面2008由称为“Active X”控件的控件组成,“Active X”控件由位于Redmond,华盛顿的微软公司用Visual Basic编写。这些控件可以利用Visual Basic迅速容易地生成图形用户界面(GUI),也可以作为不带GUI的程序界面使用。在测试开发与执行程序2010、主机2000、或操作装置2004中,Active X控件允许操作员启动一个动作。在生产测试过程中,操作员在测试开发与执行程序2010中使用一个Active X控件与执行程序2016通讯,从而启动生产测试。
此外,操作员可以利用操作装置2004和主机2006启动伴生动作。操作员控件2022具有一个Active X操作装置控件。利用该Active X操作装置控件,操作员可在有关操作装置驱动程序2024的菜单中选择一个操作装置,将它与操作装置2004相连,并启动它。操作装置2004将待测器件送至测试器2002。生产界面2008还包含一个Active X主机界面控件2020,它使得操作员可以将主机2006连到测试器2002。在生产车间,通常将测试器2002与一台监视测试器状态、采集测试结果、并能够直接控制测试过程的主机2006连接。主机界面控件2020将测试器控件2014的应用程序界面(API)翻译成能由主机2006发送或接收的标准消息。生产界面2008只能在生产测试期间执行测试时使用。所述生产界面、操作装置驱动程序、及主机在另一同时待审的专利申请中作了披露,该申请已转让给同一受让人:Teradyne,标题为:“用于集成电路测试系统的生产界面”,申请人:Daniel C.Proskauer,申请日期:1997年9月16日,申请号为:08/931,793,在此引用供参考。
测试开发与执行程序2010在Windows NT操作系统下运行,它由两个单元软件组成:1)测试开发和分析时使用的软件,和2)测试执行时使用的软件。Excel工作簿312是在测试开发与分析期间用于开发测试的部分程序。Excel是一个允许进行应用开发的电子数据表格程序。Visual Basic是一种可嵌入Excel内的编程语言。
在本优选实施例中,器件开发与流程开发工具310由Excel工作簿312中的定制电子数据表格完成。测试时,有三种数据需要由电子数据表格说明:器件数据、测试流程数据、以及测试实例数据。器件数据可能是时间参数集、通道集、边参数集(或引脚排列图)或者大量其它类型的数据的电子数据表格。测试实例数据的电子数据表格说明一个取自测试模板库320的测试模板和与其相关的器件数据集。一个测试模板和与其相关的数据集就称为一个“实例”。测试流程数据可以是说明一系列所需执行的测试步骤的数据表格。所谓系列测试步骤可以是一系列测试实例的执行步骤。
总之,Excel电子数据表格信息312包含器件数据集、测试实例信息以及测试流程信息。测试实例信息确定与相关数据集一起使用哪一个模板,测试流程信息确定所要执行的测试实例序列。
测试模板320由Visual Basic编写,并且其通常由设备制造商来提供。在测试执行之前,在测试开发和分析期间使用了器件数据与流程开发工具310、Excel工作表格312以及由制造商提供的测试模板320。
在生产测试期间,也用到了测试模板320和Excel电子数据表格312。用于生产测试期间测试执行时的测试开发与执行程序2010的其它软件有:执行程序2016、流程控件314、数据管理器316、以及测试仪器驱动程序328。所有这些软件都在Windows NT操作系统环境下运行。
执行程序2016用Visual Basic编写。它根据生产界面2008的ActiveX控件,控制生产测试过程的开始与执行。执行程序2016利用流程控件314启动动作。根据执行程序2016,流程控件314建立一个列出每个要执行的模板和用于执行该模板所需的数据的作业控件数据结构。作业控件数据结构可以是一个索引表,但其它步骤是能够执行的。
在建立作业控件数据结构时,第一模板由电子数据表格312中流程数据表的第一实例确定。与该实例有关的模板由该实例数据表确定。模板的标识存入作业控件数据结构中。此外,所要使用的具有第一模板的器件数据由该实例数据表确定。
将用于给定测试模板的器件数据的一个标识符添加到作业控件数据结构中。此时,数据管理器316将数据从Excel电子数据表格312传送到测试仪器驱动程序以便应用于测试器2002。在一个测试作业期间,数据管理器316汇编含有传送至测试器2002的特定数据的参量数据结构。
一旦对模板识别的信息和数据值添入到作业控件数据结构中,则流程表中指明的执行下一个模板的条件就确定了。所有模板确定后,流程控件314进入空闲状态。
当流程控件314处于空闲状态时,它可能通过测试器控件2014和执行程序2016接收一个用户命令以执行测试作业,或者它可以从操作装置2004接收一个启动信号,表明在测器件已经装载完毕,并等待测试。收到运行测试作业的命令时,读取由测试器控件数据结构提供的第一模板。该模板用具有由作业控件数据结构指定的参数由测试模板320作为子程序调用。然后,该模板子程序执行并回到流程控件314。
提供测试的每个模板子程序表明测试通过还是未通过。测试作业的状态根据刚调入的测试模板所返回的数值更新。例如,测试将表明所执行的测试模板是没有检测到错误(即测试顺利通过)还是检测到了错误。
新测试状态用于运算储存于作业流程数据结构中的逻辑表达式。根据运算结果,选择下一个模板。如果没有更多的模板可用,流程控件314就回到其空闲状态。
在本优选实施例中,测试完成时,测试作业的结果既不提交给用户也不传送给操作装置114。提交数据会降低测试作业的执行速度。因此,在提出请求前,每个测试作业的执行结果都存入计算机的内存中。对测试结果的请求会使流程控件314跳过空闲状态,为用户显示测试结果或将测试结果传送到操作装置114。流程控件314、数据管理器316以及测试仪器驱动程序328都用C++编写。
测试开发与执行模块2010更详细地披露在另一共同待审的专利申请中,该申请已转让给同一受让人Teradyne,其题目为:“低成本、易操作的自动测试系统软件”,申请人:Daniel C.Proskauer和PredeepB.Deshpande,申请日期:1997年6月13日,申请号:08/874,615,在此引用作为参考。
对数据管理器316检索器件数据的速度要求高的原因有几个。检索速度决定了完成器件测试(即作业)的速度有多快。此外,快速检索对Excel电子数据表格上数据的确认过程很重要。任一电子数据表格上的数据必须和其它所有电子数据表格上的数据相一致。搜索速度是本发明的一个特征。
Excel电子数据表格含有测试所需的所有数据。Excel数据需要以其能被快速准确地检索的方式存储在数据管理器中。图3示出了一个引脚排列图的电子数据表格的一个实例。其它的Excel数据表格具有与通道、时间参数集、边参数集以及其它器件数据参数相关的类似数据。在Excel电子数据表格中,引脚P1到P14及引脚组PG11列于第2列,引脚组PG1、PG2、PG11列于第1列,其它信息列于第3列(未示出)。图4是图3所示具有某些引脚和嵌套的引脚组的引脚排列图的图形表示。引脚P1、P2、P3以及引脚组PG1、PG2构成第一层数据。含有引脚P1、P4、P5和引脚组PG11的引脚组PG1构成嵌套在第一层数据内的第二层数据的一部分。余下的第二层数据构成同样嵌套在第一层数据上的引脚组PG2。第三层数据是嵌套在引脚组PG1内的引脚组PG11。嵌套可以继续进行,直至达到所需的数据层数。
数据管理器需要对每一个电子数据表格存储数据,并且在作业装载和执行期间能够随时支持对任何电子数据表格的全部嵌套数据的有效搜索。
图5为存储Excel电子数据表格的数据管理器316的原理框图。Excel工作簿312通过界面2100与数据管理器316通信。数据管理器316由C++编写。流程控制程序314、界面2100、以及测试仪器驱动程序328都与主对象2102通讯。主对象是一种能存取存储于数据管理器中的Excel电子数据表格上的所有数据的装置。流程控制程序314、驱动程序328以及界面2100从主对象开始存取每个Excel电子数据表格上的所有数据。
图6详细说明用于数据管理器316的存储与检索结构。主对象2102对每种电子数据表格的数据存储一个D储存器,例如引脚排列图。一个D储存器通过用户指定以电子数据表格的名称出现的或以电子数据表格内的项出现的名称,来提供存取数据的功能。图6示出了用于引脚排列图的D储存器2104,以及分别用于通道图数据、时间参数表数据以及边参数集数据的D储存器2106、2108、2110。附加的D储存器代表各种电子数据表格。用于引脚排列图的D储存器2104含有通常装载在数据管理器316中的每一个引脚排列图电子数据表格的名称,以及能搜寻每个引脚排列图数据的起始地址。其它D储存器同样含有与通道参数、时间参数集、边参数集等等的电子数据表格相对应的数据的名称和存取信息。
其它D储存器从D储存器的顶层开始嵌套来控制用于较低层信息嵌套层的信息。例如,D储存器2112和2114代表嵌套在一个如图4所示的引脚排列图内的引脚和引脚组的数据。由于流程控制程序314、驱动程序328以及界面2100仅从主对象2102存取各自的数据,所以每一个顶层的D储存器需要向搜索结果的主对象提供一个标识。这些搜寻结果以一种数据上下文的形式出现,这种数据上下文代表对每种类型的电子数据表格当前可存取的数据。D储存器提供这种上下文信息的方法如下文所描述。
D储存器的另一个同样重要的功能是,利用保存有顺序信息的名称来提供迅速搜索。(在引脚排列图电子数据表格中的数据不仅包含了引脚的名称而且包含了引脚出现的顺序。)为了理解D储存器如何完成此过程,图4是最有用的。图4是一个引脚排列图电子数据表格嵌套数据的图形说明。现存在两种方法在数据管理器316的存储器中从该嵌套树上分配引脚名称或引脚组名称,使得它们可以在较后时刻被搜索。第一种方法是一种STL标准C++类库中的二叉树,该类库允许数据存储在二叉树数据结构中。图7示出图4中二叉树方式分配的引脚排列图数据的第一层。每一个引脚或引脚组在树上具有一个由二叉树分配规则确定的特定位置。该二叉树具有一种利用名称来对快速存取的数据进行搜索的方法。问题是与名称顺序有关的数据在二叉树上丢失了,因为二叉树按字母顺序存储数据。以PG11的名称为例,它可以位于二叉树上,但它相对于其它引脚或引脚组名称的次序却丢失了。
在数据管理器上分配引脚排列图数据的另一种方法是一种第二STL类,即以向量储存顺序信息。每一个引脚或引脚组的数据都储存在向量顺序表中,并给出对应于向量位置的相应索引。由于按名称搜索必须从向量的起始位置顺序地开始,所以向量法不适于按名称搜索。由于一个向量具有1024个引脚数据(目前的最大数),所以需要搜索1024个名称。这种速度慢得难以接受。然而,如果一个引脚的数据可以按索引存取,那么,就能实现对数据的随机存取而非顺序存取。它可以不依赖于向量中索引的编号以极高的速率存取。
这些商业应用的STL存储器和搜索类,哪一个单独使用都不能满足按名称的搜索。一个丢失顺序信息,另一个则速度太慢。本发明试图利用两种STL类,并用某种方法组合它们以实现保持所有顺序数据的按名称快速搜索,这两种类的组合以及数据管理器316中数据的相应分配决定D储存器的结构与运行。
图8是引脚排列图D储存器的一个示例,它允许数据管理器存储并搜索引脚排列图1(PM1)(示于图4和图7)的第一嵌套层信息。STL二叉树在图8所示二叉树内安排引脚和引脚组。STL向量类用于为每一个引脚和引脚组建立顺序排列向量,该顺序排列向量具有唯一的与每一个引脚位置和引脚组位置对应的索引号。在二叉树的入口处的每一个引脚和引脚组都同时含有名称和向量中的数字位置。这样,在二叉树中的每一个引脚和引脚组都映射到向量中。(从技术上说,用于将名称转换为数字的术语“映射”被引入到二叉树,STL库的开发者也使用该术语。)
为在D储存器中搜索一个引脚名称,STL二叉树利用快速对分查找法搜寻名称。所查找到的引脚名称在按数字顺序所列的表中具有一个相应STL向量类的数字位置号。则此数字位置号在下一步中被用于存取STL向量类中的引脚数据。在其它情况中,当引脚和引脚组的顺序比名称更重要时,向量中的数据可直接存取。
图8中所示的D储存器只搜索图4所示引脚排列图顶层的数据。为了将数据储存于一个较低的嵌套层,其它D储存器被链接到位于嵌套排列顶层的D储存器。图9示出了一个D储存器的嵌套实例,用于图4所示的多层嵌套。三层D储存器PM1、PG1、PG11都是嵌套的。每个D储存器的向量中类似的引脚号均被映射回嵌套顶层的引脚号。例如,引脚P1置于每一个D储存器的向量中。所有这些引脚排列图映射回D储存器的嵌套顶层。这完全可以通过使各嵌套层的P1具有嵌套顶层P1的地址,从而用软件来实现。因此,如果搜索P1,一旦在嵌套顶层找到P1,则在其它各层同样能找到P1,所以不必再进一步搜索。
当某一向量中的一个项被定位后,D储存器就存储其向量索引。存储此数字是前述上下文原理的基础。此上下文信息的重要性在于,避免了从其它软件组件引入数据的复杂性。对于通过数据管理器存取数据的这些组件来说,上下文信息允许它们对每一个电子数据表格设置一个实例,如:一个引脚排列图、一个通道图等等。这大大简化了这些软件的执行过程。进一步说,由于它们不需要复杂搜索,所以这种设计显著提高了这些组件的效率。在每一个测试模板启动之前,由单个D储存器辅助搜索设置上下文。
某些情况下,一个名称在一个嵌套层中可能出现几次。例如,图10所示为一个电子数据表格,其引脚名称可能在数据的一个嵌套层中使用几次。在该例中,同一个引脚可以分配到几个边参数集中。为适应这种情况,调整该D储存器以使一个名称对应同类数据的多个变型,在本例中,即一个引脚指向几个边参数集。这种类型的D储存器称为D多储存器,如图11所示。它含有一个具有名称(P1、P2、P3)的二叉树,和一个含有同前的边参数集数据的数字顺序表的主向量。区别在于:该二叉树包含有许多中间向量将各个名称映射到一组向量索引,而不是象D储存器那样将各个名称映射到一个单独的向量索引。在图11所示的例中,P1在主向量内映射到边参数集的数字位置是2,2,1。因此,P1的中间向量包含位置号2,2,1。P2和P3同样具有储存主向量索引的中间向量。这些D多储存器可能和D储存器有同样的嵌套方式。现在搜索边参数集需要两条信息:一个名称和一个版本号(version number),该版本号是一个中间向量的索引。这样,标准P1的上下文信息是指其在中间向量中的位置,而不是在主向量中的位置。
参看图2,由流程控件314和数据管理器316控制的电子数据表格通过测试仪器驱动程序328传送给处于任意工艺状态的测试器2002,半导体测试器完成并行测试和/或扫描测试。转让给同一受让人Teradyne的5,606,568号美国专利提出了一种测试器实例,在此引用以供参考。
尽管已示出并描述了本发明的优选实施例,本领域的技术人员还能设计出大量的变型和替换方案。因此,本发明仅受所附的权利要求的限制。