多层集成电路版图多边形对齐和简化处理方法及装置
技术领域
本发明涉及集成电路版图多边形的简化处理领域,尤其涉及一种多层集成电路版图多边形对齐和简化处理方法及装置。
背景技术
集成电路版图是集成电路原理图与集成电路工艺实现之间的中间环节,是一个必不可少的重要环节。
由于多层集成电路板的厚度及层间距远小于板的尺寸,故可将多层集成电路板的三维电磁波计算场域简化为多个二维计算场域,该二维计算场域即为上下层耦合的平行平板场域,也即为电磁波的传播区域。平行平板场域指的是多层集成电路版图不同金属层的多边形垂直投影到同一层时,在两个金属层的公共面积夹着的一层或多层不含金属层的电介质区域。如果多层集成电路有N层包含多个多边形的金属层,则有N*(N-1)/2种可能的电介质区域。当利用该二维计算场域计算电磁波在多层集成电路金属层之间的电介质中传播时,首先需要识别这种平行平板场域。因实际的多层集成电路每层的版图非常复杂且各不相同,识别其形成的多个平行平板场域是一项具有挑战性的工作。首先,对于一具有N层金属层的集成电路,需要由近至远计算N层金属层两两之间的交集,常规的算法需要将这种交集计算进行N*(N-1)/2次,计算量非常大;其次,不同层在某些相同位置在设计中具有相同版图,这些版图对应的多边形本应严格重合,但是由于提取数据或其他的原因,使得给出的不同层这种本应相同的版图多边形出现了细微的差别,导致不同层金属层之间多边形的交集出现很多细小的碎片,这些细小的碎片会产生碎片化的平行平板场域,在识别完平行平板场域后,将对这些场域进行自适应网格细分,这些碎片的存在将导致在碎片附近产生非常密集的网格,使得高速多层集成电路板全波电磁场的求解时间和内存增大到最终计算不可能完成的程度。因此,有必要对多层集成电路版图的多个多边形进行对齐和简化处理。
然而,发明人在实施本发明的过程中发现,现有技术中对多层集成电路版图多个多边形的对齐和简化处理,仅针对单层多边形进行简化,未处理多层多边形形成平行平板场域后出现碎片化的问题,导致对这些场域进行网格细分时碎片附近产生密集的网格,使得多层集成电路分析的求解时间和内存增大到最终计算不可能完成的程度,且由于相邻多边形之间的缝隙较小,达到纳米量级,现有技术只针对单个多边形进行简化时,并未考虑缝隙两边多边形的重叠问题,造成简化处理中多边形形状发生很小的变化都有可能使得相邻多边形彼此重叠,从而导致集成电路版图的线路之间发生短路,产生不良后果。
发明内容
本申请实施例提供了一种多层集成电路版图多边形对齐和简化处理方法及装置,可以大大减少多层多边形形成平行平板场域后出现的碎片化问题,进而显著减少对这些场域进行网格细分时碎片附近产生的不必要的密集网格,大幅度提升网格质量,缩小多层集成电路分析的求解时间和所需内存,且可以在几乎保持所述多边形形状的前提下,使得即使自适应简化处理前多个多边形之间缝隙宽度为纳米量级,自适应简化处理后多边形彼此之间的缝隙仍完整保留,基本不改变集成电路版图形状,从而保持原始正常的集成电路版图的电路连接。
第一方面,本申请实施例提供了一种多层集成电路版图多边形对齐和简化处理方法,所述方法包括:
获取多层集成电路版图包含多个顶点的多个多边形;
将各层的多个多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多个多边形的各个边包含预先设定的多边形编号信息;
根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形的各个边,同时计算所述多个多边形边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格;
基于所述第一三角形网格,在每个多边形P的内外分别形成夹住所述多边形P的内外辅助多边形P 0与P 9,并通过设定的距离阈值控制所述内外辅助多边形与多边形P的距离;
对落在所述内外辅助多边形之间的各层多边形的边进行对齐和简化处理,并根据各个所述多边形的边所包含的多边形编号信息将所述投影到同一层的多层多边形还原到各层中。
作为一种可能的实施方式,所述对落在所述内外辅助多边形之间的各层多边形的边进行对齐和简化处理,并根据各个所述多边形的边所包含的多边形编号信息将所述投影到同一层的多层多边形还原到各层中,包括:
根据所述边交换法将所述第一三角形网格对齐到所述内外辅助多边形的各个边,形成第二三角形网格;
标识被所述内外辅助多边形夹住的区域中所有多边形的顶点,将被标识顶点定义为与所述多边形P的距离小于预定阈值的多边形顶点;
对每个多边形,根据所述被标识顶点,找出位于所述被标识顶点所在多边形的连续被标识顶点,所述连续被标识顶点形成的部分多边形段或完整的多边形,被视为与所述多边形P重合,将所述重合的部分多边形段或完整的多边形合并到所述多边形P中,形成对齐的多层多边形;
删除所述第二三角形网格中所述重合的部分多边形段或完整的多边形中的所述连续被标识顶点、所述连续被标识顶点之间的边以及所述内外辅助多边形的顶点、边及所有被删除的顶点与边对应的网格节点及网格,形成第三三角形网格,根据所述边交换法将所述第三三角形网格对齐到所述对齐的多层多边形,形成第四三角形网格;
采用单层多边形的简化处理方法对所述投影到同一层且对齐的所述多边形进行简化处理;
根据各个所述多边形的边所包含的多边形编号信息,将所述投影到同一层的多层多边形还原到各层中。
作为一种可能的实施方式,所述根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形的各个边,同时计算所述多个多边形边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格,包括:
收集所有不是两个三角形公共边的多边形的边,按边长排序形成集合Lost;
从所述集合
Lost中取出边长最长的边
并将其从所述集合
Lost中移除;
从所述边
的一个顶点
A出发,搜索包含所述顶点
A且顶点
C、
D位于所述边
两侧的三角形Δ
ACD,若搜索到与所述边
相交的边
并非另一多边形的边,交换所述三角形Δ
ACD与其邻居三角形Δ
DCE的公共边,得到三角形Δ
ACE与Δ
EDA,其中,所述邻居三角形为与该三角形有公共边的三角形;
重复搜索包含所述顶点
A且另外两个顶点位于所述边
两侧的三角形,交换该三角形与其邻居三角形的公共边,直到所述边
为两个邻居三角形的公共边;
若搜索到与所述边
相交的边为另一多边形的边,则取消对该相交的边进行所述交换,而直接在该两条边的交点处新增一个顶点以及一个网格节点,并将该网格节点插入到所述Delaunay三角形网格中,该网格节点将所述两个邻居三角形分为四个三角形,该顶点将两条相交的边分为四条共用该顶点的边;
判断所述集合Lost是否为空集,若否,重新从所述集合Lost中取出最长的边,将其从所述集合Lost中移除并继续进行所述边交换,若是,结束所述边交换,形成第一三角形网格。
作为一种可能的实施方式,所述设定的距离阈值为根据所述多边形和网格的信息进行计算得到的值,所述距离阈值的计算公式为:
,
其中,
n b 表示所述多边形
P边的条数,
l i 表示所述多边形
P第
i条边的长度,
m i =
,
m i 表示所述第
i条边对应的加权因子;
表示向下取整操作;
e max 表示所述网格所有三角形中最大的三角形边长。
作为一种可能的实施方式,所述基于所述第一三角形网格,在每个多边形P的内外分别形成夹住所述多边形P的内外辅助多边形P 0与P 9,并通过设定的距离阈值控制所述内外辅助多边形与多边形P的距离,包括:
将所述多边形P复制为多边形P',生成所述多边形P'的顶点的第五三角形网格T;
在所述三角形网格T中插入辅助节点,使得所述第五三角形网格T中的每个三角形最多有一条边与所述多边形P'的一条边重合,其中,两条边重合是指两条边有两个相同的顶点,该两条边的方向相同或不同;
根据所述多边形
P'的各个边和顶点信息逐一计算所述内外辅助多边形
P 0与
P 9的各个顶点信息:设所述多边形
P'的一个顶点
B的两个相邻边为
和
,该两个相邻边形成边长为
a,
b,
c的三角形Δ
ABC,则该三角形内接圆的半径和圆心的计算公式分别为:
其中,(x i,y i) (i=1,2,3)表示所述三角形ΔABC的三个顶点坐标,
根据所述距离阈值的公式得到与所述顶点B对应的内外辅助多边形的顶点坐标公式分别为:
,
其中,(x b ,y b ) 为所述顶点B的坐标,i=0, 9,分别对应于内辅助多边形P 0、外辅助多边形P 9,与所述顶点B对应的内辅助多边形P 0的顶点取所述三角形ΔABC内接圆的圆心,与所述顶点B对应的外辅助多边形P 9的顶点为该圆心关于所述顶点B的镜像,与所述顶点B对应的内外镜像点坐标分别为:
将所述i=0对应计算出的各个内辅助多边形的顶点依次连接起来,形成所述内辅助多边形,将所述i=9对应计算出的各个外辅助多边形的顶点依次连接起来,形成所述外辅助多边形;
删除所述多边形P'与第五三角形网格T,并将该两个辅助多边形的顶点和边加入到所述第一三角形网格中;
判断所述辅助多边形的边是否相交,若是,在交点处将相交的两个边一分为二,并将该交点加入到所述辅助多边形的顶点以及第一三角形网格中。
作为一种可能的实施方式,所述标识被所述内外辅助多边形夹住的区域中所有多边形的顶点,将被标识顶点定义为与所述多边形P的距离小于预定阈值的多边形顶点,包括:
从所述多边形P任意边e开始,将其左三角形和右三角形形成集合Front,设置集合Polytri=Front,依次将不属于所述内外辅助多边形P 0和P 9顶点的三角形顶点不重复的添加到集合Vert中,此时边e为已处理边;其中,所述多边形P任意边e的左三角形为包含该边e且三角形边e的方向与多边形P边e的方向相同的三角形,所述多边形P任意边e的右三角形为包含该边e且三角形边e的方向与多边形P边e的方向相反的三角形;
从所述集合Front取出一个三角形t并将其从所述集合Front中移除,判断所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形与所述三角形t的公共边是否为所述内外辅助多边形P 0和P 9的一条边,若否,且该一个或多个邻居三角形不在所述集合Polytri中,则将所述三角形t的该一个或多个邻居三角形加入所述集合Front以及所述集合Polytri中,如果该一个或多个邻居三角形的顶点不属于所述内外辅助多边形P 0和P 9的顶点且不在所述集合Vert中,将该一个或多个邻居三角形的顶点不重复的加入到所述集合Vert中;若该一个或多个邻居三角形的边为所述多边形P的边,则将该多边形的边定义为已处理边;
重新从所述集合Front取出一个三角形,将其从所述集合Front中移除,并继续进行所述标识,直到所述集合Front为空;
重新对所述多边形P中的未处理的边,将其左右三角形同时加入到所述集合Front和Polytri中去,并继续进行所述标识,直到所述多边形P的所有边为所述已处理边;
清空所述集合Polytri。
作为一种可能的实施方式,所述将所述重合的部分多边形段或完整的多边形合并到所述多边形P中,包括:
找出所述集合Vert中所有顶点所在的多边形,形成除所述多边形P之外的重合多边形集合Poly;
从所述集合Poly的每个多边形中找出属于所述集合Vert的所述连续被标识顶点,将所述连续被标识顶点以及所述连续被标识顶点之间的边用所述多边形P对应的顶点和边替代,且将所述多边形P中所述替代的顶点和边所在的多边形的编号信息叠加上被替代的顶点和边所在的多边形的编号信息。
作为一种可能的实施方式,所述采用单层多边形的简化处理方法对所述投影到同一层且对齐的所述多边形进行简化处理,包括:
根据外推法识别所述第四三角形网格中多个多边形内所有的三角形;
判断所述第四三角形网格中多个多边形的边是否满足预设规则,并在满足所述预设规则时依据各个所述三角形的质量对所述多个多边形进行自适应简化处理。
第二方面,本申请实施例提供了一种多层集成电路版图多边形对齐和简化处理装置,包括:
获取模块,用于获取多层集成电路版图包含多个顶点的多个多边形;
第一处理模块,用于将各层的多个多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多个多边形的各个边包含预先设定的多边形编号信息;
第二处理模块,用于根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形的各个边,同时计算所述多个多边形边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格;
第三处理模块,用于基于所述第一三角形网格,在每个多边形P的内外分别形成夹住所述多边形P的内外辅助多边形P 0与P 9,并通过设定的距离阈值控制所述内外辅助多边形与多边形P的距离;
第四处理模块,用于对落在所述内外辅助多边形之间的各层多边形的边进行对齐和简化处理,并根据各个所述多边形的边所包含的多边形编号信息将所述投影到同一层的多层多边形还原到各层中。
作为一种可能的实施方式,所述第四处理模块包括:
第一处理子单元,用于根据所述边交换法将所述第一三角形网格对齐到所述内外辅助多边形的各个边,形成第二三角形网格;
第二处理子单元,用于标识被所述内外辅助多边形夹住的区域中所有多边形的顶点,将被标识顶点定义为与所述多边形P的距离小于预定阈值的多边形顶点;
第三处理子单元,用于对每个多边形,根据所述被标识顶点,找出位于所述被标识顶点所在多边形的连续被标识顶点,所述连续被标识顶点形成的部分多边形段或完整的多边形,被视为与所述多边形P重合,将所述重合的部分多边形段或完整的多边形合并到所述多边形P中,形成对齐的多层多边形;
第四处理子单元,用于删除所述第二三角形网格中所述重合的部分多边形段或完整的多边形中的所述连续被标识顶点、所述连续被标识顶点之间的边以及所述内外辅助多边形的顶点、边及所有被删除的顶点与边对应的网格节点及网格,形成第三三角形网格,根据所述边交换法将所述第三三角形网格对齐到所述对齐的多层多边形,形成第四三角形网格;
第五处理子单元,用于采用单层多边形的简化处理方法对所述投影到同一层且对齐的所述多边形进行简化处理;
第六处理子单元,用于根据各个所述多边形的边所包含的多边形编号信息,将所述投影到同一层的多层多边形还原到各层中。
本申请实施例具有如下有益效果:
本申请实施例通过将多层集成电路版图包含多个顶点的多个多边形垂直投影到同一层,并将所述多个多边形边的交点新增为所述多边形的顶点,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格;根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形的各个边,形成第一三角形网格;在每个多边形P的内外分别形成夹住所述多边形P的内外辅助多边形P 0与P 9,并通过设定的距离阈值控制所述内外辅助多边形与多边形P的距离;对落在所述内外辅助多边形之间的各层多边形的边进行对齐和简化处理,可以大大减少多层多边形形成平行平板场域后出现的碎片化问题,进而显著减少对这些场域进行网格细分时碎片附近产生的不必要的密集网格,大幅度提升网格质量,缩小多层集成电路分析的求解时间和所需内存,且可以在几乎保持所述多边形形状的前提下,使得即使自适应简化处理前多个多边形之间缝隙宽度为纳米量级,自适应简化处理后多边形彼此之间的缝隙仍完整保留,基本不改变集成电路版图形状,从而保持原始正常的集成电路版图的电路连接。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例的描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例的流程示意图。
图2为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例中各层多边形投影到同一层后相交并形成Delaunay三角形网格的示意图。
图3为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例中Delaunay三角形网格的局部放大图。
图4为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例中所述边交换法的交换过程的示意图。
图5为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例中形成辅助多边形时选取的一个多边形进行网格剖分的示意图。
图6为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例中形成辅助多边形时对选取的多边形插入辅助节点后的网格剖分示意图。
图7为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例中形成的辅助多边形的示意图。
图8为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例中内外辅助多边形相交示意图。
图9为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例中内外辅助多边形相交情况下识别该内外辅助多边形内所有三角形的示意图。
图10为本申请提供的多层集成电路版图多边形对齐和简化处理装置实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下将参照本发明实施例中的附图,通过实施方式详细地描述本发明的技术方案。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。在本申请的描述中,“第一”、“第二”、“第三”、“第四”、“第五”等仅用于彼此的区分,而非表示它们的重要程度及顺序等。
请参考图1-图8,本申请实施例提供了一种多层集成电路版图多边形对齐和简化处理方法,如图所示,所述方法主要包括:
步骤S1,获取多层集成电路版图包含多个顶点的多个多边形;
步骤S2,将各层的多个多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多个多边形的各个边包含预先设定的多边形编号信息;
步骤S3,根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形的各个边,同时计算所述多个多边形边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格;
步骤S4,基于所述第一三角形网格,在每个多边形P的内外分别形成夹住所述多边形P的内外辅助多边形P 0与P 9,并通过设定的距离阈值控制所述内外辅助多边形与多边形P的距离;
步骤S5,对落在所述内外辅助多边形之间的各层多边形的边进行对齐和简化处理,并根据各个所述多边形的边所包含的多边形编号信息将所述投影到同一层的多层多边形还原到各层中。
采用上述方法,可以大大减少多层多边形形成平行平板场域后出现的碎片化问题,进而显著减少对这些场域进行网格细分时碎片附近产生的不必要的密集网格,大幅度提升网格质量,缩小多层集成电路分析的求解时间和所需内存,且可以在几乎保持所述多边形形状的前提下,使得即使自适应简化处理前多个多边形之间缝隙宽度为纳米量级,自适应简化处理后多边形彼此之间的缝隙仍完整保留,基本不改变集成电路版图形状,从而保持原始正常的集成电路版图的电路连接。
其中,所述多边形定义为,由N条(N≥3)线段首尾顺序连接起来形成的封闭图形,其线段端点形成多边形顶点。如果多边形顶点逆时针排列,定义多边形为正,其内对应集成电路版图导电区域;如果多边形顶点顺时针排列,定义多边形为负,其内对应集成电路版图绝缘区域;所述根据Delaunay三角剖分算法形成的Delaunay三角形网格中的所有三角形的方向都为正。通过数值计算方法计算电磁波在超大规模集成电路中的传播时,需考虑集成电路版图的导电区域、介质层,及由此形成的平行平板场域;所述多层集成电路也可包括多层超大规模集成电路。
作为一种可能的实施方式,所述对落在所述内外辅助多边形之间的各层多边形的边进行对齐和简化处理,并根据各个所述多边形的边所包含的多边形编号信息将所述投影到同一层的多层多边形还原到各层中,主要包括:
步骤5.1,根据所述边交换法将所述第一三角形网格对齐到所述内外辅助多边形的各个边,形成第二三角形网格;
步骤5.2,标识被所述内外辅助多边形夹住的区域中所有多边形的顶点,将被标识顶点定义为与所述多边形P的距离小于预定阈值的多边形顶点;
步骤5.3,对每个多边形,根据所述被标识顶点,找出位于所述被标识顶点所在多边形的连续被标识顶点,所述连续被标识顶点形成的部分多边形段或完整的多边形,被视为与所述多边形P重合,将所述重合的部分多边形段或完整的多边形合并到所述多边形P中,形成对齐的多层多边形;
步骤5.4,删除所述第二三角形网格中所述重合的部分多边形段或完整的多边形中的所述连续被标识顶点、所述连续被标识顶点之间的边以及所述内外辅助多边形的顶点、边及所有被删除的顶点与边对应的网格节点及网格,形成第三三角形网格,根据所述边交换法将所述第三三角形网格对齐到所述对齐的多层多边形,形成第四三角形网格;
步骤5.5,采用单层多边形的简化处理方法对所述投影到同一层且对齐的所述多边形进行简化处理;
步骤5.6,根据各个所述多边形的边所包含的多边形编号信息,将所述投影到同一层的多层多边形还原到各层中。
作为一种可能的实施方式,所述根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形的各个边,同时计算所述多个多边形边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格,主要包括:
步骤3.1:收集所有不是两个三角形公共边的多边形的边,按边长排序形成集合Lost;
步骤3.2:从所述集合Lost中取出边长最长的边并将其从所述集合Lost中移除;
步骤3.3:从所述边
的一个顶点
A出发,搜索包含所述顶点
A且顶点
C、
D位于所述边
两侧的三角形Δ
ACD,若搜索到与所述边
相交的边
并非另一多边形的边,交换所述三角形Δ
ACD与其邻居三角形Δ
DCE的公共边,得到三角形Δ
ACE与Δ
EDA,其中,所述邻居三角形为与该三角形有公共边的三角形;
步骤3.4:重复所述步骤3.3直到所述边
为两个邻居三角形的公共边;
步骤3.5:若搜索到与所述边
相交的边为另一多边形的边,则取消对该相交的边进行所述交换,而直接在该两条边的交点处新增一个顶点以及一个网格节点,并将该网格节点插入到所述Delaunay三角形网格中,该网格节点将所述两个邻居三角形分为四个三角形,该顶点将两条相交的边分为四条共用该顶点的边;请参考图4,图4为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例中所述边交换法的交换过程的示意图;值得注意的是,由于图4中与所述边
相交的边
也为另一个多边形的边,因此取消对该边进行所述交换,而直接在该两条边的交点处新增一个顶点以及一个网格节点
G,并将该网格节点
G插入到所述Delaunay三角形网格中,该网格节点
G将所述两个邻居三角形分为四个三角形,该顶点将两条相交的边分为四条共用该顶点的边;
步骤3.6:判断所述集合Lost是否为空集,若否,转入步骤3.2,若是,结束所述边交换,形成第一三角形网格。
作为一种可能的实施方式,所述设定的距离阈值为根据所述多边形和网格的信息进行计算得到的值,所述距离阈值的计算公式为:
其中,
n b 表示所述多边形
P边的条数,
l i 表示所述多边形
P第
i条边的长度,
m i =
,
m i 表示所述第
i条边对应的加权因子;
表示向下取整操作;
e max 表示所述网格所有三角形中最大的三角形边长。
作为一种可能的实施方式,所述基于所述第一三角形网格,在每个多边形P的内外分别形成夹住所述多边形P的内外辅助多边形P 0与P 9,并通过设定的距离阈值控制所述内外辅助多边形与多边形P的距离,主要包括:
步骤4.1:将所述多边形P复制为多边形P',生成所述多边形P'的顶点的第五三角形网格T;请参考图5,图5为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例中形成辅助多边形时选取的一个多边形进行网格剖分的示意图;
步骤4.2:在所述三角形网格T中插入辅助节点,使得所述第五三角形网格T中的每个三角形最多有一条边与所述多边形P'的一条边重合,其中,两条边重合是指两条边有两个相同的顶点,该两条边的方向相同或不同;请参考图6,图6为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例中形成辅助多边形时对选取的多边形插入辅助节点后的网格剖分示意图;如图所示,所述多边形P'的内部插入了四个辅助节点,形成新的三角形,在图6中,所述第五三角形网格T中每个三角形最多有一条边与所述多边形P'的一条边重合;
步骤4.3:根据所述多边形
P'的各个边和顶点信息逐一计算所述内外辅助多边形
P 0与
P 9的各个顶点信息:设所述多边形
P'的一个顶点
B的两个相邻边为
和
,该两个相邻边形成边长为
a,
b,
c的三角形Δ
ABC,则该三角形内接圆的半径和圆心的计算公式分别为:
其中,(x i,y i) (i=1,2,3)表示所述三角形ΔABC的三个顶点坐标,
根据所述距离阈值的公式得到与所述顶点B对应的内外辅助多边形的顶点坐标公式分别为:
其中,(x b ,y b ) 为所述顶点B的坐标,i=0, 9,分别对应于内辅助多边形P 0、外辅助多边形P 9,与所述顶点B对应的内辅助多边形P 0的顶点取所述三角形ΔABC内接圆的圆心,与所述顶点B对应的外辅助多边形P 9的顶点为该圆心关于所述顶点B的镜像,与所述顶点B对应的内外镜像点坐标分别为:
将所述i=0对应计算出的各个内辅助多边形的顶点依次连接起来,形成所述内辅助多边形,将所述i=9对应计算出的各个外辅助多边形的顶点依次连接起来,形成所述外辅助多边形;请参考图7,图7为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例中形成的辅助多边形的示意图;
步骤4.4:删除所述多边形P'与第五三角形网格T,并将该两个辅助多边形的顶点和边加入到所述第一三角形网格中;
步骤4.5:判断所述辅助多边形的边是否相交,若是,在交点处将相交的两个边一分为二,并将该交点加入到所述辅助多边形的顶点以及第一三角形网格中;请参考图8,图8为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例中内外辅助多边形相交示意图,如图所示,多边形以粗实线画出,辅助多边形以虚线画出,所述辅助多边形的边相交于A、B、C三点,则将该三点也加入到所述辅助多边形的顶点以及第一三角形网格中。
作为一种可能的实施方式,所述标识被所述内外辅助多边形夹住的区域中所有多边形的顶点,将被标识顶点定义为与所述多边形P的距离小于预定阈值的多边形顶点,主要包括:
步骤5.2.1:从所述多边形P任意边e开始,将其左三角形和右三角形形成集合Front,设置集合Polytri=Front,依次将不属于所述内外辅助多边形P 0和P 9顶点的三角形顶点不重复的添加到集合Vert中,此时边e为已处理边;其中,所述多边形P任意边e的左三角形为包含该边e且三角形边e的方向与多边形P边e的方向相同的三角形,所述多边形P任意边e的右三角形为包含该边e且三角形边e的方向与多边形P边e的方向相反的三角形;
步骤5.2.2:从所述集合Front取出一个三角形t并将其从所述集合Front中移除,判断所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形与所述三角形t的公共边是否为所述内外辅助多边形P 0和P 9的一条边,若否,且该一个或多个邻居三角形不在所述集合Polytri中,则将所述三角形t的该一个或多个邻居三角形加入所述集合Front以及所述集合Polytri中,如果该一个或多个邻居三角形的顶点不属于所述内外辅助多边形P 0和P 9的顶点且不在所述集合Vert中,将该一个或多个邻居三角形的顶点不重复的加入到所述集合Vert中;若该一个或多个邻居三角形的边为所述多边形P的边,则将该多边形的边定义为已处理边;
步骤5.2.3:重复所述步骤5.2.2直到所述集合Front为空;
步骤5.2.4:重新对所述多边形P中的未处理的边,将其左右三角形同时加入到所述集合Front和Polytri中去,并继续进行所述标识,直到所述多边形P的所有边为所述已处理边;
步骤5.2.5:清空所述集合Polytri。
请参考图9,图9为本申请提供的多层集成电路版图多边形对齐和简化处理方法实施例中内外辅助多边形相交情况下识别该内外辅助多边形内所有三角形的示意图。值得注意的是,由于识别过程中遇到所述内外辅助多边形的边即停止向外搜索,所述内外辅助多边形的相交区域自动被排除在外,因此不会出现由于一个多边形不同段距离太近导致多个多边形对齐过程中出现边相交导致电气短路的问题。
作为一种可能的实施方式,所述将所述重合的部分多边形段或完整的多边形合并到所述多边形P中,主要包括:
步骤5.3.1:找出所述集合Vert中所有顶点所在的多边形,形成除所述多边形P之外的重合多边形集合Poly;
步骤5.3.2:从所述集合Poly的每个多边形中找出属于所述集合Vert的所述连续被标识顶点,将所述连续被标识顶点以及所述连续被标识顶点之间的边用所述多边形P对应的顶点和边替代,且将所述多边形P中所述替代的顶点和边所在的多边形的编号信息叠加上被替代的顶点和边所在的多边形的编号信息。
作为一种可能的实施方式,所述采用单层多边形的简化处理方法对所述投影到同一层且对齐的所述多边形进行简化处理,包括:
步骤5.5.1:根据外推法识别所述第四三角形网格中多个多边形内所有的三角形;
步骤5.5.2:判断所述第四三角形网格中多个多边形的边是否满足预设规则,并在满足所述预设规则时依据各个所述三角形的质量对所述多个多边形进行自适应简化处理。
请参考图10,本申请实施例提供了一种多层集成电路版图多边形对齐和简化处理装置,如图所示,所述装置主要包括:
获取模块M1,用于获取多层集成电路版图包含多个顶点的多个多边形;
第一处理模块M2,用于将各层的多个多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多个多边形的各个边包含预先设定的多边形编号信息;
第二处理模块M3,用于根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形的各个边,同时计算所述多个多边形边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格;
第三处理模块M4,用于基于所述第一三角形网格,在每个多边形P的内外分别形成夹住所述多边形P的内外辅助多边形P 0与P 9,并通过设定的距离阈值控制所述内外辅助多边形与多边形P的距离;
第四处理模块M5,用于对落在所述内外辅助多边形之间的各层多边形的边进行对齐和简化处理,并根据各个所述多边形的边所包含的多边形编号信息将所述投影到同一层的多层多边形还原到各层中。
采用上述装置,可以大大减少多层多边形形成平行平板场域后出现的碎片化问题,进而显著减少对这些场域进行网格细分时碎片附近产生的不必要的密集网格,大幅度提升网格质量,缩小多层集成电路分析的求解时间和所需内存,且可以在几乎保持所述多边形形状的前提下,使得即使自适应简化处理前多个多边形之间缝隙宽度为纳米量级,自适应简化处理后多边形彼此之间的缝隙仍完整保留,基本不改变集成电路版图形状,从而保持原始正常的集成电路版图的电路连接。
作为一种可能的实施方式,所述第四处理模块主要包括:
第一处理子单元,用于根据所述边交换法将所述第一三角形网格对齐到所述内外辅助多边形的各个边,形成第二三角形网格;
第二处理子单元,用于标识被所述内外辅助多边形夹住的区域中所有多边形的顶点,将被标识顶点定义为与所述多边形P的距离小于预定阈值的多边形顶点;
第三处理子单元,用于对每个多边形,根据所述被标识顶点,找出位于所述被标识顶点所在多边形的连续被标识顶点,所述连续被标识顶点形成的部分多边形段或完整的多边形,被视为与所述多边形P重合,将所述重合的部分多边形段或完整的多边形合并到所述多边形P中,形成对齐的多层多边形;
第四处理子单元,用于删除所述第二三角形网格中所述重合的部分多边形段或完整的多边形中的所述连续被标识顶点、所述连续被标识顶点之间的边以及所述内外辅助多边形的顶点、边及所有被删除的顶点与边对应的网格节点及网格,形成第三三角形网格,根据所述边交换法将所述第三三角形网格对齐到所述对齐的多层多边形,形成第四三角形网格;
第五处理子单元,用于采用单层多边形的简化处理方法对所述投影到同一层且对齐的所述多边形进行简化处理;
第六处理子单元,用于根据各个所述多边形的边所包含的多边形编号信息,将所述投影到同一层的多层多边形还原到各层中。
以上所述,仅为本申请的较佳实施例及所运用的技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。