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

电路测试方法及装置

2022-05-21 08:31:25 来源:中国专利 TAG:
1.本技术实施例涉及自动控制技术,尤其涉及一种电路测试方法及装置。
背景技术
::2.为保证静态随机访问存储器(staticrandom-accessmemory,sram)型现场可编程门阵列(fieldprogrammablegatearray,fpga)实现的功能电路的性能及可靠性,通常在使用前需要对功能电路进行设计验证。3.在验证过程中,当确定该功能电路不能实现预设功能时,通常需要对功能电路中的设计参数进行调试、修改,以使功能电路能够实现预设功能。在现有技术中,即使功能电路中仅有一个设计参数发生变化,在对该功能电路进行验证时,仍需重新进行对该功能电路进行全面的验证,全面的验证包括时序仿真验证和功能仿真验证。4.然而,由于对功能电路均需要进行时序仿真验证和功能仿真验证,导致对功能电路的验证效率较低。技术实现要素:5.本技术实施例提供一种电路测试方法及装置,以克服验证效率低的问题。6.第一方面,本技术实施例提供一种电路测试方法,包括:7.对待测试电路进行编译,得到第一编译信息,所述第一编译信息包括所述待测试电路对应的多个第一资源位置;8.对所述待测试电路对应的参考电路进行编译,得到第二编译信息,所述第二编译信息包括所述参考电路对应的多个第二资源位置;9.根据所述第一编译信息和所述第二编译信息,确定所述待测试电路与所述参考电路之间的功能差异信息;10.根据所述待测试电路对应的目标功能、所述参考电路对应的参考功能和所述功能差异信息,确定所述待测试电路对应的测试结果。11.在一种可能的设计中,所述根据所述待测试电路对应的目标功能、所述参考电路对应的参考功能和所述功能差异信息,确定所述待测试电路对应的测试结果,包括:12.根据所述参考功能和所述功能差异信息,确定所述待测试电路对应的测试功能;13.根据所述测试功能和所述目标功能,确定对所述待测试电路的测试结果。14.在一种可能的设计中,所述根据所述测试功能和所述目标功能,确定对所述待测试电路的测试结果,包括:15.若所述测试功能和所述目标功能相同,确定所述测试结果为测试成功;16.若所述测试功能和所述目标功能不相同,确定所述测试结果为测试失败。17.在一种可能的设计中,所述根据所述第一编译信息和所述第二编译信息,确定所述待测试电路与所述参考电路之间的功能差异信息,包括:18.获取电路资源与资源位置之间的对应关系,所述对应关系中包括多个电路资源和每个电路资源对应的资源位置;19.根据所述第一编译信息和所述对应关系,确定多个第一电路资源;20.根据所述第二编译信息和所述对应关系,确定多个第二电路资源;21.根据所述多个第一电路资源和所述多个第二电路资源,确定功能差异信息。22.在一种可能的设计中,所述根据所述多个第一电路资源和所述多个第二电路资源,确定功能差异信息,包括:23.根据所述多个第一电路资源和所述多个第二电路资源,确定资源差异信息;24.根据所述资源差异信息,确定所述功能差异信息。25.在一种可能的设计中,所述获取电路资源与资源位置之间的对应关系,包括:26.获取功能电路;27.对所述功能电路进行编译,得到第三编译信息;28.对所述功能电路的第i个资源进行更新,并获取更新后的功能电路的第i个编译信息,根据所述第三编译信息和所述第i个编译信息,确定第i个资源对应的资源位置,所述第i个编译信息和所述第三编译信息在所述第i个资源对应的资源位置上的信息不同;29.其中,所述i取1、2、……、n,所述n为所述功能电路中包括的资源的数量。30.第二方面,本技术实施例提供一种电路测试装置,包括:31.第一编译模块,用于对待测试电路进行编译,得到第一编译信息,所述第一编译信息包括所述待测试电路对应的多个第一资源位置;32.第二编译模块,用于对所述待测试电路对应的参考电路进行编译,得到第二编译信息,所述第二编译信息包括所述参考电路对应的多个第二资源位置;33.确定模块,用于根据所述第一编译信息和所述第二编译信息,确定所述待测试电路与所述参考电路之间的功能差异信息;34.处理模块,用于根据所述待测试电路对应的目标功能、所述参考电路对应的参考功能和所述功能差异信息,确定所述待测试电路对应的测试结果。35.在一种可能的设计中,所述处理模块具体用于:36.根据所述参考功能和所述功能差异信息,确定所述待测试电路对应的测试功能;37.根据所述测试功能和所述目标功能,确定对所述待测试电路的测试结果。38.在一种可能的设计中,所述处理模块具体用于:39.若所述测试功能和所述目标功能相同,确定所述测试结果为测试成功;40.若所述测试功能和所述目标功能不相同,确定所述测试结果为测试失败。41.在一种可能的设计中,所述处理模块具体用于:42.获取电路资源与资源位置之间的对应关系,所述对应关系中包括多个电路资源和每个电路资源对应的资源位置;43.根据所述第一编译信息和所述对应关系,确定多个第一电路资源;44.根据所述第二编译信息和所述对应关系,确定多个第二电路资源;45.根据所述多个第一电路资源和所述多个第二电路资源,确定功能差异信息。46.在一种可能的设计中,所述确定模块具体用于:47.根据所述多个第一电路资源和所述多个第二电路资源,确定资源差异信息;48.根据所述资源差异信息,确定所述功能差异信息。49.在一种可能的设计中,所述确定模块具体用于:50.获取功能电路;51.对所述功能电路进行编译,得到第三编译信息;52.对所述功能电路的第i个资源进行更新,并获取更新后的功能电路的第i个编译信息,根据所述第三编译信息和所述第i个编译信息,确定第i个资源对应的资源位置,所述第i个编译信息和所述第三编译信息在所述第i个资源对应的资源位置上的信息不同;53.其中,所述i取1、2、……、n,所述n为所述功能电路中包括的资源的数量。54.第三方面,本技术实施例提供一种电路测试设备,包括:55.存储器,用于存储程序;56.处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。57.第四方面,本技术实施例提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。58.第五方面,本技术实施例提供一种计算机程序产品,所述程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。59.本技术实施例提供一种电路测试方法及装置,该方法包括:对待测试电路进行编译,得到第一编译信息,第一编译信息包括待测试电路对应的多个第一资源位置。对待测试电路对应的参考电路进行编译,得到第二编译信息,第二编译信息包括参考电路对应的多个第二资源位置。根据第一编译信息和第二编译信息,确定待测试电路与参考电路之间的功能差异信息。根据待测试电路对应的目标功能、参考电路对应的参考功能和功能差异信息,确定待测试电路对应的测试结果。其中,通过根据待测试电路对应的目标功能、参考电路对应的参考功能和功能差异信息,即可确定待测试电路对应的测试结果。因此,在对待测试电路进行设计验证时只需进行功能仿真验证即可,从而大大缩短了待测试电路的验证周期,并显著提高了验证效率。附图说明60.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。61.图1为本技术实施例提供的电路测试方法的流程图一;62.图2为本技术实施例提供的部分第一编译信息的示意图;63.图3为本技术实施例提供的部分第二编译信息的示意图;64.图4为本技术实施例提供的研究sram型fpga设计参数变更对功能电路产生影响的流程图;65.图5为本技术实施例提供的乘法器的示意图;66.图6为本技术实施例提供的奇分频器的示意图;67.图7为本技术实施例提供的多系数复杂综合电路的示意图;68.图8为本技术实施例提供的确定电路资源与资源位置的对应关系的流程图;69.图9为本技术实施例提供的电路测试方法的流程图二;70.图10为本技术实施例提供的电路测试装置的结构示意图;71.图11为本技术实施例提供的电路测试设备的硬件结构示意图。具体实施方式72.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。73.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。74.为了便于理解本技术的技术方案,首先对本技术所涉及的相关概念进行介绍:75.静态随机访问存储器(staticrandom-accessmemory,sram)型现场可编程门阵列(fieldprogrammablegatearray,fpga)是一种可编程器件,由多种电路资源组成,其具有高密度、高性能和动态重配置的特性,通常将这些电路资源进行合理连接可以构成不同电路结构以实现不同的功能,例如可实现乘法器、寄存器、地址发生器等硬件电路。其中,基于动态重配置的特性,用户可以远程控制其配置反复进行刷新,以得到不同功能的电路。76.硬件描述语言(hardwaredescriptionlanguage,hdl):以文本形式来描述数字系统硬件的结构和行为的语言,其可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。例如,超高速集成电路硬件描述语言(very-high-speedintegratedcircuithardwaredescriptionlanguage,vhdl),veriloghdl等。77.接下来,利用硬件描述语言对sram型fpga实现具有预设功能的电路的整体流程进行介绍:通过veriloghdl完成具有预设功能的电路设计文件后,又由电子设计自动化(electronicdesignautomation,eda)软件对该电路设计文件自动地完成综合编译布局布线,之后再对该电路设计文件所实现的功能电路进行仿真验证,仿真验证通过后,将该电路设计文件下载到sram型fpga芯片中,即可通过sram型fpga实现该电路设计文件对应的预设功能。其中,仿真验证中包括:功能仿真验证以及时序仿真验证。78.功能仿真验证是指仅对电路的逻辑功能进行测试模拟、对hdl硬件设计语言的功能实现能力进行仿真,以了解功能电路实现的功能是否满足原设计的要求。其中,在功能仿真验证的过程中无时序信息,且不涉及具体器件的硬件特性。79.时序仿真验证是指在hdl满足设计者功能要求的基础上,在布局布线后,提取有关的器件延迟、连线延时等时序参数,并在此基础上进行的仿真。80.为了保证sram型fpga实现功能电路的性能以及保证高可靠性,通常在使用前必须对功能电路进行设计验证。81.在验证过程中,当确定该功能电路不能实现预设功能时,需要对功能电路中的设计参数进行调试、修改,以使功能电路能够实现预设功能。在现有技术中,即使功能电路中仅有一个设计参数发生变化,在对该功能电路进行验证时,仍需重新进行对该功能电路进行全面的验证。然而,由于对功能电路均需要进行时序仿真验证和功能仿真验证,导致对功能电路的验证效率较低。82.基于上述存在的问题,本技术提出了如下的技术构思:通过对设计参数在功能电路中的实现方式进行研究,发现通过块随机存储器(blockram,bram)定义设计参数时,相对于原功能电路来说,设计参数的变更后的新功能电路会保留原功能电路中的配置资源,以及电路布线布局未发生改变,仅使ram中的配置位发生了变化。其中,该配置位用于存储功能电路数据。因此,在这个研究发现的基础上,考虑到设计参数的变更后的新功能电路和原功能电路的布局布线一致,因此对设计参数的变更后的新功能电路只需要做功能仿真验证,无需重复进行时序仿真验证,即新功能电路与原功能电路的时序仿真验证结果一致。由于仅需对新功能电路进行功能仿真验证,因此这样大大缩短了仿真验证周期,以及提高了仿真验证效率。83.基于上述介绍的技术构思,下面结合图1和具体的实施例对本技术所提供的电路测试方法进行详细介绍,值得说明的是,本技术各实施例的执行主体为处理器和微处理器等具有测试功能的设备,本实施例对此执行主体的具体实现不做限定,只要其可以进行功能测试即可,图1为本技术实施例提供的电路测试方法的流程图一,图2为本技术实施例提供的部分第一编译信息的示意图,图3为本技术实施例提供的部分第二编译信息的示意图,图4为本技术实施例提供的研究sram型fpga设计参数变更对功能电路产生影响的流程图,图5为本技术实施例提供的乘法器的示意图,图6为本技术实施例提供的奇分频器的示意图,图7为本技术实施例提供的多系数复杂综合电路的示意图,图8为本技术实施例提供的确定电路资源与资源位置的对应关系的流程图。84.如图1所示,该方法包括:85.s101、对待测试电路进行编译,得到第一编译信息,第一编译信息包括待测试电路对应的多个第一资源位置。86.其中,待测试电路为待测试的功能电路。例如可以为使用hdl描述的电路逻辑,记为hdl功能电路。87.编译过程包括对hdl代码进行逻辑综合、翻译、映射、布局布线处理和配置文件生成的过程。88.其中,逻辑综合处理为将hdl代码转换为与门、或门及触发器等基本逻辑单元的互连关系(以下称:门级网表)的过程。89.布局布线为将门级网表中各种逻辑单元的位置以及连线信息确定下来的过程。90.编译信息为对hdl代码进行编译处理后,得到的配置文件。其中,配置文件例如为比特流文件(以下简称为bit文件),bit文件中包括hdl代码对应的多个第一资源位置。其中,第一资源是指该hdl代码编译后所使用到的电路资源,例如为:可编程逻辑,可编程i/o、ip核及互连线等。91.在sram型fpga中包括多个电路资源,并且每个电路资源都具有固定对应的bit存储位置。一般,使用十六进制的地址码对存储器中的字节进行编址。第一资源位置为第一资源在sram型fpga中所占的bit位置。92.接下来,以待检测电路对应的bit文件中部分bit地址为例,对待检测电路所包括的电路资源进行介绍,如图2所示。93.如图2中,每行的最左边表示为该行bit地址的前缀,除去最左边一列其余每列的第一行表示为该列bit地址的后缀。由此可以看出,图2中的bit地址包括:00025bd00、00025bd01、00025bd02、…、00025bd0f,00025be00、00025be01、00025be02、…、00025be0f,以及,00025bf00、00025bf01、00025bf02、…、00025bf0f。其中,在bit文件中bit地址上对应的数值,决定着该待检测电路是否包括该bit地址所对应的电路资源。具体的,当在bit地址上对应的数值为零时,则表示该待检测电路不包括该bit地址所对应的电路资源;当在bit地址上对应的数值为非零时,则表示该待检测电路包括该bit地址所对应的电路资源,且不同数值表示该bit地址所对应的电路资源所起的作用不同。94.根据图2可以得出,bit地址对应的数值不为零的bit地址依次为:00025bd02、00025bd05、00025bd06、00025bd0b、00025bd0f、00025bf04及00025bf0c。因此,待测试电路所包含的多个电路资源为以上bit地址各自对应的电路资源。95.s102、对待测试电路对应的参考电路进行编译,得到第二编译信息,第二编译信息包括参考电路对应的多个第二资源位置。96.在本实施例中,参考电路为在电路测试过程中用于功能对比的hdl功能电路。97.其中,对待测试电路对应的参考电路进行编译的处理过程与对待检测电路进行编译的具体实现过程类似,此处不再赘述。98.根据图3可以得出,bit地址对应的数值不为零的bit地址依次为:00025bd02、00025bd05、00025bd06、00025bd0b、00025bd0f、00025be00、00025be04、00025be08、00025be0c、00025bf04及00025bf0c。因此,待测试电路所包含的多个电路资源为以上bit地址各自对应的电路资源。99.另外,考虑到本技术提到的待测试电路是在参考电路的基础上仅修改了设计参数后得到的hdl功能电路,为了提高sram型fpga的验证效率,需要对设计参数在sram型fpga电路中的实现方式进行研究。100.在一种可能的实现方式中,通过对设计参数修改前后的hdl功能电路对应的bit文件进行对比,并结合fpga中editor观察电路布局布线及配置逻辑块的内部电路结构,确定配置设计参数对应的电路资源,分析设计参数在sram型fpga电路中的实现方式。这可以找到一种电路描述方法以避免设计参数的变更对fpga电路布局布线的影响,从而达到简化设计参数更改后fpga的设计验证过程,提高fpga设计验证的效率。101.在另一种可能的实现方式中,考虑到设计参数在sram型fpga电路中的定义方式有两种,分别为:parameter定义方式以及bram存储方式,因此研究分别通过上述两种定义方式定义的设计参数在sram型fpga底层的实现形式,这是对修改前后的hdl功能电路进行布局布线差异对比的基础工作。102.接下来,对设计参数在sram型fpga功能电路设计中的两种定义方式对于fpga设计电路的影响进行分析,分析设计参数变更对sram型fpga功能电路的影响的流程图如图4所示。103.首先,使用hdl描述sram型fpga功能电路,其中在定义设计参数时,可以在parameter和bram中任意选择一种方式对设计参数进行定义。其中,使用parameter方式可以直接定义设计参数;在使用bram方式定义设计参数时,先使用bram方式存储设计参数,之后需要用到再调用该设计参数。104.其次,在功能电路设计过程中,需要考虑设计参数的功能用途。其中,功能用途可以分为三种,分别为参与数值计算、逻辑运算以及多设计参数的复杂综合运算。105.然后,针对具有不同用途功能的设计参数,本技术实施例分别为用于不同功能用途的参数设计了不同的fpga功能电路。例如,针对设计参数的数值运算,设计了乘法器电路;针对设计参数的逻辑运算,设计了奇数分频器电路;针对多设计参数的综合运算,设计了10阶的fir滤波器电路。分别对fpga功能电路进行综合编译布局布线后,生成bit文件。106.其中,针对设计参数参与数值运算,本实施例提供的乘法器电路如图5所示。107.图5中,clk为输入时钟信号,rst_n为电路的异步复位信号,x为位宽为8的输入参数,y为固定数值的设计参数,result为乘法器的输出结果且该输出结果的位宽为16。对设计参数y进行修改,且分别采用parameter和bram对设计参数y进行定义。108.针对设计参数参与逻辑运算,本实施例提供的奇分频电路电路如图6所示。109.图6中,clk为输入时钟信号,rst_n为异位复位信号,n为奇数分频器的分频数值,clk_out为输出时钟信号。该奇分频器是通过两个不同的边沿触发的计数器相与搭建的。110.针对设计参数的多系数复杂中和电路,本实施例提供的10阶fir低通滤波器电路,如图7所示。111.图7中,clk为输入时钟信号,rst_n为异位复位信号,fir_out为滤波器的输出,滤波器中滤波器系数的取值范围为h0-h9。该fir低通滤波器是由分布式ram、乘法器、加法器、移位寄存器搭建多位参数的复杂功能电路。112.之后,对修改相应电路的设计参数,对电路进行布局布线,生成新的bit文件。并对比设计参数修改前后的功能电路各自对应的bit文件,研究设计参数的变更对sram型fpga设计电路的影响。113.针对设计参数参与数值计算,通过对比设计参数修改前后的功能电路各自对应的bit文件发现,采用parameter和bram对参数y进行定义,参数y修改前的功能电路对应的布局布线与参数y修改后的功能电路对应的布局布线相同,未发生改变,因此无需进行时序仿真验证。114.针对设计参数参与逻辑运算时,讨论分别采用parameter和bram两种方式定义分频数值n时,对电路产生的影响如下:115.当采用parameter方式对分频数值n进行定义时,在修改分频数值n后,通过对比设计参数修改前后的功能电路各自对应的bit文件发现,总计存在1629个bit差异。当分频数值为5时,功能电路使用了52个触发器、85个四输入查找表、43片slice、3个输入输出管脚io以及一个时钟寄存器。当分频数值为7时,电路使用了52个触发器、81个四输入查找表、41片slice、3个输入输出管脚io以及一个时钟寄存器。对以上差异进行定位分析可知,是由于电路资源的资源使用量不同在造成以上的差异的同时,也使得功能电路的布局布线产生了变化。116.当采用bram存储分频数值n时,功能电路使用了61个触发器、153个四输入查找表、84片slice、1个bram、3个输入输出管脚io以及一个时钟寄存器。当分频数值n变化后,通过对比分频数值n修改前后的功能电路各自对应的bit文件发现,总计存在1个bit差异。对该差异bit进行定位后,发现此bit差异是存储设计参数所用bram资源的用户数据配置位,仅由分频数值n本身的变化引起的,而与功能电路的其他配置电路资源无关。117.针对设计参数参与多系数复杂综合运算时,讨论分别采用parameter和bram两种方式定义滤波器系数时,对电路产生的影响如下:118.当采用parameter方式定义滤波器系数时,通过对比滤波器系数修改前后的功能电路各自对应的bit文件发现,总计存在36364个bit差异。修改前功能电路使用了444个触发器、409个四输入查找表、440片slice、22个输入输出管脚io、2个bram、11个数字信号处理(digitalsignalprocessing,dsp)资源以及一个时钟寄存器。修改滤波器系数后,功能电路使用了396个触发器、378个四输入查找表、395片slice、22个输入输出管脚io、2个bram、9个dsp资源以及一个时钟寄存器。对差异进行定位分析,主要是由配置电路资源的使用量的不同造成的。119.当采用bram方式存储滤波器系数时,将滤波器系数初始化存入分布式ram进行滤波运算。通过对比滤波器系数修改前后的功能电路各自对应的bit文件发现,总计存在12个bit差异。对这12bit差异进行bit定位分析,差异位是存储设计参数所用bram资源的配置位,分别位于该资源的第1帧、第2帧、第3帧的配置数据。120.综上所述,对通过两种定义设计参数的方法在设计参数变更后在sram型fpga电路中的影响进行研究,得到以下结论:121.采用参数(parameter)定义设计参数时,设计参数存储在片(slice)资源内,对设计参数进行更改时,会对slice内部查找表(look-up-table,lut)和触发器(flipflop,ff)的配置造成影响,导致参数修改前后bit文件存在大量差异。设计参数的不同也会影响电路slice资源的使用数量,因此会导致电路布线造成大量差异。122.采用bram定义设计参数时,需要提前读出bram中存储的设计参数并将其存储到寄存器中进行缓存,以备后续运算使用。bram与缓存数据的寄存器资源是一一对应的,因此采用bram定义设计参数时,设计参数的变更仅影响ram存储用户数据的配置位,不会对电路的其他部分造成影响。因此,采用bram定义设计参数时,设计参数的变更不会影响电路其他配置逻辑资源,不会导致布局布线的变化,仅影响ram存储用户数据的配置位。因此,对于设计参数变更后的hdl功能电路进行设计验证时,仅需进行功能验证即可,而无需再进行时序验证,这大大提高了fpga功能电路的设计验证效率,且大大降低了fpga设计验证的人力成本和时间成本。123.因此,在fpga电路设计中,优选的选取bram的方式进行定义设计参数。124.s103、根据第一编译信息和第二编译信息,确定待测试电路与参考电路之间的功能差异信息。125.基于步骤s101和s102确定待测试电路对应的第一编译信息和参考电路对应的第二编译信息后,需要确定待测试电路与参考电路之间的功能差异信息。126.接下来,以待测试电路对应的部分bit文件以及参考电路对应的部分bit文件为例,对确定待测试电路与参考电路之间的功能差异信息进行说明。127.对比图2与图3,可以看出待测试电路与参考电路的差异bit地址信息为:00025bd02、00025be00、00025be04、00025be08、00025be0c。128.在一种可能的实现方式中,首先获取电路资源和资源位置的对应关系,其中,对应关系中包括多个电路资源和每个电路资源对应的资源位置;再根据第一编译信息和对应关系,确定多个第一电路资源,根据第二编译信息和对应关系,确定多个第二电路资源。根据多个第一电路资源和多个第二电路资源,确定功能差异信息。129.接下来,首先对获取电路资源和资源位置的对应关系的实现方式进行说明。130.在一种可能的实现方式中,获取功能电路,对该功能电路进行编译得到第三编译信息。接下来,对功能电路的第i个资源进行更新,并获取更新后的功能电路的第i个编译信息,根据第三编译信息和第i个编译信息,确定第i个资源对应的资源位置,第i个编译信息和第三编译信息在第i个资源对应的资源位置上的信息不同;其中,i取1、2、……、n,n为功能电路中包括的资源的数量。131.例如,在对功能电路的第1个资源进行更新,如(将功能电路的第一个资源由电路资源1更新为电路资源2),并对更新后的功能电路进行编译得到第1个编译信息。对比第三编译信息和第1个编译信息,可以首先确定更新后的第1个资源在第1个编译信息中的资源位置。132.对功能电路的所有资源依次进行更新,根据以上的方法,即可获得各个电路资源对应的资源位置,即电路资源与资源配置位的对应关系。133.接下来,对获取电路资源与资源位置的对应关系的流程进行进一步的介绍,确定电路资源与资源位置的对应关系的流程图如图8所示。134.首先设计功能电路,包括时序逻辑电路、组合逻辑电路及bram配置电路。其中,时序逻辑电路由触发器构成,组合逻辑电路由查找表构成,bram配置电路由bram资源构成。135.然后,对功能电路进行布局布线生成原始的本地电路描述(nativecircuitdescription,ncd)文件,通过fpgaeditor软件将功能电路所使用的电路资源布局到目标位置,并进行编译得到bit文件。136.之后,对功能电路的设计逻辑进行修改及综合编译布局布线,生成新的ncd文件,通过fpgaeditor软件修改fpga功能电路的所使用的电路资源的布局,使其与原功能电路的布局保持一致,在通过bitgen产生修改后的bit文件。137.接下来,对比修改功能电路前后生成的bit文件,并将所用电路资源与差异的bit位置进行映射,录入数据库。138.再次使用fpgaeditor进行修改功能电路的电路资源的布局,并生成bit文件,并进行对比,构建电路资源与资源位置的映射关系。重复以上步骤,直到解析出所有电路资源。此外,对于bram和触发器资源的解析需使用生成回读文件即.ll文件加以辅助,以确定fpga相应电路资源在bit文件中的资源位置,从而构建电路资源与资源位置的对应关系。139.接下来,在获得电路资源和资源位置的对应关系的基础上,根据第一编译信息和对应关系,确定多个第一电路资源,并根据第二编译信息和对应关系,确定多个第二电路资源。140.例如,已知第一编译信息,即已知待测试电路对应的多个资源地址,根据电路资源与资源地址的对应关系,可以确定待测试电路对应的多个第一电路资源;同理,已知第二编译信息,即已知待测试电路对应的多个资源地址,根据电路资源与资源地址的对应关系,可以确定待测试电路对应的多个第二电路资源;141.因此,根据获得待测试电路对应的多个第一电路资源和参考电路对应的多个第二电路资源,可以确定待测试电路与第二电路资源的功能差异信息。142.s104、根据待测试电路对应的目标功能、参考电路对应的参考功能和功能差异信息,确定待测试电路对应的测试结果。143.基于步骤103确定了待测试电路与参考电路之间的功能差异信息,接下来,根据待测试电路对应的目标功能、参考电路对应的参考功能和功能差异信息,确定待测试电路对应的测试结果。144.在一种可能的实现方式中,首先根据参考电路对应的参考功能和功能差异信息,确定待测试电路对应的测试功能。再根据判断待测试电路对应的测试功能与目标功能是否一致,来进一步确定待测试电路对应的测试结果。若待测试电路对应的测试功能与目标功能一致,则确定待测试电路对应的测试结果为测试成功。若待测试电路对应的测试功能与目标功能不一致,则确定待测试电路对应的测试结果为测试失败。145.本技术实施例提供的电路测试方法,包括:对待测试电路进行编译,得到第一编译信息,第一编译信息包括待测试电路对应的多个第一资源位置。对待测试电路对应的参考电路进行编译,得到第二编译信息,第二编译信息包括参考电路对应的多个第二资源位置。根据第一编译信息和第二编译信息,确定待测试电路与参考电路之间的功能差异信息。根据待测试电路对应的目标功能、参考电路对应的参考功能和功能差异信息,确定待测试电路对应的测试结果。其中,通过根据待测试电路对应的目标功能、参考电路对应的参考功能和功能差异信息,即可确定待测试电路对应的测试结果。因此,在对待测试电路进行设计验证时只需进行功能仿真验证即可,从而大大缩短了待测试电路的验证周期提高了验证效率。146.在上述实施例的基础上,下面结合一个具体的实施例对本技术提供的电路测试方法进行进一步的介绍,结合图9进行介绍,图9为本技术实施例提供的电路测试方法的流程图二。147.如图9所示,该方法包括:148.s901、对待测试电路进行编译,得到第一编译信息,第一编译信息包括待测试电路对应的多个第一资源位置。149.s902、对待测试电路对应的参考电路进行编译,得到第二编译信息,第二编译信息包括参考电路对应的多个第二资源位置。150.其中,步骤s901与步骤s101的具体实现方法类似,步骤s902与步骤s102的具体实现方法类似,此处不再赘述。151.s903、获取电路资源与资源位置之间的对应关系,对应关系中包括多个电路资源和每个电路资源对应的资源位置。152.在一种可能的实现方式中,获取功能电路,其中功能电路例如可以为时序逻辑电路、组合逻辑电路以及bram配置电路;对以上功能电路进行编译处理,得到第三编译信息;接下来,对上述功能电路中第i个资源进行修改电路设计逻辑得到更新后的功能电路,并对更新后的功能电路通过fpgaeditor软件修改资源布局布线,使得更新后的功能电路的布局布线与原功能电路的布局布线保持一致,之后,对更新后的功能电路进行编译,得到第i个编译信息,其中,i取1、2、……、n,n为功能电路中包括的资源的数量。接下来,根据第三编译信息和第i个资源进行更新,确定第i个资源对应的资源位置(bit地址),即第i个资源与资源位置的对应的关系。重复上述步骤,直至得到所有电路资源与资源位置之间的对应关系,其中对应关系中包括多个电路资源和每个电路资源对应的资源位置。153.另外,对于bram以及触发器的资源的解析,需生成回读文件即.ll文件加以辅助,以确定fpga相应电路资源在bit文件中的位置,从而构建资源与资源位置的对应关系。154.s904、根据第一编译信息和对应关系,确定多个第一电路资源。155.在基于步骤s903的基础上,获得了电路资源与资源位置之间的对应关系之后,接下来,根据第一编译信息和对应关系,即可确定多个第一电路资源。156.其中,第一编译信息中包括待测试电路对应的多个第一资源位置。157.在一种可能的实现方式中,通过将第一编译信息中的多个第一资源位置依次与对应关系进行匹配,具体的,首先在对应关系中依次找到各第一资源位置,在对应关系中各第一资源位置对应的电路资源,即为构成待测试电路的多个第一电路资源。158.s905、根据第二编译信息和对应关系,确定多个第二电路资源。159.同理,在基于步骤s903的基础上,获得了电路资源与资源位置之间的对应关系之后,接下来,根据第二编译信息和对应关系,即可确定多个第二电路资源。160.其中,第二编译信息中包括参考电路对应的多个第二资源位置。161.在一种可能的实现方式中,通过将第二编译信息中的多个第二资源位置依次与对应关系进行匹配,具体的,首先在对应关系中依次找到各第二资源位置,在对应关系中各第二资源位置对应的电路资源,即为构成参考电路的多个第二电路资源。162.s906、根据多个第一电路资源和多个第二电路资源,确定资源差异信息。163.基于上述步骤s904以及步骤s905确定了待测试电路对应的多个第一电路资源和参考电路对应的多个第二电路资源,接下来,根据多个第一电路资源和多个第二电路资源,确定资源差异信息。其中,资源差异信息为待测试电路所包含的电路资源不同于参考电路所包含的电路资源的差异电路资源集合。164.在一种可能的实现方式中,将多个第一电路资源与多个第二电路资源依次进行比较,具体地,首先依次将各个第一电路资源与多个第二电路资源进行比较,在对比每一个第一电路资源与多个第二电路资源时,若在多个第二电路资源中不存在该第一电路资源,则将该第一电路资源放入第一差异电路资源集合中。同样,接下来,首先依次将各个第二电路资源与多个第一电路资源进行比较,在对比每一个第二电路资源与多个第一电路资源时,若在多个第一电路资源中不存在该第二电路资源,则将该第二电路资源放入第二差异电路资源集合中。比较结束后,得到的第一差异电路资源集合和第二差异电路资源集合的总和则为资源差异信息。165.在本实施例中,只是对确定差异资源信息的实现方式进行示例性的介绍,并不是对确定差异资源信息的实现方式作以限制,对确定差异资源信息的实现方式可以根据实际的需求进行选择。166.s907、根据资源差异信息,确定功能差异信息。167.其中,功能差异信息为待测试电路与参考电路在实现功能上存在的差异。168.在一种可能的实现方式中,对资源差异信息中多个第一差异电路资源的进行组合,组合得到的第一电路,该第一电路对应的功能即为待测试电路与参考电路之间的第一功能差异信息。同理,对资源差异信息中多个第二差异电路资源的进行组合,组合得到的第二电路,该第二电路对应的功能即为待测试电路与参考电路之间的第二功能差异信息。169.第一功能差异信息和第二功能差异信息组成待测试电路与参考电路的功能差异信息。170.s908、根据参考功能和功能差异信息,确定待测试电路对应的测试功能。171.基于上述步骤s907确定的,功能差异信息由第一功能差异信息和第二功能差异信息组成。172.在一种可能的实现方式中,对参考电路对应的参考功能添加上第一功能差异信息,并减去第二功能差异信息之后得到的功能,则确定为待测试电路对应的测试功能。173.在本实施例中,只是对确定待测试电路对应的测试功能的实现方式进行示例性的介绍,并不是对确定待测试电路对应的测试功能的实现方式作以限制,只要是根据参考功能和功能差异信息,确定待测试电路对应的测试功能即可。174.s909、判断测试功能和目标功能是否相同,若是,则执行s910,若否,则执行s911。175.待测试电路的目标功能为对参考电路的设计参数进行修改后得到的待测试电路的期望功能。176.基于上述步骤s908确定待测试电路对应的测试功能后,通过判断待测试电路的测试功能是否与待测试电路的目标功能相同,来确定待测试电路的测试结果。177.s910、确定测试结果为测试成功。178.在本实施例中,当待测试电路对应的测试功能与目标功能相同时,则确定待测试电路的测试结果为测试成功,即待测试电路的测试功能是所期望达到的功能。179.s911、确定测试结果为测试失败。180.在本实施例中,当待测试电路对应的测试功能与目标功能不同时,则确定待测试电路的测试结果为测试失败,即待测试电路的测试功能不是所期望达到的功能。181.本技术实施例提供的电路测试方法,包括:对待测试电路进行编译,得到第一编译信息,第一编译信息包括待测试电路对应的多个第一资源位置。对待测试电路对应的参考电路进行编译,得到第二编译信息,第二编译信息包括参考电路对应的多个第二资源位置。获取电路资源与资源位置之间的对应关系,对应关系中包括多个电路资源和每个电路资源对应的资源位置。根据第一编译信息和对应关系,确定多个第一电路资源。根据第二编译信息和对应关系,确定多个第二电路资源。根据多个第一电路资源和多个第二电路资源,确定资源差异信息。根据资源差异信息,确定功能差异信息。根据参考功能和功能差异信息,确定待测试电路对应的测试功能。若测试功能和目标功能相同,确定测试结果为测试成功。若测试功能和目标功能不相同,确定测试结果为测试失败。182.图10为本技术实施例提供的电路测试装置的结构示意图。如图10所示,该装置1000包括:第一编译模块1001、第二编译模块1002、确定模块1003以及处理模块1004。183.第一编译模块1001,用于对待测试电路进行编译,得到第一编译信息,所述第一编译信息包括所述待测试电路对应的多个第一资源位置;184.第二编译模块1002,用于对所述待测试电路对应的参考电路进行编译,得到第二编译信息,所述第二编译信息包括所述参考电路对应的多个第二资源位置;185.确定模块1003,用于根据所述第一编译信息和所述第二编译信息,确定所述待测试电路与所述参考电路之间的功能差异信息;186.处理模块1004,用于根据所述待测试电路对应的目标功能、所述参考电路对应的参考功能和所述功能差异信息,确定所述待测试电路对应的测试结果。187.在一种可能的设计中,所述处理模块1004具体用于:188.根据所述参考功能和所述功能差异信息,确定所述待测试电路对应的测试功能;189.根据所述测试功能和所述目标功能,确定对所述待测试电路的测试结果。190.在一种可能的设计中,所述处理模块1004具体用于:191.若所述测试功能和所述目标功能相同,确定所述测试结果为测试成功;192.若所述测试功能和所述目标功能不相同,确定所述测试结果为测试失败。193.在一种可能的设计中,所述处理模块1004具体用于:194.获取电路资源与资源位置之间的对应关系,所述对应关系中包括多个电路资源和每个电路资源对应的资源位置;195.根据所述第一编译信息和所述对应关系,确定多个第一电路资源;196.根据所述第二编译信息和所述对应关系,确定多个第二电路资源;197.根据所述多个第一电路资源和所述多个第二电路资源,确定功能差异信息。198.在一种可能的设计中,所述确定模块1003具体用于:199.根据所述多个第一电路资源和所述多个第二电路资源,确定资源差异信息;200.根据所述资源差异信息,确定所述功能差异信息。201.在一种可能的设计中,所述确定模块1003具体用于:202.获取功能电路;203.对所述功能电路进行编译,得到第三编译信息;204.对所述功能电路的第i个资源进行更新,并获取更新后的功能电路的第i个编译信息,根据所述第三编译信息和所述第i个编译信息,确定第i个资源对应的资源位置,所述第i个编译信息和所述第三编译信息在所述第i个资源对应的资源位置上的信息不同;205.其中,所述i取1、2、……、n,所述n为所述功能电路中包括的资源的数量。206.本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。207.图11为本技术实施例提供的电路测试设备的硬件结构示意图,如图11所示,本实施例的电路测试设备1100包括:处理器1101以及存储器1102;其中208.存储器1102,用于存储计算机执行指令;209.处理器1101,用于执行存储器存储的计算机执行指令,以实现上述实施例中电路测试方法所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。210.可选地,存储器1102既可以是独立的,也可以跟处理器1101集成在一起。211.当存储器1102独立设置时,该电路测试设备还包括总线1103,用于连接所述存储器1102和处理器1101。212.本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上电路测试设备所执行的电路测试方法。213.本技术实施例还提供一种计算机程序产品,程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。214.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。215.上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本技术各个实施例所述方法的部分步骤。216.应理解,上述处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。217.存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。218.总线可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponent,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本技术附图中的总线并不限定仅有一根总线或一种类型的总线。219.上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。220.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。221.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。当前第1页12当前第1页12
再多了解一些

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

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

相关文献