CN109557460A - 一种基于fpga的卷积神经网络算法的测试方法及设备 - Google Patents
一种基于fpga的卷积神经网络算法的测试方法及设备 Download PDFInfo
- Publication number
- CN109557460A CN109557460A CN201910123400.4A CN201910123400A CN109557460A CN 109557460 A CN109557460 A CN 109557460A CN 201910123400 A CN201910123400 A CN 201910123400A CN 109557460 A CN109557460 A CN 109557460A
- Authority
- CN
- China
- Prior art keywords
- module
- tested
- test
- parameter
- control parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318516—Test of programmable logic devices [PLDs]
- G01R31/318519—Test of field programmable gate arrays [FPGA]
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318558—Addressing or selecting of subparts of the device under test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种基于FPGA的卷积神经网络算法的测试方法及设备,用于提高测试效率。其中的基于FPGA的卷积神经网络算法的测试方法包括:接收来自终端设备的控制参数,其中,所述控制参数用于触发测试卷积神经网络算法的至少一个待测试模块;接收来自终端设备的测试参数,其中,所述测试参数用于对所述至少一个待测试模块进行测试;基于所述控制参数以及所述测试参数对所述至少一个待测试模块进行测试。
Description
技术领域
本发明涉及算法测试技术领域,特别涉及一种基于FPGA的卷积神经网络算法的测试方法及设备。
背景技术
卷积神经网络算法可以通过现场可编程门阵列(Field-Programmable GateArray,FPGA)实现。但是卷积神经网络算法结构复杂,完全转换成硬件语言在FPGA上实现,需要对算法进行反复调试。
目前基于FPGA对卷积神经网络算法进行调试的方法是修改卷积神经网络算法程序后,重新编译程序,再通过编译后从程序进行测试。但是重新编译程序往往需要1-2小时以上的时间,调试效率较低。
在卷积神经网络算法调试的过程中需要将数据量较大的测试图像、权重参数等导入FPGA中作为计算参数同时将大量的计算结果导出进行数据比对。还需要实时的将数据量较小的控制信号导入FPGA中,控制FPGA的运行到需要测试的程序模块,同时将该位置的一些信号的状态导出到上位机,对错误进行定位。
发明内容
本发明实施例提供一种基于FPGA的卷积神经网络算法的测试方法及设备,用于提高测试效率。
本发明实施例提供了一种基于现场可编程门阵列FPGA的卷积神经网络算法的测试方法,该方法包括:
接收来自终端设备的控制参数,其中,所述控制参数用于触发测试卷积神经网络算法的至少一个待测试模块;
接收来自终端设备的测试参数,其中,所述测试参数用于对所述至少一个待测试模块进行测试;
基于所述控制参数以及所述测试参数对所述至少一个待测试模块进行测试。
本发明实施例中,卷积神经网络算法可以划分成多个功能实现模块,在对卷积神经网络算法进行测试时,可以选择分别对各个功能实现模块进行测试。具体地,本发明实施例可以通过终端设备向FPGA输入控制参数,以选择待测试的模块,并通过终端设备向FPGA输入测试参数,以用于测试所选择的待测试模块。当测试参数发生改变时,不需要更改基于FPGA的卷积神经网络算法的程序,也不需要重新编译程序,从而提高了测试效率。
可选的,在接收来自终端设备的控制参数之后,还包括:
将所述控制参数写入寄存器或者双倍速率内存DDR。
可选的,在接收来自终端设备的测试参数之后,还包括:
将所述测试参数写入DDR。
本发明实施例,将控制参数写入寄存器或双倍速率内存(Double Data RateSDRAM,DDR),而将测试参数写入DDR,可以节约FPGA自身的资源。且控制参数的数据量一般较小,将控制参数写入寄存器相较于将控制参数写入DDR,写入的速率较快,从而进一步提高测试效率。
可选的,将所述控制参数写入寄存器或者双倍速率内存DDR,包括:
基于Xing分布式媒体结构XDMA接收所述控制参数;
基于协议转换模块将所述控制参数写入所述寄存器,其中,所述协议转换模块用于在所述Xing分布式媒体结构支持的通信协议和所述寄存器所支持的通信协议之间相互转化;或,
基于AXI4总线协议将所述控制参数写入所述DDR。
可选的,将所述测试参数写入DDR,包括:
基于AXI4总线协议将所述测试参数写入所述DDR。本发明实施例可以基于XDMA或AXI4总线协议将控制参数写入寄存器,并基于AXI4总线协议将测试参数写入DDR。由于AXI4结构支持多个主接口和多个从接口,兼容性较强,从而在数据传输过程中,不需要更多的其他外设接口,降低了测试设备的复杂度。
可选的,基于所述控制参数以及所述测试参数对所述至少一个待测试模块进行测试,包括:
从寄存器或者所述DDR读取所述控制参数,并从所述DDR中读取所述测试参数;
基于读取的所述测试参数对所述控制参数触发的待测试模块进行测试。
可选的,在基于所述控制参数以及所述测试参数对所述至少一个待测试模块进行测试之后,还包括:
将所述至少一个待测试模块中的每个待测试模块的测试结果发送给所述终端设备;
将所述至少一个待测试模块中的每个待测试模块的运行状态参数写入所述寄存器,以使得所述终端设备根据来自所述寄存器的所述运行状态参数确定所述每个待测试模块的运行状态。
本发明实施例中,在对每个待测试模块进行测试之后,将每个待测试模块的运行状态参数写入寄存器,这样终端设备读取寄存器中的运行状态参数与自身的存储的运行状态进行对比,从而确定测试模块的运行状态是否正确,如果不正确,则可以确定正在测试的模块存在问题。
可选的,将所述至少一个待测试模块中的每个待测试模块的测试结果发送给所述终端设备,包括:
判断所接收的请求消息是否来自所述每个待测试模块,其中,所述每个待测试模块发送的请求消息用于请求写入所述每个待测试模块的测试结果;
若确定所述请求消息来自所述每个待测试模块,则将所述测试结果发送给XDMA,以通过所述XDMA将所述测试结果发送给所述终端设备。
本发明实施例中,在对每个待测试模块进行测试之后,将每个待测试模块的测试结果写入XDMA,这样终端设备读取XDMA中的测试结果与自身的存储的测试结果进行对比,从而对正在测试的模块进行问题的定位。
第二方面,本发明实施例提供了一种测试设备,该测试设备包括:
至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如第一方面任一项所述的方法。
第三方面,本发明实施例提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的方法。
本发明实施例中,卷积神经网络算法可以划分成多个功能实现模块,在对卷积神经网络算法进行测试时,可以选择分别对各个功能实现模块进行测试。具体地,本发明实施例可以通过终端设备向FPGA输入控制参数,以选择待测试的模块,并通过终端设备向FPGA输入测试参数,以用于测试所选择的待测试模块。当测试参数发生改变时,不需要更改基于FPGA的卷积神经网络算法的程序,也不需要重新编译程序,从而提高了测试效率。
附图说明
图1是本发明实施例提供的基于FPGA的卷积神经网络算法的测试方法的流程示意图;
图2为本发明实施例提供的测试设备的一种结构示意图;
图3为本发明实施例提供的测试设备的一种结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
目前基于FPGA对卷积神经网络算法进行调试的方法是修改卷积神经网络算法程序后,重新编译程序,再通过编译后从程序进行测试。但是重新编译程序往往需要1-2小时以上的时间,调试效率较低。
鉴于此,本发明实施例提供了一种新的卷积神经网络算法的测试方法,在该方法中,卷积神经网络算法可以划分成多个功能实现模块,在对卷积神经网络算法进行测试时,可以选择分别对各个功能实现模块进行测试。具体地,本发明实施例可以通过终端设备向FPGA输入控制参数,以选择待测试的模块,并通过终端设备向FPGA输入测试参数,以用于测试所选择的待测试模块。当测试参数发生改变时,不需要更改基于FPGA的卷积神经网络算法的程序,也不需要重新编译程序,从而提高了测试效率。
下面结合说明书附图介绍本发明实施例提供的技术方案。
请参见图1,本发明实施例提供了一种基于FPGA的卷积神经网络算法的测试方法,该测试方法可以由FPGA执行,该测试方法涉及到终端设备和FPGA的交互,所以在下述接收测试方法的流程中包括终端设备的流程和FPGA的流程。本发明实施例提供的测试方法的具体流程描述如下:
S101、接收来自终端设备的控制参数,其中,控制参数用于触发测试卷积神经网络算法的至少一个待测试模块。
本发明实施例中,卷积神经网络算法可以划分为多个功能模块,在对卷积神经网络算法进行测试时,可以分别测试所划分的每个功能模块,这里将待测试的功能模块称为待测试模块。
具体地,本发明实施例可以通过终端设备控制测试哪个待测试模块,或者,一次测试多个待测试模块中的至少两个测试模块。请参见图2,图2提供了一种测试系统结构示意图,该测试系统包括终端设备和FPGA,其中,终端设备可以安装上位机软件,终端设备可以向FPGA发送数据,同样地,终端设备也可以从FPGA读出数据。
本发明实施例中,卷积神经网络算法划分为多个功能模块,FPGA可以分别对各个功能模块进行测试。具体地,终端设备可以向FPGA发送控制参数,以通过控制参数触发测试卷积神经网络算法的至少一个待测试模块。控制参数可以理解为是控制信号,例如连续高低电平信号,其中,高电平可以对应待测试模块,或者,低电平可以对应待测试模块。事先可以就卷积神经网络算法划分的多个功能模块进行编号,控制参数指示的值可以是功能模块的编号,例如功能模块的编号是4,高电平用1标识,低电平用0标识,那么控制参数可以是0001,以标识待测试模块为编号是4的功能模块。或者,控制参数也可以指示待测试模块为两个或两个以上的功能模块。例如,待测试模块是编号为2和4的功能模块,则控制参数可以是0011,以标识待测试模块为编号是2和4的功能模块。当然,控制参数也可能是其他的实现方式,基于终端设备和FPGA的约定,只要控制参数可以指示待测试模块即可。
通常终端设备基于将PCIe协议向与终端设备连接的其他设备发送数据。但是本发明实施例中,FPGA设置了基于Xing分布式媒体结构XDMA,即将PCIe协议模块和直接内存操作(Direct Memory Access,DMA)封装在一起,以将PCIe总线上的数据传输映射到AXI4总线。这样终端设备直接对AXI4总线进行读写而不用关系PCIe协议本身。XDMA还提供PCIe到AXI4_lite的映射,也就是终端设备发起的PCIe通信事务,该通信事务通过FPGA的XDMA之后,可以转化为AXI4_Lite总线的操作。
本发明实施例中,FPGA接收到终端设备发送的控制参数,可以将控制参数写入与FPGA连接的DDR,也可以写入FPGA自身的寄存器。例如控制参数经过XDMA之后,可以基于AXI4总线协议将控制参数写入DDR。或者,FPGA自身设置了用于在Xing分布式媒体结构支持的通信协议和寄存器所支持的通信协议之间相互转化的协议转换模块。例如,寄存器支持的通信协议是外围总线(Advanced Peripheral Bus,APB)通信协议,那么协议转化模块可以是AXI4_lite转APB模块,用于AXI4_lite协议和APB协议的相互转换,使XDMA和寄存器之间可以进行相互通信。FPGA中的XDMA接收到终端设备发送的控制参数,通过AXI4_lite转APB模块将控制参数写入寄存器。由于寄存器的读写操作相对于DDR的读写操作较快,优选地,将控制参数写入寄存器,以尽量提高整个测试流程的测试效率。
终端设备向寄存器中写入控制参数时,可以向XDMA发送写寄存器的请求和地址,XDMA通过AXI4_lite协议将写寄存器的请求和地址发送到AXI4_lite转APB模块,AXI4_lite转APB模块将AXI4_lite协议转换成APB协议后将写寄存器的请求和地址发送到寄存器进行写操作,以实现将控制参数写入寄存器。
S102、接收来自终端设备的测试参数,其中,测试参数用于对至少一个待测试模块进行测试。
终端设备在确定了待测试的测试模块之后,对应地,将测试至少一个待测试模块的测试参数发送给FPGA,以通过测试参数测试至少一个待测试模块。具体地,终端设备基于对AXI4总线进行读写将测试参数发送给FPGA的XDMA,XDMA将接收的测试参数写入与FPGA连接的DDR,以实现对测试参数的保存。本发明实施例中,DDR可以是DDR3,FPGA内还设置了AXI4模块和DDR3控制模块,以通过AXI4模块接收XDMA传输的测试参数,并将接收的测试参数通过DDR3控制模块将测试参数写入DDR3。其中,AXI4模块可以包括多个AXI4主接口和多个AXI4从接口,一个主接口可以和多个从接口进行通信,一个从接口也可以和多个主接口进行通信。
终端设备向DDR中写入测试参数时,终端设备可以向XDMA发送写数据请求和写数据地址,XDMA将写数据请求和写数据地址传送到FPGA设置的AXI4模块,AXI4模块根据写数据的地址将数据传输给FPGA内设置的DDR控制模块,DDR控制模块执行向DDR中写入测试参数。
需要说明的是,本发明实施例中,步骤S101和步骤S102执行的先后没有特别限定,可以先执行步骤S101,也可以先执行步骤S102。
S103、基于控制参数以及测试参数对至少一个待测试模块进行测试。
FPGA接收到来自终端设备的控制参数和测试参数之后,可以基于控制参数以及测试参数对至少一个待测试模块进行测试。
具体地,FPGA可以从寄存器或者DDR中读取控制参数,并从DDR中读取测试参数,基于读取的测试参数对控制参数触发的待测试模块进行测试。在对卷积神经网络算法进行测试时,先读取寄存器中的控制参数,并基于控制参数从DDR中读取相应的测试参数。
终端设备从寄存器中读取控制参数时,可以向XDMA发送读寄存器的请求和地址,XDMA通过AXI4_lite协议将读寄存器的请求和地址发送到AXI4_lite转APB模块,AXI4_lite转APB模块将AXI4_lite协议转换成APB协议后将读寄存器的请求和地址发送到寄存器进行读操作,以实现从寄存器读取控制参数。
FPGA通过DDR控制模块从DDR中读取测试参数,并将读取的测试参数传输给卷积神经网络算法中对应的测试模块。FPGA从DDR控制模块中获取了测试参数之后,可以通过AXI4模块从DDR控制模块获取测试参数。FPGA从DDR中读取终端设备写入的测试参数时,可以向AXI4模块发送读请求和读地址,AXI4模块根据读地址进行判断后将读请求和读地址发送到DDR控制器,DDR控制器执行从DDR中读取测试参数,并将读取的测试参数传送给卷积神经网络算法模块。卷积神经网络算法模块基于测试参数和控制参数对至少一个待测试模块进行测试。
本发明实施例中,终端设备可以实时地向FPGA写入控制参数和测试参数,在测试时使FPGA运行到需要测试的待测试模块,不需要反复以及编译修改卷积神经网络算法模块程序,也不需要反复运行整个卷积神经网络算法模块的程序,相较于现有技术中,控制参数即使是测试某个功能模块,也编译整个卷积神经网络算法模块的程序再测试,缩短了测试时间,从而提高了测试效率。
本发明实施例中的FPGA在对至少一个待测试模块中的每个待测试模块进行测试之后,可以将至少一个待测试模块中的每个待测试模块的运行状态参数写入寄存器,以使得终端设备根据来自寄存器的运行状态参数确定每个待测试模块的运行状态。
卷积神经网络算法模块将每个待测试模块的运行状态参数写入寄存器,具体地,向寄存器发送写命令和地址,以向寄存器中写入运行状态参数。终端设备可以从寄存器读取运行状态参数,从而根据运行状态参数确定每个待测试模块的运行状态。例如终端设备读取寄存器中的运行状态参数与自身的存储的运行状态进行对比,从而确定测试模块的运行状态是否正确,如果不正确,则可以确定正在测试的模块存在问题。
本发明实施例中,FPGA也可以将至少一个待测试模块中的每个待测试模块的测试结果发送给终端设备。卷积神经网络算法模块测试至少一个待测试模块之后,获得了测试结果,可以将测试结果写入与FPGA连接的DDR模块。卷积神经网络算法模块中的各个待测试模块向FPGA发送请求消息,FPGA判断所接收的请求消息是否来自每个待测试模块,其中,每个待测试模块发送的请求消息用于请求写入每个待测试模块的测试结果。如果FPGA确定请求消息来自每个待测试模块,则将测试结果发送给XDMA,以通过XDMA将测试结果发送给终端设备。
具体地,卷积神经网络算法模块向AXI4模块发送写请求和写地址,AXI4模块根据写地址进行判断后将写请求和写地址发送到XDMA,XDMA通过PCIe将写地址和写请求发送到终端设备,在得到终端设备的写应答后将测试结果写入终端设备的硬盘中。本发明实施例中,在对每个待测试模块进行测试之后,将每个待测试模块的测试结果写入XDMA,这样终端设备读取XDMA中的测试结果与自身的存储的测试结果进行对比,从而对正在测试的模块进行问题的定位,提高了bug定位精度。
综上,本发明实施例中,卷积神经网络算法可以划分成多个功能实现模块,在对卷积神经网络算法进行测试时,可以选择分别对各个功能实现模块进行测试。具体地,本发明实施例可以通过终端设备向FPGA输入控制参数,以选择待测试的模块,并通过终端设备向FPGA输入测试参数,以用于测试所选择的待测试模块。当测试参数发生改变时,不需要更改基于FPGA的卷积神经网络算法的程序,也不需要重新编译程序,从而提高了测试效率。
本发明实施例中,终端设备实时地将控制参数和测试参数传输给FPGA,在测试时使FPGA运行到需要测试的待测试模块,不需要反复以及编译修改卷积神经网络算法程序,也不需要反复运行整个卷积神经网络算法的程序,相较于现有技术中,控制参数即使是测试某个功能模块,也编译整个卷积神经网络算法的程序再测试,缩短了测试时间,从而提高了测试效率。
相较于测试时将测试所需要的所有测试参数写入FPGA来说,节约了FPGA的存储空间。且本发明实施例中,每个待测试模块的测试结果也可以实时地传输给终端设备,相较于现有技术中,全部的测试结果都存储在FPGA中,节约了FPGA的存储资源,也避免了FPGA的存储资源可能无法满足测试结果的存储需求。
且现有技术在程序中添加需要调试的程序模块的ILA核,在ILA核中添加需要监测的信号,然后使FPGA运行在仿真状态下,当FPGA运行到设定的触发条件时ILA会将需要监测信号的数据存储到FPGA中,并通过JTAG发送到终端设备,从而实现对FPGA的调试。由于现有技术只能获得ILA核中添加信号的状态,不能向FPGA中写入参数,如果需要更改参数就需要更改程序,然后重新编译工程,再重新向FPGA中烧写程序,测试效率还是较低。
另外,ILA核将需要监测信号的数据存储到FPGA中,会消耗FPGA的存储资源,当需要监测信号的数据量较大时,FPGA的存储资源甚至无法满足需要监测信号的数据的存储需求。而本发明实施例中,终端设备可以实时地向FPGA传输控制参数,不需要一次性将全部的控制参数存储,以尽量节约FPGA的存储资源。
其次,从ILA核获得的信号状态只能以波形的方式显示,不能将测试结果导出,当信号的数据量较大时,难以直观地比较测试结果。而本发明实施例中,FPGA将测试结果直接反馈给终端设备,即使数据量较大,也较容易比较测试结果。
下面结合说明书附图介绍本发明实施例提供的设备。
请参见图3,基于同一发明构思,本发明一实施例提供一种测试设备,该测试设备可以是FPGA,用于测试卷积神经网络算法,该测试设备可以包括:至少一个处理器301,处理器301用于执行存储器中存储的计算机程序时实现本发明实施例提供的如图1所示的卷积神经网络算法的测试方法的步骤。
可选的,处理器301具体可以是中央处理器、特定应用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC),可以是一个或多个用于控制程序执行的集成电路。
可选的,该测试设备还包括与至少一个处理器连接的存储器302,存储器302可以包括只读存储器(英文:Read Only Memory,简称:ROM)、随机存取存储器(英文:Random AccessMemory,简称:RAM)和磁盘存储器。存储器302用于存储处理器301运行时所需的数据,即存储有可被至少一个处理器301执行的指令,至少一个处理器301通过执行存储器302存储的指令,执行如图1所示的方法。其中,存储器302的数量为一个或多个。其中,存储器302在图3中一并示出,但需要知道的是存储器302不是必选的功能模块,因此在图3中以虚线示出。
其中,图2中FPGA中包括的模块所对应的实体设备均可以是前述的处理器301。该测试设备可以用于执行图1所示的实施例所提供的方法。因此关于该设备中各功能模块所能够实现的功能,可参考图1所示的实施例中的相应描述,不多赘述。
本发明实施例还提供一种计算机存储介质,其中,计算机存储介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行如图1所述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(Universal Serial Bus flash disk)、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于现场可编程门阵列FPGA的卷积神经网络算法的测试方法,其特征在于,包括:
接收来自终端设备的控制参数,其中,所述控制参数用于触发测试卷积神经网络算法的至少一个待测试模块;
接收来自终端设备的测试参数,其中,所述测试参数用于对所述至少一个待测试模块进行测试;
基于所述控制参数以及所述测试参数对所述至少一个待测试模块进行测试。
2.如权利要求1所述的测试方法,其特征在于,在接收来自终端设备的控制参数之后,还包括:
将所述控制参数写入寄存器或者双倍速率内存DDR。
3.如权利要求2所述的测试方法,其特征在于,在接收来自终端设备的测试参数之后,还包括:
将所述测试参数写入DDR。
4.如权利要求3所述的测试方法,其特征在于,将所述控制参数写入寄存器或者双倍速率内存DDR,包括:
基于Xing分布式媒体结构XDMA接收所述控制参数;
基于协议转换模块将所述控制参数写入所述寄存器,其中,所述协议转换模块用于在所述Xing分布式媒体结构支持的通信协议和所述寄存器所支持的通信协议之间相互转化;或,
基于AXI4总线协议将所述控制参数写入所述DDR。
5.如权利要求3所述的测试方法,其特征在于,将所述测试参数写入DDR,包括:
基于AXI4总线协议将所述测试参数写入所述DDR。
6.如权利要求4或5所述的测试方法,其特征在于,基于所述控制参数以及所述测试参数对所述至少一个待测试模块进行测试,包括:
从寄存器或者所述DDR读取所述控制参数,并从所述DDR中读取所述测试参数;
基于读取的所述测试参数对所述控制参数触发的待测试模块进行测试。
7.如权利要求6所述的测试方法,其特征在于,在基于所述控制参数以及所述测试参数对所述至少一个待测试模块进行测试之后,还包括:
将所述至少一个待测试模块中的每个待测试模块的测试结果发送给所述终端设备;
将所述至少一个待测试模块中的每个待测试模块的运行状态参数写入所述寄存器,以使得所述终端设备根据来自所述寄存器的所述运行状态参数确定所述每个待测试模块的运行状态。
8.如权利要求7所述的测试方法,其特征在于,将所述至少一个待测试模块中的每个待测试模块的测试结果发送给所述终端设备,包括:
判断所接收的请求消息是否来自所述每个待测试模块,其中,所述每个待测试模块发送的请求消息用于请求写入所述每个待测试模块的测试结果;
若确定所述请求消息来自所述每个待测试模块,则将所述测试结果发送给XDMA,以通过所述XDMA将所述测试结果发送给所述终端设备。
9.一种测试设备,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如权利要求1-8任一项所述的方法。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910123400.4A CN109557460B (zh) | 2019-02-18 | 2019-02-18 | 一种基于fpga的卷积神经网络算法的测试方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910123400.4A CN109557460B (zh) | 2019-02-18 | 2019-02-18 | 一种基于fpga的卷积神经网络算法的测试方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109557460A true CN109557460A (zh) | 2019-04-02 |
CN109557460B CN109557460B (zh) | 2019-05-28 |
Family
ID=65874034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910123400.4A Active CN109557460B (zh) | 2019-02-18 | 2019-02-18 | 一种基于fpga的卷积神经网络算法的测试方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109557460B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399257A (zh) * | 2019-07-04 | 2019-11-01 | 上海创功通讯技术有限公司 | 存储器的检测方法、电子设备及计算机可读存储介质 |
CN110751272A (zh) * | 2019-10-30 | 2020-02-04 | 珠海格力电器股份有限公司 | 卷积神经网络模型中数据定位的方法、装置及存储介质 |
CN112014726A (zh) * | 2020-08-05 | 2020-12-01 | 广东省新一代通信与网络创新研究院 | Dsp芯片测试装置及方法 |
CN113656236A (zh) * | 2020-05-12 | 2021-11-16 | 大唐移动通信设备有限公司 | 一种数据处理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010109494A (ko) * | 2000-06-01 | 2001-12-10 | 가부시키가이샤 어드밴티스트 | 사상 기반 테스트 시스템에서 메모리 테스트를 위한모듈러 아키텍쳐 |
US20080195901A1 (en) * | 2007-02-12 | 2008-08-14 | Marvell Semiconductor Israel Ltd. | Op-code based built-in-self-test |
CN101894063A (zh) * | 2010-06-13 | 2010-11-24 | 北京北大众志微系统科技有限责任公司 | 一种用于微处理器功能验证的测试程序生成方法及装置 |
CN107329869A (zh) * | 2016-04-29 | 2017-11-07 | 展讯通信(上海)有限公司 | 一种片上系统的仿真方法及装置 |
CN109144806A (zh) * | 2017-06-19 | 2019-01-04 | 合肥君正科技有限公司 | 一种寄存器传输级电路的功能验证方法及装置 |
-
2019
- 2019-02-18 CN CN201910123400.4A patent/CN109557460B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010109494A (ko) * | 2000-06-01 | 2001-12-10 | 가부시키가이샤 어드밴티스트 | 사상 기반 테스트 시스템에서 메모리 테스트를 위한모듈러 아키텍쳐 |
US20080195901A1 (en) * | 2007-02-12 | 2008-08-14 | Marvell Semiconductor Israel Ltd. | Op-code based built-in-self-test |
CN101894063A (zh) * | 2010-06-13 | 2010-11-24 | 北京北大众志微系统科技有限责任公司 | 一种用于微处理器功能验证的测试程序生成方法及装置 |
CN107329869A (zh) * | 2016-04-29 | 2017-11-07 | 展讯通信(上海)有限公司 | 一种片上系统的仿真方法及装置 |
CN109144806A (zh) * | 2017-06-19 | 2019-01-04 | 合肥君正科技有限公司 | 一种寄存器传输级电路的功能验证方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399257A (zh) * | 2019-07-04 | 2019-11-01 | 上海创功通讯技术有限公司 | 存储器的检测方法、电子设备及计算机可读存储介质 |
CN110751272A (zh) * | 2019-10-30 | 2020-02-04 | 珠海格力电器股份有限公司 | 卷积神经网络模型中数据定位的方法、装置及存储介质 |
CN113656236A (zh) * | 2020-05-12 | 2021-11-16 | 大唐移动通信设备有限公司 | 一种数据处理方法和装置 |
CN113656236B (zh) * | 2020-05-12 | 2024-05-28 | 大唐移动通信设备有限公司 | 一种数据处理方法和装置 |
CN112014726A (zh) * | 2020-08-05 | 2020-12-01 | 广东省新一代通信与网络创新研究院 | Dsp芯片测试装置及方法 |
CN112014726B (zh) * | 2020-08-05 | 2023-09-05 | 广东省新一代通信与网络创新研究院 | Dsp芯片测试装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109557460B (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109557460B (zh) | 一种基于fpga的卷积神经网络算法的测试方法及设备 | |
CN107491061A (zh) | 一种商用车obd诊断设备的网络自动化测试系统及其方法 | |
US9470759B2 (en) | Test instrument having a configurable interface | |
JP2002358249A (ja) | デバイスのバス・プロトコル準拠試験方法およびシステム | |
CN108595298A (zh) | 一种芯片测试系统及方法 | |
CN109032879A (zh) | 多核处理器访存数据检测验证系统及方法 | |
CN110674055B (zh) | 一种用于部件级和部件联合级的缓存一致性模拟验证方法 | |
CN109783340A (zh) | SoC的测试代码烧写方法、IP测试方法及装置 | |
CN114333962A (zh) | 闪存芯片的测试方法、装置、系统、电子设备及存储介质 | |
CN111752772A (zh) | 存储设备仿真测试系统及方法 | |
CN115146568A (zh) | 一种基于uvm的芯片验证系统及验证方法 | |
CN102013274B (zh) | 一种存储器的自检测电路和方法 | |
CN107290654A (zh) | 一种fpga逻辑测试结构及方法 | |
US8874966B1 (en) | Storage device error simulator tool | |
US6442725B1 (en) | System and method for intelligent analysis probe | |
CN115547400A (zh) | 非易失性存储芯片测试系统及非易失性存储芯片测试方法 | |
US20060212768A1 (en) | Verification circuitry for master-slave system | |
CN109416667A (zh) | 具有动态且可配置的响应的、使用两个存储器级的串行设备仿真器 | |
CN114047712A (zh) | 一种基于反射内存网的半实物仿真系统的数据通信方法 | |
CN112885403B (zh) | 一种Flash控制器的功能测试方法、装置及设备 | |
CN115732025A (zh) | Ram访问冲突的验证方法及验证装置 | |
CN101714114A (zh) | 一种支持处理器硅后调试的装置和方法 | |
CN109902001A (zh) | 对未初始化变量的检测方法及终端设备 | |
CN117234831B (zh) | 一种基于多核cpu的芯片功能测试方法及系统 | |
CN110032085A (zh) | 一种适用于专用处理器的多调试模式电路及其监测仿真方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |