大规模集成电路层次树展示系统转让专利

申请号 : CN202211408414.9

文献号 : CN115455871B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨胜康

申请人 : 北京云枢创新软件技术有限公司上海合见工业软件集团有限公司

摘要 :

本发明涉及一种大规模集成电路层次树展示系统,实现步骤S1、获取节点展开指令,解析出第一目标节点标识、目标子节点数量X和目标子节点行高h;步骤S2、将第一目标节点状态标注为依赖节点,构建对应的目标子节点的虚拟列表;步骤S4、获取第一目标节点对应于当前滚动条的第一位置、可视区域底部对应于当前滚动条的第二位置,确定距离H;步骤S5、若H≥X*h,则从数据库中加载目标子节点的虚拟列表中每一目标子节点对应的实体信息,在显示界面显示;若H

权利要求 :

1.一种大规模集成电路层次树展示系统,其特征在于,

包括数据库、显示界面、存储有计算机程序的存储器和处理器,所述数据库用于存储大规模集成电路层次树的层级信息和每一节点的节点虚拟标识信息和实体信息,所述实体信息包括节点对应的节点标识、子节点数量和子节点行高;所述显示界面用于展示所述层次树;

当所述计算机程序被所述处理器执行时,实现以下步骤:

步骤S1、基于所述显示界面当前呈现的层次树获取节点展开指令,从所述节点展开指令中解析出第一目标节点的节点标识、第一目标节点包含的目标子节点数量X和目标子节点行高h;

步骤S2、将第一目标节点的状态标注为依赖节点,并基于所述层级信息和每一目标子节点的节点虚拟标识信息构建对应的目标子节点的虚拟列表,每一节点的初始状态标注为非依赖节点;

步骤S4、获取第一目标节点对应于当前滚动条的第一位置、可视区域底部对应于当前滚动条的第二位置,确定第一位置和第二位置之间的距离H;

步骤S5、若H≥X*h,则从所述数据库中加载所述目标子节点的虚拟列表中每一目标子节点对应的实体信息,在所述显示界面进行显示;若H

当所述计算机程序被所述处理器执行时,还实现以下步骤:

步骤S100、获取当前位于不可视区域的节点信息;

步骤S200、判断当前位于可视区域以上,距离可视区域上边界超过预设第二缓冲高度,且标注为非依赖节点的节点中是否存在实体信息,若存在,则将对应的实体信息销毁;判断当前位于可视区域以下,距离可视区域下边界超过预设第一缓冲高度,且标注为非依赖节点的节点中是否存在实体信息,若存在,则将对应的实体信息销毁。

2.根据权利要求1所述的系统,其特征在于,

所述大规模集成电路层次树的任意一个节点A的子节点为{A1,A2,…,Am,…,AM},Am为节m m m m m点A的第m个子节点,m的取值范围为1到M;Am子节点为{a1 ,a2 ,…,an ,…,aN}, an 为Am的第n个子节点,n的取值范围为1到N;在所述滚动条对应的区域中,A1,A2,…,Am,…,AM从上到m m m m下依次设置,若Am被标注为依赖节点,则将a1 ,a2 ,…,an ,…,aN从上到下依次设置在Am和Am+1之间。

3.根据权利要求1或2所述的系统,其特征在于,

所述步骤S2之前还包括:

步骤S2’、获取接收节点展开指令时所述层次树对应的高度H’,若H’与 X*h的和小于等于可视区域的高度,则直接从所述数据库中加载所述目标子节点的虚拟列表中每一目标子节点对应的实体信息,在所述显示界面进行显示,否则,执行步骤S2。

4.根据权利要求2所述的系统,其特征在于,

当所述计算机程序被所述处理器执行时,还实现以下步骤:

步骤S10、基于所述显示界面获取鼠标滑动信息;

步骤S20、解析所述鼠标滑动信息,确定当前滚动条位置,所述当前滚动条位置为当前滚动条与可视区域上边界的交点位置;

步骤S30、基于当前滚动条位置、当前所有依赖节点对应的子节点数量和子节点高度确定当前可视区域对应的起始节点;

步骤S40、基于起始节点对应的节点高度、位于起始节点以下且与所述起始节点属于同一个父节点的节点数量、位于起始节点以下的其他所有依赖节点对应的子节点数量和子节点高度以及可视区域高度确定终止节点;

步骤S50、从所述数据库中加载所述起始节点、终止节点以及起始节点和终止节点之间所有节点的实体信息,在所述显示界面进行显示。

5.根据权利要求2所述的系统,其特征在于,

所述步骤S5之后还包括:

步骤S6、基于所述显示界面当前呈现的层次树获取节点收起指令,从所述节点收起指令中解析出第二目标节点的节点标识、第二目标节点包含的目标子节点数量X’和目标子节点行高h’;

步骤S7、将第二目标节点状态标注为非依赖节点,删除第二目标节点对应的虚拟列表;

步骤S8、获取第二目标节点对应于当前滚动条的第三位置、可视区域底部对应于当前滚动条的第四位置,确定第一位置和第二位置之间的距离H’;

步骤S9、基于H’、位于起始节点以下的其他所有依赖节点对应的子节点数量和子节点高度确定新增显示节点,从所述数据库中加载新增显示节点对应的实体信息,在所述显示界面进行显示。

6.根据权利要求1所述的系统,其特征在于,

所述步骤S4替换为:

步骤S4’、获取第一目标节点对应于当前滚动条的第一位置、距离可视区域下边界以下预设第一缓冲高度的第三位置,确定第一位置和第三位置之间的距离H。

7.根据权利要求1或6所述的系统,其特征在于,

所述获取第一目标节点对应于当前滚动条的第一位置,包括:步骤S41、获取接收层次树接收节点展开指令时滚动条的长度L0,更新滚动条的长度L0= L0+X*h;

步骤S42、获取第一目标节点对应于可视区域的位置;

步骤S43、基于第一目标节点对应于可视区域的位置、更新后的滚动条的长度、当前滚动条和可视区域的对应关系确定第一目标节点对应于当前滚动条的第一位置。

8.根据权利要求1所述的系统,其特征在于,

所有节点的行高均相等。

说明书 :

大规模集成电路层次树展示系统

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种大规模集成电路层次树展示系统。

背景技术

[0002] 在大规模集成电路设计中,通常需要展示电路设计上各个元件的层次结构。随着大规模集成电路的复杂度增加,一个器件单元下可能会有几千万个子节点,传统的展示方法通常需要将所有层次树的节点进行扁平化处理,将所有节点的信息全部加载出来供展示使用。但是,由于节点数量巨大,需要加载的层次树节点内容也十分巨大,会增大内存开销,导致大规模集成电路层次树的绘制性能差,绘制效率低。由此可知,如何减小大规模集成电路层次树展示过程中的内存开销,提高绘制性能和效率成为亟待解决的技术问题。

发明内容

[0003] 本发明目的在于,提供一种大规模集成电路层次树展示系统,减小了大规模集成电路层次树展示过程中的内存开销,提高了绘制性能和效率。
[0004] 根据本发明一方面,提供了一种大规模集成电路层次树展示系统,包括数据库、显示界面、存储有计算机程序的存储器和处理器,所述数据库用于存储大规模集成电路层次树的层级信息和每一节点的节点虚拟标识信息和实体信息,所述实体信息包括节点对应的节点标识、子节点数量和子节点行高;所述显示界面用于展示所述层次树;
[0005] 当所述计算机程序被所述处理器执行时,实现以下步骤:
[0006] 步骤S1、基于所述显示界面当前呈现的层次树获取节点展开指令,从所述节点展开指令中解析出第一目标节点的节点标识、第一目标节点包含的目标子节点数量X和目标子节点行高h;
[0007] 步骤S2、将第一目标节点的状态标注为依赖节点,并基于所述层级信息和每一目标子节点的节点虚拟标识信息构建对应的目标子节点的虚拟列表,每一节点的初始状态标注为非依赖节点;
[0008] 步骤S4、获取第一目标节点对应于当前滚动条的第一位置、可视区域底部对应于当前滚动条的第二位置,确定第一位置和第二位置之间的距离H;
[0009] 步骤S5、若H≥X*h,则从所述数据库中加载所述目标子节点的虚拟列表中每一目标子节点对应的实体信息,在所述显示界面进行显示;若H
[0010] 本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种大规模集成电路层次树展示系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:
[0011] 本发明通过构建虚拟列表记录节点和子节点信息,实时推算需要绘制的内容,无需加载所有节点的实体信息,极大减小了大规模集成电路层次树展示过程中的内存开销,提高了绘制性能和效率。
[0012] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。

附图说明

[0013] 图1为本发明实施例提供的大规模集成电路层次树展示系统示意图;
[0014] 图2为本发明实施例提供的确定当前可视区域对应的起始节点示意图。

