半导体器件测试环境中的调试的制作方法_3

文档序号:8476601阅读:来源:国知局
块202可为在调试器模块204与测试仪206之间的应用程序编程接口(API)或可在该API内实施。
[0056]调试器模块204可以任何合适方式来实施,包括使用第三方调试工具,其可被设计成理解用户想要用DUT 208做什么的逻辑。这些调试工具可与用户所供应的客户代码交互,该客户代码实施测试程序。基于用户输入、测试程序和/或测试仪206所提供的测量或其他信息,调试器模块204可生成调试命令212。例如,调试器模块204可生成包括用于对DUT 208进行操作的命令在内的调试命令212。在一些实施例中,对调试器模块204的单个用户输入可产生一连串调试命令。例如,指示用于将软件加载到DUT 208上的存储器中的命令的用户输入可产生一连串调试命令212。
[0057]然而,由调试器模块204发出的调试命令212可不为适合于直接施加到测试仪206的格式。例如,调试命令212可为未针对测试仪206专门准备的高级编程语言。转换模块202可提供在调试命令212与测试仪命令214之间的必要转换。
[0058]这些测试仪命令214可仍处于相对较高级别。例如,测试仪命令214可指定在DUT内的某个位置处进行读取和写入,而不是DUT 208将需要用来致使进行指定操作的一系列特定值。系统200中的抽象层还可包括用于将较高级测试仪命令214转化为控制测试仪206内的仪器生成或测量恰当信号的较低级仪器命令的部件。
[0059]此类部件可包括测试仪控制模块。例如,测试仪控制模块可为协议感知(PA)引擎210。但是,应当理解,其他合适ATE引擎也可用作测试仪控制模块,诸如数字信号源和捕获(DSSC)。在一些实施例中,PA引擎210可被配置成生成仪器命令214,其致使测试仪内部的仪器生成一系列位216以控制DUT 208中的硬件进行由测试仪命令指定的操作,该测试仪命令是响应于一个或多个调试命令212来生成的。
[0060]协议感知引擎的例子可在美国专利8,195,419和申请2010/0312516中找到,这两个文件的全文据此以引用方式并入。然而,可使用将测试仪命令转化为控制以恰当级别和时序生成信号以供施加到特定DUT的仪器的命令的任何合适部件。协议感知引擎可根据协议来操作,所述协议以根据在DUT上所生成信号的状态的时间或值来生成信号。例如,DUT可在数据可供读取时断定“就绪”信号,并且协议感知引擎可响应于此类就绪信号来发出致使值被读取的仪器命令。在一些实施例中,协议感知引擎可对数字信号进行操作。但是,应当理解,协议引擎可在一些实施例中对模拟和/或数字信号进行操作。
[0061]因而,应当理解,任何合适测试仪控制模块可充当PA引擎210。此外,将较高级测试仪命令转化为控制DUT信号生成的仪器命令的任何合适模块可充当PA引擎210。
[0062]尽管已知提供具有PA引擎210的测试仪以在测试仪命令214与用于仪器的控制信号之间进行转化,但转换模块202和PA引擎210可提供额外抽象。此类额外抽象可例如使得用户能够使用更高级且更用户友好的编程语言(即,客户的语言(诸如C、C++、Java))来准备测试程序。此外,其允许可容易地被配置成与任何测试系统或DUT —起操作的测试系统。调试器模块204可产生通用输出,而不管测试仪或DUT如何。转换模块202可特定于测试仪,但独立于DUT。但是,PA引擎210可针对特定DUT进行配置。
[0063]图3是根据一些实施例的示出示例性测试系统300的另外细节的示意图。图3示出了转换模块302,其提供在调试器模块304与用于控制DUT 308的测试仪306之间的抽象层。测试仪306可在一些实施例中包括PA引擎310,用于从转换模块302接收测试仪命令,并且作为响应,生成将致使测试仪306内的仪器从DUT 308生成或测量信号的仪器命令。
[0064]在一些实施例中,转换模块302和调试器模块可被配置在测试计算机312(例如,图1的测试计算机104)中,但就这一点而言实施例不受限制。调试器模块304可具有用户接口 314,用户可通过该用户接口来与调试器模块304所实施的各种调试工具交互。
[0065]在一些实施例中,用户输入可控制调试工具生成调试命令,这些调试命令最终致使数字仪器经由根据PA引擎310所支持的协议操作的线路318来控制DUT 308的处理器316。在一些实施例中,该协议可根据联合测试行为组织(JTAG)协议,其允许通过具有有限数目引脚(诸如串联输入和串联输出引脚、时序引脚以及一个或多个控制引脚)的测试接口来控制部件。JTAG协议可允许将程序加载到DUT 308内部的存储器中或者将值加载到特定寄存器或存储位置中。类似地,JTAG协议可允许从DUT 308内的特定寄存器或存储位置读取值。然而,应当理解,实施例不限于使用JTAG,因为其他合适协议(诸如Mip1、SP1、I2C)可用于控制DUT。
[0066]这种加载程序的能力可用于(例如)允许调试工具将测试代码加载到与处理器316相关联的固件中。测试代码可基于(例如)写入到DUT的存储器中的特定位置的值来有条件地进行操作。作为另外一种选择或除此之外,测试代码可将值写入到存储器内的位置中。这些能力可用于控制由DUT 308进行的操作的时序或进程,并且还用于提供测试仪306对进行操作的结果的存取。这些能力可用于(例如)实施指定对测试程序的操作的控制的调试命令。以此方式,系统可支持(例如)测试程序的单步执行,其中用户可检查进行每个步骤的结果。这个能力还可支持执行到断点或在特定条件下自陷,这可基于DUT 308内部的值。
[0067]加载用于处理器316的程序的能力还可允许处理器316控制DUT308中的其他处理器或子系统进行充当用于DUT 308的测试的操作。例如,在图3中,示出子系统320a、320b,320c和320d。子系统的非限制性例子包括模/数转换器(ADC)、数/模转换器(DAC)、串化解串器或混合信号片上系统中通常所包含的其他核心。用户可使用在DUT 308的处理器316中实施的其代码/程序来控制DUT 308的这些子系统。作为可能的控制类型的非限制性例子,DAC可被控制用来生成特定级别的输出,ADC可被控制用来测量所述特定级别的输出。通过将测量值与预期值进行比较,可检测ADC或DAC的不恰当操作。
[0068]除此之外或作为另外一种选择,测试仪306的其他仪器(诸如仪器322a、322b和322c)可被控制用来进行DUT 308中的子系统(诸如子系统320a至320d)的激励和/或捕获。这些仪器可直接由测试仪命令控制或可间接由另一个部件(诸如PA引擎310)所发出的命令控制。这个控制可与由处理器316进行的测试操作同步。
[0069]不管这个控制的性质和来源如何,测试仪306的仪器322a至322c可直接或间接地基于从转换模块302接收的测试仪命令来在DUT 308处生成和/或测量信号。例如,这可用于RF、AC、DC和数字仪器系列。
[0070]在上述实施例中,PA引擎310用来与DUT 308进行通信的协议可为4线线路的联合测试行为组织(JTAG)协议,如本领域中已知(IEEE标准1149.1)。但是,应当理解,可使用任何合适的协议系列,诸如Mip1、SP1、I2C,因为就这一点而言实施例不受限制。
[0071]DUT 308中的处理器316可被配置成接收测试代码并且将其存储在固件中。但是,测试代码可以任何合适方式存储在DUT 308内。另外,已经描述了处理器316可被编程以使得其可被控制用来通过用户测试程序进行单步操作。在一些实施例中,处理器316可被控制用来单步调试被加载到DUT 308中的测试代码,其中在每个步骤之后结果可供测试仪306使用(使得其接着可供调试器模块304使用)。此类能力可存在于DUT处理器中,如本领域中已知。例如,如果处理器316是ARM处理器,则其可具有根据控制协议所定义的控制接口以及单步调试测试指令的能力。例如,控制接口可为根据JTAG或另一种合适控制协议的接口。在一些实施例中,DUT处理器316具有调试支持能力,并且转换模块302能够发出仪器命令以存取处理器316中的调试支持能力。
[0072]不管哪些部件进行测试,在此类测试期间做出的测量都可通过转换模块302返回到调试器模块304。当在这个方向上通过转换模块302传递信息时,该信息可从指示施加一个或多个调试命令的结果的高级测试仪信息(诸如从DUT 308读取的值或获得的状态)转化而来。调试器模块304可采用此类测试的结果并且提供各种输出。
[0073]在所示出的实施例中,在用户接口 314处提供这些输出。此类输出可指示由DUT308的不同子系统320a至320d进行的读取、写入或其他操作的结果。例如,如果子系统320a是模/数转换器(ADC)JBiDUT 308的输入可表示所捕获的模拟波形。此类波形可(例如)通过加载在DUT中以控制处理器316准备ADC来捕获模拟输入波形的测试代码的操作捕获。因而,可响应于指示波形的捕获的用户输入来捕获波形。转换模块302可将所述命令转化为高级测试仪命令以致使为处理器316加载测试代码,触发该测试代码执行并且接着控制测试仪306内的一个或多个仪器读取所得数据。数据可因此被提供给用户,从而允许用户观测DUT 308是否准确地测量了施加到DUT 308的模拟信号。用户可能接着响应于所观测到的数据来输入额外命令。然而,不管用户输入的确切性质如何,所示出的部件可实现交互式测试环境,其中由用户指令实时地控制部件。
[0074]图4是根据一些实施例的调试过程的流程图,该调试过程在这个例子中包括测试程序的开发和调试。在图4的示例性过程400中,示出由设计工程师和测试工程师采用的过程步骤的交互。在两条路径中,如本文所述的部件可用于实现DUT的实时交互式调试。
[0075]测试工程师可采用如本文所述的部件来进行DUT的交互式调试。在步骤402中,测试工程师可用现有测
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1