一种验证方法、装置、电子设备及可读存储介质与流程
- 国知局
- 2024-07-31 22:59:46
本发明涉及计算机,尤其涉及一种验证方法、装置、电子设备及可读存储介质。
背景技术:
1、在相关技术中,对于高层次综合(high-level synthesis,hls)设计的验证,通常是采用软件仿真的验证方式,而软件仿真的速度往往较慢,以数十或数百千赫兹为单位,且波形转储或调试信息显示等调试选项会使得仿真速度进一步降低,整体验证效率较低。基于fpga加速的方法通常提供更高的性能增益,通常以数十或数百兆(m)hz的速度运行。因此,行业已经广泛采用fpga原型验证作为硅前验证的标准方法。然而,fpga原型的设计非常繁琐,验证过程较为复杂。
技术实现思路
1、本发明实施例提供一种验证方法、装置、电子设备及可读存储介质,可以解决相关技术中针对待测设计的验证效率低、验证过程复杂的问题。
2、本发明实施例公开了一种验证方法,应用于可编程逻辑芯片,所述方法包括:
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、第一获取模块,用于获取待测设计对应的数据传输参数、基准测试程序和参考模型;
29、预处理模块,用于将所述待测设计烧录到所述可编程逻辑芯片的可编程逻辑区域,并将所述参考模型加载到所述可编程逻辑芯片的处理系统中;
30、编码模块,用于将所述基准测试程序中的各条指令按照所述数据传输参数和预置的通信控制指令对应的编码格式,重新进行编码,得到目标测试程序;所述通信控制指令是根据所述可编程逻辑芯片的指令集架构定义的指令;
31、控制模块,用于控制所述待测设计和所述参考模型分别执行所述目标测试程序;
32、第二获取模块,用于获取所述待测设计的第一执行结果和所述参考模型的第二执行结果;
33、验证模块,用于在所述第一执行结果和所述第二执行结果不匹配的情况下,确定所述待测设计运行出错。
34、可选地,所述预处理模块,包括:
35、端口信息获取子模块,用于获取所述待测设计的端口信息;
36、生成子模块,用于根据所述端口信息生成硬件包裹结构;所述硬件包裹结构用于连接所述待测设计与所述可编程逻辑芯片中的处理器;
37、布局布线子模块,用于利用集成组件对所述待测设计和所述硬件包裹结构进行布局布线,生成位流文件;
38、烧录子模块,用于基于所述位流文件将所述待测设计和所述硬件包裹结构烧录到所述可编程逻辑芯片的可编程逻辑区域。
39、可选地,所述通信控制指令包括存储指令和加载指令;所述存储指令用于将所述待测设计生成的数据存储至所述可编程逻辑区域的硬件存储模块中;所述加载指令用于将所述硬件存储模块中的数据加载至所述可编程逻辑区域的第一寄存器中;
40、所述第二获取模块,包括:
41、指令插入子模块,用于在所述目标测试程序中的每条运算指令之后插入所述存储指令和所述加载指令,以使所述待测设计执行完一条运算指令之后,执行所述存储指令和所述加载指令,以将所述运算指令对应的第一执行结果存储至所述硬件存储模块,并从所述硬件存储模块中将所述第一执行结果加载至所述第一寄存器中;
42、读取子模块,用于从所述第一寄存器中读取所述第一执行结果。
43、可选地,所述装置还包括:
44、结果写入模块,用于将所述第一执行结果写入硬件缓冲区,并将所述第二执行结果写入软件缓冲区;
45、结果读取模块,用于从所述硬件缓冲区中读取所述第一执行结果,并从所述软件缓冲区中读取所述第二执行结果;
46、结果比对模块,用于将所述第一执行结果与所述第二执行结果进行比对。
47、可选地,所述硬件缓冲区和所述软件缓冲区的存储空间大小相同,且均为先入先出的数据缓冲存储结构;所述装置还包括:
48、中断模块,用于在所述硬件缓冲区已满的情况下,中断所述待测设计的运行,等待所述参考模型向所述软件缓冲区写入第二执行结果。
49、可选地,所述装置还包括:
50、快照模块,用于在所述第一执行结果和所述第二执行结果不匹配的情况下,对所述可编程逻辑芯片进行硬件快照,以保存所述可编程逻辑芯片的状态信息;
51、信息导入模块,用于将所述状态信息导入到仿真软件中进行仿真,以对所述待测设计进行调试。
52、再一方面,本发明实施例还公开了一种电子设备,所述电子设备包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行前述的验证方法。
53、本发明实施例还公开了一种可读存储介质,当所述可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述的验证方法。
54、本发明实施例包括以下优点:
55、本发明实施例提供了一种验证方法,可以将待测设计和参考模型映射到同一片fpga芯片上运行,利用fpga硬件加速显著提升了验证速度。并且,相比于传统的fpga原型验证方法,本发明实施例无需设计fpga原型,也无需对待测设计进行复杂的配置操作,只需要根据待测设计的数据传输参数和fpga芯片的指令集架构将基准测试程序重新编译为目标测试程序,根据待测设计与参考模型各自对目标测试程序的执行结果,就可以确定待测设计是否运行出错,简化了验证过程,提升了验证效率。
本文地址:https://www.jishuxx.com/zhuanli/20240730/195633.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表