一种集成电路波形图像快速显示方法

文档序号:6488795阅读:314来源:国知局
一种集成电路波形图像快速显示方法
【专利摘要】本发明属于集成电路领域,具体涉及一种在相关波形图像查看方面提高显示速度,同时保证显示精度,节省内存消耗的方法。本发明所述方法按照用户显示需要读取波形数据到内存,如果消耗内存超出规定值,将已读入的当前不活动的波形数据调出内存,写入硬盘,保证了波形数据存储所需存储空间不会过大。同时,按照用户所需显示波形范围,获取原始波形数据,根据显示密度要求,对原始波形数据进行插值,并同时检测和保留峰值点,保持波形显示的高精度。
【专利说明】一种集成电路波形图像快速显示方法
【技术领域】:
[0001]本发明属于集成电路领域,涉及一种集成电路波形图像快速显示方法,该方法在相关波形图像查看方面能提高显示速度,同时保证显示精度,节省内存消耗。
技术背景:
[0002]现有技术中,集成电路中的波形仿真文件需要对应的图像查看器进行一系列的测量、检验、校对等工作。随着集成电路规模的不停扩大,每一次对集成电路进行仿真就需要对越来越多的波形节点电压和电流值进行记录,步长和仿真时间也需要越来越精细和漫长,并由此来保证正确性,这使得波形仿真文件本身也越来越庞大。
[0003]目前流行的波形文件格式大都是线性存储的,包括文件头,以及波形数据两大部分。文件头通常包含文件信息、信号类型、信号名等信息;波形数据部分按照仿真时间顺序存储每个节点电压和电流值,为了方便数据的存储,在波形数据中一般还包含一些同步字节等信息。
[0004]现有的波形查看软件如开源软件GWAVE(http://gwave.sourceforge.net/)和Synopsys公司的Sandworks (http://www.synopsys.com)在实现波形显示时存在诸多问题,例如:1.或者读取所有波形到内存中,导致内存占用过多,甚至耗尽,但实际查看的波形却很少;2.或者在波形显示以及执行放大缩小操作时,对所有的波形数据都进行操作,导致系统响应速度过慢等。

【发明内容】
:
[0005]本发明的目的是为克服现有技术存在的不足,针对线性存储波形文件,提供一种集成电路波形图像快速显示方法,该方法能快速有效的缓存和显示波形数据,做到速度和精确度的平衡和人性化的实时调整,解决用户对于波形查看软件的速度和精准度的需求。应用本发明的方法可以保证波形显示的完整性,用很低的计算复杂度达到很高的显示精度。
[0006]为了达到上述目的,本发明提供了一种快速缓存波形文件,并且加速显示和有效管理相关内存调度的方法,本发明方法中,按照用户显示需要读取波形数据到内存,如果消耗内存超出规定值,将已读入的当前不活动的波形数据调出内存,写入硬盘,保证波形数据存储所需存储空间不会过大,同时,按照用户所需显示波形范围,获取原始波形数据,根据显示密度要求,对原始波形数据进行插值,并同时检测和保留峰值点,保持波形显示的高精度。
[0007]具体而言,本发明的一种集成电路波形图像快速显示方法,其特征在于,该方法包括2个步骤,每个步骤有对应的子步骤,具体过程如下:
[0008]步骤1:按照显示需要读取波形数据,如果消耗内存超出规定值,将已读入的当前不活动的波形数据调出内存,写入硬盘,具体分步骤如下:
[0009]分步骤11:建立内存映射;[0010]本发明中,将波形文件从硬盘上的文件向内存映射。由于简单地将大文件直接进行映射会导致内存利用率低下,所以本发明采用固定长度(如50MB)的内存空间进行映射,将文件折叠映射在这块固定长度中,用户的访问位置超出当前的映射内容,则会重新将对应的50MB长度的空间从硬盘映射到内存中,因此明显提高了访问速率,并且降低了内存消耗。
[0011]分步骤12:读取文件头,获取包括波形名字、波形数量等标识信息。
[0012]本发明分步骤中,处理文件头内容,读取包括文件信息、信号类型、信号名三个部分的信息,其中的的处理根据具体的波形格式的不同会有所调整。
[0013]分步骤13:根据用户需要显示的波形要求,从波形数据中读取出对应的波形;
[0014]由于波形中的波形数据部分,按照仿真时间顺序存储每个节点电压和电流值。根据用户所需显示的波形序号,本发明可以快速的扫描整个波形文件,跳过其他波形,仅仅读取所需显示的波形的数据。
[0015]在波形数据读取时,采用了内存管理调度方法对波形数据进行调度,本发明为每一个波形设定一个优先级,波形数据的优先级在最开始开始时最高,随着时间的推移,优先级会逐渐降低,优先级的管理由数据管理的线程来进行管理。
[0016]当波形分析比较工具的内存消耗的设定值时,会将优先级最低的数据调出。调出的数据再次需要时将从硬盘读取,由此来降低内存消耗。
[0017]步骤2:按照需要对波形数据进行处理并显示,具体分步骤如下:
[0018]分步骤21:根据实际需要的时间范围,从实际波形数据中获得对应数据段。
[0019]本发明将波形的显示数据存储和波形数据存储分开;在波形显示时,波形显示数据是根据用户实际所需要显示的时间范围,从原始波形数据中进行插值获得的。
[0020]假定用户所需显示的时间范围是[tl,t2],从实际波形数据中获得对应数据段,首先从原始波形数据的时间轴中找到最靠近tl的点tp,从tp点出发,逐步向后读取波形数据,直到某个数据点时,其时间坐标大于t2为止。由此获得用户所需显示的[tl,t2]时间范围内的波形数据。
[0021]分步骤22:根据用户设定的波形显示密度对原始波形数据进行线性插值和显示
[0022]本发明中,为了保证波形的显示精度,在显示时,保证用户经过放大或缩小后,在单位物理长度内显示的数据点数为一个固定值;同时,为保证显示的精度,在插值过程中进行峰值检测,保留这些峰值点,不进行插值,以提高显示精度。
[0023]本发明中,使用单位长度内固定点数的线性采样方法和左右邻域判定的极值检测方法进行图形描画。
[0024]该步骤中,首先根据所需显示的时间长度,以及根据单位物理长度内显示的数据点数,确定在每个插值的时间步长step,
[0025]以step作为步进长度在时间轴上步进,并且同时计算波形数据对应值\,
[0026]Ys=Yn_1+ (Xs-Xlri) * (Yn-Ylri) / (Xn-Xlri)
[0027]其中,Ys是对应的插值后的第s个数据点的波形数据,Xs是步进中的第S个X轴坐标,Xn-1; Ylri是步进过程中,比Xs和Ys小的最近的一个坐标位置,Xn, Yn是步进过程中,比Xs和Ys不小的最近的一个坐标位置。
[0028]本发明中,在插值操作进行的同时,进行峰值检测,如果找到了 一个坐标点(Xn,Yn)使得满足YJYM&fcYJYg,或者YJYn-AfcYJYlri,那么要记录下这个峰值点Yn和Xn的值。在显示时需要保留这个峰值点的值以提高显示精度。
[0029]本发明的集成电路波形图像快速显示方法具有如下优点:
[0030]1,良好的读取速度表现,和实时的用户交互响应,
[0031]对于数G海量波形文件的读取,采用了内存映射方法,一方面,对于小的文件,读取速度加快,对于海量数据文件,可以借助系统的缓存技术减小内存的消耗;在海量数据文件读取时,可以快速跳过不需读取的数据,只读取需要读取的波形,加快读取速度。
[0032]2,低复杂度的插值及峰值处理保证显示的高效和高精度,
[0033]如果波形数据点数过多,在波形显示时速度会很慢,但对于波形显示来说,过多的波形点数并不能增加波形的清晰度,实际上,只需要有限的点数即可保证波形显示的清晰度;所需的波形点数可以由用户设定,也可以实时根据负载修改,显示的波形点数将从实际的波形数据中插值获得;在放大缩小时将根据放大缩小的波形范围从实际波形数据中插值获得所需波形数据,通过插值的方法,能保证放大缩小时屏幕上显示的波形点数为固定点数,在保证显示清晰度的同时,保证显示的效率;通过插值过程中进行峰值检测,保留这些峰值点,不进行插值,可进一步提高显示精度;由于插值和峰值的处理方式复杂度近似线性,能保证在处理超大数据量的波形文件的时候速度依然不会下降很多,保证了显示的高效和实时性。
[0034]3,使用分段内存映射以及根据优先级的内存调度策略保证内存消耗维持在一个很低的水平,
[0035]分段内存映射使得本发明方法实践中可以几乎无节制地打开多个超过数GB大小的波形文件而不用担心耗尽内存空间,因为每一个文件仅仅占用了 50MB的内存空间来进行映射,大大降低了消耗。
[0036]同时,本发明还可检测内存的消耗情况,如果内存消耗较大,那么将多余的已经多时没有访问的波形数据直接从内存转存在缓存文件,可以明显降低内存消耗。如果下次还需访问,则重新从缓存文件中快速读取。
【专利附图】

【附图说明】
[0037]图1是本发明波形图像快速显示方法的流程图。
[0038]图2-图6是一个毛刺波形的显示过程,
[0039]图中显示的是时间正向排序,绿框表示要放大显示框内图片,图2-图6是从刚读入显示一个毛刺波形到逐渐放大的过程,可以看到毛刺的尖峰无论在哪一个步骤都可以清晰准确地显示出来。
【具体实施方式】:
[0040]为了使本发明的上述目的,特征和优点能够更加明显易懂,下面通过一些具体的实例的结果进一步说明本发明。
[0041]实施例1
[0042]按下述步骤进行快速缓存波形文件,并且加速显示和有效管理相关内存调度,
[0043]步骤1:按照显示需要读取波形数据,如果消耗内存超出规定值,将已读入的当前不活动的波形数据调出内存,写入硬盘,具体分步骤为:
[0044]分步骤11:建立内存映射;
[0045]将波形文件从硬盘上的文件向内存映射,采用固定长度50MB的内存空间进行映射,将文件折叠映射在这块固定长度中,用户的访问位置超出当前的映射内容,则会重新将对应的50MB长度的空间从硬盘映射到内存中;
[0046]分步骤12:读取文件头,获取包括波形名字、波形数量等标识信息,
[0047]处理文件头内容,读取包括文件信息、信号类型、信号名三个部分的信息,其中的处理根据具体的波形格式的不同进行调整;
[0048]分步骤13:根据用户需要显示的波形要求,从波形数据中读取出对应的波形;
[0049]按照仿真时间顺序存储每个节点电压和电流值,根据用户所需显示的波形序号,快速的扫描整个波形文件,跳过其他波形,仅仅读取所需显示的波形的数据;在波形数据读取时,采用内存管理调度方法对波形数据进行调度,为每一个波形设定一个优先级,波形数据的优先级在最开始时最高,随着时间的推移,优先级逐渐降低;当波形分析比较工具的内存消耗的设定值时,将优先级最低的数据调出,调出的数据再次需要时将从硬盘读取,由此来降低内存消耗;
[0050]步骤2:按照需要对波形数据进行处理并显示:
[0051]分步骤21:根据实际需要的时间范围,从实际波形数据中获得对应数据段,
[0052]将波形的显示数据存储和波形数据存储分开;在波形显示时,波形显示数据根据用户实际所需要显示的时间范围,从原始波形数据中进行插值获得;假定用户所需显示的时间范围是[tl,t2],首先从原始波形数据的时间轴中找到最靠近tl的点tp,从tp点出发,逐步向后读取波形数据,直到某`个数据点时,其时间坐标大于t2为止;
[0053]分步骤22:根据用户设定的波形显示密度对原始波形数据进行线性插值和显示,
[0054]首先根据所需显示的时间长度,以及根据单位物理长度内显示的数据点数,确定在每个插值的时间步长step,
[0055]以step作为步进长度在时间轴上步进,并且同时计算波形数据对应值\,
[0056]Ys=Yn_1+ (Xs - Xlri) * (Yn - Ylri) / (Xn - XnJ
[0057]其中,Ys是对应的插值后的第s个数据点的波形数据,Xs是步进中的第S个X轴坐标,Xn-1; Ylri是步进过程中,比Xs和Ys小的最近的一个坐标位置,Xn, Yn是步进过程中,比Xs和Ys不小的最近的一个坐标位置;在插值操作进行的同时,进行峰值检测,如果找到了一个坐标点(xn,Yn)使得满足YJYM&fcYJYg,或者YJYn-AfcY1^Ylri,那么记录下这个峰值点¥?和Xn的值,在显示时需要保留这个峰值点的值以提高显示精度。
[0058]表1显示了本发明波形显示方法的一个实现IWAVE和开源波形显示软件 GWAVE(http://gwave.sourceforge.net/)和 Synopsys 公司的波形显不软件Sandworks (http: //www.synopsys.com)的用户体验的 I:匕较。
[0059]表1[0060]
【权利要求】
1.一种集成电路波形图像快速显示方法,其特征在于,其包括步骤: 步骤1:按照显示需要读取波形数据,如果消耗内存超出规定值,将已读入的当前不活动的波形数据调出内存,写入硬盘,具体分步骤如下: 分步骤11:建立内存映射; 分步骤12:读取文件头,获取波形名字和波形数量标识信息; 分步骤13:根据用户需要显示的波形要求,从波形数据中读取出对应的波形; 步骤2:按照需要对波形数据进行处理并显示,具体分步骤如下: 分步骤21:根据实际需要的时间范围,从实际波形数据中获得对应数据段; 分步骤22:根据用户设定的波形显示密度对原始波形数据进行线性插值和显示。
2.按照权利要求1所述的方法,其特征是:所述分步骤11中,采用固定长度(如50MB)的内存空间,将文件折叠映射在这块固定长度中,用户的访问位置超出当前的映射内容,则会重新将对应的50MB长度的空间从硬盘映射到内存中。
3.按照权利要求1 所述的方法,其特征在于,所述分步骤13中,为每一个波形设定一个优先级,该波形数据的优先级在最开始时最高,随时间推移逐渐降低,该优先级由数据管理线程进行管理,当波形分析比较工具的内存消耗的设定值时,将所述优先级最低的数据调出,再次需要时从硬盘读取。
4.按照权利要求1所述的方法,其特征在于,所述分步骤21中,根据实际需要的时间范围[tl,t2],从实际波形数据中获得对应数据段,首先从原始波形数据的时间轴中找到最靠近tl的点tp,从tp点出发 ,逐步向后读取波形数据,直到某个数据点时,其时间坐标大于t2为止。
5.按照权利要求1所述的方法,其特征在于,所述分步骤22中,首先根据所需显示的时间长度,以及根据单位物理长度内显示的数据点数,确定在每个插值的时间步长step, 以step作为步进长度在时间轴上步进,并且同时计算波形数据对应值\,
Ys=Yn-1+ (Xs-Xn-l) * (VYn-l) / (H) 其中,Ys是对应的插值后的第S个数据点的波形数据,Xs是步进中的第S个X轴坐标,Xn-^Yn-!是步进过程中,比Xs和Ys小的最近的一个坐标位置,xn,Yn是步进过程中,比Xs和Ys不小的最近的一个坐标位置。
6.按照权利要求1所述的方法,其特征在于,所述分步骤22中,在插值操作进行的同时,进行峰值检测,如果找到一个坐标点(xn,Yn)使得满足YJYM&&YJYM,或者Υη<Υη_1ΜΥη<Υη+1?则记录下这个峰值点Yn和Xn的值,在显示时保留这个峰值点的值。
【文档编号】G06F17/30GK103678359SQ201210337621
【公开日】2014年3月26日 申请日期:2012年9月12日 优先权日:2012年9月12日
【发明者】曾璇, 杨逸石, 周星宝, 杨帆 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1