具有容易修改的软件的自动测试系统的制作方法

文档序号:6489496阅读:179来源:国知局
专利名称:具有容易修改的软件的自动测试系统的制作方法
技术领域
本发明一般涉及软件体系结构,具体涉及自动测试系统的软件。
背景技术
在半导体器件的制造中使用自动测试系统(一般称为“测试机”)。通常,在半导体器件制造期间,在多于一个的阶段对其进行测试,并且根据测试结果来确定该器件的进一步处理。在某些情况下,废弃未通过测试的器件。在有些情况中,可以修复器件。例如,器件可构造有冗余电路。如果经测试找到了器件的故障部分,那么可以断开故障电路并在它的位置连接冗余电路元件。在另外一些情况下,通过测试对部件进行分级。例如,一些器件只能在特定速度范围内运行,或之能在一定温度范围内运行,这可能低于该器件预期的运行范围。可以把这些器件与其他完全满足设计要求的器件分开,然后作为较低等级的部件进行特定包装或销售。无论响应该测试进行何种特定活动,测试都是制造过程中的一个重要部分。
非常希望自动测试系统尽可能易于使用。提供软件是实现易于使用的一种方法。
Proskauer等的名称为“Low Cost,Easy To Use Automatic TestSystem Software”的美国专利5,910,895描述了一种用于自动测试系统的软件系统,其基于使用商品化的spread sheet程序,来定义测试程序所需的数据和程序流。Blitz的名称为“System For Storing AndSearching Named Device For Parameter Data In A Test System ForTesting An Integrated Circuit”的美国专利6,047,293描述了一种便于测试系统编程的软件。名称为“Production Interface For An IntegratedCircuit Test System”美国专利5,828,674描述了一种软件系统,也用于自动测试设备,它使得可方便地向自动测试系统提供用户接口。Kittross等于1999年10月12日提交的名称为“Easy to ProgramAutomatic Test Equipment”的美国专利申请09/417034描述了一种自动测试系统,其使用编程技术的组合来支持测试的便捷编程,同时允许编写非常复杂的程序。前面所述的这些都通过引用结合于此作为参考。
上述各专利都转让给了美国马萨诸塞州波士顿的Teradyne公司。Teradyne为它的测试系统提供一种称为IG-XL的非常成功的编程环境,其采用了上述专利中所述的技术。
尽管该编程环境是成功的,但还是希望提供一种改进的软件环境。我们已经认识到需要改进的一个原因,由于传统的自动测试环境的软件包含用于运行测试机硬件的驱动程序。传统上,测试机包括特别适于特定测试功能的硬件仪器。例如,一些仪器产生或测量RF信号。其他有些仪器产生数字信号,而有些只执行测试半导体存储器的功能。用于测试系统的仪器常常在该测试系统发布之后开发,这是由于认识到需要新仪器,或是由于在开发测试系统时不可能同时得到所有的仪器。
随着新的仪器被开发出来,软件环境必须修改,以便加入对新仪器的控制。传统上,通过发布软件的新版本来修改软件。对于测试机,发布新软件有时可能是不利的。半导体制造商常常要“验证”他们编写的用来测试所制造的半导体的程序。验证步骤对于半导体制造商而言是重要的,这可以使他们在很高的程度上相信通过了测试的器件实际上是好的器件,而没有通过测试的器件实际上是有缺陷的器件。如果发布了软件的新版本,半导体制造商可能必须重新验证其全部测试程序。
由于在半导体工业中技术进展的快速步伐,我们还认识到需要改进的另一个原因。被开发的新一代器件通常比其前一代更大更快,需要新的测试机。非常希望能够对新一代的器件快速开发测试程序,即使它们是在新测试机上测试。

发明内容
鉴于前面背景技术中的问题,本发明的一个目的是提供一种测试系统,可被容易地重新编程以控制新仪器而无需重新加载基本软件。
在另一方面,本发明提供一种用于制造半导体器件的方法,通过提供自包含的仪器专用软件简化了该方法。
通过把软件划分成通用功能和仪器专用功能的自动测试系统软件实现了上述及其他目的。该测试系统包括用于确定安装了哪些仪器的机制,以及执行通用功能的软件能够访问仪器专用软件并且仪器专用软件能够访问通用功能的机制。
在优选实施例中,执行通用功能的软件被实现成定义“核心”功能的软件和执行特定平台功能的软件。此外,执行仪器专用功能的软件包含与仪器相关的功能信息以及描述该仪器在印刷电路板上的物理布局的信息。在使用中,仪器的“实例”通过将其功能和物理信息组合起来而构成。按这种方式,可以使用与该仪器有关的相同功能信息,即使其物理布局改变了。
在优选实施例中,软件组件被定义成具有规定接口的COM对象。这些接口提供已知的格式,用于存取与该对象相关联的方法。对软件做划分,使仪器专用方法只包含在仪器专用软件中,但仪器专用软件能够访问通用的功能,以作为ATE系统的集成部分来运行。


