一种集成电路版图孤岛和微孔的自动消除的方法和系统转让专利

申请号 : CN202211633416.8

文献号 : CN115618789B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 唐章宏

申请人 : 北京智芯仿真科技有限公司

摘要 :

一种集成电路版图孤岛和微孔的自动消除的方法的系统,包括:集成电路版图中的定义为孔的部分和覆铜的部分转换为版图多边形并进行布尔操作,形成统一的版图多边形;基于网格识别所述统一的版图多边形中的孤岛和/或微孔的边界,且基于所述边界和网格生成用于覆盖所述孤岛和/或微孔的覆盖多边形;重新读入所述集成电路版图,连同所述的生成的覆盖多边形,生成新的集成电路版图,以消除初始集成电路版图包含的孤岛和/或微孔;通过对集成电路版图中的微孔和/或孤岛进行自动消除处理,避免微孔和孤岛出现在集成电路版图中影响版图的可靠性和在工艺生产中对产生的孤岛和微孔进行检测发现缺陷,降低集成电路制备成本,提升了生产效率。

权利要求 :

1.一种集成电路版图孤岛和微孔的自动消除的方法,其特征在于,包括如下步骤: S1、将集成电路版图中的定义为孔的部分和覆铜的部分转换为版图多边形并进行布尔操作,形成统一的版图多边形;

S2、识别所述统一的版图多边形中的孤岛和/或微孔的边界,且基于所述边界生成用于覆盖所述孤岛和/或微孔的覆盖多边形; S3、定义覆盖所述孤岛的覆盖多边形为孔的部分和/或定义覆盖所述微孔的覆盖多边形为覆铜的部分; S4、重新读入所述集成电路版图,连同生成的覆盖多边形,生成新的集成电路版图消除所述孤岛和/或微孔;

所述将集成电路版图中的定义为孔的部分和覆铜的部分转换为版图多边形并进行布尔操作,形成统一的版图多边形包括:

S11、对集成电路版图中定义为孔的部分转换为挖空的多边形;其中,将孔的部分中由过孔引起的隔离垫片转换为第一挖空的多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为圆时,所述第一挖空的多边形为正多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第一挖空的多边形为由离散点依次连成的多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为多边形时,所述第一挖空的多边形为版图中定义的多边形;将孔的部分中由集成电路版图中定义为覆铜的部分内的挖空圆、挖空椭圆和挖空多边形转换为第二挖空的多边形,当所述定义为覆铜的部分内的挖空圆时,所述第二挖空的多边形为正多边形,当所述定义为覆铜的部分内的挖空椭圆时,按椭圆在极坐标下等弧度取离散点,所述第二挖空的多边形为由离散点依次连成的多边形,当所述定义为覆铜的部分内的挖空多边形时,所述第二挖空的多边形为版图中定义的多边形;

S12、对集成电路版图中定义为覆铜的部分转换为覆铜的多边形;其中,将覆铜的部分中的走线按起始点、终止点和宽度转换为第一覆铜的多边形,所述第一覆铜的多边形为矩形,将覆铜的部分中由过孔引起的焊盘转换为第二覆铜的多边形,所述第二覆铜的多边形在由所述隔离垫片转换为的挖空多边形内,当所述焊盘的形状在集成电路的版图中定义为圆时,所述第二覆铜的多边形为正多边形,当所述焊盘的形状在集成电路的版图中定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第二覆铜的多边形为由离散点依次连成的多边形,当所述焊盘的形状在集成电路的版图中定义为多边形时,所述第二覆铜的多边形为版图中定义的多边形,将覆铜的其他部分转换为第三覆铜的多边形,当覆铜的其他部分定义为圆时,所述第三覆铜的多边形为正多边形,当覆铜的其他部分定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第三覆铜的多边形为由离散点依次连成的多边形,当覆铜的其他部分定义为多边形时,所述第三覆铜的多边形为版图中定义的多边形;

S13、将所述第一覆铜的多边形和第三覆铜的多边形进行布尔或操作,形成第三新的覆铜多边形;

S14、将所述第三新的覆铜多边形分别和所述第一挖空的多边形、所述第二挖空的多边形进行布尔差操作,形成第一新的覆铜多边形;

S15、将所述第一新的覆铜多边形和所述第二覆铜的多边形进行布尔或操作,形成统一的版图多边形。

2.根据权利要求1所述的一种集成电路版图孤岛和微孔的自动消除的方法,其特征在于,所述识别所述统一的版图多边形中的孤岛和/或微孔的边界,且基于所述边界生成用于覆盖所述孤岛和/或微孔的覆盖多边形包括: S21、依据Delaunay剖分准则对所述统一的版图多边形的顶点进行网格剖分,形成网格剖分; S22、基于边交换法构建以统一的版图多边形的边为约束的约束三角形网格;

S23、基于所述约束三角形网格识别所述统一的版图多边形中的每个覆铜区域和/或每个挖空区域; S24、基于每个所述覆铜区域的面积大小识别孤岛和/或基于每个挖空区域的面积大小识别微孔; S25、对每个孤岛和/或微孔,设置没有相同编号的邻居三角形的约束三角形对应的边作为所述孤岛和/或微孔的边界; S26、将每个孤岛和/或微孔内的所述没有相同编号的邻居三角形的约束三角形对应的边首尾相连构成多边形E; S27、基于所述多边形E和三角形网格建立用于覆盖所述孤岛和/或微孔的外辅助多边形E1;所述外辅助多边形E1为所述用于覆盖所述孤岛和/或微孔的覆盖多边形。

3.根据权利要求2所述的一种集成电路版图孤岛和微孔的自动消除的方法,其特征在于,所述基于所述约束三角形网格识别所述统一的版图多边形中的每个覆铜区域和/或每个挖空区域包括:

S230、初始设置所有三角形的编号为未编号;设置当前覆铜区域的三角形填充编号为fp=0;设置当前挖空区域的三角形填充编号为fn=0;设置当前外围覆铜网格单元集合Frontp为空;设置当前外围挖空网格单元集合Frontn为空;设置当前处理第q=1个多边形;

S231、如果q>多边形数量,转入步骤S238,否则,如果当前处理的第q个多边形为覆铜多边形,转入步骤S232,如果当前处理的第q个多边形为挖空多边形,转入步骤S235; S232、设置fp=fp+1,对第q个覆铜多边形,从多边形的任意边e出发,找到这个边关联的左三角形t1,若所述左三角形t1的编号为未编号,设置三角形t1的编号为fp,将其加入到集合Frontp中,所述多边形任意边e的左三角形为包含该边e且三角形边e的方向与多边形边e的方向相同的三角形; S233、从所述外围覆铜网格单元集合Frontp取出一个三角形t并将其从所述集合Frontp中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的编号为未编号,且公共边不为任何多边形的边,则将所述三角形t的该一个或多个邻居三角形加入所述外围覆铜网格单元集合Frontp中,并将新加入所述外围覆铜网格单元集合Frontp的三角形的编号为fp,其中,所述公共边指与所述三角形t相邻的三角形与所述三角形t的公共边; S234、判断所述外围覆铜网格单元集合Frontp是否为空集,若否,转入步骤S233,若是,设置q=q+1,转入步骤S231; S235、设置fn=fn‑1,对第q个挖空多边形,从多边形的任意边e出发,找到这个边关联的右三角形t1,若所述右三角形t1的编号为未编号,设置三角形t1的编号为fn,将其加入到集合Frontn中,所述多边形任意边e的右三角形为包含该边e且三角形边e的方向与多边形边e的方向相反的三角形;

