首页> 中国专利> 一种软硬件协同设计的验证方法和装置

一种软硬件协同设计的验证方法和装置

摘要

本发明适用于集成电路技术领域,提供了一种软硬件协同设计的验证方法,以解决纯软件运行方式处理时间长,并且限制了CPU运行效率的问题。所述方法包括:读取待测试数据;对所述待测试数据进行硬件运算,获取运算结果;将所述运算结果与预置结果进行对比,并输出对比结果,所述对比结果用于验证软硬件协同设计的准确性。通过本发明,将可综合部分映射到特殊硬件元件来进行硬件加速,从而减少运行时间,提高CPU的运行效率,减轻CPU的运行负担。

著录项

  • 公开/公告号CN106528363A

    专利类型发明专利

  • 公开/公告日2017-03-22

    原文格式PDF

  • 申请/专利权人 深圳市博巨兴实业发展有限公司;

    申请/专利号CN201510583289.9

  • 发明设计人 许思源;叶媲舟;黎冰;涂柏生;

    申请日2015-09-14

  • 分类号G06F11/26(20060101);

  • 代理机构44237 深圳中一专利商标事务所;

  • 代理人张全文

  • 地址 518000 广东省深圳市南山区高新中一道2号长园新材料港D栋四楼

  • 入库时间 2023-06-19 01:48:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-25

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F11/26 变更前: 变更后: 申请日:20150914

    专利权人的姓名或者名称、地址的变更

  • 2019-03-12

    授权

    授权

  • 2017-04-19

    实质审查的生效 IPC(主分类):G06F11/26 申请日:20150914

    实质审查的生效

  • 2017-03-22

    公开

    公开

说明书

技术领域

本发明涉及集成电路技术领域,尤其涉及一种软硬件协同设计的验证方法和装置。

背景技术

硬件/软件协同设计已成为当今超大规模集成电路(Very Large Scale Integration,VLSI)设计中极其重要的环节。由于集成电路(Integrated Circuit,IC)晶体管数量的增长势不可挡,大多数的IC目前含微型处理器、存储器、接口和专用的硬件加速器,但是提供单一的知识产权核(intellectual property core,IP核)不再足以应对不断增长的片上系统(System on a Chip,SoC)设计和集成挑战,于是出现了可配置片上系统(Configurable System on a Chip,CSoC)。

目前,进行硬件/软件协同设计存在的主要问题是很多基准套件,都只停留在软件开发部分,即只是把可综合部分和不可综合部分用主函数连接起来用纯软件方式运行。纯软件运行会花费大量的时间进行数据处理和运算,限制中央处理器(Central Processing Unit,CPU)的运行效率,增加CPU的运行负担。

发明内容

本发明的目的在于提供一种软硬件协同设计的验证方法和装置,旨在解决现有纯软件方式运行运行时间长,并且限制CPU运行效率,增加CPU运行负担的问题。

本发明第一方面,提供一种软硬件协同设计的验证方法,包括:

读取待测试数据;

对所述待测试数据进行硬件运算,获取运算结果;

将所述运算结果与预置结果进行对比,并输出对比结果,所述对比结果用于验证软硬件协同设计的准确性。

本发明第二方面,提供一种软硬件协同设计的验证装置,包括:

读取模块,用于读取待测试数据;

处理模块,用于对所述待测试数据进行硬件运算,获取运算结果;

对比输出模块,用于将所述运算结果与预置结果进行对比,并输出对比结果,所述对比结果用于验证软硬件协同设计的准确性。

本发明与现有技术相比存在的有益效果是:本发明提供的技术方案通过将待测试数据发送到特殊硬件元件来进行硬件加速(Hardware acceleration),减少了运行时间,并使CPU可以有时间处理其他任务,提高了CPU的运行效率,减轻了CPU的负担。

附图说明

图1是本发明实施例一提供的软硬件协同设计的验证方法的流程图;

图2是本发明实施例二提供的软硬件协同设计的验证方法的流程图;

图3是本发明实施例三提供的软硬件协同设计的验证方法的流程图;

图4是本发明实施例三提供的软硬件协同设计的验证方法中基准套件结构框架示意图;

图5是发明实施例三提供的软硬件协同设计的验证方法中Sobel滤波器的示意图;

图6是发明实施例三提供的软硬件协同设计的验证方法中对基准的各种不同IP核采用纯软件电路版本和本发明基准电路版本的运行时间对比图;

图7是本发明实施例四提供的软硬件协同设计的验证装置的组成示意图;

图8是本发明实施例五提供的软硬件协同设计的验证装置的组成示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下结合具体附图对本发明的实现进行详细的描述。

实施例一:

图1示出了本发明实施例一提供的软硬件协同设计的验证方法的流程,具体包括步骤S101至S103,详述如下:

S101、读取待测试数据。

测试设备读取待测试数据,该待测试数据可以但不限于包括:文档数据、图片数据。通过运行待测试数据,根据待测试数据的运行结果,可以对硬件加速运算的正确性进行测试。

S102、对待测试数据进行硬件运算,获取运算结果。

硬件加速通常比软件算法的效率要高,因此利用硬件模块来代替软件算法以充分利用硬件所固有的快速特性。

硬件模块为将标准检查程序(Benchmark)映射到CSoC的可重配置结构,将读取到的待测试数据发送到硬件模块进行运算,并获取硬件模块返回的运算结果。

S103、将运算结果与预置结果进行对比,并输出对比结果,对比结果用于验证软硬件协同设计的准确性。

预置结果是待测试数据通过纯软件方式运行后的黄金输出结果,黄金输出结果是采用纯软件方式模拟出的硬件处于性能最佳状态时运行待测试数据可以获得的运行结果。

将步骤S102得到的运算结果与黄金输出结果进行对比,判断二者的误差是否超过预置的误差范围,以判断硬件运算后输出的运算结果是否正确,从而验证软硬件协同设计的准确性。若步骤S102得到的运算结果与黄金输出结果的 误差不超过预置的误差范围,则可以判断硬件运算后输出的运算结果正确,软硬件协同设计具有较高的准确性,符合预期;否则,判断硬件运算后输出的运算结果不正确,软硬件协同设计的准确性不高,存在缺陷,需要修正。

本实施例中,通过将待测试数据发送到硬件模块进行硬件加速,减少了运行时间,并使CPU可以有时间处理其他任务,提高了CPU的运行效率,减轻了CPU的负担。

实施例二:

图2示出了本发明实施例二提供的软硬件协同设计的验证方法的流程,具体包括步骤S201至S203,详述如下:

S201、读取待测试数据。

测试设备读取待测试数据,该待测试数据可以但不限于包括:文档数据、图片数据。通过运行待测试数据,根据待测试数据的运行结果,可以对硬件加速运算的正确性进行测试。

S202、通过基准套件对待测试数据进行硬件运算,获取运算结果。

基准套件是进行基准测试(Benchmark Test,BMT)的测试套件,通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试,并将服务于同一个测试目的或同一运行环境下的一系列测试用例有机的组合起来。

将基准套件直接映射到CSoC,完成对待测试数据的硬件运算,并获取硬件运算的结果。

S203、将运算结果与预置结果进行对比,并输出对比结果,对比结果用于验证软硬件协同设计的准确性。

预置结果是待测试数据通过纯软件方式运行后的黄金输出结果,黄金输出结果是采用纯软件方式模拟出的硬件处于性能最佳状态时运行待测试数据可以获得的运行结果。

将步骤S202得到的运算结果与黄金输出结果进行对比,判断二者的误差 是否超过预置的误差范围,以判断硬件运算后输出的运算结果是否正确,从而验证软硬件协同设计的准确性。若步骤S202得到的运算结果与黄金输出结果的误差不超过预置的误差范围,则可以判断硬件运算后输出的运算结果正确,软硬件协同设计具有较高的准确性,符合预期;否则,判断硬件运算后输出的运算结果不正确,软硬件协同设计的准确性不高,存在缺陷,需要修正。

本实施例中,通过直接映射到CSoC的基准套件完成对待测试数据的硬件运算,实现硬件加速,减少了运行时间,并使CPU可以有时间处理其他任务,提高了CPU的运行效率,减轻了CPU的负担。

实施例三:

图3示出了本发明实施例三提供的软硬件协同设计的验证方法的流程,具体包括S301至S303,详述如下:

S301、读取待测试数据。

测试设备读取待测试数据,该待测试数据可以但不限于包括:文档数据、图片数据。通过运行待测试数据,根据待测试数据的运行结果,可以对硬件加速运算的正确性进行测试。

S302、通过基准套件的不可综合部分控制基准套件的可综合部分,执行对待测试数据的硬件运算,获取运算结果。

基准套件包括不可综合部分和可综合部分。具体地,

不可综合部分通常为测试程序(TestBench),TestBench是一种模拟实际环境的输入激励和输出校验的虚拟平台,在这个平台上可以对设计从软件层面进行分析和校验;

可综合部分通常为被测试模块(Unit Under Test,UUT),是可以使用电子设计自动化(Electronic Design Automation,EDA)软件进行编译、布局布线,并映射到芯片的部分,包括所有的逻辑运算和加减法运算、以及它们的有限次组合,这部分程序可以运行实现特殊的功能。

