CN117933155A - 一种多进程联合仿真系统及方法、电子设备和存储介质 - Google Patents
一种多进程联合仿真系统及方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117933155A CN117933155A CN202410339053.XA CN202410339053A CN117933155A CN 117933155 A CN117933155 A CN 117933155A CN 202410339053 A CN202410339053 A CN 202410339053A CN 117933155 A CN117933155 A CN 117933155A
- Authority
- CN
- China
- Prior art keywords
- simulation
- data
- data queue
- thread
- platform
- 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.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 192
- 238000000034 method Methods 0.000 title claims abstract description 179
- 238000003860 storage Methods 0.000 title claims abstract description 28
- 230000008569 process Effects 0.000 claims abstract description 123
- 230000006854 communication Effects 0.000 claims abstract description 46
- 238000004891 communication Methods 0.000 claims abstract description 45
- 230000007246 mechanism Effects 0.000 claims abstract description 15
- 238000012360 testing method Methods 0.000 claims description 112
- 230000005284 excitation Effects 0.000 claims description 36
- 238000013475 authorization Methods 0.000 claims description 33
- 230000015654 memory Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 15
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000013461 design Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 15
- 230000018109 developmental process Effects 0.000 description 9
- 238000012795 verification Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000010365 information processing Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本公开涉及计算机技术领域,公开了一种多进程联合仿真系统及方法、电子设备和存储介质,所述系统包括第一进程和第二进程,所述第一进程和所述第二进程运行于不同的平台,所述第一进程包含用于联合仿真的第一仿真线程和至少一个第一数据队列,所述第二进程包含用于联合仿真的第二仿真线程和至少一个第二数据队列,其中:所述第一仿真线程将数据写入所述第一数据队列;所述第一数据队列用于和所述第二数据队列基于进程间通信机制进行数据同步,以保持数据一致;所述第二仿真线程在确定第二数据队列中存入新的数据的情况下,从所述第二数据队列中读取所述数据,所述数据用于进行联合仿真。本公开实施例可实现跨平台联合仿真,提高了联合仿真的效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种多进程联合仿真系统及方法、电子设备和存储介质。
背景技术
基于SystemC的虚拟平台是硬件系统级设计和仿真的强大工具,利用SystemC语言和相关工具构建并模拟复杂硬件系统,帮助开发人员在早期阶段发现并解决设计问题,从而缩短开发周期并提高硬件质量和性能。
SystemC虚拟平台广泛应用于处理器架构、芯片级系统、系统级集成、网络通信和嵌入式软件设计等领域,为设计师提供可调度和可控度高的仿真环境,实现系统级验证和优化。
然而,在相关技术中,在利用虚拟平台进行仿真调试时,其效率有待于进一步提高,尤其是大规模系统级仿真的时候,常常存在性能瓶颈。
发明内容
本公开提出了一种跨平台联合仿真技术方案。
根据本公开的一方面,提供了一种跨平台联合仿真系统,所述系统包括第一进程和第二进程,所述第一进程和所述第二进程运行于不同的平台,所述第一进程包含用于联合仿真的第一仿真线程和至少一个第一数据队列,所述第二进程包含用于联合仿真的第二仿真线程和至少一个第二数据队列,其中:所述第一仿真线程将数据写入所述第一数据队列;所述第一数据队列用于和所述第二数据队列基于进程间通信机制进行数据同步,以保持数据一致;所述第二仿真线程在确定第二数据队列中存入新的数据的情况下,从所述第二数据队列中读取所述数据,所述数据用于进行联合仿真。
在一种可能的实现方式中,所述第一进程运行于需要特定授权的测试平台,用于执行需要所述特定授权的联合仿真任务;所述第二进程运行于所述测试平台以外的其它平台,用于执行无需所述特定授权的联合仿真任务。
在一种可能的实现方式中,所述测试平台包括测试激励产生模块、待测试模块和比对模块,所述待测试模块基于硬件描述语言实现,所述第一仿真线程调用所述测试平台以执行联合仿真任务;所述其它平台包括参考模型;其中:所述第一仿真线程用于调用所述测试激励产生模块得到测试激励,并基于所述第一数据队列向所述参考模型发送所述测试激励;所述第一仿真线程用于调用所述待测试模块基于所述测试激励得到第一结果;所述第二仿真线程用于调用所述参考模型,基于所述第二数据队列接收所述测试激励,并利用所述测试激励执行测试得到第二结果;所述第一仿真线程用于调用所述比对模块,基于所述第一数据队列接收所述第二结果,并对第一结果和第二结果进行比对。
在一种可能的实现方式中,所述第一仿真线程用于调用所述测试激励产生模块,将所述测试激励写入所述第一数据队列;所述第一进程中的第一线程,用于将所述第一数据队列中的测试激励发送给所述第二进程中的第二线程;所述第二线程,在接收到所述测试激励的情况下,将所述测试激励写入所述第二数据队列;所述第二仿真线程用于调用所述参考模型从所述第二数据队列中读取所述数据,得到第二结果,以及,将所述第二结果写入所述第二数据队列;所述第二线程,将所述第二数据队列中的第二结果发送给所述第一线程;所述第一线程,在接收到所述第二结果的情况下,将所述第二结果写入所述第一数据队列中;所述第一仿真线程用于调用所述比对模块,从所述第一数据队列中读取所述第二结果,并对第一结果和第二结果进行比对。
在一种可能的实现方式中,所述第二进程运行于用于对所述系统进行调试的调试平台,所述调试平台包括调试模块,所述调试模块为与所述第一进程相匹配的调试模块。
在一种可能的实现方式中,所述调试平台包括调试模块,用于在确定所述第一数据队列和所述第二数据队列的数据不一致的情况下,确定所述系统存在数据通信错误的问题。
在一种可能的实现方式中,所述第一数据队列和所述第二数据队列基于网络套接字通信协议进行数据同步,所述第一进程和所述第二进程被部署在不同的物理节点上。
根据本公开的一方面,提供了一种跨平台联合仿真方法,所述方法应用于跨平台联合仿真系统,所述系统包括第一进程和第二进程,所述第一进程和所述第二进程运行于不同的平台,所述第一进程包含用于联合仿真的第一仿真线程和至少一个第一数据队列,所述第二进程包含用于联合仿真的第二仿真线程和至少一个第二数据队列,所述方法包括:所述第一仿真线程将数据写入所述第一数据队列;所述第一数据队列用于和所述第二数据队列基于进程间通信机制进行数据同步,以保持数据一致;所述第二仿真线程在确定第二数据队列中存入新的数据的情况下,从所述第二数据队列中读取所述数据,所述数据用于进行联合仿真。
在一种可能的实现方式中,所述第一进程运行于需要特定授权的测试平台,用于执行需要所述特定授权的联合仿真任务;所述第二进程运行于所述测试平台以外的其它平台,用于执行无需所述特定授权的联合仿真任务。
在一种可能的实现方式中,所述测试平台包括测试激励产生模块、待测试模块和比对模块,所述待测试模块基于硬件描述语言实现,所述第一仿真线程调用所述测试平台以执行联合仿真任务;所述其它平台包括参考模型;其中:所述第一仿真线程用于调用所述测试激励产生模块得到测试激励,并基于所述第一数据队列向所述参考模型发送所述测试激励;所述第一仿真线程用于调用所述待测试模块基于所述测试激励得到第一结果;所述第二仿真线程用于调用所述参考模型,基于所述第二数据队列接收所述测试激励,并利用所述测试激励执行测试得到第二结果;所述第一仿真线程用于调用所述比对模块,基于所述第一数据队列接收所述第二结果,并对第一结果和第二结果进行比对。
在一种可能的实现方式中,所述第一仿真线程用于调用所述测试激励产生模块,将所述测试激励写入所述第一数据队列;所述第一进程中的第一线程,用于将所述第一数据队列中的测试激励发送给所述第二进程中的第二线程;所述第二线程,在接收到所述测试激励的情况下,将所述测试激励写入所述第二数据队列;所述第二仿真线程用于调用所述参考模型从所述第二数据队列中读取所述数据,得到第二结果,以及,将所述第二结果写入所述第二数据队列;所述第二线程,将所述第二数据队列中的第二结果发送给所述第一线程;所述第一线程,在接收到所述第二结果的情况下,将所述第二结果写入所述第一数据队列中;所述第一仿真线程用于调用所述比对模块,从所述第一数据队列中读取所述第二结果,并对第一结果和第二结果进行比对。
在一种可能的实现方式中,所述第二进程运行于用于对所述系统进行调试的调试平台,所述调试平台包括调试模块,所述调试模块为与所述第一进程相匹配的调试模块。
在一种可能的实现方式中,所述调试平台包括调试模块,用于在确定所述第一数据队列和所述第二数据队列的数据不一致的情况下,确定所述系统存在数据通信错误的问题。
在一种可能的实现方式中,所述第一数据队列和所述第二数据队列基于网络套接字通信协议进行数据同步,所述第一进程和所述第二进程被部署在不同的物理节点上。
根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以实现上述系统。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述系统。
在本公开实施例中,本公开提供了一种跨平台联合仿真系统,在该仿真系统中,第一进程和第二进程中的第一数据队列和第二数据队列基于进程间通信机制进行数据同步,保持数据一致,使得第一仿真线程和第二仿真线程能够实现跨平台通信,即第一进程和第二进程能够运行于不同的平台中,以完成不同平台中的仿真任务,实现跨平台联合仿真,提高了联合仿真的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的跨平台联合仿真系统的框架图。
图2示出根据本公开实施例的另一种跨平台联合仿真系统的框架图。
图3示出根据本公开实施例的另一种跨平台联合仿真系统的框架图。
图4示出根据本公开实施例的一种跨平台联合仿真方法的流程。
图5示出根据本公开实施例的一种电子设备的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
基于SystemC的虚拟平台是一种用于硬件系统级设计和仿真的虚拟环境。它使用SystemC语言和相关工具来构建和模拟硬件系统,帮助开发人员在设计阶段发现问题并进行调试。通过在仿真过程中进行调试和优化,从而缩短开发周期并提高硬件系统的质量和性能。
在基于SystemC的虚拟平台中,系统设计师可以使用SystemC语言编写模型来表示硬件组件、信号传输、时序关系和系统功能。这些模型可以描述复杂的硬件行为,例如处理器、内存、总线、外设和通信接口等。
使用SystemC语言和相关的仿真工具,设计师可以在虚拟平台上进行系统级别的仿真和验证。他们可以模拟整个系统,包括各个组件的交互和行为,以验证系统的功能、性能和时序正确性。这种虚拟平台可以帮助设计师在硬件系统开发的早期阶段进行快速迭代和验证,减少实际硬件原型的开发时间和成本。
基于SystemC的虚拟平台在硬件和嵌入式系统设计领域得到了广泛的应用。它可以用于处理器架构设计、芯片级系统设计、系统级集成、网络通信和嵌入式软件开发等方面。这种虚拟平台可以提供高度可调度和可控制的仿真环境,帮助设计师进行系统级别的验证和优化。
在相关技术中,现有的仿真平台往往局限在同一个平台中,或者同一操作系统中,这导致在大规模系统级仿真的时候,常常存在性能瓶颈,亟需提高仿真调试的性能。
本公开提供了一种跨平台联合仿真系统,在该仿真系统中,第一进程和第二进程中的第一数据队列和第二数据队列基于进程间通信机制进行数据同步,保持数据一致,使得第一仿真线程和第二仿真线程能够实现跨平台通信,即第一进程和第二进程能够运行于不同的平台中,以完成不同平台中的仿真任务,实现跨平台联合仿真,提高了联合仿真的效率。
本公开提供的联合仿真系统可适用于多种联合仿真场景,例如,对硬件设计模型的验证场景,或者,也可以是基于仿真构建的虚拟平台的场景。下面对这两种场景进行展开说明。
在对硬件设计模型的验证场景中,会用到设计模型和参考模型,设计模型一般基于Verilog等硬件描述语言实现,设计模型为需要验证的对象;此外,在该场景中,还需要使用参考模型,参考模型一般基于C++或SystemC等语言实现,可以视为设计模型的仿真模型,相比设计模型而言,参考模型可以快速建立起来,作为验证模型的参考。在验证的过程中,可以将输入数据分别输入设计模型和参考模型中,来测试其输出的响应是否相同。在该应用场景中,设计模型往往只能运行在需要特定授权的测试平台中,而参考模型往往不需要运行在特定的平台,因此,可以运行于其它平台,或者,还可以通过对参考模型进行分布式的处理,来执行联合仿真,以提高仿真的效率。
在基于仿真构建的虚拟平台场景中,在芯片刚开始的开发阶段,由于硬件芯片的模型比较繁琐,开发耗时较长,为了提高开发进度,可以基于C++或SystemC等语言来对硬件芯片进行仿真,建立参考模型,作为虚拟平台,基于该虚拟平台同步开发硬件芯片上运行的软件,而无需等硬件芯片开发完再开发软件。虚拟平台(参考模型)给软件暴露出类似于硬件的接口,但其底层的实现还是用C++或SystemC的方案,在虚拟平台的场景中,可以使用本公开提供的跨平台联合仿真系统,将不同的仿真模块部署在不同的电脑上或者电脑集群上面,来加速仿真进程,提高仿真的效率。
图1示出根据本公开实施例的一种跨平台联合仿真系统的框架图,如图1所示,所述系统包括第一进程101和第二进程102,所述第一进程101和所述第二进程102运行于不同的平台,所述第一进程包含用于联合仿真的第一仿真线程和至少一个第一数据队列,所述第二进程包含用于联合仿真的第二仿真线程和至少一个第二数据队列,其中:
所述第一仿真线程将数据写入所述第一数据队列;所述第一数据队列用于和所述第二数据队列基于进程间通信机制进行数据同步,以保持数据一致;
所述第二仿真线程在确定第二数据队列中存入新的数据的情况下,从所述第二数据队列中读取所述数据,所述数据用于进行联合仿真。
所述系统可以基于硬件协同设计语言SystemC实现,第一进程101和第二进程102中可以包含用于执行基于SystemC语言实现的程序指令的线程,这些程序共同实现联合仿真的任务。为便于描述,将第一进程中用于执行仿真任务的线程称为第一仿真线程,将第二进程中用于执行仿真任务的线程称为第二仿真线程。
这里的不同平台可以是用于实现不同业务逻辑的业务平台,不同业务逻辑实现不同的功能,以满足不同的业务需求。例如,测试平台、调试平台、数据分析平台、仿真管理平台等。其中,测试平台,用于测试应用程序的功能、性能、稳定性等;调试平台,用于定位和解决应用程序中的错误和问题;数据分析平台,用于对仿真结果进行深入的数据分析和挖掘,提取有价值的信息;仿真管理平台,用于管理仿真项目的整个生命周期,包括仿真模型的创建、配置、运行、监控和结果分析等。第一进程和所述第二进程可以分别运行于任意不同的平台中,本领域技术人员可根据具体实施场景选择对应的平台,本公开对此不作限定。
可以理解的是,本公开实施例中的“第一”和“第二”用于区分所描述的对象,而不应当理解为对描述对象的次序、指示或暗示相对重要性等其它限定。
所述第一数据队列和所述第二数据队列均可以是先进先出队列(First In FirstOut,FIFO),第一数据队列和第二数据队列基于进程间通信机制进行数据同步,以保持数据一致。
需要说明的是,在该系统中,除第一进程和第二进程以外,还可以包含其它进程,本公开对系统中的进程的数量不做限定。不同进程之间均可以基于数据队列来通信,在本公开实施例中,第一数据队列和第二数据队列可以具体实现为一个跨进程的数据队列接口,第一仿真线程和第二仿真线程通过调用该接口实现数据的通信。而其它线程之间也基于数据队列构成的线程接口进行通信。
在该实现方式中,第一数据队列和第二数据队列之间的通信过程包括:在数据写入线程将数据写入第一数据队列后,所述第一数据队列的第一线程,通过进程间通信的方式,将第一数据队列中的数据发送给与第二数据队列对应的第二线程;第二线程,在接收到数据的情况下,将数据写入第二数据队列中,以便第二进程中的数据读取线程从第二数据队列中读取所述数据。该通信方式可以实现为接口的形式,部署于平台中,供需要通信的线程调用。
在本公开实施例中,使用者并不需要对已有的程序做大规模的改动,也不需要学习特定的同步机制。只需要重新将现有的仿真程序或虚拟化平台重新划分为运行在不同平台的多个部分,在不同部分之间使用跨进程的数据队列接口进行通信工作,即可部署在不同的平台,以及不同的网络集群上,充分利用硬件资源,提升了运行速度。
图2所示,图2示出根据本公开实施例的另一种跨平台联合仿真系统的框架图。该系统中包括3个SystemC仿真进程(基于SystemC语言实现的仿真进程),每个仿真进程中包含一个或多个SystemC仿真线程(基于SystemC语言实现的仿真线程),同一进程中的SystemC仿真线程基于内部的FIFO进行连接通信,而不同进程的SystemC仿真线程基于跨进程的SystemC FIFO接口进行通信,每一个进程都有一个跨进程的SystemC FIFO接口,所有进程的SystemC FIFO接口彼此连接。这样,仿真程序就被部署到了三个不同的平台中,实现了三个平台的联合仿真,提高了联合仿真效率。
这里的不同平台可以是具备不同仿真任务的运行环境的平台,该平台可以包括以下至少一种:提供硬件运行授权的硬件运行平台、提供软件运行授权的软件运行平台、提供调试环境的调试平台。后文会基于具体的实现方式对各平台进行详细描述,此处不做赘述。
在本公开实施例中,第一进程和第二进程中的第一数据队列和第二数据队列基于进程间通信机制进行数据同步,保持数据一致,使得第一仿真线程和第二仿真线程能够实现跨平台通信,即第一进程和第二进程能够运行于不同的平台中,以完成不同平台中的仿真任务,实现跨平台联合仿真,提高了联合仿真的效率。
在一种可能的实现方式中,所述第一进程运行于需要特定授权的测试平台,用于执行需要所述特定授权的联合仿真任务;所述第二进程运行于所述测试平台以外的其它平台,用于执行无需所述特定授权的联合仿真任务。
在对硬件设计模型的验证场景中,设计模型往往是基于硬件描述语言实现的,可能需要特定的授权工具来运行,即设计模型需要运行在特定的电脑上;而参考模型一般是基于System C语言实现,一般不需要运行在特定的电脑上。因此,在该实现方式中,可以将设计模型的进程运行于需要特定授权的测试平台,而将参考模型运行于无需授权的其它平台。共同执行联合仿真任务。使得仿真任务不受特定授权的测试平台的性能限制,提高了仿真效率。
在基于仿真构建的虚拟平台场景中,参考模型中可能也会存在需要特定授权的库,因此可以将参考模型中需要特定的授权工具的部分和不需要授权工具的部分拆分在不同平台上运行,即第一进程用于执行参考模型中需要特定的授权工具的仿真模块,第二进程中用于执行参考模型中不需要特定的授权的仿真模块。使得仿真任务不受特定授权的测试平台的性能限制,提高了仿真效率。
在一种可能的实现方式中,所述测试平台包括测试激励产生模块、待测试模块和比对模块,所述待测试模块基于硬件描述语言实现,所述第一仿真线程调用所述测试平台以执行联合仿真任务;所述其它平台包括参考模型;其中:所述第一仿真线程用于调用所述测试激励产生模块得到测试激励,并基于所述第一数据队列向所述参考模型发送所述测试激励;所述第一仿真线程用于调用所述待测试模块基于所述测试激励得到第一结果;所述第二仿真线程用于调用所述参考模型,基于所述第二数据队列接收所述测试激励,并利用所述测试激励执行测试得到第二结果;所述第一仿真线程用于调用所述比对模块,基于所述第一数据队列接收所述第二结果,并对第一结果和第二结果进行比对。
测试平台中会包含多个模块,这些模块相互作用,共同实现测试平台的测试业务,模块的具体实现可以是计算机程序本身,由一个或多个计算机程序指令构成,用于完成测试任务或功能,模块可以被操作系统创建的进程中的线程执行。那么,第一仿真线程调用所述测试平台以执行联合仿真任务,第二仿真线程调用参考模块以执行联合仿真任务。
在该实现方式中,待测试模块可以是基于硬件描述语言实现的模块,其运行于需要特定授权的测试平台,在一个示例中,该待测试模块可以是本公开中的设计模块,即对硬件模块进行验证的应用场景。
图3示出根据本公开实施例的另一种跨平台联合仿真系统的框架图。如图3所示,待测试激励产生模块、待测试模块、比对模块运行于需要特定授权的平台中,参考模型运行于使用者熟悉的其它平台中,两个平台中各自有一个跨进程SystemC FIFO接口进行跨进程通信。
测试激励产生模块的主要功能是生成用于测试的激励(也就是待测试模块和参考模型的输入),然后将这些激励通过平台内部的FIFO发送到待测试模型,通过跨进程SystemC FIFO接口发送到参考模型。
待测试模块会接收到来自测试激励产生模块的测试激励,并基于这些激励产生第一结果。第一结果可以是待测试模块的输出,或者也可以是待测试模块在接收到测试激励后的状态。
参考模型通过跨进程SystemC FIFO接口接收来自测试激励产生模块的测试激励,并利用这些激励执行测试以产生第二结果。参考模型可以是已知的、可信赖的模型,用于验证待测试模块的行为是否正确。
比对模块通过跨进程SystemC FIFO接口接收来自参考模型的第二结果,然后将第一结果和第二结果进行比对。如果两个结果不一致,那么可能意味着待测试模块存在问题,或者系统通信存在问题。
在本公开实施例中,通过跨进程的联合仿真可以帮助开发者在待测试模块的产品发布之前找出并修复问题,提高产品的质量和性能。常常用于验证新设计的功能是否符合预期,或者检查新的更新是否引入了新的错误。而通过跨进程的联合仿真,将待测试模块和参考模型分别部署于不同的平台,待测试模型由于是硬件模型,因此需要运行于需要授权的特定平台,而参考模型是不需要授权的软件模型,其运行于特定平台以外的其它平台,或者通过对参考模型进行分布式的处理,来执行联合仿真,以提高仿真的效率。
在一种可能的实现方式中,所述第一仿真线程用于调用所述测试激励产生模块,将所述测试激励写入所述第一数据队列;所述第一进程中的第一线程,用于将所述第一数据队列中的测试激励发送给所述第二进程中的第二线程;所述第二线程,在接收到所述测试激励的情况下,将所述测试激励写入所述第二数据队列;所述第二仿真线程用于调用所述参考模型从所述第二数据队列中读取所述数据,得到第二结果,以及,将所述第二结果写入所述第二数据队列;所述第二线程,将所述第二数据队列中的第二结果发送给所述第一线程;所述第一线程,在接收到所述第二结果的情况下,将所述第二结果写入所述第一数据队列中;所述第一仿真线程用于调用所述比对模块,从所述第一数据队列中读取所述第二结果,并对第一结果和第二结果进行比对。
在一种可能的实现方式中,所述第二进程运行于用于对所述系统进行调试的调试平台,所述调试平台包括调试模块,所述调试模块为与所述第一进程相匹配的调试模块。
与第一进程相匹配的调试模块,可以是由用户自主选择的调试模块,在一个示例中,调试模块可以是清单内的模块,用户可以从这个清单中选择熟悉的调试模块,清单中可以有调试模块的名称、描述、评分等,供用户自主选择;在另一个示例中,调试模块可以是由调试平台中预设的/指定的,调试平台可以根据用户的身份、角色或任务预设调试工具或配置,例如,对于新用户,调试平台可以预设一些基础教程或工具,帮助新用户快速上手,对于高级用户,可以预设更高级的调试工具;在另一个示例中,调试模块可以是标记好的调试模块,调试平台可以提供标记或分类功能,帮助用户快速找到熟悉的调试工具;在另一个示例中,调试模块可以是与用户标识(ID)对应的调试模块,用户可以预先绑定与自己的身份ID对应的调试模块,或者,调试平台可以根据用户的身份ID提供个性化的推荐或设置,用户通过自主选择,可以选择更加熟悉和友好的调试平台。
在本公开实施例中,由于特定授权的平台中,可能缺乏对用户友好的调试工具,那么使用者可以将基于SystemC的参考实现部署在另一个使用者更加熟悉的调试平台上,两者之间通过使用网络套接字的跨进程SystemC FIFO接口进行互联。提高了对系统的调试效率,提高了用户的调试体验。
在一种可能的实现方式中,所述调试平台包括调试模块,用于在确定所述第一数据队列和所述第二数据队列的数据不一致的情况下,确定所述系统存在数据通信错误的问题。
调试模块能够对程序、硬件或系统的错误进行定位、分析和修复。它有助于开发人员发现并解决待测试模型中的逻辑错误、语法错误、运行时错误等问题,保证模型的正确性和可靠性。
在本公开实施例中,基于本公开提供的,跨进程通信机制,在系统正常运行的情况下,第一数据队列和第二数据队列的数据是保持一致的。而如果测试过程中发现报错了,需要排查是系统出错还是仿真出错了,而本公开中,基于第一数据队列和第二数据队列的数据是否保持一致,可以确定是否是系统数据通信错误。
例如,第一数据队列中有5个数据,而第二数据队列中有3个数据,则表明系统通信错误。而基于复杂的队列通信机制的技术则无法实现该错误的定位,因为队列中的数据不一致可能是由于数据未及时传输导致的。而本公开提供的系统通信机制更简洁,更直观,便于快速定时系统数据通信错误。
在一种可能的实现方式中,所述第一数据队列和所述第二数据队列基于网络套接字通信协议进行数据同步,所述第一进程和所述第二进程被部署在不同的物理节点上。
不同的物理节点可以是不同的计算机设备,物理节点之间往往通过有线或无线的通信方式建立通信连接,例如双绞线、光纤电缆、无线局域网等。在第一进程和第二进程位于不同的物理节点的情况下,会基于网络套接字通信协议进行数据同步。
在本公开实施例中,当跨进程的SystemC先进先出队列使用网络套接字进行连接的时候,三个进程可以被部署到网络集群中不同的物理节点上。这样一来,仿真程序以及虚拟平台就可以借助网络集群中充沛的计算资源,提升运行速度和仿真效率。
可以理解,本公开提及的上述各个实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了一种跨平台联合仿真方法、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种跨平台联合仿真系统,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图4示出根据本公开实施例的一种跨平台联合仿真方法的流程,所述方法应用于跨平台联合仿真系统,所述系统包括第一进程和第二进程,所述第一进程和所述第二进程运行于不同的平台,所述第一进程包含用于联合仿真的第一仿真线程和至少一个第一数据队列,所述第二进程包含用于联合仿真的第二仿真线程和至少一个第二数据队列,如图4所示,所述方法包括:
在步骤S21中,所述第一仿真线程将数据写入所述第一数据队列;所述第一数据队列用于和所述第二数据队列基于进程间通信机制进行数据同步,以保持数据一致;
在步骤S22中,所述第二仿真线程在确定第二数据队列中存入新的数据的情况下,从所述第二数据队列中读取所述数据,所述数据用于进行联合仿真。
在一种可能的实现方式中,所述第一进程运行于需要特定授权的测试平台,用于执行需要所述特定授权的联合仿真任务;所述第二进程运行于所述测试平台以外的其它平台,用于执行无需所述特定授权的联合仿真任务。
在一种可能的实现方式中,所述测试平台包括测试激励产生模块、待测试模块和比对模块,所述待测试模块基于硬件描述语言实现,所述第一仿真线程调用所述测试平台以执行联合仿真任务;所述其它平台包括参考模型;其中:所述第一仿真线程用于调用所述测试激励产生模块得到测试激励,并基于所述第一数据队列向所述参考模型发送所述测试激励;所述第一仿真线程用于调用所述待测试模块基于所述测试激励得到第一结果;所述第二仿真线程用于调用所述参考模型,基于所述第二数据队列接收所述测试激励,并利用所述测试激励执行测试得到第二结果;所述第一仿真线程用于调用所述比对模块,基于所述第一数据队列接收所述第二结果,并对第一结果和第二结果进行比对。
在一种可能的实现方式中,所述第一仿真线程用于调用所述测试激励产生模块,将所述测试激励写入所述第一数据队列;所述第一进程中的第一线程,用于将所述第一数据队列中的测试激励发送给所述第二进程中的第二线程;所述第二线程,在接收到所述测试激励的情况下,将所述测试激励写入所述第二数据队列;所述第二仿真线程用于调用所述参考模型从所述第二数据队列中读取所述数据,得到第二结果,以及,将所述第二结果写入所述第二数据队列;所述第二线程,将所述第二数据队列中的第二结果发送给所述第一线程;所述第一线程,在接收到所述第二结果的情况下,将所述第二结果写入所述第一数据队列中;所述第一仿真线程用于调用所述比对模块,从所述第一数据队列中读取所述第二结果,并对第一结果和第二结果进行比对。
在一种可能的实现方式中,所述第二进程运行于用于对所述系统进行调试的调试平台,所述调试平台包括调试模块,所述调试模块为与所述第一进程相匹配的调试模块。
在一种可能的实现方式中,所述调试平台包括调试模块,用于在确定所述第一数据队列和所述第二数据队列的数据不一致的情况下,确定所述系统存在数据通信错误的问题。
在一种可能的实现方式中,所述第一数据队列和所述第二数据队列基于网络套接字通信协议进行数据同步,所述第一进程和所述第二进程被部署在不同的物理节点上。
该方法与计算机系统的内部结构存在特定技术关联,且能够解决如何提升硬件运算效率或执行效果的技术问题(包括减少数据存储量、减少数据传输量、提高硬件处理速度等),从而获得符合自然规律的计算机系统内部性能改进的技术效果。
在一些实施例中,本公开实施例提供的方法的具体实现可以参照上文系统实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述系统。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以实现上述系统。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器实现上述系统。
电子设备可以被提供为终端、服务器或其它形态的设备。
图5示出根据本公开实施例的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器或终端设备。参照图5,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以实现上述系统的功能。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服务器操作系统(Windows ServerTM),苹果公司推出的基于图形用户界面操作系统(Mac OS XTM),多用户多进程的计算机操作系统(UnixTM), 自由和开放原代码的类Unix操作系统(LinuxTM),开放原代码的类Unix操作系统(FreeBSDTM)或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以实现上述系统的功能。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种跨平台联合仿真系统,其特征在于,所述系统包括第一进程和第二进程,所述第一进程和所述第二进程运行于不同的平台,所述第一进程包含用于联合仿真的第一仿真线程和至少一个第一数据队列,所述第二进程包含用于联合仿真的第二仿真线程和至少一个第二数据队列,其中:
所述第一仿真线程将数据写入所述第一数据队列;所述第一数据队列用于和所述第二数据队列基于进程间通信机制进行数据同步,以保持数据一致;
所述第二仿真线程在确定第二数据队列中存入新的数据的情况下,从所述第二数据队列中读取所述数据,所述数据用于进行联合仿真。
2.根据权利要求1所述的系统,其特征在于,所述第一进程运行于需要特定授权的测试平台,用于执行需要所述特定授权的联合仿真任务;所述第二进程运行于所述测试平台以外的其它平台,用于执行无需所述特定授权的联合仿真任务。
3.根据权利要求2所述的系统,其特征在于,所述测试平台包括测试激励产生模块、待测试模块和比对模块,所述待测试模块基于硬件描述语言实现,所述第一仿真线程调用所述测试平台以执行联合仿真任务;所述其它平台包括参考模型;其中:
所述第一仿真线程用于调用所述测试激励产生模块得到测试激励,并基于所述第一数据队列向所述参考模型发送所述测试激励;
所述第一仿真线程用于调用所述待测试模块基于所述测试激励得到第一结果;
所述第二仿真线程用于调用所述参考模型,基于所述第二数据队列接收所述测试激励,并利用所述测试激励执行测试得到第二结果;
所述第一仿真线程用于调用所述比对模块,基于所述第一数据队列接收所述第二结果,并对第一结果和第二结果进行比对。
4.根据权利要求3所述的系统,其特征在于:
所述第一仿真线程用于调用所述测试激励产生模块,将所述测试激励写入所述第一数据队列;
所述第一进程中的第一线程,用于将所述第一数据队列中的测试激励发送给所述第二进程中的第二线程;
所述第二线程,在接收到所述测试激励的情况下,将所述测试激励写入所述第二数据队列;
所述第二仿真线程用于调用所述参考模型从所述第二数据队列中读取所述数据,得到第二结果,以及,将所述第二结果写入所述第二数据队列;
所述第二线程,将所述第二数据队列中的第二结果发送给所述第一线程;
所述第一线程,在接收到所述第二结果的情况下,将所述第二结果写入所述第一数据队列中;
所述第一仿真线程用于调用所述比对模块,从所述第一数据队列中读取所述第二结果,并对第一结果和第二结果进行比对。
5.根据权利要求1所述的系统,其特征在于,所述第二进程运行于用于对所述系统进行调试的调试平台,所述调试平台包括调试模块,所述调试模块为与所述第一进程相匹配的调试模块。
6.根据权利要求5所述的系统,其特征在于,所述调试平台包括调试模块,用于在确定所述第一数据队列和所述第二数据队列的数据不一致的情况下,确定所述系统存在数据通信错误的问题。
7.根据权利要求1所述的系统,其特征在于,所述第一数据队列和所述第二数据队列基于网络套接字通信协议进行数据同步,所述第一进程和所述第二进程被部署在不同的物理节点上。
8.一种跨平台联合仿真方法,其特征在于,所述方法应用于跨平台联合仿真系统,所述系统包括第一进程和第二进程,所述第一进程和所述第二进程运行于不同的平台,所述第一进程包含用于联合仿真的第一仿真线程和至少一个第一数据队列,所述第二进程包含用于联合仿真的第二仿真线程和至少一个第二数据队列,所述方法包括:
所述第一仿真线程将数据写入所述第一数据队列;所述第一数据队列用于和所述第二数据队列基于进程间通信机制进行数据同步,以保持数据一致;
所述第二仿真线程在确定第二数据队列中存入新的数据的情况下,从所述第二数据队列中读取所述数据,所述数据用于进行联合仿真。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以实现权利要求1至7中任意一项所述的系统。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至7中任意一项所述的系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410339053.XA CN117933155A (zh) | 2024-03-22 | 2024-03-22 | 一种多进程联合仿真系统及方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410339053.XA CN117933155A (zh) | 2024-03-22 | 2024-03-22 | 一种多进程联合仿真系统及方法、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117933155A true CN117933155A (zh) | 2024-04-26 |
Family
ID=90764984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410339053.XA Pending CN117933155A (zh) | 2024-03-22 | 2024-03-22 | 一种多进程联合仿真系统及方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117933155A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060066634A (ko) * | 2004-12-13 | 2006-06-16 | 양세양 | 검증 성능과 검증 효율성을 높이는 동적검증 기법 방식의검증 장치 및 이를 이용한 검증 방법론 |
US20090222250A1 (en) * | 2008-02-28 | 2009-09-03 | Oki Electric Industry Co., Ltd. | Hard/Soft Cooperative Verifying Simulator |
CN103902767A (zh) * | 2014-03-24 | 2014-07-02 | 中国科学技术大学苏州研究院 | 基于QEMU和SystemC的多核仿真器 |
US20150356219A1 (en) * | 2014-06-06 | 2015-12-10 | Synopsys, Inc. | Efficient mechanism in hardware and software co-simulation system |
CN111353263A (zh) * | 2018-12-21 | 2020-06-30 | 创发信息科技(苏州)有限公司 | 软硬件设计与验证平台系统 |
CN112329369A (zh) * | 2020-11-09 | 2021-02-05 | 安徽芯纪元科技有限公司 | 一种在芯片仿真模型上进行软件调试的方法 |
CN115185718A (zh) * | 2022-09-14 | 2022-10-14 | 北京云枢创新软件技术有限公司 | 基于SystemC和C++的多线程数据传输系统 |
US11475199B1 (en) * | 2021-09-27 | 2022-10-18 | Xilinx, Inc. | Parallelizing simulation and hardware co-simulation of circuit designs through partitioning |
CN116401984A (zh) * | 2022-12-09 | 2023-07-07 | 平头哥(上海)半导体技术有限公司 | 基于虚拟机的片上系统仿真方法及系统 |
-
2024
- 2024-03-22 CN CN202410339053.XA patent/CN117933155A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060066634A (ko) * | 2004-12-13 | 2006-06-16 | 양세양 | 검증 성능과 검증 효율성을 높이는 동적검증 기법 방식의검증 장치 및 이를 이용한 검증 방법론 |
US20090222250A1 (en) * | 2008-02-28 | 2009-09-03 | Oki Electric Industry Co., Ltd. | Hard/Soft Cooperative Verifying Simulator |
CN103902767A (zh) * | 2014-03-24 | 2014-07-02 | 中国科学技术大学苏州研究院 | 基于QEMU和SystemC的多核仿真器 |
US20150356219A1 (en) * | 2014-06-06 | 2015-12-10 | Synopsys, Inc. | Efficient mechanism in hardware and software co-simulation system |
CN111353263A (zh) * | 2018-12-21 | 2020-06-30 | 创发信息科技(苏州)有限公司 | 软硬件设计与验证平台系统 |
CN112329369A (zh) * | 2020-11-09 | 2021-02-05 | 安徽芯纪元科技有限公司 | 一种在芯片仿真模型上进行软件调试的方法 |
US11475199B1 (en) * | 2021-09-27 | 2022-10-18 | Xilinx, Inc. | Parallelizing simulation and hardware co-simulation of circuit designs through partitioning |
CN115185718A (zh) * | 2022-09-14 | 2022-10-14 | 北京云枢创新软件技术有限公司 | 基于SystemC和C++的多线程数据传输系统 |
CN116401984A (zh) * | 2022-12-09 | 2023-07-07 | 平头哥(上海)半导体技术有限公司 | 基于虚拟机的片上系统仿真方法及系统 |
Non-Patent Citations (1)
Title |
---|
卢艳君: "基于SystemC和System Verilog的联合仿真平台设计", 科学技术创新, no. 27, 25 September 2017 (2017-09-25), pages 1 - 3 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112100954A (zh) | 验证芯片的方法、装置和计算机存储介质 | |
US11237948B2 (en) | Rendering engine component abstraction system | |
JP6600011B2 (ja) | エミュレーションのための効率的波形生成 | |
CN111859834B (zh) | 一种基于uvm的验证平台开发方法、系统、终端及存储介质 | |
US10592703B1 (en) | Method and system for processing verification tests for testing a design under test | |
CN110941934A (zh) | 一种fpga原型验证开发板分割仿真系统、方法、介质及终端 | |
US9690681B1 (en) | Method and system for automatically generating executable system-level tests | |
US9092567B2 (en) | Systems and methods for analyzing transactions in a computer system | |
CN112860587A (zh) | Ui自动测试方法和装置 | |
US10929584B1 (en) | Environmental modification testing for design correctness with formal verification | |
Huggi et al. | Design and verification of memory elements using python | |
CN111382065A (zh) | 基于测试模板的验证流程管理系统及其方法 | |
CN115993937A (zh) | 一种多进程固态硬盘仿真环境实现方法和装置 | |
CN117933155A (zh) | 一种多进程联合仿真系统及方法、电子设备和存储介质 | |
RU2729210C1 (ru) | Комплекс тестирования программного обеспечения электронных устройств | |
CN117667655A (zh) | 验证系统、验证方法、电子设备以及存储介质 | |
CN107329869B (zh) | 一种片上系统的仿真方法及装置 | |
CN113792522A (zh) | 仿真验证方法、装置及计算设备 | |
CA3144852A1 (en) | Automatic generation of integrated test procedures using system test procedures | |
CN111338761B (zh) | 一种51单片机虚拟中断控制器及实现方法 | |
US10606971B2 (en) | Testing netlists based on singular independent signals | |
WO2020138386A1 (ja) | 以前のトレースデータを使用する協調シミュレーションリピータ | |
CN107526585B (zh) | 基于Scala的FPGA开发平台及其调试、测试方法 | |
US9710581B1 (en) | VIP assisted method and apparatus to enable SOC integration and software development | |
CN117313650B (zh) | 一种芯片测试验证方法及其应用装置 |
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 |