集成电路测试设备和方法

文档序号:1676792 发布日期:2019-12-31 浏览:18次 >En<

阅读说明:本技术 集成电路测试设备和方法 (Integrated circuit testing apparatus and method ) 是由 米凯莱·波尔托拉恩 于 2018-05-17 设计创作,主要内容包括:本发明涉及一种测试设备,包括:测试装置(302),具有用于存储数据处理指令的存储器(304)和一个或多个处理器,所述处理器被设计成当执行数据处理指令时执行测试代码(308),以便对被测装置(102)执行测试操作,所述测试代码(308)定义应用于被测装置的测试仪器的一个或多个测试模式和一个或多个测试算法,所述测试代码具有独立于测试装置(302)和被测装置(102)之间的测试接口(106、08)的第一格式;以及接口控制器(310),被设计成将测试代码执行期间由测试装置生成的通信转换成适合于测试接口的第二格式,并将来自被测装置(102)的通信转换成第一格式。(The invention relates to a test device comprising: a test device (302) having a memory (304) for storing data processing instructions and one or more processors designed to execute test code (308) when executing the data processing instructions so as to perform a test operation on the device under test (102), the test code (308) defining one or more test patterns and one or more test algorithms to be applied to a test apparatus of the device under test, the test code having a first format independent of a test interface (106, 08) between the test device (302) and the device under test (102); and an interface controller (310) designed to convert communications generated by the test device during execution of the test code into a second format suitable for the test interface and to convert communications from the device under test (102) into the first format.)

集成电路测试设备和方法

技术领域

本说明书涉及测试集成电路的领域,特别是自动数字测试。

背景技术

在自动数字测试领域,多年来,通常被称为JTAG标准(联合测试行动小组)的标准IEEE 1149.1定义了用于测试集成电路的测试接口。然而,随着过去几年电路技术的变化,例如,SoC(片上系统)和3D集成技术,需要增加能力以允许合适的测试。

在测试能力方面取得进展的努力中,开发了新的标准IEEE 1687-2014,通常称为IJTAG(内部JTAG),并于2014年在美国IEEE发布,题为“IEEE Standard for Access andControl of Instrumentation Embedded within a Semiconductor Device”。相对于标准IEEE 1149.1,这个新标准引入了两个显著的变化:

动态长度分析字符串;以及

通过JTAG字符串中介使用仪器。

虽然专家们已经注意到动态长度分析字符串可能带来的可能性领域,但相对较少的工作集中在仪器访问的可能性上。事实上,对仪器的实际功能访问与基于自动测试模式生成(ATPG)的当前测试流程不兼容。

因此,在该技术中需要一种解决方案来生成测试并将其应用于集成电路,该集成电路包括通过JTAG字符串访问仪器。

自动测试领域的另一困难是,随着电路元件的不断小型化,电路的密度增加,包含在集成电路中的测试串变得越来越复杂。这可能会导致执行自动测试所需的时间增加。此外,电路的有效访问接口通常在最后一刻决定,这迫使传统的ATPG执行复杂的转换操作。因此,还需要提供一种允许快速执行自动测试序列的测试设备和方法。

发明内容

本说明书的实施方式的目的是至少部分地解决现有技术的一个或多个问题。

根据一个方面,提供了一种用于测试被测装置的测试设备,所述设备包括:测试装置,包括用于存储数据处理指令的存储器和一个或多个处理器,当执行数据处理指令时,所述处理器被设置为:执行测试代码,以便对被测装置执行测试操作,所述测试代码定义应用于被测装置的测试仪器的一个或多个测试模式和一个或多个测试算法,所述测试代码具有独立于测试装置和被测装置之间的测试接口的第一格式;以及接口控制器,耦接到被测装置,并且被设置为将测试代码执行期间由测试装置生成的通信转换成适合于测试接口的第二格式,并且将来自被测装置的通信转换成第一格式。