具体实施方式

[0015] 为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种大规模集成电路层次树展示系统的具体实施方式及其功效,详细说明如后。
[0016] 根据实施例提供了一种大规模集成电路层次树展示系统,如图1所示,包括数据库、显示界面、存储有计算机程序的存储器和处理器,所述数据库用于存储大规模集成电路层次树的层级信息和每一节点的节点虚拟标识信息和实体信息,所述实体信息包括节点对应的节点标识、子节点数量和子节点行高;子节点行高指的是子节点需要呈现时所占据的高度。所述显示界面用于展示所述层次树,可以理解的是,由于大规模集成电路层次树规模庞大,所述显示界面显示的通常仅为层次树的部分结构。
[0017] 当所述计算机程序被所述处理器执行时,实现以下步骤:
[0018] 步骤S1、基于所述显示界面当前呈现的层次树获取节点展开指令,从所述节点展开指令中解析出第一目标节点的节点标识、第一目标节点包含的目标子节点数量X和目标子节点行高h。
[0019] 需要说明的是,当前呈现在显示界面中的节点一定包含实体信息。
[0020] 步骤S2、将第一目标节点的状态标注为依赖节点,并基于所述层级信息和每一目标子节点的节点虚拟标识信息构建对应的目标子节点的虚拟列表,每一节点的初始状态标注为非依赖节点。
[0021] 需要说明的是,每一依赖节点对应一个独立的虚拟列表,虚拟列表中仅包括每一目标子节点的节点虚拟标识信息,并不直接加载实体信息,当存在显示需求时再加载对应的实体信息,相较于现有技术中直接加载所有节点的实体信息,极大减小了内存开销。
[0022] 步骤S4、获取第一目标节点对应于当前滚动条的第一位置、可视区域底部对应于当前滚动条的第二位置,确定第一位置和第二位置之间的距离H。
[0023] 步骤S5、若H≥X*h,则从所述数据库中加载所述目标子节点的虚拟列表中每一目标子节点对应的实体信息,在所述显示界面进行显示;若H
[0024] 作为一种实施,所述大规模集成电路层次树的任意一个节点A的子节点为{A1,m mA2,…,Am,…,AM},Am为节点A的第m个子节点,m的取值范围为1到M;Am子节点为{a1 ,a2 ,…,m m m
an ,…,aN }, an 为Am的第n个子节点,n的取值范围为1到N,需要说明的是,不同节点对应的M值、N值可以相同,也可以不同。在所述滚动条对应的区域中,A1,A2,…,Am,…,AM从上到m m m m
下依次设置,若Am被标注为依赖节点,则将a1 ,a2 ,…,an ,…,aN从上到下依次设置在Am和Am+1之间,需要说明的是,滚动条对应的区域中只有显示在可视区域中的节点才需加载实体信息,其他节点全部为虚拟标识信息,且保留层级关系,不占据内存开销。滚动条区域根据显示需求动态变化,当滚动条区域小于等于可视区域时,滚动条区域均能在可视区域呈现,此时不存在不可视区域。当滚动条区域大于可视区域时,则滚动条区域分为可视区域和不可视区域。显示界面显示的区域为可视区域。为了提高显示界面上下滑动过程的流畅性,可以在可视区域上下设置一定的余量,也即将当前位于可视区域上边界预设的第二缓冲高度,以及位于可视区域下边界预设的第一缓冲高度之内的节点,也加载对应的实体信息。作为一种实施例,所述步骤S4替换为:
[0025] 步骤S4’、获取第一目标节点对应于当前滚动条的第一位置、距离可视区域下边界以下预设第一缓冲高度的第三位置,确定第一位置和第三位置之间的距离H。
[0026] 作为一种实施例,所述步骤S4或步骤S4’中,所述获取第一目标节点对应于当前滚动条的第一位置,包括:
[0027] 步骤S41、获取接收层次树接收节点展开指令时滚动条的长度L0,更新滚动条的长度L0= L0+X*h;
[0028] 步骤S42、获取第一目标节点对应于可视区域的位置;
[0029] 步骤S43、基于第一目标节点对应于可视区域的位置、更新后的滚动条的长度、当前滚动条和可视区域的对应关系确定第一目标节点对应于当前滚动条的第一位置。
[0030] 作为一种实施例,所述步骤S2之前还包括:
[0031] 步骤S2’、获取接收节点展开指令时所述层次树对应的高度H’,若H’与 X*h的和小于等于可视区域的高度,则直接从所述数据库中加载所述目标子节点的虚拟列表中每一目标子节点对应的实体信息,在所述显示界面进行显示,否则,执行步骤S2。
[0032] 作为一种实施例,当所述计算机程序被所述处理器执行时,还实现以下步骤:
[0033] 步骤S10、基于所述显示界面获取鼠标滑动信息。
[0034] 步骤S20、解析所述鼠标滑动信息,确定当前滚动条位置,所述当前滚动条位置为当前滚动条与可视区域上边界的交点位置。
[0035] 步骤S30、基于当前滚动条位置、当前所有依赖节点对应的子节点数量和子节点高度确定当前可视区域对应的起始节点。
[0036] 需要说明的是,属于同一父节点的子节点的高度均一致,属于不同父节点的子节点的高度可以相同也可以不同,优选的,所有节点的高度均相同。基于当前所有依赖节点对应的子节点数量和子节点高度能够确定滚动条对应的区域中对应的所有节点的顺序和高度,再结合当前滚动条位置,通过计算即可确定起始节点。
[0037] 如图2所示示例,Node1、Node2、Node3表示位于根节点之下的三个节点,Node2_1,Node2_2,…,Node2_n表示节点Node2的子节点,当前滚动条位置为130,行高为10,已知当前Node2 位于根节点之下第二个节点, 占据行高20, 剩余110长度为Node2 节点之后的长度, 也就是11 行, 那么起始节点即为Node2 节点下第 12 个节点。
[0038] 步骤S40、基于起始节点对应的节点高度、位于起始节点以下且与所述起始节点属于同一个父节点的节点数量、位于起始节点以下的其他所有依赖节点对应的子节点数量和子节点高度以及可视区域高度确定终止节点。
[0039] 步骤S50、从所述数据库中加载所述起始节点、终止节点以及起始节点和终止节点之间所有节点的实体信息,在所述显示界面进行显示。
[0040] 通过步骤S10‑步骤S50在通过鼠标滚动浏览大规模集成电路层次树的过程中,能够快速准确地确定需要显示的节点,并且仅加载需要显示节点的实体信息,滚动区域所对应的其他节点仅需保留虚拟标识信息,极大减小了内存开销,提高了大规模集成电路层次树的绘制性能和效率。
[0041] 为了更进一步节约内存开销,提高大规模集成电路层次树的绘制性能和效率,作为一种实施例,当所述计算机程序被所述处理器执行时,还实现以下步骤:
[0042] 步骤S100、获取当前位于不可视区域的节点信息。
[0043] 步骤S200、判断当前位于可视区域以上,距离可视区域上边界超过预设第二缓冲高度,且标注为非依赖节点的节点中是否存在实体信息,若存在,则将对应的实体信息销毁;判断当前位于可视区域以下,距离可视区域下边界超过预设第一缓冲高度,且标注为非依赖节点的节点中是否存在实体信息,若存在,则将对应的实体信息销毁。
[0044] 作为一种实施例,所述步骤S5之后还包括:
[0045] 步骤S6、基于所述显示界面当前呈现的层次树获取节点收起指令,从所述节点收起指令中解析出第二目标节点的节点标识、第二目标节点包含的目标子节点数量X’和目标子节点行高h’。
[0046] 步骤S7、将第二目标节点状态标注为非依赖节点,删除第二目标节点对应的虚拟列表。
[0047] 步骤S8、获取第二目标节点对应于当前滚动条的第三位置、可视区域底部对应于当前滚动条的第四位置,确定第一位置和第二位置之间的距离H’。
[0048] 步骤S9、基于H’、位于起始节点以下的其他所有依赖节点对应的子节点数量和子节点高度确定新增显示节点,从所述数据库中加载新增显示节点对应的实体信息,在所述显示界面进行显示。
[0049] 通过步骤S6‑步骤S7,能够在节点折起过程中,迅速删除所述第二目标节点对应的虚拟列表,不会增加内存开销,且能快速准确确定需要新增的显示节点对应的实体信息,在所述显示界面进行显示,提高了大规模集成电路层次树的绘制性能和效率。
[0050] 本发明实施例通过构建虚拟列表记录节点和子节点信息,实时推算需要绘制的内容,无需加载所有节点的实体信息,且能主动释放不可视区域的节点实体内容,保留依赖节点的实体内容,极大减小了大规模集成电路层次树展示过程中的内存开销,提高了绘制性能和效率。
[0051] 需要说明的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
[0052] 以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。