CN113806431A - 一种传输仿真数据的方法、电子系统及存储介质 - Google Patents

一种传输仿真数据的方法、电子系统及存储介质 Download PDF

Info

Publication number
CN113806431A
CN113806431A CN202111034531.9A CN202111034531A CN113806431A CN 113806431 A CN113806431 A CN 113806431A CN 202111034531 A CN202111034531 A CN 202111034531A CN 113806431 A CN113806431 A CN 113806431A
Authority
CN
China
Prior art keywords
data
simulation
units
signal
packet
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
Application number
CN202111034531.9A
Other languages
English (en)
Inventor
李鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinhuazhang Technology Co ltd
Original Assignee
Xinhuazhang Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xinhuazhang Technology Co ltd filed Critical Xinhuazhang Technology Co ltd
Priority to CN202111034531.9A priority Critical patent/CN113806431A/zh
Publication of CN113806431A publication Critical patent/CN113806431A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开实施例提供一种传输仿真数据的方法,包括:缓存逻辑系统设计的仿真数据,所述仿真数据包括多个数据单元;将缓存的所述多个数据单元分组为至少一个数据包;处理所述至少一个数据包;以及将处理后的所述至少一个数据包存储到仿真数据库。因此,能够把多个数据单元分组为数据包,实现高效的将仿真数据写入仿真数据库中。

Description

一种传输仿真数据的方法、电子系统及存储介质
技术领域
本公开实施例涉及逻辑系统设计技术领域,尤其涉及一种传输仿真数据的方法、电子系统及存储介质。
背景技术
逻辑系统设计(简称设计)是指用于ASIC(Application Specific IntegratedCircuit,专用集成电路)、SOC(System-On-Chip,片上系统芯片)等电路的设计。设计一般通过专门的HDL(Hardware Description Language,硬件描述语言)来完成。利用HDL可逐层具体化描述设计,使得设计复杂的电路结构可使用一系列分层次的模块来表示。
设计需要使用仿真器进行仿真,以实现设计的功能验证。在仿真设计的过程中,仿真器可产生波形等仿真数据。为便于主机分析仿真数据,仿真器在产生仿真数据后,需要将仿真数据写入仿真数据库。因此如何高效的将仿真数据写入仿真数据库,成为了本领域技术人员亟需解决的技术问题。
发明内容
本公开实施例提出一种传输仿真数据的方法及相关设备。
第一方面,本公开实施例提供一种传输仿真数据的方法,包括:
缓存逻辑系统设计的仿真数据,所述仿真数据包括多个数据单元;
将缓存的所述多个数据单元分组为至少一个数据包;
处理所述至少一个数据包;以及
将处理后的所述至少一个数据包存储到仿真数据库中。
第二方面,本公开实施例提供一种电子系统,包括:
存储器,用于存储一组计算机指令;以及
至少一个处理器,用于执行所述计算机指令以使得所述电子系统执行上述的方法。
第三方面,本公开实施例提供一种存储介质,其中,所述存储介质存储至少一组指令,所述至少一组指令被执行时使得电子系统执行上述所述的方法。
本公开实施例提供的传输仿真数据的方法,缓存设计的仿真数据,所述仿真数据包括多个数据单元;将缓存的所述多个数据单元分组为至少一个数据包;处理所述至少一个数据包;以及将处理后的所述至少一个数据包存储到仿真数据库中。因此,能够把多个数据单元分组为数据包,实现高效的将仿真数据写入仿真数据库。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本公开实施例提供的主机的结构示意图。
图2为本公开实施例提供的仿真工具的示意图。
图3为本公开实施例电子系统传输仿真数据的示意图。
图4A为本公开实施例VC数据的数据结构示意图。
图4B为本公开实施例对VC数据分组的示意图。
图4C示出了分组VC数据的合并处理后的数据结构的示例图。
图5示出了根据本公开实施例的传输VC数据的示例性示意图。
图6示出了本申请实施例所提供的一种用于传输仿真数据的方法的流程示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开实施例进一步详细说明。
需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开实施例所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
图1示出了一种主机100的结构示意图。主机100可以是本公开实施例中用于传输仿真数据的电子系统。如图1所示,主机100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中,处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在主机内部的通信连接。
处理器102可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路。处理器102可以用于执行与本公开实施例描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器102a、102b和102c。
存储器104可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。在设计领域,用于仿真验证的验证系统可以是存储器104中存储的计算机程序。如图1所示,存储器存储的数据可以包括程序指令(例如,用于实现本公开实施例的技术方案的程序指令)以及要处理的数据(例如,存储器可以存储在编译过程产生的临时代码)。处理器102也可以访问存储器存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为经由网络向主机100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将主机100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线110可以被配置为在主机100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述主机架构仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该主机架构还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,本公开实施例中也可以仅包含上述主机架构中实现方案所必需的组件,而不必包含图中所示的全部组件。
图2示出了根据本公开实施例的仿真工具200的示意图。如图2所示,仿真工具200可以包括编译器210和仿真器220。
编译器210可以基于待编译的计算机代码来生成目标代码。待编译的计算机代码又可以称为源代码,例如设计201。通常,编写源代码的源语言是高级编程语言。高级编程语言可以例如是C++、Java等软件编程语言或VHDL、Verilog、SystemVerilog等硬件描述语言。在公开实施例中,设计201可以是用例如Verilog描述的。目标代码则可以是例如汇编代码、机器码、门级网表等。在本公开实施例中,目标代码以门级网表为例进行描述,但是本领域技术人员应该理解本公开实施例中的门级网表可以用其他类型的目标代码代替。通常的,编译器210可以存储在图1所示的存储器104中,并且由处理器102执行,以将设计201编译为目标代码。
仿真器220可以根据目标代码进行仿真验证,并输出验证结果。例如,仿真器可以将仿真结果经由图1的外围接口108输出到输出装置上(输出装置例如显示器等)。仿真器220可以是软件仿真器(simulator)或硬件仿真器(emulator)。
软件仿真器例如可以以软件仿真的方式来模拟设计201的执行,并获得运行的数据(例如,波形)。由于软件仿真器需要采用软件仿真的形式来运行设计201,所以这不可避免地具有软件运行的一些劣势,例如,运行速度慢以及无法模拟硬件的物理特性等。硬件仿真器又可以称为硬件加速器。硬件仿真器可以包括FPGA(field programmable gatearray,现场可编程门阵列)等硬件,并且通过在FPGA上实现设计201来运行设计201。通过硬件仿真器可以实现更快的仿真。类似地,硬件仿真器也可以获得运行的数据。
在一些实施例中,设计201可以包括用SystemVerilog语言编写的验证环境,例如通用验证方法学(Universal Verification Methodology,UVM)环境。通过利用仿真工具200仿真设计201,可以构建一个UVM环境,并可以在该UVM环境中对一个待测设备(DeviceUnder Test,简称DUT)进行验证。设计201的描述(例如,HDL描述)通过编译可以形成仿真程序。该仿真程序在UVM环境中可以被用作DUT。
在芯片设计领域,通常利用仿真工具对一个设计201进行硬件仿真或软件仿真。在软件仿真的一些实施例中,仿真工具200可以是软件仿真工具,该仿真工具200可以是运行在主机100上的计算机程序。例如,该仿真工具200的程序指令和数据存储在存储器104上,处理器102通过执行存储器104上存储的程序指令,执行仿真操作,得到仿真数据。在硬件仿真的一些实施例中,编译器210可以设置于主机,并向硬件仿真器提供经过编译的文件(例如,门级网表)。硬件仿真器则根据这些编译的文件仿真设计201,并输出仿真结果。硬件仿真器220可与主机通信连接,从而将数据传输回主机(例如,主机100)。例如,硬件仿真器220可以经由外围接口108将数据传输回主机100。
作为仿真工具200仿真设计201产生的仿真结果,仿真数据可存储到主机的仿真数据库上。在软件仿真的一些实施例中,仿真数据的存储过程可以是软件仿真器220调用写接口(例如,经由应用程序接口(application programming interface,API)调用主机的总线接口),将产生的仿真数据存储到主机的仿真数据库中。可以理解的是,在一些情况下,软件仿真器220和仿真数据库可能位于不同主机,此时,软件仿真器220还需要调用例如网络接口106用于不同主机之间的通信。在硬件仿真的一些实施例中,仿真数据的存储过程可以是硬件仿真器220调用写接口(例如硬件仿真器与主机之间的设备间通信接口),将仿真数据存储到主机的仿真数据库中。
设计的仿真过程中,设计的信号每发生一次数值变化,仿真工具则会产生一个VC(value change,值变化)数据,因此仿真数据中会包括多个VC数据。通常,仿真工具每产生一条VC数据就调用一次写接口将VC数据存储到仿真数据库。因此,在设计的仿真过程中,仿真器会频繁调用写接口。也就是说,在传统方式中,对于软件仿真而言,仿真器频繁调用各种总线接口,并最终频繁向硬盘写入数据,引发系统性能下降。对于硬件仿真而言,仿真器则频繁调用通信接口向主机发送数据,导致仿真器与主机之间的通信资源被频繁占用,引发系统性能下降。
为解决上述问题,本申请实施例提供一种传输仿真数据的新型方法和电子系统。
图3示出了本申请实施例提供的电子系统300传输仿真数据的示意图。如图3所示,该电子系统300可以包括:仿真器220、缓存单元301、仿真数据库302。
仿真器220用于对设计进行仿真验证,并在设计的信号每发生一次数值变化时,产生一个VC数据。仿真器220在设计的仿真过程中会产生多个VC数据,包括VC数据311至VC数据31n,n的具体数值可根据实际情况而定。如上所述,当仿真器220是硬件仿真器时,仿真器220可以经由外围接口108或网络接口106将数据传输回主机100。
区别于在传统方式中仿真器220每产生一个VC数据就调用一次写接口存储到仿真数据库中,本申请实施例可将仿真器220产生的VC数据311至VC数据31n先缓存到缓存单元301。
缓存单元301可以是仿真器220的一部分或独立于仿真器220。为了清楚地阐述本申请,图3将缓存单元301独立示出,但是可以理解的是,这并不代表缓存单元301必然独立于仿真器。
如上所述,在软件仿真的一些实施例中,仿真器220可以由主机100执行。此时,缓存单元301可以是主机100内设置的内存。在硬件仿真的一些实施例中,缓存单元301可以是硬件仿真器自带的存储单元,例如,FPGA的片内缓存或者硬件仿真器的板载缓存。
仿真器220可对缓存到缓存单元301中的VC数据311至VC数据31n进行分组、合并和压缩处理,得到压缩VC数据320。压缩VC数据320的数据量可低于VC数据311至VC数据31n的数据量(未压缩的数据的数据量)。仿真器在对VC数据311至VC数据31n进行分组、合并和压缩处理后,可通过数据量被压缩的压缩VC数据的形式,统一调用一次写接口将数据量被压缩的压缩VC数据存储到仿真数据库,从而避免频繁调用写接口,保障仿真工具的性能。
VC数据可以包括多个数据特征,例如信号的信号名、信号的生成时间、和信号的值。根据上述数据特征,VC数据可以以一种数据结构进行表示。
图4A示出了VC数据的数据结构410的示例图。如图4A所示,数据结构410可以包括多个数据域(field),诸如生成时间411、信号名412和信号值413。在该多个数据域中分别存储VC数据的对应的值。例如,VC数据311可以是如下格式的数据:
#100start_signal 0
其中,#100是生成时间411这个数据域的值,start_signal是信号名412这个数据域的值,而0则是信号值413这个数据域的值。
本申请实施例可通过VC数据的分组处理,将具有相同数据特征的多个VC数据分组在一起。在一些实施例中,本申请实施例可将具有相同生成时间的VC数据分组在一起。即,对于生成时间411的值相同的VC数据,可以将它们分组在一起。
图4B示出了对VC数据分组的示例图。如图4B所示,VC数据311至316为图3所示VC数据311至31n中的VC数据。VC数据311的生成时间为#100、信号名为start_signal、信号值为0,VC数据312的生成时间为#100、信号名为write_signal、信号值为1、VC数据313的生成时间为#100、信号名为read_signal、信号值为1,VC数据314的生成时间为#100、信号名为end_signal、信号值为1,VC数据315的生成时间为#110、信号名为start_signal、信号值为1,VC数据316的生成时间为#110、信号名为write_signal、信号值为1。基于VC数据311、312、313和314具有相同的生成时间#100,本申请实施例可将VC数据311、312、313和314分组在一起,得到分组VC数据41,基于VC数据315和316具有相同的生成时间#110,VC数据315和316分组在一起,得到分组VC数据42。
需要说明的是,基于相同生成时间对VC数据进行分组仅是一种实施例,在其他一些实施例中,也可以是基于信号名对VC数据进行分组,如前所述,假定VC数据311和VC数据315具有相同的信号名start_signal,VC数据312和VC数据316具有相同的信号名write_signal,可以把VC数据311和VC数据315分为一组,VC数据312和VC数据316分为一组。
在得到分组VC数据之后,本申请实施例可对分组VC数据内的多个VC数据进行合并处理,以减少数据量。
图4C示出了分组VC数据41的合并处理后的数据结构420的示例图。如图4C所示,分组VC数据41包括VC数据311、VC数据312、VC数据313和VC数据314,其中VC数据311、VC数据312、VC数据313和VC数据314顺序排列。
由于VC数据311、VC数据312、VC数据313和VC数据314具有相同的数据域(即,生成时间411的值相同),所以可以将VC数据311-314的相同数据域411进行合并并形成新的合并VC数据421。也就是说,可以根据数据域411来确定一个用于合并VC数据421的新的数据结构。
例如,合并VC数据421的数据结构可以包括信号时间的数据域、信号名的数据域以及信号值的数据域。相比于原始的VC数据311-314,合并VC数据421的信号名的数据域可以被定义为一个多维数组,用于存储VC数据311-314的相应的信号名。类似地,合并VC数据421的信号值的数据域可以被定义为一个多维数组,用于存储VC数据311-314的相应的信号值。
在形成合并VC数据421之后对其进行压缩处理,实现数据量的减少。该压缩处理可以是数据压缩算法,数据压缩算法是一种提高存储介质利用率的数据缩减技术,其通过压缩合并VC数据421,得到压缩VC数据320,缩减了数据量,在后续仿真数据库实现对处理后的VC数据进行存储时,提高了存储效率。
例如,对于合并VC数据421,可以注意到该信号名的数据域中储存了多个字符串数据,压缩算法可以对这些字符串数据进行适应性地压缩。类似地,信号值的数据域中存储了多个二进制数据,压缩算法则可以对这些二进制数据进行适应性地压缩。由于合并VC数据421中的数据域中存储的都是同类型的数据,因此这些数据具有一些共性(例如,文本数据或者二进制数据)。这些共性可以有助于提高数据的压缩率。
相比于原始的VC数据311,由于VC数据311同时包括了时间数据、信号名这样的字符串数据以及信号值这样的二进制数据,对VC数据311进行压缩时很难提高压缩率。
在一些实施例中,可以在合并将分组VC数据中相同的数据域的过程中对分组VC数据中相同的数据域进行去重,从而减少分组VC数据中的冗余数据量。进一步,通过对合并VC数据进行压缩得到压缩VC数据320,进一步缩小了数据量。
在进一步的一些实施例中,VC数据的多个数据域还可以包括信号类型、VC数据所属的模块等。
需要说明的是,VC数据的信号类型可以用于描述该VC数据的类型,诸如周期信号、使能信号之类。可以理解的是,不同的类型的信号具有各自的特点。例如,周期信号周期性地出现值的变化,而有些使能信号在逻辑系统设计的运行过程中仅出现一次。因此,信号类型可以有助于仿真器220根据该VC数据的信号类型进行分组以及压缩。VC数据所属的模块可以用于描述VC数据属于哪个模块。在一些实施例中,将与该模块关联的VC数据分为一组可以有助于提高压缩率。例如,对于一个AND门的2个输入以及1个输出而言,将该3个信号的VC数据分为一组可以利用AND门的电路特性更好地压缩数据。
在得到压缩VC数据320后,缓存单元301可以将压缩VC数据320存储到仿真数据库302。
如上所述,在软件仿真的一些实施例中,缓存单元301可以是由主机100控制的内存。在存储压缩VC数据320时,主机100可以通过调用API软件接口,将压缩VC数据320存储到仿真数据库302中。该仿真数据库302可以是主机100内的本地数据库或远端的网络数据库。
可以理解的是,缓存单元301在调用API软件接口时还需要经由该API进一步调用其他接口或总线,例如,网络接口或主机内的各种总线。
如上所述,在硬件仿真的一些实施例中,缓存单元301可以是硬件仿真器220的一部分。硬件仿真器220可以通过调用硬件接口,将压缩VC数据320存储到仿真数据库302中。该仿真数据库302为与硬件仿真器通信地连接的主机100中运行的数据库。
本申请的实施例通过将VC数据预先缓存到缓存单元301中,实现对VC数据的分组、合并以及压缩处理,使得其在经过一次写接口的调用时,就能将压缩VC数据传输到仿真数据库中,减少调用写接口的次数,实现高效的将仿真数据写入仿真数据库。
图5示出了根据本公开实施例的传输VC数据的示例性示意图500。通过仿真器220对设计进行仿真得到仿真数据501,将仿真数据501缓存到缓存单元301中,其中,仿真数据501以第一数据结构10存储,仿真数据501包括多个数据单元1至n(例如图3所示VC数据311至31n),任一个数据单元均包括多个数据域(例如图4所示生成时间411、信号名412和信号值413),该多个数据域包括第一数据域510(例如图4A中的生成时间411)和第二数据域(例如图4A中不同于信号信号411的信号名412或者信号值413),第一数据域和第二数据域可以为数据单元中的任意两个数据域。其中,数据单元1包括第二数据域521、数据单元2包括第二数据域522,以此类推。
对仿真数据501中的数据单元1至n进行分组,得到数据包531至53m。
在本公开的一些可选的实施例中,可以是利用神经网络模型,识别数据单元1-n中具有相同数据域的至少两个数据单元,进而将具有相同数据域的数据单元分组到同一个数据包,得到数据包531至53m。由于VC数据的量十分巨大并且具有多个数据域,因此对VC数据进行分组的方式可以有多种选择。不同的分组方式可能导致数据的压缩率不同。在一些实施例中,仿真器220可以经由神经网络模型对缓存的VC数据进行分析,并选择最合适的分组方式以及对应的压缩算法。可以理解的是,对于压缩后的数据,可能需要一些数据位来指示对应的压缩算法。
在一些实施例中,神经网络模型可以包含3层卷积层和1层LSTM层(Long Short-Term Memory,长短期记忆网络),以满足数据单元中的数据域的划分。
在分组完成之后,对数据包531至53m进行合并得到合并数据包540。其中,合并数据包540以第二数据结构20进行存储。
在本公开的一些实施例中,仅是将数据单元1和数据单元2进行分组以及合并处理得到如图所示的合并数据包540,在其他的数据单元分组以及合并的过程中,还可以是其他的排列形式,图中仅是一种示例性说明,关于其他数据单元的处理方式可做适应性的变动,这里不再赘述。
得到合并数据包540之后,对其进行压缩得到压缩数据包541至54m。其中,压缩方法参见前述这里不再赘述。
将压缩数据包541至54m存储到仿真数据库302中。对应仿真器220的软件仿真和硬件仿真,可以分别调用仿真数据库的软件接口和硬件通信接口,实现将数据包541至54m传输到仿真数据库中。
由于VC数据单元具有数据量巨大、VC数据单元之间存在明显关联性等特点,本申请的实施例将多个VC数据单元进行缓存和处理,从而最终达到减少通信请求次数以及减少通信的数据量的技术效果。同时,由于VC数据单元之间存在的关联性(例如,数据单元产生的时间、数据单元所属的模块),VC数据单元可以更有策略的进行分组,以便于产生更高的压缩率。而分组的策略又可以利用神经网络来确定。相比于普通的缓存技术,充分利用VC数据单元之间的关联性使得本申请的实施例可以更准确地进行分组和压缩。
基于同一发明构思,与上述实施例用于传输仿真数据的电子系统相对应的,本申请实施例还提供了一种用于传输仿真数据的方法。
图6示出了本申请实施例所提供的一种用于传输仿真数据的方法600的流程示意图。方法600可以由图3的电子系统300执行,更具体地,可以由电子系统300中的仿真器220执行。该方法600可以具体包括以下步骤。
在步骤S601中,仿真器220可以缓存逻辑系统设计(例如,图2的设计201)的仿真数据,仿真数据可以包括多个数据单元(例如,图3中的VC数据311至31n)。
在一些实施例中,仿真数据是仿真工具对设计仿真产生的。仿真数据包括由软件仿真器(simulator)产生的数据,对应的后续写入仿真数据库时调用软件接口、或由硬件仿真器(emulator)产生的数据,对应的后续写入仿真数据库时调用硬件通信接口。
仿真数据库可以是主机100的本地数据库,也可以是网络数据库。
在步骤S602中,仿真器220可以将缓存的多个数据单元(例如,图4B中的VC数据311至316)分组为至少一个数据包(例如,图4B中的分组VC数据41、分组VC数据42)。
在一些实施例中,多个数据单元以第一数据结构(例如,图4A中的数据结构410)存储。第一数据结构可以包括多个数据域。多个数据域可以包括第一数据域(例如,图4A中的生成时间411)以及第二数据域(例如,图4A中的信号名412或者信号值413)。
仿真器220可以在多个数据单元中确定具有相同第一数据域的至少两个数据单元(例如,图4B中具有相同生成时间的VC数据311至314),该至少两个数据单元形成一个数据包(例如,图4B中的分组VC数据41)。
本申请中的一些实施例中,仿真数据可以包括值变化数据。可以理解的是,值变化数据也可以被认为是波形数据。
该第一数据域可以包括值变化数据的生成时间、与值变化数据对应的信号的信号名、信号的信号值、信号的信号类型、或值变化数据的所属模块等。仿真器220可以根据上述中的相同的数据域来将多个数据单元分组为至少一个数据包。例如,设计201可以包括多个模块,而第一数据域可以是值变化数据的所属模块。这样,仿真器220可以将具有相同的所属模块的多个仿真数据单元分组到一个数据包,并且根据该所属模块的电路特性压缩所述数据包。
在本公开的一些实施例中,仿真器220可以是利用神经网络模型,根据所述多个数据单元的数据域将所述多个数据单元分为所述至少一个数据包。如上所述,神经网络模型可以根据多个数据单元的数据域中的值来进行分组。例如,神经网络可以在多种分组方式中确定将具有相同生成时间的数据单元进行合并会产生最佳的压缩效率,并进而将具有相同生成时间的数据单元进行合并。神经网络也可以在多种分组方式中确定将具有相同所属模块的数据单元进行合并会产生最佳的压缩效率。
在步骤S603中,仿真器220可以处理至少一个数据包(例如,图4B中的分组VC数据41)。
在本公开实施例中,仿真器220可以基于第一数据域确定第二数据结构(例如,图4C所示数据结构420)。如上所述,根据数据包中相同的第一数据域,仿真器220可以将该数据包中的多个VC数据进行合并。也就是说,基于第一数据域,仿真器220可以将至少两个数据单元的第一数据域合并为以第二数据结构存储的数据包。而第二数据结构则可以根据该相同的第一数据域来确定。如参考图4C所述的,第二数据结构420中的信号名可以被定义为多维数组,以储存该多个VC数据的多个信号名,第二数据结构420中的信号值也可以被定义为多维数组,以储存该多个VC数据的多个信号值。在完成数据的合并之后,仿真器220可以进一步压缩数据包。由于关联的数据被集中存储,数据包的压缩率可以得到提高。可以理解的是,在一些实施例中,仿真器220可以不对合并的数据进行压缩。
在步骤S604中,仿真器220可以将处理后的至少一个数据包(例如,图3中的压缩VC数据312)存储到仿真数据库302中。
为了实现对至少一个数据包的存储,可以是,调用仿真数据库的写接口;利用写接口的一次调用,将处理后的至少一个数据包经由写接口存储到仿真数据库,其中,写接口包括软件接口或硬件通信接口。
基于同一发明构思,与上述任意实施例方法相对应的,本公开实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开实施例的范围(包括权利要求)被限于这些例子;在本公开实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开实施例的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开实施例的具体实施例对本公开实施例进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开实施例的保护范围之内。

