集成电路版图场域识别与网格细分处理方法及装置
技术领域
本发明涉及集成电路版图场域识别与网格细分处理领域,尤其涉及一种集成电路版图场域识别与网格细分处理方法及装置。
背景技术
集成电路版图是集成电路原理图与集成电路工艺实现之间的中间环节,是一个必不可少的重要环节。
由于多层集成电路板的厚度及层间距远小于板的尺寸,故可将多层集成电路板的三维计算场域简化为多个二维计算场域,该二维计算场域即为上下层耦合的平行平板场域,也即为电磁波的传播区域。平行平板场域指的是多层集成电路版图不同金属层的多边形垂直投影到同一层时,在投影层的公共面积夹着的一层或多层电介质区域。如果多层集成电路有N层包含多个多边形的金属板,则有N*(N-1)/2种可能的电介质区域。当利用该二维计算场域计算电磁波在多层集成电路金属层之间的电介质中传播时,首先需要识别这种平行平板场域。因实际的多层集成电路每层的版图非常复杂且各不相同,多层版图多边形投影到同一层后,识别其形成的多个平行平板场域是一项具有挑战性的工作。
现有技术中识别一具有N层金属板的集成电路的平行平板场域的方法是,从最下层金属板开始向上,依次比较两层金属板上多边形的公共面积(交集),该公共面积(交集)即为该两层金属板之间的平行平板场域。在这层金属板与它上面的某层金属板的比较完成后,在与更上层金属板进行比较之前,将该层金属板的多边形减去求得的交集,作为下次比较时这层金属板的多边形。
然而,发明人在实施本发明的过程中发现,现有技术在对集成电路版图进行场域识别和网格细分处理的过程中,根据边交换法将三角形网格对齐到多个多边形各个边时,容易遗漏或者重复执行对符合条件的多个多边形的边进行的交换,导致该边交换法的精确性、完整性以及高效性得不到保证,进而影响到该场域识别与网格细分处理方法的准确与高效问题。
发明内容
本申请实施例提供了一种集成电路版图场域识别与网格细分处理方法及装置,可以避免在场域识别与网格细分处理过程中执行边交换法时遗漏或重复对符合条件的多边形的边进行所述交换,以保证所述边交换法的精确性、完整性以及高效性,进而保证所述场域识别与网格细分处理方法的准确与高效。
第一方面,本申请实施例提供了一种集成电路版图场域识别与网格细分处理方法,所述方法包括:
获取多层集成电路版图包含多个顶点的多个多边形;
将各层的多个多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多边形的各个边包含预先设定的所在多边形的多边形信息和所在层的层信息;
合并所述投影后重合的多个多边形边的所述多边形信息和层信息;
根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形各个边,同时计算所述多个多边形边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格,其中,所述边交换法将符合条件的多边形的边排序形成集合,按所述排序取出所述多边形的边,对其进行所述交换后,若所述集合为空集,则结束所述交换;
基于所述第一三角形网格,将各个多边形边的层信息基于布尔运算叠加到所述各个多边形内的所有三角形中;
根据所述三角形和所述多边形边的层信息,通过平行平板场域识别法识别并收集各个平行平板场域包含的三角形和多边形边;
根据计算精度要求和不同平行平板场域的公共边,对所述各个平行平板场域内的三角形进行自适应网格细分处理。
作为一种可能的实施方式,所述根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形各个边,同时计算所述多个多边形边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格,其中,所述边交换法将符合条件的多边形的边排序形成集合,按所述排序取出所述多边形的边,对其进行所述交换后,若所述集合为空集,则结束所述交换,包括:
收集所有不是两个三角形公共边的多边形的边,按边长排序形成集合Lost;
从所述集合
Lost中取出边长最长的边
并将其从所述集合
Lost中移除;
从所述边
的一个顶点
A出发,搜索包含所述顶点
A且顶点
E、
D位于所述边
两侧的三角形Δ
AED,交换所述三角形Δ
AED与其邻居三角形Δ
DEF的公共边,得到三角形Δ
AEF与Δ
AFD,其中,所述邻居三角形为与该三角形有公共边的三角形;
重复所述三角形与其邻居三角形的公共边的交换,直到所述边
为两个邻居三角形的公共边;
若搜索到与所述边
相交的边为另一多边形的边,则在该两条边的交点处新增一个顶点以及一个网格节点,并将该网格节点插入到所述Delaunay三角形网格中,该网格节点将所述两个邻居三角形分为四个三角形,该顶点将两条相交的边分为四条公用该顶点的边;
判断所述集合Lost是否为空集,若否,重新从所述集合Lost中取出最长的边,将其从所述集合Lost中移除并继续进行所述交换,若是,结束所述交换,形成第一三角形网格。
作为一种可能的实施方式,所述合并所述投影后重合的多个多边形边的所述多边形信息和层信息,包括:
对所有多边形顶点进行排序,根据排序结果,对每个未被定义为重合顶点的顶点,搜索与该顶点的距离小于预定阈值的所述多边形的顶点,并将该顶点与所述搜索到的顶点定义为一组重合顶点;
对每组重合顶点,取其重心为新合并的顶点,将该组重合顶点中的所有顶点用所述新合并的顶点代替,所述新合并的顶点的关联边为该组重合顶点中所有顶点的关联边合并,其中,所述多边形的顶点的关联边为一个端点为该多边形的顶点的多边形边;
基于所述多边形的顶点的关联边,对每一个多边形顶点,两两比较所述所有关联边,如果两条边e, f包含两个相同的端点,该两条边为重合边,删除任意一条边e,用所述边f代替原包含所述边e的多边形的相应边,并将所述边e从该顶点的关联边的列表中删除;
将余下的所述边f的层信息设置为原边e, f的层信息的或,余下的所述边f的多边形信息设置为原边e, f的多边形信息的合并;
重复所述两两比较所述关联边,直至处理完所有重合边。
作为一种可能的实施方式,所述基于所述第一三角形网格,将各个多边形边的层信息基于布尔运算叠加到所述各个多边形内的所有三角形中,包括:
将所有三角形的层信息设置为空;
对投影到同一层的每一多边形P,获取其所在层的层信息i,设置集合Front为空集,取多边形P任意边e的左三角形t,如果所述左三角形t的层信息未叠加上所述多边形P所在层的层信息i,将该左三角形t加入所述集合Front,将所述左三角形t的层信息叠加上所述多边形P所在层的层信息i,其中,所述多边形P任意边e的左三角形为包含该边e且三角形边e的方向与多边形P边e的方向相同的三角形;
从所述集合Front取出一个三角形t并将其从所述集合Front中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的层信息未叠加上所述多边形P所在层的层信息i,且公共边不为多边形P的任一边,则将所述三角形t的该一个或多个邻居三角形加入所述集合Front中,并将新加入所述集合Front的三角形的层信息叠加上所述多边形P所在层的层信息i,其中,所述公共边指与所述三角形t相邻的三角形与所述三角形t的公共边;
判断所述集合Front是否为空集,若否,重新从所述集合Front取出一个三角形,将其从所述集合Front中移除,并继续基于所述布尔运算进行所述叠加,直到所述集合Front为空,若是,继续下一步操作;
判断所述所有多边形是否处理完毕,若是,结束所述叠加;若否,返回继续对余下的多边形进行处理。
作为一种可能的实施方式,所述根据所述三角形和所述多边形边的层信息,通过平行平板场域识别法识别并收集各个平行平板场域包含的三角形和多边形边,包括:
设置所有平行平板场域(i,j)的多边形集合poly(i,j)和三角形集合tri(i,j)为空,所述平行平板场域(i,j)为所述多层集成电路版图中的金属层第i层和第j层及其内部介质形成的平行平板场域,其中,所述i和j为所述金属层的层别;
选取一未处理的三角形t或多边形边e,从最低层开始,根据所述三角形t或多边形边e的层信息识别出所述第i层金属层向上第一次出现的第j层金属层,j > i,将所述三角形t加入到所述集合tri(i,j)中或将所述多边形边e加入到所述poly(i,j)中,以收集所述各个平行平板场域包含的三角形和多边形边;
判断所述金属层i是否为最高层,若是,则继续下一步操作,若否,将所述j赋值给所述i,返回继续根据所述三角形t或多边形边e的层信息,确定所述第i层之上第一次出现的第j层金属层;
判断所有三角形和多边形边是否识别完毕,若是,结束所述识别,若否,则返回继续选取一未处理的三角形或多边形边,进行所述识别并收集。
作为一种可能的实施方式,所述根据计算精度要求和不同平行平板场域的公共边,对所述各个平行平板场域内的三角形进行自适应网格细分处理,包括:
获取每个平行平板场域的多个多边形的顶点,根据Delaunay三角剖分算法形成第二三角形网格;
根据所述识别出的平行平板场域,将所述第二三角形网格对齐到各个平行平板场域的多个多边形的边,并删除各个平行平板场域之外的三角形,形成第三三角形网格;
依次对每个所述第三三角形网格中的所述平行平板场域(i,j),按照第一优先控制所述网格的质量,第二优先控制所述网格的尺寸的优先顺序进行网格细分处理;
对相邻两个平行平板场域的公共区域进行网格剖分,其中,若所述平行平板场域(i,j)多边形边e的层信息既包含所述平行平板场域(i,j),又包含平行平板场域(l,m),其中i, j, l, m中有两个数相等,则多边形边e对应的区域为平行平板场域(i,j)和平行平板场域(l,m)的公共区域,将该公共区域定义为平板间耦合区域,所述i, j, l, m为所述金属层的层别;
判断所有平行平板场域的网格的质量和网格的尺寸是否满足预先设定的值,若是,结束所述网格细分,若否,返回继续对每个所述平行平板场域(i,j)进行网格细分处理。
作为一种可能的实施方式,所述控制所述网格的尺寸为根据需要计算的最高频率确定所述网格细分的最大网格的尺寸,所述最大网格的尺寸的计算公式为:
其中,
l max为最大网格的尺寸,
为最高频率对应的电磁波波长,
F为计算精度要求的控制系数。
第二方面,本申请实施例提供了一种集成电路版图场域识别与网格细分处理装置,包括:
获取模块,用于获取多层集成电路版图包含多个顶点的多个多边形;
第一处理模块,用于将各层的多个多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多边形的各个边包含预先设定的所在多边形的多边形信息和所在层的层信息;
第二处理模块,用于合并所述投影后重合的多个多边形边的所述多边形信息和层信息;
第三处理模块,用于根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形各个边,同时计算所述多个多边形边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格,其中,所述边交换法将符合条件的多边形的边排序形成集合,按所述排序取出所述多边形的边,对其进行所述交换后,若所述集合为空集,则结束所述交换;
第四处理模块,用于基于所述第一三角形网格,将各个多边形边的层信息基于布尔运算叠加到所述各个多边形内的所有三角形中;
第五处理模块,用于根据所述三角形和所述多边形边的层信息,通过平行平板场域识别法识别并收集各个平行平板场域包含的三角形和多边形边;
第六处理模块,用于根据计算精度要求和不同平行平板场域的公共边,对所述各个平行平板场域内的三角形进行自适应网格细分处理。
作为一种可能的实施方式,所述第二处理模块包括:
排序与搜索单元,用于对所有多边形顶点进行排序,根据排序结果,对每个未被定义为重合顶点的顶点,搜索与该顶点的距离小于预定阈值的所述多边形的顶点,并将该顶点与所述搜索到的顶点定义为一组重合顶点;
重合顶点处理单元,用于对每组重合顶点,取其重心为新合并的顶点,将该组重合顶点中的所有顶点用所述新合并的顶点代替,所述新合并的顶点的关联边为该组重合顶点中所有顶点的关联边合并,其中,所述多边形的顶点的关联边为一个端点为该多边形的顶点的多边形边;
比较与删除单元,用于基于所述多边形的顶点的关联边,对每一个多边形顶点,两两比较所述所有关联边,如果两条边e, f包含两个相同的端点,该两条边为重合边,删除任意一条边e,用所述边f代替原包含所述边e的多边形的相应边,并将所述边e从该顶点的关联边的列表中删除;
设置单元,用于将余下的所述边f的层信息设置为原边e, f的层信息的或,余下的所述边f的多边形信息设置为原边e, f的多边形信息的合并;
重复单元,用于重复所述两两比较所述关联边,直至处理完所有重合边。
作为一种可能的实施方式,所述第五处理模块包括:
第一处理单元,用于设置所有平行平板场域(i,j)的多边形集合poly(i,j)和三角形集合tri(i,j)为空,所述平行平板场域(i,j)为所述多层集成电路版图中的金属层第i层和第j层及其内部介质形成的平行平板场域,其中,所述i和j为所述金属层的层别;
第二处理单元,用于选取一未处理的三角形t或多边形边e,从最低层开始,根据所述三角形t或多边形边e的层信息识别出所述第i层金属层向上第一次出现的第j层金属层,j > i,将所述三角形t加入到所述集合tri(i,j)中或将所述多边形边e加入到所述poly(i,j)中,以收集所述各个平行平板场域包含的三角形和多边形边;
第三处理单元,用于判断所述金属层i是否为最高层,若是,则继续下一步操作,若否,将所述j赋值给所述i,返回继续根据所述三角形t或多边形边e的层信息,确定所述第i层之上第一次出现的第j层金属层;
第四处理单元,用于判断所有三角形和多边形边是否识别完毕,若是,结束所述识别,若否,则返回继续选取一未处理的三角形或多边形边,进行所述识别并收集。
本申请实施例具有如下有益效果:
本申请实施例通过将多层集成电路版图包含多个顶点的多个多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,所述多边形的各个边包含预先设定的所在多边形的多边形信息和所在层的层信息;合并所述投影后重合的多个多边形边的所述多边形信息和层信息;根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形各个边,同时计算所述多个多边形边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格,其中,所述边交换法将符合条件的多边形的边排序形成集合,按所述排序取出所述多边形的边,对其进行所述交换后,若所述集合为空集,则结束所述交换;将各个多边形边的层信息基于布尔运算叠加到所述各个多边形内的所有三角形中;根据所述三角形和所述多边形边的层信息,通过平行平板场域识别法识别并收集各个平行平板场域包含的三角形和多边形边;根据计算精度要求和不同平行平板场域的公共边,对所述各个平行平板场域内的三角形进行自适应网格细分处理,可以避免在场域识别与网格细分处理过程中执行边交换法时遗漏或重复对符合条件的多边形的边进行所述交换,以保证所述边交换法的精确性、完整性以及高效性,进而保证所述场域识别与网格细分处理方法的准确与高效。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例的描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的集成电路版图场域识别与网格细分处理方法实施例的流程示意图。
图2为本申请提供的集成电路版图场域识别与网格细分处理方法实施例中将所述Delaunay三角形网格对齐到三层集成电路版图多个多边形的边的示意图。
图3为本申请提供的集成电路版图场域识别与网格细分处理方法实施例中所述Delaunay三角形网格对齐到三层集成电路版图多个多边形的边的各三角形的层信息的示意图。
图4为本申请提供的集成电路版图场域识别与网格细分处理方法实施例中三层集成电路版图平行平板场域识别与网格细分处理结果的示意图。
图5为本申请提供的集成电路版图场域识别与网格细分处理装置实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下将参照本发明实施例中的附图,通过实施方式详细地描述本发明的技术方案。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。在本申请的描述中,“第一”、“第二”、“第三”、“第四”、“第五”等仅用于彼此的区分,而非表示它们的重要程度及顺序等。
请参考图1-图4,本申请实施例提供了一种集成电路版图场域识别与网格细分处理方法,如图所示,所述方法主要包括:
步骤S1,获取多层集成电路版图包含多个顶点的多个多边形;
步骤S2,将各层的多个多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多边形的各个边包含预先设定的所在多边形的多边形信息和所在层的层信息;
步骤S3,合并所述投影后重合的多个多边形边的所述多边形信息和层信息;
步骤S4,根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形各个边,同时计算所述多个多边形边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格,其中,所述边交换法将符合条件的多边形的边排序形成集合,按所述排序取出所述多边形的边,对其进行所述交换后,若所述集合为空集,则结束所述交换;
步骤S5,基于所述第一三角形网格,将各个多边形边的层信息基于布尔运算叠加到所述各个多边形内的所有三角形中;
步骤S6,根据所述三角形和所述多边形边的层信息,通过平行平板场域识别法识别并收集各个平行平板场域包含的三角形和多边形边;
步骤S7,根据计算精度要求和不同平行平板场域的公共边,对所述各个平行平板场域内的三角形进行自适应网格细分处理。
采用上述方法,可以避免在场域识别与网格细分处理过程中执行边交换法时遗漏或重复对符合条件的多边形的边进行所述交换,以保证所述边交换法的精确性、完整性以及高效性,进而保证所述场域识别与网格细分处理方法的准确与高效。
其中,所述多边形定义为,由N条(N≥3)线段首尾顺序连接起来形成的封闭图形,其线段端点形成多边形顶点。如果多边形顶点逆时针排列,定义多边形为正,其内对应集成电路版图导电区域;如果多边形顶点顺时针排列,定义多边形为负,其内对应集成电路版图绝缘区域;所述根据Delaunay三角剖分算法形成的Delaunay三角形网格中的所有三角形的方向都为正。通过数值计算方法计算电磁波在超大规模集成电路中的传播时,需考虑集成电路版图的导电区域、介质层,及由此形成的平行平板场域;所述多层集成电路也可包括多层超大规模集成电路。
进一步,所述多边形的各个边所在多边形的多边形信息可以区分出所述重合的边属于哪些多边形;所述层信息表示该层包含或不包含所有集成电路版图的每一层,若所述三角形不属于任何一层集成电路版图,将该三角形的层信息设置为空或零。
其中,平行平板场域,简称PPFD。
请参考图2,图2为本申请提供的集成电路版图场域识别与网格细分处理方法实施例中将所述Delaunay三角形网格对齐到三层集成电路版图多个多边形的边的示意图。如图所示。
作为一种可能的实施方式,所述根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形各个边,同时计算所述多个多边形边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格,其中,所述边交换法将符合条件的多边形的边排序形成集合,按所述排序取出所述多边形的边,对其进行所述交换后,若所述集合为空集,则结束所述交换,主要包括:
步骤4.1,收集所有不是两个三角形公共边的多边形的边,按边长排序形成集合Lost;
步骤4.2,从所述集合
Lost中取出边长最长的边
并将其从所述集合
Lost中移除;
步骤4.3,如图2(a)所示,从所述边
的一个顶点
A出发,搜索包含所述顶点
A且顶点
E、
D位于所述边
两侧的三角形Δ
AED,交换所述三角形Δ
AED与其邻居三角形Δ
DEF的公共边,得到三角形Δ
AEF与Δ
AFD,其中,所述邻居三角形为与该三角形有公共边的三角形;
步骤4.4,重复所述三角形与其邻居三角形的公共边的交换,如图2(b)、(c)所示,直到所述边
为两个邻居三角形的公共边;
步骤4.5,若搜索到与所述边
相交的边为另一多边形的边,如图2(c)所示,边
与所述边
相交,而所述边
是多边形
AECFA的边,则在该两条边的交点处新增一个顶点以及一个网格节点
G,并将该网格节点
G插入到所述Delaunay三角形网格中,该网格节点将所述两个邻居三角形分为四个三角形:Δ
EBG, Δ
EGA, Δ
FAG和Δ
FGB,该顶点将两条相交的边分为四条公用该顶点的边,如图2(d)所示,同时,又生成了一条新的需要被对齐的多边形的边
,将所述边
也加入到所述集合
Lost中;
步骤4.6,判断所述集合Lost是否为空集,若否,重新从所述集合Lost中取出最长的边,将其从所述集合Lost中移除并继续进行所述交换,若是,结束所述交换,形成第一三角形网格,如图2(f)所示。
作为一种可能的实施方式,所述合并所述投影后重合的多个多边形边的所述多边形信息和层信息,主要包括:
步骤3.1,对所有多边形顶点进行排序,根据排序结果,对每个未被定义为重合顶点的顶点,搜索与该顶点的距离小于预定阈值的所述多边形的顶点,并将该顶点与所述搜索到的顶点定义为一组重合顶点;
步骤3.2,对每组重合顶点,取其重心为新合并的顶点,将该组重合顶点中的所有顶点用所述新合并的顶点代替,所述新合并的顶点的关联边为该组重合顶点中所有顶点的关联边合并,其中,所述多边形的顶点的关联边为一个端点为该多边形的顶点的多边形边;
步骤3.3,基于所述多边形的顶点的关联边,对每一个多边形顶点,两两比较所述所有关联边,如果两条边e, f包含两个相同的端点,该两条边为重合边,删除任意一条边e,用所述边f代替原包含所述边e的多边形的相应边,并所述将边e从该顶点的关联边的列表中删除;
步骤3.4,将余下的所述边f的层信息设置为原边e, f的层信息的或,余下的所述边f的多边形信息设置为原边e, f的多边形信息的合并;所述或即为OR;
步骤3.5,重复所述两两比较所述关联边,直至处理完所有重合边。
作为一种可能的实施方式,所述基于所述第一三角形网格,将各个多边形边的层信息基于布尔运算叠加到所述各个多边形内的所有三角形中,主要包括:
步骤5.1,将所有三角形的层信息设置为空;
步骤5.2,对投影到同一层的每一多边形P,获取其所在层的层信息i,设置集合Front为空集,取多边形P任意边e的左三角形t,如果所述左三角形t的层信息未叠加上所述多边形P所在层的层信息i,将该左三角形t加入所述集合Front,将所述左三角形t的层信息叠加上所述多边形P所在层的层信息i,其中,所述多边形P任意边e的左三角形为包含该边e且三角形边e的方向与多边形P边e的方向相同的三角形;
步骤5.3,从所述集合Front取出一个三角形t并将其从所述集合Front中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的层信息未叠加上所述多边形P所在层的层信息i,且公共边不为多边形P的任一边,则将所述三角形t的该一个或多个邻居三角形加入所述集合Front中,并将新加入所述集合Front的三角形的层信息叠加上所述多边形P所在层的层信息i,其中,所述公共边指与所述三角形t相邻的三角形与所述三角形t的公共边;
步骤5.4,判断所述集合Front是否为空集,若否,重新从所述集合Front取出一个三角形,将其从所述集合Front中移除,并继续基于所述布尔运算进行所述叠加,直到所述集合Front为空,若是,继续下一步操作;
步骤5.5,判断所述所有多边形是否处理完毕,若是,结束所述叠加;若否,返回继续对余下的多边形进行处理。
值得注意的是,关于对所述层信息进行记录,可采用二进制表示多层结构的集成电路版图的层,二进制的位数表示集成电路包含的版图层数,二进制每一位对应集成电路版图的每一层,二进制某位为0表示不包含该层,二进制某位为1表示包含该层。由于多边形每条边的层信息来自于该多边形所在的金属层,定义第
i层金属层的层为
,这意味着用二进制表示这个数时,1出现在这个二进制的第
i位。根据多边形所在层的层信息,在识别每个金属层的三角形时,该层信息将被叠加到识别的三角形中;当所有层都识别完时,每个三角形的层信息即记录了该三角形落在哪些金属层的区域。针对图2所示的三层金属版图多边形,计算出各三角形的层信息如图3所示,从图3中可以看出,图3中的0表示该三角形不存在于任何金属层,图3中的5表示该三角形存在于第1、3层,因为5=(101)
2,图3中的7表示该三角形存在于第1、2、3层,因为7=(111)
2。
作为一种可能的实施方式,所述根据所述三角形和所述多边形边的层信息,通过平行平板场域识别法识别并收集各个平行平板场域包含的三角形和多边形边,主要包括:
步骤6.1,设置所有平行平板场域(i,j)的多边形集合poly(i,j)和三角形集合tri(i,j)为空,所述平行平板场域(i,j)为所述多层集成电路版图中的金属层第i层和第j层及其内部介质形成的平行平板场域,其中,所述i和j为所述金属层的层别;
步骤6.2,选取一未处理的三角形t或多边形边e,从最低层开始,根据所述三角形t或多边形边e的层信息识别出所述第i层金属层向上第一次出现的第j层金属层,j > i,将所述三角形t加入到所述集合tri(i,j)中或将所述多边形边e加入到所述poly(i,j)中,以收集所述各个平行平板场域包含的三角形和多边形边;
步骤6.3,判断所述金属层i是否为最高层,若是,则继续下一步操作,若否,将所述j赋值给所述i,返回继续根据所述三角形t或多边形边e的层信息,确定所述第i层之上第一次出现的第j层金属层;
步骤6.4,判断所有三角形和多边形边是否识别完毕,若是,结束所述识别,若否,则返回继续选取一未处理的三角形或多边形边,进行所述识别并收集。
采用上述方法,可以一次性识别出图3中三角形层信息为5的三角形连同其边形成平行平板场域(1,3)区域,图3中三角形层信息为7的三角形连同其边形成平行平板场域(1,2)和平行平板场域(2,3)区域。
作为一种可能的实施方式,所述根据计算精度要求和不同平行平板场域的公共边,对所述各个平行平板场域内的三角形进行自适应网格细分处理,主要包括:
步骤7.1,获取每个平行平板场域的多个多边形的顶点,根据Delaunay三角剖分算法形成第二三角形网格;
步骤7.2,根据所述识别出的平行平板场域,将所述第二三角形网格对齐到各个平行平板场域的多个多边形的边,并删除各个平行平板场域之外的三角形,形成第三三角形网格;
步骤7.3,依次对每个所述第三三角形网格中的所述平行平板场域(i,j),按照第一优先控制所述网格的质量,第二优先控制所述网格的尺寸的优先顺序进行网格细分处理;所述网格细分处理包括对所述三角剖分并对齐后的所述第三三角形网格进行进一步细化,使得该三角形网格的质量更好,尺寸更小,仿真计算更准确;
步骤7.4,对相邻两个平行平板场域的公共区域进行网格剖分,其中,若所述平行平板场域(i,j)多边形边e的层信息既包含所述平行平板场域(i,j),又包含平行平板场域(l,m),其中i, j, l, m中有两个数相等,则多边形边e对应的区域为平行平板场域(i,j)和平行平板场域(l,m)的公共区域,将该公共区域定义为平板间耦合区域,所述i, j, l, m为所述金属层的层别;值得注意的是,由于平板间耦合区域为两个相邻场域共有,该两个相邻场域在平板间耦合区域的网格必须保持一致,即两个相邻场域任意一个场域网格细分过程中在多边形边e上增加网格节点以及多边形顶点,相应的网格节点以及多边形顶点也必须增加到另一个场域的网格中去;
步骤7.5,判断所有平行平板场域的网格的质量和网格的尺寸是否满足预先设定的值,若是,结束所述网格细分,若否,返回继续对每个所述平行平板场域(i,j)进行网格细分处理。
作为一种可能的实施方式,所述网格的质量为所述网格形状的质量,所述三角形的网格的质量的计算公式为:
其中,所述R表示所述三角形的外接圆半径;所述l 1, l 2, l 3表示所述三角形三个边的边长;
所述三角形的Q值越大,其质量越差,即该三角形角度存在很小的角。
作为一种可能的实施方式,所述控制所述网格的尺寸为根据需要计算的最高频率确定所述网格细分的最大网格的尺寸,所述最大网格的尺寸的计算公式为:
其中,
l max为最大网格的尺寸,
为最高频率对应的电磁波波长,
F为计算精度要求的控制系数,通常取
。
最终,图2所示的三层金属版图多边形及其内部介质形成的平行平板场域的网格细分结果如图4所示。可以看出,由于边
、
、
和
为两个不同平行平板场域的平板间耦合区域,因此在这些边上需满足连续边条件,不同平行平板场域在这些边界上的网格节点是公共的,因此在这些边上的网格是对齐的。
请参考图5,本申请实施例提供了一种集成电路版图场域识别与网格细分处理装置,如图所示,所述装置主要包括:
获取模块M1,用于获取多层集成电路版图包含多个顶点的多个多边形;
第一处理模块M2,用于将各层的多个多边形垂直投影到同一层,根据Delaunay三角剖分算法形成以多边形顶点为网格节点的Delaunay三角形网格,其中,所述多边形的各个边包含预先设定的所在多边形的多边形信息和所在层的层信息;
第二处理模块M3,用于合并所述投影后重合的多个多边形边的所述多边形信息和层信息;
第三处理模块M4,用于根据边交换法将所述Delaunay三角形网格对齐到所述多个多边形各个边,同时计算所述多个多边形边的交点并将所述交点新增为所述多边形的顶点和所述Delaunay三角形网格的节点,形成第一三角形网格,其中,所述边交换法将符合条件的多边形的边排序形成集合,按所述排序取出所述多边形的边,对其进行所述交换后,若所述集合为空集,则结束所述交换;
第四处理模块M5,用于基于所述第一三角形网格,将各个多边形边的层信息基于布尔运算叠加到所述各个多边形内的所有三角形中;
第五处理模块M6,用于根据所述三角形和所述多边形边的层信息,通过平行平板场域识别法识别并收集各个平行平板场域包含的三角形和多边形边;
第六处理模块M7,用于根据计算精度要求和不同平行平板场域的公共边,对所述各个平行平板场域内的三角形进行自适应网格细分处理。
采用上述装置,可以一次性快速、准确识别所有平行平板场域,且可以避免本应相互耦合的平行平板场域之间出现缝隙,进而避免导致高频电磁场的分析错误。
作为一种可能的实施方式,所述第二处理模块主要包括:
排序与搜索单元,用于对所有多边形顶点进行排序,根据排序结果,对每个未被定义为重合顶点的顶点,搜索与该顶点的距离小于预定阈值的所述多边形的顶点,并将该顶点与所述搜索到的顶点定义为一组重合顶点;
重合顶点处理单元,用于对每组重合顶点,取其重心为新合并的顶点,将该组重合顶点中的所有顶点用所述新合并的顶点代替,所述新合并的顶点的关联边为该组重合顶点中所有顶点的关联边合并,其中,所述多边形的顶点的关联边为一个端点为该多边形的顶点的多边形边;
比较与删除单元,用于基于所述多边形的顶点的关联边,对每一个多边形顶点,两两比较所述所有关联边,如果两条边e, f包含两个相同的端点,该两条边为重合边,删除任意一条边e,用所述边f代替原包含所述边e的多边形的相应边,并将所述边e从该顶点的关联边的列表中删除;
设置单元,用于将余下的所述边f的层信息设置为原边e, f的层信息的或,余下的所述边f的多边形信息设置为原边e, f的多边形信息的合并;
重复单元,用于重复所述两两比较所述关联边,直至处理完所有重合边。
作为一种可能的实施方式,所述第五处理模块主要包括:
第一处理单元,用于设置所有平行平板场域(i,j)的多边形集合poly(i,j)和三角形集合tri(i,j)为空,所述平行平板场域(i,j)为所述多层集成电路版图中的金属层第i层和第j层及其内部介质形成的平行平板场域,其中,所述i和j为所述金属层的层别;
第二处理单元,用于选取一未处理的三角形t或多边形边e,从最低层开始,根据所述三角形t或多边形边e的层信息识别出所述第i层金属层向上第一次出现的第j层金属层,j > i,将所述三角形t加入到所述集合tri(i,j)中或将所述多边形边e加入到所述poly(i,j)中,以收集所述各个平行平板场域包含的三角形和多边形边;
第三处理单元,用于判断所述金属层i是否为最高层,若是,则继续下一步操作,若否,将所述j赋值给所述i,返回继续根据所述三角形t或多边形边e的层信息,确定所述第i层之上第一次出现的第j层金属层;
第四处理单元,用于判断所有三角形和多边形边是否识别完毕,若是,结束所述识别,若否,则返回继续选取一未处理的三角形或多边形边,进行所述识别并收集。
以上所述,仅为本申请的较佳实施例及所运用的技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。