瞬态仿真波形存储方法、系统、设备及可读介质与流程

文档序号:32601416发布日期:2022-12-17 16:06阅读:74来源:国知局
瞬态仿真波形存储方法、系统、设备及可读介质与流程

1.本发明涉及芯片开发技术领域,特别是涉及一种高瞬态仿真波形存储方法、系统、设备及可读介质。


背景技术:

2.基于eda(electronicdesignautomation,电子设计自动化)仿真软件对电路进行仿真时,瞬态仿真波形存储是集成电路仿真的必要环节,在实验室模拟实际现场可能会发生的电压或电流波动,确保产品能够在实际环境中正常工作,需要对指定的信号波形进行存储并进行查看第一波形数据,通过第一波形数据来判断集成电路设计是否符合预期的设计要求。
3.在对电路进行仿真时,随着超大规模集成电路的发展,集成电路的复杂性越来越高,需要存储的仿真波形数据也越来越多,大量仿真波形数据存储会占用非常大的硬盘空间,瞬态仿真波形可能存在的单个信号为浮点数,对于仿真波形数据而言,大量的浮点数据不仅占据额外的存储空间且写入存储的时间也会极大增长,数据不易压缩,导致仿真速度随着仿真波形数据量的增加越来较慢。
4.因此亟需要一种更加高效的瞬态仿真波形存储方法减少存储占用空间和时间消耗。


技术实现要素:

