首页> 中国专利> 一种集成电路波形图像快速显示方法

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

摘要

本发明属于集成电路领域,具体涉及一种在相关波形图像查看方面提高显示速度,同时保证显示精度,节省内存消耗的方法。本发明所述方法按照用户显示需要读取波形数据到内存,如果消耗内存超出规定值,将已读入的当前不活动的波形数据调出内存,写入硬盘,保证了波形数据存储所需存储空间不会过大。同时,按照用户所需显示波形范围,获取原始波形数据,根据显示密度要求,对原始波形数据进行插值,并同时检测和保留峰值点,保持波形显示的高精度。

著录项

  • 公开/公告号CN103678359A

    专利类型发明专利

  • 公开/公告日2014-03-26

    原文格式PDF

  • 申请/专利权人 复旦大学;

    申请/专利号CN201210337621.X

  • 发明设计人 曾璇;杨逸石;周星宝;杨帆;

    申请日2012-09-12

  • 分类号G06F17/30;G06T1/00;

  • 代理机构上海元一成知识产权代理事务所(普通合伙);

  • 代理人吴桂琴

  • 地址 200433 上海市杨浦区邯郸路220号

  • 入库时间 2023-12-17 01:00:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-06-06

    授权

    授权

  • 2014-06-11

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20120912

    实质审查的生效

  • 2014-03-26

    公开

    公开

说明书

技术领域:

本发明属于集成电路领域,涉及一种集成电路波形图像快速显示方法,该方法在相 关波形图像查看方面能提高显示速度,同时保证显示精度,节省内存消耗。

技术背景:

现有技术中,集成电路中的波形仿真文件需要对应的图像查看器进行一系列的测 量、检验、校对等工作。随着集成电路规模的不停扩大,每一次对集成电路进行仿真就 需要对越来越多的波形节点电压和电流值进行记录,步长和仿真时间也需要越来越精细 和漫长,并由此来保证正确性,这使得波形仿真文件本身也越来越庞大。

目前流行的波形文件格式大都是线性存储的,包括文件头,以及波形数据两大部分。 文件头通常包含文件信息、信号类型、信号名等信息;波形数据部分按照仿真时间顺序 存储每个节点电压和电流值,为了方便数据的存储,在波形数据中一般还包含一些同步 字节等信息。

现有的波形查看软件如开源软件GWAVE(http://gwave.sourceforge.net/)和Synopsys 公司的Sandworks(http://www.synopsys.com)在实现波形显示时存在诸多问题,例如:1. 或者读取所有波形到内存中,导致内存占用过多,甚至耗尽,但实际查看的波形却很少; 2.或者在波形显示以及执行放大缩小操作时,对所有的波形数据都进行操作,导致系统 响应速度过慢等。

发明内容:

本发明的目的是为克服现有技术存在的不足,针对线性存储波形文件,提供一种集 成电路波形图像快速显示方法,该方法能快速有效的缓存和显示波形数据,做到速度和 精确度的平衡和人性化的实时调整,解决用户对于波形查看软件的速度和精准度的需 求。应用本发明的方法可以保证波形显示的完整性,用很低的计算复杂度达到很高的显 示精度。

为了达到上述目的,本发明提供了一种快速缓存波形文件,并且加速显示和有效管 理相关内存调度的方法,本发明方法中,按照用户显示需要读取波形数据到内存,如果 消耗内存超出规定值,将已读入的当前不活动的波形数据调出内存,写入硬盘,保证波 形数据存储所需存储空间不会过大,同时,按照用户所需显示波形范围,获取原始波形 数据,根据显示密度要求,对原始波形数据进行插值,并同时检测和保留峰值点,保持 波形显示的高精度。

具体而言,本发明的一种集成电路波形图像快速显示方法,其特征在于,该方法包 括2个步骤,每个步骤有对应的子步骤,具体过程如下:

步骤1:按照显示需要读取波形数据,如果消耗内存超出规定值,将已读入的当前 不活动的波形数据调出内存,写入硬盘,具体分步骤如下:

分步骤11:建立内存映射;

本发明中,将波形文件从硬盘上的文件向内存映射。由于简单地将大文件直接进行 映射会导致内存利用率低下,所以本发明采用固定长度(如50MB)的内存空间进行映 射,将文件折叠映射在这块固定长度中,用户的访问位置超出当前的映射内容,则会重 新将对应的50MB长度的空间从硬盘映射到内存中,因此明显提高了访问速率,并且降 低了内存消耗。

分步骤12:读取文件头,获取包括波形名字、波形数量等标识信息。

本发明分步骤中,处理文件头内容,读取包括文件信息、信号类型、信号名三个部 分的信息,其中的的处理根据具体的波形格式的不同会有所调整。

分步骤13:根据用户需要显示的波形要求,从波形数据中读取出对应的波形;

由于波形中的波形数据部分,按照仿真时间顺序存储每个节点电压和电流值。根据 用户所需显示的波形序号,本发明可以快速的扫描整个波形文件,跳过其他波形,仅仅 读取所需显示的波形的数据。

在波形数据读取时,采用了内存管理调度方法对波形数据进行调度,本发明为每一 个波形设定一个优先级,波形数据的优先级在最开始开始时最高,随着时间的推移,优 先级会逐渐降低,优先级的管理由数据管理的线程来进行管理。

当波形分析比较工具的内存消耗的设定值时,会将优先级最低的数据调出。调出的 数据再次需要时将从硬盘读取,由此来降低内存消耗。

步骤2:按照需要对波形数据进行处理并显示,具体分步骤如下:

分步骤21:根据实际需要的时间范围,从实际波形数据中获得对应数据段。

本发明将波形的显示数据存储和波形数据存储分开;在波形显示时,波形显示数据 是根据用户实际所需要显示的时间范围,从原始波形数据中进行插值获得的。

假定用户所需显示的时间范围是[t1,t2],从实际波形数据中获得对应数据段,首先 从原始波形数据的时间轴中找到最靠近t1的点tp,从tp点出发,逐步向后读取波形数 据,直到某个数据点时,其时间坐标大于t2为止。由此获得用户所需显示的[t1,t2]时间 范围内的波形数据。

分步骤22:根据用户设定的波形显示密度对原始波形数据进行线性插值和显示

本发明中,为了保证波形的显示精度,在显示时,保证用户经过放大或缩小后, 在单位物理长度内显示的数据点数为一个固定值;同时,为保证显示的精度,在插值过 程中进行峰值检测,保留这些峰值点,不进行插值,以提高显示精度。

本发明中,使用单位长度内固定点数的线性采样方法和左右邻域判定的极值检测 方法进行图形描画。

该步骤中,首先根据所需显示的时间长度,以及根据单位物理长度内显示的数据 点数,确定在每个插值的时间步长step,

以step作为步进长度在时间轴上步进,并且同时计算波形数据对应值Ys

Ys=Yn-1+(Xs-Xn-1)*(Yn-Yn-1)/(Xn-Xn-1)

其中,Ys是对应的插值后的第s个数据点的波形数据,Xs是步进中的第S个X轴坐 标,Xn-1,Yn-1是步进过程中,比Xs和Ys小的最近的一个坐标位置,Xn,Yn是步进过程 中,比Xs和Ys不小的最近的一个坐标位置。

本发明中,在插值操作进行的同时,进行峰值检测,如果找到了一个坐标点(Xn,Yn) 使得满足Yn>Yn-1&&Yn>Yn+1,或者Yn<Yn-1&&Yn<Yn+1,那么要记录下这个峰值点Yn 和Xn的值。在显示时需要保留这个峰值点的值以提高显示精度。

本发明的集成电路波形图像快速显示方法具有如下优点:

1,良好的读取速度表现,和实时的用户交互响应,

对于数G海量波形文件的读取,采用了内存映射方法,一方面,对于小的文件,读 取速度加快,对于海量数据文件,可以借助系统的缓存技术减小内存的消耗;在海量数 据文件读取时,可以快速跳过不需读取的数据,只读取需要读取的波形,加快读取速度。

2,低复杂度的插值及峰值处理保证显示的高效和高精度,

如果波形数据点数过多,在波形显示时速度会很慢,但对于波形显示来说,过多的 波形点数并不能增加波形的清晰度,实际上,只需要有限的点数即可保证波形显示的清 晰度;所需的波形点数可以由用户设定,也可以实时根据负载修改,显示的波形点数将 从实际的波形数据中插值获得;在放大缩小时将根据放大缩小的波形范围从实际波形数 据中插值获得所需波形数据,通过插值的方法,能保证放大缩小时屏幕上显示的波形点 数为固定点数,在保证显示清晰度的同时,保证显示的效率;通过插值过程中进行峰值 检测,保留这些峰值点,不进行插值,可进一步提高显示精度;由于插值和峰值的处理 方式复杂度近似线性,能保证在处理超大数据量的波形文件的时候速度依然不会下降很 多,保证了显示的高效和实时性。

3,使用分段内存映射以及根据优先级的内存调度策略保证内存消耗维持在一个很 低的水平,

分段内存映射使得本发明方法实践中可以几乎无节制地打开多个超过数GB大小的 波形文件而不用担心耗尽内存空间,因为每一个文件仅仅占用了50MB的内存空间来进 行映射,大大降低了消耗。

同时,本发明还可检测内存的消耗情况,如果内存消耗较大,那么将多余的已经 多时没有访问的波形数据直接从内存转存在缓存文件,可以明显降低内存消耗。如果下 次还需访问,则重新从缓存文件中快速读取。

附图说明

图1是本发明波形图像快速显示方法的流程图。

图2-图6是一个毛刺波形的显示过程,

图中显示的是时间正向排序,绿框表示要放大显示框内图片,图2-图6是从刚读入 显示一个毛刺波形到逐渐放大的过程,可以看到毛刺的尖峰无论在哪一个步骤都可以清 晰准确地显示出来。

具体实施方式:

为了使本发明的上述目的,特征和优点能够更加明显易懂,下面通过一些具体的实 例的结果进一步说明本发明。

实施例1

按下述步骤进行快速缓存波形文件,并且加速显示和有效管理相关内存调度,

步骤1:按照显示需要读取波形数据,如果消耗内存超出规定值,将已读入的当前 不活动的波形数据调出内存,写入硬盘,具体分步骤为:

分步骤11:建立内存映射;

将波形文件从硬盘上的文件向内存映射,采用固定长度50MB的内存空间进行映射, 将文件折叠映射在这块固定长度中,用户的访问位置超出当前的映射内容,则会重新将 对应的50MB长度的空间从硬盘映射到内存中;

分步骤12:读取文件头,获取包括波形名字、波形数量等标识信息,

处理文件头内容,读取包括文件信息、信号类型、信号名三个部分的信息,其中的 处理根据具体的波形格式的不同进行调整;

分步骤13:根据用户需要显示的波形要求,从波形数据中读取出对应的波形;

按照仿真时间顺序存储每个节点电压和电流值,根据用户所需显示的波形序号,快 速的扫描整个波形文件,跳过其他波形,仅仅读取所需显示的波形的数据;在波形数据 读取时,采用内存管理调度方法对波形数据进行调度,为每一个波形设定一个优先级, 波形数据的优先级在最开始时最高,随着时间的推移,优先级逐渐降低;当波形分析比 较工具的内存消耗的设定值时,将优先级最低的数据调出,调出的数据再次需要时将从 硬盘读取,由此来降低内存消耗;

步骤2:按照需要对波形数据进行处理并显示:

分步骤21:根据实际需要的时间范围,从实际波形数据中获得对应数据段,

将波形的显示数据存储和波形数据存储分开;在波形显示时,波形显示数据根据用 户实际所需要显示的时间范围,从原始波形数据中进行插值获得;假定用户所需显示的 时间范围是[t1,t2],首先从原始波形数据的时间轴中找到最靠近t1的点tp,从tp 点出发,逐步向后读取波形数据,直到某个数据点时,其时间坐标大于t2为止;

分步骤22:根据用户设定的波形显示密度对原始波形数据进行线性插值和显示,

首先根据所需显示的时间长度,以及根据单位物理长度内显示的数据点数,确定 在每个插值的时间步长step,

以step作为步进长度在时间轴上步进,并且同时计算波形数据对应值Ys

Ys=Yn-1+(Xs–Xn-1)*(Yn–Yn-1)/(Xn–Xn-1)

其中,Ys是对应的插值后的第s个数据点的波形数据,Xs是步进中的第S个X轴坐 标,Xn-1,Yn-1是步进过程中,比Xs和Ys小的最近的一个坐标位置,Xn,Yn是步进过程中, 比Xs和Ys不小的最近的一个坐标位置;在插值操作进行的同时,进行峰值检测,如果 找到了一个坐标点(Xn,Yn)使得满足Yn>Yn-1&&Yn>Yn+1,或者Yn<Yn-1&&Yn<Yn+1, 那么记录下这个峰值点Yn和Xn的值,在显示时需要保留这个峰值点的值以提高显示精 度。

表1显示了本发明波形显示方法的一个实现IWAVE和开源波形显示软件 GWAVE(http://gwave.sourceforge.net/)和Synopsys公司的波形显示软件 Sandworks(http://www.synopsys.com)的用户体验的比较。

表1

实践结果显示了使用了本发明方法能保证显示实时性和速度的同时能保证毛刺波 形的清晰度和精确度(如图2-图6所示)。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号