软硬件联合仿真系统、方法、装置、设备和存储介质制造方法及图纸

技术编号:34479934 阅读:18 留言:0更新日期:2022-08-10 08:56
本公开提供了一种软硬件联合仿真系统、方法、装置、设备和存储介质,涉及计算机技术领域,具体涉及芯片、仿真验证、云计算等技术领域。软硬件联合仿真方法包括:软件仿真器,用于仿真真实软件的真实运行平台,以生成虚拟运行平台;以及,在所述虚拟运行平台上运行所述真实软件;硬件仿真器,用于仿真真实硬件,以生成虚拟硬件;虚拟连接器,用于仿真所述真实运行平台与所述真实硬件之间的真实连接设备;以及,基于所述软件仿真器或所述硬件仿真器产生的读取请求数据执行读写操作。本公开可以提高仿真准确度,提升软硬件开发效率。提升软硬件开发效率。提升软硬件开发效率。

【技术实现步骤摘要】
软硬件联合仿真系统、方法、装置、设备和存储介质


[0001]本公开涉及计算机
,具体涉及芯片等
,尤其涉及一种软硬件联合仿真系统、方法、装置、设备和存储介质。

技术介绍

[0002]现场可编程门阵列(Field Programmable Gate Array,FPGA)芯片是一种可编程器件。FPGA开发可以包括软件开发和硬件开发,硬件开发是通过硬件描述语言(Hardware Description Language,HDL)进行电路设计,软件开发是指开发与硬件配合使用的软件,软件可以是驱动程序和/或应用程序(Application,APP)。
[0003]为了确保正确性,FPGA在使用之前一般都需要对电路设计所对应的硬件电路和与FPGA配合使用的软件进行仿真,分别称为硬件仿真和软件仿真。硬件仿真和软件仿真分别模拟硬件电路或软件的所有可能输入情况并验证其输出是否符合预期。为了提高仿真效率,出现了软硬件联合仿真(Co

simulation)方案。

技术实现思路

[0004]本公开提供了一种软硬件联合仿真系统、方法、装置、设备和存储介质。
[0005]根据本公开的一方面,提供了一种软硬件联合仿真系统,包括:软件仿真器,用于仿真真实软件的真实运行平台,以生成虚拟运行平台;以及,在所述虚拟运行平台上运行所述真实软件;硬件仿真器,用于仿真真实硬件,以生成虚拟硬件;虚拟连接器,用于仿真所述真实运行平台与所述真实硬件之间的真实连接设备;以及,基于所述软件仿真器或所述硬件仿真器产生的读取请求数据执行读写操作。
[0006]根据本公开的另一方面,提供了一种软硬件联合仿真方法,所述方法应用于虚拟连接器,所述虚拟连接器用于仿真真实软件的真实运行平台与真实硬件之间的真实连接设备,所述方法包括:接收发起方发送的读写请求数据;基于所述读写请求数据,对响应方执行读写操作;其中,所述发起方和所述响应方分别为软件仿真器和硬件仿真器中的一方;所述软件仿真器用于仿真真实软件的真实运行平台,以生成虚拟运行平台,以及,在所述虚拟运行平台上运行所述真实软件;所述硬件仿真器用于仿真所述真实硬件,以生成虚拟硬件。
[0007]根据本公开的另一方面,提供了一种软硬件联合仿真装置,所述装置应用于虚拟连接器,所述虚拟连接器用于仿真真实软件的真实运行平台与真实硬件之间的真实连接设备,所述装置包括:第一接收模块,用于接收发起方发送的读写请求数据;处理模块,用于基于所述读写请求数据,对响应方执行读写操作;其中,所述发起方和所述响应方分别为软件仿真器和硬件仿真器中的一方;所述软件仿真器用于仿真真实软件的真实运行平台,以生成虚拟运行平台,以及,在所述虚拟运行平台上运行所述真实软件;所述硬件仿真器用于仿真所述真实硬件,以生成虚拟硬件。
[0008]根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器
执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一方面的任一项所述的方法。
[0009]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据上述任一方面的任一项所述的方法。
[0010]根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据上述任一方面的任一项所述的方法。
[0011]根据本公开的技术方案,可以提高仿真准确度,提升软硬件开发效率。
[0012]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0013]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0014]图1是根据本公开第一实施例的示意图;
[0015]图2是本公开实施例提供的软硬件联合仿真方法所要仿真的真实运行场景的示意图;
[0016]图3是根据本公开第二实施例的示意图;
[0017]图4是根据本公开第三实施例的示意图;
[0018]图5a是根据本公开第四实施例的示意图;
[0019]图5b是根据本公开第五实施例的示意图;
[0020]图6a是根据本公开第六实施例的示意图;
[0021]图6b是根据本公开第七实施例的示意图
[0022]图7是根据本公开第八实施例的示意图;
[0023]图8是用来实现本公开实施例的软硬件联合仿真方法的电子设备的示意图。
具体实施方式
[0024]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0025]相关技术中,存在一些软硬件联合仿真方案,例如,在软件仿真部分采用软件测试代码验证硬件功能,此时,软件仿真部分采用的测试代码与真实软件的代码不一致,由于两者的软件代码不一致,难以仿真真实软件的真实行为,影响仿真准确度。
[0026]为了提高软硬件联合仿真准确度,本公开提供如下实施例。
[0027]图1是根据本公开第一实施例的示意图,本实施例提供一种软硬件联合仿真系统。
[0028]如图1所示,软硬件联合仿真系统100包括:软件仿真器101、硬件仿真器102和虚拟连接器103。
[0029]软件仿真器101用于仿真真实软件的真实运行平台,以生成虚拟运行平台;以及,在所述虚拟运行平台上运行所述真实软件;硬件仿真器102用于仿真真实硬件,以生成虚拟
硬件;虚拟连接器103用于仿真所述真实运行平台与所述真实硬件之间的真实连接设备;以及,基于所述软件仿真器或所述硬件仿真器产生的读取请求数据执行读写操作。
[0030]其中,真实软件和真实硬件是真实运行时需要配合的软件和硬件,也是待联合仿真的软件和硬件。
[0031]真实运行平台是软件真实运行时所在的平台,相应地,经过仿真获得的运行平台可以称为虚拟运行平台。
[0032]虚拟硬件,与真实硬件对应,是对真实硬件进行仿真后获得的。
[0033]虚拟连接设备,与真实连接设备对应,是对真实连接设备进行仿真后获得的。
[0034]仿真过程,是对真实过程的模拟过程,真实过程中,真实软件与真实硬件之间可以进行交互,交互可以是一方发起请求,另一方基于请求进行响应。
[0035]为了模拟真实过程,软件仿真器或者硬件仿真器可以产生读取请求数据,虚拟连接器可以基于读取请求数据执行读写操作。
[0036]虚拟连接器执行读写操作时,可以是将发起方发送的读写请求数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软硬件联合仿真系统,包括:软件仿真器,用于仿真真实软件的真实运行平台,以生成虚拟运行平台;以及,在所述虚拟运行平台上运行所述真实软件;硬件仿真器,用于仿真真实硬件,以生成虚拟硬件;虚拟连接器,用于仿真所述真实运行平台与所述真实硬件之间的真实连接设备;以及,基于所述软件仿真器或所述硬件仿真器产生的读取请求数据执行读写操作。2.根据权利要求1所述的系统,其中,所述真实运行平台为真实处理器;所述真实处理器与所述真实硬件之间采用片外总线连接;所述虚拟连接器具体用于仿真所述片外总线对应的真实连接设备。3.根据权利要求2所述的系统,其中,所述片外总线为PCIe总线;所述虚拟连接器是虚拟PCIe RC,所述虚拟PCIe RC用于仿真所述PCIe总线对应的真实PCIe RC。4.根据权利要求1

