CN113868189B - 一种波形文件处理方法、存储介质和装置 - Google Patents
一种波形文件处理方法、存储介质和装置 Download PDFInfo
- Publication number
- CN113868189B CN113868189B CN202111456118.1A CN202111456118A CN113868189B CN 113868189 B CN113868189 B CN 113868189B CN 202111456118 A CN202111456118 A CN 202111456118A CN 113868189 B CN113868189 B CN 113868189B
- Authority
- CN
- China
- Prior art keywords
- waveform
- file
- value
- processing
- bits
- 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.)
- Ceased
Links
- 238000003860 storage Methods 0.000 title claims abstract description 27
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000007906 compression Methods 0.000 claims abstract description 13
- 230000006835 compression Effects 0.000 claims abstract description 13
- 230000002688 persistence Effects 0.000 claims abstract description 11
- 230000006399 behavior Effects 0.000 claims abstract description 4
- 238000012795 verification Methods 0.000 claims description 7
- 230000008901 benefit Effects 0.000 abstract description 7
- 230000008520 organization Effects 0.000 abstract description 5
- 238000004088 simulation Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 16
- 238000013461 design Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013144 data compression Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012942 design verification Methods 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4093—Variable length to variable length coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种波形文件处理方法、存储介质和装置,方法包括存储步骤,所述存储步骤包括以下子步骤:获取波形文件,所述波形文件包括至少一个波形信号;以波形信号为根据分配一个基础索引值后,以可变长编码的方式在内存中将所述波形文件编码成可解析的序列化结构体;当序列化结构体占用的内存使用量达到阈值后,触发当前序列化结构体的压缩与持久化行为,得到波形处理文件。本发明采用独特的组织方式在本地或远端生产特定格式的波形文件,使得基于该格式波形数据库文件进行后续的存储读取及调试操作在效率上有很大提升,同时对比现有业内国外垄断波形文件标准,文件大小缩小10倍以上,访问效率提高10倍,且波形文件越大优势越明显。
Description
技术领域
本发明涉及一种波形文件处理方法、存储介质和装置。
背景技术
SoC是System on Chip的缩写,直译是“芯片级***”,通常简称“片上***”。因为涉及到“Chip”,SoC身上也会体现出“集成电路”与“芯片”之间的联系和区别,其相关内容包括集成电路的设计、***集成、芯片设计、生产、封装、测试等等。跟“芯片”的定义类似,SoC更强调的是一个整体,在集成电路领域,给它的定义为:由多个具有特定功能的集成电路组合在一个芯片上形成的***或产品,其中包含完整的硬件***及其承载的嵌入式软件。这意味着,在单个芯片上,就能完成一个电子***的功能,而这个***在以前往往需要一个或多个电路板,以及板上的各种电子器件、芯片和互连线共同配合来实现。SoC更多的是对处理器(包括CPU、DSP)、存储器、各种接口控制模块、各种互联总线的集成,其典型代表为手机芯片。
SoC定义的基本内容主要在两方面:其一是它的构成,其二是它形成过程。***级芯片的构成可以是***级芯片控制逻辑模块、微处理器/微控制器CPU 内核模块、数字信号处理器DSP模块、嵌入的存储器模块、和外部进行通讯的接口模块、含有ADC /DAC 的模拟前端模块、电源提供和功耗管理模块,对于一个无线SoC还有射频前端模块、用户定义逻辑(它可以由FPGA 或ASIC实现)以及微电子机械模块,更重要的是一个SoC 芯片内嵌有基本软件(RDOS或COS以及其他应用软件)模块或可载入的用户软件等。***级芯片形成或产生过程包含以下三个方面:1)基于单片集成***的软硬件协同设计和验证;2) 再利用逻辑面积技术使用和产能占有比例有效提高即开发和研究IP核生成及复用技术,特别是大容量的存储模块嵌入的重复应用等;3)超深亚微米(VDSM)、纳米集成电路的设计理论和技术。
而随着数字芯片***(SOC)规模变得越来越大,芯片内部集成更多的晶体管,软硬件仿真工具的仿真规模也指数级增长,波形文件作为数字芯片***主要仿真输出结果和调试目标,波形文件大小也在不断增加(数百GB或TB级别),主要有以下不足:
(1)目前波形工具只支持本地存储、加载与调试。若波形文件巨大(TB级别)则需要额外存储容量和拷贝时间,从而加大了调试成本。(2)目前波形工具具有波形文件较大、加载速度一般、没有缓存功能的问题。(3)目前波形调试方法只支持仿真完毕后对波形文件进行调试,在仿真过程中产生的波形内容不能即时查看。
发明内容
本发明的目的在于克服现有技术的不足,提供一种波形文件处理方法、存储介质和装置。
本发明的目的是通过以下技术方案来实现的:
本发明的第一方面,提供一种波形文件处理方法,包括存储步骤,所述存储步骤包括以下子步骤:
获取波形文件,所述波形文件包括至少一个波形信号;
以波形信号为根据分配一个基础索引值后,以可变长编码的方式在内存中将所述波形文件编码成可解析的序列化结构体;
当序列化结构体占用的内存使用量达到阈值后,触发当前序列化结构体的压缩与持久化行为,得到波形处理文件。
进一步地,所述波形信号包括若干随时间变化的波形值,索引值为时间索引;所述基础索引值为第一个波形值的基础时间,后续波形值的索引值为其前一个波形值索引值的递加时间。
进一步地,所述存储步骤还包括以下子步骤:
当序列化结构体占用的内存使用量达到阈值后,将索引值按照与波形信号处理相同的方式进行持久化;处理后的索引值作为所述波形处理文件的一部分。
进一步地,所述以可变长编码的方式在内存中将所述波形文件编码成可解析的序列化结构体,包括:
将所述波形值二进制化;
判断二进制化的数值是否超过七位,若超过则将前七位和后七位的数值整体调换顺序;
完成上述操作后,后七位或唯一七位的数值头增加无后续标志位,在前七位的数值头增加有后续标志位;所述有后续标志位用于对二进制化的数值超过七位的波形值继续读取;
得到将波形值转换为八位或十六位的可解析的序列化结构体。
进一步地,所述存储步骤还包括以下子步骤:
将持久化后的所述波形处理文件存储于本地或远端。
进一步地,所述波形处理文件包括:
Head段:为波形处理文件头部,包括魔数、大小端信息、配置段大小、验证值;
Config段:为整个波形文件的主要参数段,包括波形数量、起始位置、大小、压缩算法类型;
Data段:为重新编码压缩的波形数据段;
Index段:为包含波形信号名称和该名称对应波形数据的位置索引值。
进一步地,所述方法还包括在所述存储步骤之后的波形文件访问步骤,所述波形文件访问步骤包括以下子步骤:
获取波形处理文件的索引结构,并根据波形处理文件中的其他参数条件选择对应波形信号;
对波形处理文件进行与编码方式对应的解码方式进行解码后,显示波形信号。
进一步地,所述方法还包括在所述存储步骤之后的波形文件对比步骤,所述波形文件对比步骤包括以下子步骤:
获取波形处理文件的索引结构,并根据波形处理文件中的其他参数条件选择两个波形信号;
对两个波形信号进行比对。
本发明的第二方面,提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行所述的一种波形文件处理方法的步骤。
本发明的第三方面,提供一种装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行所述的一种波形文件处理方法的步骤。
本发明的有益效果是:
(1)在本发明的一示例性实施例中,对在仿真工具或者其他第三方工具或者现有其他格式的波形文件的仿真信号的基础之上,以信号为根据分配一个索引值后,编码为一个可解析的序列化结构体,该结构体存储在内存中以加快信号数据的处理速度,并按照顺序不断追加新生成的信号变化值;并且采用独特的组织方式在本地或远端生产特定格式的波形文件,使得基于该格式波形数据库文件进行后续的存储读取及调试操作在效率上有很大提升,同时对比现有业内国外垄断波形文件标准,文件大小缩小10倍以上,访问效率提高10倍,且波形文件越大优势越明显。
(2)在本发明的又一示例性实施例中,与波形数据类似地,所有波形信号索引值(时间轴)同样以可变编码的方式另行存储为独立的序列化结构体。由于可变长度算法是将在一定范围内变化的数据用不同长度的字节表示,即对数值较小的数据用较短的字长表示,二数值较大或较复杂的数据用较长的字长表示出来,相对于定长编码采用最大数值需要的字长来表示数据的方法,该编码方案通常能有效减少数据存储空间。并且,由于所述基础索引值为第一个波形值的基础时间,后续波形值的索引值为其前一个波形值索引值的递加时间,因此每个波形值对应的索引值都为数值较小的数,因此采用可变长编码可以进一步在该内容上减少数据存储空间。
(3)在本发明的又一示例性实施例中,公开了以可变长编码的方式在内存中将所述波形文件编码成可解析的序列化结构体的具体步骤,其优点在于:1. 有效减少波形数据存储空间,2.加快波形数据读取速度。
(4)在本发明的又一示例性实施例中,经过持久化后的波形处理文件可以直接存储于本地,方便后续处理;或者存储于远端(例如云端或服务器端),方便多个本地端同时查看。而在又一示例性实施例中,采用server-browser方式对波形信号进行存储和读取,以提高波形存储速度的方式,直接提高了芯片的仿真速度,同时极大减少了巨大波形文件的调试成本,并保证了波形文件的一致性。
(5)在本发明的又一示例性实施例中,由于同一个序列化结构体(波形处理文件)中可以包括多个波形信号的内容,或者多个序列化结构体(波形处理文件)的组成仅包括一个波形信号的内容,因此需要在波形处理文件中进行说明。
(6)在本发明的又一示例性实施例中,波形查看器对本地或远端波形文件发起查看请求(即打开波形文件,指定查看文件或信号内容),获取波形文件的参数配置结构和总索引数据结构,然后根据需要设置查询条件对波形文件进行查看、调试和操作,区别于传统的波形查看软件,此过程中波形查看器对波形文件只读取有用信息到内存中缓存,而非全部波形文件数据。并且波形查看器对波形文件的读取过程保持远程和本地的存取接口一致性,即用户从操作方式上感觉不到波形文件在本地还是远端存储,同时通过初次访问信号的缓存,及LRU(Least Recently Used)替换策略加速波形数据的读取过程。
(7)在本发明的又一示例性实施例中,还可以包括波形文件的对比,即芯片设计验证过程中,目标波形文件设置为Golden文件,工程师调试目标为调试当前设计以输出符合Golden波形信号为准,所以每次仿真后的波形数据需要与目标Golden波形进行对比;另外,波形文件的管理及仿真调试波形文件与Golden的交互;根据波形数据的组织方式,可以设置对特定波形信号、时间范围、触发信息等条件。从而保证Golden文件的一致性并减少文件拷贝移动次数。
本发明又一示例性实施例中的存储介质和装置也包括相同的优点。
附图说明
图1为本发明一示例性实施例提供的波形文件处理方法的流程图;
图2为本发明一示例性实施例提供的波形文件处理方法的在本地或远端生产特定格式的波形文件的流程示意图;
图3为本发明又一示例性实施例提供的波形文件处理方法的流程图;
图4为本发明一示例性实施例提供的波形处理文件的结构示意图;
图5为本发明又一示例性实施例提供的波形文件处理方法的流程图;
图6为为本发明一示例性实施例提供的波形文件处理方法的波形查看器对本地或远端波形文件发起查看请求的示意图;
图7为本发明又一示例性实施例提供的波形文件的波形处理文件访问的示意图;
图8为本发明又一示例性实施例提供的波形文件处理方法的流程图;
图9为本发明又一示例性实施例提供的波形文件的波形处理文件对比的示意图。
具体实施方式
下面结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,属于“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方向或位置关系为基于附图所述的方向或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,属于“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。此外,属于“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
首先对词语进行解释:
SoC:是System on Chip的缩写,直译是“芯片级***”,通常简称“片上***”或者“数字芯片***”。在集成电路领域,给它的定义为:由多个具有特定功能的集成电路组合在一个芯片上形成的***或产品,其中包含完整的硬件***及其承载的嵌入式软件。这意味着,在单个芯片上,就能完成一个电子***的功能,而这个***在以前往往需要一个或多个电路板,以及板上的各种电子器件、芯片和互连线共同配合来实现。
软硬件仿真:
(1)软件仿真:这种方法主要是使用计算机软件来模拟运行,实际的单片机运行因此仿真与硬件无关的***具有一定的优点。用户不需要搭建硬件电路就可以对程序进行验证,特别适合于偏重算法的程序。软件仿真的缺点是无法完全仿真与硬件相关的部分,因此最终还要通过硬件仿真来完成最终的设计。
(2)硬件仿真:使用附加的硬件来替代用户***的单片机并完成单片机全部或大部分的功能。使用了附加硬件后用户就可以对程序的运行进行控制,例如单步,全速,查看资源断点等。硬件仿真是开发过程中所必须的。
波形文件:波形文件则为数字芯片***主要仿真输出结果和调试目标,可以包括仿真工具(如emulator 或者simulator 或者virtual prototype)产生,或者其他波形文件(如VCD文件)。
在现有技术中,随着数字芯片***(SoC)规模变得越来越大,芯片内部集成更多的晶体管,由于软硬件仿真工具的仿真规模指数级增长,波形文件大小也在不断增加(数百GB或TB级别),因此存在以下问题:(1)目前波形工具只支持本地存储、加载与调试;若波形文件巨大(TB级别)则需要额外存储容量和拷贝时间,从而加大了调试成本。(2)目前波形工具具有波形文件较大、加载速度一般、没有缓存功能的问题。(3)目前波形调试方法只支持仿真完毕后对波形文件进行调试,在仿真过程中产生的波形内容不能即时查看。
参见图1,图1示出了本发明的第一方面,提供一种波形文件处理方法,包括存储步骤,所述存储步骤包括以下子步骤:
S101:获取波形文件,所述波形文件包括至少一个波形信号;
S103:以波形信号为根据分配一个基础索引值后,以可变长编码的方式在内存中将所述波形文件编码成可解析的序列化结构体;
S105:当序列化结构体占用的内存使用量达到阈值后,触发当前序列化结构体的压缩与持久化行为,得到波形处理文件。
在步骤S101中,所述波形文件可以由仿真工具(如emulator 或者simulator 或者virtual prototype)产生,或者是其他波形文件(如VCD文件);并且波形文件的获取方式可以是本地或者是远端传输的,即波形信号随时间变化的数据可以通过网络通讯方式,传输到其他存储主机,然后再进行以下的波形数据处理过程。因此,在该示例性实施例中,采用server-browser方式对波形信号进行存储和读取,以提高波形存储速度的方式,直接提高了芯片的仿真速度,同时极大减少了巨大波形文件的调试成本,并保证了波形文件的一致性。
在步骤S103中,以信号为根据分配一个索引值后,编码为一个可解析的序列化结构体,该结构体存储在内存中以加快信号数据的处理速度,并按照顺序不断追加新生成的信号变化值。更为具体地,对波形数据采用可变长编码方式,可变长编码算法是将在一定范围内变化的数据用不同长度的字节表示,即对数值较小的数据用较短的字长表示,二数值较大或较复杂的数据用较长的字长表示出来,相对于定长编码采用最大数值需要的字长来表示数据的方法,该编码方案通常能有效减少数据存储空间。
在步骤S105中,采用可选的无损数据压缩算法:LZ4和ZSTD等,同时在波形文件中的配置段指明下一数据段采用的压缩算法类型,鉴于LZ4的解压缩速度较快和ZSTD较高压缩率的差别,用户可再使用过程中权衡。根据使用内存阈值的设置,当内存使用量达到阈值后,触发当前序列化的波形信号数据的持久化(即保持到非易失的存储体中,如磁盘或SSD),所有结构体序列化之后,持久化之前都是用无损压缩算法(如LZ4、ZSTD等等)进行数据压缩。
因此,本示例性实施例对在仿真工具或者其他第三方工具或者现有其他格式的波形文件的仿真信号的基础之上,采用独特的组织方式在本地或远端生产特定格式的波形文件(如图2所示),使得基于该格式波形数据库文件进行后续的存储读取及调试操作在效率上有很大提升,同时对比现有业内国外垄断波形文件标准,文件大小缩小10倍以上,访问效率提高10倍,且波形文件越大优势越明显。
更优地,在一示例性实施例中,所述波形信号包括若干随时间变化的波形值,索引值为时间索引;所述基础索引值为第一个波形值的基础时间,后续波形值的索引值为其前一个波形值索引值的递加时间。
具体地,在该示例性实施例中,进一步限定波形信号为随时间变化的波形值,索引值为时间索引,即步骤S103可替换为:
S103’:随时间变化的信号数据通过可变长编码方法,以信号为根据分配一个索引值后,编码为一个可解析的序列化结构体;其中,该结构体存储在内存中以加快信号数据的处理速度,并随时间累加不断追加新生成的信号变化值。
更优地,在一示例性实施例中,所述存储步骤还包括以下子步骤:
S106:当序列化结构体占用的内存使用量达到阈值后,将索引值按照与波形信号处理相同的方式进行持久化;处理后的索引值作为所述波形处理文件的一部分。
具体地,在本示例性实施例中,与波形数据类似地,所有波形信号索引值(时间轴)同样以可变编码的方式另行存储为独立的序列化结构体。由于可变长度算法是将在一定范围内变化的数据用不同长度的字节表示,即对数值较小的数据用较短的字长表示,二数值较大或较复杂的数据用较长的字长表示出来,相对于定长编码采用最大数值需要的字长来表示数据的方法,该编码方案通常能有效减少数据存储空间。
并且,由于所述基础索引值为第一个波形值的基础时间,后续波形值的索引值为其前一个波形值索引值的递加时间,因此每个波形值对应的索引值都为数值较小的数(例如1),因此采用可变长编码可以进一步在该内容上减少数据存储空间。
更优地,在一示例性实施例中,所述以可变长编码的方式在内存中将所述波形文件编码成可解析的序列化结构体,包括:
S10301:将所述波形值二进制化;
S10303:判断二进制化的数值是否超过七位,若超过则将前七位和后七位的数值整体调换顺序;(满足字节顺序的要求)
S10305:完成上述操作后,后七位或唯一七位的数值头增加无后续标志位,在前七位的数值头增加有后续标志位;所述有后续标志位用于对二进制化的数值超过七位的波形值继续读取;
S10307:得到将波形值转换为八位或十六位的可解析的序列化结构体。
具体地,在该示例性实施例中,使用每个字节的第一位来标识是否需要继续向后读,每个字节低7位用于实际的编码,所以0到127之间的数字都可以用一个字节表示。当数值范围超过该字节7位所能表示范围后,向后再读取一个字节。
以波形值“300”为例,编码的过程为:
S10301’:将波形值“300”二进制化,得到“1 0010 1100”(256+32+8+4=300);
S10303’:判断二进制化的数值(“1 0010 1100”)是否超过七位,若超过则将前七位和后七位的数值整体调换顺序,即调整后的字节序为“010 1100 000 0010 ”;
S10305:完成上述操作后,后七位或唯一七位的数值头增加无后续标志位,在前七位的数值头增加有后续标志位;所述有后续标志位用于对二进制化的数值超过七位的波形值继续读取;即对“010 1100 000 0010 ”增加标志位后,可以得到序列化结构体“10101100 0000 0010 ”;
S10307:得到将波形值转换为八位或十六位的可解析的序列化结构体“1010 11000000 0010 ”。
同样的,对应的解码过程则为:先读一个字节,如果该字节的高位第一个bit为1,则继续读;如果为0,则停止。如果该字节的高位第一个bit为1,则继续读;如果为0,则停止。移除每个字节的第一个bit,逆置剩余的bit分组,重新组合后得到原始的数据。
例如(用Litte-Endian(小端)字节序表示):
300用后者序列化的结果是1010 1100 0000 0010,运算过程如下所示:
1010 1100 0000 0010->010 1100 000 0010(去标志位)->000 0010 010 1100(调整字节序)-> 1 0010 1100 ->256+32+8+4=300(计算值)。
具体地,本申请采用该种方式形成可解析的序列化结构体,以上例所示,所存数值只需要两个字节空间(16位)且可存储任意大小数值,而传统方法定义为短整型(shortint)需要两个字节且存储范围仅为-32768~32767,定义为整型(int)则需要四个字节范围为-2147483648~2147483647,而一般波形数据数值有一定范围的波动特点,所以采用该方式具有存储灵活,减少数据空间的优点。
更优地,在一示例性实施例中,如图3所示,所述存储步骤还包括以下子步骤:
S107:将持久化后的所述波形处理文件存储于本地或远端。
具体地,在该示例性实施例中,经过持久化后的波形处理文件可以直接存储于本地,方便后续处理;或者存储于远端(例如云端或服务器端),方便多个本地端同时查看。
更优地,在一示例性实施例中,如图4所示,所述波形处理文件包括:
Head段:为波形处理文件头部,大小固定,包括魔数、大小端信息、配置段大小、验证值;
Config段:为整个波形文件的主要参数段,包括波形数量、起始位置、大小、压缩算法类型;
Data段:为重新编码压缩的波形数据段;
Index段:为包含波形信号名称和该名称对应波形数据的位置索引值。
具体地,由于同一个序列化结构体(波形处理文件)中可以包括多个波形信号的内容,或者多个序列化结构体(波形处理文件)的组成仅包括一个波形信号的内容,因此需要在波形处理文件中进行说明。因此,在该示例性实施例中:
一个Head段(头部段)中包括的参数具体含义包括:魔数指的是“固定数值,以快速识别文件属于特定格式波形文件,本实例中魔数为YWS!”,大小端信息指的是“字节序的表示方式”;配置段大小指的是“表示下面Config段的字节长度”;验证值指的是“对Head段和Config段的哈希值,目的是防止篡改该段数据”。
一个Config段(配置段)中包括的参数具体含义包括:波形数量指的是整个序列化结构体内的波形数量(与图2中Data 1-N和index的数量相同);起始位置指的是“某段波形数据存储在文件中的开始位置”;大小指的是“某段波形数据最终的存储字节长度”;压缩算法类型指的是持久化之前的压缩算法采用可选的无损数据压缩算法,例如LZ4和ZSTD,方便后续解压缩;
多个Data段(数据段)中包括的参数具体含义包括:重新编码压缩的波形数据段指的即是“所述序列化结构体”,即由步骤S105得到;
多个Index段(索引段)中包括的参数具体含义包括:波形信号名称指的是“波形信号本身的名字”,其由步骤S101中“获取波形文件”的步骤可以获取;该名称对应波形数据的位置索引值至少包括步骤103中的基础索引值,优选还可以包括103’中的或106中的时间索引值。
更优地,在一示例性实施例中,所述方法还包括在所述存储步骤之后的波形文件访问步骤S109,如图5所示,所述波形文件访问步骤包括以下子步骤:
S10901:获取波形处理文件的索引结构,并根据波形处理文件中的其他参数条件选择对应波形信号;
S10903:对波形处理文件进行与编码方式对应的解码方式进行解码后,显示波形信号。
具体地,在该示例性实施例中,可以在波形查看器中获取波形处理文件的索引结构(时间索引),并且获取其他参数(例如波形名称等),从而进行显示。即如图6所示,波形查看器对本地或远端波形文件发起查看请求(即打开波形文件,指定查看文件或信号内容),获取波形文件的参数配置结构和总索引数据结构,然后根据需要设置查询条件对波形文件进行查看、调试和操作,初始请求过程中,波形查看器可以通过接收少量已重新编码压缩的参数数据和索引数据来解析波形文件的整体信息,从而达到快速打开波形文件的目的,而后通过本地或网络操作接口只请求用户需要查看的波形数据,在波形查看器本地进行解压缩和重新编码以展示真实的波形信息。
当采用如图3所示的波形处理文件的结构时,先读取Head段中的内容,验证魔数值是否正确,通过哈希验证值对Head段和Config段进行验证;然后通过config段(波形数量,起始位置,大小,总索引数据段,压缩算法类型)得到波形文件的基础信息,可以根据基础信息设置波形信号的查询或操作条件,进行二次访问;再通过index信息获取波形数据段的整体分布结构,最后读取data段信息。
另外,在该示例性实施例中,如图7所示,波形文件的访问(access),保持远程和本地的存取接口一致性,即用户从操作方式上感觉不到波形文件在本地还是远端存储,同时通过初次访问信号的缓存,及LRU(Least Recently Used)替换策略加速波形数据的读取过程。
具体地,缓存方式分为波形查看器本地缓存和波形服务器远程缓存。前者表示波形查看器每次查看的波形信号原始数据会先缓存到本地内存中,其后对本信号的操作都在本地内存中进行,而不用重新读取波形文件中的波形数据,只有当本地内存中没有命中(Not Hit)该波形信号时才做文件读取操作。后者表示波形文件服务器接收波形查看器的远程请求波形数据后,都会将该波形数据缓存在远程服务器的内存中,每次波形信号请求都会先在服务器内存中查询,只有在没有命中(Not Hit)时,波形服务器才会对磁盘中的波形文件做读取操作。
此处将每个波形信号的索引值作为一个键(Key),以该信号数据为键值(KeyValue),则当内存中的键值对空间消耗过大,超过一定阈值时,启动缓存淘汰策略,当需要从缓存中淘汰键值对时,主要目的为淘汰以后不可能或较少再被使用的键值对,保留会频繁访问的键值对,而LRU策略表示最近被频繁访问的键值对将来被访问的可能性也越大。由于缓存中一部分键值对拥有绝大部分的访问量。当访问模式很少改变时,可以记录每个键值对的最后一次访问时间,拥有最少空闲时间的键值对可以被认为将来最有可能被访问到。采用LRU策略后可有效减少读取磁盘波形文件的次数,加快波形访问速度。
更优地,在一示例性实施例中,所述方法还包括在所述存储步骤之后的波形文件对比步骤S111,如图8所示,所述波形文件对比步骤包括以下子步骤:
S11101:获取波形处理文件的索引结构,并根据波形处理文件中的其他参数条件选择两个波形信号;
S11103:对两个波形信号进行比对。
具体地,在该示例性实施例中,波形文件的对比包括:波形文件的管理及仿真调试波形文件与Golden的交互。芯片设计验证过程中,目标波形文件设置为Golden文件,芯片验证工程师调试目标为验证当前设计以输出符合Golden波形信号为准,所以每次仿真后的波形数据需要与目标Golden波形进行对比;另外,波形文件的管理及仿真调试波形文件与Golden的交互;根据波形数据的组织方式,可以实现本地和远程的波形文件的对比,主要框架如图9所示。根据波形数据的组织方式,可以设置对特定波形信号、时间范围、触发信息等条件。如本地波形文件和远程Golden波形文件中的Clock信号,在起始0-100 ns时间范围内对比,同时可设置该Clock信号在出现第一次不同时即停止对比的触发条件,以减少时间返回结果。从而避免了拷贝巨大波形文件到本地,或实践过程中混淆Golden文件,以保证Golden文件的一致性并减少文件移动次数。
区别于传统方式只能将波形文件整体读取后做信号的一一对比,本示例性实施例波形文件在与Golden文件的对比过程中,在预先重编码压缩后达到较小波形文件的前提下,可通过索引方式,提取需要对比的特定波形信号数据,分级先对波形数据段对比后,再对段内的具体信号值对比,从而达到快速得出对比结果的效果。
与上述示例性实施例具有相同的发明构思,本发明的又一示例性实施例提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行所述的一种波形文件处理方法的步骤。
与上述示例性实施例具有相同的发明构思,本发明的又一示例性实施例提供一种装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行所述的一种波形文件处理方法的步骤。
基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
存储器用于存储各种类型的数据以支持在该装置的操作,这些数据例如可以包括用于在该装置上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random AccessMemory,简称SRAM) ,电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable ProgrammableRead-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM) ,只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其他不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (9)
1.一种波形文件处理方法,其特征在于:包括存储步骤,所述存储步骤包括以下子步骤:
获取波形文件,所述波形文件包括至少一个波形信号;
以波形信号为根据分配一个基础索引值后,以可变长编码的方式在内存中将所述波形文件编码成可解析的序列化结构体;
当序列化结构体占用的内存使用量达到阈值后,触发当前序列化结构体的压缩与持久化行为,得到波形处理文件;
其中,所述波形信号包括若干随时间变化的波形值,索引值为时间索引;所述基础索引值为第一个波形值的基础时间,后续波形值的索引值为其前一个波形值索引值的递加时间。
2.根据权利要求1所述的一种波形文件处理方法,其特征在于:所述存储步骤还包括以下子步骤:
当序列化结构体占用的内存使用量达到阈值后,将索引值按照与波形信号处理相同的方式进行持久化;处理后的索引值作为所述波形处理文件的一部分。
3.根据权利要求1或2所述的一种波形文件处理方法,其特征在于:所述以可变长编码的方式在内存中将所述波形文件编码成可解析的序列化结构体,包括:
将所述波形值二进制化;
判断二进制化的数值是否超过七位,若超过则将前七位和后七位的数值整体调换顺序;
完成上述操作后,后七位或唯一七位的数值头增加无后续标志位,在前七位的数值头增加有后续标志位;所述有后续标志位用于对二进制化的数值超过七位的波形值继续读取;
得到将波形值转换为八位或十六位的可解析的序列化结构体。
4.根据权利要求1所述的一种波形文件处理方法,其特征在于:所述存储步骤还包括以下子步骤:
将持久化后的所述波形处理文件存储于本地或远端。
5.根据权利要求1所述的一种波形文件处理方法,其特征在于:所述波形处理文件包括:
Head段:为波形处理文件头部,包括魔数、大小端信息、配置段大小、验证值;
Config段:包括波形数量、起始位置、大小、压缩算法类型;
Data段:为重新编码压缩的波形数据段;
Index段:为包含波形信号名称和该名称对应波形数据的位置索引值。
6.根据权利要求1或5所述的一种波形文件处理方法,其特征在于:所述方法还包括在所述存储步骤之后的波形文件访问步骤,所述波形文件访问步骤包括以下子步骤:
获取波形处理文件的索引结构,并根据波形处理文件中的其他参数条件选择对应波形信号;
对波形处理文件进行与编码方式对应的解码方式进行解码后,显示波形信号。
7.根据权利要求1或5所述的一种波形文件处理方法,其特征在于:所述方法还包括在所述存储步骤之后的波形文件对比步骤,所述波形文件对比步骤包括以下子步骤:
获取波形处理文件的索引结构,并根据波形处理文件中的其他参数条件选择两个波形信号;
对两个波形信号进行比对。
8.一种存储介质,其上存储有计算机指令,其特征在于:所述计算机指令运行时执行权利要求1~7中任一项所述的一种波形文件处理方法的步骤。
9.一种波形文件处理装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,其特征在于,所述处理器运行所述计算机指令时执行权利要求1~7中任一项所述的一种波形文件处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111456118.1A CN113868189B (zh) | 2021-12-02 | 2021-12-02 | 一种波形文件处理方法、存储介质和装置 |
US17/815,320 US20230179226A1 (en) | 2021-12-02 | 2022-07-27 | Waveform file processing method, storage medium, and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111456118.1A CN113868189B (zh) | 2021-12-02 | 2021-12-02 | 一种波形文件处理方法、存储介质和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113868189A CN113868189A (zh) | 2021-12-31 |
CN113868189B true CN113868189B (zh) | 2022-02-11 |
Family
ID=78985493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111456118.1A Ceased CN113868189B (zh) | 2021-12-02 | 2021-12-02 | 一种波形文件处理方法、存储介质和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230179226A1 (zh) |
CN (1) | CN113868189B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114648006B (zh) * | 2022-03-09 | 2024-06-07 | 昆明理工大学 | 一种基于时间对齐的数据处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678747A (zh) * | 2012-09-19 | 2014-03-26 | 上海华虹集成电路有限责任公司 | 适用于多类型cpu的联合仿真工具 |
CN109994131A (zh) * | 2019-04-10 | 2019-07-09 | 广西电网有限责任公司玉林供电局 | 一种基于索引的工频录波文件压缩存储方法及*** |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5712955A (en) * | 1993-06-30 | 1998-01-27 | Sony Corporation | Method and apparatus for encoding digital signal, method and apparatus for decoding digital signal, and recording medium for encoded signals |
US7116829B1 (en) * | 1996-11-06 | 2006-10-03 | Matsushita Electric Industrial Co., Ltd. | Image coding and decoding methods, image coding and decoding apparatuses, and recording media for image coding and decoding programs |
DE69739536D1 (de) * | 1996-11-06 | 2009-09-24 | Panasonic Corp | Methode zur Bilddekodierung mit Kodes variabler Länge |
US7378586B2 (en) * | 2002-10-01 | 2008-05-27 | Yamaha Corporation | Compressed data structure and apparatus and method related thereto |
EP1604483A2 (en) * | 2003-03-07 | 2005-12-14 | Chaoticom, Inc. | Methods and systems for digital rights management of protected content |
US7702964B2 (en) * | 2004-05-11 | 2010-04-20 | Qualcomm Incorporated | Compression of data traces for an integrated circuit with multiple memories |
US7477999B2 (en) * | 2006-10-26 | 2009-01-13 | Samplify Systems, Inc. | Data compression for a waveform data analyzer |
US7899653B2 (en) * | 2007-10-30 | 2011-03-01 | Micron Technology, Inc. | Matrix modeling of parallel data structures to facilitate data encoding and/or jittery signal generation |
JP2010216849A (ja) * | 2009-03-13 | 2010-09-30 | Mitsubishi Electric Corp | 波形パターン検出装置及びコンピュータプログラム及び波形パターン検出方法 |
US8275548B2 (en) * | 2009-08-17 | 2012-09-25 | Earth Networks, Inc. | Method and apparatus for detecting lightning activity |
CN102006067B (zh) * | 2009-09-02 | 2013-03-20 | 中国科学院微电子研究所 | 一种带波形修正rom的dds电路结构 |
US8389844B2 (en) * | 2010-08-03 | 2013-03-05 | Yamaha Corporation | Tone generation apparatus |
CN102270262A (zh) * | 2011-08-23 | 2011-12-07 | 复旦大学 | 集成电路仿真模拟波形压缩和解压缩方法及装置 |
US20150091907A1 (en) * | 2013-09-27 | 2015-04-02 | Byte Paradigm Sprl | Method and system for storing waveform data |
JP7224892B2 (ja) * | 2018-12-18 | 2023-02-20 | ルネサスエレクトロニクス株式会社 | 動画像符号化装置及びその動作方法、動画像符号化装置を搭載する車両 |
CN109669917B (zh) * | 2018-12-24 | 2020-07-10 | 北京华大九天软件有限公司 | 一种基于优先级分组的波形存储方法 |
CN110365342B (zh) * | 2019-06-06 | 2023-05-12 | 中车青岛四方机车车辆股份有限公司 | 波形解码方法及装置 |
CN113343615B (zh) * | 2021-05-19 | 2023-08-01 | 中天恒星(上海)科技有限公司 | 基于fpga的原型验证方法与编码装置 |
CN113553805B (zh) * | 2021-07-28 | 2024-02-06 | 珠海泰芯半导体有限公司 | 仿真波形文件的转换方法、装置、存储介质及自动测试设备 |
-
2021
- 2021-12-02 CN CN202111456118.1A patent/CN113868189B/zh not_active Ceased
-
2022
- 2022-07-27 US US17/815,320 patent/US20230179226A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678747A (zh) * | 2012-09-19 | 2014-03-26 | 上海华虹集成电路有限责任公司 | 适用于多类型cpu的联合仿真工具 |
CN109994131A (zh) * | 2019-04-10 | 2019-07-09 | 广西电网有限责任公司玉林供电局 | 一种基于索引的工频录波文件压缩存储方法及*** |
Also Published As
Publication number | Publication date |
---|---|
US20230179226A1 (en) | 2023-06-08 |
CN113868189A (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101824612B1 (ko) | 플래시 메모리 압축 | |
US7366825B2 (en) | NAND flash memory management | |
CN107111551A (zh) | 用于高速缓存经压缩的数据背景的装置、***和方法 | |
KR20080063466A (ko) | 플래시 메모리 관리 | |
US10296250B2 (en) | Method and apparatus for improving performance of sequential logging in a storage device | |
TW200817896A (en) | Technique for using memory attributes | |
CN113868189B (zh) | 一种波形文件处理方法、存储介质和装置 | |
CN101446987A (zh) | 一种用于多核处理器Cache一致性实物验证的装置 | |
CN112052097B (zh) | 虚拟场景的渲染资源处理方法、装置、设备及存储介质 | |
US9292549B2 (en) | Method and system for index serialization | |
CN107315694A (zh) | 一种缓存一致性管理方法及节点控制器 | |
CN113569508A (zh) | 基于id进行数据索引与访问的数据库模型构建方法及设备 | |
CN107423425B (zh) | 一种对k/v格式的数据快速存储和查询方法 | |
CN113704359B (zh) | 一种时序数据库多数据副本的同步方法、***以及服务器 | |
CN113312386B (zh) | 一种基于分布式消息的批量入库方法 | |
TW202044046A (zh) | 資料儲存裝置與資料處理方法 | |
CN112069081B (zh) | 一种基于遗传算法的目录控制器测试激励生成方法 | |
CN104077374B (zh) | 一种实现ip盘文件存储的方法及装置 | |
CN116842012A (zh) | 一种Redis集群的分片存储方法、装置、设备及存储介质 | |
CN115981867A (zh) | 分片数据的处理方法及装置 | |
CN115964002A (zh) | 一种电能表终端档案管理方法、装置、设备及介质 | |
CN115454353A (zh) | 一种面向空间应用数据的高速写入及查询方法 | |
US11593318B2 (en) | Techniques for asynchronous snapshot invalidation | |
CN114064781A (zh) | 基于缓存机制的多租户数据源管理方法及可读存储介质 | |
CN106293530A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
IW01 | Full invalidation of patent right | ||
IW01 | Full invalidation of patent right |
Decision date of declaring invalidation: 20230524 Decision number of declaring invalidation: 561077 Granted publication date: 20220211 |