首页> 中国专利> 八角结构Steiner最小树下的VLSI绕障布线器

八角结构Steiner最小树下的VLSI绕障布线器

摘要

本发明涉及集成电路计算机辅助设计技术领域中一种基于八角结构下的快速VLSI绕障Steiner最小树布线器。本发明针对VLSI版图设计中的总体布线问题,设计了一种快速高效的绕障八角Steiner树布线器。根据实际工业生产中给定的芯片引脚集合,布线器首先构建一棵无障碍欧几里得最小生成树(MST)。然后,两个关于MST中边信息的快速查找表被生成。该表可以为后续步骤提供快速的信息获取功能。接下来,布线器通过完成一种高效的绕障策略,选择障碍物上的一些拐点作为MST中穿障边的中继节点,从而将前期的MST转化为一棵绕障八角Steiner树。最后,通过应用一种基于共享边原理的精炼策略,该布线器将生成最终的绕障八角最小Steiner树布线结果。

著录项

  • 公开/公告号CN104318025A

    专利类型发明专利

  • 公开/公告日2015-01-28

    原文格式PDF

  • 申请/专利权人 福州大学;

    申请/专利号CN201410589725.9

  • 发明设计人 郭文忠;黄兴;陈国龙;刘耿耿;

    申请日2014-10-27

  • 分类号G06F17/50;

  • 代理机构福州元创专利商标代理有限公司;

  • 代理人蔡学俊

  • 地址 350108 福建省福州市闽侯县上街镇大学城学园路2号福州大学新区

  • 入库时间 2023-12-17 04:19:09

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-10-27

    授权

    授权

  • 2015-02-25

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20141027

    实质审查的生效

  • 2015-01-28

    公开

    公开

说明书

技术领域

本发明属于集成电路计算机辅助设计技术领域,具体涉及一种基于八角结构Steiner最小树下的快速VLSI绕障布线器构造问题。

背景技术

超大规模集成电路(very large scale integration, VLSI)设计中绕障八角结构Steiner最小树(Obstacle-avoiding Octilinear Steiner Minimal Tree, OAOSMT)问题是在一个芯片表面,给定一组引脚集合和一组障碍物集合,利用0o,45o,90o,and 135o金属线构建一棵连接所有引脚的Steiner树,并绕过所有给定的障碍物,同时使得布线树总长度最小的组合优化问题。

自从1966年哈坦网格被首次提出以来,直角Steiner树已经被广泛的应用到VLSI芯片布线问题的各个方面。另一方面,由于VLSI芯片密度的急剧增加,许多可重构组件被嵌入到了现代芯片中,如IP核和宏块。而这些组件在布线过程中是不能被穿越的。因此,在过去十几年,绕障直角Steiner树构建问题已经得到了广泛的研究,并取得了许多的成果。然而,由于直角结构将布线方向限制为只能水平和垂直走线,这对于优化芯片的许多关键指标有着极大的约束能力,如总线长、拥塞和时延指标等。因此,当前布线技术正站在一个十字路口,并受到了许多研究机构的广泛关注。随之而来的是,随着VLSI芯片制造工艺的不断进步,非直角结构得到了迅速发展。特别是八角结构,其作为性能最为出色的非直角结构之一,已经几乎被当前的所有生产工艺所支持。换句话说,45o和135o斜线已经被成功的应用于八角布线平面。相比于直角结构,由于八角结构可以极大的压缩布线长度,从而达到可以达到优化时延、互感电容、拥塞等多项性能指标。有研究表明,同直角结构下的Steiner树相比,八角结构可以分别压缩通孔数40%,总线长20%,芯片面积11%。因此近年来学术界和工业界都开始全面的投入到了八角结构的研究工作中。然而,据我们所知,当前的研究工作大多仍停留在无障碍物的布线平面阶段。也就是大多成果首先假设布线平面无障碍物存在,进而利用八角结构优化诸如线长、时延、拥塞在内的多项性能指标。而对于八角结构下,存在障碍物的情况,相关成果几乎没有。因此,研发一种八角结构下的快速绕障布线器就显得尤为紧迫了。