通过参考下面更详细的说明和附图,将更好地理解本发明,其中图1是例如可在现有技术中找到的自动测试系统的框图;图2是现有技术中软件体系结构的功能框图;图3是示出在特定电路板上放置仪器的简图;图4是使用本发明的软件的功能框图;以及图5是示出图4的仪器软件的更详细情况的示意表示。
具体实施例方式
图1示出现有技术中一般的自动测试系统。为了提供全面和快速的测试,该自动测试系统通常包括测试机的机体112、计算机化工作站110和输送(handling)装置114。
计算机工作站110控制输送装置114和测试机机体112。它控制输送装置114来定位半导体器件(未示出)使其与测试机机体上的多个测试探针118相接触。通常,测试机包括分离的测试头,该测试头包含测试探针118。然而,这种区别对于本发明来说是不重要的。
然后,工作站110控制测试机机体112对待测器件进行一系列测试。每次测试通常包括启动部分,其中把控制信号从工作站110发送到测试机机体112。控制信号通常是通过总线116发送的数值。这些控制信号对测试机机体112内的硬件进行配置,以便进行测试所需的测量。测试机机体112内的硬件根据控制信号提供激励并测量来自待测器件的响应。
在优选实施例中,工作站110是运行Windows操作系统的常规个人计算机。优选地,操作系统为Windows NT操作系统、Windows2000操作系统、Windows XP操作系统或更新的版本。
图1示出了测试机机体112内的硬件包括多个电路,它们被标识为仪器INS 126A...126N。这些仪器可以具有多种形式。为了测试产生或接收数字信号的半导体元件,仪器INS 126A...126N中的一些包含“引脚”或“数字通道”。能够对每个引脚编程,以产生信号或对测试探针118中的一个进行测量。每个引脚可提供或测量静态或DC信号。作为替换,每个引脚可提供或测量有时被称作“脉冲(burst)”的信号中的变化数据。
在脉冲期间,测试机机体120由定时和排序电路120控制。定时和排序电路120使引脚124中的每一个从相关的存储器128读取数据值序列。每个数据值指示该引脚在特定时间点在其相关的测试探针118处应该施加或期望测量的信号类型。如果该引脚将测量结果与期望值进行了比较,也可以将结果存储在存储器128中。
仪器126A...126N中的其他仪器执行其他的测试功能。例如它们可以产生特定的测试信号,如正弦波。作为替换,仪器可以按高速率对信号采样,以便在稍后可由数字信号处理器来分析它。这些功能可以作为脉冲的一部分执行,或者可以与脉冲分开执行。
对部件的完全测试,有时称为“作业”,由一系列散置有DC测量或仪器126测量的脉冲组成。这些脉冲可用于测量待测器件的特定功能属性。作为替换,每个脉冲可用于把待测器件置于一种只能够进行DC测量的状态。这些测试元素执行的顺序有时称为“流(flow)”,由工作站110中的软件来控制。
仪器126A...126N中的每一个可以包含对特定待测器件所做测量进行处理的电路。作为替换,可将原始数据传递到工作站110,根据运行在该工作站上的软件程序来进行处理。作为另一种选择,可以将数据传递到测试机机体112内的电路,通常是指定时、排序和处理电路120。该处理电路的精确位置并不重要。重要的是工作站110中的软件要适于控制所要求的数据处理。因此,测试机中硬件的任何变化通常都会要求工作站110中的软件改变。然而,如同下面所述,优选实施例的软件显著降低了对这种改变的需要。
一旦全面测试了一个器件,或者对确定有缺陷的点做了测试,工作站110就对输送装置114产生控制信号。然后,输送装置114将下一个要测试的器件提供给测试机机体112,并且重复所述处理过程。工作站110还收集关于特定器件是通过还是未通过测试的数据。它能够处理该数据,从而废弃有缺陷的器件,或者可执行其他功能,例如分析故障趋势数据。
上面所述的Teradyne公司所有的美国专利更全面地描述了现有技术中的软件系统。作为简要说明,图2示出了根据现有技术的软件的高级功能框图。通过特定软件集来执行作业,该软件集被标记为执行软件210。用户规定作业中各测试的流。执行软件210按照这个流并利用测试程序216和测试模式212来确定该测试系统要采取的特点动作。执行软件210利用器件数据214把该信息转换成用于测试机的更具体的命令,例如哪个仪器连接到待测器件的哪一条引线,并由此应该产生具体的测试信号。
执行软件210具有调用各种仪器驱动程序226A...226N的接口。每个驱动程序是对测试机112内的硬件进行控制的软件。接口驱动程序218控制用户接口设备,例如计算机显示屏,并向用户提供数据和从可控制作业执行的用户接收指令。类似地,输送装置驱动程序220控制输送装置114。
图3示出测试机机体112的一些部分的物理实现。测试机是由例如310、320和316等印刷电路板组装的。只示出了印刷电路板中的一部分,为了清楚,省略了电路板之间的物理互连。
在示出的实施例中,所示出的半导体芯片340和342安装在电路板310上。这些芯片可以是例如专用集成电路(ASIC)。在此,所示出的ASIC 340和342是仪器126A的物理实现。所示出的同一块电路板310还包含另一个实现仪器126B的ASIC。因此,可以在单块印刷电路板上实现两个仪器。
作为替换,所示出的电路板312包含许多集成电路芯片,但仅实现单个仪器126C。因此,电路板上仪器的具体配置可以随仪器不同而变化。随着新电路板的设计,仪器和电路板之间的连接可以改变。例如,如果测试机制造商开发了新型的测试系统,但希望使用为前代产品开发的仪器,可能会发生这种改变。或者,测试机制造商可能提供了全系列的测试机,一些用于高性能,一些用于低性能。尽管在每个测试系统中使用的电路板不同,但可能希望在每个系统中使用相同的仪器。实际上,已有的构成仪器的集成电路能够容易地放置在新测试系统的电路板上。然而,在此之前,需要进行大量的工作来改写现有的软件,以用于新电路板布局中的仪器。
电路板316表示一个可以包含构成定时、排序和处理电路120的电路的电路板。在测试机中一个常用的处理操作是对测量数据执行数字信号处理操作。数字信号处理可用于例如计算频谱或标识信号中的零相交点(zero crossing)。
然而,在一些测试系统中,数字信号处理电路可以实际安装在包含仪器的电路板上。在此之前,当改变测试系统的体系结构(即使在同一个产品族中),很难把对一个测试系统开发的软件重用于该产品族中较晚的测试机上。
在优选实施例中,电路板中的每一个包含仪器的电路板,例如电路板310和312,都包含一种机制,通过该机制,可由工作站110识别具体的电路板或电路板类型。已知将只读存储器(ROM)放置在测试机中的印刷电路板上,其存储与具体电路板有关的ID信息。但是,也可用其他的方式来识别电路板。图3示出了将条形码340贴到每个电路板上,例如,当电路板插入到测试系统中时,可以通过条形码读取器来识别。用来识别电路板的具体机制是不重要的,并且图3示出的条形码仅作为一种可视表示,代表电路板包括某种机制,通过所述机制,能够识别电路板的类型。
现在转到图4,示出了使用本发明的测试系统的软件的功能框图。图4示出了仪器/电路板垂直片(vertical slice)软件510和独立于仪器的软件。仪器/电路板垂直片软件510有多个副本,其中,安装在测试系统中的每个仪器对应一个副本。所示出的独立于仪器的软件包括核心模块410和平台模块412。
独立于仪器的软件可加载到测试机中,并且当把不同的仪器安装到测试机或从测试机移除时不需要对该软件做改变。应该理解,由独立于仪器的软件进行的任何处理的结果可能依赖于由仪器产生的数据或命令,但是如果该软件在添加新仪器时不需要改变,则它独立于仪器。
平台模块412表示依赖于其所驻留的具体测试机平台的软件。例如,测试机制造商可能具有在一个产品族中的多种测试机。每种测试机型号可表示一种“平台”。特定操作的执行因平台不同而不同。例如,一种平台可能具有可执行多种功能的硬件数字信号处理器。为了执行DSP功能,软件将控制测试系统向DSP电路提供数据并读取结果。但是,不同的平台可能不包含这种DSP电路。在这种情况下,当测试作业需要DSP操作时,软件将不得不控制测试机把数据传递到工作站110,其中,软件算法使用通用计算机来执行DSP功能。在不同的平台上可以执行相同的操作,但由软件实现的具体功能将根据下层硬件设计而随平台变化。理想的是,依赖于可能随平台变化的下层硬件的所有软件都被实现成平台模块412中的一个模块。
应该理解,仪器还改变下层硬件,并可根据安装了哪些仪器而随测试机不同而发生变化。平台模块412与仪器专用模块的不同在于,它们提供软件来执行功能,所述功能在所有相同类型平台的测试机上同样地执行,而不管安装了哪些仪器。因此,平台模块412能够在制造时加载到测试系统中。相反,仪器可以测试机寿命期内添加到测试机或从测试机移除。仪器专用模块可以在测试机的整个寿命期内添加或移除。
在示出的实施例中,核心模块410是第二种独立于仪器的软件。如同平台模块412一样,当仪器添加到测试系统或从测试系统移除时,这些模块不需要改变。由仪器提供的数据或命令可以改变由核心模块410实现的功能或结果,但是当仪器添加或移除时,该软件不需要改变。在优选实施例中,核心模块包含不依赖于测试系统体系结构的软件,该体系结构在以后的平台中可能改变。
为了能够把软件划分成仪器/电路板垂直片软件和独立于仪器的软件,适当分配功能是必要的。在优选实施例中,每个功能模块表示一个对象或对象的集合。为了使系统能够操作,尽管它包含多个对象,在对象之间必定存在定义的接口。面向对象的编程是本领域公知的,用于创建软件对象的技术也是公知的。
在优选实施例中,软件大部分是用C++语言编写的。然而,使用COM/ATL技术来定义对象之间的接口。COM是由华盛顿雷蒙德的微软公司提供的技术,其用于创建能够通过接口来存取的软件对象。
图4示出各种核心模块410。这种核心模块的具体数量和类型因实现的不同而不同,所示出的模块应该理解为是测试系统中可能存在的核心模块的示例,而不是对可能或必定存在的模块的限制。在所示出的实施例中,这些核心模块中的每一个被实现成称为“程序包(package)”的程序设计构造。
流模块414执行测试作业执行控制的处理。如同现有技术一样,流依赖于测试过程,其在此示出为测试过程450。用户提供的测试程序422,包括与被测器件有关的数据,由流模块414来存取。
流模块414和测试过程450被实现成程序包,它们具有定义的接口,表示为接口415和451。以这种方式,软件的模块化大大增加了。实现接口的各种方式是公知的。在优选实施例中,接口使用COM技术并暴露(expose)程序包的“方法”。每种“方法”表示该程序包可响应来自另一个程序包的请求而处理的事情。在所示出的实施例中,接口415暴露传统上通过运行测试作业所需的流软件所执行的方法功能。
在图4中,所示出的测试过程450既是核心模块又是平台模块。这表示该程序包可包含一些依赖平台的元素和一些不依赖平台的元素。在优选实施例中,对测试过程模块450的接口对于所有平台都是相同的,即使这些模块内的实际编码中的一些因平台不同而不同。
流模块414控制测试作业的执行。作为测试作业的一部分,必须对测试机的下层硬件(包括仪器)进行控制。然而,由于流模块414是核心模块,它被设计成与平台专用硬件和仪器专用硬件无关。因此,必须提供一种不限于特定仪器的机制来存取各仪器。
ATE注册表模块420提供这种机制。ATE注册表420维持安装在测试机中的所有仪器的列表。
添加到系统上的每个仪器都产生在ATE注册表420中的一个条目。可以使用各种机制来产生注册表中的条目。一种方式是使用户运行工作站110上的安装程序。
在计算机中识别新硬件的技术是已知的。例如,Windows即插即用的特性就可以对计算机外围设备执行该功能。在这种情况下,产生两种额外的复杂性。第一,电路板不是直接安装到工作站110中。而是,它们被安装到测试机机体112中。第二,优选实施例的软件体系结构识别仪器而不是电路板。优选地,该软件不要求具体电路板和仪器之间任何固定的关系。
在优选实施例中,在启动和初始化期间,ATE注册表从持久的存储机制中读取数据。该数据是在仪器软件被加载到工作站110上时写入的。软件加载的确切方式和发生的时间对于本发明是无关紧要的。在优选实施例中,Windows注册表功能用作通过ATE注册表来存取的数据的持久存储机制,尽管也可以容易地使用其他诸如ASCII文件的持久存储机制。
为了使仪器与安装在测试系统中的电路板相关联,垂直片510包括加载到工作站110中的软件,其说明了与具体电路板相关联的仪器。这种软件示出为电路板描述器550(图5)。电路板描述器550包含对该描述器与之相关的电路板上的每个仪器完成ATE注册表中的条目所必须的信息。
ATE注册表420中条目的精确形式对于本发明是无关紧要的。然而,在需要时,该条目应该包含其他软件包访问该仪器所必需的信息。该信息将包括仪器的标识和如何对它们寻址。
例如,流模块414可以执行用户提供的测试程序,该程序需要对仪器产生命令。在这种情况中,需要流模块414启动与仪器的通信。利用ATE注册表420中与仪器有关的信息来实现该通信。在一些情况中,ATE注册表中与仪器有关的信息可能已被“高速缓存”,因此该软件实际上可以不是每次需要数据时都从ATE注册表获取该数据。这种优化提高了整个系统的性能,但它是一种已知的技术,并且不是本发明所独有的。
其他例子,各种编程工具480可以显示用户在编写程序时可选择的选项列表。如果任何选项依赖于安装了哪些仪器,则编程工具可检查ATE注册表中的条目,并只呈现那些在ATE注册表中的仪器的选项。以这种方式,将仅编写用于匹配测试系统中存在硬件的测试程序。
如同其他程序包一样,ATE注册表420具有定义的接口421。以这种方式,能够开发任何垂直片组件,其访问ATE注册表420内的方法,以便在注册表中形成适当的条目。
以类似方式,测试程序或程序开发活动可能需要不限于特定仪器的信息或功能执行。在所示出的实施例中,这些任务作为服务提供。在核心模块410内,示出了两个服务程序包416和418。核心服务418表示非平台依赖组件的服务。
例如,响应报错所使用的方法不需要根据所安装的具体平台硬件或仪器而改变。与不同硬件相关的软件可通过接口将不同的数据传递到核心服务418,以描述发生的不同类型的错误。例如,不同的数据可能导致不同的消息显示给用户。但是显示消息的功能是与仪器和平台都无关的,并且任何软件都能通过错误处理接口访问这些功能。图4示出了这种可能性,如同垂直片510中的仪器专用软件所能够的,核心模块(例如流包414)能够通过到程序包418的接口访问错误处理服务。
其他服务可依赖于平台内的硬件。例如,一些测试机型号可能具有闪烁的报警灯,这些灯指示了问题,而有些具有声音报警,有些通过向用户发送电子邮件来发信号报警。不管怎样,向用户报告报警情况可能是每台测试机应该执行的核心服务。因此,报警可以是程序包416内的服务,可以通过到程序包416的接口来访问该服务。为了实际使测试机执行适合于特定测试机平台的动作,程序包416访问平台服务程序包460。在报警例子中,到平台服务程序包460的接口暴露了响应报警的方法。该接口对于每个测试机平台都是相同的。然而,在平台服务460内的具体软件对于不同的测试机平台是不同的。
不管是何种平台,而是依赖于平台硬件上的具体实现,优选地,每台测试机可用的其他服务也包括在核心服务程序包416中。但是,一部分服务可以通过访问包括在平台服务程序包460中的软件来提供。其他这种服务的例子是DSP(数字信号处理),这可以在因平台不同而不同的硬件中实现。
配置是另一种服务的例子,应该对所有测试机它都是可用的,但是在不同平台上要不同地实现。如上所述,测试机应该支持一些类型的动作,而不管具体硬件。然而,具体硬件配置能够影响如何执行这些动作。配置服务确定所安装的具体配置,并提供关于该硬件能够做什么的数据。上面所述的一个例子涉及是否一些仪器安装在测试机中以及这些仪器位于哪些电路板上。执行这种关联的方法可包括在ATE注册表420内或者可以作为配置服务的一部分。
除了知道存在什么仪器,一些测试程序可能需要所安装的仪器的具体性能或具体平台的知识。例如,数字仪器可能以不同的版本售出,其中一种具有更多通道或能够以更高的时钟速率运行。在优选实施例中,配置服务包含获得和提供测试机中具体硬件性能方面的数据的方法。由于这种数据中的一些依赖于具体平台,所以所示出的配置服务是访问平台服务460的核心服务程序包416的一部分。示出了平台服务程序包460,以说明它能够访问垂直片510。垂直片510包含具有定义了接口的软件,其能够提供关于系统中仪器的下层硬件的信息。
图4也示出了包含模式软件470的程序包。模式软件执行使用户可创建信号模式的方法,该种模式的信号在“脉冲”期间施加到待测器件。这种工具在测试领域中是已知的,其执行例如由计算机产生的描述来编译模式文件或将模式文件加载到测试机机体112内的模式存储器中的功能。这些功能依赖于平台硬件的具体配置,并且可依赖于所安装的具体仪器。因此,图4示出了模式软件470由编程工具480访问并且又能访问下层仪器硬件。
独立于仪器的程序包的每个程序包接口,例如接口415或421,图中示出为具有两块。这种表示指出了框架接口和程序包专用接口。系统中的每个程序包通常要执行对于系统中的每个程序包而言是公共的功能。例如,每个程序包可能需要响应例如启动、关闭和复位(reset)命令。尽管每个程序包响应这些命令中的每一个所采取的动作可能是不同的,但在所述实施例中每个程序包都需要接收并响应这样的命令。由程序包执行的其他功能是程序包专用的。所述公共功能是框架接口的一部分。其他功能通过程序包专用接口来暴露。然而,这种接口划分对于本发明是无关紧要的。
在所提出的优选实施例中,程序包专用接口进一步被划分为两块。程序包专用接口的一个部分定义用户可视的“语言(language)”。语言表示在为测试系统编写用户程序中可使用的程序设计构造。例如,提供DSP服务的程序包需要提供某种形式的DSP语言,以便用户能够从测试程序调用DSP功能。有许多暴露语言的方式,但是COM技术的使用提供了一种便捷的机制。也可使用其他便利的软件组件技术,例如CORBA或Java Beans。
本发明优选实施例提供的一个优点是给用户的“外观”是单一无缝并且一致的软件系统。存在由不独立于核心软件的软件对象控制的电路板和仪器,这样的事实对于该软件的用户是透明的。这种概念的一个例子涉及用户编程语言。尽管可能有多个电路板和仪器,但通过一个机制来访问语言,在该机制中,测试机机体112中存在的所有电路板和仪器都可访问。
现在转到图5,示出了随仪器电路板一同提供的软件组件。该组件是垂直片510中的一个的实现。
该组件包含提供接口512的程序包。该接口包含几个块。如同独立于仪器的程序包一样,具有框架接口514,用于提供调用系统中对所有程序包公共的功能的接口。它们执行例如开始、停止及复位功能。
该接口的另一部分,仪器接口516,揭示了对所有仪器公共的方法。可能希望使仪器来响应使它们报告自己的状态或输入预定状态的命令。通过仪器接口516来暴露这种命令。例如,仪器可具有“净”与“脏”状态。“脏”是指仪器处于在测试探针118中的一个处可能影响信号电平的状态。通过该仪器接口暴露的方法可报告该状态,可将仪器转变为净状态,或能够使仪器进入脏状态。
这些仪器还可能必须响应定时信号而采取动作。测试机常包括模式控制电路,该电路在脉冲期间同步事件的执行。通过模式控制接口518暴露了使仪器根据所希望的定时执行功能的方法。
该接口的另一方面使仪器响应提供服务的程序包。例如,所有仪器可能都需要以相同的方式响应报警或错误处理服务。这种交互可通过服务客户接口520来控制。
由于仪器通常执行该仪器独特的功能,每个仪器通常具有仪器专用接口522。如上所述,设备专用接口可揭示能够由用户结合到程序中的用户语言,该程序在包含该仪器的测试机上运行。
包含控制仪器的软件,作为硬件驱动程序560的一部分。硬件驱动程序560类似于现有技术中使用的仪器驱动程序。然而,它被实现为程序包,该程序包能够结合到使用COM技术的系统中。这样,硬件驱动程序使用框架接口并且也使用仪器专用接口。用于仪器的大多数终端用户语言很可能与硬件的操作有关。
然而,垂直片肯定不只包含硬件驱动程序。如上所述,ATE注册表420和配置服务有必要知道安装在系统中的具体电路板和具体仪器之间的相互关系。优选地,在电路板描述器550中包括关于电路板上仪器的信息。
应该注意,在电路板上具有一种以上仪器的情况下,与该电路板相配的垂直片组件可包含硬件驱动程序、显示、自测试文档或仪器专用(而非电路板专用)的其他元素的多个副本。
如上所述,非常希望把具体仪器的所有独特软件都编码到垂直片中。因此,在包含垂直片的软件组件中必须包括向用户呈现特定类型仪器专用的显示画面的软件。由此,所示出的垂直片510包含用户接口程序包538。该程序包具有使其他程序包可访问该显示或用户接口功能的接口。例如,这种用户接口程序包的方法可呈现图形用户接口,该图形用户接口允许用户指定仪器的操作参数。其他方法可呈现调试显示,当调用该调试显示时,其显示仪器的状态。
另外,希望每个仪器执行一些自测试或校准功能。自测试可以在工厂中在首次安装仪器时执行,或者在测试机的使用寿命内的任何时间执行。尽管希望当在测试机上执行自测试时每个仪器都执行自测试,但测试每个仪器所采取的具体动作是不同的。因此,可以具有发起自测试的核心服务。但是,该核心服务必须有调用表示成自测试程序包542的仪器专用软件的接口。
另外,每个仪器都可能在执行一些类型的测试中是有用的。如果被设计成用于辅助用户编程该类型测试的测试元素对用户可用的,这也是一个优点。因此,所示出的垂直片510包含测试元素536。测试元素536例如可以是通用的测试技术,该测试技术特别适于运行其中仪器与示出的软件垂直片相关的测试。
如果在用户可用的文档中对仪器的功能进行描述,这也是所希望的。尽管提供文档,包括文件搜索或提供上下文有关的帮助,可能是一种普遍适用的功能,但提供给用户的信息有时需要是仪器专用的。因此,所示出的垂直片510包含仪器专用文档。所示出的该文档示在具有文档接口532的程序包中。以这种方式,核心服务能够访问仪器专用文档。
已经描述了一个实施例,还可以实现许多替代的实施例或改型。例如,描述了在制造测试系统是在其中安装核心模块和平台模块。这种实现不是对本发明的限制。通常,要对软件增强或维护,因此测试机在制造后还会把新发布的软件安装在其中。此外,不是必须在制造测试机的工厂中安装随测试机提供的软件。可以在向客户交付并设置测试机之后再实际安装软件。
另外,描述了使用C++作为系统内许多对象的编程语言。一些对象可以用Visual Basic或任何其他方便的软件语言来编写。此外,应该理解,这里使用了例如“程序包”和“方法”等术语,当与具体的编程语言关联使用时这些术语可具有具体的含义。然而,使用这些术语并不意味着必须使用利用这些术语来描述构造的编程语言或系统。更一般的,它们被用来描述可识别的软件集合以及它们能够执行的功能。
此外,描述了把仪器专用软件加载到工作站110中。工作站110访问软件的具体机制对本发明是不重要的,并且软件“加载”到工作站上的表示应该宽泛地解释为意味着在工作站上运行的程序可访问的。可以通过将软件复制到工作站的内部存储器中来加载软件。可替换地,可以通过插入某种形式的可移动介质来加载软件,所述介质例如是CD或软盘。另一种可行方法是通过访问互联网来加载软件。
另外,所说明的一般功能被分成核心模块和平台模块。这种划分是基于对硬件是否随平台改变的判断进行的。因此,具体划分对本发明是不重要的,并可随时间改变。
此外,应该理解,各组件是按照便于实现的方式划分成程序包的。具体划分可随实现的不同而不同。特别是,可能某些仪器实际上包含在每个测试系统中。控制这种仪器的软件可以结合到核心或平台模块中,而不影响本发明的优点。
还应该理解,所选择的具体程序包是用来说明软件划分的,而不是对可能存在于测试机中的程序包的穷举性列举。在商品化的测试机中,包括更多程序包。例如可能有记录测试数据的程序包。有些程序包可用于控制定时,例如控制数字测试信号施加到待测器件的速率。有些程序包可提供更复杂的测试管理功能,像控制测试探针118的组,使得每个组建立一个“现场”,在此测试待测器件,从而测试机能够同时测试多个器件。
上面描述了通过在安装仪器时运行初始化程序ATE注册表可知道哪些仪器在测试机上是可用的。一种替代方案是使系统启动程序在工作站110上运行。由于添加到系统中的每个电路板(例如310或312)包含识别机制,启动程序能够确定是否有任何新电路板添加到了系统中。对新电路板的识别能够触发导致在ATE注册表中产生适当条目的动作。然而,后一种机制通常需要用于和每个仪器通信的标准格式。目前优选在仪器安装到测试机中时运行初始化程序,这是因为由于初始化程序能够随仪器打包,它可包含仪器的特定特征。
其他改型可涉及将测试机集成到较大的计算机辅助制造系统或集成半导体设计系统。许多其他改型也是可能的。
因此,本发明应该只由所附权利要求的精神和范围来限定。
权利要求
1.一种制造半导体器件的方法,其包括根据包含如下步骤的方法运行自动测试系统a)使用包含独立于仪器的软件的自动测试系统;b)在较后的时间接收具有仪器专用软件组件的仪器;和c)在所述自动测试系统中安装所述仪器和仪器专用软件组件;d)通过在所述独立于仪器的软件和所述仪器专用软件之间的接口,使用包括所述仪器的所述自动测试系统。
2.如权利要求1所述的方法,其中,所述独立于仪器的软件和仪器专用软件组件包含定义了接口的程序包。
3.如权利要求2所述的方法,其中,所述程序包是用COM技术实现的。
4.如权利要求2所述的方法,其中,所述仪器专用软件组件的接口暴露可包含在测试程序中的语言,并控制所述仪器的功能,所述测试程序运行在所述自动测试系统上。
5.如权利要求2所述的方法,其中,所述仪器专用软件组件包含有关所述仪器的文档,使用所述独立于仪器的软件中的工具把该文档显示给该自动测试系统的用户。
6.如权利要求2所述的方法,其中,所述仪器专用软件组件包含显示程序包,该显示程序包对该自动测试系统的用户呈现与所述仪器相关的显示。
7.如权利要求6所述的方法,其中,所述显示程序包响应由编程和所述独立于仪器的软件内工具通过接口的访问而提供编程和调试显示。
8.如权利要求2所述的方法,其中,所述仪器专用软件组件包含自测试软件,该自测试软件响应通过接口的访问来测试所述仪器。
9.如权利要求2所述的方法,其中,所述仪器专用软件组件包含测试元素,该测试元素用于结合到由该自动测试系统运行的测试作业中,以创建使用所述仪器的测试。
10.如权利要求1所述的方法,其中,所述仪器专用软件组件包含控制所述仪器的软件和向该自动测试系统的用户呈现有关所述仪器控制的显示的软件。
11.如权利要求1所述的方法,其中,所述自动测试系统包括附加的仪器,该附加的各仪器每个都具有包含有接口的仪器专用软件组件,通过所述接口访问所述仪器,每个接口暴露方法使得所述仪器执行动作,并且每个接口暴露公共方法。
12.如权利要求11所述的方法,其中,所述公共方法包括方法用来把所述仪器置于这样的状态在该状态下,它不改变该自动测试系统的输出上的信号电平。
13.如权利要求11所述的方法,其中,所述公共方法包括用于复位所述仪器的方法。
14.如权利要求11所述的方法,其中,所述公共方法包括用于复位所述仪器的方法。
15.如权利要求1所述的方法,其中,使用所述自动测试系统包括运行启动程序,该启动程序创建安装在所述测试机中的仪器的目录。
16.如权利要求15所述的方法,其中,所述仪器位于安装在所述自动测试系统中的电路板上,所述电路板包括识别机制,并且所述启动程序访问所述识别机制。
17.如权利要求1所述的方法,其中,所述仪器设置在电路板上,并且所述仪器专用软件组件包括该电路板上的仪器的描述。
18.一种使用如权利要求1所述的方法来制造半导体器件的方法,其中,使用包括所述仪器的所述自动测试系统,用于在制造期间测试半导体器件,并且根据测试结果选择该制造方法中的后续处理步骤。
19.如权利要求18所述的制造半导体器件的方法,其中,所述后续处理步骤包括根据所述测试结果将半导体器件分类到各性能类别中。
20.如权利要求18所述的制造半导体器件的方法,其中,所述后续处理步骤包括选出通过了测试的半导体器件用于包装。
21.一种提供自动测试环境的方法,其包括a)在第一时间提供包含独立于仪器的软件的自动测试系统;b)在较后的时间提供带有仪器专用软件组件的仪器;由此c)所述仪器和所述仪器专用软件组件能够安装在所述自动测试系统中;以及d)通过在所述独立于仪器的软件和所述仪器专用软件之间的接口,所述仪器能够用作所述自动测试系统的一部分。
22.如权利要求21所述的方法,其中,所述独立于仪器的软件和所述仪器专用软件组件包含定义了接口的程序包。
23.如权利要求22所述的方法,其中,所述程序包是用COM技术实现的。
24.如权利要求22所述的方法,其中,所述仪器专用软件组件的接口暴露可包含在测试程序中的语言,并控制所述仪器的功能,所述测试程序运行在所述自动测试系统上。
25.如权利要求22所述的方法,其中,所述仪器专用软件组件包含有关所述仪器的文档,使用所述独立于仪器的软件内的工具把该文档显示给该自动测试系统的用户。
26.如权利要求22所述的方法,其中,所述仪器专用软件组件包含显示程序包,该显示程序包对该自动测试系统的用户呈现与所述仪器相关的显示。
27.如权利要求26所述的方法,其中,所述显示程序包响应由编程和所述独立于仪器的软件内工具通过接口的访问而提供编程和调试显示。
28.如权利要求21所述的方法,其中,提供独立于仪器的软件包括提供依赖于平台的软件和独立于平台的软件,以及提供在所述依赖于平台的软件和独立于平台的软件之间的预定的接口,所述依赖于平台的软件执行依赖于测试机型号的硬件的操作,所述独立于平台的软件执行与硬件无关的操作,该硬件随产品线中的测试机型号改变而改变。
29.如权利要求22所述的方法,其中,所述仪器专用软件包括在印刷电路板上的仪器的物理实现的标识,并且所述程序包中预定的一些用于为在不同类型印刷电路板上所实现的相同仪器创建仪器专用软件。
全文摘要
一种自动测试系统例如可作为制造过程的一部分用来测试半导体器件。该测试系统使用仪器来产生和测量测试信号。该自动测试系统具有使得在其被制造之后将仪器添加到测试系统上的硬件和软件体系结构。该软件分成仪器专用软件和独立于仪器的软件。软件组件的预定义接口使得能够容易地将仪器集成到测试系统中,并且在测试系统的实际实现时或仪器随产品系列中的测试机改变时能够容易地重用该软件。
文档编号G06F19/00GK1826536SQ200480021044
公开日2006年8月30日 申请日期2004年6月12日 优先权日2003年6月12日
发明者斯蒂芬·J·霍特亚克, 阿兰·L·布利茨, 兰德尔·B·斯廷森 申请人:泰拉丁公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1