5.基于现有技术中的缺陷,本技术提出来一种瞬态仿真波形存储方法、系统、设备及可读介质,具体包括:本技术的第一方面提供了一种瞬态仿真波形存储方法具体包括:选取第一波形数据集合中两个第一波形数据作为基础参考点,获取基础参考点对应的波形斜率;以波形斜率作为基准斜率插入若干个基准数据生成基准数据集合,基准数据集合的数值类型与第一波形数据集合的数值类型保持一致;根据基准数据集合中的基准数据检测第一波形数据集合中的第一波形数据,将满足预设存储条件的第一波形数据保存为第二波形数据,并根据第二波形数据更新基础参考点;对第二波形数据进行特征化处理获取预存储仿真波形数据;将预存储仿真波形数据压缩为瞬态仿真波形。
6.在上述第一方面的一种可能的实现中,选取第一波形数据集合中两个第一波形数据作为基础参考点包括:选取满足预设基准波形生成条件的至少两个第一波形数据的数值作为基础参考点。
7.在上述第一方面的一种可能的实现中,根据基准数据集合中的基准数据依次检测第一波形数据集合中的第一波形数据,将满足预设存储条件的第一波形数据保存为第二波
形数据包括:根据时间序列依次计算同一时间点对应的基准数据和第一波形数据的数值公差,根据数值公差筛选满足预设存储条件的第一波形数据为第二波形数据。
8.在上述第一方面的一种可能的实现中,根据数值公差筛选满足预设存储条件的第一波形数据为第二波形数据包括: 依次选取在同一时间点对应的基准数据与第一波形数据的数值公差大于等于预设公差阈值的第一波形数据,保存为第二波形数据。
9.在上述第一方面的一种可能的实现中,更新基础参考点包括:获取第二波形数据及第二波形数据对应的时间点;根据第二波形数据和第二波形数据对应的下一个时间点的第一波形数据更新基础参考点。
10.在上述第一方面的一种可能的实现中,对第二波形数据的数值进行特征化处理获取预存储仿真波形数据包括:对第二波形数据进行离散化处理,获取离散数据保存为预存储仿真波形数据。
11.在上述第一方面的一种可能的实现中,对预存储仿真波形数据进行压缩获取瞬态仿真波形包括:基于增量编码算法对离散数据进行编码,并对编码后数据采用无损压缩算法压缩获取瞬态仿真波形。
12.本技术的第二方面提供了一种瞬态仿真波形存储系统,具体包括:斜率获取单元,用于选取第一波形数据集合中两个第一波形数据作为基础参考点,获取基础参考点对应的波形斜率;基准数据生成单元,用于以波形斜率作为基准斜率插入若干个基准数据生成基准数据集合,基准数据集合的数值类型与第一波形数据集合的数值类型保持一致;第二波形数据获取单元,用于根据基准数据集合中的基准数据检测第一波形数据集合中的第一波形数据,保存满足预设存储条件的第一波形数据为第二波形数据,并根据第二波形数据更新基础参考点;特征化处理单元,用于对第二波形数据进行特征化处理获取预存储仿真波形数据;数据压缩单元,用于将预存储仿真波形数据压缩为瞬态仿真波形。
13.本技术的第三方面,提供了一种电子设备,具体包括:存储器,存储器用于存储处理程序;处理器,处理器执行处理程序时实现前述的瞬态仿真波形存储方法。
14.本技术的第四方面,提供了种可读存储介质,其特征在于,可读存储介质上存储有处理程序,处理程序被处理器执行时实现如前述的瞬态仿真波形存储方法。
15.与现有技术相比,本技术具有如下的有益效果:通过本技术提出的技术方案,能够根据第一波形数据的数值生成基础参考点,基于 基础参考点生成基准数据集合作为第一波形数据筛选的依据,将满足预设存储条件的第一波形数据保存为第二波形数据,从而将第一波形数据中存在的大量浮点数据即不满足预设存储条件的第一波形数据剔除,在不影响波形存储精度的前提下,减小了仿真波形数据点的数量个数,减少仿真波形数据量,提高数据压缩率,进而提升集成电路中仿真波形数据的仿真速度。
附图说明
16.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:图1根据本技术的实施例,示出了一种瞬态仿真波形存储方法的流程示意图;图2根据本技术的实施例,示出了一种第二波形数据获取方法的示意图;图3根据本技术的实施例,示出了另外一种第二波形数据获取方法的示意图;图4根据本技术的实施例,示出了一种瞬态仿真波形存储系统的框图。
具体实施方式
17.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
18.在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
19.为了解决现有技术中存在的线上购物过程中大量的浮点数据占据额外的存储空间且写入存储的时间也会极大增长,第二波形数据不易压缩,导致仿真速度随着第一波形数据的增加越来较慢等问题,本技术提出了一种瞬态仿真波形存储方法、系统、设备及可读介质。通过该种瞬态仿真波形存储方法,基于基础参考点生成基准数据集合作为第一波形数据筛选的依据,将满足预设存储条件的第一波形数据保存为第二波形数据,从而将第一波形数据中存在的大量浮点数据即不满足预设存储条件的第一波形数据剔除,减小了第二波形数据点的数量个数,减少第一波形数据量,提高数据压缩率,进而提升集成电路中第二波形数据的仿真速度。
20.具体地,如图1所示,根据本技术的实施例,示出了一种瞬态仿真波形存储方法的流程示意图,具体包括:步骤100:选取第一波形数据集合中两个第一波形数据作为基础参考点,获取基础参考点对应的波形斜率。可以理解的是,瞬态仿真波形存储的第一波形数据对应的可以为电压数据或者电流数据,第一波形数据集合中包括多个第一波形数据,第一波形数据的某些数值在整个数据集合中出现较大的偏移,该部分的数据在瞬时波形存储中明显不具备参考的价值和意义,因此需要在瞬时波形存储前对判断对当前时间点的第一波形数据进行判断,可以通过插值数据法,将可以忽略的第一波形数据进行剔除,保证既减少了第一波形数据,同时不影响波形精度。
21.于上述步骤100中,选取满足预设基准波形生成条件的至少两个第一波形数据的数值作为基础参考点。可以理解的是,采集的第一波形数据基于一定的预设时间生成,在该预设时间段内,可以选取第一波形数据集合中第一波形数据生成的时间点相邻的两个第一波形数据的数值作为基础参考点,选择合适的两个相邻时间点对应的第一波形数据的数值
作为参考点可以获取两个数值点之间的斜率,以便作为形成插值数据的依据。
22.于本技术的一些实施例中,本发明可根据实际情况选择适当时间点、适当数量位置点的第一波形数据的数值作为波形斜率计算的依据。
23.步骤200:以波形斜率作为基准斜率插入若干个基准数据生成基准数据集合,基准数据集合的数值类型与第一波形数据集合的数值类型保持一致。可以理解的是, 该相邻点的第一波形数据的数值计算获取的波形斜率作为插值数据形成的基准斜率,并沿着时间方向进行延伸,形成一个沿着时间序列延伸的插值波形,以便获取时间序列中其它的时间点的插值数据作为基准数据,以该基准数据形成基准数据的集合,进而可以获取与第一波形数据对应时间点的基准数据的数值。第一波形数据的数值在仿真测试中可以为电流数值或者电压数值等,此时需要基准数据集合的数值与第一波形数据数值保持一致,以便对根据基准数据对第一波形数据进行精准地筛选。
24.步骤300:根据基准数据集合中的基准数据检测第一波形数据集合中的第一波形数据,将满足预设存储条件的第一波形数据保存为第二波形数据,并根据第二波形数据更新基础参考点。可以理解的是,相同时间点的基准数据与第一波形数据的数值可能存在一定的差值,该差值的大小与基准斜率即基础参考点的选择具备相关性,对第一波形数据是否满足预设存储条件进行筛选时,需要基于相同时间的,合适的基准斜率生成的基准数据进行比对。
25.于本技术的一些实施例中,对应于不同时间点的基准数据的数值生成可以是基于不同的基准斜率生成。
26.于上述步骤300中,根据基准数据集合中的基准数据依次检测第一波形数据集合中的第一波形数据,保存满足预设存储条件的第一波形数据为第二波形数据包括:根据时间序列依次计算同一时间点对应的基准数据和第一波形数据的数值公差,根据数值公差筛选满足预设存储条件的第一波形数据保存为第二波形数据。可以理解的是,选中的基础数据点形成的基准数据与同一时间点对应第一波形数据的数值之间存在的数值公差作为第一波形数据是否可以保留的依据,因此选择基准波形的数值与将数值公差作为预设存储条件的依据,与本技术的一些实施例中,数值公差可以包括绝对公差或者相对公差,本领域技术人员可以根据具体的第一波形数据进行选择,在此不做限定。
27.进一步地,根据数值公差筛选满足预设存储条件的第一波形数据为第二波形数据包括:依次选取在同一时间点对应的基准数据与第一波形数据的数值公差大于等于预设公差阈值的条件下,保存第一波形数据为第二波形数据。可以理解的是,当同一时间点对应的基准数据与第一波形数据的数值公差过小的情况下,剔除该部分的冗余数据点对于第二波形数据额存储不会存在任何影响。
28.于上述步骤300中,更新基础参考点包括:获取第二波形数据对应的时间点;根据第二波形数据和第二波形数据对应的下一个时间点的第一波形数据更新基础参考点。可以理解的是,如果当前时间点的第一波形数据作为第二波形数据可以进行下一步预存储的情况下,此时为了保证第一波形数据存储的准确率,需要更新基准斜率,选择新的基准数据与第一波形数据进行比较以便实现更为精准的波形仿真数据存储,因此此时选择第二波形数
据和第二波形数据对应的下一个时间点的第一波形数据更新基础参考点,以便生成更新后的基准数据进行第一波形数据的筛选。
29.关于基于基础参考点和更新后的基础参考点根据第一波形数据的筛选实现第二波形数据的获取,下述将进行详细说明:具体地,如图2和3所示,根据本技术的实施例,示出了第二波形数据获取方法的示意图。
30.例如地,如图2所示,选择时间点相邻的两个第一波形数据数值点,选取a(t1、y1)和b(t2、y2)作为基础参考点,根据a和b的坐标点获取波形斜率作为基准斜率,基于基准斜率的延伸生外插波形作为基准第一波形数据,选中基准第一波形数据t3时刻中与第一波形数据c(t3、y3)的第一波形数据的数值进行数值公差判断,计算c c(t3、y3)点和c

