【技术实现步骤摘要】
设计层次树子结点信息存储方法、电子设备和介质
[0001]本专利技术涉及芯片
,尤其涉及一种设计层次树子结点信息存储方法、电子设备和介质。
技术介绍
[0002]在芯片设计验证调试软件流程中,需要展示用户设计的模块实例化设计层次树。层次树从最顶层的模块开始构建,把最顶层的模块作为树的根结点。顶层模块中实例化的所有模块实例会作为顶层模块的子结点展示,这些子结点本身又是从其他模块实例化而来的,因此它们本身又包含了其他实例化的实例作为它们的子结点。这个过程递归进行直到叶子结点为止。叶子结点就是实例的模块里面没有再包含对其他模块的实例化,通常是原始单元(priKitive cell)或者空模块。上述过程构建的整棵树称为设计层次树。为了支持通过一个给定的模块实例化名字快速定位到一个结点的子结点,通常会采用一个有序的映射表(map)来存储所有结点的名字和结点本身的信息。这样不但可以保证子结点的生成顺序,还可以通过子结点的实例名字快速的查找到子结点,从而获取更多信息或者选中这个子结点。
[0003]但是,在真实的设计中,每个结点的子结点数目可能存在很大差异,例如有些结点可能包含十万个以上的子结点,而有的结点可能只包含数个或者数十个子结点。上述的使用有序的map来存储所有的子结点信息的方案对子结点数比较少的结点会造成大量的内存浪费。因为有序的map需要额外的内存来管理和存储信息,当里面存储的子结点数太少时,额外花费的内存占比过高,从而造成内存的浪费。
技术实现思路
[0004]本专利技术目的在于,提供一 ...
【技术保护点】
【技术特征摘要】 【专利技术属性】
1.一种设计层次树子结点信息存储方法,其特征在于,包括:步骤S1、在内存中为设计层次树的非叶子结点A
i
构建动态数据结构D
i
,D
i
包括有序map结构K
i
、动态数组结构V
i
、第一指针P1
i
和第二指针P2
i
,V
i
中对应的已存入子结点信息数为U
i
;在初始状态下,K
i
和V
i
均为空,P1
i
设置为有效状态且指向V
i
,P2
i
设置为空指针,U
i
=0;其中,i的取值范围为1到N,N为设计层次树的非叶子结点总数;步骤S2、当需要向D
i
中插入子结点信息时,判断P1
i
和P2
i
中哪一指针为有效状态,若P1
i
为有效状态,则执行步骤S3,若P2
i
为有效状态,则执行步骤S6;步骤S3、将子结点信息插入V
i
中,更新U
i
,执行步骤S4;步骤S4、若U
i
=R,R为预设的动态数组存储数量阈值,则执行步骤S5,否则,返回执行步骤S2;步骤S5、将V
i
中存储的子结点信息复制到K
i
中,释放V
i
,将P1
i
设置为空指针,将P2
i
设置为有效状态且指向K
i
,返回执行步骤S2;步骤S6、将子结点信息插入K
i
中,返回执行步骤S2。2.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:步骤S31、判断待插入子结点信息是否已经存储在V
i
中,若是,则执行步骤S32,否则,执行步骤S33;步骤S32、不再将待插入子结点信息插入V
i
中,保持当前U
i
不变,直接执行步骤S2;步骤S33、将待插入子结点信息插入V
i
中,更新U
i
=U
i
+1,执行步骤S4。3.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:所述步骤S6包括:步骤S61、判断待插入子结点信息是否已经存储在K
i
中,若是,则直接返回执行步骤S2,否则,执行步骤S62;步骤S62、将子结点信息插入K
i
中,返回执行步骤S2。4.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:子结点信息包括指针对(key, Value),key为指向子结点标识的指针,Value为指向子结点详细信息的指针。5.根据权利要求4所述的方法,其特征在于,所述步骤S3包括:所述方法还包括:步骤S01、获取删除目标子结点指令,解析得到目标删除key;步骤S02、判断P1
i
和P2
i
中哪一指针为有效状态,若P1
i
为有效状态,则执行步骤S03,若P2
i
为有效状态,则执行步骤S04;步骤S03、调用预设的删除接口,将V
i
中目标删除key对应的子结点信息删除,更新U
i
=U
i
‑
1;步骤S04、调用预设的删除接口,将K
i
中目标删除key对应的子结点信息删除。6.根据权利要求4所述的方法,其特征在于,所述步骤S3包括:所述方法还包括:步骤S10、获取查找目标子结点指令,解析得到目标查找key;步骤S20、判断P1
i
和P2
i
中哪一指针为有效状态,若P1
i
为有效状态,则执行步骤S30,若P2
i
为有效状态,则执行步骤S40;
步骤S30、调用预设的查找接口,在V
i
中进行查找,获取目标查找key对应的目标查找Value;步骤S40、调用预设的查找接口,在K
i
中进行查找,获取目标查找key对应的目标查找Value。7.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:R为[R1,R2]中的一个值,[R1,R2]为能够实现性能和内存均衡的动态数组存储数量阈值取值范围,所述方法还包括步骤S100、获取动态数组存储数量阈值取值范围 [R1,R2];所述步骤S100包括:步骤S101、获取K
i
对应的管理有序map结构所需内存EM
K
和存储子结点信息所需内存E
K
;步骤S102、基于EM
K
和E
K
确定K
i
对应的内存代价MC
K
,MC
K
=EM
技术研发人员:赵建,张邦全,
申请(专利权)人:上海合见工业软件集团有限公司成都融见软件科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。