一种多进程联合仿真系统及方法、电子设备和存储介质与流程

文档序号:37782271发布日期:2024-04-30 16:52阅读:10来源:国知局
一种多进程联合仿真系统及方法、电子设备和存储介质与流程

本公开涉及计算机,尤其涉及一种多进程联合仿真系统及方法、电子设备和存储介质。


背景技术:

1、基于systemc的虚拟平台是硬件系统级设计和仿真的强大工具,利用systemc语言和相关工具构建并模拟复杂硬件系统,帮助开发人员在早期阶段发现并解决设计问题,从而缩短开发周期并提高硬件质量和性能。

2、systemc虚拟平台广泛应用于处理器架构、芯片级系统、系统级集成、网络通信和嵌入式软件设计等领域,为设计师提供可调度和可控度高的仿真环境,实现系统级验证和优化。

3、然而,在相关技术中,在利用虚拟平台进行仿真调试时,其效率有待于进一步提高,尤其是大规模系统级仿真的时候,常常存在性能瓶颈。


技术实现思路

1、本公开提出了一种跨平台联合仿真技术方案。

2、根据本公开的一方面,提供了一种跨平台联合仿真系统,所述系统包括第一进程和第二进程,所述第一进程和所述第二进程运行于不同的平台,所述第一进程包含用于联合仿真的第一仿真线程和至少一个第一数据队列,所述第二进程包含用于联合仿真的第二仿真线程和至少一个第二数据队列,其中:所述第一仿真线程将数据写入所述第一数据队列;所述第一数据队列用于和所述第二数据队列基于进程间通信机制进行数据同步,以保持数据一致;所述第二仿真线程在确定第二数据队列中存入新的数据的情况下,从所述第二数据队列中读取所述数据,所述数据用于进行联合仿真。

3、在一种可能的实现方式中,所述第一进程运行于需要特定授权的测试平台,用于执行需要所述特定授权的联合仿真任务;所述第二进程运行于所述测试平台以外的其它平台,用于执行无需所述特定授权的联合仿真任务。

4、在一种可能的实现方式中,所述测试平台包括测试激励产生模块、待测试模块和比对模块,所述待测试模块基于硬件描述语言实现,所述第一仿真线程调用所述测试平台以执行联合仿真任务;所述其它平台包括参考模型;其中:所述第一仿真线程用于调用所述测试激励产生模块得到测试激励,并基于所述第一数据队列向所述参考模型发送所述测试激励;所述第一仿真线程用于调用所述待测试模块基于所述测试激励得到第一结果;所述第二仿真线程用于调用所述参考模型,基于所述第二数据队列接收所述测试激励,并利用所述测试激励执行测试得到第二结果;所述第一仿真线程用于调用所述比对模块,基于所述第一数据队列接收所述第二结果,并对第一结果和第二结果进行比对。

5、在一种可能的实现方式中,所述第一仿真线程用于调用所述测试激励产生模块,将所述测试激励写入所述第一数据队列;所述第一进程中的第一线程,用于将所述第一数据队列中的测试激励发送给所述第二进程中的第二线程;所述第二线程,在接收到所述测试激励的情况下,将所述测试激励写入所述第二数据队列;所述第二仿真线程用于调用所述参考模型从所述第二数据队列中读取所述数据,得到第二结果,以及,将所述第二结果写入所述第二数据队列;所述第二线程,将所述第二数据队列中的第二结果发送给所述第一线程;所述第一线程,在接收到所述第二结果的情况下,将所述第二结果写入所述第一数据队列中;所述第一仿真线程用于调用所述比对模块,从所述第一数据队列中读取所述第二结果,并对第一结果和第二结果进行比对。

6、在一种可能的实现方式中,所述第二进程运行于用于对所述系统进行调试的调试平台,所述调试平台包括调试模块,所述调试模块为与所述第一进程相匹配的调试模块。

7、在一种可能的实现方式中,所述调试平台包括调试模块,用于在确定所述第一数据队列和所述第二数据队列的数据不一致的情况下,确定所述系统存在数据通信错误的问题。