c(t3’、y3’)点的y值距离,预设公差阈值设置为tol,可以通过判断fabs(y3-y3’) 与tol的比较结果:如果fabs(y3-y3’) 小于等于tol,则认为此时c (t3、y3)点的第一波形数据值,与前述a(t1、y1)和b(t2、y2)之间的数值公差过小,删除c (t3、y3)的数值对于第二波形数据的压缩存储不会产生影响,对于集成电路最终的验证也无影响,因此删除c (t3、y3)点,第二波形数据的存储中不包括c点的数据。
31.进一步地,此时由于并未引入新的第二波形数据因此基础参考点并不会更新,依然按照之前的基准斜率对应的对d(t4,y4)和d

(t4,y4’)的数值公差进行判断,确定是否保存d(t4,y4)作为第二波形数据进行预存储。
32.例如地,如图3所示,选择时间点相邻的两个第一波形数据数值点,选取a(t1、y1)和b(t2、y2)作为基础参考点,根据a和b的坐标点获取波形斜率作为基准斜率,基于基准斜率的延伸生外插波形作为基准第一波形数据,选中基准第一波形数据t3时刻中与第一波形数据c(t3、y3)的第一波形数据的数值进行数值公差判断,计算c c(t3、y3)点和c

c(t3’、y3’)点的y值距离,预设公差阈值设置为tol,可以通过判断fabs(y3-y3’) 与tol的比较结果:如果fabs(y3-y3’) 大于tol,则认为此时c (t3、y3)点的第一波形数据值,与前述a(t1、y1)和b(t2、y2)之间的数值公差足够大,删除c (t3、y3)的数值对于第二波形数据的压缩存储会产生影响,进而影响到集成电路最终的验证。因此不删除c (t3、y3)点,第二波形数据的存储中包括c点的数据,c(t3、y3)作为第二波形数据以便进行预存储,并基于c(t3、y3)和,d(t4、y4)作为新的基础参考点,更新基准斜率,进而获取新的基准数据对e(t5,y5)的第一波形数据进行进一步的筛选。
33.进一步地,通过上述实施例的第一波形数据依次筛选实现最终第二波形数据的获取。
34.步骤400:对第二波形数据进行特征化处理获取预存储仿真波形数据。可以理解的是,对于第二波形数据作为连续型数据进行分段后,同一个段内的观察点之间的差异便随之消失,同时在保留了数据的曲线特征的同时,同时将离散处理的波形数据赋予了相应的值, 并生成为预存储仿真波形数据以便获取下一步的编码压缩处理。
35.于上述步骤400中,对第二波形数据进行离散化处理,获取离散数据保存为预存储仿真波形数据。可以理解的是,数据离散化是指将连续的数据进行分段,使其变为一段离散
化的区间,本质上实现将间隔很大的点,映射到相邻的数组元素中,减少对空间的需求,也减少计算量,离散化的目标是为了把连续性问题转化成计算机能够处理的离散性问题。
36.例如地,选取第二波形的波形值y21,将其乘以某一放大系数x,并将结果进行取整,得到最终结果y21’,相对于对其他波形值也可以进行同样或者类似的取整操作,依次取整后的波形值顺序保存为离散数据,最终得到离散化后的波形结果保存为预存储仿真波形数据。
37.其中,放大系数x可以根据y21’的值需求进行设定为一个定值等,在此不做限定。
38.于本技术的一些实施例中,离散化处理可以包括分段的原则有基于等距离、等频率或优化的方法例如聚类划分、等宽划分、等频划分、基于信息熵的方法等对第二波形数据进行离散化处理,本领域技术人员也可以根据第二波形的数据特征选择合适的离散化数据处理方法,在此不做限定。步骤500:将预存储仿真波形数据压缩为瞬态仿真波形。可以理解的是,离散化后处理的第二波形数据可以通过高效压缩编码算法进一步实现存储空间的节约。
39.于上述步骤500中,基于增量编码算法对离散数据进行编码,并对编码后数据采用无损压缩算法压缩获取瞬态仿真波形。波形数据地压缩一般可以通过改变波形表示方式来可以达到,因此压缩和编码是分不开。高效压缩编码算法包括以下至少一种:运行长度编码算法(run length encoding)和增量编码算法(delta encoding)。压缩编码可以降低磁盘存储空间。由于数据类型一样仿真波形数据而言,可以使用高效的压缩编码进一步节约存储空间,例如无损压缩算法实现瞬态仿真波形的压缩保存。
40.例如地,为了实现增量编码可以选取第二波形第一个值y20作为基础值,及其之后波形值y22作为变化值,另δy = y20
ꢀ–ꢀ
y22,然后将y20的值替换为δy,同样地,可以对所有非基础值波形值都做相同或者类似处理,最终实现增量编码。
41.于本技术的一些实施例中,无损压缩可以采用zip压缩算法等实现,例如地,将第二波形所有点通过zip压缩算法进行压缩,完成无损压缩。
42.如图4所示,根据本技术的实施例,示出了一种瞬态仿真波形存储系统的框图具体包括:斜率获取单元10,用于选取第一波形数据集合中两个第一波形数据作为基础参考点,获取基础参考点对应的波形斜率;基准数据生成单元20,用于以波形斜率作为基准斜率插入若干个基准数据生成基准数据集合,基准数据集合的数值类型与第一波形数据集合的数值类型保持一致;第二波形数据获取单元30,用于根据基准数据集合中的基准数据检测第一波形数据集合中的第一波形数据,保存满足预设存储条件的第一波形数据为第二波形数据,并根据第二波形数据更新基础参考点;特征化处理单元40,用于对第二波形数据进行特征化处理获取预存储仿真波形数据;数据压缩单元50,用于将预存储仿真波形数据压缩为瞬态仿真波形。
43.可以理解的是,上述瞬态仿真波形存储系统中的各个功能模块执行与前述实施例中瞬态仿真波形存储方法相同的步骤流程,在此不做赘述。
44.在本技术的一些实施例中,还提供了一种电子设备。该种电子设备中包含存储器
和处理器,其中存储器用于对处理程序进行存储,处理器则根据指令对处理程序进行执行。当处理器对处理程序进行执行时,使得前述实施例中的瞬态仿真波形存储方法得以实现。
45.在本技术的一些实施例中,还提供了一种可读存储介质,该可读存储介质可以为非易失性可读存储介质,也可以为易失性可读存储介质。该可读存储介质中存储有指令,当该指令在计算机上运行时,使得包含该种可读存储介质的电子设备执行前述的瞬态仿真波形存储方法。
46.这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
47.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
48.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
49.附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
50.以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1