CN116090395A - 数据处理方法、数据结构的生成方法、查询方法 - Google Patents
数据处理方法、数据结构的生成方法、查询方法 Download PDFInfo
- Publication number
- CN116090395A CN116090395A CN202211727967.0A CN202211727967A CN116090395A CN 116090395 A CN116090395 A CN 116090395A CN 202211727967 A CN202211727967 A CN 202211727967A CN 116090395 A CN116090395 A CN 116090395A
- Authority
- CN
- China
- Prior art keywords
- node
- basic
- primitive
- current
- information
- 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.)
- Pending
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/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/06—Structured ASICs
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Architecture (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供的数据处理方法,设置多个节点,所述多个节点设置有层级,分为根节点、枝节点和叶子节点,构成二维空间点索引树结构;所述多个节点中全部或部分存储有节点信息;所述节点信息包括:节点对应的区域边界框的信息、列表,所述列表存储有基本图元数量、基本图元编号、所属图层信息、相邻图层信息。本发明还提供的数据结构的生成方法,能够生成本发明数据处理方法的数据结构的文件,而具有相应优势。本发明的查询方法,用于检查版图文件中基本图元之间的连接关系,基于本发明的数据结构生成方法获得的数据结构,具有相应优势,能够大幅提高检查速度,有利于进一步提高超大规模集成电路的设计水平。
Description
技术领域
本发明属于半导体设计和生产技术领域,尤其涉及一种数据处理方法及相应的数据结构的生成方法、相应的查询方法。
背景技术
在超大规模集成电路设计中,目前主流的版图数据文件格式有两种:GDSII格式和OASIS格式。两种版图数据文件格式虽然存储方式有一定差别,但都具有基本图元(BasicCell)和图元(Cell),如GDSII中的基本图元Boundary、Path。根据图元的创建方式,图元有不同的类型,例如GDSII中的SREF、AREF,OASIS中的Repetitions。其中,GDSII中的AREF,通过引用其他基本图元或图元并按规则阵列出大量重复结构,获得新的图元;GDSII中的SREF,通过引用其他基本图元或图元创建出大量重复结构,获得新的图元。
集成电路领域的EDA(Electronic Design Automation)工具对于设计中的阵列类型的处理更加灵活多样,这主要是由集成电路中元器件存在高度可复用的特点所决定的。这种特点决定了版图数据文件的高可压缩性,这也同时说明了版图数据文件的完全展开将产生大量冗余信息而占用大量计算机存储空间,不利于高效的查找并提取相关基本图元信息。
在半导体设计和生产领域中需要检查基本图元之间的连接关系,由上述可知现有的常规版图数据文件格式下的数据结构中对提取基本图元信息并检查基本图元之间的连接关系,无法满足当前查询速度的要求,效率难以进一步提高。
因此需要深入研究一种数据结构的生成方法,以及查询方法能够适用于提取任意基本图元之间的连接关系,并且速度更快,效率更高,以此进一步推动半导体设计和生产技术的深入发展及广泛应用。
发明内容
本发明是为解决上述现有技术的全部或部分问题,本发明一方面提供了数据处理方法,经过该方法处理后的版图文件将方便基本图元间连接关系的查询操作;本发明另一方面提供了一种数据结构的生成方法,能够生成利于提高版图中各图素间的连接关系分析效率的数据结构;本发明还提供了相应的查询方法,能够快速提取任意基本图元之间的连接关系,用空间点索引树数据结构替代线性数据结构,再查询,进一步提高分析版图文件中各图元间的连接关系的效率。
本发明一方面提供的一种数据处理方法,设置多个节点(node),所述多个节点设置有层级,分为根节点、枝节点和叶子节点,构成二维空间点索引树结构;所述多个节点中全部或部分存储有节点信息;所述节点信息包括:节点对应的区域边界框(Boundary Box)的信息、列表,所述列表存储有基本图元数量、基本图元编号、所属图层信息、相邻图层信息;其中,所述区域边框(Boundary Box)是指节点对应的区域;所述基本图元数量是指与所述节点对应的区域边界框(Boundary Box)存在交集的基本图元的个数;所述基本图元编号用于标识基本图元,所述列表存储的基本图元编号对应与所述节点对应的区域边界框存在交集的基本图元;所属图层信息标识所述节点中基本图元所属的图层,所述相邻图层信息是指与所属的图层有相邻连接关系的图层的信息。一般情况中,全部所述节点中的基本图元编号是连续的。
所述根节点和所述枝节点中不存储所述节点信息,所述节点信息是指所述叶子节点所包含的信息。即叶子节点信息包括叶子节点对应区域边框(Boundary Box)的信息,以及一个列表,存储了与该叶子节点对应的区域边框存在重叠区域的基本图元编号、所属图层信息、所属图层的相邻图层信息;其中,所述区域边框(Boundary Box)是指节点对应的区域,如构建成四叉树结构时,叶子节点对应的是版图文件被持续四等分后的最小矩形框;基本图元数量是指与该叶子节点相关的基本图元的个数;基本图元的编号用于标识基本图元;所属图层信息指与该叶子节点相关的基本图元属于哪个图层;所属图层的相邻图层信息是指与所属图层有上下连接关系的图层信息,表征具有上下连接关系的图层信息。
所述二维空间点索引树结构是四叉树结构;所述区域边界框为矩形区域,所述根节点对应的是框选版图文件中所有基本图元的最小矩形框,所述叶子节点对应的是所述版图文件被持续四等分后的最小矩形框。
所述枝节点对应四个下一级枝节点或者四个所述叶子节点;当所述枝节点下分四个所述叶子节点时,若基本图元(Basic Cell)的区域在空间上与多个所述叶子节点对应的区域边框存在交集,则将所述基本图元对应的节点信息留在所述枝节点上,不插入所述叶子节点中;具有基本图元的枝节点和叶子节点中存储有所述节点信息。即具有基本图元(Basic Cell)的枝节点,所包含信息:枝节点对应区域边框(Boundary Box)的信息,以及一个列表,存储了留在枝节点中的基本图元编号、所属图层信息、所属图层的上下图层信息;叶子节点所包含信息:叶子节点对应区域边框(Boundary Box)的信息,以及一个列表,存储了与该叶子节点对应的区域边框存在重叠区域的基本图元编号、所属图层信息、所属图层的上下图层信息。
所述区域边框的信息包含所述区域边框的尺寸信息和坐标信息。
所述基本图元是指图层中的多边形结构图形。
本发明另一方面提供的数据结构的生成方法,包括:步骤S1.获取版图文件(例如GDSII版图文件)并遍历获得图层信息;所述图层信息包含图元信息和基本图元信息;步骤S2.对基本图元进行编号,包括对组成同一个图元的基本图元进行连续编号(保证图元中的基本图元编号连续)且所有基本图元的编号连续;步骤S3.基于已编号的版图文件创建二维空间点索引树数据结构,生成数据结构的文件;其中,所述基本图元是指图层中的多边形结构图形;所述基本图元信息包含基本图元的所属图层信息、位置信息和尺寸信息;所述图元是指由若干个基本图元组成的图形,所述图元信息包含所述图元的创建方式,所述创建方式包括:引用基本图元或图元的方式(如GDSII中的SREF),和/或阵列基本图元或图元的方式(如GDSII中的AREF);所述基本图元是指图层中的多边形结构图形(如GDSII中的填充多边形Boundary、带一定宽度的线条Path);所述基本图元信息包含基本图元的所属图层信息、位置信息和尺寸信息;所述步骤S3的过程包括:确定框选所有图层的初始节点边界框,基于所述初始节点边界框确定的区域与节点所属层级得到节点边界框确定的区域,所述节点边界框与节点对应;将已编号的基本图元作为数据对象,基于编号遍历数据对象(即基本图元),根据所述位置信息确定与当前数据对象所属区域有重叠的节点边界框所对应的当前节点;基于所述当前节点内数据对象的数量确定当前数据对象插入的节点;完成遍历,生成所有节点的层级设置。
有些版图文件例如GDSII具备的特征可以被描述成树状结构,但这种树状结构并不利于做快速索引,通过基于节点边界框进行分级分区,构建二维空间点索引树结构考虑了空间信息,生成的数据结构将信息整合分治能达到快速索引到空间相关图形的目的。
所述确定框选所有图层的初始节点边界框的方法,包括根据各图层在不同方向上的最大延伸,或者根据基本图元的坐标在不同方向上最大值确定所述初始节点边界框。
节点边界框指初始节点边界框根据节点所属层级进行多级区域划分后的面积最小的矩形框。在有些实施例中节点边界框是初始节点边界框经过多次四等分后对应的最小单元的矩形框,基本图元不能横跨不同多个节点边界框,同等级的不同节点边界框的区域不存在相互重叠。
基于所述初始节点边界框确定的区域与节点所属层级得到节点边界框确定的区域的过程包括:将所述初始节点边界框确定的区域根据对应节点的所属层级依次分割为多个一级子区域,对应形成多个一级节点边界框;下一级节点边界框确定的区域为上一级节点边界框确定的区域分割形成的子区域。
所述步骤S3还包括预定义所述二维空间点索引树中各节点内关联对象数量最大值,和所述二维空间点索引树最大深度。
将所述关联对象数量最大值记为M,所述最大深度记为N;将当前节点的层级数记为j,j∈[0,N],当前节点内已插入的数据对象数量记为i,i为正整数;基于编号正序遍历数据对象,包括:初始化j=0,i=M,即所述初始节点边界框对应根节点,将M个数据对象逐个插入所述根节点;步骤一:j=j+1,划分下一层级枝节点,所述枝节点与所述节点边界框一一对应;步骤二:遍历第j-1级节点内的数据对象:确定当前数据对象所属的当前节点并插入相应的当前节点,完成遍历;步骤三:遍历当前剩余的数据对象,确定当前数据对象所属的当前节点;若i<M,将当前数据对象插入相应的当前节点,i=i+1;若i≥M,若j<N,返回步骤一;重复步骤一至三;若j=N,进行步骤四:将当前节点构建为叶子节点,并将全部数据对象添加到叶子节点的存储表中。达到最大深度N,则不再往下划分,根据上述过程,遍历完所有的数据对象,完成边界框各级分区和二维空间点索引树数据结构的构建。该数据结构映射可以以避免高内存占用。
所述将当前数据对象插入相应的当前节点是指将一个数据对象插入相应的一个或多个下一级枝节点中。根据每个数据对象(基本图元)的位置信息判断与哪些下一级节点边界框有重叠(可能与一个或多个下一级节点边界框有重叠),确定好有重叠的下一级节点边界框之后即可确定对应的下一级枝节点,再将数据对象插入对应的一个或多个下一级枝节点中。
若i=0,当前一级枝节点覆盖的区域不包含任何数据对象,则返回空指针。即表示当前一级枝节点是一个不包含任何数据对象的空指针节点。
所述二维空间点索引树包括四叉树、平衡多叉查找树(B-Tree、B+-Tree)、k维树(任意维度树kD-Tree)、水平垂直树(HV-Tree)或空间数据索引树(R-Tree)中任一种。
本发明还提供了一种查询方法,用于检查版图文件中基本图元之间的连接关系,基于本发明一方面提供的生成方法生成数据结构的文件;包括迭代检查连接关系;所述迭代检查连接关系的步骤包括:第一步,将选定的起始坐标设定为当前检查窗口,并选定当前目标图层,生成图层列表;建立长度与基本图元数量相同的标识符数组,并初始化所有标识符为“未检查”,所述标识符与基本图元(Basic Cell)一一对应;建立检索队列,用于存放待检查基本图元(Basic Cell)的索引序号;建立可疑对象队列,用于存放待检查的可能与检查窗口存在重叠关系的基本图元(Basic Cell)的索引序号;所述索引序号与基本图元编号一一对应;第二步,初始化所述可疑对象队列;第三步,检查所述可疑对象队列中的基本图元的空间信息,将符合条件的基本图元放入所述检索队列,并清空所述可疑对象队列;第四步,将所述检索队列首部的基本图元记为当前基本图元,将所述当前基本图元的多边形结构图形区域设定为当前检查窗口,提取当前基本图元对应图层在版图空间上具有连接关系的相邻图层,将所述相邻图层和当前基本图元对应图层加入图层列表以更新图层列表;将所述当前基本图元的索引序号(第一个基本图元编号)放入检查结果集合并将其对应的标识符更新为“已检查”(通过标记标识符为“已检查”,标识符数组的设置目的是进行标记),将所述当前基本图元从所述检索队列里移除;第五步,更新所述可疑对象队列,检查当前的所述可疑对象队列中的基本图元的空间信息以及是否已经被标记为“已检查”,将还未标记为“已检查”且符合条件的基本图元的索引序号放入当前的所述检索队列;第六步,判断当前的所述检索队列是否为空,若否,则重复所述第四步至第五步,直至当前的所述检索队列为空;其中,初始化和更新所述可疑对象队列的操作包括:根据当前检查窗口的位置信息和坐标信息从根节点开始逐级查找与当前检查窗口存在重叠的区域所对应的枝节点,将查找到的枝节点中所有基本图元的索引序号放入所述可疑对象队列;所述空间信息包括:基本图元与当前检查窗口的重叠关系及其所属图层是否在所述图层列表内;所述符合条件是指基本图元与当前检查窗口重叠且在其所属图层在所述图层列表内。
所述查询方法的过程包括:获取初始版图文件,确定目标基本图元,所述数据结构的文件包括根据所述初始版图文件生的成第一数据结构文件;基于所述第一数据结构文件,进行所述迭代检查连接关系,获得初始检查结果集合;所述初始检查结果集合是所述初始版图文件中不考虑切断图层,与所述目标基本图元存在连接关系的所有基本图元;根据所述初始检查结果集合新建第一版图文件(如GDSII版图文件);获取所述初始版图文件的切断图层新建为第二版图文件;利用所述第二版图文件对所述第一版图文件进行截断操作(例如可通过简单的几何运算实施),即利用所述第二版图文件中的切断图层删除所述第一版图文件中对应图层的重叠区域,将更新后的所述第一版图文件记为第三版图文件,所述数据结构的文件还包括根据所述第三版图文件生成的第二数据结构文件;针对所述第二数据结构文件,进行所述迭代检查连接关系,获得最终检查结果集合。
所述最终检查结果集合中是与所述目标基本图元存在连接关系的所有基本图元(包括所述目标基本图元)。
所述第一版图文件的层级深度设置为1。
本发明提供的查询方法还能实现选择切断图层的功能,以获得仅考虑所述切断图层后,与目标基本图元存在连接关系的所有基本图元。所述新建第一版图文件之前,选择切断图层;所述初始版图文件的切断图层是指所选择的切断图层。所述选择切断图层的功能通过下述方式实现:所述新建第一版图文件过程中,仅获取所述初始版图文件中所选择的切断图层新建为所述第二版图文件,并利用所述第二版图文件对所述第一版图文件进行截断操作(简单的几何运算),即利用所述第二版图文件中的切断图层删除所述第一版图文件中对应图层的重叠区域,并将截断操作后的所述第一版图文件作为所述第三版图文件。切断图层是根据实际应用情况选择的切断图层,查询获得的基本图元是考虑实际选择的切断图层后与目标基本图元存在连接关系的所有基本图元,更好的符合实际应用的需要,获得的结果能够直接利用在实际工作中,查询针对性更强,且利于实际工作整体过程的效率改善。切断图层的影响在实际芯片相应层生产前是有必要进行处理的,因此实际芯片相应位置是会被切断图层给切断的。在设计阶段考虑切断图层对被切断的图层的连通性的影响进一步完善了查询方法。
在所述获得最终检查结果集合之后,获取得到得所有基本图元,并在所述初始版图文件中添加标识层对其进行高亮显示。对基本图元在初始版图文件中进行标识有利于指导版图设计和分析。
所述更新所述可疑对象队列的方法包括:当所述枝节点的下一级节点中均包含若干个基本图元,则在所述枝节点中插入所述若干个基本图元,并将所述若干个基本图元从所述下一级节点中剔除;所述从根节点开始逐级查找的方法包括:判断所述当前基本图元的编号与所述枝节点内存储的基本图元编号是否存在相同,若存在,则不往下查找;若不存在,则继续往下查找。
将下一级节点中的数据对象数量记为Y,将需要插入基本图元的所述枝节点下的数据对象数量记为X;预设X比Y(X/Y)的阈值,基于所述阈值判断是否插入所述枝节点。
所述迭代检查连接关系的步骤中还包括:对所述检索队列和/或所述可疑对象队列中的基本图元进行去重,剔除重复出现的基本图元编号。
与现有技术相比,本发明的主要有益效果:
1、本发明的数据处理方法,处理后的版图文件相对于GDSII等版图文件,能够简化基本图元的连接关系检查操等作,能够避免在明显无用的相交判断上的大量算力消耗,大幅提高查找并提取相关基本图元信息的效率,且利于进一步优化计算机资源。
2、本发明的数据结构的生成方法,能够生成本发明的数据处理方法的数据结构,具有相应优势,能够避免高内存占用,并且能够得到利于提高索引效率的数据结构。
3、本发明的查询方法,用于检查版图文件中基本图元之间的连接关系,具有相应优势,大幅降低了版图中基本图元连接关系查询的综合耗时,能够高效的查找并提取相关基本图元信息,检查速度快、检查结果可靠,进一步提高了超大规模集成电路设计水平。
附图说明
图1为本发明实施例二的数据结构的生成方法过程示意图。
图2(a)为本发明实施例二的版图文件示意图。
图2(b)为本发明实施例二的数据结构示意图。
图2(c)为本发明实施例二的版图文件中图元示意图。
图3(a)至图3(g)分别为本发明实施例二的各图层的基本图元示意图。
图3(h)为本发明实施例二的M1图层结构示意图。
图3(i)为本发明实施例二的M1图层及区域边界框示意图。
图4为本发明实施例二的基本图元及其编号示意图。
图5为本发明实施例三的创建四叉树数据结构过程示意图。
图6(a)为本发明实施例三的版图文件分区示意图。
图6(b)为本发明实施例三的四叉树数据结构示意图。
图7为本发明实施例四的查询方法示意图。
图8为本发明实施例四的迭代检查连接关系流程示意图。
具体实施方式
下面将对本发明具体实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在一些实施例中为了检查Basic Cell的连接关系,创建了一种线性数据结构用于唯一标识根节点下所有Basic Cell,再基于此种线性数据结构进行检查分析GDSII版图中Basic Cell连接关系,这样的方法在一定程度上实现了快速检查分析GDSII版图中BasicCell连接关系,提高了查询速度和效率。但面对超大规模集成电路动辄亿级以上的BasicCell数量时,上述做法中将大量算力消耗在明显无用的相交判断上,因此还是存在不必要的耗时,综合耗时仍较高,为了进一步完善,本发明通过下述实施例提供利用二维空间点索引树数据结构来改进上述创建的线性数据结构查询效率的办法,为大幅降低版图BasicCell连接关系查询的综合耗时提供解决方案。下述实施例中以四叉树和GDSII版图文件为例,用四叉树数据结构替代线性数据结构,用于查询,提高分析版图文件中各图元间的连接关系的效率,考虑了空间信息将信息整合分治以达到快速索引到空间相关图形的目的。需要说明的是二维空间点索引树还可以是其他的一些更加高级的二维图形索引树,如HV-Tree、B-Tree、B+-Tree、R-Tree,以及任意维度树kD-Tree等,根据具体应用相应设计,并不限定。相比于线性数据结构的查询效率,例如以四叉树数据结构和对应的查询方法的查询效率经验证普遍提高10-80倍左右,少数版图的查询效率提升已经达到了100倍以上。
以上说明是为了更好地理解本发明而不以任何形式限制本发明的范围。
实施例一
本发明实施例一中,提供一种数据处理方法,包括:设置多个节点(node),多个节点设置有层级,分为根节点、枝节点和叶子节点,构成二维空间点索引树结构;多个节点中全部或部分存储有节点信息;节点信息包括:节点对应的区域边界框(Boundary Box)的信息、列表,列表存储有基本图元数量、基本图元编号、所属图层信息、相邻图层信息;其中,区域边框(Boundary Box)是指节点对应的区域;基本图元数量是指与节点对应的区域边界框(Boundary Box)存在交集的基本图元的个数;基本图元编号用于标识基本图元,列表存储的基本图元编号对应与节点对应的区域边界框存在交集的基本图元;所属图层信息标识节点中基本图元所属的图层,相邻图层信息是指与所属的图层有相邻连接关系的图层的信息。示例的情况中,四叉树数据结构的节点中基本图元是根据空间进行分配,所以单个节点中的基本图元没有连续属性要求。
本实施例中,一个示例的情况中设置的多个节点包含根节点、多级枝节点、叶子节点,根节点下对应四个枝节点,枝节点下对应四个下一级枝节点或者四个叶子节点。根节点和枝节点不存储节点信息,叶子节点所包含信息:叶子节点对应区域边框(Boundary Box)的信息,以及一个列表,存储了与该叶子节点对应的区域边框存在重叠区域的基本图元编号、所属图层信息、所属图层的上下图层信息;其中,示例的区域边框(Boundary Box)是指节点对应的矩形区域,如叶子节点对应的是版图文件被持续四等分后的最小矩形框;基本图元数量是指与该叶子节点相关(与叶子节点对应的区域边界框存在交集)的基本图元的个数;基本图元的编号用于标识基本图元;所属图层信息指与该叶子节点相关的基本图元属于哪个图层;所属图层的上下图层信息是指与所属图层有上下连接关系的图层信息,表征具有上下连接关系的图层信息。
在还有的示例情况中,设置的多个节点也是包含根节点、多级枝节点、叶子节点,根节点下对应四个枝节点,枝节点下对应四个下一级枝节点或四个叶子节点。当某个枝节点需下分四个叶子节点时,如发现基本图元会跨多个叶子节点,那么就不动这个基本图元的位置(将该基本图元对应的节点信息留在枝节点上),叶子节点中不插入此基本图元;具有基本图元的枝节点包含信息:枝节点对应区域边框(Boundary Box)的信息,以及一个列表,存储了留在枝节点中的基本图元编号、所属图层信息、所属图层的上下图层信息;叶子节点所包含信息:叶子节点对应区域边框(Boundary Box)的信息,以及一个列表,存储了与该叶子节点对应的区域边框存在重叠区域的基本图元编号、所属图层信息、所属图层的上下图层信息;其中,区域边框(Boundary Box)是指节点对应的矩形区域,如叶子节点对应的是版图文件被持续四等分后的最小矩形框;基本图元数量是指与该节点相关的基本图元的个数;基本图元的编号用于标识基本图元;所属图层信息指与该节点相关的基本图元属于哪个图层;所属图层的上下图层信息是指与所属图层有上下连接关系的图层信息,表征具有上下连接关系的图层信息。
上述两种示例的做法,第一种是在枝节点中不存储基本图元编号,只在叶子节点中存储;而第二种是针对横跨多个节点的基本图元编号保留在上一级节点中,设置第二种的目的是进一步降低区域判断的计算量。
实施例二
基于实施例一中的数据结构为例,本实施例对数据结构的生成方法展开示例。如图1所示,具体包括下述步骤:步骤S1.获取版图文件(GDSII版图文件)并遍历获得图层信息;步骤S2.对基本图元进行编号,并保证图元中的基本图元编号连续且所有基本图元的编号连续;步骤S3.基于已编号的GDSII版图文件创建四叉树数据结构。
获取如图2(a)所示的版图文件,示例的是GDSII版图文件,共包含7个图层,分别是:M1、M2、M3、V1、V2、MC1、MC2。图2(a)中,以M1_drawing(L101D0)表示M1图层;以M2_drawing(L103D0)表示M2图层;以M3_drawing(L105D0)表示M3图层;以V1_drawing(L102D0)表示V1图层;以V2_drawing(L104D0)表示V2图层;以MC1_drawing(L90D0)表示MC1图层;以MC2_drawing(L91D0)表示MC2图层。其中,V1用于连接M1和M2,V2用于连接M2和M3,MC1用于截断M1,MC2用于截断M2。GDSII版图文件具备的特征也可以被描述成树状结构,根据图2(a)的版图文件生成如图2(b)所示的基于图层信息的数据结构的文件,其顶层图元命名为CELL_001,第二层共有4个图元分别命名为CELL_001Upper、CELL_001cut、CELL_001drop_out、CELL_001linker3,其中CELL_001Upper又由三个第三层图元组成:CELL_001base、CELL_001linker1、CELL_001linker2,可结合图2(c)理解。
针对步骤S1中关于遍历信息获取具体步骤如下:步骤1:从待检查的根图元节点(即CELL_001)开始,迭代进入各图元子节点统计基本图元起始位置信息以及当前图元节点下基本图元的个数信息,分别示例如下:
CELL_001共有4个子Cell节点,共有基本图元38个。如图3(a)所示,CELL_001Upper在CELL_001中的起始基本图元的编号为0,共包括26基本图元(阵列1次);如图3(b)所示,CELL_001cut在CELL_001中的起始基本图元的编号为26,包含2个基本图元(阵列3次);如图3(c)所示,CELL_001drop_out在CELL_001中的起始基本图元的编号为28,包含4个基本图元(阵列1次);如图3(d)所示,CELL_001linker3在CELL_001中的起始基本图元的编号为32,包含2个基本图元(阵列1次)。
CELL_001Upper共有3个子单元,共有基本图元26个。如图3(e)所示,CELL_001base在CELL_001Upper中的起始基本图元的编号为0,包含10个基本图元(阵列2次);如图3(f)所示,CELL_001linker1在CELL_001Upper中的起始基本图元的编号为20,包含3个基本图元(阵列1次);如图3(g)所示,CELL_001linker2在CELL_001Upper中的起始基本图元的编号为23,包含3个基本图元(阵列1次)。
CELL_001base中共有10个子单元。由于每个子单元都是基本图元,所以CELL_001base下共有基本图元10个,每个图元Cell的起始基本图元的编号即为其单元序号。
CELL_001linker1中共有3个子单元。由于每个子单元都是基本图元,所以CELL_001linker1下共有基本图元3个,每个图元的起始基本图元的编号即为其单元序号。
CELL_001linker2中共有3个子单元。由于每个子单元都是基本图元,所以CELL_001linker2下共有基本图元3个,每个图元的起始基本图元的编号即为其单元序号。
CELL_001cut中共有2个子单元。由于每个子单元都是基本图元,所以CELL_001cut下共有基本图元2个,每个图元的起始基本图元的编号即为其单元序号。
CELL_001drop_out中共有4个子单元。由于每个子单元都是基本图元,所以CELL_001drop_out下共有基本图元4个,每个图元的起始基本图元的编号即为其单元序号。
CELL_001liker3中共有2个子单元。由于每个子单元都是基本图元。所以CELL_001liker3下共有基本图元2个,每个图元的起始基本图元的编号即为其单元序号。
最终得到各节点信息如下表1所示(当前Cell节点下Basic Cell的个数):
表1.节点信息
步骤2:回到待检查的根图元节点(即CELL_001),再次迭代进入各子图元节点统计信息,CELL_001有4个一级子图元节点,共涉及7个图层。示例的是:CELL_001Upper是1行×1列的阵列类型,其一级子Cell共有3个,涉及3个图层,分别是:如图3(h)所示的M1图层结构,取其最大外框为M1图层的区域边界框,具体可参考图3(i);同理取得V1以及M2的区域边界框。将上述3个图层的区域边界框信息保存在CELL_001base中,具体可参考下表2。
表2.区域边界框信息
CELL001linker1是1行×1列的阵列类型,其一级子图元(均为基本图元)共有3个,涉及2个图层:V1和M2。统计这2个图层的区域边界框信息保存到CELL_001linker1中,具体可参考下表3。
表3.区域边界框信息
CELL001linker2是1行×1列的阵列类型,其一级子图元(均为基本图元)共有3个,涉及2个图层:V1和M2。统计这2个图层的区域边界框信息保存到CELL_001linker2中,具体可参考下表4。
表4.区域边界框信息
整合CELL_001Upper所有3个子图元的区域边界框信息,阵列类型将根据其阵列行列数、旋转角度、偏移坐标计算其区域边界框在当前图元下的相对坐标并保存到CELL_001Upper中,具体可参考下表5。
表5.区域边界框信息
CELL_001cut是1行×3列的阵列类型,其一级子图元(均为基本图元)共有2个,涉及2个图层:MC1和MC2。统计这2个图层的区域边界框信息保存到CELL_001cut中,具体可参考下表6。
表6.区域边界框信息
CELL_001drop_out是1行×1列的阵列类型,其一级子图元(均为基本图元)共有4个,涉及3个图层:M2、V2和M3。统计这3个图层的区域边界框信息保存到CELL_001drop_out中,具体可参考下表7。
表7.区域边界框信息
CELL_001linker3是1行×1列的阵列类型,其一级子图元(均为基本图元)共有2个,涉及2个图层:V1和M2。统计这2个图层的区域边界框信息保存到CELL_001linker3中,具体可参考下表8。
表8.区域边界框信息
整合CELL_001所有4个子图元的区域边界框信息,阵列类型将根据其阵列行列数、旋转角度、偏移坐标计算其区域边界框在当前Cell下的相对坐标,具体可参考下表9。
表9.区域边界框信息
针对步骤S2对基本图元的编号,在完成步骤S1图层信息遍历之后,即可得各图层信息和对应的基本图元信息,如图4所示对所有基本图元进行编号后,示例的每个基本图元的编号是1至37号。
针对步骤S3,示例的是构建四叉树数据结构,基于上述已经完成编号的版图文件,具体实施包括:确定框选所有图层的初始节点边界框,基于初始节点边界框确定的区域与节点所属层级得到节点边界框确定的区域,节点边界框与节点对应;将已编号的基本图元作为数据对象,基于编号遍历数据对象(Basic Cells,基本图元),根据位置信息确定与当前数据对象所属区域有重叠的节点边界框所对应的当前节点;基于当前节点内数据对象的数量确定当前数据对象插入的节点;完成遍历,生成所有节点的层级设置。
示例的情况中,确定框选所有图层的初始节点边界框的方法,包括根据各图层在不同方向上的最大延伸,或者根据基本图元的坐标在不同方向上最大值确定初始节点边界框。示例的节点边界框是初始节点边界框经过多次四等分后对应的最小单元的矩形框。
示例的情况中基于初始节点边界框确定的区域与节点所属层级得到节点边界框确定的区域的过程包括:将初始节点边界框确定的区域根据对应节点的所属层级依次分割为多个子区域,对应形成多个节点边界框;下一级节点边界框确定的区域为上一级节点边界框确定的区域分割形成的子区域。
示例的步骤S3还包括预定义二维空间点索引树中各节点内关联对象数量最大值,和二维空间点索引树的最大深度。示例的步骤S3中如图5所示,将关联对象数量最大值记为M,最大深度记为N;将当前节点的层级数记为j,j∈[0,N],当前节点内已插入的数据对象数量记为i,i为正整数;基于编号正序遍历数据对象,包括:初始化j=0,i=M,即初始节点边界框对应根节点,将M个数据对象逐个插入根节点;步骤一:j=j+1,划分下一层级枝节点,枝节点与节点边界框一一对应;步骤二:遍历第j-1级节点内的数据对象:确定当前数据对象所属的当前节点并插入相应的当前节点,完成遍历;步骤三:遍历当前剩余的数据对象,确定当前数据对象所属的当前节点,若i<M,将当前数据对象插入相应的当前节点,i=i+1;若i≥M,若j<N,返回步骤一;重复步骤一至三;若j=N,进行步骤四:将当前节点构建为叶子节点,并将全部数据对象添加到叶子节点的存储表中。
在示例的情况中当待处理的版图文件是已经被切分得十分细碎的版图文件时,可以设定较小的关联对象数量最大值和较大的所述二维空间点索引树最大深度;而当待处理的版图文件存在较多大尺度结构时,则可以反之。M示例得取值范围通常为16至2048,N示例得取值范围通常为4至16。M为预先设定的关联对象数量最大值,即四叉树数据结构中每个节点内部能够存储的基本图元的最大数量,如位于最底端的叶子节点因为无法再往下,则该叶子节点存储的关联对象数量可以超过M;除去位于四叉树数据结构最底端的叶子节点,根节点和位于中间部分的子节点在插入新的基本图元之前,均需要进行节点内部已有基本图元的数量判断;如目前根节点内的基本图元已经有M个,再想插入新的基本图元就不满足根节点内部基本图元数量≤M的要求,则需要对根节点往下划分出四个子节点,同时框选所有基本图元的矩形框也会四等分,再判断已经插入根节点中的M个基本图元分别属于哪些子节点和区域,最后才会进行第M+1个基本图元的归属判断。
结合图4展开示例如下:预设四叉树中各节点内关联对象数量最大值M=6、四叉树的最大深度N=3。一个四叉树节点指代的是一个矩形框区域。四叉树数据结构是每个节点对应每个区域,节点的可存储关联对象数量上限设定是触发是否继续分区的条件。当节点内部的数据对象数量(内部的基本图元编号最大值)大于预设关联对象数量最大值时,节点需要往下划分四个下一级节点,这样的做法目的是为了提高四叉树的实际索引效率,建立出一个能够带来效率提升的四叉树。
先创建四叉树根节点,同时绘制框选所有图层的根节点边界框,根节点边界框对应根节点;将编号0-5的基本图元已插入根节点,再插入编号6的基本图元时,则根节点内的数据对象数量大于预设的M,则需要对版图文件进行四等分,同时根节点下分四个枝节点,先依次判断编号0-5的基本图元与上、下、左、右中哪些子区域有重叠,对应插入子区域对应的枝节点中;接着判断编号6的基本图元属于哪个子区域,在编号6的基本图元插入之前还需判断对应节点中的数据对象数据是否达到预设关联对象数量,如编号6的基本图元插入对应节点后,节点内的数据对象数量>6,则需对此节点进行下分,如编号6的基本图元插入对应节点后,节点内的数据对象数量≤6,则此节点无需下分,将编号6的基本图元插入对应节点即可;接着依次进行编号7-37的基本图元所属区域判断和节点插入动作,但整个过程需满足以下条件:如果当前节点的数据对象数量为零,代表当前节点覆盖的区域不包含任何数据对象,则返回空指针,表示当前节点是一个不包含任何对象的空指针节点;如果当前节点的数据对象数量不为零且小于M,则不需往下划分节点和往下划分区域,则可将关联的需新插入的数据对象插入当前节点,接着根据下一位数据对象所属区域(与哪些区域有重叠关系)确定对应节点,再进行对应区域的对应节点内部的数量判断。
除去上面的两种情况,剩下的情况就是当前节点会因为需新插入的数据对象导致数据对象数量大于M,则代表需要再往下划分四个下一级子区域和四个下一级子节点,但在往下划分四个子区域之前还需判断当前节点的深度是否已达到最大深度N:如未达到最大深度N,则将当前区域和当前节点分别往下划分为四个下一级子区域和四个下一级子节点,先判断当前节点中M个数据所属的下一级子节点并插入对应的子节点中,再判断需新插入的数据对象所属的子节点,在数据对象插入前先判断所属子节点内的数据对象数量;如达到最大深度N,则不再往下划分,将当前的节点构建为叶子节点,并将数据对象添加到叶子节点的存储表中。
最终根据上述过程,遍历完所有的数据对象,完成边界框各级分区和四叉树数据结构的构建,生成如图6(a)所示的版图文件分区示意图和图6(b)四叉树数据结构。
实施例四
本实施例中提供一种版图文件中基本图元之间的连接关系的查询方法,用于检查版图文件中基本图元之间的连接关系,示例的过程如图7所示:包括:获取初始版图文件,确定目标基本图元,数据结构的文件包括根据初始版图文件生的成第一数据结构文件;基于第一数据结构文件,进行迭代检查连接关系,获得初始检查结果集合;初始检查结果集合是初始版图文件中不考虑切断图层,与目标基本图元存在连接关系的所有基本图元;根据初始检查结果集合新建第一版图文件(如GDSII版图文件);获取初始版图文件的切断图层新建为第二版图文件;利用第二版图文件对第一版图文件进行截断操作(例如可通过简单的几何运算实施),即利用第二版图文件中的切断图层删除第一版图文件中对应图层的重叠区域,将更新后的第一版图文件记为第三版图文件,数据结构的文件还包括根据第三版图文件生成的第二数据结构文件;针对第二数据结构文件,进行迭代检查连接关系,获得最终检查结果集合。
其中,如图8所示,迭代检查连接关系的步骤包括:第一步,将选定的起始坐标设定为当前检查窗口,并选定当前目标图层,生成图层列表;建立长度与基本图元数量相同的标识符数组,并初始化所有标识符为“未检查”,标识符与基本图元一一对应;建立检索队列,用于存放待检查基本图元的索引序号;建立可疑对象队列,用于存放待检查的可能与检查窗口存在重叠关系的基本图元的索引序号;索引序号与基本图元编号一一对应;第二步,初始化可疑对象队列;第三步,检查可疑对象队列中的基本图元的空间信息,将符合条件的基本图元放入检索队列,并清空可疑对象队列;第四步,将检索队列首部的基本图元记为当前基本图元,将当前基本图元的多边形结构图形区域设定为当前检查窗口,提取当前基本图元对应图层在版图空间上具有连接关系的相邻图层,将相邻图层和当前基本图元对应图层加入图层列表以更新图层列表;将当前基本图元的索引序号(第一个基本图元编号)放入检查结果集合并将其对应的标识符更新为“已检查”(通过标记标识符为“已检查”,标识符数组的设置目的是进行标记),将当前基本图元从检索队列里移除;第五步,更新可疑对象队列,检查当前的可疑对象队列中的基本图元的空间信息以及是否已经被标记为“已检查”,将还未标记为“已检查”且符合条件的基本图元的索引序号放入当前的检索队列;第六步,判断当前的检索队列是否为空,若否,则重复第四步至第五步,直至当前的检索队列为空;其中,初始化和更新可疑对象队列的操作包括:根据当前检查窗口的位置信息和坐标信息从根节点开始逐级查找与当前检查窗口存在重叠的区域所对应的枝节点,将查找到的枝节点中所有基本图元的索引序号放入可疑对象队列;空间信息包括:基本图元与当前检查窗口的重叠关系及其所属图层是否在图层列表内;符合条件是指基本图元与当前检查窗口重叠且在其所属图层在图层列表内。需要说明的是上述第一步中的图层列表,因只选定最初的目标图层,可理解为最初的图层列表就是指最初的一个目标图层;在第四步中由相邻图层和当前目标图层形成一个有多个图层的列表形式。
有些实施例中,更新可疑对象队列的方法包括:当枝节点的下一级节点中均包含若干个基本图元,则在枝节点中插入若干个基本图元,并将若干个基本图元从下一级节点中剔除;从根节点开始逐级查找的方法包括:判断当前基本图元的编号与枝节点内存储的基本图元编号是否存在相同,若存在,则不往下查找;若不存在,则继续往下查找。
以四叉树数据结构为例,所有节点存储的是自己对应的矩形区域信息,在最底端的叶子节点还存储与自身相关的基本图元编号,因为是采用区域重叠来判断,更新可疑对象队列是将存在区域重叠的叶子节点内所有基本图元放入可疑对象队列,将四个叶子节点共同具有的基本图元编号放置在上一级的枝节点中,同时枝节点还存储全部相关的基本图元编号,即此枝节点存储的信息包含:矩形区域信息、共同基本图元编号、相关的全部基本图元编号。更新可疑对象队列的操作中判断会存在一定的区别,区别如下:根据当前检查窗口(需进行检索的基本图元)的位置信息和坐标信息,从四叉树根节点开始向下查找与当前检查窗口存在重叠的区域(是与版图文件被四等分的矩形区域进行重叠判断)对应的四叉树节点,同时判断需进行检索的基本图元与四叉树节点内存储的基本图元编号是否存在相同;如区域存在重叠且基本图元编号也在存储共同基本图元编号的列表内,则无需再往下再进行区域判断,直接拉取此四叉树节点下的所有基本图元索引序号(相关的全部基本图元编号)放入可疑对象队列;如区域存在重叠但没有与其中一个共同基本图元编号相同,则往下一级节点(例如叶子节点)进行区域重叠判断和编号相同判断。
有些实施例中将下一级节点中的数据对象数量记为Y,将需要插入基本图元的枝节点下的数据对象数量记为X;预设X比Y的阈值,基于阈值判断是否插入枝节点。例如当某个枝节点的下一级四个子节点中,有两个或两个以上的子节点均包含某个/某几个基本图元,则某个枝节点中插入此某个/某几个基本图元,并在子节点中剔除;规则:当下一级子节点下的数据对象数量为Y,需要插入此某个/某几个基本图元的某个枝节点下的数据对象数量为X,当X比Y低于一定阈值时允许插入此某个/某几个基本图元。例如节点A对应下面四个节点B,其中两个下一级节点B中均存在基本图元编号1,那么如果直接将基本图元编号1提到节点A中,相应的节点A中需存储所有相关的基本图元编号,但实际可能存在非必要数据量计算很大的问题,通过在节点中放置横跨多个下一级节点的基本图元编号,就是为了降低判断量和计算量,存在非必要数据量计算很大并不利于完全符合设计要求,由此设定一个阈值,将涉及的两个节点B的数据对象数量与整个节点A涉及的数据对象数量进行判断,例如超过阈值就认为非必要在节点A中存储两个节点B中均存在的基本图元编号1,对于阈值的设定值,可以根据实际应用相应设定,并不限定。
有些实施例中,对检索队列和可疑对象队列中的基本图元进行去重,剔除重复出现的基本图元编号。
结合参考图6(a)和图6(b)基于已经分区与编号的版图文件、以及已经构建的四叉树数据结构,对查询方法展开示例如下:第一次迭代检查连接关系(不考虑切断层),包括以下步骤:
步骤一、基于版图文件中含有38个基本图元,由此对应新建一个长度为38的标识符数组,并初始化所有标识符为“未检查”,每个标识符对应一个基本图元,为深度优先遍历上述四叉树数据结构所产生。
步骤二、新建一个检索队列,用于存放待检查基本图元的索引序号(基本图元编号);新建一个可疑对象队列,用于存放待检查可能与检查窗口存在重叠关系的基本图元的索引序号(基本图元编号)。
步骤三、将用户选定的起始坐标设定为检查窗口(用户可在计算机人机交互页面中通过鼠标点击版图文件中一个位置的方式获得起始坐标),设定用户选择的起始坐标位于编号35的基本图元区域内;并选定目标图层(用户可在计算机人机交互页面中指定一个图层为当前目标图层),设定用户选择的图层是M3。
根据起始坐标的位置信息从四叉树根节点开始向下查找与检查窗口存在重叠的区域(是与版图文件被四等分的矩形区域进行重叠判断)对应的四叉树节点。示例的做法中对相关的四叉树节点和版图文件区域进行黄色高亮显示,将这些节点下的所有基本图元索引序号(34,35,37)放入可疑对象队列;
步骤四、检查可疑对象队列中(34,35,37)各个基本图元与检查窗口的重叠关系以及所属图层是否在目标图层内,检查之后只有编号35的基本图元是符合要求的,将符合条件的基本图元(35)放入检索队列,并清空可疑对象队列;
步骤五、将检索队列首部第一个基本图元(35)设定为检查窗口,提取其上下相关图层(上:无;下:V2),并将目标图层更改为上下相关图层以及图层自身的图层列表[M3,V2],将第一个索引序号35(第一个基本图元编号)放入检查结果并将其标记为“已检查”,将检索队列里面的首个基本图元(35)移除;
步骤六、根据检查窗口(编号35的基本图元区域)的位置信息和坐标信息,从四叉树根节点开始向下查找与检查窗口(35)存在重叠的区域(是与版图文件被四等分的矩形区域进行重叠判断)对应的四叉树节点,经过排查,发现四叉树节点(0-1-0,0-1-1,0-1-2-1,0-1-2-2,0-1-3-1)和版图文件区域符合要求(这些四叉树节点和版图文件区域可以进行黄色或其他颜色高亮显示),将这些四叉树节点下的所有基本图元索引序号放入可疑对象队列;得到可疑对象队列:35,34,35,37,15,35,15,32,35,36,15,19,35。
步骤七、检查可疑对象队列(35,34,35,37,15,35,15,32,35,36,15,19,35)中各个基本图元是否已经被标记为“已检查”,与检查窗口的重叠关系以及图层是否在图层列表内(列表[M3,V2]),将还未标记为“已检查”且与当前检查窗口重叠且在图层列表内的基本图元索引序号放入检查队列,经过检查,发现只有编号36、37符合要求,则检查队列:36、37;
步骤八、回到步骤五,将检索队列首部第一个基本图元(编号36的基本图元)设定为检查窗口,重复操作直到检索队列为空。
获得检查结果集合:{35,36,37,34,32,33,15,18,19,17,16,25,23,24,6,7,9,8,5,22,20,21,3,1,2,0,4}。
步骤九、返回检查结果。
查询版图文件中基本图元间连接关系(考虑切断层),包括以下步骤:
首先,利用上次检查结果新建一个深度为1的GDSII数据结构,并记为第一版图文件;获取初始版图文件的切断图层新建为版图文件记为第二版图文件,并利用第二版图文件对第一版图文件进行截断操作(简单的几何运算),即删除第一版图文件的基本图元中与第二版图文件的基本图元重叠的区域,并将截断操作后的第一版图文件记为第三版图文件;
利用上述四叉树数据结构生成方法,根据第三版图文件生成基于图层的数据结构,(即第二数据结构文件)。下表10中为该数据结构中重新编号后的基本图元(即第三版图文件)与上面获得的检查结果集合中的基本图元(即第一版图文件)的对应关系。
表10.截断操作前后基本图元的编号对应关系表
其中,第三版图文件中的24号基本图元为第一版图文件中的2号基本图元被切断图层截断后的下面半部分,第三版图文件中的25号基本图元为第一版图文件中的2号基本图元被切断图层截断后的上面半部分。
之后,基于根据第三版图文件生成基于图层的数据结构,重新执行上述“第一次迭代检查连接关系”的全部流程,得到最终检查结果。示例的检查结果集合如下:
{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24},其中0号基本图元即为目标基本图元。
最终检查结果集合中是与目标基本图元存在连接关系的所有基本图元(包括目标基本图元)。
有些实施例中提供的查询方法还能实现选择切断图层的功能,以获得仅考虑切断图层后,与目标基本图元存在连接关系的所有基本图元。新建第一版图文件之前,选择切断图层;初始版图文件的切断图层是指所选择的切断图层。选择切断图层的功能通过下述方式实现:新建第一版图文件过程中,仅获取初始版图文件中所选择的切断图层新建为第二版图文件,并利用第二版图文件对第一版图文件进行截断操作(简单的几何运算),即利用第二版图文件中的切断图层删除第一版图文件中对应图层的重叠区域,并将截断操作后的第一版图文件作为第三版图文件。
本发明为了便于叙述清楚而采用的一些常用的英文名词或字母只是用于示例性指代而非限定性解释或特定用法,不应以其可能的中文翻译或具体字母来限定本发明的保护范围。还需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
Claims (18)
1.一种数据处理方法,其特征在于:设置多个节点,所述多个节点设置有层级,分为根节点、枝节点和叶子节点,构成二维空间点索引树结构;
所述多个节点中全部或部分存储有节点信息;所述节点信息包括:节点对应的区域边界框的信息、列表,所述列表存储有基本图元数量、基本图元编号、所属图层信息、相邻图层信息;
其中,所述区域边框是指节点对应的区域;所述基本图元数量是指与所述节点对应的区域边界框存在交集的基本图元的个数;所述基本图元编号用于标识基本图元,所述列表存储的基本图元编号对应与所述节点对应的区域边界框存在交集的基本图元;所属图层信息标识所述节点中基本图元所属的图层,所述相邻图层信息是指与所属的图层有相邻连接关系的图层的信息。
2.根据权利要求1所述的数据处理方法,其特征在于:所述根节点和所述枝节点中不存储所述节点信息,所述节点信息是指所述叶子节点所包含的信息。
3.根据权利要求1或2所述的数据处理方法,其特征在于:所述二维空间点索引树结构是四叉树结构;所述区域边界框为矩形区域,所述根节点对应的是框选版图文件中所有基本图元的最小矩形框,所述叶子节点对应的是所述版图文件被持续四等分后的最小矩形框。
4.根据权利要求3所述的数据处理方法,其特征在于:所述枝节点对应四个下一级枝节点或者四个所述叶子节点;当所述枝节点下分四个所述叶子节点时,若基本图元的区域在空间上与多个所述叶子节点对应的区域边框存在交集,则将所述基本图元对应的节点信息留在所述枝节点上,不插入所述叶子节点中;具有基本图元的枝节点和叶子节点中存储有所述节点信息。
5.根据权利要求1所述的数据处理方法,其特征在于:所述区域边框的信息包含所述区域边框的尺寸信息和坐标信息。
6.数据结构的生成方法,其特征在于,包括:
步骤S1.获取版图文件并遍历获得图层信息;所述图层信息包含图元信息和基本图元信息;
步骤S2.对基本图元进行编号,包括对组成同一个图元的基本图元进行连续编号且所有基本图元的编号连续;
步骤S3.基于已编号的版图文件创建二维空间点索引树数据结构,生成数据结构的文件;
其中,所述基本图元是指图层中的多边形结构图形;所述基本图元信息包含基本图元的所属图层信息、位置信息和尺寸信息;
所述图元是指由若干个基本图元组成的图形,所述图元信息包含所述图元的创建方式,所述创建方式包括:引用基本图元或图元的方式,和/或阵列基本图元或图元的方式;
所述步骤S3的过程包括:确定框选所有图层的初始节点边界框,基于所述初始节点边界框确定的区域与节点所属层级得到节点边界框确定的区域,所述节点边界框与节点对应;
将已编号的基本图元作为数据对象,基于编号遍历数据对象,根据所述位置信息确定与当前数据对象所属区域有重叠的节点边界框所对应的当前节点;
基于所述当前节点内数据对象的数量确定当前数据对象插入的节点;
完成遍历,生成所有节点的层级设置。
7.根据权利要求6所述的数据结构的生成方法,其特征在于:所述确定框选所有图层的初始节点边界框的方法,包括根据各图层在不同方向上的最大延伸,或者根据基本图元的坐标在不同方向上最大值确定所述初始节点边界框;
得到节点边界框确定的区域的过程包括:将所述初始节点边界框确定的区域根据对应节点的所属层级依次分割为多个子区域,对应形成多个节点边界框;下一级节点边界框确定的区域为上一级节点边界框确定的区域分割形成的子区域。
8.根据权利要求6所述的数据结构的生成方法,其特征在于:所述步骤S3还包括预定义所述二维空间点索引树中各节点内关联对象数量最大值,和所述二维空间点索引树最大深度。
9.根据权利要求8所述的数据结构的生成方法,其特征在于:将所述关联对象数量最大值记为M,所述最大深度记为N;
将当前节点的层级数记为j,j∈[0,N],当前节点内已插入的数据对象数量记为i,i为正整数;
基于编号正序遍历数据对象,包括:初始化j=0,i=M,即所述初始节点边界框对应根节点,将M个数据对象逐个插入所述根节点;
步骤一:j=j+1,划分下一层级枝节点,所述枝节点与所述节点边界框一一对应;
步骤二:遍历第j-1级节点内的数据对象:确定当前数据对象所属的当前节点并插入相应的当前节点,完成遍历;
步骤三:遍历当前剩余的数据对象,确定当前数据对象所属的当前节点;若i<M,将当前数据对象插入相应的当前节点,i=i+1;若i≥M,若j<N,返回步骤一;重复步骤一至三;
若j=N,进行步骤四:将当前节点构建为叶子节点,并将全部数据对象添加到叶子节点的存储表中。
10.根据权利要求9所述的数据结构的生成方法,其特征在于:所述将当前数据对象插入相应的当前节点是指将一个数据对象插入相应的一个或多个下一级枝节点中。
11.根据权利要求9所述的数据结构的生成方法,其特征在于:若i=0,当前一级枝节点覆盖的区域不包含任何数据对象,则返回空指针。
12.根据权利要求6-11任一项所述的数据结构的生成方法,其特征在于:所述二维空间点索引树包括四叉树、平衡多叉查找树、k维树、水平垂直树或空间数据索引树中任一种。
13.查询方法,其特征在于:用于检查版图文件中基本图元之间的连接关系,基于权利要求6-12任一项所述的生成方法生成数据结构的文件;包括迭代检查连接关系;
所述迭代检查连接关系的步骤包括:第一步,将选定的起始坐标设定为当前检查窗口,并选定当前目标图层,生成图层列表;建立长度与基本图元数量相同的标识符数组,并初始化所有标识符为“未检查”,所述标识符与基本图元一一对应;建立检索队列,用于存放待检查基本图元的索引序号;建立可疑对象队列,用于存放待检查的可能与检查窗口存在重叠关系的基本图元的索引序号;所述索引序号与基本图元编号一一对应;
第二步,初始化所述可疑对象队列;
第三步,检查所述可疑对象队列中的基本图元的空间信息,将符合条件的基本图元放入所述检索队列,并清空所述可疑对象队列;
第四步,将所述检索队列首部的基本图元记为当前基本图元,将所述当前基本图元的多边形结构图形区域设定为当前检查窗口,提取当前基本图元对应图层在版图空间上具有连接关系的相邻图层,将所述相邻图层和当前基本图元对应图层加入图层列表以更新图层列表;将所述当前基本图元的索引序号放入检查结果集合并将其对应的标识符更新为“已检查”,将所述当前基本图元从所述检索队列里移除;
第五步,更新所述可疑对象队列,检查当前的所述可疑对象队列中的基本图元的空间信息以及是否已经被标记为“已检查”,将还未标记为“已检查”且符合条件的基本图元的索引序号放入当前的所述检索队列;
第六步,判断当前的所述检索队列是否为空,若否,则重复所述第四步至第五步,直至当前的所述检索队列为空;
其中,初始化和更新所述可疑对象队列的操作包括:根据当前检查窗口的位置信息和坐标信息从根节点开始逐级查找与当前检查窗口存在重叠的区域所对应的枝节点,将查找到的枝节点中所有基本图元的索引序号放入所述可疑对象队列;
所述空间信息包括:基本图元与当前检查窗口的重叠关系及其所属图层是否在所述图层列表内;
所述符合条件是指基本图元与当前检查窗口重叠且在其所属图层在所述图层列表内。
14.根据权利要求13所述的查询方法,其特征在于:过程包括:
获取初始版图文件,确定目标基本图元,所述数据结构的文件包括根据所述初始版图文件生的成第一数据结构文件;
基于所述第一数据结构文件,进行所述迭代检查连接关系,获得初始检查结果集合;所述初始检查结果集合是所述初始版图文件中不考虑切断图层,与所述目标基本图元存在连接关系的所有基本图元;
根据所述初始检查结果集合新建第一版图文件;获取所述初始版图文件的切断图层新建为第二版图文件;
利用所述第二版图文件对所述第一版图文件进行截断操作,将更新后的所述第一版图文件记为第三版图文件,所述数据结构的文件还包括根据所述第三版图文件生成的第二数据结构文件;
针对所述第二数据结构文件,进行所述迭代检查连接关系,获得最终检查结果集合;所述最终检查结果集合中是与所述目标基本图元存在连接关系的所有基本图元。
15.根据权利要求14所述的查询方法,其特征在于:所述新建第一版图文件之前,选择切断图层;所述初始版图文件的切断图层是指所选择的切断图层。
16.根据权利要求13-15任一项所述的查询方法,其特征在于:所述更新所述可疑对象队列的方法包括:当所述枝节点的下一级节点中均包含若干个基本图元,则在所述枝节点中插入所述若干个基本图元,并将所述若干个基本图元从所述下一级节点中剔除;
所述从根节点开始逐级查找的方法包括:判断所述当前基本图元的编号与所述枝节点内存储的基本图元编号是否存在相同,若存在,则不往下查找;若不存在,则继续往下查找。
17.根据权利要求16所述的查询方法,其特征在于:将下一级节点中的数据对象数量记为Y,将需要插入基本图元的所述枝节点下的数据对象数量记为X;预设X比Y的阈值,基于所述阈值判断是否插入所述枝节点。
18.根据权利要求13-15任一项所述的查询方法,其特征在于:所述迭代检查连接关系的步骤中还包括:对所述检索队列和/或所述可疑对象队列中的基本图元进行去重,剔除重复出现的基本图元编号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111661388 | 2021-12-31 | ||
CN2021116613886 | 2021-12-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116090395A true CN116090395A (zh) | 2023-05-09 |
Family
ID=84421764
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210864527.3A Pending CN115481592A (zh) | 2021-12-31 | 2022-07-21 | 一种数据处理方法、数据结构的生成方法、查询方法 |
CN202211727967.0A Pending CN116090395A (zh) | 2021-12-31 | 2022-12-30 | 数据处理方法、数据结构的生成方法、查询方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210864527.3A Pending CN115481592A (zh) | 2021-12-31 | 2022-07-21 | 一种数据处理方法、数据结构的生成方法、查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN115481592A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117576249A (zh) * | 2024-01-19 | 2024-02-20 | 弈芯科技(杭州)有限公司 | 一种芯片版图数据处理方法及装置 |
-
2022
- 2022-07-21 CN CN202210864527.3A patent/CN115481592A/zh active Pending
- 2022-12-30 CN CN202211727967.0A patent/CN116090395A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117576249A (zh) * | 2024-01-19 | 2024-02-20 | 弈芯科技(杭州)有限公司 | 一种芯片版图数据处理方法及装置 |
CN117576249B (zh) * | 2024-01-19 | 2024-04-02 | 弈芯科技(杭州)有限公司 | 一种芯片版图数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115481592A (zh) | 2022-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Snoeyink | Point location | |
US10685067B2 (en) | Data visualization system | |
CA2846327C (en) | Systems and methods for generating a large scale polygonal mesh | |
Matsuyama et al. | A file organization for geographic information systems based on spatial proximity | |
Aluru | Quadtrees and octrees | |
CN113268557B (zh) | 一种适应显示导向型可视化分析的快速的空间索引方法 | |
Roumelis et al. | Efficient query processing on large spatial databases: a performance study | |
Ooi | Spatial kd-tree: A data structure for geographic database | |
CN116090395A (zh) | 数据处理方法、数据结构的生成方法、查询方法 | |
Roumelis et al. | An efficient algorithm for bulk-loading xBR+-trees | |
CN115145930A (zh) | 基于树状层次索引的gis矢量数据层次编码方法及装置 | |
CN105740371A (zh) | 一种基于密度的增量聚类数据挖掘方法及系统 | |
Zhou et al. | A quadtree spatial index method with inclusion relations for the incremental updating of vector landcover database | |
Arpitha et al. | A Navigation Supporting System Using R-Tree | |
Gang et al. | Research on spatial index structure of massive point clouds based on hybrid tree | |
Leutenegger et al. | R-trees | |
CN110928968B (zh) | 一种二维地理空间大数据的存储与查询计算机介质 | |
Wang et al. | A Quadtree Spatial Index Method with Inclusion Relations and Its Application in Landcover Database Update. | |
CN110197528B (zh) | 一种地质体存储、可视化和交互方法及系统 | |
Abdelhafeez et al. | DDCEL: Efficient Distributed Doubly Connected Edge List for Large Spatial Networks | |
Zhao et al. | A novel approach of indexing and retrieving spatial polygons for efficient spatial region queries | |
Abubaker | Disk-based Indexing for NIR-Trees using Polygon Overlays | |
Nugroho et al. | Indexing Voronoi cells using quadtree in spatial database | |
Fellegara | Spatial indexes for simplicial and cellular meshes | |
Liu et al. | Research on a New Method of Index in Three-Dimensional Space |
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 |