根据一个实施方式,测试设备包括由测试装置的一个或多个处理器或另一装置实现的多个接口控制器,测试装置被设置为从多个接口控制器中选择一个来执行转换。

根据一个实施方式,测试装置的一个或多个处理器、或者测试生成工具的一个或多个其他处理器,被设置为在测试装置执行测试代码之前生成测试代码。

根据一个实施方式,测试设备还包括将接口控制器耦接到被测装置的测试接口。

根据一个实施方式,测试装置被设置为并行执行应用于第一测试仪器的第一测试算法和应用于第二测试仪器的第二测试算法。

根据一个实施方式,测试装置的一个或多个处理器还被设置为访问外部库,外部库定义了用于测试被测装置的子电路的一个或多个其他测试算法。

根据一个实施方式,测试装置的一个或多个处理器被设置为通过将外部库包含到测试代码中、和/或通过将对一个或多个其他测试算法的函数调用包含到测试代码中,来生成测试代码。

根据一个实施方式,子电路实现数据或信号处理功能,并且一个或多个其他测试算法被设置为验证数据或信号处理功能的预期行为。

根据一个实施方式,子电路实现加密功能,并且一个或多个其他测试算法被设置为提供加密和/或解密操作,以便允许测试生成工具验证加密功能的行为。

根据另一方面,提供了一种测试系统,包括:上述测试设备;以及被测装置,耦接到测试设备,被测装置包括测试访问端口和多个测试仪器,每个测试仪器包括一个或多个分析寄存器。

根据另一方面,提供了一种用于测试被测装置的方法,方法包括:由测试装置执行测试代码,以便对被测装置执行测试操作,测试代码定义应用于被测装置的测试仪器的一个或多个测试模式和一个或多个测试算法,测试代码具有独立于测试生成工具和被测装置之间的测试接口的第一格式;并且在测试阶段:将由测试代码的执行所生成的并旨在用于被测装置的通信转换成适合于测试接口的第二格式;并且将来自被测装置的通信转换成第一格式。

根据一个实施方式,该方法还包括在执行测试代码之前,由测试装置或测试生成工具的一个或多个其他处理器生成测试代码。

根据一个实施方式,该方法还包括由测试装置从多个接口控制器中选择一个来执行转换。

根据一个实施方式,该方法还包括由测试装置并行执行应用于第一测试仪器的第一测试算法和应用于第二测试仪器的第二测试算法。

附图说明

将在下面出于信息目的给出的特定实施方式的描述中,并且以非限制性的方式结合附图,详细地公开这些以及其它目的、特征和优点,其中:

图1示意性地示出了典型的ATPG;

图2更详细地示意性示出了图1的包括被测装置的集成电路;

图3A和图3B示意性示出了根据本说明书的实施方式的测试设备;

图4是示出将自动测试应用于集成电路的方法中的步骤的流程图;

图5A至图5D示意性地示出了根据本说明书的实施方式的与图3A和图3B的测试设备的不同应用;

图6示意性示出了根据另一实施方式的测试生成工具;

图7A示意性地示出了根据本说明书的实施方式的适于测试FFT功能(快速傅立叶变换)的图3B的测试设备的一部分;以及

图7B示意性地示出了根据本说明书的实施方式的适于测试加密功能的图3B的测试设备的一部分。

具体实施方式

图1示意性地示出了基于标准IJTAG提出的测试设备100。

集成电路101包括例如通过测试访问端口(TAP)104中介来访问的被测装置(DUT)102。在图1的示例中,TAP 104集成到与DUT 102相同的芯片中,但是在替代实施方式中,这可以是单独的芯片。

