CN104797948A - 半导体器件测试环境中的调试 - Google Patents
半导体器件测试环境中的调试 Download PDFInfo
- Publication number
- CN104797948A CN104797948A CN201380060064.4A CN201380060064A CN104797948A CN 104797948 A CN104797948 A CN 104797948A CN 201380060064 A CN201380060064 A CN 201380060064A CN 104797948 A CN104797948 A CN 104797948A
- Authority
- CN
- China
- Prior art keywords
- test
- instrument
- dut
- tester
- order
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
- G06F11/2733—Test interface between tester and unit under test
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31705—Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31707—Test strategies
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/319—Tester hardware, i.e. output processing circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2294—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Tests Of Electronic Circuits (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
Abstract
本发明公开了测试系统,所述测试系统使得能够使用本机客户代码对被测器件(DUT)进行实时交互式调试。转换模块可将对应于用户输入的调试命令实时格式化为能够由测试仪中的仪器识别的格式。所述用户输入可为以高级编程语言编写的测试程序或测试指令。所述转换模块可将所述用户的调试命令转换为较低级测试仪器命令,所述测试仪可基于所述较低级测试仪器命令来将控制信号施加到所述DUT中的处理器,以测试所述DUT的子系统。所述测试的结果可被提供到所述转换模块,所述转换模块可实时格式化另一个调试命令或将所述结果的指示提供给所述用户。所述转换模块可因此使得用户能够以交互方式进行单步调试并且修改本机客户代码,以调试DUT。
Description
背景技术
1.技术领域
本发明整体涉及电子系统(诸如片上系统半导体器件)的测试。
2.相关领域
已知自动测试设备(通常称为“测试仪”)用于测试许多类型的电子被测器件(DUT)。例如,已知用于测试印刷电路板和半导体器件的测试仪。
在某些情况下,在电子器件制造期间使用测试仪。从功能上来看,测试仪用于识别缺陷,使得测试结果可用于通过依据测试结果调节某些操作来影响DUT的制造。例如,通常仅在对器件的测试指示器件正在正常工作的情况下才进行产生被封装并运送给客户的器件的制造步骤。如果此类测试指示器件没有正常工作,则通常转移该器件,使得进行用于返工或废弃该器件的不同操作。
测试仪通常被配置成运行多种测试场景,这些测试场景模拟DUT在操作中可能经历的各种真实世界的条件。例如,每个测试场景可具有启动或利用在特定使用场景中所涉及的DUT的不同部分的一系列步骤。测试场景集合可被选择来确定是否DUT的所有部分已被正确地制造。
测试仪可通过执行一个或多个测试程序来实施此类测试场景。测试程序指定待由测试仪执行的操作,即生成激励信号并且测量响应以供与预期从正常工作的器件得到的响应进行比较。测试程序的执行可能需要施加“测试模式”以控制在连接到DUT的许多测试点处生成或测量数字信号的电路。测试模式是固定二进制数据集,其针对多个连续测试仪循环中的每一个指示测试仪中的仪器是生成还是测量测试信号。该模式还可指示关于测试信号的其他信息,诸如其数字值。
还在正在开发产品器件时使用测试仪-测试芯片以验证特定产品特征。在开发期间,设计工程师可使用测试仪来执行测试程序。这些测试程序被设计用来执行DUT的多个部分,并且通常针对DUT中的表面设计缺陷进行编写。针对这个目的而创建的测试程序可限于一次测试DUT的若干个较小部分。
通常,开发过程是迭代的,其中工程师无论是开发DUT还是测试程序,首先创建测试程序然后将该测试程序加载到测试仪中。可用连接到测试仪的DUT执行测试程序。基于执行测试程序的结果,可对DUT的设计进行变更。然而,也可产生测试程序的变化。例如,可进行变更来解决测试程序中的初始缺陷或作为增量式设计方法的一部分,其中一旦验证了测试程序或DUT的若干部分,就可添加与那些部分交互的其他部分。
在测试程序被改变时,可将其重新加载到测试仪中,并且可进行执行测试程序、评估结果并修改测试程序的过程的进一步迭代。如果在测试期间识别到与DUT的设计相关的问题,从而需要变更设计,则可混合这些迭代。
还可能在已经制成器件之后使用测试系统。例如,如果已被制成并且投入使用的多个器件经受类似缺陷,则器件制造商可能想要测试样品以确定故障是与设计的潜在缺陷有关还是与器件制造的系统性缺陷有关。此类测试还可通过开发测试程序(可能迭代地)来进行,以识别缺陷来源。
发明内容
发明人已经认识到并且理解,可通过向测试系统提供与调试器的接口来加速将新半导体器件投放市场的时间。调试系统可提供用户接口,用户可通过该用户接口交互式地提供调试命令并且接收将测试信号施加到实施那些调试命令的DUT的结果。那些调试命令可例如允许用户单步调试测试程序并且观测将程序中的每个步骤施加到DUT的结果,运行测试程序直至达到由调试命令指定的断点为止或以其它方式基于测试程序。
此类接口可将基于测试程序和调试命令导出的命令转换为可由测试系统处理的高级命令。由测试系统进行的处理可在运行时最终生成测试模式和其他仪器控制信号。通过使用调试系统,用户可进行多个操作而不必重新编写和重新加载测试程序。因而,可减少调试DUT和/或测试程序的时间。
因此,在至少一个方面,本发明涉及至少一种计算机可读存储介质,这种介质包含计算机可执行指令,这些计算机可执行指令当在计算装置的至少一个处理器上执行时实施调试方法,该调试方法包括交互式地从计算装置的用户接收调试输入并且存取测试程序,该测试程序包括多个测试程序命令。该方法还可包括根据这些调试输入和这些测试程序命令生成被配置成控制测试仪的仪器激发被测器件(DUT)的仪器命令并且接收来自DUT的响应,并且将这些仪器命令施加到测试仪中的仪器。
在另一方面,本发明可涉及操作测试系统的方法。该方法可包括使用至少一个调试工具,接收用户输入,并且响应于该用户输入,生成多个调试命令。该方法还可包括在接口处接收所述多个调试命令,并且在接口内,实时格式化所述多个调试命令以供施加到测试系统,将所格式化的命令施加到测试系统,并且在测试系统内,根据所述多个调试命令和与被测器件相关联的协议信息控制一个或多个仪器,以激发被测器件并且测量该被测器件的响应。
在其他方面,本发明可涉及测试设备。该测试设备可包括设置在测试仪内的多个仪器,这些仪器中的每一个被配置成生成和/或测量至少一个信号以供施加到被测器件。该测试设备还可包括至少一个处理器,该处理器被配置成实施调试器模块,该调试器模块包括接口,其中该调试器模块被配置成响应于通过该接口接收的信息来执行至少一个调试工具以生成调试命令。该测试设备还可包括测试仪控制模块,该测试仪控制模块包括输入,其中该测试仪控制模块被配置成基于通过该输入接收的仪器命令来实时生成控制信号,所述控制信号控制多个仪器以生成和/或测量信号以供施加到被测器件;以及转换模块,其耦接在调试器模块与测试仪控制模块之间,其中该转换模块被配置成从调试器模块接收第一组调试命令,基于第一组调试命令来生成第二组仪器命令,并且相对于第一组调试命令的接收情况实时地将第二组仪器命令施加到测试仪控制模块的输入。
上述为由所附权利要求限定的本发明的非限制性内容。
附图说明
附图并非意图按比例绘制。在附图中,在多张图中所示的每个相同或近乎相同的部件由相同的标号表示。为了清晰起见,并非对每张附图中的每个部件都进行了标记。在图中:
图1是根据一些实施例的示例性测试系统的示意图;
图2是根据一些实施例的示例性测试系统的示意图,其示出转换模块和测试仪的细节;
图3是根据一些实施例的示意图,其示出示例性测试系统的另外细节;
图4是根据一些实施例的测试程序开发和调试的过程的流程图;
图5是根据一些实施例的使用转换模块来交互式地将调试命令施加到被测器件的方法的流程图;以及
图6是可用于实施本文所述技术中的一种或多种的代表性计算装置的示意图。
具体实施方式
使用本文所述的技术,测试系统可适于提供对被测器件(DUT)的实时交互式调试。该系统可利用测试仪中的投资,半导体器件制造商可能以其它方式获得这些投资来用于工程设计工作的制造测试。然而,可按某种方式使用此类测试仪,与测试仪的常规使用相比,所述方式加快半导体器件上市或促进识别并校正器件的设计或系统性制造缺陷。
根据一些实施例,客户可提供测试程序,该测试程序包含多个测试程序命令。调试器可响应于用户所提供的调试输入来生成调试命令。这些调试命令可基于测试程序命令,例如通过指示应当按调试输入所确定的时间或方式来执行测试程序命令。此类调试命令可包括单步调试测试程序或执行测试程序直至检测到程序中的断点或自陷条件为止,该断点或自陷条件是依据DUT上的操作条件来指定的。但是,调试命令可独立于测试程序命令来指定测试系统要进行的操作。此类调试命令的例子包括用于在DUT内的内部寄存器或存储器位置处读取或设定值的命令。
作为在调试器与测试仪之间的接口的一部分,可提供转换模块,其将调试命令实时格式化为能够施加到测试仪的格式。这个格式可为独立于DUT所使用的特定协议的高级格式。因而,可提供不管正对其进行调试的特定DUT如何而均有用的通用调试器和接口。
为了控制特定DUT,测试仪可用针对DUT所配置的协议感知引擎进行编程。协议感知引擎可接受在高层级处指定待由DUT执行的操作的命令。协议感知引擎可在较低层级处生成用于控制测试仪中的仪器在执行该操作的DUT处生成或测量信号的命令。例如,协议感知引擎可生成用于DUT的测试模式。这个测试模式可甚至动态地生成,从而避免需要预先生成并存储测试模式。例如,可指定高级操作,诸如从DUT内的位置读取值。协议感知引擎可生成仪器控制信号,该信号指定存取并读取值的特定信号的层级和时序。
在一些实施例中,可逆向重复转换和格式化过程以向调试器返回执行调试命令的结果。
调试器可继而将结果呈现给用户或可使用该结果来有条件地生成另一个调试命令。可实时进行这些操作,这意味着用户将经历在没有改变测试程序并重新加载该程序的延迟的情况下系统对来自用户的输入做出响应。转换模块可因此使得客户能够以交互方式进行调试操作。
此外,在一些实施例中,系统可使用以本机客户代码编写的测试程序来操作,这可有利于测试程序的开发。通过允许以高级级别编程语言编写测试程序,用户可容易地编辑测试程序。此外,因为测试程序的执行可由在编写测试程序之后提供的调试输入来控制,所以可避免DUT或测试程序上的调试迭代。
此类实时调试环境可用于各种应用。例如,用户可为在交货之前第一次对新器件进行测试的设计工程师或测试工程师。传统上,测试程序或测试模式由设计工程师离线创建,并且由测试工程师执行以测试DUT。如果在测试期间发生某些问题,则测试工程师和设计工程师通常合作来尝试解决问题。这个过程可花费多达几天或几个星期。本文所述的实施例可通过使得设计工程师和/或测试工程师能够编辑/修改测试程序并且实时地看到来自DUT的结果而不必离线重新设计新的测试模式来缩短用于生成合适测试程序的周期时间。因而,可减少新器件的交货时间。
又如,用户可为测试已经从现场返回的最终产品的设计工程师或测试工程师。在一些情况下,器件可能最初被测试为良好的,但在具体使用情况下运行设备代码时,可能遇到意外问题(例如,因为最初并未测试所有情况)。可能难以在不理解原因的情况下设计测试模式来重建此类故障,但可能难以在没有恰当测试模式的情况下理解原因。通常,诊断测试是不充分的,并且可能产生“未发现故障”结果。然而,本文所述的实施例可通过交互式地对器件进行输入-输出操作以定位故障来使得测试工程师和/或设计工程师能够更有效地重建现场失败的测试情况。这个交互式调试可使得能够更快速地和准确地诊断器件中的具体问题。
发明人已经认识到并且理解,可通过用于将调试命令自动转换为用以控制测试仪内的仪器的格式的技术来促进交互式调试。在一些实施例中,转换可能需要在多个步骤中实时地将高级调试命令转换为较低级仪器命令。高级调试命令可被转换为高级测试仪命令,这些高级测试仪命令接着被转换为控制测试仪内的仪器的较低级命令。
在一些实施例中,所格式化的调试命令可包括指定确定性操作或非确定性操作的指令。举例来说,如果操作与协议相关,则该操作可为确定性的,或者如果操作指代用于DUT的命令,则该操作可为非确定性的。在一些实施例中,测试仪可包括ATE仪器引擎,该引擎生成恰当命令,而不管调试命令是指定确定性操作还是非确定性操作。
为了支持多步骤格式转换,可提供转换模块以进行来自客户的调试工具接收输入与高级测试仪命令输入之间的实时转换。在一些实施例中,如果调试工具基于客户代码或实时客户输入生成调试命令,则转换模块可将那些调试命令转换为测试仪所识别的命令。测试仪继而可包括生成特定于DUT的二进制测试模式激励或用于控制测试仪内的仪器的其他命令的部件。在一些实施例中,测试仪可包括协议感知引擎,该引擎发出用于测试DUT的仪器命令并且基于来自DUT的响应,自动发出后续仪器命令。
在一些实施例中,与协议感知引擎组合,转换模块可提供各种类型的指示,例如仪器命令已完成、测试程序成功执行直到预定位置为止或在执行仪器命令时发生错误。响应于此类指示,用户可输入后续高级指令,这些指令被自动转换成控制测试仪向DUT施加合适控制信号(诸如二进制测试模式)的仪器命令。这可使得用户能够经历DUT的实时交互式测试。
作为这些功能可如何共同作用的例子,如果调试工具生成存储器读取/写入调试命令,则转换模块可将这个命令自动转换成恰当的高级测试仪命令,诸如“从存储器位置XXX读取数据”。使用协议感知引擎,测试仪可识别这个命令以根据DUT协议和时序生成实施高级测试仪命令的合适二进制测试模式。转换模块和测试仪内的协议感知引擎的组合可因此提供抽象层,该抽象层使得用户无需知道DUT的底层协议和时序,并且减少对用户(例如,设计工程师或测试工程师)基于特定协议且在一些实施例中基于DUT的配置来离线手动生成测试程序的需要。
发明人已经认识到并且理解,此类系统可具有若干个好处,包括使得用户能够:1)交互式/在线调试,而不一定必须离线开发二进制测试模式并且接着必须将测试模式移回到测试系统;并且2)使用高级调试命令进行调试,从而减少对中间低级离线二进制测试模式开发的需要。
发明人已经认识到并且理解,通过在调试工具与测试仪之间提供抽象层,即使由调试工具发出的调试命令独立于DUT所使用的具体协议,不同类型的调试工具也可与测试仪配合使用。在一些实施例中,转换模块可以符合DUT所识别的具体协议的方式自动格式化调试命令。
发明人已经认识到并且理解,实时交互式调试环境可具有若干个好处,包括但不限于减少对以下各项的需要:a)使用中间工具/步骤来将高级编程语言转化为待在测试仪中使用的二进制代码;以及b)使用测试工作台来重建DUT的工作环境,使得可生成实际可行的测试程序。
本文所述的技术可通过启用在调试工具与测试仪之间的直接交互式“链路”而不必离线来提供此类好处。可例如通过本文所述实施例的至少两个成果来启用此类“链路”:(1)经由将高级编程语言转换为二进制代码的抽象层来实时交互式生成激励信号;以及(2)经由协议感知或其他ATE引擎提供实时“测试工作台”,其可模拟DUT的功能正确的工作环境。
图1是根据一些实施例的示例性测试系统100的示意图。在图1中,用户102(例如,设计工程师或测试工程师)与测试计算机104交互。基于用户输入,测试计算机104控制测试仪106,该测试仪对被测器件(DUT)108进行测试。例如,在一些场景中,测试仪106可为自动测试设备(ATE),其使用本领域中已知的技术来构造。DUT可为用于测试的任何合适器件。在这个例子中,DUT 108可为半导体器件。该半导体器件例如可为包括处理器和一个或多个功能区段的片上系统(SOC)。
DUT 108可放置在插座110中用于测试。但是,应当理解,如本文所述的测试系统可测试任何合适类型的器件,并且不同类型的器件可被保持在不同类型的固定装置中用于测试。此外,虽然未示出,但可在插座110中放置任何数目的器件用于同时测试。因而,插座110是示例性的而并非限制本发明。
此外,应当理解,所示出的其他部件是示范性的而非限制性的。例如,虽然在图1中将测试计算机104示出为个人计算机(PC),但应当理解,任何合适的计算装置可用于实施测试计算机,例如,手持便携式装置或计算机工作站。
测试计算机104可具有实施调试工具的软件。这些调试工具可连同测试程序来操作,该测试程序可被编写为用于测试DUT 108的高级代码。例如,可独立于用于与DUT交换信息的特定协议并且独立于测试仪106内的将在DUT处生成和测量信号的特定仪器来指定高级代码。测试程序中的一些参数的值可指定将对其进行某些操作的DUT内的部件。待执行的操作可采用一般适用于任何DUT和测试仪配置的方式以高级代码指定。例如,这些操作可涉及读取或写入值。
调试工具可共同地提供调试器,并且可使用如本领域中已知的用于支持任何合适调试操作的技术来实施。这些调试操作可包括如本领域中已知的调试操作。例如,调试操作可包括单步调试测试程序或在测试程序中设定执行将停止的断点。调试操作还可包括设定自陷条件,所述条件指示可导致测试程序从停止到执行的DUT上的条件。此外,调试操作可包括在DUT内的寄存器或其他部件中读取或设定值。
测试计算机104中的调试工具可基于用户输入和/或测试程序来输出调试命令。调试命令的输出还可基于从DUT读取的值或测试系统的状态。从DUT读取的信息或测试系统的状态可由测试仪106提供。例如,当用户输入已经指示通过测试程序的单步操作时,调试工具可生成调试命令,指示执行测试程序中的一个步骤。当调试工具接收从测试仪106传回的指示步骤已完成的信息时,调试工具可生成一个或多个调试命令以指定执行测试程序中的下一个步骤。
在一些实施例中,可在测试计算机104中提供转换模块,其将由调试工具发出的调试命令转换为由测试仪106识别的测试仪命令。基于从测试计算机104接收的测试仪命令,测试仪106可生成控制信号,诸如二进制测试模式,并且将控制信号施加到DUT 108以在某个调试场景中运行。
测试计算机104中的转换模块可允许用测试仪106实施多种调试工具。转换模块可提供在用户级指令与测试仪级命令之间的抽象层。此类转换模块可允许用户102不知道测试仪106和/或DUT 108的确切性质和要求。与使用与具体测试仪和/或DUT兼容的特定调试仪器相比,这可提供用于调试较宽泛种类的DUT的更一般化方法。
除了提供测试计算机104中的在调试工具与测试仪106之间的抽象层之外,测试计算机104中的转换模块还可使得用户102能够进行DUT 108的实时交互式调试。此类实时交互式调试可使得用户102能够交互式控制测试仪106。例如,用户102可用DUT 108进行一系列激励-响应操作,或可基于DUT 108所输出的信号来实时运行测试程序命令或测试程序中的特定命令。
因为调试工具允许动态地选择来自测试程序的命令并且将其施加到测试仪106,所以不需要预先准备测试程序。相反,可在运行时开发或修改测试程序。在这种情况下,在运行时,在正在测试DUT时发生修改。因此,以在线方式做出此类对测试程序的修改。此类在线编程和修改比在不测试DUT时离线准备测试程序并且接着加载所准备的程序以供执行的常规方法更强大。
因此,此类转换模块可不仅提供使得用户102能够使用高级客户代码的抽象层,而且可提供实时交互式环境,其中用户102可基于由DUT 108输出的响应信号来动态地进行调试。尽管图1的例子已经被描述为在测试计算机104中实施转换模块,但应当理解,就这一点而言实施例不受限制,并且转换模块可在任何合适计算装置中实施。
图2是根据一些实施例的使用转换模块的示例性测试系统200的示意图。在这个例子中,提供在调试器模块与在DUT处生成和测量信号的测试系统仪器之间的抽象层的另外细节。在这个例子中,还提供协议感知引擎210。协议感知引擎将由转换模块202从调试命令创建的高级测试仪命令转化为控制测试仪206内的仪器的操作以在DUT 208处施加或测量信号的仪器命令。
在图2的实施例中,转换模块202提供在实施一个或多个调试工具的调试器模块204与对DUT 208进行测试的测试仪206之间的接口。在一些实施例中,转换模块202使得能够使用以客户语言(例如,C++、Java)编写的测试程序来交互式调试DUT 208。在一些实施例中,转换模块202可为在调试器模块204与测试仪206之间的应用程序编程接口(API)或可在该API内实施。
调试器模块204可以任何合适方式来实施,包括使用第三方调试工具,其可被设计成理解用户想要用DUT 208做什么的逻辑。这些调试工具可与用户所供应的客户代码交互,该客户代码实施测试程序。基于用户输入、测试程序和/或测试仪206所提供的测量或其他信息,调试器模块204可生成调试命令212。例如,调试器模块204可生成包括用于对DUT 208进行操作的命令在内的调试命令212。在一些实施例中,对调试器模块204的单个用户输入可产生一连串调试命令。例如,指示用于将软件加载到DUT 208上的存储器中的命令的用户输入可产生一连串调试命令212。
然而,由调试器模块204发出的调试命令212可不为适合于直接施加到测试仪206的格式。例如,调试命令212可为未针对测试仪206专门准备的高级编程语言。转换模块202可提供在调试命令212与测试仪命令214之间的必要转换。
这些测试仪命令214可仍处于相对较高级别。例如,测试仪命令214可指定在DUT内的某个位置处进行读取和写入,而不是DUT 208将需要用来致使进行指定操作的一系列特定值。系统200中的抽象层还可包括用于将较高级测试仪命令214转化为控制测试仪206内的仪器生成或测量恰当信号的较低级仪器命令的部件。
此类部件可包括测试仪控制模块。例如,测试仪控制模块可为协议感知(PA)引擎210。但是,应当理解,其他合适ATE引擎也可用作测试仪控制模块,诸如数字信号源和捕获(DSSC)。在一些实施例中,PA引擎210可被配置成生成仪器命令214,其致使测试仪内部的仪器生成一系列位216以控制DUT 208中的硬件进行由测试仪命令指定的操作,该测试仪命令是响应于一个或多个调试命令212来生成的。
协议感知引擎的例子可在美国专利8,195,419和申请2010/0312516中找到,这两个文件的全文据此以引用方式并入。然而,可使用将测试仪命令转化为控制以恰当级别和时序生成信号以供施加到特定DUT的仪器的命令的任何合适部件。协议感知引擎可根据协议来操作,所述协议以根据在DUT上所生成信号的状态的时间或值来生成信号。例如,DUT可在数据可供读取时断定“就绪”信号,并且协议感知引擎可响应于此类就绪信号来发出致使值被读取的仪器命令。在一些实施例中,协议感知引擎可对数字信号进行操作。但是,应当理解,协议引擎可在一些实施例中对模拟和/或数字信号进行操作。
因而,应当理解,任何合适测试仪控制模块可充当PA引擎210。此外,将较高级测试仪命令转化为控制DUT信号生成的仪器命令的任何合适模块可充当PA引擎210。
尽管已知提供具有PA引擎210的测试仪以在测试仪命令214与用于仪器的控制信号之间进行转化,但转换模块202和PA引擎210可提供额外抽象。此类额外抽象可例如使得用户能够使用更高级且更用户友好的编程语言(即,客户的语言(诸如C、C++、Java))来准备测试程序。此外,其允许可容易地被配置成与任何测试系统或DUT一起操作的测试系统。调试器模块204可产生通用输出,而不管测试仪或DUT如何。转换模块202可特定于测试仪,但独立于DUT。但是,PA引擎210可针对特定DUT进行配置。
图3是根据一些实施例的示出示例性测试系统300的另外细节的示意图。图3示出了转换模块302,其提供在调试器模块304与用于控制DUT 308的测试仪306之间的抽象层。测试仪306可在一些实施例中包括PA引擎310,用于从转换模块302接收测试仪命令,并且作为响应,生成将致使测试仪306内的仪器从DUT 308生成或测量信号的仪器命令。
在一些实施例中,转换模块302和调试器模块可被配置在测试计算机312(例如,图1的测试计算机104)中,但就这一点而言实施例不受限制。调试器模块304可具有用户接口314,用户可通过该用户接口来与调试器模块304所实施的各种调试工具交互。
在一些实施例中,用户输入可控制调试工具生成调试命令,这些调试命令最终致使数字仪器经由根据PA引擎310所支持的协议操作的线路318来控制DUT 308的处理器316。在一些实施例中,该协议可根据联合测试行为组织(JTAG)协议,其允许通过具有有限数目引脚(诸如串联输入和串联输出引脚、时序引脚以及一个或多个控制引脚)的测试接口来控制部件。JTAG协议可允许将程序加载到DUT 308内部的存储器中或者将值加载到特定寄存器或存储位置中。类似地,JTAG协议可允许从DUT 308内的特定寄存器或存储位置读取值。然而,应当理解,实施例不限于使用JTAG,因为其他合适协议(诸如Mipi、SPI、I2C)可用于控制DUT。
这种加载程序的能力可用于(例如)允许调试工具将测试代码加载到与处理器316相关联的固件中。测试代码可基于(例如)写入到DUT的存储器中的特定位置的值来有条件地进行操作。作为另外一种选择或除此之外,测试代码可将值写入到存储器内的位置中。这些能力可用于控制由DUT 308进行的操作的时序或进程,并且还用于提供测试仪306对进行操作的结果的存取。这些能力可用于(例如)实施指定对测试程序的操作的控制的调试命令。以此方式,系统可支持(例如)测试程序的单步执行,其中用户可检查进行每个步骤的结果。这个能力还可支持执行到断点或在特定条件下自陷,这可基于DUT 308内部的值。
加载用于处理器316的程序的能力还可允许处理器316控制DUT308中的其他处理器或子系统进行充当用于DUT 308的测试的操作。例如,在图3中,示出子系统320a、320b、320c和320d。子系统的非限制性例子包括模/数转换器(ADC)、数/模转换器(DAC)、串化解串器或混合信号片上系统中通常所包含的其他核心。用户可使用在DUT 308的处理器316中实施的其代码/程序来控制DUT 308的这些子系统。作为可能的控制类型的非限制性例子,DAC可被控制用来生成特定级别的输出,ADC可被控制用来测量所述特定级别的输出。通过将测量值与预期值进行比较,可检测ADC或DAC的不恰当操作。
除此之外或作为另外一种选择,测试仪306的其他仪器(诸如仪器322a、322b和322c)可被控制用来进行DUT 308中的子系统(诸如子系统320a至320d)的激励和/或捕获。这些仪器可直接由测试仪命令控制或可间接由另一个部件(诸如PA引擎310)所发出的命令控制。这个控制可与由处理器316进行的测试操作同步。
不管这个控制的性质和来源如何,测试仪306的仪器322a至322c可直接或间接地基于从转换模块302接收的测试仪命令来在DUT 308处生成和/或测量信号。例如,这可用于RF、AC、DC和数字仪器系列。
在上述实施例中,PA引擎310用来与DUT 308进行通信的协议可为4线线路的联合测试行为组织(JTAG)协议,如本领域中已知(IEEE标准1149.1)。但是,应当理解,可使用任何合适的协议系列,诸如Mipi、SPI、I2C,因为就这一点而言实施例不受限制。
DUT 308中的处理器316可被配置成接收测试代码并且将其存储在固件中。但是,测试代码可以任何合适方式存储在DUT 308内。另外,已经描述了处理器316可被编程以使得其可被控制用来通过用户测试程序进行单步操作。在一些实施例中,处理器316可被控制用来单步调试被加载到DUT 308中的测试代码,其中在每个步骤之后结果可供测试仪306使用(使得其接着可供调试器模块304使用)。此类能力可存在于DUT处理器中,如本领域中已知。例如,如果处理器316是ARM处理器,则其可具有根据控制协议所定义的控制接口以及单步调试测试指令的能力。例如,控制接口可为根据JTAG或另一种合适控制协议的接口。在一些实施例中,DUT处理器316具有调试支持能力,并且转换模块302能够发出仪器命令以存取处理器316中的调试支持能力。
不管哪些部件进行测试,在此类测试期间做出的测量都可通过转换模块302返回到调试器模块304。当在这个方向上通过转换模块302传递信息时,该信息可从指示施加一个或多个调试命令的结果的高级测试仪信息(诸如从DUT 308读取的值或获得的状态)转化而来。调试器模块304可采用此类测试的结果并且提供各种输出。
在所示出的实施例中,在用户接口314处提供这些输出。此类输出可指示由DUT 308的不同子系统320a至320d进行的读取、写入或其他操作的结果。例如,如果子系统320a是模/数转换器(ADC),则对DUT 308的输入可表示所捕获的模拟波形。此类波形可(例如)通过加载在DUT中以控制处理器316准备ADC来捕获模拟输入波形的测试代码的操作捕获。因而,可响应于指示波形的捕获的用户输入来捕获波形。转换模块302可将所述命令转化为高级测试仪命令以致使为处理器316加载测试代码,触发该测试代码执行并且接着控制测试仪306内的一个或多个仪器读取所得数据。数据可因此被提供给用户,从而允许用户观测DUT 308是否准确地测量了施加到DUT 308的模拟信号。用户可能接着响应于所观测到的数据来输入额外命令。然而,不管用户输入的确切性质如何,所示出的部件可实现交互式测试环境,其中由用户指令实时地控制部件。
图4是根据一些实施例的调试过程的流程图,该调试过程在这个例子中包括测试程序的开发和调试。在图4的示例性过程400中,示出由设计工程师和测试工程师采用的过程步骤的交互。在两条路径中,如本文所述的部件可用于实现DUT的实时交互式调试。
测试工程师可采用如本文所述的部件来进行DUT的交互式调试。在步骤402中,测试工程师可用现有测试程序开始调试。测试程序可为(例如)旨在当制造DUT时在对其进行测试的同时控制测试系统的操作的测试程序。但是,在可使用此类测试程序之前,可对其进行调试以确保根据该程序进行的任何测试的结果准确地表征DUT。
在步骤404中,测试工程师启动测试程序,并且在步骤406中启动转换模块。转换模块可在步骤408中转化从测试程序导出的指令以供施加到测试系统。这些指令可由调试器模块响应于用户输入来选择。这些指令可以任何合适方式来选择。
测试程序的执行的一部分可由加载到DUT上的固件代码来控制,该固件代码控制内部处理器的执行。因此,过程400可包括将固件加载到DUT中。可作为根据调试输入执行测试程序的一部分来执行这个固件,诸如通过运行测试程序直到断点为止,如操作408中示出。
在该点处,用户可在操作410处开始交互式地调试测试程序。交互式调试可能需要用户输入,诸如指定待执行的测试程序的若干部分、在DUT上设定条件以创建测试场景或从DUT读取值的输入。例如,交互式调试可包括在步骤412中步进到测试程序的下一个测试程序命令或指令。在每个步骤处,用户可再次指定另外的操作。在一些实施例中,用户可修改测试程序(使用编辑器或其他程序修改命令),直到在运行测试程序以测试DUT时获得所需或预期结果为止。一旦调试完成,便可在步骤414中停止交互式调试。
在一些场景中,可由设计工程师提供测试程序。例如,设计工程师可开发被设计用来测试器件中的具体子系统或实际应用场景的测试程序。转换模块可使得能够由测试工程师或设计工程师测试并调试此类所设计的程序。
例如,在步骤416中,设计工程师可开始开发测试对象。测试对象可为测试程序或测试程序的部分。这些对象可以用户的本机高级语言来编写,使得对象不需要取决于用于控制测试仪的语言或DUT所使用的特定协议。此类程序对象可被设计用来测试DUT的各种功能。作为非限制性例子,测试程序可包括用于将数据写入到DUT的寄存器中并且在DUT的端口处读取输出的测试程序命令。
在步骤418中,设计工程师可用本机语言(诸如C++或Java)开发代码。如果以编译语言来编写,则可接着在步骤420中编译代码。一旦代码已经被编译,在步骤422中,便可将编译代码加载到测试系统计算机中。在所示出的实施例中,设计者还可加载调试器模块,如上所述。编写、编译和加载客户开发的代码的步骤可由设计工程师重复,直到每个所开发的剩余程序对象根据需要来进行为止。
可接着调试由所开发的程序对象组成的程序。这个调试可由设计工程师或测试工程师使用如上所述的步骤来进行。可在操作410处由任何合适一方(包括设计工程师或测试工程师)测试程序对象,如上所述。这个调试可能需要使用若干部件,包括转换模块和PA引擎,如上所述,来从由调试工具生成的调试命令提取DUT的实施细节。
如本文所述的系统可因此提供集成环境,其中设计工程师和测试工程师两者可交互式地使用高级客户代码测试程序。这可允许设计工程师和测试工程师两者更自主,并且减少开发测试程序来准确地测试或诊断器件的周期时间。
图5是根据一些实施例的方法的流程图,该方法包括操作转换模块(例如,图2和图3的转换模块202或302)作为实时交互式地向被测器件施加调试命令的一部分。在示例性过程500中,在步骤502中调试模块存取测试程序,该测试程序可包括以高级客户语言编写的测试程序命令。响应于用户输入,调试模块可基于所加载的测试程序并且可能基于用户输入和其他信息来生成调试命令。
在步骤504中,转换模块可例如从调试器模块(例如,图2和图3的调试器模块204或304)接收调试命令。调试命令可表示测试程序中的指令,并且/或者可表示实时用户输入指令。
不管调试命令的确切性质如何,转换模块可在步骤506中生成由测试仪(例如,图2和图3的测试仪206或306)识别的测试仪命令。在步骤508中,转换模块可向测试仪施加测试仪命令,并且测试仪可使用恰当协议对DUT进行各种输入/输出操作。测试仪可通过使用DUT感知PA引擎(例如,图2和图3的PA引擎210或310)来决定如何向DUT施加测试仪命令。测试仪可接着获得指令的结果,在步骤510中测试仪将该结果传递到转换模块,该结果可继而通过调试器所实施的接口提供给用户。
在步骤512中,如果程序的调试完成,则过程可完成。否则,过程返回到步骤504并且转换模块可从客户代码中的下一个指令或从另一个实时用户输入指令接收下一个调试命令。以此方式,将调试命令提供到转换模块并且接着由测试仪执行而不需要例如预先生成测试模式并将其存储在测试仪硬件中。因而,在用户看来是在生成调试命令时实时执行调试命令。
转换模块可因此为调试工具以及使用调试工具的用户提供抽象层,其隐藏测试仪的细节。同样,PA引擎和与DUT通信所必需的DUT特定协议隐藏与DUT交互所必需的控制信号的细节。这些部件使得调试工具能够更简单地使用调试工具的本机命令来与DUT和/或测试系统接合。因而,用户能够以在线方式进行高级交互式调试,而不必依赖于针对测试仪和DUT离线生成低级二进制测试模式。
图6是代表性计算装置600的示意图,该计算装置可用于实施本文所述技术中的一种或多种,以便进行将调试命令转换为仪器命令(例如,图2和图3的转换模块202或302)或向用户提供DUT的交互式调试(例如,图1和图3的测试计算机104或312)。计算装置600还可表示DUT本身(例如,图2和图3的DUT 208或308)。计算机装置600可包括一个或多个处理器602和一个或多个非瞬时性计算机可读存储介质(例如,存储器604和一个或多个非易失性存储介质606)。处理器602可控制以任何合适方式将数据写入到存储器604和非易失性存储装置606以及从其读取数据,因为本文所述的本发明的方面不限于此。为了执行本文所述的功能和/或技术,处理器602可执行存储在一个或多个计算机可读存储介质(例如,存储器604、存储介质等)中的一个或多个指令,这些计算机可读存储介质可充当存储指令以供处理器602执行的非瞬时性计算机可读存储介质。计算装置600还可包括路由数据、执行计算、执行I/O功能等所需要的任何其他处理器、控制器或控制单元。
结合本文所述的转化技术,调试程序、将调试命令转换为仪器命令或提供交互式调试环境的一个或多个程序可被存储在计算装置600的一个或多个计算机可读存储介质上。处理器602可执行此类程序中的任何一个或此类程序的组合,此类程序通过本地存储在计算装置600上以可供处理器使用或能够经由网络存取。本文所述的任何其他软件、程序或指令还可由计算装置600存储并执行。计算机600可为独立计算机、移动装置等,并且可连接到网络并能够经由网络存取资源和/或与连接到网络的一个或多个其他计算机通信。
虽然本文描述和示出了本发明的若干个实施例,但本领域的普通技术人员将很容易想到用于执行本文所述的功能和/或获得本文所述的结果和/或优点中的一个或多个的多种其他装置和/或结构,并且此类变型形式和/或修改形式中的每一个被视为在本发明的范围内。
例如,虽然调试器和转换模块被示出为单独部件。为解释简单起见示出这个具体实施。这些部件的特定结构对于本发明并不是关键的。例如,转换可作为调试模块的一部分来进行。作为另外一种选择或除此之外,系统所支持的一些或全部调试命令可在转换模块内实施。
更一般地说,本领域的技术人员将很容易理解,本文所述的所有参数、尺寸、材料和构形都是示例性的,实际的参数、尺寸、材料和/或构形将取决于使用本发明的教导内容的一种或多种具体应用。本领域的技术人员将会认识到,或能够用不超过常规实验的方法确定本文所述的本发明的具体实施例的多种等同形式。因此,应当理解,上述实施例仅以举例的方式提供,在所附权利要求及其等同形式的范围内,可以用与具体所述的和受权利要求书保护的方式不同的方式实施本发明。本发明涉及本文所述的每个单独的特征、系统、制品、材料、套件和/或方法。另外,如果此类特征、系统、制品、材料、套件和/或方法并非相互不一致,则两个或更多个此类特征、系统、制品、材料、套件和/或方法的任何组合包括在本发明的范围内。
如本文中在说明书和权利要求书中所使用的不定冠词“一”和“一个”应被理解为意指“至少一个”,除非明确指出相反的意思。
如本文在说明书和权利要求书中所用的短语“和/或”应被理解为意指如此结合的元件中的“任一者或两者”,即,在某些情况下共同存在且在其他情况下分开存在的元件。除了用“和/或”从句具体确定的元件外,可以任选地存在其他元件,这些元件无论与具体确定的那些元件相关还是不相关都可以,除非明确指出相反的意思。因此,作为非限制性例子,对“A和/或B”的提及在结合诸如“包括”等开放式语言使用时可在一个实施例中指代A没有B(任选地,包括除了B之外的元件);在另一个实施例中,指代B没有A(任选地,包括除了A之外的元件);在又一个实施例中,指代A和B两者(任选地,包括其他元件);等等。
如这里在说明书和权利要求书中所用,“或”应被理解为与上文所定义的“和/或”具有相同的含义。例如,当区分列表中的项目时,“或”或“和/或”应被解释为是包括性的,即包括至少一个,但还包括多个元件或元件列表以及可选的另外未列出项目中的不止一个。只有明确地指示相反意思的术语,例如,“只有其中一个”或“恰好其中一个”或权利要求书中使用的“由…组成”将是指包括多个元件或元件列表中的恰好一个元件。通常,当前面有排他性术语,如“任一者”、“之一”、“仅之一”或“恰好之一”时,在此所用的术语“或”只应被解释为指示排他性替代术语(即,“一者或另一者但不是两者”)。权利要求书中使用的“基本上由…组成”应具有专利法领域中所用的通常含义。
如说明书和权利要求书中所用,短语“至少一个”在与一个或多个元件的列表有关时,应被理解为意指选自元件列表中的任何一个或多个元件中的至少一个元件,但不一定包括元件列表内具体列出的每个元件中的至少一个并且不排除元件列表中元件的任何组合。该定义还允许,可以可选地存在除元件列表内具体确定的短语“至少一个”所指的元件之外的元件,这些元件无论与具体确定的那些元件相关还是不相关都可以。因此,作为非限制性例子,“A和B中的至少一个”(或换句话讲,“A或B中的至少一个”,或换句话讲,“A和/或B中的至少一个”)在一个实施例中可指代至少一个(任选地包括不止一个)A,不存在B(并任选地包括除B之外的元件);在另一个实施例中,指代至少一个(任选地包括不止一个)B,不存在A(并任选地包括除A之外的元件);在又一个实施例中,指代至少一个(任选地包括不止一个)A,和至少一个(任选地包括不止一个)B(并任选地包括其他元件);等等。
在权利要求书中,以及在上文说明书中,所有过渡短语,如“包括”、“在内的”、“携带”、“具有”、“包含”、“含有”、“持有”等被理解为是开放式的,即,是指包括但不限于。只有过渡短语“由…组成”和“基本上由…组成”分别是封闭或半封闭的过渡短语,如专利审查程序美国专利局手册第2111.03章所述。
Claims (27)
1.至少一种计算机可读存储介质,包含计算机可执行指令,所述计算机可执行指令当在计算装置的至少一个处理器上执行时实施调试方法,所述调试方法包括:
交互式地从所述计算装置的用户接收调试输入;
存取测试程序,所述测试程序包括多个测试程序命令;
根据所述调试输入和所述测试程序命令生成仪器命令,所述仪器命令被配置成控制测试仪的仪器,以激发被测器件(DUT)并且接收来自所述DUT的响应;以及
将所述仪器命令施加到所述测试仪中的仪器。
2.根据权利要求1所述的计算机可读存储介质,其中:
交互式地接收调试输入的步骤包括:
从所述用户接收第一调试输入和第二调试输入;
根据所述第一调试输入生成第一调试命令;
将所述第一调试命令施加到所述测试仪;以及
响应于将所述第一调试命令施加到所述测试仪的结果,根据所述第二调试输入生成第二调试命令。
3.根据权利要求1所述的计算机可读存储介质,其中:
交互式地接收调试输入的步骤包括在接收所述调试输入之后实时生成所述调试命令。
4.根据权利要求1所述的计算机可读存储介质,其中:
激发DUT并且接收来自所述DUT的响应的步骤被配置成根据所述DUT的功能正确的工作环境来进行。
5.根据权利要求1所述的计算机可读存储介质,其中:
所述生成仪器命令的计算机可执行指令包括计算机可执行指令,以用于将所述调试输入和所述测试程序命令转换为二进制测试模式。
6.根据权利要求1所述的计算机可读存储介质,其中:
所述调试输入包括至少一个命令,以在所述测试程序内的预定位置处暂停所述测试程序的执行;
根据所述调试输入和所述测试程序命令生成被配置成控制仪器的仪器命令的步骤包括生成仪器命令,所述仪器命令被配置成控制仪器,以执行所述测试程序中的测试程序命令直到所述预定位置为止。
7.根据权利要求6所述的计算机可读存储介质,其中所述调试方法还包括:
向所述用户呈现对已执行所述测试程序中的测试程序命令直到所述预定位置为止的指示。
8.根据权利要求1所述的计算机可读存储介质,还包括:
计算机可执行指令,所述计算机可执行指令在执行时从所述计算装置的所述用户接收程序修改命令并且基于所述所接收的程序修改命令来修改所述测试程序。
9.根据权利要求1所述的计算机可读存储介质,其中:
所述调试输入包括至少一个命令,以从所述DUT读取数据;
所述调试输入独立于用于从所述DUT读取数据的协议。
10.根据权利要求1所述的计算机可读存储介质,还包括所述测试程序,其中:
所述测试程序包括指令,所述指令用于在所述DUT内的处理器上执行,以控制所述处理器与所述DUT上的核心交互,以生成和/或测量与所述核心相关的测试数据。
11.一种操作测试系统的方法,所述方法包括:
使用至少一个调试工具来接收用户输入,并且响应于所述用户输入来生成多个调试命令;
在接口处接收所述多个调试命令;
在所述接口内,实时格式化所述多个调试命令以供施加到测试系统;
将所述所格式化的命令施加到所述测试系统;以及
在所述测试系统内,根据所述多个调试命令和与被测器件相关联的协议信息来控制一个或多个仪器,以激发被测器件并且测量所述被测器件的响应。
12.根据权利要求11所述的方法,其中:
激发被测器件并且测量所述被测器件的响应的步骤被配置成根据所述DUT的功能正确的工作环境来进行。
13.根据权利要求11所述的方法,其中:
格式化所述多个调试命令的步骤包括生成多个高级仪器命令。
14.根据权利要求11所述的方法,其中:
控制一个或多个仪器的步骤包括至少部分地基于所述高级仪器命令和所述协议信息来生成二进制测试模式。
15.根据权利要求11所述的方法,其中:
控制所述测试系统内的所述一个或多个仪器的步骤包括操作所述测试系统内的协议感知引擎或ATE仪器引擎,以生成信号,以在由来自所述被测器件的响应确定的时间激发所述被测器件。
16.根据权利要求15所述的方法,还包括:
基于与所述被测器件相关联的协议信息来配置所述协议感知引擎或ATE仪器引擎,使得所述调试命令独立于由所述被测器件使用的协议。
17.根据权利要求11所述的方法,还包括:
在所述接口处接收对第一格式化调试命令已完成的指示。
18.根据权利要求17所述的方法,其中所述第一格式化调试命令包括指定由所述被测器件进行的非确定性操作的指令。
19.根据权利要求11所述的方法,其中:
所述格式化命令是以较高级编程语言来格式化的;并且
控制所述一个或多个仪器的步骤包括以较低级语言生成命令。
20.根据权利要求11所述的方法,其中:
所述被测器件包括处理器核心;并且
所述多个调试命令包括用于通过JTAG接口或其他控制接口将测试程序加载到所述被测器件中的命令,所述测试程序被格式化以供由所述处理器核心执行,以控制所述处理器核心,以执行包含与所述被测器件中的一个或多个其他子系统的交互在内的测试功能。
21.根据权利要求20所述的方法,其中:
控制所述测试系统内的所述一个或多个仪器的步骤包括控制所述一个或多个仪器:
生成信号,所述信号控制所述处理器核心对所述测试程序的一部分的执行;并且
在与所述测试程序的所述部分的执行同步的时间测量所述被测器件所输出的信号。
22.一种测试设备,包括:
设置在测试仪内的多个仪器,所述仪器中的每一个被配置成生成和/或测量至少一个信号,以供施加到被测器件;以及
至少一个处理器,所述处理器被配置成实施:
调试器模块,所述调试器模块包括接口,其中所述调试器模块被配置成响应于通过所述接口接收的信息来执行至少一个调试工具,以生成调试命令;
测试仪控制模块,所述测试仪控制模块包括输入,其中所述测试仪控制模块被配置成基于通过所述输入接收的仪器命令来实时生成控制信号,所述控制信号控制所述多个仪器,以生成和/或测量信号,以供施加到所述被测器件;以及
转换模块,所述转换模块耦接在所述调试器模块与所述测试仪控制模块之间,其中所述转换模块被配置成:
从所述调试器模块接收第一组调试命令;
基于所述第一组调试命令来生成第二组仪器命令;并且
相对于所述第一组调试命令的接收,实时地将所述第二组仪器命令施加到所述测试仪控制模块的所述输入。
23.根据权利要求22所述的测试设备,其中:
所述测试仪控制模块还被配置成根据所述被测器件的功能正确的工作环境实时生成控制信号。
24.根据权利要求22所述的测试设备,其中:
所述至少一个处理器包括至少第一处理器和第二处理器;
所述第一处理器被配置成实施所述调试器模块;
所述第二处理器设置在所述测试仪内;并且
所述第二处理器被配置成实施所述测试仪控制模块。
25.根据权利要求22所述的测试设备,其中:
所述测试仪控制模块包括至少一个协议感知引擎或ATE仪器引擎。
26.根据权利要求22所述的测试设备,其中:
所述测试仪控制模块还被配置成:
在多个协议中从通过所述输入接收的所述仪器命令来生成所述控制信号;并且
接收选择所述多个协议中的一个协议的控制信号。
27.根据权利要求22所述的测试设备,其中:
所述调试器模块被配置成以独立于所述仪器命令格式的格式生成调试命令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/680,407 US9959186B2 (en) | 2012-11-19 | 2012-11-19 | Debugging in a semiconductor device test environment |
US13/680,407 | 2012-11-19 | ||
PCT/US2013/069215 WO2014078196A1 (en) | 2012-11-19 | 2013-11-08 | Debugging in a semiconductor device test environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104797948A true CN104797948A (zh) | 2015-07-22 |
CN104797948B CN104797948B (zh) | 2017-08-08 |
Family
ID=50729128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380060064.4A Active CN104797948B (zh) | 2012-11-19 | 2013-11-08 | 半导体器件测试环境中的调试 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9959186B2 (zh) |
KR (1) | KR102104915B1 (zh) |
CN (1) | CN104797948B (zh) |
TW (2) | TWI619955B (zh) |
WO (1) | WO2014078196A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105445644A (zh) * | 2015-11-18 | 2016-03-30 | 南昌欧菲生物识别技术有限公司 | 多类型芯片测试板、测试系统及测试机台 |
WO2016184170A1 (zh) * | 2015-10-08 | 2016-11-24 | 中兴通讯股份有限公司 | Smi接口器件的调试装置及方法、存储介质 |
CN110603528A (zh) * | 2017-03-06 | 2019-12-20 | 赛灵思公司 | 调试系统和方法 |
CN110634530A (zh) * | 2019-09-10 | 2019-12-31 | 珠海博雅科技有限公司 | 芯片的测试系统和测试方法 |
CN111258826A (zh) * | 2020-01-09 | 2020-06-09 | 深圳市德名利电子有限公司 | 一种存储设备的命令序列测试方法和装置以及设备 |
CN111984435A (zh) * | 2020-08-20 | 2020-11-24 | 中电科仪器仪表有限公司 | 一种测试程序的执行与调试方法及系统 |
CN112630651A (zh) * | 2020-11-27 | 2021-04-09 | 四川诚邦浩然测控技术有限公司 | 一种电机性能测控管理平台 |
CN114646867A (zh) * | 2022-05-18 | 2022-06-21 | 南京宏泰半导体科技有限公司 | 一种集成电路并发测试装置及方法 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9459978B2 (en) * | 2013-01-24 | 2016-10-04 | Xcerra Corporation | Automated test platform utilizing segmented data sequencers to provide time controlled test sequences to device under test |
US9430349B2 (en) * | 2013-01-24 | 2016-08-30 | Xcerra Corporation | Scalable test platform in a PCI express environment with direct memory access |
US9430348B2 (en) * | 2013-01-24 | 2016-08-30 | Xcerra Corporation | Scalable test platform in a PCI express environment with direct memory access |
US9336108B2 (en) | 2013-01-24 | 2016-05-10 | Xcerra Corporation | Scalable test platform |
US20140230052A1 (en) * | 2013-02-11 | 2014-08-14 | Motorola Mobility Llc | System and method for testing a secured manufactured device |
CN104133745A (zh) * | 2013-04-30 | 2014-11-05 | 鸿富锦精密工业(深圳)有限公司 | 具有测试功能的电子装置及测试方法和系统 |
US9244126B2 (en) * | 2013-11-06 | 2016-01-26 | Teradyne, Inc. | Automated test system with event detection capability |
CN105446866A (zh) * | 2014-08-22 | 2016-03-30 | 全智科技股份有限公司 | 一种跨平台测试装置 |
US9514032B2 (en) * | 2014-09-23 | 2016-12-06 | International Business Machines Corporation | Real-time usage checking of dynamically generated program output |
EP3213214B1 (fr) * | 2014-10-30 | 2021-03-03 | SPHEREA Test & Services | Banc et logiciel pour tester un appareillage electrique, notamment un calculateur |
TWI628942B (zh) * | 2015-02-05 | 2018-07-01 | 絡達科技股份有限公司 | 可自我檢測操作狀態之通訊模組、通訊裝置及其檢測方法 |
FR3033412B1 (fr) * | 2015-03-06 | 2019-04-12 | Starchip | Testeur de circuits integres sur une galette de silicium et circuit integre. |
US10429437B2 (en) * | 2015-05-28 | 2019-10-01 | Keysight Technologies, Inc. | Automatically generated test diagram |
KR20160148921A (ko) * | 2015-06-17 | 2016-12-27 | 에스케이하이닉스 주식회사 | 반도체 장치를 위한 휴대 가능한 테스트 장치 및 이를 이용한 테스트 방법 |
CN106330593B (zh) * | 2015-07-01 | 2021-03-26 | 中兴通讯股份有限公司 | 协议检测方法及装置 |
CN105044508B (zh) * | 2015-07-10 | 2017-10-27 | 珠海格力电器股份有限公司 | 产品测试方法和装置及测试系统 |
US10782348B2 (en) * | 2017-03-10 | 2020-09-22 | Keithley Instruments, Llc | Automatic device detection and connection verification |
TWI762538B (zh) * | 2017-12-13 | 2022-05-01 | 英業達股份有限公司 | 電路板的電壓腳位導通檢測系統及其方法 |
US11295051B2 (en) * | 2018-03-13 | 2022-04-05 | Hcl Technologies Limited | System and method for interactively controlling the course of a functional simulation |
US10789153B2 (en) * | 2018-04-03 | 2020-09-29 | Xilinx, Inc. | Debug controller circuit |
US11030381B2 (en) * | 2019-01-16 | 2021-06-08 | Taiwan Semiconductor Manufacturing Co., Ltd. | Leakage analysis on semiconductor device |
JP7058759B2 (ja) * | 2019-01-22 | 2022-04-22 | 株式会社アドバンテスト | 1または複数の被テストデバイスをテストするための自動試験装置、1または複数の被テストデバイスの自動試験のための方法、および、コマンドエラーを処理するためのコンピュータプログラム |
KR20220044272A (ko) * | 2019-08-06 | 2022-04-07 | 주식회사 아도반테스토 | 처리 장치와 프로그램 및/또는 데이터 메모리를 포함하는 피시험 장치를 테스트하기 위한 자동 테스트 장비와, 테스트 제어기, 피시험 장치에 대한 하나 이상의 인터페이스 및 공유 메모리를 포함하는 자동 테스트 장비와, 피시험 장치를 테스트하기 위한 방법 |
US12008043B2 (en) * | 2021-03-29 | 2024-06-11 | Microsoft Technology Licensing, Llc | Natural language query processing and debugging |
US11620176B2 (en) | 2021-07-15 | 2023-04-04 | Beijing Tenafe Electronic Technology Co., Ltd. | Visualization system for debug or performance analysis of SOC systems |
US11544210B1 (en) | 2021-07-15 | 2023-01-03 | Beijing Tenafe Electronic Technology Co., Ltd. | Collection of runtime information for debug and analysis |
CN113849358B (zh) * | 2021-09-18 | 2024-07-30 | 北京计算机技术及应用研究所 | 一种便携式综合接口调试设备的设计方法 |
CN116112556A (zh) * | 2023-01-18 | 2023-05-12 | 昆易电子科技(上海)有限公司 | 数据处理方法、装置、介质及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182258B1 (en) * | 1997-06-03 | 2001-01-30 | Verisity Ltd. | Method and apparatus for test generation during circuit design |
US7069526B2 (en) * | 1999-11-30 | 2006-06-27 | Synplicity, Inc. | Hardware debugging in a hardware description language |
US7085980B2 (en) * | 2002-05-02 | 2006-08-01 | International Business Machines Corporation | Method and apparatus for determining the failing operation of a device-under-test |
CN101432699A (zh) * | 2006-04-26 | 2009-05-13 | 德克萨斯仪器股份有限公司 | 在多个处理器/核的测试与调试进程期间控制电源、时钟和复位的装置和方法 |
US7996827B2 (en) * | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
CN102341718A (zh) * | 2009-03-04 | 2012-02-01 | 阿尔卡特朗讯 | 用于使用多个指令类型进行系统测试的方法与设备 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4894829A (en) * | 1988-04-21 | 1990-01-16 | Honeywell Inc. | Comprehensive design and maintenance environment for test program sets |
US5668745A (en) * | 1995-10-20 | 1997-09-16 | Lsi Logic Corporation | Method and apparatus for testing of semiconductor devices |
US6134707A (en) * | 1996-11-14 | 2000-10-17 | Altera Corporation | Apparatus and method for in-system programming of integrated circuits containing programmable elements |
US6128759A (en) * | 1998-03-20 | 2000-10-03 | Teradyne, Inc. | Flexible test environment for automatic test equipment |
US6681351B1 (en) * | 1999-10-12 | 2004-01-20 | Teradyne, Inc. | Easy to program automatic test equipment |
US6622272B1 (en) * | 2000-03-10 | 2003-09-16 | Teradyne, Inc. | Automatic test equipment methods and apparatus for interfacing with an external device |
JP4574894B2 (ja) * | 2001-05-10 | 2010-11-04 | 株式会社アドバンテスト | 半導体試験用プログラムデバッグ装置 |
US6941504B2 (en) * | 2001-11-15 | 2005-09-06 | International Business Machines Corporation | Method and apparatus for test case evaluation using a cyclic redundancy checker |
US6973607B2 (en) * | 2001-11-29 | 2005-12-06 | International Business Machines Corporation | Method and apparatus for testing electronic components |
US20030115517A1 (en) * | 2001-12-18 | 2003-06-19 | Rutten Ivo Wilhelmus Johaooes Marie | Microprocessor-based probe for integrated circuit testing |
TWI328164B (en) | 2002-05-29 | 2010-08-01 | Tokyo Electron Ltd | Method and apparatus for monitoring tool performance |
JP4009517B2 (ja) * | 2002-10-18 | 2007-11-14 | 株式会社アドバンテスト | プログラム開発支援装置およびコンパイル方法 |
US7139949B1 (en) * | 2003-01-17 | 2006-11-21 | Unisys Corporation | Test apparatus to facilitate building and testing complex computer products with contract manufacturers without proprietary information |
JPWO2005036402A1 (ja) * | 2003-10-07 | 2007-11-22 | 株式会社アドバンテスト | テストプログラムデバッグ装置、半導体試験装置、テストプログラムデバッグ方法、及び試験方法 |
US7107173B2 (en) * | 2004-02-03 | 2006-09-12 | Credence Systems Corporation | Automatic test equipment operating architecture |
US7362089B2 (en) * | 2004-05-21 | 2008-04-22 | Advantest Corporation | Carrier module for adapting non-standard instrument cards to test systems |
DE602004020401D1 (de) * | 2004-10-08 | 2009-05-14 | Verigy Pte Ltd Singapore | Merkmalorientierte testprogrammentwicklung und ausführung |
US7552360B2 (en) * | 2005-03-21 | 2009-06-23 | Texas Instruments Incorporated | Debug and test system with format select register circuitry |
US7376876B2 (en) * | 2004-12-23 | 2008-05-20 | Honeywell International Inc. | Test program set generation tool |
US7251763B2 (en) * | 2005-03-07 | 2007-07-31 | Motorola, Inc. | Boundary scan testing system |
US7343558B2 (en) * | 2005-03-31 | 2008-03-11 | Teradyne, Inc. | Configurable automatic-test-equipment system |
JP4427002B2 (ja) * | 2005-05-20 | 2010-03-03 | 株式会社アドバンテスト | 半導体試験用プログラムデバッグ装置 |
WO2007000806A1 (ja) | 2005-06-28 | 2007-01-04 | Genesis Technology Inc. | 半導体集積回路開発支援システム |
US20070262879A1 (en) * | 2006-05-12 | 2007-11-15 | Robert Greiner | I/O bus for analog sensors in an IC |
US7590903B2 (en) * | 2006-05-15 | 2009-09-15 | Verigy (Singapore) Pte. Ltd. | Re-configurable architecture for automated test equipment |
JP2009544012A (ja) * | 2006-07-10 | 2009-12-10 | アステリオン・インコーポレイテッド | 試験システムで処理を実行するシステムおよび方法 |
US20080126655A1 (en) * | 2006-09-06 | 2008-05-29 | Heinz Baier | Single pci card implementation of development system controller, lab instrument controller, and jtag debugger |
US20090112548A1 (en) * | 2007-10-30 | 2009-04-30 | Conner George W | A method for testing in a reconfigurable tester |
US20090113245A1 (en) | 2007-10-30 | 2009-04-30 | Teradyne, Inc. | Protocol aware digital channel apparatus |
JP5022262B2 (ja) * | 2008-02-12 | 2012-09-12 | 株式会社アドバンテスト | デバッグ中にツールを使用可能な試験システム及び方法 |
US8838406B2 (en) | 2008-11-11 | 2014-09-16 | Advantest (Singapore) Pte Ltd | Re-configurable test circuit, method for operating an automated test equipment, apparatus, method and computer program for setting up an automated test equipment |
US8195419B2 (en) | 2009-03-13 | 2012-06-05 | Teradyne, Inc. | General purpose protocol engine |
US9164859B2 (en) * | 2009-09-25 | 2015-10-20 | Qualcomm Incorporated | Computing device for enabling concurrent testing |
TWI463502B (zh) * | 2010-11-17 | 2014-12-01 | Hoy Technologies Co | 內嵌式測試模組 |
US8639981B2 (en) * | 2011-08-29 | 2014-01-28 | Apple Inc. | Flexible SoC design verification environment |
US8806453B1 (en) * | 2011-09-15 | 2014-08-12 | Lockheed Martin Corporation | Integrating disparate programming languages to form a new programming language |
US20130227367A1 (en) * | 2012-01-17 | 2013-08-29 | Allen J. Czamara | Test IP-Based A.T.E. Instrument Architecture |
US9311201B2 (en) * | 2012-08-22 | 2016-04-12 | International Business Machines Corporation | Real-time rule engine for adaptive testing of integrated circuits |
-
2012
- 2012-11-19 US US13/680,407 patent/US9959186B2/en active Active
-
2013
- 2013-10-24 TW TW102138432A patent/TWI619955B/zh active
- 2013-10-24 TW TW106139945A patent/TW201809709A/zh unknown
- 2013-11-08 WO PCT/US2013/069215 patent/WO2014078196A1/en active Application Filing
- 2013-11-08 KR KR1020157012641A patent/KR102104915B1/ko active IP Right Grant
- 2013-11-08 CN CN201380060064.4A patent/CN104797948B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182258B1 (en) * | 1997-06-03 | 2001-01-30 | Verisity Ltd. | Method and apparatus for test generation during circuit design |
US7069526B2 (en) * | 1999-11-30 | 2006-06-27 | Synplicity, Inc. | Hardware debugging in a hardware description language |
US7996827B2 (en) * | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7085980B2 (en) * | 2002-05-02 | 2006-08-01 | International Business Machines Corporation | Method and apparatus for determining the failing operation of a device-under-test |
CN101432699A (zh) * | 2006-04-26 | 2009-05-13 | 德克萨斯仪器股份有限公司 | 在多个处理器/核的测试与调试进程期间控制电源、时钟和复位的装置和方法 |
CN102341718A (zh) * | 2009-03-04 | 2012-02-01 | 阿尔卡特朗讯 | 用于使用多个指令类型进行系统测试的方法与设备 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016184170A1 (zh) * | 2015-10-08 | 2016-11-24 | 中兴通讯股份有限公司 | Smi接口器件的调试装置及方法、存储介质 |
CN105445644A (zh) * | 2015-11-18 | 2016-03-30 | 南昌欧菲生物识别技术有限公司 | 多类型芯片测试板、测试系统及测试机台 |
CN110603528A (zh) * | 2017-03-06 | 2019-12-20 | 赛灵思公司 | 调试系统和方法 |
CN110603528B (zh) * | 2017-03-06 | 2023-11-14 | 赛灵思公司 | 调试系统和方法 |
CN110634530A (zh) * | 2019-09-10 | 2019-12-31 | 珠海博雅科技有限公司 | 芯片的测试系统和测试方法 |
CN111258826A (zh) * | 2020-01-09 | 2020-06-09 | 深圳市德名利电子有限公司 | 一种存储设备的命令序列测试方法和装置以及设备 |
CN111258826B (zh) * | 2020-01-09 | 2023-08-15 | 深圳市德明利技术股份有限公司 | 一种存储设备的命令序列测试方法和装置以及设备 |
CN111984435A (zh) * | 2020-08-20 | 2020-11-24 | 中电科仪器仪表有限公司 | 一种测试程序的执行与调试方法及系统 |
CN112630651A (zh) * | 2020-11-27 | 2021-04-09 | 四川诚邦浩然测控技术有限公司 | 一种电机性能测控管理平台 |
CN114646867A (zh) * | 2022-05-18 | 2022-06-21 | 南京宏泰半导体科技有限公司 | 一种集成电路并发测试装置及方法 |
CN114646867B (zh) * | 2022-05-18 | 2022-10-28 | 南京宏泰半导体科技有限公司 | 一种集成电路并发测试装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140143600A1 (en) | 2014-05-22 |
TW201421053A (zh) | 2014-06-01 |
KR102104915B1 (ko) | 2020-04-27 |
CN104797948B (zh) | 2017-08-08 |
US9959186B2 (en) | 2018-05-01 |
WO2014078196A1 (en) | 2014-05-22 |
KR20150087227A (ko) | 2015-07-29 |
TW201809709A (zh) | 2018-03-16 |
TWI619955B (zh) | 2018-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104797948A (zh) | 半导体器件测试环境中的调试 | |
US9785542B2 (en) | Implementing edit and update functionality within a development environment used to compile test plans for automated semiconductor device testing | |
US7809520B2 (en) | Test equipment, method for loading test plan and program product | |
US9164859B2 (en) | Computing device for enabling concurrent testing | |
US8402438B1 (en) | Method and system for generating verification information and tests for software | |
JP2009116876A (ja) | 試験装置のシミュレーションシステム、方法、及びプログラム製品 | |
JP2009116878A (ja) | 試験装置のシミュレーションシステム、方法、及びプログラム製品 | |
KR102481257B1 (ko) | 시험 프로그램 흐름 제어 기법 | |
US10156611B2 (en) | Executing code on a test instrument in response to an event | |
JP2010146592A (ja) | テストプログラムデバッグ装置、半導体試験装置、テストプログラムデバッグ方法、及び試験方法 | |
CN105891733A (zh) | 一种在电源测试过程中进行调试的方法、装置及系统 | |
CN112444731A (zh) | 芯片测试方法、装置、处理器芯片及服务器 | |
TW201312340A (zh) | 手持式電子裝置的測試系統及方法 | |
US7047174B2 (en) | Method for producing test patterns for testing an integrated circuit | |
CN106093897B (zh) | 一种雷达系统的测试系统及测试方法 | |
CN112782562A (zh) | 基于ate的soc芯片低电压差分信号测试方法及装置 | |
CN117350205A (zh) | 芯片的验证方法、装置、电子设备和存储介质 | |
JP5269450B2 (ja) | 試験システム及びバックアノテーション方法 | |
US20140358514A1 (en) | System and method for automatically generating offline result emulation files from a testflow | |
CN103220186A (zh) | 一种通信设备测试方法和系统 | |
Jain et al. | Implementing ATML into the Automatic Test System development and execution workflow | |
US9791506B1 (en) | Cross-platform device testing through low level drivers | |
CN118363873A (zh) | 调试模块的测试方法、装置、设备及可读存储介质 | |
CN117849578A (zh) | 基于仿真器的芯片自动化测试方法及系统 | |
CN117112320A (zh) | 接口控制器的验证方法、平台、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |