发明内容
针对上述现有技术的不足,本发明的目的在于提供一种基于多边形操作的集成电路版图设计规则检查的方法,通过该方法,能够将版图图形抽象成一种多边形数据表示,并在此基础上通过预定义的多边形操作进行设计规则的检查。本发明提出的多边形数据表示以及操作具有很低的计算复杂性,能够很好的嵌入到自动布线流程中进行设计规则的检查。对于版图中违反设计规则的图形,本发明提出的方法也会对其作出启发性的标记,供自动布线工具进行局部区域的拆分重布或是设计人员进行版图的微调。
本发明的另一个目的在于提供了一种基于多边形操作的集成电路版图设计规则检查的方法的系统。
为解决上述技术问题,本发明采用如下技术方案:
一种集成电路版图设计规则检查的方法,将版图图形抽象成为由一系列的水平边界定义的多边形数据表示,定义并实现多边形特征抽取方法、多边形之间的逻辑运算方法、多边形连通区域和边界边的枚举遍历操作方法,在此基础之上,进行设计规则的检查和标记。
一种集成电路版图设计规则检查的的系统,其包括以下模块:文件读取模块(1)、多边形构造模块(2)、多边形特征提取模块(3)、多边形操作模块(4)、多边形转换模块(5)、多边形边界边访问模块(6)和设计规则检查模块(7);
所述文件读取模块(1)基于OpenAccess数据平台,使用内置的lef2oa和def2oa命令将输入的LEF/DEF文件转换为OpenAccess内部数据结构,转换为OpenAccess内部数据结构之后,再进一步将金属互连线和通孔存储在基于矩形的数据结构中,以便进行接下来的操作;
在所述多边形构造模块(2)中,多边形由一系列的顺时针方向的水平边界边表示,首先将构成多边形的原始矩形的水平边加入多边形水平边界集合,并且按照从下往上的顺序排序,之后对于集合中的边按照从下往上的顺序扫描,合并处于相同扫描线上的边,删除处于多边形内部的边,并且按照所在边界的位置重新确定边的起点和终点,最终得到一组无冗余的边界边集合;
在所述多边形特征提取模块(3)中提供了一系列的方法,用于提取版图多边形的各种几何信息,包括计算多边形面积、覆盖多边形的最小边界框、多边形覆盖的最大矩形和判断多边形是否覆盖某几何图形,用于设计规则检查;
在所述多边形操作模块(4)中提供基本的多边形与多边形之间的加、减及与的操作方法,所述加操作将两个多边形的两组边界边合并为一组,之后通过所述多边形构造模块得到这一组初始边所对应的新的多边形表示;所述减操作保持被减多边形的顺时针边界边,而将减去的多边形的边界边变为逆时针之后,跟前一组边界边合并为一组,并调用多边形构造模块得到新的多边形表示;所述与操作将原始多边形的边界边都变为反向的逆时针方向,进行加操作,然后再将得到的多边形边界边变为顺时针方向,从而得到与操作的多边形表示;
在所述多边形转换模块(5)中提供多边形到矩形集合的分割操作,可以按照水平或垂直方向将多边形分割成两两之间相互连接但不重叠的矩形集合,供设计规则检查使用;还提供矩形集合的枚举操作,能够将多边形包含的最大矩形组成的集合提取出来,供设计规则检查使用;
在所述多边形边界边访问模块(6)重提供访问多边形边界边的操作,首先通过顺时针的水平边界边生成出顺时针的垂直边界边,然后将水平边和垂直边按照头尾相连的顺序连接成若干连通环;可以按照顺序遍历每一个连通区域上的连通环,以及该连通环上的边界边,或是无序枚举所有的边界边;
所述设计规则检查模块(7)根据版图的工艺信息,提取出版图图形需要满足的设计规则抽象表示,包括不同线网之间线间距的要求,以及同一线网几何图形形状的要求,对于线间距规则,调用多边形边界枚举模块和多边形转换模块得到版图上线头以及非最小线宽线的边界信息,检查这些特殊边界对于相邻图形是否满足线间距的要求;对于几何图形形状规则,通过计算多边形特征以及遍历边界边,判断该几何形状是否满足要求的设计规则。
上述技术方案具有如下有益效果:
本发明的集成电路版图设计规则检查的方法及其系统提出了一种对于版图图形的数据结构表示方法,能够进行互连线矩形和版图多边形之间的数据结构相互转化,定义并实现了多边形操作以及多边形边界边的遍历枚举操作方法,在此基础之上进行设计规则的检查。对于版图中存在违反设计规则的图形区域,本发明提出的方法也会对其作出启发性的标记,供自动布线工具进行局部区域的拆分重布或是设计人员进行版图的微调。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图对本专利进行详细说明。
具体实施方式
下面结合附图对本发明的优选实施例进行详细介绍。
本实施例设计了一种基于多边形操作的集成电路版图设计规则检查的方法。对于输入的版图图形,该方法将其抽象成为由一系列的水平边界定义的多边形数据表示,提供接口在自动布线产生的矩形走线和版图多边形之间进行相互转化,如图1所示。同时,该方法定义并实现了多边形之间的加(UNION),减(SUBSTRACT),与(AND)操作方法(见图2),以及多边形连通区域和边界边的枚举遍历操作方法,如图3所示。在此基础之上,布线工具可以方便的进行版图多边形的构造和删减操作,以及根据设计规则内容进行多边形覆盖矩形和边界边的遍历,判断其是否满足相应的设计规则。
首先,结合图4对本发明得到输入输出进行说明。输入包括包含版图信息的DEF文件和包含工艺信息的LEF文件(LEF文件里描述了版图图形需要满足的设计规则集合),输出是违反设计规则的图形位置和图形表示的启发性修复方法。LEF/DEF是工业界标准的版图信息和工艺信息描述格式。输出的违反设计规则的图形标记存放在OpenAccess(OA)数据平台中,既可用于显示供用户查找遍历版图中违反设计规则的区域,也可供布线程序进行选择性的拆分重布消除冲突。
然后,结合图5对本发明进行详细阐述。
(1)文件读取模块1
基于OA数据平台,使用内置的lef2oa和def2oa命令将输入的LEF/DEF文件转换为OA内部的数据结构。转换为OA的数据结构之后,再进一步将金属互连线和通孔存储在该发明构造好的基于矩形的数据结构中(因为无论是金属线还是通孔在版图上的图形都是矩形),以便进行接下来的操作。
(2)多边形构造模块2
在该发明中,多边形由一系列的顺时针方向的水平边界边表示。该发明首先将构成多边形的原始矩形的水平边加入多边形水平边界集合,并且按照从下往上的顺序排序,如图6所示。之后对于集合中的边按照从下往上的顺序扫描,合并处于相同扫描线上的边,删除处于多边形内部的边,并且按照所在边界的位置重新确定边的起点和终点,最终得到一组无冗余的边界边集合。
(3)多边形特征提取模块3
该发明提供了一系列的方法,用于提取版图多边形的各种几何信息,例如计算多边形面积,覆盖多边形的最小边界框,多边形覆盖的最大矩形,判断多边形是否覆盖某几何图形等操作,用于设计规则检查。
(4)多边形操作模块4
提供基本的多边形与多边形之间的加(UNION),减(SUBSTRACT),与(AND)操作方法。对于加操作,该发明将两个多边形的两组边界边合并为一组,之后通过多边形构造模块得到这一组初始边所对应的新的多边形表示,如图7(a)所示。对于减操作,该发明保持被减多边形的顺时针边界边,而将减去的多边形的边界边变为逆时针之后,跟前一组边界边合并为一组,并调用多边形构造模块得到新的多边形表示,如图7(b)所示。对于与操作,该发明将原始多边形的边界边都变为反向的逆时针方向,进行加操作,然后再将得到的多边形边界边变为顺时针方向,从而得到与操作的多边形表示。
(5)多边形转换模块5
提供多边形到矩形集合的分割操作,可以按照水平或垂直方向将多边形分割成两两之间相互连接但不重叠的矩形集合,供设计规则检查使用,如图8(a)所示。提供矩形集合的枚举操作,能够将多边形包含的最大矩形组成的集合提取出来,供设计规则检查使用,如图8(b)所示。
(6)多边形边界边访问模块6
提供访问多边形边界边的操作,首先通过顺时针的水平边界边生成出顺时针的垂直边界边,然后将水平边和垂直边按照头尾相连的顺序连接成若干连通环。可以按照顺序遍历每一个连通区域上的连通环,以及该连通环上的边界边,或是无序枚举所有的边界边,如图9所示。
(7)设计规则检查模块7
设计规则检查模块根据版图的工艺信息,提取出版图图形需要满足的设计规则抽象表示,包括不同线网之间线间距的要求,以及同一线网几何图形形状的要求。对于线间距规则,调用多边形边界枚举模块和多边形转换模块得到版图上线头(End-Of-Line)以及非最小线宽线(Fat-Wire)的边界信息,检查这些特殊边界对于相邻图形是否满足线间距的要求;对于几何图形形状规则,通过计算多边形特征以及遍历边界边,判断该几何形状是否满足要求的设计规则。该模块包含若干设计规则检查子模块,如图10所示。
进一步的,本实施例现结合图10和图11对其进行详细阐述:
采用45nm工艺的一个测试用例布线后LEF/DEF版图输出作为实例,用本发明的方法对其进行45nm设计规则的检查。工艺信息中,包含最小线间距,不同线宽线间距,线头到线边线间距,最小金属面积,最小金属围绕面积,最小通孔数,最小通孔金属覆盖面积等设计规则。:
步骤1)版图文件和工艺信息文件的读入
待处理的版图文件为test.def,工艺信息和标准单元库文件为tech45.lef,基于OpenAccess数据平台,使用命令lef2oa和def2oa将DEF/LEF文件信息转化为OA的数据结构,生成了/test/test/layout的版图视图和/tech45的单元库。通过调用OA提供的数据接口函数可以从这些目录中读取所需要的版图数据和设计规则信息。之后将这些数据和信息转换存储本发明自定义的数据结构中。
步骤2)构造多边形
根据几何图形的数量,在每一层上,将整个布线区域递归划分成若干不同的检查区域,每个区域中的几何图形的数量均小于同一阈值。对处于同一个检查区域中属于同一线网的几何图形集合,调用多边形构造模块将它们转化为多边形数据结构。
步骤3)设计规则的检查
根据不同的设计规则要求,调用相应的多边形操作模块进行设计规则的检查,具体说来,包括如下几部分:
(3a)不同线宽线间距规则(SpacingTable)的检查:step1,调用多边形转换模块,得到多边形包含的最大矩形集合,根据它们的最小宽度,确定每一个矩形所对应的线间距要求;step2,调用多边形边界边访问模块,根据每一条边所连接的最大矩形,确定该边需要的线间距,在线间距范围内查找可能违反设计规则的相邻互连线并记录违反设计规则的区域;step3,将所有可能违反设计规则的区域合并到一起,构造一个违反设计规则的区域多边形,调用多边形边界枚举模块,检查每一个连通区域的最大长度,如果该长度大于设计规则中要求的平行线长度,则该连通区域是一个真实的违反设计规则的区域,记录下该区域。
(3b)线头到线边线间距(EndOfLineSpacing)的检查:step1,调用多边形边界边访问模块,按顺序得到连通环上连接在一起的三条边界边集合,分别检查边界边长度是否满足线头规则定义,若满足,则将中间边界边记录在线头数组中;step2,对线头数组中的每一个线头,检查线间距范围内违反设计规则的相邻线头或线边,记录下不满足设计规则的区域。
(3c)最小金属面积(MinArea)的检查:调用多边形特征提取模块,计算连接在一起的金属线组成的多边形面积,记录下不满足最小面积规则的区域。
(3d)最小金属围绕面积(MinEnclosedArea)的检查:step1,调用多边形边界边访问模块,逐一访问所有的连通环,若该连通环是顺时针方向,说明该连通环内部区域是金属线,若该连通环是逆时针方向,说明该连通环内部是金属线围绕的空区域,记录下该区域;step2,调用多边形特征提取模块,检查空区域的面积,若该面积小于最小金属围绕面积,记录下违反此设计规则的区域。
(3e)最小通孔数(MinimumCut)的检查:step1,调用多边形转换模块,得到多边形包含的最大矩形集合,根据每一个最大矩形的宽度跟面积,确定它们所需要的最小通孔数;step2,调用多边形操作模块,按照设计规则规定的外围长度,找到满足宽度的最大矩形外围长度距离范围之内的多边形;step3,检查上述多边形所覆盖范围内的通孔数量,若通孔数量小于设计规则规定的阈值,则该多边形违反最小通孔规则,记录下该区域。
(3f)最小通孔金属覆盖面积(CutEnclosure)的检查:step1,对于每一个通孔,记录下所有与之接触的金属线;step2,对这些金属线的集合,调用多边形构造模块,得到与通孔接触的版图多边形;step3,检查该多边形覆盖的最大矩形的宽度,根据该宽度确定所需要的金属覆盖面积规则;step4,检查通孔覆盖面积是否满足最小瞳孔覆盖面积规则,记录下不满足该设计规则的区域。
(3g)最短边(MinStep)的检查:调用多边形边界边访问模块,逐一访问相邻的边界边,若边界边长度不满足设计规则要求,记录下该区域。
步骤4)对违反设计规则的版图修正
对于违反设计规则的区域,在OA数据库中创建标识。该标识可用于用户的图形界面显示,从而提供遍历查找和手动修复的功能;或是根据设计规则,在这些违反设计规则的区域中创建布线障碍,然后调用自动布线工具进行局部的版图修正。
以上对本发明实施例进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制,凡依本发明设计思想所做的任何改变都在本发明的保护范围之内。