Claims (10)

1.一种传输仿真数据的方法,包括:
缓存逻辑系统设计的仿真数据,所述仿真数据包括多个数据单元;
将缓存的所述多个数据单元分组为至少一个数据包;
处理所述至少一个数据包;以及
将处理后的所述至少一个数据包存储到仿真数据库中。
2.根据权利要求1所述的方法,其中,所述多个数据单元以第一数据结构存储,所述第一数据结构包括多个数据域,所述多个数据域包括第一数据域以及第二数据域,并且将缓存的多个数据单元分组为至少一个数据包进一步包括:
在所述多个数据单元中确定具有相同第一数据域的至少两个数据单元,所述至少两个数据单元形成一个数据包。
3.根据权利要求2所述的方法,其中,处理所述至少一个数据包进一步包括:
基于所述第一数据域确定第二数据结构;
基于所述第一数据域,将所述至少两个数据单元合并为以所述第二数据结构存储的所述数据包;以及
压缩所述数据包。
4.根据权利要求3所述的方法,其中,将所述至少两个数据单元合并为以所述第二数据结构存储的所述数据包进一步包括:
将所述至少两个数据单元的第一数据域合并。
5.根据权利要求1所述的方法,其中,将处理后的所述至少一个数据包存储到仿真数据库进一步包括:
调用所述仿真数据库的写接口;
利用所述写接口的一次调用,将处理后的所述至少一个数据包经由所述写接口存储到所述仿真数据库。
6.根据权利要求5所述的方法,其中,所述仿真数据包括由软件仿真器产生的数据或由硬件仿真器产生的数据,所述写接口包括软件接口或硬件通信接口。
7.根据权利要求2所述的方法,其中,所述仿真数据包括值变化数据;所述第一数据域包括所述值变化数据的生成时间、与所述值变化数据对应的信号的信号名、所述信号的信号值、所述信号的信号类型、或所述值变化数据所属的模块。
8.根据权利要求7所述的方法,其中,将缓存的多个数据单元分组为至少一个数据包进一步包括:
利用神经网络模型,根据所述多个数据单元的第一数据域将所述多个数据单元分组为所述至少一个数据包。
9.一种电子系统,包括:
存储器,用于存储一组计算机指令;以及
至少一个处理器,用于执行所述计算机指令以使得所述电子系统执行如权利要求1-8的任一项所述的方法。
10.一种存储介质,其中,所述存储介质存储至少一组指令,所述至少一组指令被执行时使得电子系统执行如权利要求1-8任一项所述的方法。
CN202111034531.9A 2021-09-03 2021-09-03 一种传输仿真数据的方法、电子系统及存储介质 Pending CN113806431A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111034531.9A CN113806431A (zh) 2021-09-03 2021-09-03 一种传输仿真数据的方法、电子系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111034531.9A CN113806431A (zh) 2021-09-03 2021-09-03 一种传输仿真数据的方法、电子系统及存储介质