发明内容

本发明的目的是提供一种在超大规模集成电路总体布线问题中考虑存在障碍物,同时引入八角结构Steiner最小树的布线器构造问题。以优化布线树总长为目标,进而使得诸如时延、拥塞等多项指标得到优化。该方法从总体布线的全局角度考虑绕障Steiner最小树的构造,能够在极短的时间内获得出色的解方案。

本发明采用以下方案实现:一种八角结构Steiner最小树下的VLSI绕障布线器,其特征在于包括以下步骤:

步骤S01:根据给定的一组引脚坐标位置,生成一组Delaunay三角剖分,然后通过相关算法生成一棵连接所有引脚的MST;

步骤S02:针对MST中的所有边,生成两个记录边连接信息的查找表;

步骤S03:基于查找表,将第一步生成的MST转换为一棵绕障八角Steiner树;该八角Steiner树引入了障碍物上的若干拐点以达到绕障的目的;

步骤S04:基于边共享原理,计算第三步生成的八角Steiner树中每一个节点的最优连接结构,以达到最大化共享边长度的目标。

进一步地,所述步骤S01中的相关算法是Kruskal算法或Prim算法。

进一步地,所述的查找表包括两个记录了边连接信息的查找表,第一个表称为边-障查找表,它记录每一条八角边穿越的障碍物的集合;第二个表称为边-线查找表,它记录了每一条八角边的两个分线段的坐标位置。

进一步地,所述查找表的生成步骤如下:

步骤S41:检查MST中的第i条边PiPj,对于每一种走线方式k,计算两条分线段PiSkSkPj的起点坐标和终点坐标,其中,PiPj为两个芯片上给定的引脚;

步骤S42:对于每一个障碍物b, 如果PiSkSkPj穿越了b,则将b加入到相关集合{Bijk},其中Sk为Pi和Pj以八角方式连接时的伪斯塔那点;

步骤S43:设Lijk为{Bijk}里所有障碍物的半周长之和;计算每一个{Bijk}对应的Lijk;然后将{Bijk}和Lijk加入到边-障查找表中;

步骤S44:检查每一个PiSkSkPj,如果存在45o或135o斜线,则将其绕原点顺时针旋转45o,从而构成一条新的水平或垂直线段;

步骤S45:记录PiSkSkPj的坐标值到边-线查找表;i=i+1, 如果i<n,返回步骤S41,否则结束。

进一步地,所述绕障的实现方式包括以下步骤:

步骤S51:检查MST中的第i条边PiPj,如果PiPj0PiPj1能够绕过所有障碍物,则将布线方式选为0或1,考察第i+1条边;否则进入步骤S52;

步骤S52:如果PiPj2PiPj3能够绕过所有障碍物,进入步骤S53,否则进入步骤S54;

步骤S53:如果Lij0Lij1,则选择方式0作为结果。否则,选择方式1作为结果;返回步骤S51考察下一条边;

步骤S54:选择Lijk值最小的那一个作为最终结果。返回步骤S51考察下一条边。

进一步地,所述最优连接结构的计算方式包括以下步骤:

步骤S61:扫面八角Steiner树中所有边一次,统计每个点的度数,并将连接到该点的其它点记录为一个集合;

步骤S62:对于每个点P,如果其度数为d,则枚举4d个布线组合;选出绕障且线长最短的一个作为P的最优结构,并计算该结构的共享边长度;

步骤S63:根据每个点最优结构的共享边长度非递增的顺序对所有点进行排序;

步骤S64:按顺序应用每一个点的最优结构到原始八角Steiner树中,直到八角Steiner树的所有边的走线方式被更新过。