8、在一种可能的实现方式中,所述第一数据队列和所述第二数据队列基于网络套接字通信协议进行数据同步,所述第一进程和所述第二进程被部署在不同的物理节点上。

9、根据本公开的一方面,提供了一种跨平台联合仿真方法,所述方法应用于跨平台联合仿真系统,所述系统包括第一进程和第二进程,所述第一进程和所述第二进程运行于不同的平台,所述第一进程包含用于联合仿真的第一仿真线程和至少一个第一数据队列,所述第二进程包含用于联合仿真的第二仿真线程和至少一个第二数据队列,所述方法包括:所述第一仿真线程将数据写入所述第一数据队列;所述第一数据队列用于和所述第二数据队列基于进程间通信机制进行数据同步,以保持数据一致;所述第二仿真线程在确定第二数据队列中存入新的数据的情况下,从所述第二数据队列中读取所述数据,所述数据用于进行联合仿真。

10、在一种可能的实现方式中,所述第一进程运行于需要特定授权的测试平台,用于执行需要所述特定授权的联合仿真任务;所述第二进程运行于所述测试平台以外的其它平台,用于执行无需所述特定授权的联合仿真任务。

11、在一种可能的实现方式中,所述测试平台包括测试激励产生模块、待测试模块和比对模块,所述待测试模块基于硬件描述语言实现,所述第一仿真线程调用所述测试平台以执行联合仿真任务;所述其它平台包括参考模型;其中:所述第一仿真线程用于调用所述测试激励产生模块得到测试激励,并基于所述第一数据队列向所述参考模型发送所述测试激励;所述第一仿真线程用于调用所述待测试模块基于所述测试激励得到第一结果;所述第二仿真线程用于调用所述参考模型,基于所述第二数据队列接收所述测试激励,并利用所述测试激励执行测试得到第二结果;所述第一仿真线程用于调用所述比对模块,基于所述第一数据队列接收所述第二结果,并对第一结果和第二结果进行比对。

12、在一种可能的实现方式中,所述第一仿真线程用于调用所述测试激励产生模块,将所述测试激励写入所述第一数据队列;所述第一进程中的第一线程,用于将所述第一数据队列中的测试激励发送给所述第二进程中的第二线程;所述第二线程,在接收到所述测试激励的情况下,将所述测试激励写入所述第二数据队列;所述第二仿真线程用于调用所述参考模型从所述第二数据队列中读取所述数据,得到第二结果,以及,将所述第二结果写入所述第二数据队列;所述第二线程,将所述第二数据队列中的第二结果发送给所述第一线程;所述第一线程,在接收到所述第二结果的情况下,将所述第二结果写入所述第一数据队列中;所述第一仿真线程用于调用所述比对模块,从所述第一数据队列中读取所述第二结果,并对第一结果和第二结果进行比对。

13、在一种可能的实现方式中,所述第二进程运行于用于对所述系统进行调试的调试平台,所述调试平台包括调试模块,所述调试模块为与所述第一进程相匹配的调试模块。

14、在一种可能的实现方式中,所述调试平台包括调试模块,用于在确定所述第一数据队列和所述第二数据队列的数据不一致的情况下,确定所述系统存在数据通信错误的问题。

15、在一种可能的实现方式中,所述第一数据队列和所述第二数据队列基于网络套接字通信协议进行数据同步,所述第一进程和所述第二进程被部署在不同的物理节点上。

16、根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以实现上述系统。

17、根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述系统。

18、在本公开实施例中,本公开提供了一种跨平台联合仿真系统,在该仿真系统中,第一进程和第二进程中的第一数据队列和第二数据队列基于进程间通信机制进行数据同步,保持数据一致,使得第一仿真线程和第二仿真线程能够实现跨平台通信,即第一进程和第二进程能够运行于不同的平台中,以完成不同平台中的仿真任务,实现跨平台联合仿真,提高了联合仿真的效率。

19、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1