TAP 104例如通过测试接口(interface)108中介与测试控制器(testcontroller)106通信。测试控制器106基于测试模式(input pattern)110在DUT 102中执行测试序列,测试模式通过TAP 104中介加载到DUT 102中。例如,测试模式是位序列,位序列被加载到包含到DUT 102中的测试仪器中,例如,通过使用利用BDSL(边界扫描描述语言)的边界分析操作。这需要例如通过基于测试模式编程分析寄存器,然后通过允许DUT102在检索分析寄存器中的修改数据位之前操作一个或多个时钟周期,将功能配置加载到DUT 102中。然后,修改后的数据位提供给测试控制器,以便生成输出测试模式(output pattern)112,由测试控制器106将该输出测试模式例如与预期测试模式(expected pattern)114进行比较。如果输出测试模式112和预期测试模式114之间一致,则这意味着成功执行测试。模式有时在技术中称为“向量”,在本说明书中,这两个术语用作同义词。

输入测试模式110和预期测试模式114由测试生成工具(TGT)116基于各种输入文件生成。例如,TGT 116接收DfT(设计测试)文件(DFT文件)118、电路描述文件(CIRCUITDESCRIPTION)120和故障模型(FAULT MODEL)122。DfT文件118定义例如包含到DUT 102中的测试仪器,测试仪器可以包括可以在分析测试期间访问的分析寄存器/开关、BIST(内置自测)等。电路描述120例如以连接列表的形式定义了DUT 102的电路组件。例如,故障模型指示电路设计中可能发生的潜在故障,从而可以生成测试模式,以有效地覆盖这些故障。

在图1的示例中,TGT 116还存在在TGT 116和DUT 102之间实现的测试接口(接口定义)124。在图1的示例中,该接口是通过测试控制器106中介的JTAG接口。

图2更详细地示意性地示出了根据一个实施方式的集成电路101。在这个示例中,除了TAP 104之外,集成电路101还包括构成DUT 102的三个电路块102A、102B、102C。电路块102A包括例如通过分析字符串206连接到TAP 104的测试仪器202和204,电路块102B包括例如通过分析字符串210连接到TAP 104的测试仪器208,并且电路块102C包括例如通过分析字符串218连接到TAP 104的测试仪器212、214和216。

现在参考图1和图2,为了将测试应用于测试仪器202至216的每一个,例如,TGT116使用PDL(过程定义语言)来包装测试向量,并允许测试控制器106应用该测试向量。由PDL包装的向量可以由TGT 116调度和合并,以便最小化测试的持续时间。

标准IJTAG 1687还考虑了在测试期间中与测试仪器的更高级的交互。特别地,标准的IJTAG提出了一种功能性用途,其中,可以描述原始仪器,并且可以在这些仪器的边界上定义PDL。特别地,PDL语言定义了仪器的输入/输出值,然后对这些值进行编译,以便获得比接口操作序列更高级别的向量。这在技术中通常称为“重定向”。最简单的0级PDL语言描述了例如输入/输出(I/O)向量运算,而1级PDL语言引入了原始数据接口,原始数据接口可用于将仪器与例如用动态编程语言Tcl编写的算法相接。

然而,在图1的示例中,TGT 116被设置为在单个步骤中生成输入测试模式110和预期测试模式114。一旦已经生成预期测试模式,则TGT 116不再参与测试过程,并且测试控制器基于PDL文件通过测试控制器106中介将测试模式应用于DUT来实现测试。因此,测试流程沿单一方向,从TGT 116移动到DUT,并且没有返回TGT 116的路径,该路径允许执行基于从DUT返回的信号而改变的算法。

事实上,在图1的示例中,测试的生成和测试的应用是产品开发中的两个不同的步骤,通常由不同的团队在不同的地点和不同的时间执行。因此,当测试控制器106应用输入模式110时,TGT 116甚至可能不可用。

此外,Tcl本质上是连续的,因此要确保不同仪器的测试同时进行是困难的并且计算繁重,这使得很难在每个仪器中并行执行测试算法。