S236、从所述外围挖空网格单元集合Frontn取出一个三角形t并将其从所述集合Frontn中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的编号为未编号,且所述三角形t的邻居三角形的编号为未编号的邻居对应的边不是多边形的边,则将所述三角形t的该一个或多个邻居三角形加入所述集合Frontn中,并将新加入所述外围挖空网格单元集合Frontn的三角形的编号为fn; S237、判断所述外围挖空网格单元集合Frontn是否为空集,若否,转入步骤S236,若是,设置q=q+1,转入步骤S231;

S238、基于所述三角形网格的编号填充结果对编号相同的三角形面积进行累加,根据编号对应的三角形面积和的大小判断孤岛和/或微孔,如果面积和小于给定的面积阈值,编号对应的区域为孤岛和/或微孔,其中,孤岛的区域编号为正和/或微孔的区域编号为负。

4.根据权利要求3所述的一种集成电路版图孤岛和微孔的自动消除的方法,其特征在于,所述基于所述多边形E和三角形网格建立用于覆盖所述孤岛和/或微孔的外辅助多边形E1包括:在多边形E之外形成多边形E的外辅助多边形E1,并通过设定的距离阈值控制所述外辅助多边形与多边形E的距离。

5.一种集成电路版图孤岛和微孔的自动消除的系统,其特征在于,包括版图转换模块、覆盖多边形生成模块、覆盖多边形定义模块和集成电路版图重新生成模块;其中,所述版图转换模块用于将集成电路版图中的定义为孔的部分和覆铜的部分转换为版图多边形并进行布尔操作,形成统一的版图多边形;所述覆盖多边形生成模块用于识别所述统一的版图多边形中的孤岛和/或微孔的边界,且基于所述边界生成用于覆盖所述孤岛和/或微孔的覆盖多边形;所述覆盖多边形定义模块用于定义覆盖所述孤岛的覆盖多边形为孔的部分和/或定义覆盖所述微孔的覆盖多边形为覆铜的部分;所述集成电路版图重新生成模块用于重新读入所述初始集成电路版图,连同生成的覆盖多边形,生成新的集成电路版图消除所述孤岛和/或微孔;

所述版图转换模块包括孔转换单元、覆铜转换单元、第三新的覆铜多边形布尔操作单元、第一新的覆铜多边形布尔操作单元和统一的版图多边形布尔操作单元; 所述孔转换单元用于对集成电路版图中定义为孔的部分转换为挖空的多边形;其中,将孔的部分中由过孔引起的隔离垫片转换为第一挖空的多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为圆时,所述第一挖空的多边形为正多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第一挖空的多边形为由离散点依次连成的多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为多边形时,所述第一挖空的多边形为版图中定义的多边形;将孔的部分中由集成电路版图中定义为覆铜的部分内的挖空圆、挖空椭圆和挖空多边形转换为第二挖空的多边形,当所述定义为覆铜的部分内的挖空圆时,所述第二挖空的多边形为正多边形,当所述定义为覆铜的部分内的挖空椭圆时,按椭圆在极坐标下等弧度取离散点,所述第二挖空的多边形为由离散点依次连成的多边形,当所述定义为覆铜的部分内的挖空多边形时,所述第二挖空的多边形为版图中定义的多边形; 所述覆铜转换单元用于对集成电路版图中定义为覆铜的部分转换为覆铜的多边形;其中,将覆铜的部分中的走线按起始点、终止点和宽度转换为第一覆铜的多边形,所述第一覆铜的多边形为矩形,将覆铜的部分中由过孔引起的焊盘转换为第二覆铜的多边形,所述第二覆铜的多边形在由所述隔离垫片转换为的挖空多边形内,当所述焊盘的形状在集成电路的版图中定义为圆时,所述第二覆铜的多边形为正多边形,当所述焊盘的形状在集成电路的版图中定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第二覆铜的多边形为由离散点依次连成的多边形,当所述焊盘的形状在集成电路的版图中定义为多边形时,所述第二覆铜的多边形为版图中定义的多边形,将覆铜的其他部分转换为第三覆铜的多边形,当覆铜的其他部分定义为圆时,所述第三覆铜的多边形为正多边形,当覆铜的其他部分定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第三覆铜的多边形为由离散点依次连成的多边形,当覆铜的其他部分定义为多边形时,所述第三覆铜的多边形为版图中定义的多边形;

第三新的覆铜多边形布尔操作单元用于将所述第一覆铜的多边形和第三覆铜的多边形进行布尔或操作,形成第三新的覆铜多边形; 所述第一新的覆铜多边形布尔操作单元用于将所述第三新的覆铜多边形分别和所述第一挖空的多边形、所述第二挖空的多边形进行布尔差操作,形成第一新的覆铜多边形; 所述统一的版图多边形布尔操作单元用于将所述第一新的覆铜多边形和所述第二覆铜的多边形进行布尔或操作,形成统一的版图多边形。

6.根据权利要求5所述的一种集成电路版图孤岛和微孔的自动消除的系统,其特征在于,所述覆盖多边形生成模块包括第一单元、第二单元、第三单元、第四单元、第五单元、第六单元和第七单元;其中,所述第一单元用于依据Delaunay剖分准则对所述统一的版图多边形的顶点进行网格剖分,形成网格剖分;所述第二单元用于基于边交换法构建以统一的版图多边形的边为约束的约束三角形网格;所述第三单元用于基于所述约束三角形网格识别所述统一的版图多边形中的每个覆铜区域和/或每个挖空区域;所述第四单元用于基于每个所述覆铜区域的面积大小识别孤岛和/或基于每个挖空区域的面积大小识别微孔;所述第五单元用于对每个孤岛和/或微孔,设置没有相同编号的邻居三角形的三角形对应的边作为所述孤岛和/或微孔的边界;所述第六单元用于将每个孤岛和/或微孔内的所述没有相同编号的邻居三角形的约束三角形对应的边首尾相连构成多边形E;所述第七单元用于基于所述多边形E和三角形网格建立用于覆盖所述孤岛和/或微孔的外辅助多边形E1;所述外辅助多边形E1为所述用于覆盖所述孤岛和/或微孔的覆盖多边形。

7.根据权利要求6所述的一种集成电路版图孤岛和微孔的自动消除的系统,其特征在于,所述第三单元执行的步骤包括: S230、初始设置所有三角形的编号为未编号;设置当前覆铜区域的三角形填充编号为fp=0;设置当前挖空区域的三角形填充编号为fn=0;设置当前外围覆铜网格单元集合Frontp为空;设置当前外围挖空网格单元集合Frontn为空;设置当前处理第q=1个多边形;

S231、如果q>多边形数量,转入步骤S238,否则,如果当前处理的第q个多边形为覆铜多边形,转入步骤S232,如果当前处理的第q个多边形为挖空多边形,转入步骤S235; S232、设置fp=fp+1,对第q个覆铜多边形,从多边形的任意边e出发,找到这个边关联的左三角形t1,若所述左三角形t1的编号为未编号,设置三角形t1的编号为fp,将其加入到集合Frontp中,所述多边形任意边e的左三角形为包含该边e且三角形边e的方向与多边形边e的方向相同的三角形; S233、从所述外围覆铜网格单元集合Frontp取出一个三角形t并将其从所述集合Frontp中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的编号为未编号,且公共边不为任何多边形的边,则将所述三角形t的该一个或多个邻居三角形加入所述外围覆铜网格单元集合Frontp中,并将新加入所述外围覆铜网格单元集合Frontp的三角形的编号为fp,其中,所述公共边指与所述三角形t相邻的三角形与所述三角形t的公共边;

S234、判断所述外围覆铜网格单元集合Frontp是否为空集,若否,转入步骤S233,若是,设置q=q+1,转入步骤S231; S235、设置fn=fn‑1,对第q个挖空多边形,从多边形的任意边e出发,找到这个边关联的右三角形t1,若所述右三角形t1的编号为未编号,设置三角形t1的编号为fn,将其加入到集合Frontn中,所述多边形任意边e的右三角形为包含该边e且三角形边e的方向与多边形边e的方向相反的三角形;

S236、从所述外围挖空网格单元集合Frontn取出一个三角形t并将其从所述集合Frontn中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的编号为未编号,且所述三角形t的邻居三角形的编号为未编号的邻居对应的边不是多边形的边,则将所述三角形t的该一个或多个邻居三角形加入所述集合Frontn中,并将新加入所述外围挖空网格单元集合Frontn的三角形的编号为fn; S237、判断所述外围挖空网格单元集合Frontn是否为空集,若否,转入步骤S236,若是,设置q=q+1,转入步骤S231;

S238、基于所述三角形网格的编号填充结果对编号相同的三角形面积进行累加,根据编号对应的三角形面积和的大小判断孤岛和/或微孔,如果面积和小于给定的面积阈值,编号对应的区域为孤岛和/或微孔,其中,孤岛的区域编号为正和/或微孔的区域编号为负。

8.根据权利要求7所述的一种集成电路版图孤岛和微孔的自动消除的系统,其特征在于,所述基于所述多边形E和三角形网格建立用于覆盖所述孤岛和/或微孔的外辅助多边形E1包括:在多边形E之外形成多边形E的外辅助多边形E1,并通过设定的距离阈值控制所述外辅助多边形与多边形E的距离。

说明书 :

一种集成电路版图孤岛和微孔的自动消除的方法和系统

技术领域

[0001] 本申请涉及集成电路技术领域,具体涉及一种集成电路版图孤岛和微孔的自动消除的方法和系统。

背景技术

[0002] 集成电路版图是集成电路原理图与集成电路工艺实现之间的中间环节,是一个必不可少的重要环节。随着通信技术的发展,超大规模集成电路的研究与发展已逐渐展开。为了提高电子设备的性能,缩小体积,降低成本,将晶体管与其他元器件以及线路都集成在一小块半导体基片上。为了实现更多的功能,超大规模集成电路有几层到上百层结构,每层结构极其复杂,集成数千万甚至数亿的晶体管,具有多尺度结构,从厘米级到目前最新的纳米级。集成电路版图会暗藏许多微孔和孤岛,而这些微孔和孤岛经过工艺实现会出现在集成电路中。这些在生产出来的集成电路中存在的微孔和孤岛会影响电路使用的安全性和精确性,如图2和图3中出现的孤岛和微孔。如何在集成电路版图设计中对微孔和孤岛进行消除,避免微孔和孤岛造成设计缺陷,从而避免在流片或制板后检测出微孔和孤岛导致重新制备,增加集成电路制作周期和成本,是本领域技术人员亟待解决的技术问题。

发明内容

