集成电路版图自动构造层次方法

文档序号:6605659阅读:344来源:国知局
专利名称:集成电路版图自动构造层次方法
技术领域
本发明是一种集成电路版图自动构造层次方法,所属的技术领域是集成电路计算机辅助设计领域,尤其是涉及集成电路版图的设计规则检查(DRC)和版图与原理图的一致性检查(LVQ领域。
背景技术
随着集成电路集成度和规模的不断提高,特别是随着工艺不断向着纳米级进展, 在集成电路设计的各个阶段所需运行的验证也相应增多。其中集成电路版图的设计规则检查(DRC)以及集成电路版图与原理图的一致性检查(LVS)变得越来越重要,它们对于消除错误、降低设计成本和减少设计失败的风险具有重要作用。在超大规模集成电路设计中,版图规模急剧膨胀,传统的扁平的版图验证方法在计算速度和内存使用方面都远远落后于用户的需求。在目前应用最广的层次版图数据结构中,电路模块通常被组织成“单元”的形式, 同一单元可以被重复调用多次。例如,可以将锁相环模块(PLL)组织成一个单元,当版图中需要多个同样的锁相环模块时,可以多次调用PLL单元,每次调用称为一个实例,可将实例编号为PLL1,PLL2,PLL3,……。层次的版图验证方法利用版图在设计过程中所具有的层次特点,对多次重复出现的单元只需验证一次,而不需要将所有重复的单元实例都打散,这就减少了冗余的操作和运算,从而有效提高了计算效率,已经成为流行的版图验证方法。然而,很多集成电路版图的层次结构并不完善,并没有将所有重复的图形或单元实例模式都组织成被重复调用的单元。例如,PLL的三个子模块VCO(压控振荡器)、LPF(低通滤波器)、PC (鉴相器)可能并未组织在一个单元中,而是以三个单元的形式独立存在,它们的实例为重复出现的相同组合VC01、LPF1、PC1 ;VC02、LPF2、PC2,……。在自动布局布线工具利用标准单元产生的版图中,在内存阵列和各种门阵列版图中,这种未组织起来的重复模式是很常见的。如果能够自动识别这些重复的模式,将重复的模式都组织成被重复调用的新单元,可以显著提高层次版图验证工具的处理效率。图1是由两个图形(或单元实例)构成的重复模式的示意图。重复的组合模式为 AB,该重复模式出现了两个实例A1B1和A2B2。在这个例子中,将A2和B2进行相同的线性坐标变换(相对于原点逆时针旋转90度并适当平移),则A2与Al完全重合,并且B2与Bl
完全重合。

发明内容
本发明目的在于提供一种集成电路版图自动构造层次方法,能够自动快速找到集成电路版图中重复出现的图形或单元实例组合模式,将这些重复模式组织成新单元,并重复调用这些新单元。本发明的主要思路就是利用划分网格的方法找到版图中相互连接的图形或单元实例组合,利用哈希表找到重复的组合,然后将重复的组合模式转换为被重复调用的单元。 具体的实现步骤包括①将集成电路版图划分为大小不同的多级网格;②将几何图形或单
3元实例放入适当大小的网格中;③在每个网格中以及相邻的网格中找到所有相互连接的图形或单元实例组合;④利用哈希表存储这些组合并查找重复出现的组合;⑤将重复出现的组合构造成新的单元并重复调用这些新单元;⑥重复执行步骤①-⑤,直到达到预先设定的停止条件或者不能再找到重复模式为止。(1)将集成电路版图划分为大小不同的多级网格大规模集成电路的版图中包含大量的图形和单元实例。其中相互连接的图形或单元实例组合也非常多。两个图形或单元实例“相互连接”是指,这两个图形或单元实例或者有公共面积,或者有公共边,或者有公共点,或者它们的距离不超过某一设定值。三个以上图形或单元实例相互连接是指,其中每一个图形或单元实例至少与其中一个其它图形或单元实例相互连接。以找到所有由两个图形或单元实例构成的连接组合为例,要找到所有这些组合,有一种简单的方法对于每一个图形或单元实例,依次检查该图形与其它每一个图形或单元实例是否是连接的,如果连接,就记录一次连接组合。但是这种方法的处理效率很低。假设有η个图形或单元实例,按这种方法至少需要η (η-1)/2次连接判断,其复杂度为 0(η2)。事实上,只有相距较近的图形或单元实例才可能相互连接,每个图形或单元实例只可能与附近的几个图形或单元实例相连接,不必与远处的图形或单元实例做连接判断。 连接组合的总数在数量级上更接近0(η)。为此本发明采用网格化的方法对版图进行划分, 将图形或单元实例放入网格中,每个图形或单元实例只需要遍历同一网格或附近网格中的图形。在版形和单元实例分布比较均勻,大小相近,并且彼此重叠不是特别严重时,这种方法的复杂度为0 (η),与连接组合的数目同阶。通常,集成电路版图中的图形和单元实例分布较均勻,重叠也不会特别严重,但它们的大小往往相差很大。如果选用固定的网格大小,当网格过大时,会有很多小的图形或单元实例落入同一个网格中,在网格中查找连接组合时效率很低;当网格过小时,一些面积很大的图形或单元实例会跨越很多网格,在每个网格中都要记录一个索引,这样会引起内存和处理时间的严重增长。为了解决这一问题,本发明采用划分多级网格的方法。大的图形或单元实例放入大的网格中,小的图形或单元实例放入小的网格中。既不会出现每个网格中有很多图形或单元实例的情况,也不会出现某些大图形或单元实例跨越很多网格的情况,保证了较高的
处理效率。为简便起见,网格为相邻的矩形(包括正方形),并且同一级的网格大小相同。然而,具有相关知识的工程技术人员,可以采用非矩形的网格(例如三角形),或者同一级网格的大小和形状相近但不完全相同,或者进行其它轻微的变化,并不改变与本发明相同的实质。(2)将几何图形或单元实例放入适当大小的网格中根据图形或单元实例的面积选择所需的网格大小。确定网格大小的一般原则是, 使一个网格中仅能容纳m个该图形或单元实例,即所选网格的面积是图形或单元实例面积的m倍。m的最佳数值需要通过试验确定,本发明使用的m值介于0. 1和10000之间,最佳取值约为10。然而,具有相关知识的工程技术人员,可以采用其它数值,或者进行其它轻微的变化,并不改变与本发明相同的实质。
图2是多级网格划分示意图。图中用两级网格对整个集成电路版图被进行划分。 第一级较大的网格为G0、G1、G2和G3,第二级较小的网格包括G4-G9等。G1、G2和G3所在的区域实际上也进行了第二级网格划分,但未画出。有2个较大的图形或单元实例0放入大的网格中,其中大三角形分别放入GO和G1,大长方形放入Gl和G3。有8个较小的图形 1分别放入小的网格中。(3)利用网格找到相互连接的图形或单元实例组合图形或单元实例的相互连接可能发生在同一个网格中,或者相邻、相近的网格之间。这与连接的定义有关。如果认为必须有公共面积才是连接,则只需在每一网格内部以及不同级别相互重合的网格之间进行查找。如图2,在网格G1、G6、G8、G9中各存在一个相互连接的组合。如果认为相互以点或边接触,或者相距一定距离也是连接,则还要查找相邻或相近的网格。如图2,可以认为G4和G7中的两个图形或单元实例是一个连接组合。(4)利用哈希表查找重复出现的组合哈希表是一种常见的数据结构,可以提供快速的插入和查找操作,理论上这两种操作都具有0(1)复杂度。对上一步骤中找到的每一个连接组合,提取其特征值,并计算特征值的哈希码(Hash Code)。提取特征值的方法如下①在组合中选择一个图形或单元实例作为基准。选哪一个图形或单元实例为基准原则上是任意的。但是为了找到所有重复模式,最好按特定的规则选择基准。例如,选择单元ID最小的单元实例,选择最简单的多边形等。在图1中,可以选择Al作为组合AlBl的基准,选择A2作为组合A2B2的基准。②计算组合中其它图形或单元实例相对于基准的线性坐标变换T,例如图1中Bl 相对于Al的坐标变换。③计算组合的特征值。特征值是一些列数值的组合,包括基准本身的特征,例如图1中Al的顶点数以及各个顶点的坐标;坐标变换T,包括Bl相对于Al的相对偏移量、相对旋转方向、相对缩放因子等。④利用特征值计算哈希码。定义一个哈希函数,将特征值中的多个数值变换为一个整数,即哈希码。⑤根据哈希码将组合放入哈希表中。哈希表是分桶存储的,假设有k个桶,则特征码为S的组合放入编号为S mod k的桶中(mod代表取余运算)。通常k为较大的质数。显然,哈希码相同的组合必然放入同一个桶中;放入同一个桶中的组合不一定具有相同的哈希码,但它们的哈希码相差k的整数倍。⑥在哈希表的同一个桶中,查找哈希码相同的组合,如果两个组合的哈希码相同, 再比较其特征值,如果特征值完全相同,则认为是相同的组合。这样可以找到所有按相同模式重复的组合。(5)将重复组合构造成新的单元并重复调用可将图1中的A和B构成一个新单元C,C被调用两次,其实例分别为Cl和C2。(6)重复执行步骤(1)-(5)如果经过以上步骤能够得到被重复调用的单元,则可以重复以上步骤,继续得到重复出现的单元,直到无法得到重复出现的单元或者达到预先设定的终止条件。


图1是重复模式示意2是多级网格划分示意3是具体实施方式
1自动构造层次后的版图结构图4是具体实施方式
1自动构造层次前后的层次结构比较图5是具体实施方式
2自动构造多个层次示意6是具体实施方式
3在多个单元中自动构造层次前后的层次结构比较具体实施方式
1图1有四个几何图形。自动构造层次的方法如下(1)划分网格并将图形放入网格本例图形大小接近,可以只划分一级网格。规定网格面积约为图形面积的10倍, 则只需划分一个网格Gl (图略)。(2)查找相互连接的模式这里定义两个图形或单元实例必须有公共面积才构成连接。在网格Gl中查找,发现两个相互连接的组合A1B1、A2B2。而A1A2、A1B2、A2B1等不满足连接的定义,所以不是相互连接的组合。(3)将组合放入哈希表取三角形Al为基准,按逆时针顺序记录Al三个顶点的坐标PI、P2、P3,取角度最小的顶点作为P1,选择与Pi对应的对角线最接近的正交方向作为X轴,本例以垂直向上作为X轴的正方向,水平向左作为Y轴的正方向,坐标原点为P1。三个顶点坐标都在此坐标系下表示。取对应内角最小的顶点作为P4,按逆时针顺序表示Bl的五个顶点P4、P5、P6、P7、 P8。在上述坐标系下计算并记录P4 P8相对于Pl的相对坐标。则特征值可表示为3 Pl P2 P3 5 P4-P1 P5-P1 P6-P1 P7-P1 P8-P1其中3代表三角形,5代表五边形,P1 = (0,0)定义一个哈希函数(例如上述所有数值的加权和),将上述特征值转化为哈希码, 假设哈希码为100。若哈希表分23个桶,则该模式放入第IOOmod 23 = 8个桶中。对于组合A2B2作同样的操作。其X轴方向为水平向右,Y轴方向为垂直向上。其特征值应与AlBl的特征值相同,因此哈希码和桶号都相同。(4)在哈希表中查找重复的组合在第8号桶中保存着哈希码为8、31、44、67、100、……的所有组合。本例中只有哈希码为100的组合。找出哈希码相同(=100)的所有组合,并比较其特征值,找到特征值完全相同的组合,即AlBl和A2B2。(5)构造新单元并多次调用相同的组合模式AB重复出现两次以上,将模式AB构造成一个新单元C,并调用C 两次,单元实例分别为Cl、C2。图3给出了自动构造层次之后的版图。图4是自动构造层次前后的层次结构变化。TOP代表进行层次构造的单元(即调用A1、B1、A2、B2的单元)。原始层次结构为TOP调用A和B各两次。自动构造的层次结构为Τ0Ρ调用C两次,C调用A和B各一次。括号中X后面的数字代表单元被调用的次数(实例数)。
具体实施方式
2图5是重复多次自动构造层次形成的版图结构。在原始版图中,单元TOP调用单元 A八次(A1-A8)。在自动构造层次之后的版图中,依次构造了两个新单元B和C。单元TOP 调用单元C两次(Cl、C2),单元C调用单元B两次(Bi、B2),单元B调用单元A两次(Al、 A2)。
具体实施方式
3在原始版图中,单元TOPA调用单元A、B、C各一次,单元实例分别为A1、B1、C1。单元TOPB调用单元A、B、C各一次,单元实例分别为A2、B2、C2,并且B2与A2的相对位置与 Bl与Al的相对位置相同,C2与A2的相对位置与Cl与Al的相对位置相同。图6是自动构造层次前后层次结构的变化。自动构造层次的结果为构造了新单元D。单元TOPA调用D —次(Dl),单元TOPB调用D —次(D2),单元D调用A、B、C各一次 (AUBUCl)。在该具体实施方式
中,原始版图中重复出现的组合AlBlCl和A2B2C2是被不同的单元TOPA和TOPB调用的。在图6(b)中,D(X2)表示单元D被调用了两次(分别被TOPA和 TOPB调用)。
权利要求
1.集成电路版图自动构造层次方法,其特征在于包括以下几个步骤①将集成电路版图划分为大小不同的多级网格;②将几何图形或单元实例放入适当大小的网格中;③在每个网格中以及相邻的网格中找到所有相互连接的图形或单元实例组合;④利用哈希表存储这些组合并查找重复出现的组合;⑤将重复出现的组合构造成新的单元并重复调用这些新单元;⑥重复执行步骤①-⑤,直到达到预先设定的停止条件或者不能再找到重复模式为止。
2.根据权利要求1所述的集成电路版图自动构造层次方法,其特征在于,所述的适当大小的网格是指其面积为几何图形或单元实例面积的0. 1-10000倍的网格矩形、正方形或任意多边形网格。
3.根据权利要求1所述的集成电路版图自动构造层次方法,其特征在于,所述的相互连接的图形或单元实例组合是指两个或两个以上的几何图形或单元构成的集合,并且集合中每一个图形或单元实例都与集合中至少另一个图形或单元实例有公共面积、公共边或者公共点,或者相距不超过一定范围。
全文摘要
集成电路版图自动构造层次方法,所属的技术领域是集成电路计算机辅助设计领域,尤其是涉及集成电路版图的设计规则检查(DRC)和版图与原理图的一致性检查(LVS)领域。主要应用于设计规则检查工具、版图与原理图的一致性检查工具等。本发明的目的在于提供一种集成电路版图自动构造层次的方法,能够自动识别集成电路版图中重复出现的组合,并基于这些组合模式构造可被重复调用的单元,使层次DRC/LVS工具对重复出现的单元只处理一次,可显著提高处理效率,并减少计算机内存使用。其实现过程主要包括将集成电路版图空间划分为大小不等的多级网格;并将几何图形或单元实例放入适当大小的网格中;在每个网格中以及相邻的网格之间找到所有相互连接的图形或单元实例组合;利用哈希表存储组合并查找重复出现的组合;将重复出现的组合构造成新的单元并重复调用这些新单元。
文档编号G06F17/50GK102314531SQ20101022304
公开日2012年1月11日 申请日期2010年7月2日 优先权日2010年7月2日
发明者宋德强, 王国庆, 王鹏 申请人:北京华大九天软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1