另一困难是,即使授权TGT 116接收从DUT 102返回的数据模式并执行算法,以便在DUT 102的测试阶段期间动态地修改输入测试模式110,这样的测试过程也将是缓慢和复杂的,因为TGT 116应该基于TGT 116和DUT 102之间使用的特定接口来解释输出模式,并且应该在确定修改测试模式的方式期间考虑接口124的定义。此外,TGT 116同时执行多个测试算法将是缓慢的,因为TGT 116在能够执行用于另一仪器的另一算法之前经常等待测试终止。

图3A和图3B示意性地示出了根据一个实施方式的测试设备,该测试设备解决了上文关于图1的测试设备100描述的至少一些困难。图3A和图3B的某些元件类似于图1的测试设备100的那些元件,并且这些元件具有相同的附图标记,并且不再详细描述。

图3A示意性地示出了用于生成和执行测试设备的测试代码300A的模块。该模块300A包括测试生成工具(TGT)302,其在几个方面中不同于图1的TGT 116,以下将更详细地描述。

与图1的TGT 116一样,TGT 302接收例如DFT文件118、电路描述120和故障模型122,这些将不再详细描述。

TGT 302包括例如一个或多个处理器,该处理器执行存储在指令存储器(INSTRMEM)304中的数据处理指令。例如,这些指令的执行使得TGT 302的所述一个或多个处理器被配置为生成并执行测试代码(TEST CODE)308,以便测试DUT(图3A中未示出)。测试代码包括例如应用于DUT的仪器的一个或多个测试模式和一个或多个测试算法。在一个示例中,测试模式通过使用0级POL来定义,并且测试算法通过使用1级POL来定义,并且包括用诸如Tcl等高级语言编写的代码。然而,此处使用的术语“测试代码”不仅指包括测试模式和测试算法的代码,还指为了实现测试的可执行代码,这将在下文中更详细地描述。

测试代码例如具有独立于TGT 302和DUT之间的接口的格式。例如,TGT 302包括存储器,该存储器存储定义抽象接口(abstract interface)306的数据,特别是用于测试代码的抽象格式。

图3B示意性地示出了例如将TGT 302连接到DUT 102的测试设备的部分300B。在该示例中,假设测试代码由TGT 302执行,换言之,相同的装置生成并执行测试代码。然而,在替代实施方式中,单独的装置可以用于生成和执行测试代码,其中执行由任何测试装置来完成。

如图3B所示,通过执行测试代码308而生成的到DUT 102的通信,例如由抽象API(应用编程接口)中介提供给接口控制器(interface driver,接口驱动器)310。如本领域技术人员所知,应用程序中的API在用高级语言编写的程序和执行所需操作的例程或函数之间提供接口。这些例程可以用相同的语言或不同的语言实现,并且可以以可执行代码或目标代码的形式包含在预编译模块包中。

接口控制器310将例如通信从测试代码使用的抽象格式转换成适合于TGT 302和DUT 102之间的接口的格式。类似地,接口控制器310将例如来自DUT 102的通信转换成TGT302使用的抽象格式。尽管在替代实施方式中,接口控制器的功能可以由TGT 302的一个或多个处理器执行的代码来实现,但是接口控制器310例如由与TGT 302相关的独立电路实现。

接口控制器310通过专用API接口中介耦接到测试控制器106,在图3B的示例中,专用接口是例如JTAG接口。测试控制器106通过接口108中介耦接到集成电路101。如图1所示,集成电路101包括例如TAP 104,以便与DUT 102相接,但是在替代实施方式中,TAP 104可以是与DUT 102分离的芯片。

由TGT 302执行测试代码308使得例如经由接口控制器310和测试控制器106将测试模式和测试算法应用到DUT 102,并且由DUT 102返回的数据例如被供应回TGT 302,从而可以对其进行解释。特别地,测试代码的执行导致测试算法的实现,并且可以导致输出数据(test output)312的生成。