[0003] (一)申请目的
[0004] 有鉴于此,本申请的目的在于提供一种集成电路版图孤岛和微孔的自动消除的方法和系统,用于解决在集成电路版图设计中如何消除微孔和孤岛的技术问题。
[0005] (二)技术方案
[0006] 本申请公开一种集成电路版图孤岛和微孔的自动消除的方法,包括如下步骤:
[0007] S1、将集成电路版图中的定义为孔的部分和覆铜的部分转换为版图多边形并进行布尔操作,形成统一的版图多边形;
[0008] S2、识别所述统一的版图多边形中的孤岛和/或微孔的边界,且基于所述边界生成用于覆盖所述孤岛和/或微孔的覆盖多边形;
[0009] S3、定义覆盖所述孤岛的覆盖多边形为孔的部分和/或定义覆盖所述微孔的覆盖多边形为覆铜的部分;
[0010] S4、重新读入所述集成电路版图,连同生成的覆盖多边形,生成新的集成电路版图消除所述孤岛和/或微孔。
[0011] 在一种可能的实施方式中,所述将集成电路版图中的定义为孔的部分和覆铜的部分转换为版图多边形并进行布尔操作,形成统一的版图多边形包括:
[0012] S11、对集成电路版图中定义为孔的部分转换为挖空的多边形;其中,将孔的部分中由过孔引起的隔离垫片转换为第一挖空的多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为圆时,所述第一挖空的多边形为正多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第一挖空的多边形为由离散点依次连成的多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为多边形时,所述第一挖空的多边形为版图中定义的多边形;将孔的部分中由集成电路版图中定义为覆铜的部分内的挖空圆、挖空椭圆和挖空多边形转换为第二挖空的多边形,当所述定义为覆铜的部分内的挖空圆时,所述第二挖空的多边形为正多边形,当所述定义为覆铜的部分内的挖空椭圆时,按椭圆在极坐标下等弧度取离散点,所述第二挖空的多边形为由离散点依次连成的多边形,当所述定义为覆铜的部分内的挖空多边形时,所述第二挖空的多边形为版图中定义的多边形;
[0013] S12、对集成电路版图中定义为覆铜的部分转换为覆铜的多边形;其中,将覆铜的部分中的走线按起始点、终止点和宽度转换为第一覆铜的多边形,所述第一覆铜的多边形为矩形,将覆铜的部分中由过孔引起的焊盘转换为第二覆铜的多边形,所述第二覆铜多边形在由所述隔离垫片转换为的挖空多边形内,当所述焊盘的形状在集成电路的版图中定义为圆时,所述第二覆铜的多边形为正多边形,当所述焊盘的形状在集成电路的版图中定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第二覆铜的多边形为由离散点依次连成的多边形,当所述焊盘的形状在集成电路的版图中定义为多边形时,所述第二覆铜的多边形为版图中定义的多边形,将覆铜的其他部分转换为第三覆铜的多边形,当覆铜的其他部分定义为圆时,所述第三覆铜的多边形为正多边形,当覆铜的其他部分定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第三覆铜的多边形为由离散点依次连成的多边形,当覆铜的其他部分定义为多边形时,所述第三覆铜的多边形为版图中定义的多边形;
[0014] S13、将所述第一覆铜的多边形和第三覆铜的多边形进行布尔或操作,形成第三新的覆铜多边形;
[0015] S14、将所述第三新的覆铜多边形分别和所述第一挖空的多边形、所述第二挖空的多边形进行布尔差操作,形成第一新的覆铜多边形;
[0016] S15、将所述第一新的覆铜多边形和所述第二覆铜的多边形进行布尔或操作,形成统一的版图多边形。
[0017] 在一种可能的实施方式中,所述识别所述统一的版图多边形中的孤岛和/或微孔的边界,且基于所述边界生成用于覆盖所述孤岛和/或微孔的覆盖多边形包括:
[0018] S21、依据Delaunay剖分准则对所述统一的版图多边形的顶点进行网格剖分,形成网格剖分; S22、基于边交换法构建以统一的版图多边形的边为约束的约束三角形网格;
[0019] S23、基于所述约束三角形网格识别所述统一的版图多边形中的每个覆铜区域和/或每个挖空区域;
[0020] S24、基于每个所述覆铜区域的面积大小识别孤岛和/或基于每个挖空区域的面积大小识别微孔;
[0021] S25、对每个孤岛和/或微孔,设置没有相同编号的邻居三角形的三角形对应的边作为所述孤岛和/或微孔的边界;
[0022] S26、将每个孤岛和/或微孔内的所述没有相同编号的邻居三角形的约束三角形对应的边首尾相连构成多边形E;
[0023] S27、基于所述多边形E和三角形网格建立用于覆盖所述孤岛和/或微孔的外辅助多边形E1;所述外辅助多边形E1为所述用于覆盖所述孤岛和/或微孔的覆盖多边形。
[0024] 在一种可能的实施方式中,所述基于所述约束三角形网格识别所述统一的版图多边形中的每个覆铜区域和/或每个挖空区域包括:
[0025] S230、初始设置所有三角形的编号为未编号;设置当前覆铜区域的三角形填充编号为fp=0;设置当前挖空区域的三角形填充编号为fn=0;设置当前外围覆铜网格单元集合Frontp为空;设置当前外围挖空网格单元集合Frontn为空;设置当前处理第q=1个多边形;
[0026] S231、如果q>多边形数量,转入步骤S238,否则,如果当前处理的第q个多边形为覆铜多边形,转入步骤S232,如果当前处理的第q个多边形为挖空多边形,转入步骤S235; S232、设置fp=fp+1,对第q个覆铜多边形,从多边形的任意边e出发,找到这个边关联的左三角形t1,若所述左三角形t1的编号为未编号,设置三角形t1的编号为fp,将其加入到集合Frontp中,所述多边形任意边e的左三角形为包含该边e且三角形边e的方向与多边形边e的方向相同的三角形;
[0027] S233、从所述外围覆铜网格单元集合Frontp取出一个三角形t并将其从所述集合Frontp中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的编号为未编号,且公共边不为任何多边形的边,则将所述三角形t的该一个或多个邻居三角形加入所述外围覆铜网格单元集合Frontp中,并将新加入所述外围覆铜网格单元集合Frontp的三角形的编号为fp,其中,所述公共边指与所述三角形t相邻的三角形与所述三角形t的公共边;
[0028] S234、判断所述外围覆铜网格单元集合Frontp是否为空集,若否,转入步骤S233,若是,设置q=q+1,转入步骤S231;
[0029] S235、设置fn=fn‑1,对第q个挖空多边形,从多边形的任意边e出发,找到这个边关联的右三角形t1,若所述右三角形t1的编号为未编号,设置三角形t1的编号为fn,将其加入到集合Frontn中,所述多边形任意边e的右三角形为包含该边e且三角形边e的方向与多边形边e的方向相反的三角形;
[0030] S236、从所述外围挖空网格单元集合Frontn取出一个三角形t并将其从所述集合Frontn中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的编号为未编号,且所述三角形t的邻居三角形的编号为未编号的邻居对应的边不是多边形的边,则将所述三角形t的该一个或多个邻居三角形加入所述集合Frontn中,并将新加入所述外围挖空网格单元集合Frontn的三角形的编号为fn;
[0031] S237、判断所述外围挖空网格单元集合Frontn是否为空集,若否,转入步骤S236,若是,设置q=q+1,转入步骤S231;
[0032] S238、基于所述三角形网格的编号填充结果对编号相同的三角形面积进行累加,根据编号对应的三角形面积和的大小判断孤岛和/或微孔,如果面积和小于给定的面积阈值,编号对应的区域为孤岛和/或微孔,其中,孤岛的区域编号为正和/或微孔的区域编号为负。
[0033] 在一种可能的实施方式种,所述基于所述多边形E和三角形网格建立用于覆盖所述孤岛和/或微孔的外辅助多边形E1包括:在多边形E之外形成多边形E的外辅助多边形E1,并通过设定的距离阈值控制所述外辅助多边形与多边形E的距离。
[0034] 作为本申请的第二方面,还公开了一种集成电路版图孤岛和微孔的自动消除的系统,包括版图转换模块、覆盖多边形生成模块、覆盖多边形定义模块和集成电路版图重新生成模块;其中,所述版图转换模块用于将集成电路版图中的定义为孔的部分和覆铜的部分转换为版图多边形并进行布尔操作,形成统一的版图多边形;所述覆盖多边形生成模块用于识别所述统一的版图多边形中的孤岛和/或微孔的边界,且基于所述边界生成用于覆盖所述孤岛和/或微孔的覆盖多边形;所述覆盖多边形定义模块用于定义覆盖所述孤岛的覆盖多边形为孔的部分和/或定义覆盖所述微孔的覆盖多边形为覆铜的部分;所述集成电路版图重新生成模块用于重新读入所述集成电路版图,连同生成的覆盖多边形,生成新的集成电路版图消除所述孤岛和/或微孔。
[0035] 在一种可能的实施方式中,所述版图转换模块包括孔转换单元、覆铜转换单元、第三新的覆铜多边形布尔操作单元、第一新的覆铜多边形布尔操作单元和统一的版图多边形布尔操作单元;
[0036] 所述孔转换单元用于对集成电路版图中定义为孔的部分转换为挖空的多边形;其中,将孔的部分中由过孔引起的隔离垫片转换为第一挖空的多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为圆时,所述第一挖空的多边形为正多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第一挖空的多边形为由离散点依次连成的多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为多边形时,所述第一挖空的多边形为版图中定义的多边形;将孔的部分中由集成电路版图中定义为覆铜的部分内的挖空圆、挖空椭圆和挖空多边形转换为第二挖空的多边形,当所述定义为覆铜的部分内的挖空圆时,所述第二挖空的多边形为正多边形,当所述定义为覆铜的部分内的挖空椭圆时,按椭圆在极坐标下等弧度取离散点,所述第二挖空的多边形为由离散点依次连成的多边形,当所述定义为覆铜的部分内的挖空多边形时,所述第二挖空的多边形为版图中定义的多边形;
[0037] 所述覆铜转换单元用于对集成电路版图中定义为覆铜的部分转换为覆铜的多边形;其中,将覆铜的部分中的走线按起始点、终止点和宽度转换为第一覆铜的多边形,所述第一覆铜的多边形为矩形,将覆铜的部分中由过孔引起的焊盘转换为第二覆铜的多边形,所述第二覆铜多边形在由所述隔离垫片转换为的挖空多边形内,当所述焊盘的形状在集成电路的版图中定义为圆时,所述第二覆铜的多边形为正多边形,当所述焊盘的形状在集成电路的版图中定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第二覆铜的多边形为由离散点依次连成的多边形,当所述焊盘的形状在集成电路的版图中定义为多边形时,所述第二覆铜的多边形为版图中定义的多边形,将覆铜的其他部分转换为第三覆铜的多边形,当覆铜的其他部分定义为圆时,所述第三覆铜的多边形为正多边形,当覆铜的其他部分定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第三覆铜的多边形为由离散点依次连成的多边形,当覆铜的其他部分定义为多边形时,所述第三覆铜的多边形为版图中定义的多边形;
[0038] 第三新的覆铜多边形布尔操作单元用于将所述第一覆铜的多边形和第三覆铜的多边形进行布尔或操作,形成第三新的覆铜多边形;
[0039] 所述第一新的覆铜多边形布尔操作单元用于将所述第三新的覆铜多边形分别和所述第一挖空的多边形、所述第二挖空的多边形进行布尔差操作,形成第一新的覆铜多边形;
[0040] 所述统一的版图多边形布尔操作单元用于将所述第一新的覆铜多边形和所述第二覆铜的多边形进行布尔或操作,形成统一的版图多边形。
[0041] 在一种可能的实施方式中,所述覆盖多边形生成模块包括第一单元、第二单元、第三单元、第四单元、第五单元、第六单元和第七单元;其中,所述第一单元用于依据Delaunay剖分准则对所述统一的版图多边形的顶点进行网格剖分,形成网格剖分;所述第二单元用于基于边交换法构建以统一的版图多边形的边为约束的约束三角形网格;所述第三单元用于基于所述约束三角形网格识别所述统一的版图多边形中的每个覆铜区域和/或每个挖空区域;所述第四单元用于基于每个所述覆铜区域的面积大小识别孤岛和/或基于每个挖空区域的面积大小识别微孔;所述第五单元用于对每个孤岛和/或微孔,设置没有相同编号的邻居三角形的三角形对应的边作为所述孤岛和/或微孔的边界;所述第六单元用于将每个孤岛和/或微孔内的所述没有相同编号的邻居三角形的约束三角形对应的边首尾相连构成多边形E;所述第七单元用于基于所述多边形E和三角形网格建立用于覆盖所述孤岛和/或微孔的外辅助多边形E1;所述外辅助多边形E1为所述用于覆盖所述孤岛和/或微孔的覆盖多边形。
[0042] 在一种可能的实施方式中,所述第三单元执行的步骤包括:
[0043] S230、初始设置所有三角形的编号为未编号;设置当前覆铜区域的三角形填充编号为fp=0;设置当前挖空区域的三角形填充编号为fn=0;设置当前外围覆铜网格单元集合Frontp为空;设置当前外围挖空网格单元集合Frontn为空;设置当前处理第q=1个多边形;
[0044] S231、如果q>多边形数量,转入步骤S238,否则,如果当前处理的第q个多边形为覆铜多边形,转入步骤S232,如果当前处理的第q个多边形为挖空多边形,转入步骤S235; S232、设置fp=fp+1,对第q个覆铜多边形,从多边形的任意边e出发,找到这个边关联的左三角形t1,若所述左三角形t1的编号为未编号,设置三角形t1的编号为fp,将其加入到集合Frontp中,所述多边形任意边e的左三角形为包含该边e且三角形边e的方向与多边形边e的方向相同的三角形;
[0045] S233、从所述外围覆铜网格单元集合Frontp取出一个三角形t并将其从所述集合Frontp中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的编号为未编号,且公共边不为任何多边形的边,则将所述三角形t的该一个或多个邻居三角形加入所述外围覆铜网格单元集合Frontp中,并将新加入所述外围覆铜网格单元集合Frontp的三角形的编号为fp,其中,所述公共边指与所述三角形t相邻的三角形与所述三角形t的公共边;
[0046] S234、判断所述外围覆铜网格单元集合Frontp是否为空集,若否,转入步骤S233,若是,设置q=q+1,转入步骤S231;
[0047] S235、设置fn=fn‑1,对第q个挖空多边形,从多边形的任意边e出发,找到这个边关联的右三角形t1,若所述右三角形t1的编号为未编号,设置三角形t1的编号为fn,将其加入到集合Frontn中,所述多边形任意边e的右三角形为包含该边e且三角形边e的方向与多边形边e的方向相反的三角形;
[0048] S236、从所述外围挖空网格单元集合Frontn取出一个三角形t并将其从所述集合Frontn中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的编号为未编号,且所述三角形t的邻居三角形的编号为未编号的邻居对应的边不是多边形的边,则将所述三角形t的该一个或多个邻居三角形加入所述集合Frontn中,并将新加入所述外围挖空网格单元集合Frontn的三角形的编号为fn;
[0049] S237、判断所述外围挖空网格单元集合Frontn是否为空集,若否,转入步骤S236,若是,设置q=q+1,转入步骤S231;
[0050] S238、基于所述三角形网格的编号填充结果对编号相同的三角形面积进行累加,根据编号对应的三角形面积和的大小判断孤岛和/或微孔,如果面积和小于给定的面积阈值,编号对应的区域为孤岛和/或微孔,其中,孤岛的区域编号为正和/或微孔的区域编号为负。
[0051] 在一种可能的实施方式中,所述基于所述多边形E和三角形网格建立用于覆盖所述孤岛和/或微孔的外辅助多边形E1包括:在多边形E之外形成多边形E的外辅助多边形E1,并通过设定的距离阈值控制所述外辅助多边形与多边形E的距离。
[0052] (三)有益效果
[0053] 本申请通过对集成电路版图中的微孔和/或孤岛进行自动消除处理,避免了人为处理,节省了人力物力,同时避免微孔和孤岛经过工艺实现会出现在集成电路中,从而避免在工艺生产中对产生的孤岛和微孔进行检测发现缺陷,降低集成电路制备成本,提升了生产效率。
[0054] 本申请的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本申请的实践中得到教导。本申请的目标和其他优点可以通过下面的说明书来实现和获得。