Publications (1)

Publication Number Publication Date
CN113806431A true CN113806431A (zh) 2021-12-17

Family

ID=78894679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111034531.9A Pending CN113806431A (zh) 2021-09-03 2021-09-03 一种传输仿真数据的方法、电子系统及存储介质

Country Status (1)

Country Link
CN (1) CN113806431A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114218880A (zh) * 2022-02-23 2022-03-22 飞腾信息技术有限公司 通用验证方法学环境搭建方法、芯片验证方法及验证系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102097018A (zh) * 2011-01-06 2011-06-15 吉林中软吉大信息技术有限公司 一种虚拟仿真通信系统的平台及方法
CN102521235A (zh) * 2010-10-28 2012-06-27 微软公司 连拍模式图像压缩和解压
CN102929827A (zh) * 2012-09-25 2013-02-13 浙江图讯科技有限公司 一种用于面向工矿企业的安全生产云服务平台的无线传感器数据采集集群
CN108701347A (zh) * 2016-03-28 2018-10-23 英特尔公司 用于多格式无损压缩的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521235A (zh) * 2010-10-28 2012-06-27 微软公司 连拍模式图像压缩和解压
CN102097018A (zh) * 2011-01-06 2011-06-15 吉林中软吉大信息技术有限公司 一种虚拟仿真通信系统的平台及方法
CN102929827A (zh) * 2012-09-25 2013-02-13 浙江图讯科技有限公司 一种用于面向工矿企业的安全生产云服务平台的无线传感器数据采集集群
CN108701347A (zh) * 2016-03-28 2018-10-23 英特尔公司 用于多格式无损压缩的方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114218880A (zh) * 2022-02-23 2022-03-22 飞腾信息技术有限公司 通用验证方法学环境搭建方法、芯片验证方法及验证系统