在某些实施方式中,配置信息(configuration)314被提供给执行测试代码308的装置,并且例如指示接口的类型,从而使得可以选择在测试阶段期间使用的合适的接口控制器。例如,测试装置包括一个或多个其他接口控制器310’,用于控制不同类型的接口,并且测试装置基于配置信息314选择合适的接口控制器310、310’。

以独立于TGT 302和DUT 102之间的接口的抽象格式提供测试代码的优点在于,由于TGT 302不需要考虑特定的接口格式,所以该测试代码的执行相对较快。此外,与DUT 102的通信由接口控制器310管理,这允许在TGT 302和接口控制器310之间并行操作。这意味着TGT 302无需在继续执行关于DUT 102的其他仪器的测试代码之前,等待DUT 102接收和处理与DUT 102的给定仪器的通信。

现在将参考图4更详细地描述使用图3A和图3B的测试设备的DUT的测试方法。

图4是示出根据实施方式的DUT测试方法中的步骤的流程图。

该方法例如由图3A和图3B的测试设备的TGT 302和接口控制器310实现。

在步骤401中,TGT 302生成抽象格式的测试代码,该格式独立于将TGT 302连接到DUT 102的接口。抽象格式例如是TGT 302使用的格式和与DUT 302的接口使用的格式之间的中间格式。测试代码包括例如应用于DUT的仪器的一个或多个测试模式和一个或多个测试算法。测试代码的生成例如是基于DFT文件118、电路描述120和故障模型122中的一个或几个元素。

在步骤402中,执行测试代码。例如,测试代码包括打包在代码中的测试模式和测试算法,该代码可以由TGT 302的处理器执行,或者更通常由用于执行测试代码的任何测试装置的处理器执行。在某些实施方式中,测试代码的执行需要将多个测试算法并行应用于DUT 102的相应多个测试仪器。

测试代码的执行还需要例如构建DUT 102的测试仪器测试模型,该模型定义仪器在分析字符串中的位置以及仪器状态。仪器状态包括例如DUT中动态元素的状态,包括段***位(SIB)和分析多路复用器。因此,测试代码本身不包括例如仅在测试代码执行期间生成的系统模型。

在步骤403中,在测试代码的执行期间,接口控制器310将从TGT 302到DUT 102的通信转换成适合于TGT 302和DUT 102之间的特定接口的格式。这些通信包括例如要应用于DUT 102的仪器的一个或多个测试模式以及要应用于DUT 102的仪器的一个或多个测试算法。

在步骤404中,接口控制器310将从DUT 102到TGT 302的通信转换成中间格式,使得它们可以被TGT 302处理。这些通信包括例如DUT102的输出测试模式。例如,这些通信用于更新系统模型中测试仪器的状态,然后可以用来生成其他测试模式。

现在将参考图5A至图5D更详细地描述TGT 302和DUT 102之间的特定接口的示例。

图5A示意性地示出了根据实施方式的部分300B,其中,TGT 302和DUT 102之间的接口由FTDI芯片(Future Technology Devices International Ltd)(FTDI chip)502提供,该芯片将例如USB(通用串行总线)接口转换成JTAG接口(JTAG)504。在该实施方式中,接口控制器310包括例如LibFTDI驱动器(LIB FTDI driver),该驱动器例如是用于控制FTDI芯片502的低级代码,并且配置信息314识别例如该LibFTDI驱动器,使得可以选择该驱动器用于转换。

图5B示意性地示出了根据关于图5A的替代实施方式的测试设备的部分300B,其中,通过自动测试设备(ATE)508中介来访问DUT 102,例如,通常在制造中使用的设备。在这种情况下,TGT 302和DUT 102之间的接口例如由被接口控制器310控制的高速接口510实现,例如光纤接口,接口控制器310包括与线路卡(line cards)512通信的ATE专用框架(ATEspecific framework),线路卡负责与DUT 102的物理接口。