3任一项所述的系统,其中,所述虚拟连接器基于软件编程语言实现。5.根据权利要求1

3任一项所述的系统,其中,所述软件仿真器为虚拟机;和/或,所述硬件仿真器为HDL仿真器。6.根据权利要求1

3任一项所述的系统,其中,所述软件仿真器与所述虚拟连接器之间通过如下方式中的至少一项相互通信:消息队列,共享内存,套接字。7.根据权利要求1

3任一项所述的系统,其中,所述虚拟连接器进一步用于:在请求消息队列中,获取所述软件仿真器存入的读写请求消息;基于所述读写请求消息,生成第一TLP报文;基于所述真实硬件的时序规则,将所述第一TLP报文转换为读写请求信号;将所述读写请求信号发送至所述硬件仿真器,所述读写请求信号用于触发所述硬件仿真器执行读写操作;以及,若接收到所述硬件仿真器发送的读响应信号,基于所述时序规则,将所述读响应信号转换为第二TLP报文;基于所述第二TLP报文,生成读响应消息;将所述读响应消息存入响应消息队列,所述软件仿真器用于从所述响应消息队列获取所述读响应消息;和/或,接收所述硬件仿真器发送的所述读写请求信号;基于所述真实硬件的时序规则,将所述读写请求信号转换为第三TLP报文;基于所述第三TLP报文,对所述软件仿真器提供的共享内存进行读写操作;以及,若从所述共享内存读取到读响应数据,将所述读响应数据封装为第四TLP报文;基于所述时序规则,将所述第四TLP报文转换为读响应信号;将所述读响应信号发送至所述硬件仿真器。8.一种软硬件联合仿真方法,所述方法应用于虚拟连接器,所述虚拟连接器用于仿真真实软件的真实运行平台与真实硬件之间的真实连接设备,所述方法包括:接收发起方发送的读写请求数据;
基于所述读写请求数据,对响应方执行读写操作;其中,所述发起方和所述响应方分别为软件仿真器和硬件仿真器中的一方;所述软件仿真器用于仿真真实软件的真实运行平台,以生成虚拟运行平台,以及,在所述虚拟运行平台上运行所述真实软件;所述硬件仿真器用于仿真所述真实硬件,以生成虚拟硬件。9.根据权利要求8所述的方法,其中,所述真实运行平台与所述真实硬件基于PCIe总线连接,相应地,所述虚拟连接器是虚拟PCIe RC;所述发起方为所述软件仿真器,相应地,所述读写请求数据为读写请求消息;所述接收发起方发送的读写请求数据,包括:在请求消息队列中,获取所述软件仿真器存入的所述读写请求消息;和/或,所述基于所述读写请求数据,对响应方执行读写操作,包括:基于所述读写请求消息,生成第一TLP报文;基于所述真实硬件的时序规则,将所述第一TLP报文转换为第一读取请求信号;将所述第一读写请求信号发送至所述硬件仿真器,所述第一读写请求信号用于触发所述硬件仿真器执行读写操作。10.根据权利要求9所述的方法,其中,所述读写请求消息为读请求消息,相应地,所述读写操作是读操作;所述方法还包括:接收所述硬件仿真器发送的第一读响应信号,所述第一读响应信号是所述硬件仿真器执行所述读操作后生成的;基于所述时序规则,将所述第一读响应信号转换为第二TLP报文;基于所述第二TLP报文,生成读响应消息;将所述读响应消息存入响应消息队列,所述软件仿真器用于从所述响应消息队列获取所述读响应消息。11.根据权利要求8所述的方法,其中,所述真实运行平台与所述真实硬件基于PCIe总线连...

【专利技术属性】
技术研发人员:李鸿明李兆耕
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1