CN111027277A - 一种软硬件协同的验证方法 - Google Patents

一种软硬件协同的验证方法 Download PDF

Info

Publication number
CN111027277A
CN111027277A CN201911103235.2A CN201911103235A CN111027277A CN 111027277 A CN111027277 A CN 111027277A CN 201911103235 A CN201911103235 A CN 201911103235A CN 111027277 A CN111027277 A CN 111027277A
Authority
CN
China
Prior art keywords
software
data
tested
parameters
design
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
Application number
CN201911103235.2A
Other languages
English (en)
Other versions
CN111027277B (zh
Inventor
刘强
曾成龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin University
Original Assignee
Tianjin University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin University filed Critical Tianjin University
Priority to CN201911103235.2A priority Critical patent/CN111027277B/zh
Publication of CN111027277A publication Critical patent/CN111027277A/zh
Application granted granted Critical
Publication of CN111027277B publication Critical patent/CN111027277B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种软硬件协同的验证方法,包括如下步骤,步骤一、将图像数据和参数进行前处理,传输到验证平台的模拟储存器中,然后根据所需测试的网络结构,对待测设计进行配置;步骤二、待测设计根据配置,对图像数据和参数进行读取,并进行计算,同时,将图像数据和参数输入到参考模型中,进行对比结果的计算;步骤三、待测设计将计算结果输入到模拟储存器中进行缓存;步骤四、对模拟储存器的计算结果进行后处理,同时获取参考模型的计算结果,将两者的输入数据、配置参数及计算结果进行对比验证,若数据全部一致或数据差小于预设阈值,则测试通过,否则,测试失败。本发明能够实现了验证流程自动化,还能缩短项目周期,提高工作效率。

Description

一种软硬件协同的验证方法
技术领域
本发明属于软硬件处理的技术领域,具体涉及一种软硬件协同的验证方法。
背景技术
随着AI技术的发展,越来越多的复杂应用场景对于深度学习网络模型要求也更高。在复杂的深度学习网络模型中,整个网络的数据传输量非常大,为了保证硬件架构的正确性,需要对整个网络结构的所有层进行验证仿真,这就导致需对上亿的数据进行存取操作,而真实的DDR控制器的仿真时间单位是在皮秒级,这就导致验证测试的时间非常的慢。并且从外设获取而来的图像数据需要进行一定的前处理才能输入到硬件架构,而硬件架构的计算结果也需要进行后处理才能反馈给外设。一般的验证平台只是对硬件架构模块进行仿真验证,忽略了软件驱动部分以及前后图像处理的正确性检验,这就会导致最终的硬件上板测试的时间增加,项目迭代周期变长。
发明内容
本发明的目的在于:针对现有技术的不足,提供一种软硬件协同的验证方法,通过利用软件驱动控制仿真流程,接近实际硬件上板流程,有助于提高仿真速度,提升代码覆盖率,实现了验证流程自动化,还能缩短项目周期,提高工作效率。
为了实现上述目的,本发明采用如下技术方案:
一种软硬件协同的验证方法,包括如下步骤:
步骤一、将图像数据和参数进行前处理,传输到验证平台的模拟储存器中,然后根据所需测试的网络结构,对待测设计进行配置;
步骤二、所述待测设计根据配置,对所述图像数据和所述参数进行读取,并进行计算,同时,将所述图像数据和所述参数输入到参考模型中,进行对比结果的计算;
步骤三、所述待测设计将计算结果输入到所述模拟储存器中进行缓存;
步骤四、对所述模拟储存器的计算结果进行后处理,同时获取所述参考模型的计算结果,将两者的输入数据、配置参数及计算结果进行对比验证,若数据全部一致或数据差小于预设阈值,则测试通过,否则,测试失败。
作为本发明所述的一种软硬件协同的验证方法的一种改进,还包括:利用C语言编写的驱动程序对数据进行前处理及对所述待测设计配置。
作为本发明所述的一种软硬件协同的验证方法的一种改进,还包括:利用真实FPGA开发板上测试所用的驱动程序对数据进行前处理、数据传输及对所述待测设计配置。
作为本发明所述的一种软硬件协同的验证方法的一种改进,所述模拟存储器包含数组或数据文件。
作为本发明所述的一种软硬件协同的验证方法的一种改进,所述步骤二中,还包括:
若需要对完整的网络模型进行仿真验证,则需要重复进行所述步骤一和所述步骤二,直到所述网络模型的最后一层结果计算完毕。
作为本发明所述的一种软硬件协同的验证方法的一种改进,所述步骤四中,所述对比验证还包括所述网络模型的每层网络层和整个所述网络模型。
作为本发明所述的一种软硬件协同的验证方法的一种改进,所述步骤一中,通过外部设备获取原始图像数据,所述外部设备包括传感器、摄像头或储存设备。
作为本发明所述的一种软硬件协同的验证方法的一种改进,所述步骤一中,所述前处理包括对图像进行解码、裁剪或压缩。
作为本发明所述的一种软硬件协同的验证方法的一种改进,所述参考模型包括待测设计的参考模型、前处理模块的参考模型及后处理的参考模型。
作为本发明所述的一种软硬件协同的验证方法的一种改进,所述参考模型为软件模型,所述软件模型采用C语言或System Verilog。
本发明的有益效果在于,本发明包括如下步骤:步骤一、将图像数据和参数进行前处理,传输到验证平台的模拟储存器中,然后根据所需测试的网络结构,对待测设计进行配置;步骤二、所述待测设计根据配置,对所述图像数据和所述参数进行读取,并进行计算,同时,将所述图像数据和所述参数输入到参考模型中,进行对比结果的计算;步骤三、所述待测设计将计算结果输入到所述模拟储存器中进行缓存;步骤四、对所述模拟储存器的计算结果进行后处理,同时获取所述参考模型的计算结果,将两者的输入数据、配置参数及计算结果进行对比验证,若数据全部一致或数据差小于预设阈值,则测试通过,否则,测试失败。由于一般的验证平台只是对硬件架构模块进行仿真验证,忽略了软件驱动部分以及前后图像处理的正确性检验,这就会导致最终的硬件上板测试的时间增加,项目迭代周期变长,步骤一,获取图像数据与权值,采用C语言编写的驱动程序,将外设获取到的原始图像数据以及权值输入进行前处理,并传入到验证平台的模拟储存器中,同时,将原始数据传输到参考模型;步骤二中,根据所需测试的网络结构,获取所需配置参数,其中主要包括读写数据地址与长度,测试用例网络层的参数,比如卷积层的权值参数、卷积核参数、步长参数等参数,以及控制参数,该参数可以为网络模型中任意一层的网络参数,或者为整个网络模型的所有网络层参数,软件驱动将对待测设计的控制寄存器按顺序进行配置;计算是待测设计的计算过程,而待测设计是一个卷积神经网络加速器,用硬件描述语言来实现卷积神经网络,具体包括卷积计算、池化计算、激活、全连接;步骤三中,图像数据读取完后,待测设计将开始计算权值进行对储存器的读取,由于计算权值的数据量较大,超出待测设计的片上储存器大小,因此将权值分成n(n=0,1,2,3…)组,即W0,W1,W2…,分别对参数进行读取,当前组权值全部计算完后,再进行下一组权值的读取,计算下一组权值的结果;步骤四中,由软件驱动来控制读取模拟储存器中的计算结果,与参考模型的计算结果进行对比验证,得到验证结果,其中包括:对应网络模型的每层网络层的输入数据与配置参数以及计算结果分别进行对比验证;对应整个网络模型的输入数据与配置参数以及最终计算结果对比验证。本发明通过利用软件驱动控制仿真流程,接近实际硬件上板流程,有助于提高仿真速度,提升代码覆盖率,实现了验证流程自动化,还能缩短项目周期,提高工作效率。
附图说明
图1为本发明的流程示意图。
具体实施方式
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接受的误差范围内,本领域技术人员能够在一定误差范围内解决技术问题,基本达到技术效果。
在本发明的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、水平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
以下结合附图对本发明作进一步详细说明,但不作为对本发明的限定。
如图1所示,一种软硬件协同的验证方法,包括如下步骤:
步骤一、将图像数据和参数进行前处理,传输到验证平台的模拟储存器中,然后根据所需测试的网络结构,对待测设计进行配置;
步骤二、待测设计根据配置,对图像数据和参数进行读取,并进行计算,同时,将图像数据和参数输入到参考模型中,进行对比结果的计算;
步骤三、待测设计将计算结果输入到模拟储存器中进行缓存;
步骤四、对模拟储存器的计算结果进行后处理,同时获取参考模型的计算结果,将两者的输入数据、配置参数及计算结果进行对比验证,若数据全部一致或数据差小于预设阈值,则测试通过,否则,测试失败。
需要说明的是,本发明的验证方法中,由于一般的验证平台只是对硬件架构模块进行仿真验证,忽略了软件驱动部分以及前后图像处理的正确性检验,这就会导致最终的硬件上板测试的时间增加,项目迭代周期变长,步骤一,获取图像数据与权值,采用C语言编写的驱动程序,将外设获取到的原始图像数据以及权值输入进行前处理,并传入到验证平台的模拟储存器中,同时,将原始数据传输到参考模型;步骤二中,根据所需测试的网络结构,获取所需配置参数,其中主要包括读写数据地址与长度,测试用例网络层的参数,比如卷积层的权值参数、卷积核参数、步长参数等参数,以及控制参数,该参数可以为网络模型中任意一层的网络参数,或者为整个网络模型的所有网络层参数,软件驱动将对待测设计的控制寄存器按顺序进行配置;计算是待测设计的计算过程,而待测设计是一个卷积神经网络加速器,用硬件描述语言来实现卷积神经网络,具体包括卷积计算、池化计算、激活、全连接;步骤三中,图像数据读取完后,待测设计将开始计算权值进行对储存器的读取,由于计算权值的数据量较大,超出待测设计的片上储存器大小,因此将权值分成n(n=0,1,2,3…)组,即W0,W1,W2…,分别对参数进行读取,当前组权值全部计算完后,再进行下一组权值的读取,计算下一组权值的结果;步骤四中,由软件驱动来控制读取模拟储存器中的计算结果,与参考模型的计算结果进行对比验证,得到验证结果,其中包括:对应网络模型的每层网络层的输入数据与配置参数以及计算结果分别进行对比验证;对应整个网络模型的输入数据与配置参数以及最终计算结果对比验证。
优选的,还包括:利用C语言编写的驱动程序对数据进行前处理及对待测设计配置。
优选的,还包括:利用真实FPGA开发板上测试所用的驱动程序对数据进行前处理、数据传输及对待测设计配置。
优选的,模拟存储器包含数组或数据文件。于本实施例中,模拟存储器包含数组或数据文件,但本发明不以此为限,模拟存储器还可以包含数组检索,通过索引地址的方式对数据进行存取,从而提高数据读取的速度,进而提高整个网络模型的数据处理速度。
优选的,步骤二中,还包括:
若需要对完整的网络模型进行仿真验证,则需要重复进行步骤一和步骤二,直到网络模型的最后一层结果计算完毕。
需要说明的是:输入数据可以是网络模型的第一层网络的输入数据,也可以是上一层网络的计算结果数据,具体操作为:若验证用例为单层网络层则输入数据为步骤一所存放的图像数据;若验证用例为整个网络模型,输入数据将会是前一层网络的计算结果,由于不同的数据将存放到数组或数据文件的不同的储存区域内,将根据不同需求建立不同的数据索引地址与长度来读取数据,一旦数据计算完毕,结果将开始从待测设计输入到验证平台的模拟储存器中进行缓存,若需要对完整网络模型进行仿真验证,则需要重复进行步骤一和步骤二,直到网络模型的最后一层结果计算完毕,确保完整计算网络模型的每一层,有助于提高数据读取的速度,进而提高整个网络模型的数据处理速度。
优选的,步骤四中,对比验证还包括网络模型的每层网络层和整个网络模型。计算结果可以为某一层的网络的计算结果,也可以为整个网络模型的最终计算结果。将两者的输入数据,配置参数以及计算结果进行对比验证,若数据全部一样,或者数据差小于预设阈值,则测试通过,否则,测试失败。这样设计提高了仿真速度,提升了代码验证的覆盖率,实现了自动化。
优选的,步骤一中,前处理包括对图像进行解码、裁剪或压缩。上述的输入数据可以是图像数据,上述的外部设备可以是传感器,比如摄像头,也可以是存储有图像数据的存储设备,比如移动硬盘或数据库服务器。对参与计算的神经网络权值按照待测设计的要求进行一定的处理,然后传入到验证平台的模拟储存器中。
优选的,步骤一中,通过外部设备获取原始图像数据,外部设备包括传感器、摄像头或储存设备。传感器、摄像头或储存设备均为常用的获取图像工具,可以根据实际设计需要,选择传感器、摄像头或储存设备作为外部设备,但本发明不以此为限,外部设备可以获取图像即可。
优选的,参考模型包括待测设计的参考模型、前处理模块的参考模型及后处理的参考模型。参考模型包含图片前后处理的参考模型进行对比,提高了仿真速度,提升了代码验证的覆盖率。
优选的,参考模型为软件模型,软件模型采用C语言或System Verilog。
根据上述说明书的揭示和教导,本发明所属领域的技术人员还能够对上述实施方式进行变更和修改。因此,本发明并不局限于上述的具体实施方式,凡是本领域技术人员在本发明的基础上所作出的任何显而易见的改进、替换或变型均属于本发明的保护范围。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本发明构成任何限制。

Claims (10)

1.一种软硬件协同的验证方法,其特征在于,包括如下步骤:
步骤一、将图像数据和参数进行前处理,传输到验证平台的模拟储存器中,然后根据所需测试的网络结构,对待测设计进行配置;
步骤二、所述待测设计根据配置,对所述图像数据和所述参数进行读取,并进行计算,同时,将所述图像数据和所述参数输入到参考模型中,进行对比结果的计算;
步骤三、所述待测设计将计算结果输入到所述模拟储存器中进行缓存;
步骤四、对所述模拟储存器的计算结果进行后处理,同时获取所述参考模型的计算结果,将两者的输入数据、配置参数及计算结果进行对比验证,若数据全部一致或数据差小于预设阈值,则测试通过,否则,测试失败。
2.如权利要求1所述的一种软硬件协同的验证方法,其特征在于,还包括:利用C语言编写的驱动程序对数据进行前处理及对所述待测设计配置。
3.如权利要求1所述的一种软硬件协同的验证方法,其特征在于,还包括:利用真实FPGA开发板上测试所用的驱动程序对数据进行前处理、数据传输及对所述待测设计配置。
4.如权利要求1所述的一种软硬件协同的验证方法,其特征在于:所述模拟存储器包含数组或数据文件。
5.如权利要求1所述的一种软硬件协同的验证方法,其特征在于,所述步骤二中,还包括:
若需要对完整的网络模型进行仿真验证,则需要重复进行所述步骤一和所述步骤二,直到所述网络模型的最后一层结果计算完毕。
6.如权利要求5所述的一种软硬件协同的验证方法,其特征在于:所述步骤四中,所述对比验证还包括所述网络模型的每层网络层和整个所述网络模型。
7.如权利要求1所述的一种软硬件协同的验证方法,其特征在于:所述步骤一中,通过外部设备获取原始图像数据,所述外部设备包括传感器、摄像头或储存设备。
8.如权利要求1所述的一种软硬件协同的验证方法,其特征在于:所述步骤一中,所述前处理包括对图像进行解码、裁剪或压缩。
9.如权利要求1所述的一种软硬件协同的验证方法,其特征在于:所述参考模型包括待测设计的参考模型、前处理模块的参考模型及后处理的参考模型。
10.如权利要求1所述的一种软硬件协同的验证方法,其特征在于:所述参考模型为软件模型,所述软件模型采用C语言或System Verilog。
CN201911103235.2A 2019-11-12 2019-11-12 一种软硬件协同的验证方法 Active CN111027277B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911103235.2A CN111027277B (zh) 2019-11-12 2019-11-12 一种软硬件协同的验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911103235.2A CN111027277B (zh) 2019-11-12 2019-11-12 一种软硬件协同的验证方法

Publications (2)

Publication Number Publication Date
CN111027277A true CN111027277A (zh) 2020-04-17
CN111027277B CN111027277B (zh) 2024-07-05

Family

ID=70201374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911103235.2A Active CN111027277B (zh) 2019-11-12 2019-11-12 一种软硬件协同的验证方法

Country Status (1)

Country Link
CN (1) CN111027277B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782271A (zh) * 2020-06-29 2020-10-16 Oppo广东移动通信有限公司 一种软硬件交互方法及装置、存储介质
CN112632885A (zh) * 2020-12-25 2021-04-09 山东产研鲲云人工智能研究院有限公司 软硬件联合验证系统及方法
CN112711533A (zh) * 2020-12-30 2021-04-27 北京华捷艾米科技有限公司 基于图像处理的验证系统及方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070005328A1 (en) * 2005-06-16 2007-01-04 Kuen-Geeng Lee Hardware and software co-simulation method for non-blocking cache access mechanism verification
CN102147760A (zh) * 2011-04-22 2011-08-10 中国电子科技集团公司第三十八研究所 一种基于网络传输的处理器协同验证平台及其测试方法
CN107038280A (zh) * 2017-03-10 2017-08-11 烽火通信科技股份有限公司 一种软硬件协同仿真的验证系统及其方法
CN108830378A (zh) * 2018-06-11 2018-11-16 东北师范大学 基于fpga的som神经网络可配置模块化硬件实现方法
CN109558329A (zh) * 2018-12-10 2019-04-02 广东浪潮大数据研究有限公司 一种程序检测方法、装置、设备及可读存储介质
CN109684190A (zh) * 2017-10-19 2019-04-26 株式会社日立制作所 软件测试装置和方法
CN110134580A (zh) * 2019-04-01 2019-08-16 深圳云天励飞技术有限公司 处理器验证方法及相关产品

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070005328A1 (en) * 2005-06-16 2007-01-04 Kuen-Geeng Lee Hardware and software co-simulation method for non-blocking cache access mechanism verification
CN102147760A (zh) * 2011-04-22 2011-08-10 中国电子科技集团公司第三十八研究所 一种基于网络传输的处理器协同验证平台及其测试方法
CN107038280A (zh) * 2017-03-10 2017-08-11 烽火通信科技股份有限公司 一种软硬件协同仿真的验证系统及其方法
CN109684190A (zh) * 2017-10-19 2019-04-26 株式会社日立制作所 软件测试装置和方法
CN108830378A (zh) * 2018-06-11 2018-11-16 东北师范大学 基于fpga的som神经网络可配置模块化硬件实现方法
CN109558329A (zh) * 2018-12-10 2019-04-02 广东浪潮大数据研究有限公司 一种程序检测方法、装置、设备及可读存储介质
CN110134580A (zh) * 2019-04-01 2019-08-16 深圳云天励飞技术有限公司 处理器验证方法及相关产品

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
崔光佐, 程旭, 佟冬, 刘强: "面向处理器的系统级模拟、仿真及调试技术――基于软硬件协同设计的新方法", 计算机研究与发展, no. 03 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782271A (zh) * 2020-06-29 2020-10-16 Oppo广东移动通信有限公司 一种软硬件交互方法及装置、存储介质
CN112632885A (zh) * 2020-12-25 2021-04-09 山东产研鲲云人工智能研究院有限公司 软硬件联合验证系统及方法
CN112632885B (zh) * 2020-12-25 2023-01-03 山东产研鲲云人工智能研究院有限公司 软硬件联合验证系统及方法
CN112711533A (zh) * 2020-12-30 2021-04-27 北京华捷艾米科技有限公司 基于图像处理的验证系统及方法

Also Published As

Publication number Publication date
CN111027277B (zh) 2024-07-05

Similar Documents

Publication Publication Date Title
CN111027277A (zh) 一种软硬件协同的验证方法
CN111291825B (zh) 病灶分类模型训练方法、装置、计算机设备和存储介质
CN112819155B (zh) 应用于边缘设备的深度神经网络模型分级压缩方法及装置
CN110020718A (zh) 基于变分推断的逐层神经网络剪枝方法和系统
CN111445380B (zh) 基于zynq实现实时双目立体匹配的方法及装置
CN112147973A (zh) 检验系统、选择真实测试和测试系统的方法和设备
CN110516334B (zh) 基于硬件环境的卷积计算仿真测试方法、装置及相关设备
CN114389755B (zh) 一种数据校验方法、装置、存储介质及终端
CN117152009A (zh) 隧洞激光点云空洞修补方法、装置、设备及存储介质
US11815876B2 (en) Method and system for automatic identification of primary manufacturing process from three-dimensional model of product
CN114897151A (zh) 访存优化方法、装置、电子设备及存储介质
CN111063000B (zh) 基于神经网络结构搜索的磁共振快速成像方法和装置
CN100549977C (zh) 芯片验证的预处理方法和预处理装置
CN116826734A (zh) 一种基于多输入模型的光伏发电功率预测方法及装置
CN116842884A (zh) 基于相控阵天线波束控制fpga的闭环仿真验证系统
US20200051326A1 (en) Facial expression modeling method, apparatus and non-transitory computer readable medium of the same
CN113362292B (zh) 一种基于可编程逻辑门阵列的骨龄评估方法及系统
US11669773B2 (en) Electronic devices generating verification vector for verifying semiconductor circuit and methods of operating the same
CN115564035A (zh) 一种基于fpga的改进神经网络硬件加速方法及装置
CN114049939A (zh) 一种基于UNet-GAN网络的肺炎CT图像生成方法
CN102012957A (zh) 一种基于五元组的包分类逻辑代码验证方法
WO2021068253A1 (zh) 定制数据流硬件模拟仿真方法、装置、设备及存储介质
CN112069022A (zh) 一种npu型服务器功耗测试方法及系统
CN114025079B (zh) 一种图像质量优化参数的处理方法、装置和系统
CN111444772A (zh) 基于nvidia tx2的行人检测方法

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