本发明的布线器首先基于生产问题给定的一组引脚坐标构建一棵MST。该MST的生成并未考虑障碍物的存在,并且基于Delaunay三角剖分来生成,有效的提高了MST生成的速率。其次,两个快速查找表的生成可以看做是对所有引脚和障碍物的一种预处理。即预先将后续步骤可能需要获取的信息计算出来并存储在表中,而不是在后续步骤每次用到时分别计算。这种预处理策略极大地提高了布线器对后续步骤的执行效率,因为所有的边和障碍物互联信息只需计算一次。此外,在将MST转换为一棵绕障八角Steiner树的过程中,大部分的执行过程是通过查表来实现的。而针对无法绕开障碍物的边,该布线器通过选取被穿越障碍物上的拐点作为中继的策略来达到绕障的目的。这将使得该布线器能够在实现绕障的前提下,同时满足选取的额外Steiner点最少的目标。最后,基于共享边原理的精炼策略可以充分的利用布线资源,以最大的共享度优化布线总长,同时减少了布线区域的面积,进而提高芯片的多项性能指标。

附图说明

图1 是基于八角结构Steiner最小树下的一种快速VLSI绕障布线器的流程图。

图2 是八角结构下的四种边走线选择方式图。

图3 是障碍物拐点选择策略图。

图4 最终生成的布线图实例。

具体实施方式

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。

本发明首先布线器根据生产问题中给定的一组n个引脚的坐标位置,基于线扫描算法构建一组Delaunay三角剖分。由于这组三角剖分的边总数为O(n),因此布线器可以基于这些三角剖分边,应用Kruskal最小生成树算法,在O(nlogn)的时间里构建出一棵连接所有引脚的MST。接下来,针对MST中的所有边,两个记录了这些边连接信息的快速查找表将被生成。其中第一个表被称为边-障查找表,它记录了MST中每一条边在转换为八角走线时穿越的障碍物的集合。第二个表被称为边-线查找表,它记录了MST中每一条边转换为八角走线时两条分线段的坐标位置。这两个表均可以为布线器的后续工作提供快速的信息查询。查找表生成后,针对MST中的每一条边,布线器通过查询边-障查找表,寻找出不穿越障碍物的一种八角走线方式,并将这条MST边直接转换为该八角边。如果所有八角走线方式均穿越障碍物,该布线器则通过选择被穿越障碍物上的若干拐点作为中继节点,从而达到绕障的目的。最后,针对前面生成的绕障八角Steiner树,该布线器基于边共享原理,通过计算每一个节点的最优互连结构,即最大化共享边长度,从而生成最终的绕障最小八角Steiner树布线结果。

具体分为以下四个步骤:

1. 根据给定的一组引脚坐标位置,生成一组Delaunay三角剖分,然后应用Kruskal最小生成树算法,生成一棵连接所有引脚的MST;

2. 针对MST中的所有边,生成两个记录边连接信息的查找表;

3. 基于查找表,将第一步生成的MST转换为一棵绕障八角Steiner树。该八角Steiner树引入了障碍物上的若干拐点以达到绕障的目的;

4.基于边共享原理,计算第三步生成的八角Steiner树中每一个节点的最优连接结构,以达到最大化共享边长度的目标。

为了让一般技术人员更好的理解本发明,下面结合附图及实验结果对本发明做进一步说明:

1. 定义 1 (伪Steiner点) 假设除了引脚外的连接点,称为伪Steiner点。图2中的S0,S1,S2和S3均为伪Steiner点,伪Steiner点中包含Steiner点。

定义 2 (0选择) 如图2(a)所示,p1(x1y1) 和p2(x2y2)为边L的两个端点,其中x1<x2。边L对应的伪Steiner点的选择如图2(b)所示,从p1先引曼哈顿边至s0,再由s0引非曼哈顿边到p-2.。则称作0选择。

定义 3 (1选择) 图2(c)所示,从p1先引非曼哈顿结构边至s1,再从s1引曼哈顿结构边至p2,则称作1选择。

定义 4 (2选择) 图2(d)所示,从p1先引竖直边至s2,再由s2引水平边至p2,则称作2选择。

定义 5 (3选择) 图2(e)所示,从p1先引水平边至s3,再由s3引竖直边至p2,则称作3选择。

