根据本发明的实施例涉及用于测试一个或多个被测设备的自动测试设备。根据本发明的其他实施例涉及被测设备。根据本发明的其他实施例涉及测试装置。根据本发明的其他实施例涉及用于操作自动测试设备的方法。根据本发明的其他实施例涉及用于测试被测设备的方法。根据本发明的其他实施例涉及计算机程序。一般来说,根据本发明的实施例涉及通过片上系统测试的生产测试仪控制。
背景技术:
1、自动测试设备(automated test equipment,ate)是用于生产测试和后硅验证的平台,可快速自动执行测试用例并灵活控制被测设备(device under test,dut)的外部测试条件。
2、数字集成电路的生产测试传统上是在ate上通过结构测试完成的。将循环精确输入模式应用于被测设备(dut),并通过比较结果输出模式与预期模式,检测出故障设备。
3、dut的内部结构正在向复杂的片上系统(soc)设备发展,这些设备包含具有由片上网络结构互连的多处理器、存储器和外设单元的许多子系统。即使结构测试的覆盖率达到99.5%,这些soc中仍有数百万个晶体管未经测试,这导致片上系统测试(on-chip-system-test,ocst)的引入。
4、ocst由嵌入式软件在dut的处理器环境中作为实时场景执行,并通过对包括soc的所有子系统的关键用例进行功能性能检查来缩小测试差距。
5、通过测试模式上传ocst/功能测试的传统方法
6、以下,将描述通过模式测试上传ocst/功能测试的传统方法。
7、图4示出了ate系统将功能测试用例(test case,tc)的软件(software,sw)上传到被测设备(dut)的存储器中的常用方法。通过应用于dut上的存储器接口的循环精确模式的序列上传sw。缺点是将sw代码转换为模式序列需要耗费大量时间,而且下载速度受到数字通道的最大时钟速率的限制。
8、总之,图4示出了通过测试模式的ocst/功能测试上传和控制。例如,自动测试设备410可包括与运行ate测试程序424的工作站422耦接的测试仪资源420。例如,作为测试资源一部分的数字通道可用于基于模式的ocst上传和通过数字通道的控制。换句话说,数字通道例如可用于将测试程序(例如ocst测试用例432)上传到被测设备430。为此,可以对ate的数字通道进行编程,以提供控制向被测设备上传(例如ocst测试用例的)程序的模式。此外,额外的测试仪资源如数字通道和/或模拟通道和/或电源线,可用于为被测设备提供信号如输入信号和/或一个或多个电源电压。此外,测试资源420还可用于接收来自被测设备430的一个或多个信号,并评估来自被测设备的这些信号。例如,可以向被测设备提供适当的电源电压,以及自动测试设备和被测设备之间也可以使用各自的测试仪资源进行交互。此外,测试资源可选地还可用于执行测量,从而评估被测设备。
9、总之,自动测试设备可使用适当的测试仪资源执行ocst测试用例的上传,并且自动测试设备和被测设备之间可以使用自动测试设备的测试仪资源进行交互。
10、通过高速io的ocst/功能测试上传和控制
11、以下,将描述通过高速io的ocst/功能测试上传和控制。
12、功能测试用例处理的演变是在本地模式下使用被测设备(dut)的hsio接口(如usb、pcie、eth)。例如,这意味着现在是通过完全支持协议的高速接口上传和控制测试用例软件(sw),而不再是以循环导向的确定性模式。要支持hsio接口,可能需要预先在被测设备(dut)上安装驱动器,如通过jtag上传和激活。
13、图5示出了通过高速io的功能测试上传和控制的示意图。在该构思中,例如可以使用自动测试设备510,其中包括测试仪资源520和工作站522。此外还有被测设备530。例如,ate测试程序可以实现ocst-tc上传(如片上系统测试的测试用例上传)。此外,测试程序还可以实现执行控制。例如,ocst-tc上传和执行控制都可以使用高速输入输出(hsio)来执行,例如通用串行总线接口、“外设部件互连快车”接口(pcie)或经由以太网接口(eth)。因此,典型的基于协议的高速输入输出接口可用于测试用例tc的上传和对测试用例的执行的控制。在这方面,应该注意的是,ocst测试用例532通常是使用(或在)被测设备540(如使用被测设备530的一个或多个处理器)执行的软件。
14、此外,被测设备530可以与测试仪资源520连接,其中,可以使用例如数字通道和/或模拟通道和/或电源线。例如,可以使用用于为dut供电、测试交互和测量的ate控制信号。换句话说,测试仪资源例如可以包括一个或多个设备电源,例如可以为被测设备提供一个或多个电源电压。此外,测试仪资源还可以包括一个或多个数字通道,用于向被测设备提供数字信号和/或接收来自被测设备的数字信号。自动测试设备510例如可以使用一个或多个数字通道与被测设备530进行交互,自动测试设备510还可以可选地使用数字通道进行测量。此外,测试资源520例如可以包括一个或多个模拟通道,这些模拟通道可例如用于向被测设备530提供一个或多个模拟信号和/或接收来自被测设备530的一个或多个模拟信号。此外,一个或多个模拟通道可选地还可用于进行测量例如以评估从被测设备530接收到的信号。
15、总之,参考图5描述了通过高速io的ocst/功能测试上传和控制。
16、图6示出了通过使用单独控制器进行ocst/功能测试的变体的示意图。
17、图6的布置600是自动测试设备610,包括测试仪资源620和工作站622。此外,根据图6所示的测试布置600中还有被测设备630,可在被测设备上执行ocst测试用例632。
18、然而,除了根据图5所示的测试布置500之外,根据图6的测试布置600还包括例如可以是自动测试设备610的一部分的片上系统测试控制器640。片上系统测试控制器640例如可以使用高速输入输出接口hsio(如usb、pcie或eth)耦接到工作站622。例如,工作站622上执行的ate测试程序624可以经由接口(如经由hsio接口)与ocst控制器640通信,以启动、支持或控制ocst-tc上传和/或执行控制。例如,ate测试程序可向ocst控制器640提供ocst测试用例(tc)的表示,并例如可指示ocst控制器640将所述ocst测试用例上传到被测设备640。随后,ocst控制器640例如可将ocst测试用例上传到被测设备630。此外,ate测试程序624可以与ocst控制器通信(如经由hsio接口),以控制测试用例的执行。例如,ate测试程序624与ocst控制器640之间的通信可以是双向的(如双向箭头所示)。此外,ocst控制器640可以被配置为与在被测设备630上执行的ocst测试用例632通信,以控制测试用例的执行。例如,ocst控制器640与ocst测试用例632之间的通信可以是双向的(如双向箭头所示)。
19、此外,测试仪资源620的功能可与前述的测试布置500中的测试仪资源520的功能类似。换句话说,测试仪资源620例如可以包括一个或多个设备电源和一个或多个数字通道和/或模拟通道。因此,测试仪资源620可适于提供用于为dut供电以及测试交互和测量的ate控制信号。
20、因此,可在测试布置600中测试被测设备。总之,图6示出了通过使用单独控制器进行osct/功能测试的变体。
21、此外应注意的是,本节中描述的任何特征、功能和细节都可以可选地用于根据本发明的实施例中(只要它们与根据本发明的实施例不矛盾)。应注意的是,可将这些特征、功能和细节单独或组合地引入到根据本发明的任何实施例中。
22、然而,鉴于传统的方法,期望有一种用于测试被测设备的构思,在片上系统测试功能、片上系统测试的测试开发工作和实施工作之间进行更好的权衡。
技术实现思路
1、根据本发明实施例创建了用于测试一个或多个被测设备的自动测试设备。自动测试设备被配置为从被测设备(或等同于从测试用例)接收请求更新一个或多个测试仪资源的命令(例如以消息的形式)。此外,自动测试设备被配置为响应于被测设备(或等同于测试用例)提供的命令更新一个或多个测试仪资源,并且自动测试设备被配置为向被测设备提供确认信令(或确认信令)(如确认消息),从而发信号通知被测设备请求的测试仪资源更新完成。
2、本发明的该实施例基于这样的发现,使用这种构思可以极大地促进测试用例的开发和测试用例执行。例如,使用这种构思,测试用例的执行可以很容易地与自动测试设备的操作同步,而无需ate测试程序(可在自动测试设备上执行)的特定调整。例如,可以对在被测设备上运行的测试用例进行编程,以提供请求更新一个或多个测试仪资源的命令,在被测设备上运行的测试用例还可以评估确认信令。然而,由于ate对命令的评估可以是“标准化”过程(如对于不同的测试用例可以是相同的),以及由于确认信令可以是对请求更新一个或多个测试仪资源的命令的“标准化”响应,因此自动测试设备提供确认信令可以无需自动测试设备(或在ate上执行的ate测试程序)特定调整以适于当前在被测设备上执行的测试用例。因此,在待在被测设备上执行的测试用例中添加指令以发出请求更新一个或多个测试仪资源的命令时,可以不需要对ate测试程序进行任何特定调整。因此,由于可以完全由测试用例控制一个或多个测试资源的调整(或更新)(而例如ate和在ate上执行的测试程序只是作为“从属”执行由测试用例提供的命令),因此极大促进了测试开发。
3、此外,通过提供确认信令,自动测试设备允许被测设备与测试仪资源的更新同步操作。因此,被测设备可以很容易地处理请求更新一个或多个测试资源的命令与测试仪资源更新的实际完成之间的延迟,这种延迟对于被测设备来说通常是未知的,并且在某些情况下也可能是非确定的。因此,自动测试设备提供确认信令,从而发信号通知被测设备请求的测试仪资源更新完成,使验证工程师无需详细了解自动测试设备的功能,也无需修改自动测试设备测试程序的代码,就能够设计出待在被测设备上执行的可靠的测试用例。因此,这里描述的自动测试设备可以允许集中设计测试用例,还允许在被测设备上可靠和快速地执行测试用例(例如,无需增加不必要的预防性延迟来等待测试仪资源的更新,而是使用确认信令)。
4、在优选实施例中,自动测试设备被配置为接收来自被测设备(或等同于来自测试用例)的参数化消息形式的命令,其中消息的参数描述了测试仪资源的期望设置(如期望的电源电压、期望的时钟频率、期望的信号特性等)。
5、通过为自动测试设备提供评估具有预定义句法以及包含一个或多个描述测试仪资源的期望设置的参数的消息的功能,可以不必专门调整ate测试程序以测试特定的被测设备。相反,ate测试程序提供处理“标准化”参数化消息(如指定要修改的测试仪资源和期望的新设置的遵循预定义句法的参数化信息)的功能就足够了,而设计要在被测设备上执行的测试用例的验证工程师只需要知道可由自动测试设备(如由自动测试设备的ate测试程序)处理的命令的句法,甚至只需要知道生成命令的api函数的句法。因此,在自动测试设备中提供处理参数化消息的功能,可极大地促进测试开发并无需专门调整ate测试程序以测试特定的被测设备。此外,验证工程师还可以快速有效地调整待在被测设备上执行的测试用例以适于改变的测试资源的期望设置。
6、在优选实施例中,自动测试设备被配置为以消息的形式提供确认信令。已经发现,可以通过自动测试设备和被测设备之间的接口有效地传输消息(例如具有预定格式的信息,如包括信息头、标识命令的一个或多个比特位、标识参数的一个或多个比特位、可选的纠错信息和可选的消息终止符)。例如,可以经由自动测试设备和被测设备之间的高速接口和(或hsio接口)有效地执行消息的这种传输。此外还发现,使用与特定接口类型相适应的接口驱动器可以有效地执行消息的传输,如以适合特定接口类型的消息格式。因此,特定接口(如高速接口)既可用于参数化消息的传输,也可用于确认信令的传输,还可用于自动测试设备和被测设备之间的其他数据交换。因此,可以共用该特定接口以用于不同类型的消息的传输,这样就不需要(如用于确认信令的)专用信令线。
7、此外应注意的是,同时使用参数化消息形式的命令和消息形式的确认信令的构思放宽了时序要求,因此就可以使用可由接口驱动器和具有非确定时序行为的接口来处理的(例如参数化)消息。例如,通过让被测设备有机会在进行测试执行之前等待确认信令,(命令消息和确认信令消息二者的)消息传输的轻微延迟不会对被测设备上测试用例的执行产生重大影响,特别是不会危及测试用例的执行与一个或多个测试资源的预期更新之间的同步性。
8、在优选实施例中,自动测试设备被配置为经由(最好是基于协议的)高带宽接口(如经由高速接口;如经由usb接口、或pci接口、或pci-express接口、或pci-express兼容接口、或雷电接口、或以太网接口、或ieee-1394接口、或sata接口、或ieee-1149接口、或ieee-1500接口、或ieee-1687接口)接收来自被测设备(或等同于来自测试用例)的命令(例如,来自被测设备的消息)。可替换的或另外的,自动测试设备被配置为经由(最好是基于协议的)高带宽接口(如经由高速接口;如经由usb接口、或pci接口、或pci-express接口、或pci-express兼容接口、或雷电接口、或以太网接口、或ieee-1394接口、或sata接口、或ieee-1149接口、或ieee-1500接口、或ieee-1687接口)向被测设备提供确认信令(如确认消息)。通过使用这种高带宽接口从被测设备向自动测试设备传输命令和/或从自动测试设备向被测设备传输确认信令,可以将延迟保持在合理的较小范围内,并且可以重复使用上述接口。例如,上述高速接口可重复用于将片上系统测试软件上传到被测设备和/或将结果数据从被测设备下载到自动测试设备。然而,已经发现,在测试用例执行期间,上述高带宽接口通常有足够的带宽可用于从被测设备向自动测试设备传输命令,以及从自动测试设备向被测设备传输确认信令。已经发现,上述接口通常在片上系统测试开始之前和片上系统测试完成之后(如用于传输测试结果)被加载。因此,在片上系统的测试中通常也用于其他目的并且因此对其在自动测试设备侧和被测设备侧都有驱动器可用的高速接口,非常适合命令的传输和确认信令的传输。此外,一些类型的高速(或高带宽)接口甚至允许预留时隙,这样就可以接近实时(或接近时间确定)地将命令从被测设备转发到自动测试设备,和/或将确认信令从自动测试设备转发到被测设备。此外,由于高可用带宽,上述高带宽接口即使在没有预留时隙的情况下也能提供接近实时的传输。
9、在优选实施例中,自动测试设备被配置为响应于被测设备(或等同于测试用例)的命令(如在被测设备上执行的测试用例的控制下),在被测设备(如片上系统)上执行测试用例期间更新一个或多个测试仪资源。然而,已经发现,使用本发明的方法在被测设备上执行测试用例期间更新一个或多个测试仪资源是可能的,不会出现重大问题。例如,测试用例可以发出请求更新一个或多个测试资源的命令,然后可以继续执行对一个或多个测试仪资源的更新不敏感的测试用例例程(并且稍后再检查确认信令的接收),或者可以暂停以等待确认信令的接收。因此,除了提供确认信令外,自动测试设备无需再向被测设备提供任何额外的控制信号以完成测试仪资源的更新。例如,可以避免自动测试设备提供明确的信令或控制信号以在资源更新前中断测试用例执行或在资源更新后开始测试用例执行。因此,通过从自动测试设备向被测设备提供确认信令,可以避免因自动测试设备明确控制测试用例的执行而造成的延迟。特别地,在资源更新期间,测试用例执行可以继续,这有助于减少宝贵的测试时间。此外,可在dut上执行的测试用例的控制下执行等待确认信令,因此无需中断正在dut上执行的测试用例的执行。
10、在优选实施例中,自动测试设备被配置为提供应用编程接口(api)供被测设备上执行的测试用例使用。应用编程接口被配置为提供一个或多个例程(如方法或函数),用于将请求调整(或更新)一个或多个测试仪资源的命令从被测设备(或等同于从测试用例)传输到自动测试设备。可替换的或额外的,应用编程接口被配置为提供一个或多个例程(如方法或函数),用于被测设备和自动测试设备之间的时间同步(如一个或多个用于暂停(如被测设备上执行的测试用例的)程序执行直到接收到指示测试仪资源更新完成的信令的例程)。
11、通过提供供测试用例使用的应用编程接口,自动测试设备可极大地支持测试用例的开发。通过提供一个或多个用于从被测设备向自动测试设备传输请求调整(或更新)一个或多个测试仪资源的命令的例程,验证工程师无需了解自动测试设备的内部结构或有关命令的句法的细节。相反,验证工程师只需将来自应用编程接口的一个或多个例程添加到测试程序中(例如添加到待在dut上执行的测试用例中)就足够了,如果例程文档齐全,这通常很容易做到。此外,可以以这样的方式设计应用编程接口:测试程序开发实际上独立于实际的测试仪硬件,或独立于自动测试设备上的软件的软件修订。这样,验证工程师就拥有了非常有效的工具,而且在其期间更新一个或多个测试仪资源的测试用例的开发非常简单,并且无需处理自动测试设备上运行的测试程序的细节。提供一个或多个用于被测设备和自动测试设备之间的时间同步的例程也是如此。验证工程师可以轻松地将这些例程纳入(待在被测设备上执行的)测试用例,而无需验证工程师具备有关自动测试设备的内部结构或ate测试程序的详细知识。因此,通过提供适当的ate,可以通过简单的方式实现测试用例和测试仪资源的更新之间的同步,其中测试程序开发甚至可以独立于实际的测试仪硬件和/或ate软件的软件修订。这允许了高效的软件开发,同时降低出错风险,提高可移植性。
12、在优选实施例中,自动测试设备包括片上系统测试(ocst)控制器和执行测试程序的测试程序执行器,以及一个或多个测试资源(如一个或多个设备电源,和/或一个或多个模拟或数字信号发生器)。片上系统测试控制器被配置为(如经由高带宽接口)接收来自被测设备(或等同于来自测试用例)的请求更新一个或多个测试仪资源的命令(如以消息的形式),并将命令(如消息)转发给执行测试程序的测试程序执行器。此外,测试程序包括消息处理器,被配置为响应于(转发)命令(如以转发消息的形式),例如在(如根据转发消息中包含的一个或多个参数)解码和/或解释转发消息后,实现(如执行)一个或多个测试仪资源的更新。
13、使用该构思,可以在测试程序执行器中实现对测试仪资源(本文中有时也称为测试资源)进行控制的基本功能,而片上系统测试控制器则提供对片上系统测试的具体支持。例如,测试程序执行器可以按照由测试程序定义的方式对测试仪资源进行控制(其中,测试程序例如可以定义从被测设备接收的用于测试仪资源的更新的命令的处理)。因此,可由ate测试程序定义自动测试设备的基本功能,这样就能以非常适合当前测试场景的方式配置自动测试设备。另一方面,与测试程序执行器相比,片上系统测试控制器可以以更有效的方式提供与片上系统测试相关的特定功能。例如,片上系统测试控制器可有效地(如使用专用硬件支持)实现与片上系统测试相关的高速接口功能。例如,片上系统测试控制器可包括高速输入输出接口的硬件实现,这些接口非常适合与可能是片上系统的被测设备进行通信。片上系统测试控制器通过与被测设备进行高效(以及可能是硬件支持的)通信,放宽了对测试程序执行器的要求,并且例如可以接管与被测设备通信的通信协议的处理。此外,片上系统测试控制器还可支持片上系统测试所需的额外功能,如将测试用例上传到一个或多个被测设备,和/或从一个或多个被测设备下载测试结果,和/或评估测试结果。例如,片上系统测试控制器可极大地支持与被测设备之间的任何基于协议的数据交换,这通常是传统测试仪资源难以处理的。
14、此外,片上系统测试控制器可以很好地接收来自被测设备的请求更新一个或多个测试资源的命令,特别是如果该命令是使用接口技术和/或通信协议传输的,与测试程序执行器相比,片上系统测试控制器可以更好地处理该命令。因此,通过利用片上系统测试控制器的性能来接收请求更新测试仪资源的命令,可以在传输所述命令时使用高带宽通信,并避免使用其他测试仪资源,因为这些资源可能难以实现基于协议的高速通信。例如,片上系统测试控制器可从高速通信协议提取命令,并将命令(例如以其原始形式或转换形式)转发给测试程序执行器,其中应注意的是,片上系统测试控制器通常可通过高数据速率ate内部接口与测试程序执行器相连。因此,不需要“传统的”测试仪资源和测试程序执行器接管通常非常具有挑战性的任务以接收来自被测设备的高速通信,而是依靠片上系统测试控制器作为强大的中介。此外,测试程序执行器通常不费吹灰之力就能接收来自片上系统测试控制器的通信,并且测试程序执行器上运行的测试程序以由ate测试程序可灵活配置的方式评估该转发的命令。换句话说,片上系统测试控制器可以作为转发实例,也可以接管与被测设备通信的协议处理,而测试程序执行器可以在ate测试程序的控制下控制实际的测试仪资源,其中所述ate测试程序可以反过来评估由片上系统测试控制器转发的命令,并将该命令转换为测试仪内部(如与硬件相关)的命令,用于配置自动测试设备的测试仪资源。因此,可以在自动测试设备内实现非常高效的任务分担,从而以资源高效方式处理命令。
15、在优选实施例中,消息处理器被配置为将包含测试仪资源(如电源电压或信号的)的符号引用(如“vcc2”)的命令(如消息)转换为与测试仪硬件相关的测试仪资源调整(如转换为将自动测试设备的(物理)资源通道设置为期望值的指令)。
16、通过使用这种构思,由被测设备上运行的测试用例生成的命令,无需了解自动测试设备的具体硬件,也无需了解任何用于控制测试资源的ate内部命令。相反,被测设备上运行的测试用例可以依靠符号引用,这对验证工程师来说很容易理解。此外,将这些符号引用转换为与测试仪硬件相关的控制命令是由消息处理器以可配置的方式实现的,以使符号引用与物理测试仪资源之间的关联可以例如在由测试仪程序执行器执行的ate测试程序中定义。因此,具有不同实际物理测试仪资源配置的测试仪可通过ate测试程序的一次性调整来调整以适于与给定测试用例一起使用,以使用特定符号引用正确处理给定测试用例。因此,当实际物理测试仪硬件发生变化时,无需重新编写测试用例,甚至无需修改。因此,由ate的测试程序执行器执行的ate测试程序构成了一种物理抽象机制,极大地方便了在不同的自动测试设备上对被测设备的测试。
17、在优选实施例中,消息处理器被配置为生成确认消息,并将生成的确认消息提供给片上系统测试控制器(如在被测设备请求的一个或多个测试仪资源更新完成后)。此外,片上系统测试控制器被配置为响应于消息处理器提供的确认消息,将消息处理器提供的确认消息转发给被测设备,或向被测设备提供确认消息。
18、通过使用该构思,可以在测试程序执行器中生成确认消息,该测试程序执行器通常可以非常接近地物理访问测试仪资源,而且通常还能可靠地确定测试仪资源的更新何时完成。因此,已经发现消息处理器最适合生成确认消息,而片上系统测试控制器最适合转发确认消息,其中确认消息的转发例如可以包括与被测设备通信的协议处理。因此,可以使用消息处理器和片上系统测试控制器之间的典型快速通信,以及片上系统测试控制器启用(或最佳支持)的朝向被测设备的高速通信。因此,在有效利用可用资源的情况下,实现快速传输确认消息的机制。
19、在优选实施例中,自动测试设备被配置为执行测试程序,其中测试程序被配置为初始化自动测试设备的测试资源,以允许被测设备上开始测试程序执行。此外,测试程序被配置为在被测设备的控制下(如在被测设备上执行的一个或多个片上系统测试用例的控制下)实现对测试资源的进一步更新。因此,可以实现ate测试程序与在被测设备上运行的测试用例之间的任务分担。例如在被测设备上还没有运行测试用例时,ate测试程序可以实现最适合被测设备的可靠启动的启动条件。随后,例如在测试用例的上级控制下,可以达到在被测设备的控制下通过更新测试资源而造成的不同测试条件。因此,可由测试用例控制具有挑战性的测试,例如在边缘条件下对被测设备进行的测试。已经发现,这种构思使测试开发变得特别简单和可靠。
20、在优选实施例中,自动测试设备包括片上系统测试控制器。自动测试设备包括一个或多个测试仪资源(如一个或多个设备电源,和/或一个或多个模拟或数字信号发生器)。片上系统测试控制器耦接到一个或多个测试仪资源(如直接耦接;如以绕过测试程序执行器的方式耦接)。此外,片上系统测试控制器被配置为响应于来自被测设备(或等同于来自测试用例)的命令,(如经由数据总线和/或经由一个或多个同步线和/或经由同步总线)向一个或多个测试仪资源提供控制信号,以更新一个或多个测试仪资源。
21、利用该构思,可以响应于来自被测设备的命令非常快速地更新一个或多个测试仪资源。例如,片上系统测试控制器可以适于与被测设备进行非常快速的通信,如使用高速接口(如hsio)。片上系统测试控制器可被配置为处理高速接口的协议,从而使片上系统测试控制器与被测设备之间的快速通信不费吹灰之力。因此,片上系统测试控制器能很好地接收来自被测设备的请求更新一个或多个测试仪资源的命令。此外,通过为片上系统测试控制器提供允许直接控制一个或多个测试仪资源的接口,例如无需测试程序执行器或控制自动测试设备的工作站的参与,片上系统测试控制器可响应于被测设备发出的命令(如通过高速接口),非常快速地更新一个或多个测试仪资源。例如,片上系统测试控制器可直接访问允许配置(或重新配置)一个或多个测试仪资源的接口(如数据总线)。因此,与其他解决方案(如测试程序执行器也参与一个或多个测试仪资源的更新)相比,可以缩短响应于来自被测设备的命令更新一个或多个测试仪资源的时延。
22、在优选实施例中,片上系统测试控制器被配置为将包含测试仪资源(如电源电压或信号)的符号引用(例如“vcc2”)的命令(例如消息)转换为与测试仪硬件相关的测试仪资源调整(例如转换为将自动测试设备的(物理)资源通道设置为期望值的指令)。
23、通过将符号引用转换为测试仪硬件相关的测试仪资源调整,可极大方便验证工程师开发测试程序。例如,设计测试用例的验证工程师只需参考符号引用,而无需了解自动测试设备的具体物理配置。此外,测试用例因此还可在不同配置的自动测试设备上执行(例如无需修改)。因此,使用命令的转换的构思对于测试开发和测试执行具有相当大的优势。此外,还可参考上述关于测试程序执行器中命令转换的说明。
24、在优选实施例中,片上系统测试控制器经由数据总线以及经由同步线或同步总线与一个或多个测试仪资源耦接。片上系统测试控制器被配置为根据(或基于)从被测设备(或等同于从测试用例)接收到的(如为了定义所选测试仪资源的即将到来的特性的)命令的消息参数(如定义新的电压的消息参数),经由数据总线准备(如初始化)所选测试仪资源(如输出电压将被更改的设备电源)的新设置(如新的电压)。此外,片上系统测试控制器被配置为经由同步线或同步总线(如使用同步总线事件或同步总线消息)激活所准备的所选测试仪资源的新设置。利用该构思,片上系统测试控制器可以非常精确地了解测试资源的更新实际上何时准备就绪。虽然根据从被测设备接收到的命令的消息参数经由数据总线传送期望新设置可能无法精确确定测试资源更新实际发生的时间点,但同步线的激活或经由同步总线的数据传输与测试仪资源实际更新的时间之间通常存在非常可良好预测的时序关系。因此,片上系统测试控制器可以高可靠性地生成确认信息,而无需“仅为了安全起见”增加不必要的延迟。因此,该构思允许快速测试执行,并因此有助于降低测试成本。
25、在优选实施例中,片上系统测试控制器被配置为向被测设备提供确认信令(如以确认消息的形式)。因此,可以确保与被测设备上测试用例的执行同步,其中,鉴于片上系统测试控制器有效地使用高速接口的能力,从片上系统测试控制器到被测设备的通信通常特别快。
26、根据本发明的实施例创建了被测设备。被测设备被配置为(如在被测设备上执行的测试用例的控制下)向自动测试设备提供请求更新一个或多个测试仪资源的命令(如以消息的形式)。此外,被测设备被配置为暂停测试用例的执行,直到被测设备接收到指示被测设备请求的测试仪资源更新已完成的确认信令(如确认消息)。
27、该被测设备可以特别高效地执行测试。被测设备(或在被测设备上执行的测试用例)可以控制被测设备的测试环境(例如,为被测设备供电的一个或多个电源电压的设置,和/或被测设备的一个或多个时钟频率的设置,和/或自动测试设备提供给被测设备的输入信号的特性)。此外,通过暂停测试用例的执行直到被测设备接收到指示被测设备请求的测试资源更新已完成的确认信令,可以实现在被测设备上执行的测试用例与一个或多个测试仪资源更新之间的时序同步。例如,被测设备可以等待需要更新一个或多个测试仪资源的测试程序步骤的执行,直到接收到确认信令,这有助于确保测试用例始终在适当的预期测试环境下执行。此外,通过使用确认信令,还可避免“为了安全起见”的不必要延迟。因此,可以快速、高可靠性地执行测试用例(如在收到确认信令后立即继续测试用例执行,而不是使用预防的大固定延迟)。此外,对于验证工程师来说,开发这样的测试用例通常非常容易,因为可以通过包含在待在被测设备上执行的测试用例中的相应命令来实现测试环境的改变,而无需调整在自动测试设备上执行的测试程序。因此,要在dut上执行的测试用例的开发和调试都非常简单可靠。
28、在优选实施例中,被测设备是片上系统。被测设备被配置为执行测试用例(如执行用于测试被测设备的测试过程的程序)。此外,被测设备被配置为在测试用例的控制下向修改的测试设备提供命令。因此,通过具有请求更新一个或多个测试仪资源(如参数更改)的可能性,还具有评估指示测试仪资源的更新已完成的信令的可能性,,测试用例对测试环境的调整具有非常可靠的控制。
29、因此,测试用例本身可以控制测试环境(如被测设备的电源电压,或自动测试设备提供给被测设备的一个或多个信号的物理参数)。这样就可以进行非常彻底的测试,这种测试在很大程度上受测试用例的(上级)控制,因此可以由设计测试用例的验证工程师有效地进行定义。
30、在优选实施例中,被测设备被配置为以参数化消息的形式提供命令,其中消息的参数描述了测试仪资源的期望设置(如期望的电源电压、期望的时钟频率、期望的信号特性或类似)。已经发现,使用参数化消息形式的命令,验证工程师可以很容易地传递对自动测试设备的具体要求。此外还发现,参数化命令通常使测试用例底层的程序代码具有很好的可读性。此外,还提到了通过使用参数化消息形式的命令所带来的上述优势。
31、在优选实施例中,被测设备被配置为以消息的形式接收确认信令。已经发现,包括一个或多个高速接口的被测设备非常适合接收信息,因为这些被测设备通常包括可以处理消息的通信接口驱动器(其中如这些消息可以包括消息头、消息数据、可选的纠错信息和可选的消息终止符)。此外还发现,被测设备上运行的软件通常可以处理消息,例如,被测设备上运行的操作系统支持处理消息,或者使用循环等待接收消息。此外,使用有限状态机通常也能很容易地对消息进行评估,只需稍加努力即可在dut上实现。
32、在优选实施例中,被测设备被配置为经由(优选地基于协议的)高带宽接口,如经由高速接口(如经由usb接口、或pci接口、或pci-express接口、或pci-express兼容接口、或雷电接口、或以太网接口、或ieee-1394接口、或sata接口、或ieee-1149接口或ieee-1500接口或ieee-1687接口)向自动测试设备提供命令(如向自动测试设备提供消息)。可替换地或另外地,被测设备被配置为经由(优选地基于协议的)高带宽接口(如经由高速接口;如经由usb接口、或pci接口、或pciexpress接口,或pciexpress兼容接口,或雷电接口,或以太网接口,或ieee-1394接口,或sata接口,或ieee-1149接口,或ieee-1500接口,或ieee-1687接口)接收(如来自自动测试设备的)确认信令(如确认消息)。
33、已经发现,使用这种高速接口(或高带宽接口)非常适合可能包含一个或多个这些片上接口以及可能包含用于一个或多个这些接口的驱动器的多个被测设备。例如,在片上系统测试期间,上述接口可重复用于多种用途,例如从自动测试设备向被测设备上传测试用例,和/或从被测设备向自动测试设备下载测试结果,和/或接口本身的测试。因此,可以轻松使用高速接口用于向自动测试设备传输命令,以及用于接收来自自动测试设备的确认信令,其中,使用这种高速接口允许低时延。
34、在优选实施例中,被测设备被配置为使用(如自动测试设备提供的软件库的)一个或多个库例程(如可以通过自动测试设备提供的应用编程接口启用这些例程的使用),以提供命令和/或评估确认信令。被测设备使用库例程有助于提供命令和/或评估确认信令,并使验证工程师更容易开发适当的测试程序。例如,可以由自动测试设备的制造商提供库例程,因此库例程可以很好地适应自动测试设备。例如,设计测试用例的验证工程师无需详细了解自动测试设备的内部结构和/或用于消息的传输或确认信令的传输的协议。相反,设计待在被测设备上执行的测试用例的验证工程师只需使用应用编程接口即可,例如由自动测试设备提供该接口(如作为自动测试设备软件的一部分)。因此,验证工程师可以可靠地、轻松地开发测试程序。
35、根据本发明的实施例创建了测试装置。测试装置包括如上所述的自动测试设备和如上所述的被测设备。测试装置与上述自动测试设备和被测设备基于相同的考虑。
36、根据本发明的另一个实施例创建了用于操作自动测试设备的方法。方法包括从被测设备(或等同于从测试用例)接收请求更新一个或多个测试资源的命令(例如以消息的形式)。此外,方法还包括响应于由被测设备提供(或等同于来自测试用例)的命令,更新一个或多个测试资源。此外,方法还包括向被测设备提供确认信令(例如确认消息),从而发信号通知被测设备请求的测试资源更新已完成。方法与上述自动测试设备基于相同的考虑。此外,方法还可以可选地由本文讨论的有关自动测试设备的任何特征、功能和细节进行增补。方法可以可选地由既可以单独使用也可以组合使用的这些特征、功能和细节进行增补。
37、根据本发明的另一个实施例创建了用于测试被测设备的方法。方法包括在被测设备上运行的测试用例的控制下,从被测设备(或等同于从测试用例)向自动测试设备提供请求更新一个或多个测试仪资源的命令(如以消息的形式)(如在被测设备上执行的测试用例的控制下)。方法包括(如在测试用例的控制下)暂停测试用例的执行,直到被测设备接收到(以及如被测试用例检测到)指示被测设备请求的测试仪资源更新已完成的确认信令(如确认消息)。此外,方法还包括响应于由被测设备(或等同于由测试用例)提供的命令,更新一个或多个测试资源。此外,方法还包括向被测设备提供确认信令(如确认消息),从而发信号通知被测设备请求的测试仪资源更新已完成。此外,方法还包括在被测设备检测到确认信令后继续测试用例的执行。
38、该方法实现了上述讨论的自动测试设备与上述讨论的被测设备之间的交互。因此,方法基于相同的考虑,并具有与自动测试设备和被测设备相同的优点。此外,方法还可以可选地由既可以单独使用也可以组合使用的本文讨论的有关自动测试设备和被测设备的任何特征、功能和细节进行增补。
39、根据本发明的另一个实施例,创建了用于执行本文所讨论方法的计算机程序。
40、根据本发明的另一个实施例,创建了用于在测试中测试一个或多个设备的自动测试设备。自动测试设备被配置为接收来自测试用例的请求更新一个或多个测试资源的命令(如以消息的形式)。自动测试设备被配置为响应于测试用例提供的命令,更新一个或多个测试资源。此外,自动测试设备被配置为向测试用例提供确认信令(例如确认消息),从而发信号通知测试用例请求的测试仪资源更新已完成。该自动测试设备与前面讨论的自动测试设备基于类似的考虑。不过应注意的是,自动测试设备通常被配置为接收来自测试用例的命令,其中测试用例通常在被测设备上执行(但也可以以分布式方式执行,如在自动测试设备和被测设备之间分布式执行)。此外应注意的是,也可以可选地通过本文中关于自动测试设备接收来自被测设备的命令所讨论的任何特征、功能和细节对自动测试进行增补。例如,接收来自测试用例的命令可以代替接收来自被测设备的命令。自动测试设备可以通过单独或组合使用的这些特征、功能和细节(其中例如,在适当情况下,测试用例可以代替dut)进行增补。
41、根据本发明的另一个实施例,创建了用于操作自动测试设备的方法。方法包括接收来自测试用例的请求更新一个或多个测试资源的命令(如以消息的形式)。方法包括响应于测试用例提供的命令,更新一个或多个测试资源。此外,方法还包括向测试用例提供确认信令(如确认消息),从而发信号通知测试用例请求的测试仪资源更新已完成。该方法与前述的用于操作自动测试设备的方法基于相同的考虑,其中命令由测试用例提供。方法可以可选地由本文中同样关于相应的自动测试设备所讨论的任何特征、功能和细节进行增补。方法可由这些单独或组合的特征进行增补(例如,在适当情况下,测试用例可代替dut)。
42、此外,本发明的实施例还创建了相应的计算机程序。
43、根据本发明的实施例创建了用于测试被测设备的自动测试设备。自动测试设备包括可由被测设备(或等同于由如可在被测设备上执行的测试用例)控制的触发线(如硬件触发线,如gpo-触发-线)。自动测试设备被配置为响应于被测设备(或等同于可在被测设备上执行的测试用例)对触发线的激活,更新一个或多个测试仪资源(本文有时也称为测试资源)(例如以改变自动测试设备提供给被测设备的一个或多个电源电压,或改变自动测试设备提供给被测设备的一个或多个模拟或数字信号的一个或多个信号特性)。
44、本发明的实施例基于以下构思:通过在自动测试设备中提供允许被测设备能够触发一个或多个测试仪资源的更新的触发线,从而在被测设备(例如可以是片上系统)的控制下,以高时序精度执行测试。因此,被测设备可以以极少的工作量对测试环境产生影响,但时序精度很高。例如,本发明的自动测试设备通过让被测设备访问触发一个或多个测试仪资源的更新的触发线,为被测设备提供了改变自动测试设备(或更准确地,一个或多个测试资源)的设置的可能性,而无需设备例如使用基于协议的接口发送命令。因此,被测设备可以通过简单激活(或去激活)单个输出引脚(如通用输出引脚或任何其他输出引脚)或单个输入/输出引脚来实现(或触发)一个或多个测试仪资源的更新,这通常只需极少的工作量并具有极高的时序精度。
45、例如,使用这种构思,可以是片上系统的被测设备可能只需要单条机器指令(或极少量的机器指令)来激活或去激活输出(或更准确地,单个输出引脚或单个输入/输出引脚),从而触发一个或多个测试资源的更新(如通过所述输出引脚或输入/输出引脚上的边沿)。这种可以与触发线耦接的输出的激活(或去激活)可以在很短的时间内完成,并且例如无需使用任何复杂的驱动器或通信协议。这种方式可以避免(或绕过)操作基于协议的高速接口所需的驱动器可能造成的延迟或时序不确定性。
46、此外,使用上述触发线还可以避免自动测试设备的额外延迟,因为仅激活触发线(例如触发线上的上升沿或下降沿)通常不需要在自动测试设备侧进行复杂的协议处理或命令转换,从而可以避免工作量和延迟。相反,触发线,可以是专用触发线,可以直接作用于测试资源,从而最大限度地减少延迟和布置的复杂性。因此,所述触发线上的一个简单的下降沿或上升沿即可引起测试仪资源更新。
47、总之,为被测设备提供对上述触发线的访问,可以在反应时间、实施难度和易用性之间实现很好的折中。
48、在优选实施例中,自动测试设备被配置为使得:触发线的激活(如触发线上的简单边沿或过渡)绕过执行测试程序的测试程序执行器(如执行ate测试程序的自动测试设备的测试程序执行器),直接触发一个或多个测试资源的更新。通过绕过测试程序执行器,可以避免不必要的延迟,而且测试仪资源(如ate电源、模拟通道模块或数字通道模块)可由被测设备直接触发。此外,ate测试程序的执行也不会因触发线的激活而中断,因此测试程序执行器可以不间断地执行其活动(如评估被测设备提供的结果数据),这有助于缩短测试时间。此外,还可避免测试程序执行器的操作的中断,中断可能导致(如当测试程序执行器负责从被测设备获取结果数据时)数据丢失。
49、在优选实施例中,自动测试设备包括一个或多个测试仪资源(如一个或多个设备电源,和/或一个或多个数字信号模块或信号源,和/或一个或多个模拟信号模块或信号源,和/或一个或多个混合信号模块)。此外,一个或多个测试仪资源(也称为测试资源)经由接口耦接到测试程序执行器,从而可以在测试程序(如在例如由自动测试设备的测试程序执行器执行的ate测试程序的控制下)的控制下,对一个或多个测试资源的(如电源电压的、如数字模式的、如数字波形等的)一个或多个特性进行编程。此外,一个或多个测试仪资源耦接到可由被测设备(或等同于测试用例,但测试用例例如可在被测设备上执行)控制的触发线。此外,一个或多个测试仪资源被配置为响应于被测设备(或等同于被测设备上执行的测试用例)对触发线的激活,在测试程序的控制下以预编程的方式更新信号特性(如更新到一个值)。
50、在该构思中,测试程序执行器保持对实际参数的控制,一个或多个测试仪资源被设置为这些参数。因此,测试程序执行器和被测设备之间可以分担责任,其中测试程序执行器负责对一个或多个测试资源的特性进行编程,还负责对一个或多个测试仪资源的设置进行预编程,这些应响应于触发信号的激活而被接管,而被测设备只需在(如由在dut上执行的测试用例决定的)适当的时间激活触发信号。因此,被测设备(通常是智能被测设备,如片上系统)只需接管一小部分功能(触发将一个或多个测试仪资源的信号特性更新到测试程序执行器预编程的值),这使得被测设备与自动测试设备之间的通信非常简单(只需激活或去激活提供触发信号的被测设备的单个输出即可)。另一方面,自动测试设备的测试程序执行器通常包括被测设备所需的关于一个或多个测试资源的更新的知识,并且优选地还应能与被测设备上测试用例的执行进行一定的时序协调。然而,自动测试设备的测试程序执行器与被测设备上测试用例的执行之间通常会有这种“粗略”的时序同步,因为测试程序执行器通常会控制测试用例到被测设备的上传,并与被测设备通信以接收来自被测设备的测试结果信息。因此,测试程序执行器通常知道被测设备的状态,因此也知道被测设备下一步需要对一个或多个测试资源进行哪些更新,这样测试程序执行器就可以轻松地对一个或多个测试仪资源进行预编程,并响应于被测设备随后对触发线的激活,对一个或多个测试资源的一个或多个参数进行更新。因此,这里提到的构思显然是高效的,因为在提供极高时序精度的同时也促进被测设备与自动测试设备之间的通信。
51、在优选实施例中,自动测试设备包括测试程序执行器,被配置为对一个或多个测试仪资源进行预编程,以预定义一个或多个测试仪资源对被测设备(或等同于如在被测设备上执行的测试用例)激活触发线的响应(如信号特性变化到新参数值)。通过在ate测试程序的控制下,预定义一个或多个测试仪资源对被测设备激活触发线的响应,可以使被测设备和自动测试设备之间的通信非常简单,因此,被测设备仅激活触发信号就足以引起一个或多个测试仪资源的明确响应,其中所述响应由测试程序执行器(如在ate测试程序的控制下)预定义。
52、在优选实施例中,自动测试设备(如自动测试设备的测试程序执行器)被配置为根据测试程序(如由ate的测试程序执行器执行的ate测试程序)中提供的一个或多个指令(如定义用于预编程的期望参数的指令)预编程一个或多个测试仪资源,以预定义一个或多个测试仪资源对被测设备(或等同于可在被测设备上执行的测试用例)激活触发线的响应(如信号特性改变到新参数值)。通过使用测试程序(如ate测试程序)中提供的指令定义一个或多个测试仪资源的预编程,可以通过ate侧测试程序的适当开发(无论如何至少应与被测设备中测试用例的执行粗略地时间同步),以可编程的方式准备一个或多个测试仪资源的适当更新。另一方面,从被测设备到自动测试设备的用于测试仪资源更新的参数的传递是不必要的(以及可以省略)。
53、在优选实施例中,自动测试设备(如自动测试设备的测试程序执行器)被配置为接收来自被测设备(或者等同于来自例如可以在被测设备上执行的测试用例)的命令(如以消息的形式),该命令定义了一个或多个用于更新一个或多个测试仪资源的参数(其中所述更新例如不是由定义参数的命令触发,而是由(随后的)触发线的激活触发)。此外,自动测试设备(如自动测试设备的测试程序执行器)被配置为根据从被测设备(或等同于从例如可在被测设备上执行的测试用例)接收的命令(例如根据定义了一个或多个用于更新的参数的命令)对一个或多个测试仪资源进行预编程,以便预定义一个或多个测试仪资源对被测设备(或等同于被测设备上执行的测试用例)激活触发线的响应(如信号特性改变到新参数值)。
54、通过使用该构思,被测设备自身可以向自动测试设备发信号通知下一步需要一个或多个测试仪资源的一个或多个参数的哪些更新。然而,可以在宽松的时序要求下进行从被测设备到自动测试设备的这种信令,因为一个或多个测试仪资源的实际更新时间是由被测设备激活触发线决定的,而触发线的激活可以以非常精确时间的方式完成(如上所述)。使用这种构思,自动测试设备(或自动测试设备的测试程序执行器)不再需要知道被测设备下一步需要更新一个或多个测试仪资源的哪个参数。因此,在被测设备上测试用例执行与在ate的测试程序执行器上ate测试程序的执行之间无需同步。此外,验证工程师不仅可以在待在被测设备上执行的测试用例中定义更新一个或多个测试仪资源应发生的时间,还可以定义在更新中一个或多个测试仪资源应被设置成的一个或多个参数。因此,验证工程师无需既修改待在被测设备上执行的测试用例又修改ate测试程序以定义测试仪资源的适当更新。由于使用命令(如以消息的形式)转发一个或多个测试仪资源的期望新参数时,验证工程师不再需要调整ate测试程序,因此,开发测试用例就容易多了,并且出错率也更低了。
55、因此,至少在测试环境的调整(更新)方面,测试用例的开发基本上独立于使用该构思的ate测试程序的调整。此外,通过将定义用于一个或多个测试仪资源的更新的一个或多个参数的命令和被测设备实际激活触发信号之间进行区分,非时间关键部分“命令”(定义一个或多个测试资源的即将更新的一个或多个参数的命令)与实际触发所述更新(后者通常是非常时间关键的过程)之间也产生了分离。因此,可以使用高速接口传输通常包含大量数据的命令,例如该接口可以是基于协议的、非实时的(或并非理想实时的),而触发信号可以通过简单激活被测设备的单个输出来生成,这可以以非常时间精确的方式完成。
56、在优选实施例中,一个或多个测试仪资源包括触发机制,该触发机制被配置为响应于被测设备(或等同于可在被测设备上执行的测试用例)激活触发线,更新(如由各测试仪资源提供给被测设备的信号的)信号特性(如提供给被测设备的信号电压,或提供给被测设备的时钟信号的频率)。通过为一个或多个测试仪资源提供这样的触发机制,可以实现非常快的反应时间,其中可以提前预编程期望新值(响应于触发信号的激活,测试资源应切换到该值),这使得预编程是非时间关键的。相反,一旦触发线激活(由被测设备或测试用例提供)后,测试资源可迅速切换到一个或多个新的信号参数(已预编程)的使用,其中,对于更新的实际执行,测试仪资源只需接收来自被测设备的触发信号(如通过触发线)。因此,对期望新值(响应于触发线激活而应使用的)的非时间关键预编程可与触发线的时间关键激活分离。因此,可以实现极短的响应时间,其中,对更新一个或多个测试资源的实际触发无需再向一个或多个测试仪资源及时传输期望新参数。
57、在优选实施例中,自动测试设备包括片上系统测试控制器、测试程序执行器以及一个或多个测试资源。在这种情况下,触发线是从自动测试设备的被测设备接口绕过片上系统测试控制器和测试程序执行器、直接延伸到一个或多个测试仪资源(如设备电源、信号发生器模块、通道模块等)的硬件线。
58、使用该方法,可以以最小的时延触发一个或多个测试仪资源的更新,其中触发一个或多个测试仪资源的更新也不会对片上系统测试控制器或测试程序执行器造成任何额外的计算要求。因此,可以避免片上系统测试控制器或测试程序执行器的功能的中断,同时可以非常快速地更新一个或多个测试仪资源。
59、在优选实施例中,一个或多个测试仪资源包括以下一项或多项:设备电源;信号发生器模块和/或通道模块。已经发现,这类测试仪资源通常非常适合快速更新一个或多个参数,并能显著确定被测设备的测试环境。因此,已经发现,在被测设备的直接控制下,直接触发更新此类测试仪资源的一个或多个信号参数是非常有利的。
60、在优选实施例中,一个或多个测试仪资源通过接口耦接到测试程序执行器。因此,测试程序执行器可以初始化所述一个或多个测试仪资源(如甚至在被测设备上执行测试用例之前)。此外,提供将一个或多个测试仪资源与测试程序执行器耦接的接口,从而使测试程序执行器为一个或多个测试仪资源预编程期望更新(如在ate测试程序的控制下)。此外,通过提供测试仪资源和测试程序执行器之间的接口,还可以通过该接口完全控制测试仪资源。总之,在一个或多个测试仪资源和测试程序执行器之间设置接口,以及在一个或多个测试仪资源和被测设备接口之间直接延伸的触发线,似乎都是有利的。
61、在优选实施例中,一个或多个测试仪资源与测试程序执行器物理分离(如不同的印刷电路板或不同的可交换模块)(以及优选地也与ocst控制器物理分离)。
62、利用这种物理分离和优选的模块化构思,可以灵活调整自动测试设备以适于具体的测试需求。此外,通过将不同的功能分离到物理上分离的组件中,可以将信号完整性的失真保持在合理的小范围内。此外应注意的是,测试程序执行器通常适于控制多个显著不同的测试仪资源(如一个或多个设备电源、一个或多个模拟通道模块和一个或多个数字通道模块),其中测试仪资源的数量通常因不同的应用而异。因此,强烈建议使用一个耦接到多个不同的测试仪资源(如一个或多个设备电源和一个或多个通道模块,例如,模拟通道模块和/或数字通道模块)的测试程序执行器。在该系统配置中,由于测试程序执行器可能会同时参与与多个不同测试仪资源相关的任务并因此可能会有显著时延,所以使用一条或多条从被测设备接口绕过测试程序执行器直接延伸到一个或多个测试仪资源的触发线是特别有效的。
63、根据本发明的实施例创建了被测设备。被测设备被配置为经由专用触发线向自动测试设备提供触发信号,从而触发一个或多个测试资源的更新(其中,被测设备如可能受测试用例的控制)。通过为被测设备提供利用触发线的激活直接触发一个或多个测试仪设备资源的更新的能力,可以最大限度地减少实现资源更新的时延,并以较小的工作量实现资源更新。例如,在该构思中,可以在被测设备的控制下触发一个或多个测试资源的更新,并且只需很小的软件和硬件工作量即可触发资源更新,因为被测设备只需改变专用触发线的状态即可。然而,被测设备无需使用基于协议的通信等,因为这种通信可能需要复杂的驱动器,而且还可能经常经受时延和缺乏实时能力。因此,可在被测设备上执行的测试用例对测试环境的控制程度非常高,时延最小,而且不需要设备驱动器开销。
64、在优选实施例中,被测设备被配置为在被测设备(如使用一个或多个可编程处理器设备和/或使用一个或多个微处理器内核)执行的测试用例的控制下提供触发信号。使用这种方法,能够执行测试用例的“智能”被测设备可以在被测设备执行的测试用例的控制下触发一个或多个测试仪资源的更新。然而,为了触发一个或多个测试仪资源的更新,所述测试用例可能只需要一个非常简单的命令,如改变被测设备的单个输出引脚的状态的命令,该单个输出引脚耦接到触发线(输出触发信号)。因此,被测设备对测试资源的更新具有非常直接的低时延影响。
65、在优选实施例中,被测设备被配置为(如经由不同于专用触发线的公共接口)向自动测试设备提供定义用于一个或多个测试资源的更新的一个或多个参数的命令(例如,以启动一个或多个测试仪资源对触发线激活的响应的预定义)。此外,被测设备被配置为(例如向自动测试设备;例如直接向测试仪资源)提供触发信号(如经由专用触发线),从而使用一个或多个参数触发一个或多个测试仪资源的更新。
66、通过使用这种两步机制,被测设备可以使用适当的接口(如基于协议的高速接口)向自动测试设备传输通常不是特别时间关键的命令,该命令定义了用于一个或多个测试资源的更新的一个或多个参数。例如,可在一个或多个测试仪资源的实际更新提前很久,由被测设备将定义了用于一个或多个测试仪资源的更新的一个或多个参数的命令发送到自动测试设备。例如,甚至可以在一个或多个测试仪资源的上一次更新的触发后,将定义了用于一个或多个测试仪资源的更新的一个或多个参数的命令立即传输到自动测试设备,这样,使用基于协议的接口向自动测试设备传输命令和自动测试设备处理所述命令(其中,自动测试设备对命令的处理例如可以包括测试程序执行器对命令的解析和测试程序执行器对自动测试设备的一个或多个测试仪资源的预编程)都有足够的时间。此外,通过提供(或激活)触发信号(例如经由专用触发线),可以对一个或多个测试仪资源的更新实现实际的时间关键触发,这有助于保持较低的时延,并避免自动测试设备的测试程序执行器的(高优先级)中断。因此,将向自动测试设备提供定义了一个或多个用于一个或多个测试仪资源的(即将)更新的一个或多个参数的命令与一个或多个测试仪资源的更新的实际触发分离的构思,在效率和时延之间提供了很好的折衷。
67、根据本发明的实施例创建了测试装置,其中测试装置包括前述的自动测试设备和前述的被测设备。
68、根据本发明的实施例创建了一种用于操作自动测试设备的方法,自动测试设备包括可由被测设备(或等同于由例如可在被测设备上执行的测试用例)控制的触发线(如硬件触发线;如gpo-触发线)。该方法包括响应于被测设备(或等同于由例如可在被测设备上执行的测试用例)激活触发线,更新一个或多个测试仪资源(如改变自动测试设备提供给被测设备的一个或多个电源电压,或改变自动测试设备提供给被测设备的一个或多个模拟或数字信号的一个或多个信号特性)。
69、用于操作自动测试设备的该方法与上述自动测试设备基于相似的考虑。此外应注意的是,用于操作自动测试设备的方法可以可选性地增补本文(也关于自动测试设备)所讨论的任何特征、功能和细节,既可以单独使用,也可以组合使用。
70、根据本发明的另一个实施例创建了用于测试被测设备的方法。该方法包括使用测试程序执行器将一个或多个测试仪资源预编程(例如在自动测试设备的控制下)到一个或多个各自的参数值,这些参数值将响应于触发信号而被接管。该方法包括提供直接从被测设备到一个或多个测试仪资源(如绕过测试程序执行器)的触发信号,使一个或多个测试仪资源接管预编程的一个或多个各自的参数值。
71、与上述自动测试设备和上述被测设备一样,用于测试被测设备的该方法也基于类似的考虑。因此,该方法可以可选地增补本文也关于自动测试设备和被测设备所讨论的任何特征、功能和细节。该方法可以可选地增补单独或组合使用的这些特征、功能和细节。
72、根据本发明的另一个实施例创建了计算机程序,当计算机程序在一台或多台计算机和/或一台或多台微处理器和/或一台或多台微控制器上运行时用于执行所述方法。
73、根据本发明的另一个实施例创建了用于测试被测设备的自动测试设备。自动测试设备包括可由(例如可在被测设备上执行的,但可替换地,也可部分在被测设备上执行以及部分在自动测试设备上执行的)测试用例控制的触发线(如硬件触发线;如gpo-触发线)。自动测试设备被配置为响应于测试用例激活触发线,更新一个或多个测试资源(如改变自动测试设备提供给被测设备的一个或多个电源电压,或改变自动测试设备提供给被测设备的一个或多个模拟或数字信号的一个或多个信号特性)。
74、本实施例基于与上述自动测试设备类似的考虑,其中应注意的是,在本实施例中,触发线可由测试用例控制(这样,测试用例就扮演了被测设备的角色)(例如,与测试用例如何在被测设备和自动测试设备之间分布的问题无关)。
75、此外应注意的是,该自动测试设备可以可选性地增补本文也关于其他自动测试设备所讨论的任何特征、功能和细节。自动测试设备可以增补单独或组合使用的这些特征、功能和细节。
76、根据本发明的另一个实施例涉及一种用于操作自动测试设备的方法,该自动测试设备包括可由(例如可在被测设备上执行的,或者也可在被测设备和自动测试设备之间分布的)测试用例控制的触发线(如硬件触发线;如gpo-触发线)。该方法包括响应于(例如可在被测设备上执行的,也可以是分布式的)测试用例激活触发线,更新一个或多个测试资源(如改变自动测试设备提供给被测设备的一个或多个电源电压,或改变自动测试设备提供给被测设备的一个或多个模拟或数字信号的一个或多个信号特性)。
77、用于操作自动测试设备的该方法与本文所述的用于操作自动测试设备的其他方法基于类似的考虑。但应注意的是,测试用例接管了被测设备的功能。此外,应该注意的是,用于操作自动测试设备的方法可以可选地增补本文关于自动测试设备和被测设备所公开的任何特征、功能和细节。该方法可以可选地增补单独或组合使用的这些特征、功能和细节。
78、根据本发明的实施例创建了一种用于测试被测设备的方法。方法包括使用测试程序执行器将一个或多个测试仪资源预编程(如在自动测试设备的控制下)到一个或多个各自的参数值,这些参数值将响应于触发信号而被接管。此外,方法还包括直接从测试用例到一个或多个测试仪资源(例如绕过测试程序执行器)提供触发信号,使一个或多个测试仪资源接管预编程的一个或多个各自的参数值。
79、用于测试被测设备的该方法与上述用于测试被测设备的方法类似,其中测试用例扮演被测设备的角色。此外,应该注意的是,方法可以可选地增补本文关于自动测试设备和被测设备所讨论的任何特征、功能和细节。本方法可以可选地增补单独或组合使用的这些特征。
80、根据本发明的另一个实施例,创建了计算机程序。当计算机程序在一台或多台计算机和/或一台或多台微处理器和/或一台或多台微控制器上运行时用于执行此处所述的方法。
81、根据本发明的实施例创建了用于测试一个或多个被测设备的自动测试设备。自动测试设备被配置为接收来自被测设备的请求测量如提供给被测设备的电源电压的,如提供给被测设备的电流的,如被测设备提供的信号的信号特性的,如向被测设备提供的信号的信号特性的,如提供给被测设备的时钟信号的时钟频率的,如被测设备环境中的如温度、湿度、气压、电场或磁场等环境参数的)一个或多个物理量(的命令(如以消息的形式)。此外,自动测试设备被配置为响应于被测设备提供的命令,执行或启动对一个或多个物理量的测量。此外,自动测试设备被配置为向被测设备提供测量结果信令(如确认消息),从而发信号通知被测设备请求的测量结果。
82、利用该构思,由于测量结果是使用测量结果信令提供给被测设备(或等同于测试用例)的,因此被测设备或等同于在被测设备上执行的测试用例可控制一个或多个测量的执行,并可进一步处理测量结果。因此,被测设备可以在很大程度上控制测试的执行,包括为表征被测设备的功能或性能而执行的测量。因此,设计测试的验证工程师可以将程序指令添加到要在被测设备上执行的测试用例中,从而提供请求自动测试设备测量一个或多个物理量的一个或多个命令,还可以将指令放置到要在被测设备上执行的测试用例中,用于评估一个或多个测量结果(自动测试设备使用测量结果信令将这些结果提供给被测设备)。因此,测试的大部分步骤可由被测设备(或在被测设备上执行的测试用例)控制,这意味着验证工程师可专注于开发要在被测设备上执行的测试用例,而无需专注于开发待在自动测试设备上执行的ate测试程序。例如,利用这里公开的构思,验证工程师可以无需调整要在自动测试设备上执行的测试程序以在执行测试用例的某一点执行测量。相反,ate测试程序可以仅定义对被测设备提供的命令的标准响应(如以预定义格式),其中所述标准响应例如可以包括对物理测试仪资源的适当控制以执行测量以及提供测量结果信令。因此,被测设备(或等同于在被测设备上执行的测试用例)可根据在被测设备上执行测试用例的进度,在适当的时候请求测量一个或多个物理量,以及被测设备(或在被测设备上执行的测试用例)可对测量结果进行协议和/或评估。例如,被测设备甚至可以利用测量结果来决定是否继续执行测试,例如,可以根据测量结果改变测试用例的执行。
83、此外,通过向被测设备提供测量结果信令,从而发信号通知被测设备请求的测量结果,自动测试设备还可以在自动测试设备和被测设备的操作之间实现简单的时间同步,因为被测设备可以确保在收到来自自动测试设备的测量结果信令时测量已经完成(并且被测设备也知道,在被测设备请求测量一个或多个物理量之前,不会执行测量)。因此,本文公开的机制可确保“在正确的时间”进行测量,即在被测设备执行测试用例的正确点进行测量。
84、总之,本文描述的构思极大方便了验证工程师的工作,因为对测量的控制转移到了测试用例上,并且还在被测设备和测量的执行之间提供了良好的时序同步,并进一步为被测设备(或在被测设备上执行的测试用例)提供了使用测量结果控制测试的机会。
85、在优选实施例中,自动测试设备被配置为接收来自被测设备的参数化消息形式的命令,其中消息的参数描述了要测量的物理量(如电源电压、时钟频率、信号特性、环境特性或类似)。然而,已经发现,参数化消息的使用能让验证工程师更容易地开发测试(例如开发待在被测设备上执行的测试用例)。特别地,已经发现参数化消息通常特别容易被验证工程师读懂,而且参数化消息的使用非常适合可以测量不同物理量的应用。例如,消息的参数可以指定要测量的物理量,参数还可以(可选地)提供表征测量的额外的信息(如可以定义是否应使用滤波或求平均,或可以定义测量分辨率,或可以定义自动测试设备的测量资源的一个或多个参数的任何其他设置)。因此,通过使用这种参数化消息,被测设备可以更详细地定义测量要求。
86、此外应注意的是,消息通常非常适合从被测设备传输到自动测试设备,因为被测设备例如可以包括一个或多个基于协议的接口,这些接口非常适合消息(其中例如消息可以包括消息头、消息有效载荷,以及可选的错误检测信息或错误纠正信息和消息终止符)的传递。不过也发现,可以很容易地通过这种接口传输参数化消息,其中在简单的情况下,可以使用ascii字符串对消息进行编码。总之已经发现,从被测设备接收参数化消息形式的命令这一构思很容易实现,并且可以对测量进行精确定义。
87、在优选实施例中,自动测试设备被配置为以消息形式提供测量结果信令。通过以消息形式提供测量结果信令,通常可以很容易地将测量结果从自动测试设备传递到被测设备。例如,被测设备通常包括一个或多个能够接收(和解码)消息的接口(如高速接口)。特别地,通常可以从消息中以计算高效方式提取结果信息,例如使用解析功能。因此,以消息形式提供测量结果信令非常适合将测量结果高效地传递给被测设备。
88、在优选实施例中,自动测试设备被配置为经由(优选地基于协议的)高带宽接口(如经由高速接口;如经由usb接口或pci接口或pci-express接口,或pci-express兼容接口,或雷电接口,或以太网接口,或ieee-1394接口,或sata接口,或ieee-1149接口或ieee-1500接口、ieee-1687接口)接收来自被测设备的命令(例如,来自被测设备的消息)。可选地或另外地,自动测试设备被配置为经由(优选地基于协议的)高带宽接口(如经由高速接口;如经由usb接口或pci接口或pci-express接口、或pci-express兼容接口、或雷电接口、或以太网接口、或ieee-1394接口、或sata接口或ieee-1149接口或ieee-1500接口、或ieee-1687接口)向被测设备提供测量结果信令(如测量结果消息)。
89、已经发现,这种高带宽接口特别适合用于从被测设备向自动测试设备传输命令,以及从自动测试设备向被测设备传输测量结果信令,因为所述高速接口通常具有足够小的时延和足够高的带宽。此外,典型的被测设备固有地包括一个或多个高带宽接口,其中至少一个所述高带宽接口通常在测试被测设备时使用,例如用于将测试用例上传到被测设备和/或将测试结果从被测设备下载到自动测试设备。此外,在许多情况下,自动测试设备还测试至少一个高带宽接口。因此已经发现,可以有效地重复使用在测试布置中无论如何都要提供的自动测试设备和被测设备之间进行通信的功能,以便将请求测量一个或多个物理量的命令从被测设备发送到自动测试设备,和/或将测量结果信令从自动测试设备发送到被测设备。特别地,已经发现,典型的高带宽接口具有足够的数据传输能力,除了支持被测设备的测试的其他数据(例如测试用例数据或测试结果数据)外,还能传输请求测量一个或多个物理量的命令和/或测量结果信令。此外,通过使用从被测设备向自动测试设备发送请求测量一个或多个物理量的命令,以及还使用测量结果信令的构思,向被测设备发信号通知测量结果通常会使测量的时序变得不重要,从而允许使用可能基于协议和/或为不同目的共享的高带宽接口,以及因此可能会带来一些时序不确定性。总之,已经发现,使用高带宽接口来请求测量和/或接收测量结果信令,可在实施工作量和时序精度之间取得良好的折中效果。
90、在优选实施例中,自动测试设备被配置为,响应于被测设备提供的命令(如在被测设备执行的测试用例的控制下),在被测设备(如片上系统)上执行测试用例的期间执行一个或多个物理量的测量。通过由被测设备请求测量物理量的构思,可以在与测试用例的执行保持良好同步的情况下执行测量,其中测试用例在被测设备上的执行例如可以是非确定性的。换句话说,根据本发明的一个方面,在自动测试设备接收到来自被测设备的请求测量一个或多个物理量的命令之前,自动测试设备(或在自动测试设备上执行的测试程序)可能不太了解何时应该执行测量。然而,根据本构思,无需中断在被测设备上执行测试用例来进行测量。相反,甚至可以在测试用例的控制下根据测试用例的当前执行状态,在测量带来期望结果时进行测量。例如,在被测设备上执行的测试用例可以在进入测试用例的某一阶段之前发出请求测量一个或多个物理量的命令,该阶段需要测量(或监控)一个或多个物理量,如电流消耗或晶粒温度等。总之,通过允许被测设备请求测量一个或多个物理量,可以在与被测设备上测试用例的执行保持同步的情况下进行测量,而无需中断测试用例,并且通过向被测设备提供测量结果信令,测试用例也能清楚地知道测量完成的时间,以及测试用例何时可以进行另一个处理步骤。因此,上述构思可以实现特别快速的测试,因为不再需要中断测试用例的执行,以实现自动测试设备与在被测设备上执行的测试用例之间的时序同步。
91、在优选实施例中,自动测试设备被配置为提供应用编程接口(api),供在被测设备上执行的测试用例使用。应用编程接口被配置为提供用于将请求测量一个或多个物理量的命令从被测设备传输到自动测试设备的一个或多个例程(如方法或函数)和/或例程头(如方法头或函数头)。另外,应用编程接口被配置为提供用于被测设备与自动测试设备之间的时间同步的一个或多个例程(如方法或函数)或例程头(如方法头或函数头)(如用于暂停(如在被测设备上执行的测试用例的)程序执行直到接收到指示测量结果的信号的一个或多个例程或例程头)。
92、通过提供应用编程接口,可以大大方便验证工程师开发测试用例。例如,开发测试用例的验证工程师只需了解应用编程接口提供(或代表)的方法或功能的语法已足够,而无需详细了解自动测试设备的内部结构。因此,通过提供应用编程接口(如在自动测试设备的软件库中),自动测试设备的制造商可以利用其对自动测试设备的细节的丰富知识来提供应用编程接口,这反过来又允许设计测试用例的验证工程师使用简单(以及可能参数化的)的函数调用或方法调用来访问自动测试设备提供的测量功能。此外,应用编程接口还允许设计测试用例的验证工程师使用一种或多种方法或函数,该一种或多种方法或函数支持被测设备与自动测试设备之间的时间同步,如等待测量结果信令的函数或方法。这样的函数还可将测量结果作为返回值提供给测试用例,因此也可支持测量与测试用例的执行之间的同步。此外,这种功能还有助于在进一步执行测试用例时使用测量结果。
93、在这种情况下,应用编程接口的方法或功能可以对提供请求测量一个或多个物理量的命令进行处理,也可以对测量结果信令的评估(如解析和/或转换)进行处理,从而以测试用例易于处理的形式(如数字表示)提供测量结果。
94、在优选实施例中,自动测试设备包括片上系统测试(osct)控制器和执行测试程序的测试程序执行器,以及一个或多个测试仪资源(如一个或多个设备电源,和/或一个或多个模拟或数字信号发生器,和/或一个或多个测量资源)。片上系统测试控制器被配置为(如经由高带宽接口)接收来自被测设备的请求测量一个或多个物理量的命令(如以消息的形式),并将命令(如消息)转发给执行测试程序的测试程序执行器。此外,测试程序还包括消息处理器,被配置为响应于(转发的)命令(如以转发消息的形式),例如在解码和/或解释转发消息之后(以及例如根据转发消息中包含的一个或多个参数),实现(如执行)对一个或多个物理量的测量。
95、利用这一构思,ocst例如可以处理被测设备与自动测试设备之间的通信,其中片上系统测试控制器可以例如具有专门适于与被测设备进行高速通信的专用处理手段(如专用硬件)。此外,片上系统测试控制器还可包括支持如片上系统的测试的额外功能,例如将测试程序(或测试用例)上传到被测设备以及从被测设备下载测试结果的功能。此外,片上系统测试控制器还可包括允许对被测设备提供的测试结果进行评估的额外功能。优选地,片上系统测试控制器可被配置为能有效处理与被测设备的实时(但通常是非确定性或基于协议的)通信,以及因此非常适合与片上系统交换数据。另一方面,测试程序执行器可被配置为执行ate测试程序,并且可以例如与测试仪资源如一个或多个设备电源,和/或一个或多个数字通道模块,和/或一个或多个模拟通道模块和/或一个或多个测量仪器(其中不一定需要所有这些组件,并且其中测量仪器可以例如是模拟通道模块或数字通道模块或设备电源的一部分)紧密链接(或直接通信)。
96、例如,测试程序执行器可以包括测试程序,该测试程序可以解释请求测量一个或多个物理量的命令,并可以使适当的测量资源或测量仪器进行所请求的测量。例如,(在测试程序执行器上执行的)ate测试程序中负责解释和执行命令的部分可以独立于测试用例的程序代码,并且因此对于不同的测试用例可以保持相同。因此,利用该构思,片上系统测试控制器和测试程序执行器之间可以有效地共享功能。例如,片上系统测试控制器可用于(可能)应当实时或高速执行的非确定性任务,而测试程序执行器则可接管对其他测试仪资源(如设备电源、模拟通道模块、数字通道模块和测量资源)的更紧密地控制,并可以执行通常可自由配置的ate测试程序,该ate测试程序例如可定义被测设备的测试环境(如一个或多个电源电压、一个或多个时钟信号、一个或多个预定义输入信号等)。因此,可以以高效的方式执行测试,其中片上系统测试控制器可以充当被测设备和测试程序执行器之间的中介。
97、在优选实施例中,(可作为测试程序的一部分的)消息处理器被配置为将包含测试资源(如电源电压或信号)的符号引用(如“vcc2”)的命令(如消息)转换为与测试仪硬件相关的测量指令(如转换为实现对电压或温度或信号特性的测量的指令)。
98、通过使用这种利用符号引用的命令转换,工程师可以在他的测试程序中使用易于理解的符号引用,而消息处理器则将该命令转换为测试仪硬件相关的测量指令。因此,对测试用例进行编程的验证工程师无需了解自动测试设备的内部结构,就可以高效地使用符号引用,其中值得注意的是,使用符号引用通常比指定自动测试设备的特定硬件资源更不容易出错。相反,可以调整消息处理器(例如,由非常了解自动测试设备内部物理细节的工程师进行调整),以便在当前测试仪配置中,在符号引用和与所述符号引用相关的物理测试仪硬件之间进行分配(如同时考虑自动测试设备的物理资源和ate物理资源与被测设备的特定引脚(或焊盘)的连接)。
99、使用这种构思,测试用例可以在不同的测试仪硬件上使用,因为它使用包括符号引用的命令,而只有消息处理器应适应特定的硬件(如适于可用的测试仪资源和ate硬件与被测设备引脚之间的连接)。因此,测试用例开发可以达到很高的效率。
100、在优选实施例中,消息处理器被配置为生成测量结果消息,并将生成的测量结果消息提供给片上系统测试控制器(如在执行测量之后)。此外,片上系统测试控制器被配置为响应消息处理器提供的测量结果消息,将消息处理器提供的测量结果消息转发给被测设备,或向被测设备提供测量结果消息。利用这种构思,可以利用片上系统测试控制器与被测设备进行高效通信(如使用基于协议的高速接口)的能力,而测量结果消息则由消息处理器生成(或实现),该消息处理器通常可更直接地访问测试仪资源(如测量资源)。因此,测量结果可以非常有效的方式传递给被测设备(或在被测设备上执行的测试用例),其中片上系统测试控制器既可以以不变的方式转发测量结果,也可以应用一些消息转换来调整测量结果消息(如以适应正在使用的特定高速接口的要求)。这样,就可以实现非常资源高效的概念。
101、在优选实施例中,自动测试设备(如自动测试设备的测试程序执行器)被配置为执行测试程序。测试程序被配置为初始化自动测试设备的测试仪资源,以允许在被测设备上开始程序执行。此外,测试程序还被配置为在被测设备的控制下(如在被测设备上执行的一个或多个测试用例的控制下)对测试资源进行进一步更新。可选地,测试程序被配置为在被测设备的控制下(如在被测设备上执行的一个或多个ocst测试用例的控制下)进行一个或多个测量。
102、利用这种构思,测试程序(即如可在自动测试设备的测试程序执行器上执行的ate测试程序)可以接管多种功能。测试程序可以预配置自动测试设备的测试仪资源,以允许可靠地启动被测设备,例如通过设置电源来提供电源电压,使被测设备能够非常可靠地操作。因此,在自动测试设备的测试程序执行器上执行的测试程序可通过提供可靠的条件,支持将测试用例安全上传到被测设备。
103、此外,测试程序例如可以控制(或至少支持)被测设备的初始化,以及可选地也上传初始程序代码,这样就例如可以使用高速接口在被测设备和片上系统测试控制器之间建立通信。通过在被测设备的控制下进一步更新测试资源,例如可以改变被测设备的测试环境,使其比初始测试环境更具“挑战性”,从而在“压力”条件下执行测试用例。通过允许在被测设备的控制下进一步更新测试资源,测试可以主要由被测设备上执行的测试用例来定义,这为测试开发带来了显著优势。此外,在被测设备的控制下更新测试资源(进而更新测试环境),可以很好地协调被测设备上测试用例的执行和测试环境的变化,而无需定义测试的验证工程师修改ate测试程序。此外,通过有选择地为被测设备(或测试用例)提供对测试环境更新和自动测试设备的资源执行的测量的控制,待被被测设备执行的测试用例可以控制被测设备的全面测试所需的全部功能的很大一部分。因此,测试的设计变得特别容易。此外,ate侧测试程序和待在被测设备上执行的测试用例之间还能有效共享功能。
104、在优选实施例中,自动测试设备包括片上系统测试控制器。自动测试设备包括一个或多个测试仪资源,例如一个或多个设备电源,和/或一个或多个模拟或数字信号发生器和/或一个或多个测量资源。片上系统测试控制器耦接(如直接耦接;如以绕过测试程序执行器的方式耦接)到一个或多个测试仪资源。此外,片上系统测试控制器被配置为响应于来自被测设备的命令,向一个或多个测试仪资源提供控制信号(如经由数据总线和/或经由一条或多条同步线和/或经由同步总线),以实现对一个或多个物理量的测量。
105、使用这种配置,其中片上系统控制器可直接访问(绕过测试程序执行器)测试仪资源,可以特别快速地进行测量,且不会干扰由测试程序执行器执行的ate测试程序的执行。利用这种构思,可以利用片上系统测试控制器的功能,以高效的方式(如使用专用硬件)与被测设备进行基于协议的高速通信。通过为片上系统测试控制器提供直接控制一个或多个测试仪资源(如一个或多个测量资源)的能力,可以避免测试程序执行器造成的延迟。此外,还可避免因请求测量一个或多个物理量的命令而干扰测试程序执行器的操作,从而使测试程序执行器能更有效地处理其评估测试结果的任务。这样,可以实现测试的更快、更资源高效地执行。
106、在优选实施例中,片上系统测试控制器被配置为将包含(或对)测试仪资源(如电源电压或信号)的符号引用(如“vcc2”)的命令(如消息)转换为与测试仪硬件相关的测量指令(如转换为通过自动测试设备的测量资源实现对一个或多个物理量进行测量的指令)。
107、提供片上系统测试控制器具有将包含符号引用的命令转换为与测试仪硬件相关的测量指令的功能,从而允许待在被测设备上执行的测试用例的与测试仪硬件不可知性开发。通过在从被测设备传输到自动测试设备的命令中使用符号引用,测试用例可用于自动测试设备的不同硬件配置,其中,从符号引用到测试仪(ate)的实际物理资源的映射可针对当前测试仪配置定义一次,并可作为配置信息提供给片上系统测试控制器。因此,无需调整测试用例即可轻松实现使用具有不同硬件配置的自动测试设备。
108、在优选实施例中,片上系统测试控制器经由数据总线和同步线或同步总线与一个或多个测试仪资源耦接。此外,片上系统测试控制器被配置为根据从被测设备接收到的命令的消息参数(如定义待测物理量的消息参数)(如为了定义所选测试仪资源或即将到来的测量的即将到来的特性),经由数据总线准备(如初始化)对所选物理量(如电源电压或电源电流或环境温度)的测量(如电压测量或电流测量或温度测量)。此外,片上系统测试控制器被配置为通过同步总线或同步线(如使用同步总线事件或同步总线消息)触发待测物理量的测量。
109、利用这一构思,片上系统测试控制器可以执行具有高时序精度的测量。通过对所选物理量的测量进行预配置,可以准备好测量资源的设置,使测量资源能够对测量的触发做出快速反应。因此,片上系统测试控制器可首先根据消息参数对测量资源进行初始化(例如,其中消息参数可确定应测量哪种电压和/或在测量中应使用哪种滤波或求平均),然后由片上系统测试控制器以高时序精度触发实际测量。因此,被测设备甚至可以请求特定的测量时序,其中片上系统测试控制器可首先对测量进行预配置(如通过将相应的测量资源设置为适当的状态或配置),然后以期望的时序触发测量资源。因此,可以进行非常精确的测量,以满足测试用例中定义的要求。
110、在优选实施例中,片上系统测试控制器被配置为向被测设备提供测量结果信令(如以测量结果消息的形式)。通过在片上系统测试控制器内实现向被测设备提供测量结果信令的功能,可实现高效率和短时延。
111、根据本发明的实施例创建了被测设备。被测设备被配置为(例如在被测设备上执行的测试用例的控制下)向自动测试设备提供请求测量一个或多个物理量的命令(如以消息的形式)。此外,被测设备被配置为(例如通过暂停测试用例的执行,直到被测设备接收到被测设备请求的测量结果)等待接收指示被测设备请求的测量结果的测量结果信令(如测量结果消息)。这样,被测设备就能有效控制一个或多个物理量的测量,并使测试用例的执行与此测量时间同步。通过等待指示被测设备请求的测量结果的测量结果信令,被测设备可以避免在实际获得测量结果之前继续测试执行(例如这可能会伪造测试结果)。因此,即使在被测设备上测试用例的执行和自动测试设备之间可能没有完美的时序同步,这样的过程也允许在被测设备的控制下获得可靠的测量结果。例如,在被测设备接收到测量结果信令之前,被测设备可以保持测量所进行的条件,从而确保测量结果是有效的。
112、因此,即使被测设备和自动测试设备之间不存在完美的时序同步机制(对于许多不具备严格时序确定性的片上系统而言,可能就是如此),也能进行可靠的测量。
113、在优选实施例中,被测设备是片上系统。被测设备被配置为执行(如执行测试被测设备的测试的)测试用例。此外,被测设备被配置为在测试用例的控制下向自动测试设备提供命令。已经发现,本文公开的构思特别适用于能例如使用一个或多个内部处理器或处理器内核执行测试用例的片上系统的测试。特别地,已经发现测试用例非常适合向自动测试设备提供命令,因为测试用例通常可以访问一个或多个高速接口,例如使用底层接口驱动器。
114、在优选实施例中,被测设备被配置为以参数化消息的形式提供命令,其中消息的参数描述了一个或多个待测物理量,例如电源电压、电源电流、时钟频率、信号特性、环境参数或类似参数。
115、通过使用参数化消息,可以实现上述优点。特别地,使用参数化消息可以使验证工程师更容易编写测试程序,因为验证工程师可以使用一个或多个参数来描述哪些物理量要被测量,还可以可选地描述执行测量时要应用的测量设置(如测量范围、求平均操作、滤波操作等)。此外,通过使用(例如可以定义要测量的量(如被测设备的某个引脚上的某个电压,或流入被测设备的某个引脚的某个电流等的)参数,可以将命令集保持在较小的规模,而实际测量的量可以用参数来描述。这样就可以得到非常“可读”的代码,从而实现被测设备与自动测试设备之间的高效通信(其中,例如片上系统测试控制器或测试程序执行器可以对命令及其中描述的参数进行评估)。此外应注意的是,消息的使用特别适合经由(如基于协议的)高速接口进行传输,因为许多高速接口通常都非常适合消息的传输(其中,消息例如可包括消息头、可包括消息标识和参数的消息数据有效载荷、以及可选的错误检测信息或纠错信息以及可选的消息终止符)。这种定义明确的消息通常可以很容易地经由高速接口进行传输,其中被测设备上可能存在的相应接口驱动器可以支持消息传输。因此,提供了非常高效的构思。
116、在优选实施例中,被测设备被配置为接收消息形式的测量结果信号。如前所述,消息非常适合通过(如基于协议的)高速接口的通信,这样就可以通过接口快速通信,该接口也可以共享给其他功能(例如将测试用例上传到被测设备和/或将测试结果从被测设备下载到自动测试设备)。
117、通过对消息形式的测量结果信号进行评估,例如,可以通过对传入被测设备的信息进行解析来检测消息。由于使用的是通常以消息头表征的消息,因此发信号通知测量结果的消息可以很容易地与其他传入信息区分开。因此,已经发现接收以消息形式的测量结果信令是非常有利的,因为只需稍加努力就能实现消息解析。
118、在优选实施例中,被测设备被配置为经由(最好是基于协议的)高带宽接口(如经由高速接口;如经由usb接口、或pci接口、或pci-express接口、或pci-express兼容接口、或雷电接口、或以太网接口、或ieee-1394接口、或sata接口,或ieee-1149接口,或ieee-1500接口,或ieee-1687接口等)向自动测试设备提供命令(如向自动测试设备提供消息)。可替换地或另外地,被测设备被配置为经由(最好是基于协议的)高带宽接口(如经由高速接口;如经由usb接口、或pci接口、或pci-express接口、或pci-express兼容接口、或雷电接口、或以太网接口、或ieee-1394接口、或sata接口,或ieee-1149接口,或ieee-1500接口,或ieee-1687接口等)(例如从自动测试设备)接收测量结果信令(如测量结果消息)。
119、使用这种接口带来上述优点。特别地,经由这种高带宽接口向自动测试设备提供命令和/或经由这种高带宽接口接收测量结果信令,可以实现非常快速的通信,此外,还可以重复使用所述高带宽接口,该接口通常还用于其他目的,如向被测设备更新测试用例或向自动测试设备提供测试结果数据。此外,高带宽接口通常有足够的带宽来传输与测量相关的信息(如请求测量的命令和测量结果信令)以及其他有效载荷。此外,高带宽接口通常能够混合不同类型的有效载荷(如在其他数据通信过程中插入短消息)。因此,可以有效利用被测设备的可用资源。此外,接口的高带宽特性通常还会带来相对较低的时延,这对触发测量非常有利,并有助于缩短测试时间。
120、在优选实施例中,被测设备被配置为使用一个或多个库例程(如自动测试设备提供的软件库的库例程)(例如,可以通过自动测试设备提供的应用编程接口启用这些例程的使用),以便提供命令和/或评估测量结果信令。
121、使用一个或多个库例程来提供命令和/或评估测量结果信令,不仅带来上述优点,还能极大地便于待在被测设备上执行的测试用例的开发。此外,还能降低出错风险。
122、在优选实施例中,被测设备被配置为根据测量结果信令指示的测量结果继续测试用例执行(如通过根据测量结果的选择性分支)。
123、因此,测试用例的执行可以取决于实际测量结果,这例如有助于识别被测设备的最大额定值。例如,如果某个测试用例导致电流消耗过大或被测设备过热,则可在降低处理负载的情况下执行后续测试,以避免被测设备承受过大压力。因此,被测设备或等同于在被测设备上执行的测试用例可以有效地考虑测量结果,并相应地调整其测试用例执行。
124、根据本发明的实施例创建了测试装置。测试装置包括前面所讨论的自动测试设备和前面所讨论的被测设备。该测试装置基于与上述自动测试设备和被测设备相同的考虑。测试装置还可以可选地增补本文关于自动测试设备和被测设备所披露的任何特征、功能和细节。测试装置可以可选地增补单独或组合使用的这些特征、功能或细节。
125、根据本发明的实施例创建了用于操作自动测试设备的方法。该方法包括接收来自被测设备的请求测量一个或多个物理量的命令(如以消息的形式)。该方法还包括响应于被测设备提供的命令,执行或启动对一个或多个物理量的测量。此外,该方法还包括向被测设备提供测量结果信令(如测量结果消息),从而发信号通知被测设备请求的测量结果。该方法与上述自动测试设备基于相同的考虑。此外,本方法还可以可选地增补本文关于自动测试设备所公开的任何特征、功能和细节。该方法可选地可以增补单独或组合使用的这些特征、功能和细节。
126、根据本发明的实施例创建了一种用于测试被测设备的方法。该方法包括在被测设备上运行的测试用例的控制下,从被测设备向自动测试设备提供请求测量一个或多个物理量(例如在被测设备上执行的测试用例的控制下)的命令(如以消息的形式)。此外,该方法还包括暂停(如在测试用例的控制下)测试用例的执行,直到被测设备接收到(以及,例如测试用例检测到)指示被测设备请求的测量结果的测量结果信令(如测量结果信号或测量结果消息)。此外,该方法还包括响应被测设备提供的命令,执行一个或多个物理量的测量。此外,该方法还包括向被测设备提供测量结果信令(如测量结果消息),从而发信号通知被测设备请求的测量结果。此外,该方法还包括响应于被测设备对测量结果信令的接收,继续测试用例的执行。
127、本方法基于与上述自动测试设备和上述被测设备相同的考虑。本方法可以可选地由本文所披露的有关自动测试设备和被测设备的任何特征、功能和细节进行补充。该方法可选地可以增补单独或组合使用的这些特征、功能和细节。
128、根据本发明的另一个实施例创建了用于执行这种方法的计算机程序。
129、根据本发明的另一个实施例创建了用于测试一个或多个被测设备的自动测试设备。自动测试设备被配置为接收来自测试用例的命令(如以消息的形式),该命令请求测量一个或多个物理量(如提供给被测设备的电源电压的物理量,如提供给被测设备的电流的物理量,如被测设备提供的信号的信号特性的物理量,如提供给被测设备的信号的信号特性的物理量,如提供给被测设备的时钟信号的时钟频率的物理量,如被测设备环境中的温度、湿度、气压、电场或磁场等环境参数的物理量)。此外,自动测试设备被配置为响应于测试用例提供的命令,执行或启动对一个或多个物理量的测量。此外,自动测试设备被配置为向测试用例提供测量结果信令(如确认消息),从而向测试用例发信号通知测量结果。
130、这种自动测试设备与上述自动测试设备基于相同的考虑,其中测试用例接管了自动测试设备的角色。不过需注意的是,测试用例最好在被测设备上执行,但也可以在被测设备和自动测试设备之间分布。此外,该自动测试设备还可以可选地增补本文公开的关于其他自动测试设备的任何特征、功能和细节。自动测试设备可以增补单独或组合使用的这些特征、功能和细节。
131、根据本发明的另一个实施例创建了一种用于操作自动测试设备的方法。该方法包括接收来自测试用例(如可以在被测设备上执行,但也可以在被测设备和自动测试设备之间分布)的请求测量一个或多个物理量的命令(如以消息的形式)。该方法还包括响应于测试用例提供的命令,执行或启动对一个或多个物理量的测量。此外,该方法还包括向测试用例提供测量结果信令(如测量结果消息),从而发信号通知测试用例请求的测量结果。
132、该方法与上述方法基于相同的考虑,其中测试用例代替了被测设备。该方法还可以可选地增补单独或组合使用的任何特征、功能和细节。
133、根据本发明的另一个实施例是创建相应的计算机程序。
1.一种用于测试被测设备(242;260;1930)的自动测试设备(240;280;1910),
2.根据权利要求1所述的自动测试设备(240;280;1910),
3.根据权利要求1或2所述的自动测试设备(240;280;1910),
4.根据权利要求1至3之一所述的自动测试设备(240;280;1910),
5.根据权利要求1至4之一所述的自动测试设备(240;280;1910),
6.根据权利要求1至5之一所述的自动测试设备(240;280;1910),
7.根据权利要求1至5之一所述的自动测试设备(240;280;1910),
8.根据权利要求1至7之一所述的自动测试设备(240;280;1910),
9.根据权利要求1至8之一所述的自动测试设备(240;280;1910),
10.根据权利要求1至9之一所述的自动测试设备(240;280;1910),
11.根据权利要求1至10之一所述的自动测试设备(240;280;1910),
12.一种被测设备(242;260;1930),
13.根据权利要求12所述的被测设备(242;260;1930),
14.根据权利要求12至13之一所述的被测设备(242;260;1930),
15.一种测试装备(1900),
16.一种用于操作自动测试设备(240;280;1910)的方法,自动测试设备包括能够受被测设备(242;260;1930)控制的触发线(250;295;1990),
17.一种用于测试被测设备(242;260;1930)的方法,
18.一种计算机程序,当计算机程序在一台或多台计算机和/或一台或多台微处理器和/或一台或多台微控制器上运行时,用于执行权利要求16或权利要求17的方法。
19.一种用于测试被测设备的自动测试设备(240;280;1920),
20.一种用于操作自动测试设备(240;280;1990)的方法,自动测试设备包括能够受测试用例(262;19940)控制的触发线(250;295;1990),
21.一种用于测试被测设备(242;260;1930)的方法,
22.一种计算机程序,当计算机程序在一台或多台计算机和/或一台或多台微处理器和/或一台或多台微控制器上运行时,用于执行权利要求20或权利要求21所述的方法。