Similar Documents

Publication Publication Date Title
US11256431B1 (en) Storage system having a field programmable gate array
US10540250B2 (en) Reducing storage requirements for storing memory addresses and values
CN112632880B (zh) 用于逻辑系统设计的编译方法、电子设备及存储介质
US20150019834A1 (en) Memory hierarchy using page-based compression
US10180850B1 (en) Emulating applications that use hardware acceleration
CN112287569B (zh) 用于仿真逻辑系统设计的方法、电子设备及存储介质
US9973210B1 (en) Reduction of execution stalls of LZ4 decompression via parallelization
JP6345814B2 (ja) 高位合成を用いて高効率のエントロピーデコーダを実装するための方法、hlsツール、および記憶媒体
CN113569508B (zh) 基于id进行数据索引与访问的数据库模型构建方法及设备
CN107632779B (zh) 数据处理方法和装置、服务器
CN113806431A (zh) 一种传输仿真数据的方法、电子系统及存储介质
CN113742221A (zh) 生成测试用例的方法、电子设备及存储介质
WO2023193547A1 (zh) 用于生成和存储电路仿真过程中的波形数据的方法、电子设备和存储介质
US11176018B1 (en) Inline hardware compression subsystem for emulation trace data
US20130159591A1 (en) Verifying data received out-of-order from a bus
US10949588B1 (en) High speed, low hardware footprint waveform
CN118043821A (zh) 混合稀疏压缩
CN114328062A (zh) 校验缓存一致性的方法、装置和存储介质
US11106846B1 (en) Systems and methods for emulation data array compaction
WO2015190007A1 (ja) 情報処理装置、計算機システム、及びそのデータ処理方法
CN112131806A (zh) 验证设计的编译方法、电子设备及存储介质
CN113065302B (zh) 用于仿真逻辑系统设计的方法、仿真器及可读存储介质
Banerjee et al. Optimized simulation acceleration with partial testbench evaluation
US11573883B1 (en) Systems and methods for enhanced compression of trace data in an emulation system
CN112580297B (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