图5C示意性地示出了根据关于图5A和图5B的替代实施方式的测试设备的部分300B,其中,模拟了DUT。在这种情况下,DUT 102例如通过使用硬件描述语言来实现,例如VHDL语言(VHSIC(超高速集成电路)硬件设计语言)或Verilog,并且由高级测试台SVVERILOG 516控制该模拟。在这个示例中,通过使用HDL SystemVerilog(SV)来实现测试台。TGT 302和DUT 102之间的接口由实现接口控制器310的DPI(直接编程接口)中介和DPI调用518来完成,并且通过使用包括测试台SV(SV testbench)516的支持DPI的模拟器(DPI-enabled simulator)520来访问DUT 102。

图5D示意性地示出了类似于图5C的根据实施方式的测试设备的部分300B,其中,支持DPI的模拟器520还包括模式窥探器(pattern snooper)524。模式窥探器524使得可以例如从DUT 102提取静态模式(static patterns)526并以已知格式存放。这种实施方式的优点在于,该操作类似于传统的ATPG(自动测试模式生成)系统的操作,因此图5D的测试装置是向后兼容的。代替使用支持DPI的模拟器520,该实施方式可以通过使用没有模拟器的模拟来实现,以便以较低的计算工作量提供没有时间元素的模式。

本文描述的测试装置的优点在于,可以通过使用TGT 302,应用相对复杂的测试算法来测试DUT 102的特定电路。例如,在过去,电路测试实现了复杂的功能,例如快速傅立叶变换(FFT)或加密功能,这需要使用专用的BIST(内建自测),消耗了芯片上宝贵的空间。例如,TGT 302能够生成测试代码,该测试代码包括实现这种复杂测试算法的代码,或者包括对存储代码的库的函数调用,以便执行这种复杂测试算法,例如,现在将参考图6、图7A和图7B进行描述。

图6示出了类似于图3A的根据另一实施方式的用于生成和执行测试代码300A的模块,但是其中,还包括耦接到TGT 302的外部库(external library)602。这个外部库602存储例如可以应用于DUT的仪器的复杂测试算法。

图7A示意性地示出了一示例,其中,DUT 102包括实现FFT功能的FFT电路(未示出),并且包括为该FFT电路提供测试接口的仪器。图6的外部库602包括例如定义测试序列的FFT库,用于测试FFT功能并验证输出端的响应。专用算法(custom algorithm)704例如包含到测试代码302中,以便实现FFT的复杂测试算法。此外,FFT库706例如包含到测试代码中,以便在测试阶段期间可访问。如图所示,来自DUT 102的FFT电路的原始数据的输出可以提供复杂的波形708,在该示例中该波形指示随着输入信号的频率的输出信号的幅度,并且专用算法704和库706可以允许TGT 302验证这样的波形。

图7B示意性地示出了另一示例,其中,DUT 102包括实现加密功能的加密电路(未示出),并且包括为该加密电路提供测试接口的仪器。在这种情况下,图6的外部库602包括例如加密库。除了专用算法704之外,图7B的测试代码302还包括例如对加密库712的函数调用710,以便允许执行加密功能,并且通过这一点,使得可以验证加密电路的正确操作。特别地,加密库经由函数调用710接收例如简单文本,并将编码数据返回给函数调用710。代替这一点或此外,加密库712可以执行解密操作,并且可以从函数调用710接收加密数据,并且向函数调用710返回简单文本。

尽管已经描述了至少一个示意性实施方式,但是对于本领域技术人员来说,各种改变、修改和改进将很容易进行。例如,对于本领域技术人员来说显而易见的是,尽管已经描述了TGT生成并执行测试代码的实施方式,但是在其他实施方式中,可以由与TGT分离的装置来进行测试代码的执行。

此外,对于本领域技术人员来说,显然,尽管已经描述了用于测试FFT电路的复杂测试算法的某些示例,但是相同的原理可以应用于其他类型的待测电路,例如,任何数据或信号处理算法、或者任何模拟电路(例如模数转换器)。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:负载系统、负载试验装置和通信终端

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类