将基准套件不可综合部分映射到CSoC的处理器,使用软件运行,具体地, 可以使用cgywin或者putty直接在cmd window上运行;

将基准套件可综合部分映射到CSoC的FPGA,使用硬件电路进行加速运算,具体地,可以采用如下两种方式:

(1)用FPGA开发软件quartus生成sof烧录文件,下载到FPGA上;

(2)用makefile方式生成rbf文件,直接烧录到FPGA上。

S303、通过基准套件的不可综合部分执行对运算结果与预置结果的对比,并输出对比结果,对比结果用于验证软硬件协同设计的准确性。

预置结果是待测试数据通过纯软件方式运行后的黄金输出结果,黄金输出结果是采用纯软件方式模拟出的硬件处于性能最佳状态时运行待测试数据可以获得的运行结果。

通过基准套件的不可综合部分执行步骤S302得到的运算结果与黄金输出结果的对比,判断二者的误差是否超过预置的误差范围,以判断硬件运算后输出的运算结果是否正确,从而验证软硬件协同设计的准确性。若步骤S302得到的运算结果与黄金输出结果的误差不超过预置的误差范围,则可以判断硬件运算后输出的运算结果正确,软硬件协同设计具有较高的准确性,符合预期;否则,判断硬件运算后输出的运算结果不正确,软硬件协同设计的准确性不高,存在缺陷,需要修正。

为清楚解释本实施例,下面以基准套件的结构为例进行说明。

图4示出了软硬件协同设计的验证方法中基准套件结构框架。

将基准套件的不可综合部分映射到CSoC的ARM(Advanced RISC Machines)处理器,并通过软件运行,将基准套件的可综合部分映射到CSoC的FPGA上可重配置结构中,使用FPGA的硬件电路进行加速运算。具体处理过程包括a1至a5,详述如下:

a1、ARM处理器从测试文件或者测试图像inputs.txt/bmp中读取输入数据;

a2、ARM上运行的主程序main()调用发送程序send(),通过双向32位AXI(Advanced eXtensible Interface)总线将输入数据发送到FPAG;

a3、FPGA将输入数据通过IF(Interface)接口传输到UUT完成硬件运算;

a4、ARM上运行的主程序main()调用接收程序receive(),通过AXI总线接收并读取FPGA返回的硬件运算结果;

a5、ARM上运行的主程序main()调用对比比较程序compare_results(),对硬件运算结果和黄金输出结果golden.txt/bmp进行对比比较,并输出对比结果Results.txt。

进一步地,基准套件中可以包含各种不同的IP核。IP核即知识产权核(intellectual property core),是指形式为逻辑单元、芯片设计的可重用模块,设计人员可以以IP核为基础进行设计,缩短设计所需的周期。每个IP核都有特定的作用,例如Sobel是3乘3的边缘检测滤波器;Qsort是使用快速排序算法对十组数据进行升序排序;Snow3G是由使用128位的密钥产生32位的块的密钥流流密码。

下面以Sobel滤波器为例对本发明的技术方案进行说明。

图5为一个Sobel滤波器的示意图。Sobel滤波器是3乘3的边缘检测滤波器,输入的是bmp(Bitmap)格式的图像,获得的运算结果是重建输出一个高分辨率的bmp文件图像边缘。其中,基准套件中执行滤波器运算功能的是可综合部分,而运算所需要的数据即bmp格式的图像,需要使用软件进行提取,因此是由不可综合的部分执行。

采用本发明的技术方案对Sobel滤波器进行运算处理的过程包括b1至b4,详述如下:

b1、ARM处理器从bmp图像inputs.bmp中读取图像数据;

b2、ARM上运行的主程序main()调用发送程序send(),通过AXI总线将输入的图像数据发送到已经映射到FPGA的Sobel IP核进行硬件电路运算;

b3、硬件运算完成后,ARM上运行的主程序main()调用接收程序receive(),通过AXI总线接收FPGA返回的图像边缘结果;

b4、ARM上运行的主程序main()调用对比比较程序compare_results(),对 图像边缘结果和黄金输出结果golden.bmp进行对比比较,并输出对比结果Results.txt。

图6示出了对基准套件中各种不同的IP核分别采用纯软件电路版本和本发明基准电路版本的运行时间比较结果。

具体地,如图6所示,基准套件中各种不同的IP核可以但不限于包括:

1)Sobel:3乘3的边缘检测滤波器,输入的是bmp格式的图像,获得的运算结果是重建另一个高分辨率的bmp文件图像边缘;

2)Fir:10拍的FIR滤波器;