2.MST生成策略:

在无障碍平面,存在许多MST构建算法。为了提高生成效率,该布线器采用了一种基于三角剖分的构建策略。它首先基于给定的一组引脚坐标生成一组三角剖分。然后Prim算法或者Kruskal算法都可以在O(nlogn)时间内生成一棵MST。 

3.查找表生成:

在八角平面下,该布线器针对MST中所有边,生成两个记录了边连接信息的查找表。第一个表称为边-障查找表,它记录每一条八角边穿越的障碍物的集合。第二个表称为边-线查找表,它记录了每一条八角边的两个分线段的坐标位置。

假设问题给定了n个引脚,则MST包含n-1条边。由于每条边有四种八角走线方式,因此一共存在4*(n-1)条八角边。对于每一条八角边PiPjkPiPj为两个引脚,k为走线方式),本发明计算PiPjk穿越的所有障碍物并将其记录为一个集合{Bijk},然后将Lijk的值设置为这些障碍物的半周长之和。所有4*(n-1)组 {Bijk}和Lijk构成了最终的边-障查找表。此外每一条八角边PiPjk由两条分线段组成(PiSkSkPj),本发明分别记录下这两条分线段的端点坐标。所有边的这些信息组成了最终的边-线查找表。查找表生成的详细步骤如下,初始化i=1,

(1)           检查MST中的第i条边PiPj,对于每一种走线方式k,计算两条分线段PiSkSkPj的起点坐标和终点坐标。

(2)           对于每一个障碍物b, 如果PiSkSkPj穿越了b,则将b加入到相关集合{Bijk}。

(3)           计算每一个{Bijk}对应的Lijk。然后将{Bijk}和Lijk加入到边-障查找表中。

(4)           检查每一个PiSkSkPj,如果存在45o或135o斜线,则将其绕原点顺时针旋转45o,从而构成一条新的水平或垂直线段。

(5)           记录PiSkSkPj的坐标值到边-线查找表。i=i+1, 如果i<n,返回(1),否则结束。

这里有两点需要注意,对于第二步中的每一个障碍物b,本发明考察它当且仅当b有至少一个拐点落入到PiPj构成的矩形边界框内。其次,如果存在45o或135o斜线,本发明在第(4)步将其旋转为水平或垂直线,并记录下新线段的坐标。这可以方便后续步骤局部和总体线长的计算,因为重叠的45o或135o斜线可以在不改变长度的情况下很容易被识别出来。

4.绕障策略:在这一步,前期生成的MST将首先被快速地转化为一棵八角Steiner树。本发明检查MST中的每一条边PiPj。通过查表,如果八角边PiPj0PiPj1能够绕开所有的障碍物,则直接将PiPj的布线方式选择为0或1方式。否则如果PiPj2PiPj3能够绕过所有障碍物,本发明则根据Lij0和Lij1的大小来做选择。如果Lij0Lij1,则选择方式0作为结果。否则,选择方式1作为结果。如果4中布线方式全部穿越了障碍物,本发明则选择Lijk值最小的那一个作为布线方式。详细步骤如下,初始化i=1,

(1)检查MST中的第i条边PiPj,如果PiPj0PiPj1能够绕过所有障碍物,则将布线方式选为0或1,考察第i+1条边。否则进入(2)。

(2)如果PiPj2PiPj3能够绕过所有障碍物,进入(3),否则进入(4)。

(3)如果Lij0Lij1,则选择方式0作为结果。否则,选择方式1作为结果。返回(1)考察下一条边。

(4)选择Lijk值最小的那一个作为最终结果。返回(1)考察下一条边。

 显然,八角Steiner树中的一些边穿越了障碍物。因此本发明提出了一种绕障方法来帮助这些边绕过所有障碍物。对于八角Steiner树中的每一条边PiPjkk在这里是确定的),如果他穿越了障碍物,本发明直接删除掉这条边。然后对障碍物集合{Bijk}按照Pi到障碍物中心距离非递减的顺序排序。接下来,设置起点S=Pi。本发明对排序后的障碍物一个接一个考察,每次从当前障碍物上选取一个拐点C作为中继节点,这里C是四个拐点中到直线SPj距离最近的那一个。然后本发明计算边SC的连接信息,并将其添加到两个查找表中。在将S连接到C之后,本发明将C设置为新的S,并继续考察下一个障碍物,直到最后一个选择的拐点被连接到Pj

