一种芯片测试方法、系统、设备及存储介质
技术领域
本发明涉及集成电路技术领域,特别是涉及一种芯片测试方法、系统、设备及存储介质。
背景技术
随着大规模集成电路系统设计的飞速发展,集成电路的规模越来越大,芯片自身的复杂度也日渐复杂。面对日益更新的验证技术,作为芯片功能安全的第一道防火墙,验证人员必须保证验证的完备性、复用性、高效性和高产性。
目前,在进行芯片测试时,由于验证人员经验紧缺,对流程、验证结构、以及验证方法的不熟悉,使得进行芯片测试的效率较低。并且验证方法不断更新,验证环境的搭建也都是非常耗时和耗精力的事情,并且还不容易保证标准化。
综上所述,如何有效地进行芯片的测试,提高效率,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种芯片测试方法、系统、设备及存储介质,以有效地进行芯片的测试,提高效率。
为解决上述技术问题,本发明提供如下技术方案:
一种芯片测试方法,包括:
根据输入文件以及预设模板自动生成验证计划;
根据所述验证计划以及预设模板,自动生成所述验证计划的层次结构以及各个层次结构下的各个测试用例;
利用各个测试用例进行芯片测试,并得到各个测试用例的测试结果。
优选的,还包括:
判断生成的各个测试用例是否满足预设的多次随机要求,并且针对满足所述多次随机要求的任意一个测试用例,对该测试用例进行复制并置入回归测试目录中,并且对该测试用例复制出的副本数量等于预先为该测试用例设定的副本数量数值,且该测试用例的各个副本中的随机种子互不相同;
利用所述回归测试目录中的各个测试用例进行回归测试,并得到所述回归测试目录中的各个测试用例的回归测试的测试结果。
优选的,还包括:
在得到所述回归测试目录中的各个测试用例的回归测试的测试结果之后,将所述回归测试目录中的各个测试用例副本进行删除。
优选的,生成的所述验证计划的层次结构包括:模块级层次结构,子系统级层次结构以及系统级层次结构中的一种或多种。
优选的,还包括:
接收CSV格式或者XML格式,用于描述寄存器信息的寄存器描述文件,且所述寄存器描述文件支持格式扩展;
接收用于控制输出文件的内容项的寄存配置文件;
根据所述寄存器配置文件以及所述寄存器描述文件自动生成输出文件,并且生成的所述输出文件包括基于C语言的头文件以及基于所述头文件的寄存器测试文件,或者包括寄存器模型文件以及基于所述寄存器模型文件的寄存器测试文件;并且,当所述寄存器配置文件控制输出文件中包括HTML文件时,生成的输出文件中包括用于将所述寄存器描述文件转换为网页文件的HTML文件;
利用生成的所述输出文件中的寄存器测试文件进行芯片的寄存器测试,并得到测试结果。
优选的,基于C语言的头文件为支持硅前验证以及硅后验证的基于C语言的头文件;
所述寄存器模型文件为包括uvm_reg_field层,uvm_reg层以及uvm_reg_block层这三层结构的寄存器模型文件。
优选的,当生成基于C语言的头文件以及基于所述头文件的寄存器测试文件时,所述寄存器测试文件包括用于进行寄存器复位值检测的测试用例以及用于进行寄存器读写属性检测的测试用例;
当生成寄存器模型文件以及基于所述寄存器模型文件的寄存器测试文件时,所述寄存器测试文件包括用于进行寄存器复位值检测的测试用例,用于进行寄存器域属性检测的测试用例,以及用于进行寄存器读写测试的测试用例;
其中,在进行寄存器读写测试时,针对只读寄存器,通过后门写前门读出只读寄存器,并且后门读出其他寄存器,针对只写寄存器以及读写寄存器,通过前门写后门读出全部寄存器;当接收到域屏蔽指令时,在进行寄存器读写测试时,自动生成reg_info以实现域屏蔽。
一种芯片测试系统,包括:
验证计划生成单元,用于根据输入文件以及预设模板自动生成验证计划;
测试用例生成单元,用于根据所述验证计划以及预设模板,自动生成所述验证计划的层次结构以及各个层次结构下的各个测试用例;
测试执行单元,用于利用各个测试用例进行芯片测试,并得到各个测试用例的测试结果。
一种芯片测试设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现上述任一项所述的芯片测试方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的芯片测试方法的步骤。
应用本发明实施例所提供的技术方案,可以自动生成测试用例,具体的,验证人员只需要提供输入文件,就可以根据输入文件以及预设模板自动生成验证计划,再根据验证计划以及预设模板,自动生成验证计划的层次结构以及各个层次结构下的各个测试用例。并且,由于是利用预设模型实现的验证计划的生成以及各个层次结构下的各个测试用例的生成,有利于实现测试用例以及验证计划的统一化、标准化,也便于统一管理和项目之间的移植。得到了各个测试用例之后,便可以利用各个测试用例进行芯片测试,并得到各个测试用例的测试结果。综上所述,本申请的方案可以自动实现芯片测试,有利于降低工作人员开发测试用例和调试的耗时,提高了本申请的芯片测试方案的实施效率。并且也有利于实现统一化和标准化,便于统一管理和项目之间的移植。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中一种芯片测试方法的实施流程图;
图2为本发明一种具体实施方式中的验证计划的层次结构的示意图;
图3为本发明一种具体实施方式中的复制测试用例副本的示意图;
图4为本发明一种具体实施方式中的寄存器生成流程示意图;
图5为本发明一种具体实施方式中的寄存器描述文件的内容示意图;
图6为本发明一种具体实施方式中的寄存器测试文件的构成示意图;
图7为本发明一种具体实施方式中的寄存器模型文件的三层结构关系示意图;
图8为本发明一种具体实施方式中的HTML文件的示意图。
具体实施方式
本发明的核心是提供一种芯片测试方法,可以自动实现芯片测试,有利于降低工作人员开发测试用例和调试的耗时,提高了效率。并且也有利于实现统一化和标准化,便于统一管理和项目之间的移植。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明中一种芯片测试方法的实施流程图,该芯片测试方法可以包括以下步骤:
步骤S101:根据输入文件以及预设模板自动生成验证计划。
具体的,本申请的方案可以实现验证计划以及各个层次结构下的各个测试用例的自动生成,使得对于验证计划的结构以及内容可以实现统一的标准化的管理,并且也便于进行项目之间的移植。
在生成验证计划时,根据输入文件以及预设模板,可以对验证计划的层次结构相关的属性、命名规则、验证点等进行定义。例如下述为一种具体场合中的验证计划的层次结构的定义文件:
该种场合中,考虑到对于芯片的验证而言,通常可以分为模块级、子系统级、系统级,因此,可以在验证计划中定义对应的属性,即module_hier:模块级层次结构,ss_hier:子系统级层次结构,module_name:系统级层次结构。
步骤S102:根据验证计划以及预设模板,自动生成验证计划的层次结构以及各个层次结构下的各个测试用例。
在自动生成验证计划之后,便可以根据验证计划以及预设模板,生成验证计划的层次结构以及各个层次结构下的各个测试用例。
例如前述的实施方式中,验证计划中定义了模块级、子系统级、系统级这3种结构的属性,因此执行步骤S102之后便可以生成验证计划的3个层次结构。图2便为一种具体场合中的验证计划的层次结构的示意图。
并且需要说明的是,为了便于调整,增加灵活性,不同的层次结构应当具有一定的相似性。例如本申请的图2的实施方式中,模块级、子系统级、系统级,三者的路径的层次结构的都是相似的,如果需要进行层次结构的调整时,只需要修改三个声明参数,即module_hier、ss_hier、module_name便可以实现。
在本发明的一种具体实施方式中,步骤S102中生成的验证计划的层次结构包括:模块级层次结构,子系统级层次结构以及系统级层次结构中的一种或多种。
前述实施方式中,生成的验证计划可以包括3个不同的层次结构,该种实施方式中,考虑到在实际应用时,可能只需要3个不同的层次结构中的1个或者2个,因此,该种实施方式中生成的验证计划的层次结构可以包括:模块级层次结构,子系统级层次结构以及系统级层次结构中的一种或多种,进一步地提高了方案的灵活性。
通过步骤S102,可以自动生成验证计划的层次结构以及各个层次结构下的各个测试用例,并且需要说明的是,不同层次结构下的测试用例的数量以及各个测试用例的具体用途均可以根据实际需要进行设定和调整,并不影响本发明的实施。
步骤S103:利用各个测试用例进行芯片测试,并得到各个测试用例的测试结果。
得到了各个层次结构下的各个测试用例之后,便可以利用各个测试用例进行芯片测试,从而得到各个测试用例的测试结果。
进一步的,在本发明的一种具体实施方式中,还可以包括:
判断生成的各个测试用例是否满足预设的多次随机要求,并且针对满足多次随机要求的任意一个测试用例,对该测试用例进行复制并置入回归测试目录中,并且对该测试用例复制出的副本数量等于预先为该测试用例设定的副本数量数值,且该测试用例的各个副本中的随机种子互不相同;
利用回归测试目录中的各个测试用例进行回归测试,并得到回归测试目录中的各个测试用例的回归测试的测试结果。
该种实施方式中,考虑到在进行芯片测试时,需要进行大量的回归测试,而在回归测试中,随机种子不同时,测试用例的运行结果是不同的。因此,为了避免重复进行回归测试,本申请的该种实施方式中将测试用例进行复制,复制出的副本数量等于预先为该测试用例设定的副本数量数值,并且该测试用例的各个副本中的随机种子是互不相同的,从而保证了测试的随机性以及完备性。并且,由于本申请的方案无需工作人员进行手动复制,而是可以自动进行复制并置入回归测试目录中,因此有利于减少工作人员的大量重复的工作。
可以判断步骤S102中生成的各个测试用例是否满足预设的多次随机要求,例如在一种具体场合中,通过判断验证计划中的属性random的定义,确定出满足预设的多次随机要求的各个测试用例。例如测试用例A和测试用例B的random被定义为15,其余的测试用例的random均被定义为0。则可以判断出步骤S102中生成的测试用例A和测试用例B满足预设的多次随机要求,其余的测试用例不满足预设的多次随机要求。进而对测试用例A进行复制,得到15个副本,并置入回归测试目录中,并且这15个副本的随机种子互不相同。相应的,也对测试用例B进行复制,得到15个副本,并置入回归测试目录中,这15个副本的随机种子也互不相同。当然,该种实施方式中,各个满足预设的多次随机要求的测试用例,复制出的副本数量是一致的,其他场景中,也可以根据实际需要,为不同的测试用例配置不同的复制数量,并不影响本发明的实施。
图3为一种具体场合中的复制测试用例副本的示意图,通过属性random进行定义,具体为:feature verification_plan;
则图3中将spi_reg_test以及spi_reg_bit_bash_test这两个测试用例均复制出15个副本。
复制之后,便可以利用回归测试目录中的各个测试用例进行回归测试,并得到回归测试目录中的各个测试用例的回归测试的测试结果。
进一步地,在本发明的一种具体实施方式中,还可以包括:
在得到回归测试目录中的各个测试用例的回归测试的测试结果之后,将回归测试目录中的各个测试用例副本进行删除。
该种实施方式中,将回归测试目录中的各个测试用例进行删除,只保留源测试用例,使得可以在得到了回归测试目录中的各个测试用例副本的回归测试的测试结果之后,进行资源的释放。
在本发明的一种具体实施方式中,还可以包括:
接收CSV格式或者XML格式,用于描述寄存器信息的寄存器描述文件,且寄存器描述文件支持格式扩展;
接收用于控制输出文件的内容项的寄存配置文件;
根据寄存器配置文件以及寄存器描述文件自动生成输出文件,并且生成的输出文件包括基于C语言的头文件以及基于头文件的寄存器测试文件,或者包括寄存器模型文件以及基于寄存器模型文件的寄存器测试文件;并且,当寄存器配置文件控制输出文件中包括HTML文件时,生成的输出文件中包括用于将寄存器描述文件转换为网页文件的HTML文件;
利用生成的输出文件中的寄存器测试文件进行芯片的寄存器测试,并得到测试结果。
具体的,在芯片测试的过程中,寄存器测试通常都是不同层级测试中第一个要完成的测试用例,虽然前述实施方式中可以通过步骤S102生成寄存器的测试用例,但该种实施方式中,考虑到进一步地降低工作人员的工作量,减小测试时间,因此生成包括寄存器测试文件的输出文件,也即可以得到更为详尽的寄存器测试用例。并且,由于生成的是包括寄存器测试文件的输出文件,使得验证环境的复用性和移植性进一步地增强。
可参阅图4,为一种具体实施方式中寄存器生成流程示意图,图4的实施方式中,通过寄存器自动生成工具来实现,例如具体可以选取为基于python开发的,利用python的模板引擎jinjia2实现的寄存器自动生成工具。
寄存器描述文件用于描述寄存器信息,主要包含寄存器的名字、属性、复位值、描述以及寄存器各个域的信息。本申请的该种实施方式中,寄存器描述文件可以是CSV格式,也可以是XML格式,均能够得到支持,也就有利于扩大方案的应用场合。并且,本申请的寄存器描述文件支持格式扩展,即寄存器描述文件中具体包括的项目可以根据实际需要进行填写,具体的,通常是除了寄存器名,偏移地址等固定项之外,其余项目是否填写均不影响本发明的实施。例如图5为一种具体实施方式中的寄存器描述文件的内容示意图。
寄存器配置文件以及寄存器描述文件均是作为输入文件,寄存器配置文件可以控制输出文件的内容项,避免进行不必要的数据内容的输出,也可以通过寄存器配置文件决定输出文件中包括的是基于C语言的头文件以及基于头文件的寄存器测试文件,还是包括寄存器模型文件以及基于寄存器模型文件的寄存器测试文件,增加了灵活性。例如一种具体实施方式中的寄存器配置文件可以为:
根据寄存器配置文件以及寄存器描述文件,可以自动生成输出文件,当生成的是基于C语言的头文件以及基于头文件的寄存器测试文件时,基于C语言的头文件也即图4中的C header,寄存器测试文件是图4中的Register text。
并且在本发明的一种具体实施方式中,考虑到便于移植,基于C语言的头文件为支持硅前验证以及硅后验证的基于C语言的头文件。这是因为,在SoC验证以及硅后中,即硅前验证以及硅后验证中,寄存器的读写是不可避免的。基于C语言的头文件中可以包括寄存器及各个域的读写函数,并且这些函数具有特殊的命名规则,可以方便测试用例的硅前验证到硅后验证的移植,也方便项目之间的移植。因此,本申请的基于C语言的头文件为支持硅前验证以及硅后验证的基于C语言的头文件,便于硅前验证到硅后验证的移植,也方便项目之间的移植。
例如一种具体实施方式中的基于C语言的头文件具体为:
进一步地,在本发明的一种具体实施方式中,当生成基于C语言的头文件以及基于头文件的寄存器测试文件时,寄存器测试文件包括用于进行寄存器复位值检测的测试用例以及用于进行寄存器读写属性检测的测试用例,例如图6为一种具体实施方式中的寄存器测试文件的构成示意图,可以包括2个基于C语言的测试用例,分别用于寄存器复位值检测以及寄存器读写属性检测。
当生成的是寄存器模型文件以及基于寄存器模型文件的寄存器测试文件时,通常而言,寄存器模型文件可以为包括uvm_reg_field层,uvm_reg层以及uvm_reg_block层这三层结构的寄存器模型文件,这是标准的三层结构。
第一层的uvm_reg_field,是寄存器模型文件的最小单元,与DUT的每个寄存器里的比特域对应。第二层是uvm_reg,其和DUT中的每个寄存器对应,其宽度和总线位宽一致,里面可以包含多个uvm_reg_field。第三层是uvm_reg_block,其包含多个uvm_reg,一般一个最底层模块级的DUT的所有寄存器,具有相同的基地址,会放在一个reg_block中。便于理解可参阅图7,为该种实施方式中的寄存器模型文件的三层结构关系示意图,寄存器模型文件的三层结构的定义可以具体为:
寄存器测试文件可以用来实现寄存器的测试。在本发明的一种具体实施方式中,当生成寄存器模型文件以及基于寄存器模型文件的寄存器测试文件时,寄存器测试文件可以包括用于进行寄存器复位值检测的测试用例,用于进行寄存器域属性检测的测试用例,以及用于进行寄存器读写测试的测试用例;
其中,在进行寄存器读写测试时,针对只读寄存器,通过后门写前门读出只读寄存器,并且后门读出其他寄存器,针对只写寄存器以及读写寄存器,通过前门写后门读出全部寄存器;当接收到域屏蔽指令时,在进行寄存器读写测试时,自动生成reg_info以实现域屏蔽。
该种实施方式中,考虑到传统的寄存器测试用例,通常只是设定为简单地读写测试,功能较为简单。该种实施方式中,寄存器测试文件可以包括用于进行寄存器复位值检测的测试用例,用于进行寄存器域属性检测的测试用例,以及用于进行寄存器读写测试的测试用例。
并且,在进行寄存器读写测试时,该种实施方式也有所加强,即针对只读寄存器,通过后门写前门读出只读寄存器,并且后门读出其他寄存器,针对只写寄存器以及读写寄存器,通过前门写后门读出全部寄存器,这样的方式可以保证寄存器功能正确,保证相关联寄存器功能正确,保证地址译码正确。
此外,在进行寄存器的测试时,某些域比较特殊,需要实现屏蔽,该种实施方式也可以支持。即当接收到域屏蔽指令时,在进行寄存器读写测试时,自动生成reg_info以实现域屏蔽。域屏蔽指令可以由工作人员输入,可以单独输入,也可以是在输入文件中一并置入,均不影响本发明的实施。
HTML文件用于将寄存器描述文件转换为网页文件,并且可以由寄存配置文件控制输出文件中是否包含HTML文件。HTML文件将寄存器描述文件转换为网页文件,可以方便设计和验证人员使用,文件格式可以如图8所示,可以包含三部分,第一部分是所有寄存器概述,包括寄存器名,寄存器偏移地址和寄存器描述,第二部分是寄存器的详细描述,包括寄存器的信息和寄存器各个域的信息,第三部分是链接部分,可以方便回到寄存器顶部和寄存器概述部分。
应用本发明实施例所提供的技术方案,可以自动生成测试用例,具体的,验证人员只需要提供输入文件,就可以根据输入文件以及预设模板自动生成验证计划,再根据验证计划以及预设模板,自动生成验证计划的层次结构以及各个层次结构下的各个测试用例。并且,由于是利用预设模型实现的验证计划的生成以及各个层次结构下的各个测试用例的生成,有利于实现测试用例以及验证计划的统一化、标准化,也便于统一管理和项目之间的移植。得到了各个测试用例之后,便可以利用各个测试用例进行芯片测试,并得到各个测试用例的测试结果。综上所述,本申请的方案可以自动实现芯片测试,有利于降低工作人员开发测试用例和调试的耗时,提高了本申请的芯片测试方案的实施效率。并且也有利于实现统一化和标准化,便于统一管理和项目之间的移植。
相应于上面的系统实施例,本发明实施例还提供了一种芯片测试系统,可与上文相互对应参照。该芯片测试系统可以包括:
验证计划生成单元,用于根据输入文件以及预设模板自动生成验证计划;
测试用例生成单元,用于根据验证计划以及预设模板,自动生成验证计划的层次结构以及各个层次结构下的各个测试用例;
测试执行单元,用于利用各个测试用例进行芯片测试,并得到各个测试用例的测试结果。
在本发明的一种具体实施方式中,还包括回归测试单元,用于
判断生成的各个测试用例是否满足预设的多次随机要求,并且针对满足多次随机要求的任意一个测试用例,对该测试用例进行复制并置入回归测试目录中,并且对该测试用例复制出的副本数量等于预先为该测试用例设定的副本数量数值,且该测试用例的各个副本中的随机种子互不相同;
利用回归测试目录中的各个测试用例进行回归测试,并得到回归测试目录中的各个测试用例的回归测试的测试结果。
在本发明的一种具体实施方式中,还包括:
在得到回归测试目录中的各个测试用例的回归测试的测试结果之后,将回归测试目录中的各个测试用例副本进行删除。
在本发明的一种具体实施方式中,生成的验证计划的层次结构包括:模块级层次结构,子系统级层次结构以及系统级层次结构中的一种或多种。
在本发明的一种具体实施方式中,还包括寄存器测试单元,用于:
接收CSV格式或者XML格式,用于描述寄存器信息的寄存器描述文件,且寄存器描述文件支持格式扩展;
接收用于控制输出文件的内容项的寄存配置文件;
根据寄存器配置文件以及寄存器描述文件自动生成输出文件,并且生成的输出文件包括基于C语言的头文件以及基于头文件的寄存器测试文件,或者包括寄存器模型文件以及基于寄存器模型文件的寄存器测试文件;并且,当寄存器配置文件控制输出文件中包括HTML文件时,生成的输出文件中包括用于将寄存器描述文件转换为网页文件的HTML文件;
利用生成的输出文件中的寄存器测试文件进行芯片的寄存器测试,并得到测试结果。
在本发明的一种具体实施方式中,基于C语言的头文件为支持硅前验证以及硅后验证的基于C语言的头文件;
寄存器模型文件为包括uvm_reg_field层,uvm_reg层以及uvm_reg_block层这三层结构的寄存器模型文件。
在本发明的一种具体实施方式中,当生成基于C语言的头文件以及基于头文件的寄存器测试文件时,寄存器测试文件包括用于进行寄存器复位值检测的测试用例以及用于进行寄存器读写属性检测的测试用例;
当生成寄存器模型文件以及基于寄存器模型文件的寄存器测试文件时,寄存器测试文件包括用于进行寄存器复位值检测的测试用例,用于进行寄存器域属性检测的测试用例,以及用于进行寄存器读写测试的测试用例;
其中,在进行寄存器读写测试时,针对只读寄存器,通过后门写前门读出只读寄存器,并且后门读出其他寄存器,针对只写寄存器以及读写寄存器,通过前门写后门读出全部寄存器;当接收到域屏蔽指令时,在进行寄存器读写测试时,自动生成reg_info以实现域屏蔽。
相应于上面的方法和系统实施例,本发明实施例还提供了一种芯片测试设备以及一种计算机可读存储介质,可与上文相互对应参照。该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例中的芯片测试方法的步骤。这里所说的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
该芯片测试设备可以包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序以实现上述任一实施例中所述的芯片测试方法的步骤。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。