附图说明

[0055] 以下参考附图描述的实施例是示例性的,旨在用于解释和说明本申请,而不能理解为对本申请的保护范围的限制。
[0056] 图1是本申请的方法流程图;
[0057] 图2是本申请的微孔示意图;
[0058] 图3本申请的孤岛示意图;
[0059] 图4是本申请边交换法约束三角形网格生成过程示意图;
[0060] 图5是本申请所示的多边形E示意图;
[0061] 图6是本申请插入辅助节点的使得三角形网格中的每个三角形最多有一条边与多边形E的一条边重合的三角形网格示意图;
[0062] 图7是本申请角平分线上取点构造多边形E1的顶点B1示意图;
[0063] 图8是本申请的系统结构图;
[0064] 其中,1、版图转换模块;2、覆盖多边形生成模块;3、覆盖多边形定义模块;4、集成电路版图重新生成模块。

具体实施方式

[0065] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
[0066] 因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0067] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0068] 在本申请的上述描述中,需要说明的是,术语“一侧”、“另一侧”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0069] 如图1所示,本实施例提供了一种用于集成电路版图快速检测孤岛的方法,包括如下步骤:
[0070] S1、将集成电路版图中的定义为孔的部分和覆铜的部分转换为版图多边形并进行布尔操作,形成统一的版图多边形。这里形成的统一的版图多边形能够用于Delaunay进行三角形网格剖分。
[0071] 在一些实施例中,所述将集成电路版图中的定义为孔的部分和覆铜的部分转换为版图多边形并进行布尔操作,形成统一的版图多边形包括:
[0072] S11、对集成电路版图中定义为孔的部分转换为挖空的多边形;其中,将孔的部分中由过孔引起的隔离垫片转换为第一挖空的多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为圆时,所述第一挖空的多边形为正多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第一挖空的多边形为由离散点依次连成的多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为多边形时,所述第一挖空的多边形为版图中定义的多边形;将孔的部分中由集成电路版图中定义为覆铜的部分内的挖空圆、挖空椭圆和挖空多边形转换为第二挖空的多边形,当所述定义为覆铜的部分内的挖空圆时,所述第二挖空的多边形为正多边形,当所述定义为覆铜的部分内的挖空椭圆时,按椭圆在极坐标下等弧度取离散点,所述第二挖空的多边形为由离散点依次连成的多边形,当所述定义为覆铜的部分内的挖空多边形时,所述第二挖空的多边形为版图中定义的多边形;
[0073] S12、对集成电路版图中定义为覆铜的部分转换为覆铜的多边形;其中,将覆铜的部分中的走线按起始点、终止点和宽度转换为第一覆铜的多边形,所述第一覆铜的多边形为矩形,将覆铜的部分中由过孔引起的焊盘转换为第二覆铜的多边形,所述第二覆铜多边形在由所述隔离垫片转换为的挖空多边形内,当所述焊盘的形状在集成电路的版图中定义为圆时,所述第二覆铜的多边形为正多边形,当所述焊盘的形状在集成电路的版图中定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第二覆铜的多边形为由离散点依次连成的多边形,当所述焊盘的形状在集成电路的版图中定义为多边形时,所述第二覆铜的多边形为版图中定义的多边形,将覆铜的其他部分转换为第三覆铜的多边形,当覆铜的其他部分定义为圆时,所述第三覆铜的多边形为正多边形,当覆铜的其他部分定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第三覆铜的多边形为由离散点依次连成的多边形,当覆铜的其他部分定义为多边形时,所述第三覆铜的多边形为版图中定义的多边形;
[0074] S13、将所述第一覆铜的多边形和第三覆铜的多边形进行布尔或操作,形成第三新的覆铜多边形;
[0075] S14、将所述第三新的覆铜多边形分别和所述第一挖空的多边形、所述第二挖空的多边形进行布尔差操作,形成第一新的覆铜多边形;
[0076] S15、将所述第一新的覆铜多边形和所述第二覆铜的多边形进行布尔或操作,形成统一的版图多边形。
[0077] S2、识别所述统一的版图多边形中的孤岛和/或微孔的边界,且基于所述边界生成用于覆盖所述孤岛和/或微孔的覆盖多边形。
[0078] 在一些实施例中,包括如下步骤:
[0079] S21、依据Delaunay剖分准则对所述统一的版图多边形的顶点进行网格剖分,形成网格剖分。 S22、基于边交换法构建以统一的版图多边形的边为约束的约束三角形网格;统一的版图多边形通过Delaunay方法进行三角形网格剖分,形成Delaunay网格剖分,并在Delaunay网格剖分的基础上通过边交换法生成统一的版图多边形的边为约束的约束三角形网格,即使得任意版图多边形的边均为约束三角形的边,基于约束三角形网格,即可基于三角形邻居基于三角形网格遍历的方法识别出由版图多边形界定的覆铜、挖空的不同区域,其中的覆铜区域为在统一的版图多边形中覆铜部分的区域,覆铜部分的区域包括了在集成电路板图中定义的覆铜的部分,还包括了经过了布尔操作后新生成覆铜部分,挖空区域则为非覆铜区域,即挖空区域,挖空区域包括了在集成电路板图中定义的孔的部分,还包括经过了布尔操作后新生成的孔和微孔;
[0080] S221、收集网格剖分中所有不是两个三角形公共边的多边形的边,按边长排序形成集合Lost;S222、从所述集合Lost中取出边长最长的边并将其从所述集合Lost中移除,使恢复边时需要的计算量最少,如图4中的边;
[0081] S223、从所述边长最长的边的一个顶点出发,搜索包含所述顶点且其他两个顶点位于所述边两侧的三角形,所述边长最长的边即为步骤S222中取出并移除的边;如图2中,从所述边 的一个顶点A出发,搜索包含所述顶点A且顶点C、D位于所述边 两侧的三角形ΔACD,交换所述三角形ΔACD与其邻居三角形ΔDCE的公共边,得到三角形ΔACE与ΔEDA,其中,所述邻居三角形为与该三角形有公共边的三角形,交换所述三角形与其邻居三角形的公共边,得到两个新的三角形,其中,所述邻居三角形为与该三角形有公共边的三角形;
[0082] S224、重复步骤S223直到所述边长最长的边为两个邻居三角形的公共边;
[0083] S225、判断所述集合Lost是否为空集,若否,则转入步骤S222,若是,则生成所述统一的版图多边形中孔的边界为约束的约束三角形网格;转入步骤是指转入该步骤后继续按该步骤的规则和顺序执行;在收集多边形边的时候是无差别对待,不论是覆铜多边形边还是挖孔多边形的边边构成封闭的孔(多边形)是输入决定的,一定会形成首尾相连的封闭线段集合。
[0084] S23、基于所述约束三角形网格识别所述统一的版图多边形中的每个覆铜区域和/或每个挖空区域;在一些实施例中,包括如下步骤:
[0085] S230、初始设置所有三角形的编号为未编号;设置当前覆铜区域的三角形填充编号为fp=0;设置当前挖空区域的三角形填充编号为fn=0;设置当前外围覆铜网格单元集合Frontp为空;设置当前外围挖空网格单元集合Frontn为空;设置当前处理第q=1个多边形;
[0086] S231、如果q>多边形数量,转入步骤S238,否则,如果当前处理的第q个多边形为覆铜多边形,转入步骤S232,如果当前处理的第q个多边形为挖空多边形,转入步骤S235; S232、设置fp=fp+1,对第q个覆铜多边形,从多边形的任意边e出发,找到这个边关联的左三角形t1,若所述左三角形t1的编号为未编号,设置三角形t1的编号为fp,将其加入到集合Frontp中,所述多边形任意边e的左三角形为包含该边e且三角形边e的方向与多边形边e的方向相同的三角形;
[0087] S233、从所述外围覆铜网格单元集合Frontp取出一个三角形t并将其从所述集合Frontp中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的编号为未编号,且公共边不为任何多边形的边,则将所述三角形t的该一个或多个邻居三角形加入所述外围覆铜网格单元集合Frontp中,并将新加入所述外围覆铜网格单元集合Frontp的三角形的编号为fp,其中,所述公共边指与所述三角形t相邻的三角形与所述三角形t的公共边;
[0088] S234、判断所述外围覆铜网格单元集合Frontp是否为空集,若否,转入步骤S233,若是,设置q=q+1,转入步骤S231;
[0089] S235、设置fn=fn‑1,对第q个挖空多边形,从多边形的任意边e出发,找到这个边关联的右三角形t1,若所述右三角形t1的编号为未编号,设置三角形t1的编号为fn,将其加入到集合Frontn中,所述多边形任意边e的右三角形为包含该边e且三角形边e的方向与多边形边e的方向相反的三角形;
[0090] S236、从所述外围挖空网格单元集合Frontn取出一个三角形t并将其从所述集合Frontn中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的编号为未编号,且所述三角形t的邻居三角形的编号为未编号的邻居对应的边不是多边形的边,则将所述三角形t的该一个或多个邻居三角形加入所述集合Frontn中,并将新加入所述外围挖空网格单元集合Frontn的三角形的编号为fn;
[0091] S237、判断所述外围挖空网格单元集合Frontn是否为空集,若否,转入步骤S236,若是,设置q=q+1,转入步骤S231;
[0092] S238、基于所述三角形网格的编号填充结果对编号相同的三角形面积进行累加,根据编号对应的三角形面积和的大小判断孤岛和/或微孔,如果面积和小于给定的面积阈值,编号对应的区域为孤岛和/或微孔,其中,孤岛的区域编号为正和/或微孔的区域编号为负。
[0093] S24、基于每个所述覆铜区域的面积大小识别孤岛和/或基于每个挖空区域的面积大小识别微孔;将覆铜区域和/或挖空区域内的三角形网格面积累加,面积和小于阈值则判断为孤岛和/或微孔。
[0094] S25、对每个孤岛和/或微孔,设置没有相同编号的邻居三角形的三角形对应的边作为所述孤岛和/或微孔的边界。
[0095] S26、将每个孤岛和/或微孔内的所述没有相同编号的邻居三角形的约束三角形对应的边首尾相连构成多边形E。
[0096] S27、基于所述多边形E和三角形网格建立用于覆盖所述孤岛和/或微孔的外辅助多边形E1;所述外辅助多边形E1为所述用于覆盖所述孤岛和/或微孔的覆盖多边形。在一些实施例中,所述基于所述多边形E和三角形网格建立用于覆盖所述孤岛和/或微孔的外辅助多边形E1包括:在多边形E之外形成多边形E的外辅助多边形E1,并通过设定的距离阈值控制所述外辅助多边形与多边形E的距离。如图5所示,图中的顶点ABCDEFGHIJKLM形成的多边形E,生成所述多边形E的顶点的三角形网格T;在所述三角形网格中插入辅助节点,使得所述三角形网格T中的每个三角形最多有一条边与所述多边形E的一条边重合,如图6所示,其中,两条边重合是指两条边有两个相同的顶点,该两条边的方向相同或不同;根据所述多边形E的各个边和顶点信息逐一计算所述外辅助多边形E1的各个顶点信息:设所述多边形E的一个顶点B的两个相邻边为 和 ,在相邻边 和 的角平分线上取点B1,该点在多边形E之外,且满足 ,其中lmin为包含顶点B的三角形的最小边的边长,如图7所示。其中factor为距离阈值系数,factor>1,例如可取factor=2,其他顶点对应的外辅助多边形E1的顶点可按相同的方法给出。
[0097] 本实施例中的挖空区域和覆铜区域与集成电路版图定义的孔的部分和覆铜的部分存在区别,挖空区域是统一的版图多边形中存在孔的区域,包含了集成电路版图中定义的孔的部分和新生成的孔的部分,例如走线间形成的孔,而覆铜区域是统一的版图多边形中存在覆铜的区域,包含了集成电路版图中定义的覆铜部分和新生成的覆铜的部分,例如过孔之间的孤岛。
[0098] S3、定义覆盖所述孤岛的覆盖多边形为孔的部分和/或定义覆盖所述微孔的覆盖多边形为覆铜的部分。
[0099] 在一些实施例中,对所述外辅助多边形E1进行定义,当所述外辅助多边形E1对应的边界为微孔的边界时,所述外辅助多边形E1定义为所述覆铜的部分;当外辅助多边形E1对应的边界为孤岛的边界时,所述外辅助多边形E1定义为所述孔的部分;所述外辅助多边形E1为所述覆盖所述孤岛和/或微孔的覆盖多边形。
[0100] S4、读入所述集成电路版图和已定义的所述覆盖多边形的文件,生成新的集成电路版图消除所述孤岛和/或微孔。因为在检测微孔与孤岛的过程中,对原始的版图设计文件中的走线、焊盘、隔离垫片全都转换成为多边形并进行了布尔操作,与原始的版图设计文件有所区别,消除微孔与孤岛后,不应该对原始的版图设计中的走线、焊盘、隔离垫片有任何修改,因此小于重新读入原始的版图设计文件,再加上新加入的外辅助多边形E1以形成最终的版图设计文件。
[0101] 通过对集成电路版图中的微孔和/或孤岛进行自动消除处理,避免了人为处理,节省了人力物力,同时避免微孔和孤岛经过工艺实现会出现在集成电路中,从而避免在工艺生产中对产生的孤岛和微孔进行检测发现缺陷,降低集成电路制备成本,提升了生产效率。
[0102] 如图8所示,作为本实施例的第二方面还提供了一种集成电路版图孤岛和微孔的自动消除的系统,包括版图转换模块1、覆盖多边形生成模块2、覆盖多边形定义模块3和集成电路版图重新生成模块4;其中,所述版图转换模块1用于将将集成电路版图中的定义为孔的部分和覆铜的部分转换为版图多边形并进行布尔操作,形成统一的版图多边形;所述覆盖多边形生成模块2用于识别所述统一的版图多边形中的孤岛和/或微孔的边界,且基于所述边界生成用于覆盖所述孤岛和/或微孔的覆盖多边形;所述覆盖多边形定义模块3用于定义覆盖所述孤岛的覆盖多边形为孔的部分和/或定义覆盖所述微孔的覆盖多边形为覆铜的部分;所述集成电路版图重新生成模块4用于读入所述集成电路版图和已定义的所述覆盖多边形的文件,生成新的集成电路版图消除所述孤岛和/或微孔。
[0103] 所述版图转换模块1包括孔转换单元、覆铜转换单元、第三新的覆铜多边形布尔操作单元、第一新的覆铜多边形布尔操作单元和统一的版图多边形布尔操作单元; 所述孔转换单元用于对集成电路版图中定义为孔的部分转换为挖空的多边形;其中,将孔的部分中由过孔引起的隔离垫片转换为第一挖空的多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为圆时,所述第一挖空的多边形为正多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第一挖空的多边形为由离散点依次连成的多边形,当所述由过孔引起的隔离垫片的形状在集成电路的版图中定义为多边形时,所述第一挖空的多边形为版图中定义的多边形;将孔的部分中由集成电路版图中定义为覆铜的部分内的挖空圆、挖空椭圆和挖空多边形转换为第二挖空的多边形,当所述定义为覆铜的部分内的挖空圆时,所述第二挖空的多边形为正多边形,当所述定义为覆铜的部分内的挖空椭圆时,按椭圆在极坐标下等弧度取离散点,所述第二挖空的多边形为由离散点依次连成的多边形,当所述定义为覆铜的部分内的挖空多边形时,所述第二挖空的多边形为版图中定义的多边形; 所述覆铜转换单元用于对集成电路版图中定义为覆铜的部分转换为覆铜的多边形;其中,将覆铜的部分中的走线按起始点、终止点和宽度转换为第一覆铜的多边形,所述第一覆铜的多边形为矩形,将覆铜的部分中由过孔引起的焊盘转换为第二覆铜的多边形,所述第二覆铜多边形在由所述隔离垫片转换为的挖空多边形内,当所述焊盘的形状在集成电路的版图中定义为圆时,所述第二覆铜的多边形为正多边形,当所述焊盘的形状在集成电路的版图中定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第二覆铜的多边形为由离散点依次连成的多边形,当所述焊盘的形状在集成电路的版图中定义为多边形时,所述第二覆铜的多边形为版图中定义的多边形,将覆铜的其他部分转换为第三覆铜的多边形,当覆铜的其他部分定义为圆时,所述第三覆铜的多边形为正多边形,当覆铜的其他部分定义为椭圆时,按椭圆在极坐标下等弧度取离散点,所述第三覆铜的多边形为由离散点依次连成的多边形,当覆铜的其他部分定义为多边形时,所述第三覆铜的多边形为版图中定义的多边形;
[0104] 第三新的覆铜多边形布尔操作单元用于将所述第一覆铜的多边形和第三覆铜的多边形进行布尔或操作,形成第三新的覆铜多边形; 所述第一新的覆铜多边形布尔操作单元用于将所述第三新的覆铜多边形分别和所述第一挖空的多边形、所述第二挖空的多边形进行布尔差操作,形成第一新的覆铜多边形; 所述统一的版图多边形布尔操作单元用于将所述第一新的覆铜多边形和所述第二覆铜的多边形进行布尔或操作,形成统一的版图多边形。
[0105] 所述覆盖多边形生成模块2包括第一单元、第二单元、第三单元、第四单元、第五单元、第六单元和第七单元;其中,所述第一单元用于依据Delaunay剖分准则对所述统一的版图多边形的顶点进行网格剖分,形成网格剖分;所述第二单元用于基于边交换法构建以统一的版图多边形的边为约束的约束三角形网格;所述第三单元用于基于所述约束三角形网格识别所述统一的版图多边形中的每个覆铜区域和/或每个挖空区域;所述第四单元用于基于每个所述覆铜区域的面积大小识别孤岛和/或基于每个挖空区域的面积大小识别微孔;所述第五单元用于对每个孤岛和/或微孔,设置没有相同编号的邻居三角形的三角形对应的边作为所述孤岛和/或微孔的边界;所述第六单元用于将每个孤岛和/或微孔内的所述没有相同编号的邻居三角形的约束三角形对应的边首尾相连构成多边形E;所述第七单元用于基于所述多边形E和三角形网格建立用于覆盖所述孤岛和/或微孔的外辅助多边形E1;所述外辅助多边形E1为所述用于覆盖所述孤岛和/或微孔的覆盖多边形。
[0106] 所述第三单元执行的步骤包括:
[0107] S230、初始设置所有三角形的编号为未编号;设置当前覆铜区域的三角形填充编号为fp=0;设置当前挖空区域的三角形填充编号为fn=0;设置当前外围覆铜网格单元集合Frontp为空;设置当前外围挖空网格单元集合Frontn为空;设置当前处理第q=1个多边形;
[0108] S231、如果q>多边形数量,转入步骤S238,否则,如果当前处理的第q个多边形为覆铜多边形,转入步骤S232,如果当前处理的第q个多边形为挖空多边形,转入步骤S235; S232、设置fp=fp+1,对第q个覆铜多边形,从多边形的任意边e出发,找到这个边关联的左三角形t1,若所述左三角形t1的编号为未编号,设置三角形t1的编号为fp,将其加入到集合Frontp中,所述多边形任意边e的左三角形为包含该边e且三角形边e的方向与多边形边e的方向相同的三角形;
[0109] S233、从所述外围覆铜网格单元集合Frontp取出一个三角形t并将其从所述集合Frontp中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的编号为未编号,且公共边不为任何多边形的边,则将所述三角形t的该一个或多个邻居三角形加入所述外围覆铜网格单元集合Frontp中,并将新加入所述外围覆铜网格单元集合Frontp的三角形的编号为fp,其中,所述公共边指与所述三角形t相邻的三角形与所述三角形t的公共边;
[0110] S234、判断所述外围覆铜网格单元集合Frontp是否为空集,若否,转入步骤S233,若是,设置q=q+1,转入步骤S231;
[0111] S235、设置fn=fn‑1,对第q个挖空多边形,从多边形的任意边e出发,找到这个边关联的右三角形t1,若所述右三角形t1的编号为未编号,设置三角形t1的编号为fn,将其加入到集合Frontn中,所述多边形任意边e的右三角形为包含该边e且三角形边e的方向与多边形边e的方向相反的三角形;
[0112] S236、从所述外围挖空网格单元集合Frontn取出一个三角形t并将其从所述集合Frontn中移除,若所述三角形t的三个邻居三角形中的任何一个或多个邻居三角形的编号为未编号,且所述三角形t的邻居三角形的编号为未编号的邻居对应的边不是多边形的边,则将所述三角形t的该一个或多个邻居三角形加入所述集合Frontn中,并将新加入所述外围挖空网格单元集合Frontn的三角形的编号为fn;
[0113] S237、判断所述外围挖空网格单元集合Frontn是否为空集,若否,转入步骤S236,若是,设置q=q+1,转入步骤S231;
[0114] S238、基于所述三角形网格的编号填充结果对编号相同的三角形面积进行累加,根据编号对应的三角形面积和的大小判断孤岛和/或微孔,如果面积和小于给定的面积阈值,编号对应的区域为孤岛和/或微孔,其中,孤岛的区域编号为正和/或微孔的区域编号为负。
[0115] 第七单元执行的步骤包括:在多边形E之外形成多边形E的外辅助多边形E1,并通过设定的距离阈值控制所述外辅助多边形与多边形E的距离。如图5所示,图中的顶点ABCDEFGHIJKLM形成的多边形E,生成所述多边形E的顶点的三角形网格T;在所述三角形网格中插入辅助节点,使得所述三角形网格T中的每个三角形最多有一条边与所述多边形E的一条边重合,如图6所示,其中,两条边重合是指两条边有两个相同的顶点,该两条边的方向相同或不同;根据所述多边形E的各个边和顶点信息逐一计算所述外辅助多边形E1的各个顶点信息:设所述多边形E的一个顶点B的两个相邻边为 和 ,在相邻边 和 的角平分线上取点B1,该点在多边形E之外,且满足 ,其中lmin为包含顶点B的三角形的最小边的边长,如图7所示。其中factor为距离阈值系数,factor>1,例如可取factor=2,其他顶点对应的外辅助多边形E1的顶点可按相同的方法给出。
[0116] 最后说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或者等同覆盖,而不脱离本申请技术方案的宗旨和范围,其均应涵盖在本申请的权利要求范围当中。