这个绕障方法可能被执行数次,直到所有的边绕过所有的障碍物为止。图3是一个绕障方法的例子。图3(a)是原始边P1P23,它穿越了障碍物B1和B2。在原始边被删除后,本发明首先考察障碍物B1,因为它距离P-1更近。由于C1是B1上距离直线P1P2最近的拐点,因此被选为中继节点,并连接到P1(图3(b))。然后本发明考察B2, 在图3(c)中,C2被连接到C1因为它是B2上距离直线C1P2最近的一个拐点。最后,C2被连接到P2在图3(d)中。注意所有新边的连接信息都应当被加入到查找表中,因为它们对于后续精炼步骤有用。

5.精炼策略:事实上,对于八角Steiner树中的任何一个点,都存在一个最优连接结构。基于此本发明提出了一种基于共享边原理的精炼策略。通过对八角斯坦树中的所有边扫描一次,本发明首先获取了每一个点的度数,并记录下连接到每个点的其它点集合。然后对于每一个点P,假设其度数为d,本发明枚举所有4d种走线组合方式,并选出能够绕过所有障碍物且线长最短的那一个作为该点的最优结构。接下来,本发明计算每一个点最优结构中共享边的长度,并按照该长度非递增的顺序对所有点进行排序。最后按照排序后的点顺序,将每一个点的最优结构应用到原始八角Steiner树上,从而得到了最终的布线树。详细步骤如下:

(1)扫面八角Steiner树中所有边一次,统计每个点的度数,并将连接到该点的其它点记录为一个集合。

(2)对于每个点P,如果其度数为d,则枚举4d个布线组合。选出绕障且线长最短的一个作为P的最优结构,并计算该结构的共享边长度。

(3)根据每个点最优结构的共享边长度非递增的顺序对所有点进行排序。

(4)按顺序应用每一个点的最优结构到原始八角Steiner树中,直到八角Steiner树的所有边的走线方式被更新过。

有三点需要强调。第一,在步骤(2)中,判断一个布线组合是否绕障可以直接通过查表来实现,因此非常高效。其次,在步骤(4)中,如果原始八角Steiner树的某条边走线方式被更新过,则即使当前的点的最优结构对这条边有不同的走线方式,也不去做任何更新操作。最后,本发明基于数据统计发现,大部分顶点的度数不超过4度,因此,只需优化到4度顶点便可以得到非常好的效果,且运行效率高。

5.布线器测试

如表1所示,ind1-ind5是从Synopsys得到的工业测试数据集。rc01-rc12是绕障问题的标准测试数据集。本发明将该布线器生成的布线结果同当前最为先进的4种布线器进行对比。从表1可以看出,同布线器1-布线器4相比,本发明分别可以取得19.29%,3.52%,3.80%,6.34%的线长压缩。

                   

 表一  布线实验结果对比

此外,本发明的布线器对于实际布线问题有非常高的处理效率。主要有三个原因。第一,步骤3和步骤4中的所有判断操作均可以通过查表来实现。第二,因为步骤一生成的是一棵MST,因此步骤二中大多数障碍物不需每次都考察,因为任意两个点构成的矩形边界框将是非常小的。第三,对于步骤3中绕障八角Steiner树的生成过程,本发明只需考察穿越了障碍物的边。表2展示了本发明的布线器同其他四种布线器在处理速度方面的对比。从表2可以看出,本发明的布线器同其它4种布线器相比,处理速度分别是他们的5.93倍,42.23倍,2.35倍和11.92倍。

综上,该布线器在布线总长和处理速度方面均是最佳的。

表2 处理速度对比

本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号