CN103853855A - 一种电路仿真模拟同步波形压缩格式 - Google Patents
一种电路仿真模拟同步波形压缩格式 Download PDFInfo
- Publication number
- CN103853855A CN103853855A CN201210497549.7A CN201210497549A CN103853855A CN 103853855 A CN103853855 A CN 103853855A CN 201210497549 A CN201210497549 A CN 201210497549A CN 103853855 A CN103853855 A CN 103853855A
- Authority
- CN
- China
- Prior art keywords
- frame
- value
- data
- timeslice
- waveform
- 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
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
随着集成电路规模的急剧增加,电路仿真验证所产生的波形文件也越来越大。实际电路设计中,可能还需要对电路进行多次仿真以优化电路,所需存储的波形数据就更为庞大。因此,在不影响数据精度的前提下,对波形进行快速压缩,以降低数据存储量,对于实际电路设计具有重要意义。本发明基于一种高效的时间片压缩方法,提出了适用于该方法的波形文件存储格式,并定义了波形文件的文件头格式以及数据的存放方式。在实际工程应用中,此格式能够很好地满足大规模集成电路仿真对存储空间的要求,极大地提高了设计效率。
Description
技术领域
本发明是一种集成电路仿真工具中的波形压缩存储格式,适用于以同步方式进行仿真所产生的模拟波形,所属的技术领域是集成电路计算机辅助设计领域,尤其是涉及大规模集成电路的仿真领域。
背景技术
电路仿真是集成电路功能验证的重要手段。随着集成电路规模的急剧增加,电路仿真验证所产生的波形文件也越来越大。对于一个节点数达到十万量级的电路进行一次仿真,其仿真波形数据可达数GB到数十GB,数据量极为庞大。实际电路设计中,可能还需要对电路进行多次仿真以优化电路,所需存储的波形数据就更为庞大。因此,在不影响数据精度的前提下,对波形进行快速压缩,以降低数据存储量,对于实际电路设计具有重要意义。
波形存储格式是仿真过程中输出波形以及波形显示器读取波形的前提。目前,在集成电路仿真领域,比较常用的压缩格式有Novas公司的FSDB,Cadence公司的SST2,Synopsys公司的WDF。一方面这些压缩格式的压缩效率并不是很高。另一方面,因为产品间的竞争关系,这些数据格式很难得到授权。因此,设计一种具有自主知识产权的压缩波形格式具有非常重要的意义。
本发明以时间片压缩方法为基础,设计了一种自定义的存储格式,不仅获得了很高的压缩效率,还可以通过设置各种参数,来满足不同用户对精度和压缩率的需求,因而具有良好的可扩展性和实用性。
发明内容
本发明针对大规模集成电路仿真生成的同步模拟波形,提出了一种基于时间片的压缩方法,并设计了存储这种压缩数据的文件格式。在实际工程应用中,以这种格式存储的波形文件不仅节省了大量磁盘空间,而且读写速度非常快,极大地提高了波形仿真和显示的效率。
本发明的主要技术方案包括以下两个部分:
1.基于时间片的压缩方法
将一个时间点上所有结点的电压(或电流等)输出值作为一帧,并将连续的数帧作为一个时间片。在一个时间片内选取开头的一帧作为参考帧(I帧),其余的帧为比较帧(P帧),并对I帧和P帧分别进行处理和编码,最后写入文件,完成波形数据的压缩。该过程如图1 所示。
设一帧的长度为m,帧内的序号为FRAME_IDX = [1:m],则每帧内的输出值为data[d1 d2…dm]。
(1)I帧的写入过程:
a)将所有信号的第一个点的y值按顺序写入文件;
b)将第一个点的x值写入文件;
(2)P帧的写入过程:
a)将此帧与I帧相减,求出差值为delta_data,并求出一个时间片内每个波形所对应的最大变化值,记为max_delta;
b)对delta_data进行均匀量化,量化的长度可自行设置。若为一个字节,则量化间隔为max_data / (2^8 - 1);若为两个字节,则量化间隔为max_data / (2^16 - 1)。
c)将所有P帧量化后的数据进行压缩编码并写入文件。
2.压缩文件格式
在上述时间片压缩方法的基础上,本发明设计了一种自定义的压缩文件格式,这种格式如图2所示。
从图2中可以看出,文件包括两个主要部分:文件头和数据。文件头记录了波形文件中信号的一些必要信息,而数据则以table为基础,并以块状形式存放波形所有数据点的X值和压缩编码后的Y值,以及其他需要记录的数值。
(1)文件头格式
文件头位于文件的开始部分,用来记录波形数据的一些关键信息。在波形仿真时对文件头的各项进行赋值,记录波形名称、单位、点数等各种特性。显示波形时,这些信息能够帮助解析器获取重要的参数,以便快速定位并读出数据。
文件头包括以下几个主要部分:
a)文件格式标志(a flag to recognize file format),是用于识别这种波形文件的唯一标识。
b)压缩参数(compress parameter),包括时间片长度(time slice length)和量化宽度(quantification length)。时间片长度可以设置为任意大于等于30的整数,即m>=30,默认值为30;量化宽度可以为8或16,默认为8。
c)波形基本信息(general information of wave),包括信号个数(signal number),table个数(table number),sweep个数(sweep number),复数类型(complex type)。复数类型用于区分ac信号和其他信号,因为ac信号具有实部和虚部两个部分。
d)Table信息(table information),包括每个table的点数(points number)和起始位置(data start position)。记录起始位置可用于读取时快速定位。
e)Sweep值(sweep values),这一项是可选的,仅当sweep个数大于0时才有。主要内容包括每个table中所有sweep参数对应的sweep值。
f)Sweep名称(sweep names),这一项是可选的,仅当sweep个数大于0时才有。它用字符串的形式记录了所有的sweep参数的名称。
g)信号信息(signal information),包括信号名称(signal name),信号类型(signal type),信号数据的份数(data size of signal)。信号数据的份数用于确定数据在文件中的偏移位置,因为ac信号可能需要存储实部和虚部,也可能只存储实部,而dc和tran信号都只存储一份数据。
h)X轴信息(information of x-axis),包括X轴的名称(name)和单位(unit)。
表1 文件头格式
(2)数据格式
就整体上而言,不论是原始数据还是附加数据(如buffer长度),都是根据精度的需要来确定采用float还是double作为存储浮点数据的单位。由于精度要求与量化宽度应保持一致,因此,用户可以通过设置量化宽度来选择精度,即选择存储所采用的数据类型。如果没有设置量化宽度,则默认全部数据使用float存储。
a)I帧格式:
I帧的数据量少,对压缩率贡献很小,为了减少计算时间,保存原始数据即可。I帧格式如图3所示,首先存储所有信号的第一个Y值,然后存储第一个点的X值。其中,k表示信号个数。
b)Max-delta:
最大差值数组,存储P帧中每个信号与I帧的最大差值,数组的size为信号总个数。格式见图4。其中,k表示信号个数。
c)Buff_len:
存储压缩时目标缓冲区的大小(压缩成功后得到的实际大小),单位为byte,用于解压时参数的设定。
d)P帧:
y值,假设时间片长度为m,则所有m–1个P帧的y值,实际上存储的是量化后得到的量化块数,根据量化宽度来决定是用一个字节还是两个字节进行存储。
x值,与I帧一样,全部存储原值。
具体格式见图5,其中,m表示时间片长度。
实例说明:
假设有一波形文件,含有2个信号v(in),v(out),只有1个table,没有sweep变量,数据点的个数为40。若采用默认设置的压缩参数,即时间片长度为30,量化长度为8。该波形文件为tran仿真的结果,因此复数类型为0,X轴的名字为time,单位为s。压缩后,压缩文件的文件头格式将如表2所示。
表2 实例波形的压缩文件头格式
在文件头之后,是第1个table的数据。依据上述设置,该波形文件中的信号可分为2个时间片,第1个时间片都是存储30个点,第2个时间片存储剩余的10个点。以第1个时间片为例,其具体数据格式如下:
I帧:I帧的数据非常简单,就是v(in)和v(out)第一个点的Y值y1,y2以及第一个点的X值x1。
最大差值数组:以信号v(in)为例,假设第一个点的y值为1.0,其他29个点的y值分别为2.0,3.0,... ,30.0,那么最大差值max_delta1 = 30.0 - 1.0 = 29.0;v(out)的最大差值同理可得到,设为max_delta2,则数组为max_delta1,max_delta2。
Buff_len:以信号v(in)为例,把max_delta分为2^8 -1份,每一份即为part_max_delta = 29.0 / (2^8 -1), 计算出这29个点的差值delta_y = 2.0-1.0,3.0-1.0,…,30.0-1.0。根据压缩方法的描述,只需要存储这个差值所占的份数即可。为了凑成整数,使用floor函数进行取整。因此,最终存储的是(char)floor(delta_y / part_max_delta + 0.5)。v(out)的数值同理可得。对所有取整后的值用ZLib进行压缩后存储,记录压缩后占用的字节数,即Buff_len。
P帧:P帧的Y值即用Zlib压缩后的数据,X值则为X2,X3,…,X30。
附图说明
图1 基于时间片的压缩方法流程图;
图2 压缩文件格式结构图;
图3 I帧格式结构图
图4 最大差值数组结构图
图5 P帧格式结构图
Claims (3)
1.一种电路仿真模拟同步波形压缩格式,其技术特征在于包含以下步骤:①设置信号相关的信息以及与压缩相关的参数,并写入文件头;②以Table为单位,按块状分别存储数据;③根据文件头设置的压缩参数,将每个Table划分若干时间片;④将每个时间片分为参考帧(I帧)和比较帧(P帧);⑤对I帧,直接编码,然后写入文件;⑥对P帧,计算帧间残差、量化,用ZLib进行压缩编码,然后写入文件;⑦循环重复②-⑥中各步骤,直到所有Table中的所有时间片数据都写入完毕。
2.根据权利要求1所述的压缩文件存储格式,“时间片划分”的特征在于:①I帧为参考帧,记录该时间片中的第一个X值和所有信号的第一个Y值;②P帧为比较帧,记录的是时间片中其他点的X值,以及所有信号中其他点的Y值经过计算残差和量化编码后的结果。
3.根据权利要求1所述的压缩文件存储格式,“P帧数据”的技术特征包含以下3个方面:①从第二个点的Y值开始,计算其与时间片中第一个点的Y值(即I帧的Y值)的差值delta,并保存每个信号的最大差值max_delta;②根据文件头中设置的量化长度n,将各信号的最大差值max_delta分为2^n-1份,计算每个点的差值所占的量化块数。③对量化的结果进行取整,用Zlib压缩编码,然后写入文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210497549.7A CN103853855A (zh) | 2012-11-29 | 2012-11-29 | 一种电路仿真模拟同步波形压缩格式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210497549.7A CN103853855A (zh) | 2012-11-29 | 2012-11-29 | 一种电路仿真模拟同步波形压缩格式 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103853855A true CN103853855A (zh) | 2014-06-11 |
Family
ID=50861510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210497549.7A Pending CN103853855A (zh) | 2012-11-29 | 2012-11-29 | 一种电路仿真模拟同步波形压缩格式 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103853855A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023193547A1 (zh) * | 2022-04-08 | 2023-10-12 | 华为技术有限公司 | 用于生成和存储电路仿真过程中的波形数据的方法、电子设备和存储介质 |
CN117097717A (zh) * | 2023-08-16 | 2023-11-21 | 浙江远算科技有限公司 | 一种用于仿真结果的文件传输优化方法、***和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2154978A1 (en) * | 1994-08-05 | 1996-02-06 | Alan Douglas Clark | Data compression system |
CN101019325A (zh) * | 2004-09-13 | 2007-08-15 | 易斯普维 | 压缩和解压缩数字序列的方法 |
CN101173962A (zh) * | 2007-08-16 | 2008-05-07 | 江苏绿扬电子仪器集团有限公司 | 针对示波器的波形压缩方法 |
CN102244786A (zh) * | 2011-07-12 | 2011-11-16 | 深圳市万兴软件有限公司 | 视频数据压缩、解压缩的方法、装置及移动终端 |
CN102270262A (zh) * | 2011-08-23 | 2011-12-07 | 复旦大学 | 集成电路仿真模拟波形压缩和解压缩方法及装置 |
-
2012
- 2012-11-29 CN CN201210497549.7A patent/CN103853855A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2154978A1 (en) * | 1994-08-05 | 1996-02-06 | Alan Douglas Clark | Data compression system |
CN101019325A (zh) * | 2004-09-13 | 2007-08-15 | 易斯普维 | 压缩和解压缩数字序列的方法 |
CN101173962A (zh) * | 2007-08-16 | 2008-05-07 | 江苏绿扬电子仪器集团有限公司 | 针对示波器的波形压缩方法 |
CN102244786A (zh) * | 2011-07-12 | 2011-11-16 | 深圳市万兴软件有限公司 | 视频数据压缩、解压缩的方法、装置及移动终端 |
CN102270262A (zh) * | 2011-08-23 | 2011-12-07 | 复旦大学 | 集成电路仿真模拟波形压缩和解压缩方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023193547A1 (zh) * | 2022-04-08 | 2023-10-12 | 华为技术有限公司 | 用于生成和存储电路仿真过程中的波形数据的方法、电子设备和存储介质 |
CN117097717A (zh) * | 2023-08-16 | 2023-11-21 | 浙江远算科技有限公司 | 一种用于仿真结果的文件传输优化方法、***和电子设备 |
CN117097717B (zh) * | 2023-08-16 | 2024-03-22 | 浙江远算科技有限公司 | 一种用于仿真结果的文件传输优化方法、***和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103067022B (zh) | 一种整型数据无损压缩方法、解压缩方法及装置 | |
RU2007141934A (ru) | Адаптивная группировка параметров для улучшенной эффективности кодирования | |
CN102436465B (zh) | 一种在轨航天器遥测数据存储与快速查询方法 | |
CN106021579B (zh) | 一种历史数据库的压缩方法 | |
CN108052551A (zh) | 一种在redis上实现的存储大量时序数据的方法 | |
EP3737100A1 (en) | Encoding method, decoding method, and device | |
CN101667843B (zh) | 嵌入式***的数据压缩、及解压缩方法与装置 | |
CN109581502B (zh) | 地震勘探数据压缩方法、装置以及压缩存储结构 | |
CN100349160C (zh) | 一种对数据进行有限穷举优化的压缩方法 | |
CN109669917A (zh) | 一种基于优先级分组的波形存储方法 | |
CN115438114B (zh) | 存储格式转换方法、***、装置、电子设备及存储介质 | |
CN102270262A (zh) | 集成电路仿真模拟波形压缩和解压缩方法及装置 | |
CN103853855A (zh) | 一种电路仿真模拟同步波形压缩格式 | |
CN102201882B (zh) | 一种线性分组码编码参数的盲识别方法 | |
US8325188B1 (en) | Method and system for implementing a waveform viewer | |
CN101551820A (zh) | 兴趣点属性的索引数据库的生成方法和装置 | |
CN113078908B (zh) | 一种适用于时间序列数据库的简易编解码方法 | |
CN100568284C (zh) | 计算机图形数据编码装置、解码装置、编码和解码方法 | |
JPH0556070B2 (zh) | ||
CN105302889B (zh) | 数据存储结构的转换方法及装置 | |
CN114333742B (zh) | 多轨伴奏生成方法、多轨伴奏生成模型的训练方法及装置 | |
KR102497634B1 (ko) | 문자 빈도 기반 서열 재정렬을 통한 fastq 데이터 압축 방법 및 장치 | |
CN110021349B (zh) | 基因数据的编码方法 | |
CN1689071A (zh) | 使用相位更新进行正弦音频编码 | |
CN103325376A (zh) | 编码装置、编码方法、解码装置及解码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140611 |
|
WD01 | Invention patent application deemed withdrawn after publication |