读写目标波形格式的波形文件的方法、设备及存储介质与流程

文档序号:31789614发布日期:2022-10-14 13:42阅读:148来源:国知局
读写目标波形格式的波形文件的方法、设备及存储介质与流程

1.本技术涉及计算机软件领域,尤其涉及一种读写目标波形格式的波形文件的方法、设备及存储介质。


背景技术:

2.在芯片设计工具领域,存在着验证工具繁多且碎片化的情况。每一个eda厂家都有自己的验证工具,这些工具都有自己的特定波形格式。例如,新思科技使用fsdb(fast signal database)格式,明导公司使用wlf(wave log file)格式,楷登电子使用shm格式,芯华章使用xedb格式。这些格式互相封闭且不兼容。这导致不同的验证工具无法兼容波形文件的读写。
3.为了使得验证工具可以彼此兼容,用户不得不使用未经压缩的通用波形格式vcd(value change dump)。vcd格式的波形文件存在着波形文件体积庞大、读写缓慢的问题。


技术实现要素:

4.本技术提出了一种读写目标波形格式的波形文件的方法、设备及存储介质。
5.本技术第一方面,提供了一种读写目标波形格式的波形文件方法,包括:接收读写所述目标波形格式的波形文件的请求;从用户处获取所述目标波形格式的接口信息;根据所述接口信息获取读写所述波形文件的接口模块;以及利用所述接口模块读写所述波形文件。
6.本技术第二方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
7.本技术第三方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于使所述计算机执行第一方面所述的方法。
8.本技术提供的读写目标波形格式的波形文件的方法、设备及存储介质,通过从用户处获取与目标波形格式对应的接口信息的方法,实现对目标波形格式的波形文件的操作。这里的目标波形格式可以包括其他厂家工具的波形文件的格式,因此实现了eda工具对多种格式的波形文件的兼容,从而提高用户的验证效率。
附图说明
9.为了更清楚地说明本技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
10.图1示出了根据本技术实施例的一种电子设备的结构示意图。
11.图2示出了根据本技术实施例的示例性仿真工具和调试工具的示意图。
12.图3a示出了根据本技术实施例的eda工具的示意图。
13.图3b示出了根据本技术实施例的另一eda工具的示意图。
14.图4示出了根据本技术实施例的一种读写目标波形格式的波形文件的方法的流程图。
具体实施方式
15.为使本技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本技术进一步详细说明。
16.需要说明的是,除非另外定义,本技术使用的技术术语或者科学术语应当为本技术所属领域内具有一般技能的人士所理解的通常意义。本技术中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
17.如上所述,通用波形格式vcd存在波形文件体积庞大、读写缓慢的问题。因此,使得eda工具可以兼容多种波形文件的读写就可以使得eda工具实现对其他厂家工具的波形文件的兼容,从而提高用户的验证效率。然而,在计算机软件领域,为了实现多种格式的文件的兼容通常需要事先掌握多种格式的格式信息,并根据格式信息进行文件转换。由于eda工具的碎片化,各个厂家的波形文件的格式信息是高度机密的。
18.因此,如何在不知晓格式信息的情况下,使得eda工具兼容多种波形文件的读写是一个亟待解决的问题。
19.图1示出了根据本技术实施例的一种电子设备100的结构示意图。电子设备100例如可以是计算机主机。该电子设备100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在设备内部的通信连接。
20.处理器102可以是中央处理器(central processing unit,cpu)、图像处理器、神经网络处理器(npu)、微控制器(mcu)、可编程逻辑器件、数字信号处理器(dsp)、应用专用集成电路(application specific integrated circuit,asic)或者一个或多个集成电路。处理器102可以用于执行与本技术描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器102a、102b和102c。
21.存储器104可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。例如,如图1所示,存储的数据可以包括程序指令(例如,用于实现本技术的技术方案的程序指令)以及待处理的数据(例如,存储器104可以存储在编译过程产生的临时代码)。处理器102也可以访问存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(ram)、只读存储器(rom)、光盘、磁盘、硬盘、固态硬盘(ssd)、闪存、存储棒
等。
22.网络接口106可以配置为经由网络向电子设备100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、wifi、近场通信(nfc)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(nic)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
23.外围接口108可以配置为将电子设备100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
24.总线110可以被配置为在电子设备100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(usb端口、pci-e总线)等。
25.需要说明的是,尽管上述设备仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本技术实施例方案所必需的组件,而不必包含图中所示的全部组件。
26.图2示出了根据本技术实施例的示例性仿真工具202和调试工具200的示意图。仿真工具202和调试工具200可以是运行在设备100上的计算机程序。
27.在芯片设计领域,通常可以利用仿真工具对一个设计进行仿真。图2示出的示例性仿真工具202可以包括编译器120和仿真器220。编译器120可以将逻辑系统设计210编译为目标代码204,仿真器220可以根据目标代码204进行仿真,并将仿真结果206(例如,波形文件)输出。
28.调试工具200也可以读取仿真结果206(例如,波形文件)。调试工具200还可以生成各种图形化界面以方便用户的调试工作。用户可以向调试工具200发出调试命令208(例如,运行验证系统210到某个时刻),调试工具200则将该调试命令施加到仿真工具202以相应地执行。
29.可以理解的是,除了与软件仿真工具(例如,galaxsim)连接,调试工具200还可以与硬件仿真工具(emulator)连接以进行调试。
30.在本技术中讨论的eda工具可以包括软件仿真工具、硬件仿真工具、调试工具在内的各种工具,只要该eda工具需要读写波形文件就可以使用本技术提供的方法、设备、以及存储介质,而不局限于本技术给出的示例。
31.图3a示出了根据本技术实施例的eda工具300的示意图。
32.eda工具300可以包括一个或多个接口(例如,接口3001和3002),用于调用接口模块302并与之进行数据交互。接口模块302可以包括一个或多个内部接口(例如,接口3021和3022),用于与eda工具交互数据;以及至少一个外部接口(例如,接口3023),用于读写波形文件304。
33.与通常的技术不同,eda工具300本身并不支持对波形文件304的读写,也不知晓波形文件304的任何技术细节。
34.作为一个示例,eda工具300(例如,非芯华章eda工具)为了实现对波形文件304(例如,芯华章的xedb波形文件)的支持,可以在eda工具300中预留接口3001和3002,并且由用户提供与预留接口3001和3002对应的接口信息,诸如库(例如,动态库或静态库)、接口模块的库的地址、接口模块的函数信息、目标波形格式的名称、或目标波形格式的格式信息之类。该接口信息可以用于实现对波形文件304的操作。
35.在一些实施例中,用户输入的接口信息可以包括接口模块302的库的地址。eda工具300根据接口模块302的库的地址,可以调用接口模块302的库;以及可以链接接口模块302的库以生成接口模块302。
36.在一些实施例中,eda工具300可以提供图形用户界面(gui),用于允许用户在该gui中输入上述接口信息。例如,用户可以输入xedb读写模块的库在本地主机中的地址,用户也可以输入调用该库所需的函数以及函数信息等。例如,用户可以输入函数名、函数涉及的参数、变量等。在一些实施例中,调用该库所需的函数可以被实例化为上述预留接口3001和3002。
37.在一些实施例中,eda工具300可以提供命令行界面,允许用户通过命令行的方式来输入接口信息。在一些实施例中,eda工具300可以允许用户通过导入文件的方式来输入接口信息。本技术并不限制用户输入接口信息的方式。
38.eda工具300针对用户提供的接口信息可以重新进行接口模块302的链接,从而实现完整的波形读写功能。在图3a的示例中,eda工具300需要根据用户提供的接口信息进行链接甚至是重新编译,这容易导致eda工具300出现稳定性问题。为了增强eda工具对多种波形格式的兼容性以及运行时的稳定性,本技术实施例进一步提供一种技术方案。
39.图3b示出了根据本技术实施例的另一eda工具310的示意图。
40.eda工具310可以包括通用接口311,用于在eda工具310本体和接口模块312之间交互数据。通用接口311还可以经由接口3121和3122与接口模块312连接。通用接口311与eda工具310之间的连接是固定的,这意味着,无论接口模块312如何变化,eda工具310不会感受到任何变化。具体实现方式如下。
41.在一些实施例中,通用接口311可以包括如下的函数。
42.generalwriter*initgeneralwriter(bytet*file_name,filetype file_type)
43.{
44.return(generalwriter*)file_open((parameter a,parameter b)file_name,xedb_type file_type))
45.}
46.这样,通过用户向eda工具310输入诸如库(例如,动态库或静态库)、函数(例如,以上示例代码中的file_open)以及函数信息(例如,以上示例代码中的parameter a/b)之类的接口信息,eda工具310可以允许用户将通用接口311在事实上转换为与波形文件304对应的目标接口。可以理解的是,尽管上述代码仅为写接口的部分代码,eda工具310可以使用类似的方式实现读接口。
47.在一些实施例中,通用接口311可以内置多个通用函数,以适配多种不同格式的波形文件。通用接口311可以根据不同的波形文件来使用不同的通用函数进行适配。该通用函数的输入参数可以包括接口信息。
48.用户可以与图3a类似地使用gui、命令行、或导入文件的方式来输入该接口信息。
49.用户可以将通用接口311初始化(例如,编译)成为库(例如,动态库或者静态库),从而允许eda工具310链接该通用接口311的库,以实现eda工具310对波形文件304的读写。在一些实施例中,该通用接口311可以是一个动态链接库,该动态链接库可以包括接口模块312的库。因此,eda工具310可以通过链接通用接口311的库来链接接口模块312的库,以生成接口模块312。
50.由于通用接口311与eda工具310的链接是预置的,所以利用通用接口311的库可以实现eda工具310在读写波形文件时的稳定。
51.本技术实施例还提供一种读写目标波形格式的波形文件的方法。
52.图4示出了根据本技术实施例的一种读写目标波形格式的波形文件的方法400的流程图。方法400可以由图1的电子设备100执行,更具体地,可以由在电子设备100上运行的eda工具执行。方法400可以包括如下步骤。
53.在步骤402,eda工具可以接收读写该目标波形格式的波形文件(例如,图3a或3b的波形文件304)的请求。这里的读写是指读取或者写入。
54.在步骤404,eda工具可以从用户处获取该目标波形格式的接口信息。该接口信息可以用于实现对波形文件的操作。例如,该接口信息可以包括该接口模块的库的地址、该接口模块的函数信息、该目标波形格式的名称、或该目标波形格式的格式信息的至少一个。
55.在一些实施例中,为了从用户处获取该目标波形格式的接口信息,eda工具可以向用户提供一个通用接口函数,该通用接口函数的输入参数可以包括该接口信息。eda工具根据获取的该接口信息可以初始化该通用接口函数。在一些实施例中,为了从用户处获取该目标波形格式的接口信息,eda工具可以向用户提供图形界面,用于用户输入该接口信息。
56.在步骤406,eda工具可以根据该接口信息获取读写该波形文件的接口模块(例如,图3a的接口模块302或图3b的接口模块312)。
57.在一些实施例中,响应于该接口信息包括该接口模块的库的地址,dea工具根据该接口信息可以获取读写该波形文件的接口模块。例如,eda工具根据该接口模块的库的地址,可以调用该接口模块的库。eda工具可以链接该接口模块的库以生成该接口模块(例如,图3a的接口模块302)。
58.在一些实施例中,eda工具根据初始化的通用接口函数可以生成通用接口(例如,图3b的通用接口311)。该通用接口可以包括该接口模块(例如,图3b的接口模块312)以及用于连接到eda工具的内部接口。
59.在一些实施例中,该通用接口可以是一个动态链接库。该动态链接库可以包括该接口模块的库。
60.在步骤408,eda工具可以利用该接口模块读写该波形文件。
61.这样,利用由用户提供的接口信息来获取的接口模块,eda工具可以根据需要读写任何支持的波形格式。
62.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述方法。
63.本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以
由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
64.上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
65.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术的不同方面的许多其它变化,为了简明它们没有在细节中提供。
66.另外,为简化说明和讨论,并且为了不会使本技术难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本技术难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本技术的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本技术的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本技术。因此,这些描述应被认为是说明性的而不是限制性的。
67.尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
68.本技术旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1