3)Qsort:使用快速排序算法对十组数据进行升序排序;

4)Adpcm:自适应差分脉冲编码调制编码器,接受16位脉冲编码调制样本作为输入,并将其转换为4位的样本;

5)Kasumi:在移动通信系统中使用的块加密算法;

6)Snow3G:由使用128位的密钥产生32位的块的密钥流流密码;

7)ANN:人工神经网络;

8)IDCT:逆离散余弦变换,表示数据点中的不同频率的余弦函数总和的一个有限序列;

9)Aes:高级加密标准,128位,包括加密和解密;

10)Md5C:消息摘要算法,用于加密来生成散列函数和检查数据完整性;

11)Decim:5级抽取滤波器,有5级联FIR滤波器,其中一个级的输出被作为输入供应给下一个过滤器,所有的过滤器的循环完全展开以最小化计算延迟;

12)Interpolation:4级内插滤波器,该滤波器执行4FIR滤波级依次内插;

13)Disparity:估计立体图像的视差,采用输入高清立体图像(左和右视图),并返回64乘64差距矩阵。

相较于现有技术的纯软件电路版本将TestBench和IP核都映射到ARM处理器上,而没有将IP核进行综合并映射到芯片或者硬件电路上,本发明基准电 路版本则将IP核映射到到FPGA硬件电路上,将不可综合的TestBench映射到ARM处理器上。

从图6的对比数据可以得出,本发明基准电路版本对所有IP核的运行平均时间比纯软件电路版本对所有IP核的运行平均时间减少约10%。

本实施例中,通过可直接映射到CSoC的基准套件,将基准套件的可综合部分映射到CSoC的FPGA,将基准套件的不可综合部分映射到CSoC的ARM处理器,实现硬件加速,减少了运行时间,并使CPU可以有时间处理其他任务,提高了CPU的运行效率,减轻了CPU的负担。

实施例四:

图7示出了本发明实施例四提供的软硬件协同设计的验证装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。图7示例的软硬件协同设计的验证装置可以是前述实施例一提供的软硬件协同设计的验证方法的执行主体,其可以是测试设备或者测试设备中的一个功能模块。图7示例的软硬件协同设计的验证装置主要包括:读取模块71、处理模块72和对比输出模块73。各功能模块详细说明如下:

读取模块71,用于读取待测试数据;

处理模块72,用于对所述待测试数据进行硬件运算,获取运算结果;

对比输出模块73,用于将所述运算结果与预置结果进行对比,并输出对比结果,所述对比结果用于验证软硬件协同设计的准确性。

从上述图7示例的软硬件协同设计的验证装置可知,本发明通过将待测试数据发送到硬件模块进行硬件加速,减少了运行时间,并使CPU可以有时间处理其他任务,提高了CPU的运行效率,减轻了CPU的负担。

实施例五:

图8示出了本发明实施例五提供的软硬件协同设计的验证装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。图8示例的软硬件协同设计的验证装置可以是前述实施例二和实施例三提供的软硬件协同设计的 验证方法的执行主体,其可以是测试设备或者测试设备中的一个功能模块。图8示例的软硬件协同设计的验证装置主要包括:读取模块81、处理模块82和对比输出模块83。各功能模块详细说明如下:

读取模块81,用于读取待测试数据;

处理模块82,用于对所述待测试数据进行硬件运算,获取运算结果;

对比输出模块83,用于将所述运算结果与预置结果进行对比,并输出对比结果,所述对比结果用于验证软硬件协同设计的准确性。

具体地,处理模块82包括:

基准套件子模块821,用于通过基准套件对所述待测试数据进行硬件运算。

进一步地,基准套件可以包括不可综合部分和可综合部分;

基准套件子模块821还可以用于通过所述不可综合部分控制所述可综合部分执行对所述待测试数据的硬件运算;

对比输出模块83还可以用于通过所述不可综合部分执行对所述运算结果与预置结果的对比。

进一步地,所述不可综合部分被映射到可配置片上系统CSoC的处理器;所述可综合部分被映射到CSoC的现场可编程门阵列FPGA。

从上述图8示例的软硬件协同设计的验证装置可知,本发明通过可直接映射到CSoC的基准套件,将基准套件的可综合部分映射到CSoC的FPGA,将基准套件的不可综合部分映射到CSoC的ARM处理器,实现硬件加速,减少了运行时间,并使CPU可以有时间处理其他任务,提高了CPU的运行效率,减轻了CPU的负担。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每一个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同或者相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

值得注意的是,上述装置实施例中,所包括的各个模块和单元只是按照功 能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块和单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

本领域普通技术人员可以理解,实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号