一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于动态传递参数的ATE装置和传输方法与流程

2022-05-18 08:08:53 来源:中国专利 TAG:

一种基于动态传递参数的ate装置和传输方法
技术领域
1.本发明涉及半导体自动测试设备(automatictestequipment,简称ate)领域,尤其涉及一种基于动态传递参数的ate装置和传输方法。
背景技术
:2.芯片测试在整个半导体产业链当中占有极其重要的地位。随着集成电路复杂度的提高,其测试复杂度也随之日益提高,大规模集成电路往往会要求几百次的电压、电流和时序的测试以及百万次的功能测试步骤以保证器件的完全正确,这也使得芯片的测试成本越来越高,一些器件的测试成本甚至占到芯片成本的绝大部分比例。3.自动测试设备是一种由高性能计算机控制的测试仪器的集合体,是由测试仪和计算机组合而成的测试系统,计算机通过运行测试程序的指令来控制测试硬件。半导体芯片测试机用于检测集成电路的功能和性能的完整性,是集成电路生产制造流程中确保集成电路品质的重要设备。测试系统最基本的要求是自身保证测试功能的快速性、可靠性和稳定性。其中,快速性尤为重要;因此,如何提升芯片的测试速度是半导体测试机行业的共同课题。4.目前,行业内通用的方案是,通过对ate进行编写测试程序(testprogram),来控制芯片测试的流程。由于自动测试设备的性能原因,一般采用编译型编程语言cpp进行测试程序的开发。5.由于需要在测试程序中不断的修改调试测试条件(例如硬件资源、端口号、输入激励和信号大小等),所以针对每一次调试都需要修改程序,而且在每一次测试程序中,不同的测试项目需要更改不同的测试程序。由于编译型语言的特性,测试程序一旦被修改,整个测试就需要重新编译、链接和执行等步骤才可以对更改后的测试条件生效,从而使调试效率低下,开发时间变的冗长。如果采用解释型语言开发测试程序,在测试程序还存在大部分不经常被改动的代码,因此,又会丢失部分性能。6.所以,业界急需能够提供一种动态传递参数的方法,可以将调试时需要修改的测试条件动态的加载到测试程序中执行,使得测试程序无需重新编译链接即可对更改后的测试条件生效,可以有效的提高芯片测试效率。技术实现要素:7.本发明的目的在于提供一种通过动态传递参数提高芯片测试效率的方法,能够将芯片测试程序调试时需要修改的测试条件,动态的加载到测试程序中,使得测试程序无需重新编译链接即可对更改后的测试条件生效。8.为实现上述目的,本发明的技术方案如下:9.一种通过动态传递参数提高芯片测试效率装置,基于动态传递参数的ate装置,用于测量至少一台被测设备dut;其特征在于,包括测试程序模块、编译器、可变代码模块和测试执行模块;其中,所述测试程序模块包括固定代码程序和测试条件接口程序,所述可变代码模块用于接收测试条件,所述测试条件至少包括一条动态变化的参数;所述编译器用于编译所述测试程序模块中的程序,形成可执行的第一机器指令部分,所述测试执行模块包括语法解析器atpl、虚拟机单元cvm、调度测试流单元和通信单元;所述语法解析器atpl逐句读取所述测试条件源代码,先进行词法分析和语法分析,再将所述源代码转换为中间代码并进行优化,最终将中间代码解释为可执行的第二机器指令部分,由所述虚拟机单元cvm执行第二机器指令部分;所述调度测试流单元根据cvm执行结果调度测试流,并通过所述通信单元与所述被测设备dut执行交互测试。10.进一步地,所述测试条件包括所述ate装置的硬件资源、端口号、输入激励和/或信号大小值。11.为实现上述目的,本发明又一技术方案如下:12.一种基于动态传递参数的ate装置的参数方法,其包括:13.步骤s1:动态配置测试程序模块中所涉及到的所述测试条件中的参数;14.步骤s2:所述编译器用于编译所述测试程序模块中的程序,形成可执行的第一机器指令部分;15.步骤s3:所述语法解析器atpl逐句读取所述测试条件源代码,先进行词法分析和语法分析,再将所述源代码转换为中间代码并进行优化,最终将中间代码解释为可执行的第二机器指令部分;16.步骤s4:并在对应的虚拟机单元cvm中执行第二机器指令部分,形成目标代码;17.步骤s5:所述调度测试流单元根据cvm执行结果调度测试流,并通过所述通信单元与所述被测设备dut执行交互测试,获得测试结果。18.进一步地,所述步骤s3具体包括:19.步骤s31:词法分析,即对源文件进行扫描,将源文件的字符流拆分成一个个的词(记号);20.步骤s32:语法分析,根据语法规则将这些记号构造出语法树;21.步骤s33:语义分析,对语法树的各个节点之间的关系进行检查,检查语义规则是否被违背,同时对语法树进行必要的优化;22.步骤s34:遍历语法树的节点,将各节点转化为中间代码,并按特定的顺序拼装起来,此为中间代码生成;23.步骤s35:对中间代码进行优化;24.步骤s36:将中间代码转化为目标代码;25.步骤s37:对目标代码进行优化,生成最终的目标程序。26.从上述技术方案可以看出,本发明具有如下有益效果:27.①、实现模块化的开发,模块化是设计测试程序时要达到的关键目标之一。该架构成熟和效率高的测试方法允许用户编写处理测试的不同方面的独立组件;并且,允许这些组件以各种方式混合和匹配,从而生成一个完整的测试程序。28.为此,虚拟机单元cvm加语法解析器atpl的模式允许将测试程序所需的信息分不同的编译模式来执行,将整体框架解耦,提高了测试程序的可复用性和可扩展性。29.②、可读性高,无论是开发过程还是后期维护,上述方案形成的可读性良好的代码能够大大提高编程效率,也能使代码架构更好。30.为此,本发明没有新增配置文件或其他dsl语法的文件,而是在源文件上直接进行参数及指令的修改和调试,减小开发人员的学习成本。31.③、支持在线编辑和实时生效,该语法解析器atpl和虚拟机单元cvm的执行模式使得开发人员可以对测试条件进行在线编辑和实时生效,极大的提升了调试和开发效率。32.④、实现过程优化,以advantest公司为例,advantest的测试编程语言指定了用户编写测试计划中使用的对象以及各对象之间的关系,这些程序文件由advantest公司的编译器转换为c 代码,并且通过他们的测试系统,被打包到windows动态链接库(dll)中并加载到测试调度软件上执行。33.也就是说,advantest从测试计划描述到实现的转换过程分为翻译和编译两个阶段,他们需要将测试编程语言先转换成c 语言,然后,再进行下一步的编译、链接、加载、执行等步骤,整个过程相当繁琐。34.语法解析器atpl和虚拟机单元cvm的模式则针对测试过程进行了优化,测试编程语言可直接通过atpl解析器编译,在语法树的回调函数中生成机器码,通过虚拟机单元cvm操作堆栈直接执行指令集,无需再翻译为c 代码集成到项目中,显著提高了测试效率,节省了测试时间。附图说明35.图1所示为cpp类编译型语言的编译执行流程示意图36.图2所示为atpl语法解析器在解析型语言时的流程示意图37.图3所示为本发明实施例中通过动态传递参数提高芯片测试效率装置的功能模块示意图38.图4所示为本发明实施例中通过动态传递参数提高芯片测试效率方法的示意图39.图5所示为本发明实施例中atpl语法解析器的工作流程的示意图具体实施方式40.下面结合附图1-5,对本发明的具体实施方式作进一步的详细说明。41.需要说明的是,本发明所采用通过动态传递参数提高芯片测试效率装置,1.实现一个cvm(cppvirtualmachine)虚拟机和atpl(automatictestprogramlanguage)语法解析器,用于将cpp代码翻译为机器码直接执行。42.请参阅图1,图1所示为cpp类编译型语言的编译执行流程示意图。如图1所示,该pp这类编译型语言的编译执行流程包括以下几个步骤:43.源代码(sourcecode)→预处理器(preprocessor)→编译器(compiler)→目标代码(objectcode)→链接器(linker)→可执行程序(executables)→执行(execute)44.在这个工作流程中,编译器调用预处理器进行相关处理,将源代码进行优化转换(包括清除注释、宏定义、包含文件和条件编译),然后通过将经过预处理的源代码编译成目标代码(二进制机器语言),再通过调用链接器外加库文件(例如操作系统提供的api),从而形成可执行程序,让机器能够执行。并且目标代码要和机器的cpu架构相匹配,库文件要和操作系统相匹配。如果想在不同cpu的机器或者系统上运行cpp语言的源代码,就需要针对不同的cpu架构和操作系统进行编译,这样才能够在机器上运行程序。45.请参阅图2,图2所示为atpl语法解析器在解析型语言时的流程示意图。如图2所示,解析型语言主要有以下几个步骤:46.源代码(sourcecode)→解释器(interpret)→执行(execute)47.源代码无需预先编译成可执行程序。在程序执行时,解释器读取一句源代码之后,先进行词法分析和语法分析,再将源代码转换为解释器能够执行的中间代码(字节码),最后,由解释器将中间代码解释为可执行的机器指令,并在对应的虚拟机中执行该指令。48.cpp这类编译型语言需要通过编译、链接、加载以及执行才能执行机器指令,而解析型语言直接在语法分析后就执行机器指令,省去了编译、链接、加载和生成可执行文件这些步骤,非常适合调试芯片测试条件时使用。然而如果全部使用解析型语言时,由于不经常被改动的代码在测试程序中占绝大部分,因此又会丢失部分性能。49.因此,本发明就是将二者结合,可以将那些不被经常改动的程序事先编译为机器码执行,而像测试条件这些需要经常改动调试的代码,则可以通过一个解释器将其翻译为机器码后,由内置的虚拟机执行并获取结果,则可以实现动态传参的效果,缩短编译时间,提供调试效率。50.请参阅图3,图3所示为本发明实施例中通过动态传递参数提高芯片测试效率装置的功能模块示意图。如图3所示,该基于动态传递参数的ate装置,用于测量至少一台被测设备dut;其包括测试程序模块、编译器、可变代码模块和测试执行模块;其中,所述测试程序模块包括固定代码程序和测试条件接口程序,所述可变代码模块用于接收测试条件,所述测试条件至少包括一条动态变化的参数;所述编译器用于编译所述测试程序模块中的程序,形成可执行的第一机器指令部分,所述测试执行模块包括语法解析器atpl、虚拟机单元cvm、调度测试流单元和通信单元;所述语法解析器atpl逐句读取所述测试条件源代码,先进行词法分析和语法分析,再将所述源代码转换为中间代码并进行优化,最终将中间代码解释为可执行的第二机器指令部分,由所述虚拟机单元cvm执行第二机器指令部分;所述调度测试流单元根据cvm执行结果调度测试流,并通过所述通信单元与所述被测设备dut执行交互测试。51.所述测试条件可以包括所述ate装置的硬件资源、端口号、输入激励和/或信号大小值。与现有技术不同的是,在本发明的实施例中,初始化后的ate装置的硬件资源、端口号、输入激励和/或信号大小值等这些参数可以在测试中进行动态调整。52.也就是说,虚拟机单元cvm通过语法解析器atpl可将芯片测试领域常用的编程语言cpp源程序翻译为机器码,并在虚拟机内部执行。它通过执行这些目标代码,提供了为测试程序需要的输入激励和测试条件,使得开发人员可以方便的对测试计划和测试项进行编辑和调试,编辑后的测试项在执行时实时生效。53.请参阅图4,图4所示为本发明实施例中通过动态传递参数提高芯片测试效率方法的示意图。如图4所示,该方法包括如下步骤:54.步骤s1:动态配置测试程序模块中所涉及到的所述测试条件中的参数。55.步骤s2:所述编译器用于编译所述测试程序模块中的程序,形成可执行的第一机器指令部分。也就是说,本发明将测试程序模块化编写,固定不变的部分程序和需要经常修改调试的部分程序分文件编写代码。56.上述固定不变的部分测试程序通过系统提供的cpp编译器编译为可执行文件,形成可执行的第一机器指令部分。57.而另一部分与测试条件相关的代码则不参与编译,这样特别方便,可以实现如果需要修改测试条件相关的代码,则直接在对应的源文件中修改。之后无需编译测试程序直接运行,修改后的测试条件将会立即生效。58.步骤s3:所述语法解析器atpl逐句读取所述测试条件源代码,先进行词法分析和语法分析,再将所述源代码转换为所述语法解析器atpl能够执行的中间代码,最后由所述语法解析器atpl将中间代码解释为可执行的第二机器指令部分。59.请查阅图5,图5所示为本发明实施例中atpl语法解析器的工作流程的示意图。如图5所示,所述步骤s3可以具体包括:60.步骤s31:词法分析,即对源文件进行扫描,将源文件的字符流拆分成一个个的词(记号);61.步骤s32:语法分析,根据语法规则将这些记号构造出语法树;62.步骤s33:语义分析,对语法树的各个节点之间的关系进行检查,检查语义规则是否被违背,同时对语法树进行必要的优化;63.步骤s34:遍历语法树的节点,将各节点转化为中间代码,并按特定的顺序拼装起来,此为中间代码生成;64.步骤s35:对中间代码进行优化;65.步骤s36:将中间代码转化为目标代码;66.步骤s37:对目标代码进行优化,生成最终的目标程序。67.步骤s4:并在对应的虚拟机单元cvm中通过应用程序接口api拼接所述第一机器指令部分和第二机器指令部分,形成目标代码。68.步骤s5:所述调度测试流单元翻译所述目标代码,并通过所述通信单元与所述被测设备dut执行交互测试,获得测试结果。69.也就是说,等测试程序运行起来后,通过其中内嵌的虚拟机单元cvm加语法解析器atpl,将这些代码动态地加载到进程中,翻译为目标代码后在虚拟机单元cvm中执行,并获取计算结果,省去重新编译链接整个程序的步骤,提高芯片的测试调试效率。70.综上所述,本发明一种通过动态传递参数提高芯片测试效率的装置和传输方法,其提供一种动态传参的方法,能将调试时需要修改的测试条件动态的加载到测试程序中执行,使得测试程序无需重新编译链接即可对更改后的测试条件生效,可以有效的提高芯片测试效率。71.以上所述的仅为本发明的优选实施例,所述实施例并非用以限制本发明的专利保护范围,因此凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献