CN109669917B - 一种基于优先级分组的波形存储方法 - Google Patents
一种基于优先级分组的波形存储方法 Download PDFInfo
- Publication number
- CN109669917B CN109669917B CN201811579803.1A CN201811579803A CN109669917B CN 109669917 B CN109669917 B CN 109669917B CN 201811579803 A CN201811579803 A CN 201811579803A CN 109669917 B CN109669917 B CN 109669917B
- Authority
- CN
- China
- Prior art keywords
- data
- file
- priority
- signal
- sub
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Abstract
一种基于优先级分组的波形存储方法,包括以下步骤:根据电路中所有需要输出的信号名称以及重要性,设定优先级并进行分组,生成优先级文件并添加到网表文件中;读取并解析网表文件中的优先级文件,建立索引文件,将字段值写入所述索引文件中;建立数据文件,将信号数据按数据存储格式依次写入对应的文件中;更新索引文件。本发明的基于优先级分组的波形存储方法,减少了读取波形数据的时间,大大提高了仿真结果的验证效率,缩短电子电路的设计周期,适应了电路规模的急剧增长。
Description
技术领域
本发明涉及集成电路自动化产品设计技术领域,特别涉及电路仿真过程中的波形存储方法。
背景技术
电路仿真是集成电路功能验证的重要手段。随着集成电路规模的急剧增加,电路仿真验证所产生的波形文件也越来越大。在模拟电路的时序分析仿真过程中,当节点数达到十万量级以上时,其产生的波形数据可达数GB到数十GB,数据量极为庞大。实际电路设计中,可能还需要对电路进行多次仿真以优化电路,所需存储的波形数据就更为庞大。电路仿真完成后,一般都需要查验波形相关节点的电压、电流等属性是否符合预期,并且通常还需要基于波形数据进行数学统计和测量操作,因此,波形文件的大小,对电路仿真的验证工作具有很大的影响,对于实际电路设计也具有重要意义。
波形数据的存储是电路设计过程中用波形显示器查看波形以及进行测量计算的前提。目前,在集成电路仿真领域,对于一次特定的扫描,一般都会将网表中所有指定输出的信号一次性全部输出,并且写入到同一个文件中。这种传统的波形存储方式将产生非常庞大的波形文件,导致从波形文件中读取信号数据的时间占了相当大的比例,极大地影响了验证电路仿真结果的效率。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种基于优先级分组的波形存储方法,针对目前集成电路仿真产生的波形文件太庞大从而导致读取数据时间过长的问题,在电路仿真过程中,通过对信号设定优先级并进行分组,然后按顺序将数据输出到多个数据文件中,同时记录相应的索引信息,加快了波形数据的读取访问速度,提高了仿真结果的验证效率。
为实现上述目的,本发明提供的基于优先级分组的波形存储方法,包括以下步骤:
1)根据电路中所有需要输出的信号名称以及重要性,设定优先级并进行分组,生成优先级文件并添加到网表文件中;
2)读取并解析网表文件中的优先级文件,建立索引文件,将字段值写入所述索引文件中;
3)建立数据文件,将信号数据按数据存储格式依次写入对应的文件中;
4)更新索引文件。
进一步地,所述优先级文件,包括,优先级值和信号名称。
进一步地,步骤1)所述根据电路中所有需要输出的信号名称以及重要性,设定优先级并进行分组的步骤,是按信号重要等级依次设定优先级值,将优先级值相同的信号分在同一组中,以便仿真过程中按组为单位进行输出。
进一步地,步骤2)所述索引文件,由多个子段落构成,每个子段落由多个字段值或子段落组成;
所述字段值,包括,字符串长度及内容、双精度浮点数、单精度浮点数、长整形,以及整形;
所述子段落,按照先后顺序,包括,普通信息子段落、信号属性子段落、信号定义子段落、数据位置子段落;
所述普通信息子段落,其记录仿真过程中的基本信息;
所述信号属性子段落,其定义信号的电路属性;
所述信号定义子段落,其定义所有输出的信号的基本信息;
所述数据位置子段落,其记录所有信号数据在数据文件中的位置信息。
进一步地,步骤3)所述数据文件,为一个或多个二进制文件,它们记录的是仿真过程中产生的信号数据,并且一个输出组唯一对应一个数据文件;
所述数据文件,包括,信号的横坐标值和信号的纵坐标值;所述数据存储格式,是以基本数据块和数据段为基本单位,按信号在组中的顺序进行排列;所述数据段为多个连续基本数据块的集合。
更进一步地,所述步骤4)进一步包括,
在仿真过程中,每写完一个数据段的数据,将索引文件中数据点的数量进行更新;
定位到位置信息子段落的位置,将当前数据段的横坐标基本数据块的起始位置和终止位置、所有信号的纵坐标基本数据块起始位置和终止位置,按顺序追加到文件末尾。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述的基于优先级分组的波形存储方法的步骤。
本发明的基于优先级分组的波形存储方法,对需要输出的信号按重要等级进行分组,优先输出最需要的数据,并分别写入到不同的数据文件中;同时,建立一个额外的索引文件,记录数据在数据文件中的起始位置和终止位置等重要信息,使得读取波形数据的时候能够快速定位到相应的位置,从而大大提高了波形读取的速度。
本发明的基于优先级分组的波形存储方法,它可以加快读取波形数据的速度,保证了电路仿真验证工作的高效性。进一步讲本发明通过对电路信号进行优先级划分和分组,将信号数据按顺序输出到多个文件中,并建立了索引信息,从而减少了读取波形数据的时间,大大提高了仿真结果的验证效率,缩短电子电路的设计周期,适应了电路规模的急剧增长。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的基于优先级分组的波形存储方法流程图;
图2为根据本发明的优先级文件的存储格式示意图;
图3为根据本发明的数据位置子段落的存储格式示意图;
图4为根据本发明的数据文件的存储格式示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为根据本发明的基于优先级分组的波形存储方法流程图,下面将参考图1,对本发明的基于优先级分组的波形存储方法进行详细描述。
在步骤101,确定电路中所有需要输出的信号名称以及重要性;接着生成一个优先级文件“priority.txt”,并按照存储格式设定所有信号的优先级值,为了便于后面步骤的描述,这里假定只设定了4个优先级值,分别为1、2、3、4;最后,在网表文件“test.sp”中添加一个option:output_priority=“priority.txt”。
分组过程中,先由用户自己确定哪些信号最重要,哪些信号次重要,以此类推,按重要等级从数字1开始依次设定优先级值。然后,将优先级值相同的信号分在同一组中。因此,优先级别有多少种,就会分成多少个组。对于那些没有设定优先级值的信号,将统一放在最后一组中,默认优先级为最低。分组结束后,还需要将出现在各组中超过一次以上的信号进行去重处理。
在本发明中,为了将优先级的定义方便地添加到网表文件(netlist)中,使用一个优先级文件来保存所有信号的优先级。图2为根据本发明的优先级文件的存储格式示意图,如图2所示,优先级文件的主要内容是优先级值和信号名称。本发明规定,信号名称区分大小写,并支持正则表达式。每个组以优先级值开始,后面跟着所有属于该组的信号名称;每行只允许写一个优先级值或信号名称,而“#”则表示后面的内容为注释。优先级文件的存储格式如图2所示。为了便于表示,规定‘*’代表任意字符,则priority_value*表示某个特定的优先级值,signal_name*表示某个特定的信号名称。
在步骤102,读取网表中的优先级文件,解析完成后,建立一个索引文件,命名为“test.sp.tr0.index”,依次将字段值写入到文件中,并将数据点的数量初始化为0,而所有信号的位置信息这个子段落,则留待仿真过程中写数据文件的时候再追加。
本发明的索引文件,是为了记录在仿真过程中产生的重要信息,尤其是数据文件中的位置信息。索引文件的内容由多个子段落构成,每个子段落又是以多个字段值或子段落组成。字段值是表示一个具体特性的值。
字段值的格式,根据字段的表示方法,分成5类:字符串,先用4个字节表示该字符串的长度(integer类型),后面则紧跟该字符串的内容(string类型);双精度浮点数(double类型),用8个字节直接表示;单精度浮点数(float类型),用4个字节直接表示;长整形(long integer类型),用8个字节直接表示;整形(integer类型),用4个字节直接表示。
按照先后顺序,索引文件中的子段落分别为:普通信息子段落,信号属性子段落,信号定义子段落,数据位置子段落。
普通信息子段落,用于记录仿真过程中的一些基本信息,按顺序它依次包含以下字段值:仿真器名称(string类型),仿真器版本(string类型),仿真描述(string类型),仿真开始时间(double类型),仿真结束时间(double类型),X值的名称(string类型),X值的单位(string类型),X值的数据类型(integer类型),X值的数值类型(integer类型),以字节为单位的block大小(integer类型),segment的数量(integer类型),数据点的数量(longinteger类型)。
信号属性子段落,用于定义信号的各种电路属性,按顺序它依次包含以下字段值:属性的标识(integer类型),属性的名称(string类型),属性的单位(string类型),属性的描述(string类型),属性的数据类型(integer类型),属性的数值类型(integer类型)。
信号定义子段落,用于定义所有输出的信号的基本信息,按顺序它依次包含以下字段值:信号的数量(integer类型),信号定义列表(子段落)。信号定义列表列出了所有信号的定义,每个信号的定义依次包含以下字段值:信号的标识(integer类型),信号的名称(string类型),信号的属性标识(integer类型)。
数据位置子段落,用于记录所有信号数据在数据文件中的位置信息,按顺序它依次包含以下字段值或子段落:segment的数量(integer类型),segment位置列表(子段落)。segment位置列表,是根据数据文件的存储格式,对应地记录了所有segment和它们里面的block的位置信息,其中每个segment的位置信息按顺序依次包含以下字段值或子段落:segment的标识(integer类型)、X block的起始位置(long integer类型),X block的终止位置(long integer类型),Y block位置列表(子段落)。Y block位置列表,记录了在当前segment中所有Y block的位置信息,每条Y block位置信息按顺序依次包含以下字段值:Yblock的起始位置(long integer类型),Y block的终止位置(long integer类型)。图3展示了数据位置子段落的存储格式。
在步骤103,建立数据文件,将各输出组的信号数据按数据存储格式依次写入对应的文件中。
本发明的数据文件,包括:信号的横坐标值(X值)和信号的纵坐标值(Y值)。X值的数据类型为实数,数值类型为双精度浮点数(double类型),每个值占用8个字节;Y值的数据类型有两种,分别是实数和复数,复数由两个实数组成,分别表示实部和虚部。因此,Y值可能存在一份数据或两份数据。当Y值的数据类型是实数时,只有一份数据;当Y值的数据类型是复数时,有两份数据。Y值的数值类型有两种:双精度浮点数(double类型),每个值占用8个字节;单精度浮点数(float类型),每个值占用4个字节。
数据文件的基本存储方式是以块(block)和段(segment)为基本单位,按信号在组中的顺序进行排列。本发明将block定义为一个基本数据块,包含了多个连续的双精度或单精度的浮点数,而segment则定义为多个连续block的集合。为便于描述,假定数据信号的总数量为k,一个完整的block包含的数据点的个数为n。基于此定义,一个包含了n个X值的block称为X block,一个包含了n个Y值的block称为Y block。在信号数据类型都为实数的前提条件下,一个segment首先包含了1个X block,然后接着按信号顺序依次为k个Yblock。如果数据点总个数大于n,就会产生两个或以上的segment。当某个segment中需要存储的数据点的个数小于n时(最后一个segment经常会出现这种情况),它所包含的X block和Y block中将会出现多余的空间,它们将用被一些无意义的固定值所填充。图4展示了数据文件的存储格式(在信号数据类型全部为实数的前提条件下)。另外,对于信号数据类型含有复数的情况,一个segment中将会有大于等于k且小于等于2k个Y block。
在步骤104,更新索引文件中的相关信息。所述更新索引文件的相关信息,是当数据文件中的一个segment的数据写完后,首先将索引文件中数据点的数量进行更新,然后定位到位置信息子段落的位置,将当前segment的X Block的起始位置和终止位置、所有信号的Y block起始位置和终止位置,按顺序追加到文件末尾。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于优先级分组的波形存储方法,包括以下步骤:
1)根据电路中所有需要输出的信号名称以及重要性,设定优先级并进行分组,包括按信号重要等级依次设定优先级值,将优先级值相同的信号分在同一组中,生成优先级文件并添加到网表文件中;
所述优先级文件,包括优先级值和信号名称;
2)读取并解析网表文件中的优先级文件,建立索引文件,将解析后的网表内容写入所述索引文件中;
3)建立数据文件,将信号数据按数据存储格式依次写入对应的文件中;
4)更新索引文件;
所述步骤4)进一步包括,
在仿真过程中,每写完一个数据段的数据,将索引文件中数据点的数量进行更新;
定位到位置信息子段落的位置,在所述位置信息子段落中的数据段位置列表中,添加当前数据段的位置信息。
2.根据权利要求1所述的基于优先级分组的波形存储方法,其特征在于,步骤2)所述索引文件,由多个子段落构成,每个子段落由多个字段值或次级子段落组成;
所述字段值,包括,字符串长度及内容、双精度浮点数、单精度浮点数、长整形,以及整形;
所述子段落,按照先后顺序,包括,普通信息子段落、信号属性子段落、信号定义子段落、数据位置子段落;
所述普通信息子段落,其记录仿真过程中的基本信息;
所述信号属性子段落,其定义信号的电路属性;
所述信号定义子段落,其定义所有输出的信号的基本信息;
所述数据位置子段落,其记录所有信号数据在数据文件中的位置信息。
3.根据权利要求1所述的基于优先级分组的波形存储方法,其特征在于,步骤3)所述数据文件,为一个或多个二进制文件,它们记录的是仿真过程中产生的信号数据,并且一个输出组唯一对应一个数据文件;
所述数据文件,包括,信号的横坐标值和信号的纵坐标值;所述数据文件以数据段为基本单位;所述数据段由多个连续基本数据块组成,包括一个存储横坐标值的数据块和多个存储纵坐标值的数据块,所述数据块按照信号在分组中的顺序进行排列。
4.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-3中任一项所述的基于优先级分组的波形存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811579803.1A CN109669917B (zh) | 2018-12-24 | 2018-12-24 | 一种基于优先级分组的波形存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811579803.1A CN109669917B (zh) | 2018-12-24 | 2018-12-24 | 一种基于优先级分组的波形存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109669917A CN109669917A (zh) | 2019-04-23 |
CN109669917B true CN109669917B (zh) | 2020-07-10 |
Family
ID=66146874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811579803.1A Active CN109669917B (zh) | 2018-12-24 | 2018-12-24 | 一种基于优先级分组的波形存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109669917B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110543456B (zh) * | 2019-09-06 | 2022-02-22 | 北京华大九天科技股份有限公司 | 一种oasis文件快速读取方法、装置及计算机可读存储介质 |
CN113377596A (zh) * | 2021-06-21 | 2021-09-10 | 芯华章科技股份有限公司 | 用于存储和读取波形数据的方法及相关设备 |
CN114003456A (zh) * | 2021-09-26 | 2022-02-01 | 芯华章科技股份有限公司 | 波形数据的显示方法、设备及存储介质 |
CN113868189B (zh) * | 2021-12-02 | 2022-02-11 | 成都奥卡思微电科技有限公司 | 一种波形文件处理方法、存储介质和装置 |
CN116933699A (zh) * | 2022-04-08 | 2023-10-24 | 华为技术有限公司 | 用于生成和存储电路仿真过程中的波形数据的方法、电子设备和存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6549938B1 (en) * | 1998-12-10 | 2003-04-15 | Nokia Corporation | System and method for prioritizing multicast packets in a network service class utilizing a priority-based quality of service |
US7260804B1 (en) * | 2004-09-21 | 2007-08-21 | Golden Gate Technology, Inc. | Method for circuit block routing based on switching activity |
US7360193B1 (en) * | 2004-09-21 | 2008-04-15 | Golden Gate Technology, Inc. | Method for circuit block placement and circuit block arrangement based on switching activity |
JP4379409B2 (ja) * | 2005-11-08 | 2009-12-09 | ソニー株式会社 | 撮像装置、および情報処理方法、並びにコンピュータ・プログラム |
US20070201365A1 (en) * | 2006-01-23 | 2007-08-30 | Frederick Skoog | Video packet multiplexer with intelligent packet discard |
CN101729910B (zh) * | 2008-10-15 | 2011-11-23 | 国家广播电影电视总局广播科学研究院 | 一种基于可分级比特流的数据传输方法和装置 |
CN103179264B (zh) * | 2012-09-20 | 2015-04-08 | 深圳市金立通信设备有限公司 | 一种手机智能通知系统及方法 |
CN103209494B (zh) * | 2013-03-20 | 2016-12-28 | 西安交通大学 | 一种基于重要性标记的实时视频业务资源分配方法 |
CN104142977B (zh) * | 2014-07-09 | 2018-03-06 | 上海航天电子通讯设备研究所 | 采用检索表确定多数据源优先级的存储方法 |
CN106060442B (zh) * | 2016-05-20 | 2020-06-19 | 浙江宇视科技有限公司 | 一种录像存储方法、装置及系统 |
CN108052769A (zh) * | 2017-12-28 | 2018-05-18 | 天津芯海创科技有限公司 | 网表仿真验证方法和装置 |
-
2018
- 2018-12-24 CN CN201811579803.1A patent/CN109669917B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109669917A (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109669917B (zh) | 一种基于优先级分组的波形存储方法 | |
CN107807982B (zh) | 一种异构数据库的一致性校验方法及装置 | |
CN111143368B (zh) | 一种关系型数据库数据对比方法及系统 | |
CN102087657B (zh) | 一种用于核电站仿真平台的io对点方法和io对点装置 | |
CN103593449B (zh) | 一种数据库资源回收方法及系统 | |
KR20160100211A (ko) | 대용량 오디오 핑거프린트 데이터베이스의 온라인 실시간 업데이팅을 구성하기 위한 방법 및 장치 | |
CN112597345B (zh) | 一种实验室数据自动采集与匹配方法 | |
CN108681505B (zh) | 一种基于决策树的测试用例排序方法和装置 | |
CN114169401A (zh) | 数据处理、预测模型训练方法和设备 | |
US11726970B2 (en) | Incremental transfer of database segments | |
CN111259635A (zh) | 一种对病历书写文本补全和预测的方法及系统 | |
CN103838780A (zh) | 数据库的数据恢复方法及相关的设备 | |
CN101063976B (zh) | 用于快速删除物理群集数据的方法和设备 | |
CN112181790B (zh) | 一种存储设备的容量统计方法、系统及相关组件 | |
US7882484B1 (en) | Generating a design-specific input/output model document | |
CN116467871A (zh) | 文件参数修改方法、装置、设备及存储介质 | |
US7197445B1 (en) | Atomic transaction processing for logic simulation | |
CN114116475A (zh) | 一种基于日志的软件调试方法 | |
CN113821508A (zh) | 一种数组索引的实现方法和系统 | |
CN114356218A (zh) | Flash存储器的数据纠错方法、设备以及介质 | |
CN111782661A (zh) | 一种数据存储方法、数据查询方法和装置 | |
US20230142132A1 (en) | Method for establishing variation model related to circuit characteristics for performing circuit simulation, and associated circuit simulation system | |
CN115993938B (zh) | 一种磁盘格式化方法、装置、设备和计算机可读存储介质 | |
CN116028620B (zh) | 一种基于多任务特征协同的生成专利摘要的方法及系统 | |
US7840583B2 (en) | Search device and recording medium |
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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100102 floor 2, block a, No.2, lizezhong 2nd Road, Chaoyang District, Beijing Patentee after: Beijing Huada Jiutian Technology Co.,Ltd. Address before: 100102 floor 2, block a, No.2, lizezhong 2nd Road, Chaoyang District, Beijing Patentee before: HUADA EMPYREAN SOFTWARE Co.,Ltd. |