CN105184022A - 一种针对多层芯片的高效x结构避障布线器的构造方法 - Google Patents
一种针对多层芯片的高效x结构避障布线器的构造方法 Download PDFInfo
- Publication number
- CN105184022A CN105184022A CN201510686612.5A CN201510686612A CN105184022A CN 105184022 A CN105184022 A CN 105184022A CN 201510686612 A CN201510686612 A CN 201510686612A CN 105184022 A CN105184022 A CN 105184022A
- Authority
- CN
- China
- Prior art keywords
- barrier
- wiring unit
- xrp
- limit
- path
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及集成电路计算机辅助设计技术领域中一种针对多层芯片的高效X结构避障布线器的构造方法。该方法包括以下步骤:步骤S1:根据给定的一组引脚坐标位置,基于一种快速的多分片MST构建策略生成一棵连接所有引脚的3D-OFMST;步骤S2:3D-OFMST中所有边的XRP信息被计算,并将这些信息存入两个记录从而生成两个查找表;步骤S3:基于快速查表,通过将3D-OFMST的每条边转化为一条XRP生成一棵ML-XST,并将该ML-XST将被转化为一棵ML-OAXST;步骤S4:对ML-OAXST进一步从全局和局部两个角度优化,从而生成最终的ML-OAXSMT。
Description
技术领域
本发明属于集成电路计算机辅助设计技术领域,具体涉及一种针对多层芯片的高效X结构避障布线器构造问题。
背景技术
斯坦纳最小树是图论领域最重要的数学模型之一,且被广泛的应用到了许多研究领域。特别是1966年由Hanna提出的直角结构斯坦纳树(rectilinearSteinerminimaltree,RSMT),已经被广泛的应用到现代超大规模集成电路(verylargescaleintegration,VLSI)设计的多个阶段。例如,在早期设计阶段,包括划分、布图规划和布局,RSMT可以被用来有效的预估芯片的多项性能指标,如线长,拥塞,和时延。在总体布线和详细布线阶段,RSMT可以被用来构造每一个线网的最终连通拓扑。此外,随着现代芯片密度的急剧增加,在当今的VLSI设计中存在着越来越多的障碍物,例如宏模块和预布线网,这些障碍物在布线阶段是不能够被穿越的,因此避障直角斯坦纳最小树(obstacle-avoidingrectilinearSteinerminimaltree,OARSMT)布线器构建问题在过去十几年得到了充分重视,并取得了非常出色的研究成果。
另一方面,随着VLSI生产工艺的不断进步,现代芯片可以提供多个布线层以增加设计灵活性。因此,在2007年,多层避障直角斯坦纳最小树(multi-layerobstacle-avoidingrectilinearSteinerminimaltree,ML-OARSMT)布线器构造问题首次由台湾大学电子工程研究院提出,并很快得到了工业界和学术界的重视。随后,多家科研单位先后设计了数个性能优良的ML-OARSMT布线器。
然而,上述布线器,无论是针对传统单层布线和现代多层布线,都是基于直角结构。随着当前芯片规模进入深亚微米阶段,由于直角结构将走线方向限制为只能水平和垂直两个方向,而这已经很难满足当前的设计需求。幸运的是,新兴的非直角结构允许更多的走线方向并能进一步提高芯片的可布通性。特别的,X结构作为最有前景的非直角结构已经被当前生产工艺充分支持,并成为近年来的一个研究热点。数家研究机构已先后设计出了多个不同的避障X结构斯坦纳最小树布线器(obstalce-avoidingXSteinerminimaltree,OAXSMT)。
问题是,当同时考虑多层芯片结构、障碍物、X结构三个因素,即多层避障X结构斯坦纳树(multi-layerobstacle-avoidingX-architectureSteinerminimaltree,ML-OAXSMT)布线器的构造,问题将变得非常困难。因为,仅仅一个单层的RSMT布线器构造就已经被证明为NP完全问题。据我们所知,当前有关ML-OAXSMT布线器构造的成果非常少,而工业设计的需求却仍在不断提高,因此设计一种高效的ML-OAXSMT布线器变得尤为紧迫。
发明内容
本发明的目的是提供一种在VLSI总体布线设计问题中考虑多层芯片结构和障碍物,同时引入X结构斯坦纳最小树的布线器构造问题。以优化布线树总长为目标,进而使得诸如时延、拥塞等多项指标得到优化。该方法从总体布线的全局角度考虑ML-OAXSMT的构造,能够在极短的时间内获得有效的解决方案。
本发明采用以下方案实现:一种针对多层芯片的高效X结构避障布线器的构造方法,其特征在于:包括以下步骤:步骤S1:根据给定的一组引脚坐标位置,基于一种快速的多分片MST(最小生成树,minimumspanningtree),构建策略生成一棵连接所有引脚的3D-OFMST(三维无障最小生成树,3Dobstacle-freeminimalspanningtree),该3D-OFMST为最终ML-OAXSMT(多层避障X结构斯坦纳树,multi-layerobstacle-avoidingX-architectureSteinerminimaltree)的基础架构;步骤S2:3D-OFMST中所有边的XRP(X布线路径,Xroutingpath)信息被计算,并将这些信息存入两个记录从而生成两个查找表,这两个查找表可以为布线器的后续运作提供信息支持;步骤S3:基于快速查表,通过将3D-OFMST的每条边转化为一条XRP生成一棵ML-XST(多层X结构斯坦纳树,multi-layerX-architectureSteinertree),并将该ML-XST将被转化为一棵ML-OAXST(多层避障X结构斯坦纳树,multi-layerobstacle-avoidingX-architectureSteinertree);步骤S4:对ML-OAXST进一步从全局和局部两个角度优化,从而生成最终的ML-OAXSMT。
与现有技术相比本发明具有以下优点:该布线器采用了一种基于快速查找表的基本构架,整个布线器逻辑紧凑,运行效率高;在3D-OFMST构建阶段,一种基于密度度量的多分片MST构建策略被采用,同传统基于完全图的MST构建方法相比,该策略具有更高的效率;在ML-OAXST生成阶段,该布线器根据ML-XST每条穿障边的具体特征,将所有ML-XST穿障边分为三类,并采用了三种不同的策略进行避障路径计算,这些策略可以精确地捕捉到多层空间中恰当的伪Steiner点位置,从而帮助ML-XST边生成最佳的避障X布线路径;特别的,针对任意两个分布在不同布线层的引脚,一种针对多层空间通孔定位的线扫描策略被用来精确地搜索引脚之间的合法通孔;此外,为了进一步优化压缩布线总长,该布线器采用了两种有效的精炼策略,一种通过优化伪Steiner点连接结构以达到充分利用有效布线资源的目的,另一种则是通过充分增加布线树共享路径总长,从而达到压缩线长的目的。
附图说明
图1是针对多层芯片的高效X结构避障布线器的流程图。
图2是多层结构下四种XRP图。
图3是ML-XST穿障边的分类图。
图4是单个引脚的八角划分示意图及ML-XST边转换示意图。
图5是可修复路径的避障路径计算示例图。
图6是逃逸路径的避障路径计算示例图及通孔定位线扫描策略示意图。
图7是非逃逸路径的避障路径计算示例图。
图8是伪Steiner点连接优化示意图。
图9是ML-OAXST结构优化示意图。
实施方式
下面结合附图和具体实施方式对本发明做进一步说明。
一种针对多层芯片的高效X结构避障布线器的构造方法,包括以下步骤:
步骤S1:根据给定的一组引脚坐标位置,基于一种快速的多分片MST构建策略生成一棵连接所有引脚的3D-OFMST,该3D-OFMST为最终ML-OAXSMT的基础架构;
步骤S2:3D-OFMST中所有边的XRP信息被计算,并将这些信息存入两个记录从而生成两个查找表,这两个查找表可以为布线器的后续运作提供信息支持;
步骤S3:基于快速查表,通过将3D-OFMST的每条边转化为一条XRP生成一棵ML-XST,并将该ML-XST将被转化为一棵ML-OAXST;
步骤S4:对ML-OAXST进一步从全局和局部两个角度优化,从而生成最终的ML-OAXSMT。
本发明的主要流程图参见图1。
其中,步骤S1中3D-OFMST的生成包括以下具体步骤:基于多层芯片给定的所有引脚位置,构建一棵k-d树,该k-d树被用来预估任一引脚的近似密度值,同时可提供快速的最近邻引脚查找;基于Prim算法思想,并根据每个引脚的初始预估密度,从当前密度最小的引脚开始,一个MST分片被构建直到该分片达到了局部密度最大值,此时另一个MST分片亦从当前密度最小的引脚开始被构建,直到所有的引脚被这些MST分片所覆盖;最后,通过连接这些生成的MST分片,一棵完整的3D-OFMST将被生成。
步骤S2还包括以下具体步骤:假设给定芯片包含n个引脚,则生成的3D-OFMST一共包含n-1条边,由于每条边可以有4种不同的XRP,因此一共存在4*(n-1)条XRP,针对所有这些XRP,生成两个查找表,第一个查找表为多层XRP-障碍物查找表MLXOT,另一个表为多层XRP-坐标查找表MLXCT;假设两个引脚p i (x i ,y i ,z i )和p j (x j ,y j ,z j )间的一条XRP,记该路径为p i p j k,将这条XRP穿越的障碍物记录到一个集合{B ijk }中,即生成MLXOT的记录,并且当z i ≠z j 时,设置参数L ijk 的值为{B ijk }的基数,而当z i =z j 时,设置L ijk 的值为{B ijk }中所有障碍物的直角边界盒的半周长;考虑到每一条XRP包含三条子路径,对于任一路径p i p j k,记三条子路径分别为p i s k1 ,s k1 s k2 ,s k2 p j ,其中s k1 和s k2 两个伪Steiner点,通过生成所有4*(n-1)条XRP的三条子路径的坐标信息,从而生成多层XRP-坐标查找表MLXCT的记录。
步骤S3中还包括以下具体步骤:依次检查3D-OFMST中的每一条边,并基于以下原则将每条边转化为一条XRP:
1)对于任意一条边,如果Xpath0和Xpath1都能绕过所有障碍物,则二者具有相同的优先度,如果Xpath2和Xpath3都能绕过所有障碍物,则二者具有相同的优先度;
2)如果两者之间均存在绕障路径,对于任意一条边,Xpath0和Xpath1的优先度高于Xpath2和Xpath3;
3)对于任意一条边,如果4种XRP全部穿越了障碍物,则每种XRP的优先度反比于相应的L ijk 值。
步骤S4还包括以下具体步骤:根据ML-XST每条穿障边的具体特征,将所有ML-XST穿障边分为修复路径、逃逸路径及非逃逸路径三类,并采用了三种不同的策略进行避障路径计算,精确地捕捉到多层空间中恰当的伪Steiner点位置,从而ML-XST边生成最佳的避障X布线路径;
其中修复路径的策略为:对于转换后的任意一条可修复路径p i p j k,布线器首先计算{B ijk }的直角边界盒,记作box,然后从点p i 向其右半轴五个方向作投影线,并记投影线p i d-x同box的第一个交点为t x (x=1,2,3,4,5),若p i d-x同box不相交t x 不存在;布线器计算每条投影线p i d-x同线段p i p j 之间的夹角记为αx,并选择最小的αx对应的那个交点t x 作为一个伪Steiner点s,由于s可能不能直接连接到点p j ,因此布线器检查box的四个拐点cy(y=1,2,3,4),并选择使得dis(s,cy)+dis(cy, p j )最小的那个拐点作为另一个伪Steiner点c,其中dis(a,b)表示点a和点b之间的直角距离;布线器计算边p i s,sc,和cp j 的XRP信息,并添加这些信息到两个查找表中,从而生成一条新的连接p i 到p j 的避障路径;
逃逸路径的策略为:布线器首先将p i p j k的三条子路径和{B ijk }全部投影到一个伪平面上,记投影后为p i ’ p j ’ k和{B ijk ’ };然后布线器将该逃逸路径细分为两种,如果投影后的伪Steiner点s并未被{B ijk ’ }中任何一个障碍物所包围则直接调用可修复路径策略解决,否则布线器首先计算投影后{B ijk ’ }的直角边界盒box,并求得p i ’ p j ’ k同box的一个交点v*(x*,y*),如果投影v*到p i 和p j 所在层形成一个通孔vv’,如果vv’合法,则问题得到求解,否则,基于线扫描的方法进一步寻找一个合法的通孔位置;
非逃逸路径的第一种策略为:布线器首先将一条非逃逸路径p i p j k和{B ijk }全部投影到一个伪平面上,记投影后为p i ’ p j ’ k和{B ijk ’ },则根据非逃逸边的定义,p i ’ p j ’ 的直角边界盒被至少一个{B ijk ’ }中的障碍物完全包围,在得到{B ijk ’ }的直角边界盒box后,通过线扫描方法在box的任一条边所在直线上寻找到一个合法通孔位置v*,并生成一个连接z i 和z j 层的通孔vv’,那么piv和v’pj两条XRP帮助原始路径p i p j k逃离障碍物的包围;
非逃逸路径的第二种策略为:首先删除路径p i p j k,则ML-XST的所有点被分为两个子集,一个点集A包含点p i ,另一个点集B包含点p j 。然后,我们从A中删除点p i ,并求得此时A和B间的一条最短路径,同理,我们从B中删除p j ,并求得两个集合间的另一条最短路径,最后,布线器选择两条路径中不构成非逃逸路径,且代价较小的作为非逃逸路径;
如果第二种策略新生成的边仍旧构成同一条非逃逸路径,或者代价大于第一种策略得到的结果,布线器则自动取用第一种策略的结果。
所述线扫描的方法包含三个要素:一条固定线L即是box中包含v*的那条边所在直线,一条扫描线Ls及一组包含了所有第z i 层到第z j 层间的障碍物集合,设置L的y坐标范围为[y*,max(yb)],其中max(yb)是中所有障碍物y坐标的最大值,布线器将中的所障碍物投影到与L相同的平面上,记作,并按照投影后障碍物左下角拐点y坐标值递增的顺序排序,一条水平边Ls被用来从y=y*到y=max(yb)去扫描所有排序后的障碍物;当Ls扫描到一条与L相交,且为一个障碍物的底边时,Ls将直接扫描b的顶边;当Ls扫描到连续两条边l1和l2,且l1和l2均与L相交,并分别为两个不同障碍物的顶边和底边,则l1和l2与L的两个交点被选为通孔候选,并从中选出一个合法的作为通孔位置;如果Ls一直扫描到y=max(yb),仍未找到两个连续的底边和顶边,最后一个扫描到的障碍物边同L的交点则被选为通孔位置;或者通过Ls从y=y*扫描到y=min(yb)去发现另一个合法的通孔位置,其中min(yb)是中障碍物y坐标的最小值;最终,布线器取同点pi和pj垂直距离之和较小的那个点作为通孔位置。
本发明采用一种改进的最近点对算法寻找空间两个点集A和B间的最短路径,主要包括以下步骤:首先将集合A和B中的所有点根据平面y=m划分为两个集合S1和S2,m是所有点y坐标的中位数;分别递归地求解集合S1和S2中的最近点对,假设d 1 和d 2 为所求结果,A和B之间的最短路径小于d s =min(d 1 ,d 2 ),那么这条路径的两个端点p i 和p j 必须满足且;由于p i 和p j 间的距离小于d s ,则有m-y i <=d s 且y j -m<=d s ,对于任意一个可能的p i ,可构成最近点对的p j 形成一个长为d s ,宽和高为2ds的矩形R,R中任意两个点间的距离不小于d s ;根据鸽巢原理,在R中最多可能存在24个点与p i 构成最近点对,因此,对于S1中的一个点p i (m-y i <=d s ),通过对S2中满足y j -m<=d s 的点按照x和z坐标排序,快速地寻找到S2中所有24个可能的最近点,进而找到p i 和p j 间的最短路径。
步骤S4的优化基于以下两种精炼策略:一种通过优化伪Steiner点连接结构以达到充分利用有效布线资源的目的;另一种则是通过充分增加布线树共享路径总长,从而达到压缩线长的目的。
附图2-9为本发明一具体实施例的示意图。以下对附图2-9中的几个常用变量进行定义及解释说明:
定义1(伪Steiner点)为了简便,假设除了引脚外的连接点,均称为伪Steiner点。图2中的S1,S2均为伪Steiner点,一个伪Steiner点可能是一个真实的Steiner点。
定义2(X path0 )如图2(a)所示,p1(x 1 ,y 1 ,z 1 )和p2(x 2 ,y 2 ,z 2 )为线段L的两个端点,其中x 1 <x 2 。线段L对应的伪Steiner点的选择如图2(b)所示,首先从p1引直角边至伪Steiner点s1,再通过生成一个通孔由s1连接到另一伪Steiner点s2,最后从s2引非直角边到p-2.。这条XRP被称为p1和p-2间的X path0 。
定义3(X path1 )如图2(a)所示,p1(x 1 ,y 1 ,z 1 )和p2(x 2 ,y 2 ,z 2 )为线段L的两个端点,其中x 1 <x 2 。线段L对应的伪Steiner点的选择如图2(c)所示,首先从p1引非直角边至伪Steiner点s1,再通过生成一个通孔由s1连接到另一伪Steiner点s2,最后从s2引直角边到p-2.。这条XRP被称为p1和p-2间的X path1 。
定义4(X path2 )如图2(a)所示,p1(x 1 ,y 1 ,z 1 )和p2(x 2 ,y 2 ,z 2 )为线段L的两个端点,其中x 1 <x 2 。线段L对应的伪Steiner点的选择如图2(d)所示,首先从p1引垂直边至伪Steiner点s1,再通过生成一个通孔由s1连接到另一伪Steiner点s2,最后从s2引水平边到p-2.。这条XRP被称为p1和p-2间的X path2 。
定义5(X path3 )如图2(a)所示,p1(x 1 ,y 1 ,z 1 )和p2(x 2 ,y 2 ,z 2 )为线段L的两个端点,其中x 1 <x 2 。线段L对应的伪Steiner点的选择如图2(e)所示,首先从p1引s水平边至伪Steiner点s1,再通过生成一个通孔由s1连接到另一伪Steiner点s2,最后从s2引垂直边到p-2.。这条XRP被称为p1和p-2间的X path3 。
定义6(半周长)对于一个长为a宽为b的举行障碍物b,b的半周长为a+b。
定义7(直角边界盒)任意两个点p i 和p j 的直角边界盒为以这两点为对角顶点所形成的矩形。一组障碍物的直角边界盒为一个包含所有这些障碍物的最小矩形。
定义8(可修复路径)对于一条ML-XST边p i p j k,如果p i p j k穿越了一个或多个障碍物,且z i =z j ,则称p i p j k为一条可修复路径。
定义9(逃逸路径)对于一条ML-XST边p i p j k,如果p i p j k穿越了一个或多个障碍物(记为集合{B ijk }),且z i ≠z j 。当投影p i ,p j 和{B ijk }到一个伪平面(投影后分别标记为p i ’,p j ’和{B ijk }’),如果不存在障碍物,使得p i ’和p j ’的直角边界盒完全包含于b中,则称p i p j k为一条逃逸路径。如图3所示,图3(a)中边p1p21穿越障碍物b1,投影后p1’和p2’的直角边界盒未完全包含在b1’中(图3(c)),故p1p21为一条逃逸路径。
定义10(非逃逸路径)对于一条ML-XST边p i p j k,如果p i p j k穿越了一个或多个障碍物(记为集合{B ijk }),且z i ≠z j 。当投影p i ,p j 和{B ijk }到一个伪平面(投影后分别标记为p i ’,p j ’和{B ijk }’),如果至少存在一个障碍物,使得p i ’和p j ’的直角边界盒完全包含于b中,则称p i p j k为一条非逃逸路径。如图3所示,图3(a)中边p1p32穿越障碍物b2,投影后p1’和p3’的直角边界盒完全包含在b2’中(图3(b)),故p1p32为一条非逃逸路径。
1.3D-OFMST构建
在不考虑障碍物的情况下,存在多种构建3D-OFMST的方法,例如通过生成以所有芯片引脚为点集的一个完全图,再利用经典Prim或Kruskal算法即可构建出一棵3D-OFMST。然而,这种基于完全图的方法效率太低,时间复杂度可达到平方级,特别是在问题输入规模非常大的情况下,该方法对整个线器的运行效率将产生较大负面影响。此外,基于Delaunay三角剖分MST构建方法被广泛应用于平面布线问题,因为该三角剖分已被证明至少包含有一棵覆盖所有给定点集的MST,且候选边集规模仅为线性级别。然而,Delaunay三角剖分的构建策略目前还未能有效的推广到更高维度。幸运的是,Bentley和Friedman通过改进经典Prim算法,提出了一种能适用于任意维度且被称为多分片MST的构建策略。该策略首先基于多层芯片给定的所有引脚位置,构建一棵k-d树,该k-d树被用来预估任一引脚的近似密度值(即该引脚所在位置单位面积内存在引脚的数量),同时可提供快速的最近邻引脚查找。然后,基于Prim算法思想,并根据每个引脚的初始预估密度,从当前密度最小的引脚开始,一个MST分片被构建直到该分片达到了局部密度最大值,此时另一个MST分片亦从当前密度最小的引脚开始被构建,直到所有的引脚被这些MST分片所覆盖。最后,通过连接这些生成的MST分片,一棵完整的3D-OFMST将被生成。注意,在每个MST分片构建过程中,一个优先队列被用来存储当前分片所覆盖的所有引脚集合,并且每个引脚的优先度反比于它到自身最近邻引脚的距离。这样,每次只需把队首对应的那个引脚同其最近邻引脚构成的边加入当前MST分片中。由于每个引脚当前的优先度是其实际优先度的一个上限值,因此每个引脚的优先度值只有在该引脚位于队首时才需要更新。大量实践证明,该多分片MST生成策略同传统的基于完全图的MST构建策略相比,在效率方面具有巨大的优势。因此,我们直接采用这种方法来构建一棵覆盖所有给定芯片引脚的3D-OFMST。
2.XRP信息计算
根据图1中布线器的运行框架,在3D-OFMST被生成后,布线器首先将这个基本架构转化为一棵ML-XST。如图2所示,对于任意一条3D-OFMST边,由于存在4种不同的XRP,因此布线器需要判断哪一种XRP对于一条给定的边是一个最佳选择,从而使得该边能以最小的代价绕过所有障碍物。此外,当ML-XST被扩展为一棵ML-OAXST时,伪Steiner点的选择过程应当基于每条ML-XST边的XRP信息来执行,并且最终的ML-OAXSMT也是通过进一步详细优化ML-OAXST的所有XRP来生成的。可以看出,布线树边的XRP信息在整个布线器的运作过程中扮演着核心角色。因此,在这一步,布线器预先计算所有3D-OFMST边的XRP信息,从而生成两个记录这些信息的查找表。
假设给定芯片包含n个引脚,则生成的3D-OFMST一共包含n-1条边,由于每条边可以有4种不同的XRP,因此一共存在4*(n-1)条XRP。针对所有这些XRP,两个查找表在这一步被生成。第一个查找表被称为多层XRP-障碍物查找表(multi-layerXRP-obstacletable,MLXOT),它记录了每一条XRP穿越障碍的相关信息。更详细地说,假设两个引脚p i (x i ,y i ,z i )和p j (x j ,y j ,z j )间的一条XRP基于X pathk (记该路径为p i p j k),布线器将这条XRP穿越的障碍物记录到一个集合{B ijk }中,并且当z i ≠z j 时,设置参数L ijk 的值为{B ijk }的基数,而当z i =z j 时,设置L ijk 的值为{B ijk }中所有障碍物的直角边界盒的半周长。此外,考虑到每一条XRP包含三条子路径(对于任一路径p i p j k,记三条子路径分别为p i s k1 ,s ki s k2 ,s k2 p j ,其中s ki 和s k2 为图2中所示的两个伪Steiner点),布线器通过生成所有4*(n-1)条XRP的三条子路径的坐标信息,从而生成另一个被称为多层XRP-坐标查找表(multi-layerXRP-coordinatestable,MLXCT)的记录。注意,对于任意一条XRP的子路径,如果该路径是一条45°(135°)边,布线器将沿着该边所在布线层的原点将这条边顺时针旋转45°,从而生成一条新的水平(垂直边),并将这条新边的坐标信息记入MLXCT,这可以方便后续局部或总体线长的计算。因为当芯片任一布线层存在多条45°(135°)路径时,且这些路径间存在共享的部分,则计算这些共享路径的长度需要平方级别的时间复杂度。而如果对于任意两条存在共享路径的45°(135°)边,旋转后生成的水平边(垂直边)一定具有相同的纵坐标(横坐标),那么布线器只需先对这些旋转后的边按照纵坐标(横坐标)排序,再通过计算这些边的横坐标(纵坐标)之差来计算共享路径的长度。
3.ML-OAXST生成
在这一步,先前生成的3D-OFMST首先被转换为一棵ML-XST,然后通过采用一种基于投影的避障策略,并从各布线层引入一些伪Steiner点,ML-XST将被进一步转化为一棵ML-OAXST。
3.1ML-XST生成
布线器依次检查3D-OFMST中的每一条边,并基于以下原则将每条边转化为一条XRP:
4)对于任意一条边,如果Xpath0和Xpath1都能绕过所有障碍物,则二者具有相同的优先度。Xpath2和Xpath3同理。
5)对于任意一条边,Xpath0和Xpath1的优先度高于Xpath2和Xpath3如果两者之间均存在绕障路径。
6)对于任意一条边,如果4种XRP全部穿越了障碍物,则每种XRP的优先度反比于相应的L ijk 值。
可以看出,基于上述3条原则,对于任意一条3D-OFMST边,
其优先被转化为一条Xpath0或Xpath1当它们可以绕过所有障碍物,否则,如果Xpath2或Xpath3可以绕过所有障碍物,那么该边将被转化为一条Xpath2或Xpath3路径。此外,由于对于端点在同层和不同层的边,L ijk 值具有不同的意义,最后一条原则意味着,如果所有的4种XRP穿越了障碍物,那么两个端点在同一层的边将被转化为具有最小障碍物直角边界盒的XRP,而两个端点在不同层的边将被转化为穿越障碍物数最少的那条XRP。
3.2避障策略
根据ML-XST生成原则,可以看出,一些ML-XST边依旧穿越了障碍物。布线器根据这些边的具体特征将其划分为三种类型,即可修复路径、逃逸路径、非逃逸路径(图3),并采用三种不同的策略去分别处理这些穿障边。此外,如图4(a)所示,根据X结构特征,对于任意一个点p,布线器将布线平面划分为8个八角区域,并且每个区域不包含其两条边界线(图4(b))。显然,图4(a)中的每一条边界线(d1-d8)都是一条合法的布线路径。
在进行伪Steiner点选择之前,布线器首先按序将所有ML-XST边扫描一遍,对于一条边p i p j k,如果x i >x j ,则相互交换p i 和p j 的位置,即转换p i p j k为p j p i k*,相关k*值可在图4(c)中查询。这样,对于每一条ML-XST边,我们可以保证边的起点在终点的左侧,从而简化可能出现的情况数。例如,转换后,当我们考察一条XRPp i p j k,我们只需要考虑点p i 八角划分的右半轴和点p j 八角划分的左半轴。
可修复路径:对于转换后的任意一条可修复路径p i p j k,布线器首先计算{B ijk }的直角边界盒,记作box。然后从点p i 向其右半轴五个方向作投影线(图4(a)中的d1-d5),并记投影线p i d-x同box的第一个交点为t x (x=1,2,3,4,5),注意t x 可能不存在因为p i d-x同box可能不相交。此外,布线器计算每条投影线p i d-x同线段p i p j 之间的夹角(记为αx),并选择最小的αx对应的那个交点t x 作为一个伪Steiner点s(t x 存在)。由于s可能不能直接连接到点p j ,因此布线器检查box的四个拐点cy(y=1,2,3,4),并选择使得dis(s,cy)+dis(cy, p j )最小的那个拐点作为另一个伪Steiner点c,这里dis(a,b)表示点a和点b之间的直角距离。最后,布线器计算边p i s,sc,和cp j 的XRP信息,并添加这些信息到两个查找表中,从而生成一条新的连接p i 到p j 的避障路径。
考虑到{B ijk }中的障碍物可能疏散的分布在较广的布线平面,这种情况下,新生成的p i 到p j 之间的路径可能会相对较长,因为这些路径需要绕过{B ijk }的直角边界盒。因此,为了确保高的布线质量,在以下两种情况下,我们将采用另一种伪Steiner点选择策略:第一,上述方法选择的两个伪Steiner点之间的路径穿越了障碍物。第二,给定一个预设的参数β,如果p i 到p j 的新路径长度除以p i 和p j 之间的直角距离大于β。这两种情况下,我们将对{B ijk }中的障碍物按照距离点p i 由近到远的顺序进行排序,然后根据上述方法,按序在每个障碍物上选择两个伪Steiner点,这样,一条可以躲避较大{B ijk }直角边界盒的避障路径被生成。
图5是一条可修复路径避障计算的示例。图5(a)是原始路径p1p20,且该路径穿越了障碍物b1,b2,b3。布线器首先计算{B120}的直角边界盒box,图5(b)中红色部分为所求的box。然后,布线器从p1沿其八角划分的5个方向进行投影,显然p1d1和p1d5与box并未相交,因此只有t2,t3,t4存在。接下来,布线器计算每条投影线同线段p1p2之间的夹角,则有α2=∠d2p1p2,α3=∠d3p1p2,α4=∠d4p1p2且α4<α3<α2,因此t4被选择为一个伪Steiner点s。在图5(c)中,布线器考察box的4个拐点,并选择c2作为另一个伪Steiner点。最终生成图5(d)中的新避障路径。
逃逸路径:考虑到一条逃逸路径p i p j k的两个端点位于不同的布线层,布线器首先将p i p j k的三条子路径和{B ijk }全部投影到一个伪平面上(记投影后为p i ’ p j ’ k和{B ijk ’ })。然后布线器将该逃逸路径进一步细分为两种,第一种如图6(a)所示,投影后的伪Steiner点s并未被{B ijk ’ }中任何一个障碍物所包围,这意味着原始路径p i p j k的通孔sk1sk2是合法的,并且原始路径p i sk1和sk2 p j 构成了两条可修复路径,因此这种情况可以通过直接调用可修复路径策略解决。另一种情况则是当投影后的伪Steiner点s被{B ijk ’ }中的一个或多个障碍物所包围,此时原始通孔sk1sk2则变为不合法,因此如果可以找到另一个合法的通孔位置,并且分别连接p i 和p j 到该通孔,那么最坏的情况下将产生两条可修复路径。
对于第二种情况,布线器首先计算投影后{B ijk ’ }的直角边界盒box,并求得p i ’ p j ’ k同box的一个交点v*(x*,y*)(图6(b))。如果投影v*到p i 和p j 所在层形成一个通孔vv’,如果vv’合法,则问题得到求解。否则,一种基于线扫描的方法将被采用去进一步寻找一个合法的通孔位置。
该线扫描方法包含三个要素,一条固定线L,它是box中包含v*的那条边所在直线,一条扫描线Ls,和一组包含了所有第z i 层到第z j 层间的障碍物集合。以图6(b)为例,显然L是图6(b)中box的右侧边(当L是一条水平边时,可以按照类似方法对称地去处理),并且我们设置L的y坐标范围为[y*,max(yb)],这里max(yb)是中所有障碍物y坐标的最大值。然后,布线器将中的所障碍物投影到与L相同的平面上(记作),并按照投影后障碍物左下角拐点y坐标值递增的顺序排序。此外,一条水平边Ls被用来从y=y*到y=max(yb)去扫描所有排序后的障碍物。当Ls扫描到一条与L相交,且为一个障碍物的底边时,Ls将直接扫描b的顶边,而当Ls扫描到连续两条边l1和l2,且l1和l2均与L相交,并分别为两个不同障碍物的顶边和底边,则l1和l2与L的两个交点被选为通孔候选,并从中选出一个合法的作为通孔位置。例如,在图6(c)中,包含3个障碍物,Ls从覆盖v*的位置开始扫描,并首先发现边l0,由于l0是一条底边,因此Ls下一步直接扫描顶边l2而不是l1,接下来Ls发现边l3,它是另一个障碍物的底边,因此交点t1和t2被选作两个候选通孔位置,布线器则随机选择其中一个合法的作为结果。当然,如果Ls一直扫描到y=max(yb),仍未找到两个连续的底边和顶边,最后一个扫描到的障碍物边同L的交点则被选为通孔位置。类似的,可以通过Ls从y=y*扫描到y=min(yb)去发现另一个合法的通孔位置,这里min(yb)是中障碍物y坐标的最小值。最终,布线器取同点pi和pj垂直距离之和较小的那个点作为通孔位置。
这里,可以利用二维线段树结构去判断一个通孔位置是否合法。用外层线段树去记录平面水平坐标区间,用内层线段树去记录平面垂直坐标区间,并将每个区域的记录值初始化为0。通过按序扫描中的障碍物一次,当某个区域被当前障碍物覆盖,则更新该区域在二维线段树中的记录值,当所有中障碍物都被扫描后,该二维线段树便记录了所有的障碍物位置信息。当给定一个通孔位置,则可以通过在二维线段树中查询相应位置的记录值去判断该通孔是否合法。
非逃逸路径:类似针对逃逸路径的方法,布线器首先将一条非逃逸路径p i p j k和{B ijk }全部投影到一个伪平面上(记投影后为p i ’ p j ’ k和{B ijk ’ }),则根据非逃逸边的定义,p i ’ p j ’ 的直角边界盒被至少一个{B ijk ’ }中的障碍物完全包围。如图7(a)所示,在得到{B ijk ’ }的直角边界盒box后,可以通过上述线扫描方法在box的任一条边所在直线上寻找到一个合法通孔位置v*,并生成一个连接z i 和z j 层的通孔vv’,那么piv和v’pj两条XRP可以帮助原始路径p i p j k逃离障碍物的包围。然而,由于图7(a)中pi’和v*之间的路径将分别在第z i 和z j 两层来回布两次,当pi’和v*间的距离较大时,可能会产生一条冗长的避障路径。出于这个原因,布线器将尝试采用另一种避障策略。首先删除路径p i p j k,则ML-XST的所有点被分为两个子集,一个点集A包含点p i ,另一个点集B包含点p j 。然后,我们从A中删除点p i ,并求得此时A和B间的一条最短路径。同理,我们从B中删除p j ,并求得两个集合间的另一条最短路径,最后,布线器选择两条路径中不构成非逃逸路径,且代价较小的作为结果。图7(b)给出了这种策略的原理图,这里为了简便,我们用一条直线去代表一条多层环境下的XRP,在非逃逸路径p i p j k被删除后,布线器最终选择p r p j 作为一条新路径,从而生成一棵新的ML-XST。当然,如果新生成的边仍旧构成一条非逃逸路径,或者代价大于第一种方法得到的结果,布线器则自动取用第一种方法的结果。
此外,对于寻找空间两个点集A和B间的最短路径,我们采用一种改进的最近点对算法。经典的最近点对算法采用分治方法可以在一个平面上寻找到两个点集间的最短路径。然而,我们的问题需要在三维空间下寻找两个集合间的最近点对。为此,我们首先将集合A和B中的所有点根据平面y=m划分为两个集合S1和S2,这里m是所有点y坐标的中位数。然后,我们分别递归地求解集合S1和S2中的最近点对,假设d 1 和d 2 为所求结果,那么如果A和B之间的最短路径仍小于d s =min(d 1 ,d 2 ),那么这条路径的两个端点p i 和p j 必须满足且。由于p i 和p j 间的距离小于d s ,则有m-y i <=d s 且y j -m<=d s 。此外,对于任意一个可能的p i ,可构成最近点对的p j 形成一个长为d s ,宽和高为2ds的矩形R(如图7(c)所示),由于R中任意两个点间的距离不小于d s ,根据鸽巢原理,在R中最多可能存在24个点与p i 构成最近点对。因此,对于S1中的一个点p i (m-y i <=d s ),通过对S2中满足y j -m<=d s 的点按照x和z坐标排序,我们可以快速地寻找到S2中所有24个可能的最近点,进而找到p i 和p j 间的最短路径。注意,因为我们需要寻找两个点集间的最近点对,因此在递归过程中,如果存在两个点且它们属于不同的集合,则返回两者之间的真实距离,否则返回一个无穷大值。
4.精炼
在这一步,两种可以充分利用并共享布线资源的精炼策略被用来进一步优化上一步生成的ML-OAXST。
4.1伪Steiner连接优化
尽管针对可修复路径的避障策略可以成功的帮助一条穿障边绕过障碍物,但两个选定的伪Steiner点之间的路径仍然存在优化空间,因为在障碍物直角边界盒box中仍可能存在未被利用的布线资源。当然,如果一条可修复路径仅穿越一个障碍物,或者两个选择的伪Steiner点共线,则这条新生成的避障路径不存在被优化的空间。对于可优化的路径,布线器采用一种被称为“滑动”的操作去尝试进一步压缩线长。由于两个被选择的伪Steiner点分别位于box的两条边上,因此在沿着box的边,必然存在一条这两点之间的合法布线路径,此外,box的这两条边必定与至少一个障碍物的边重合,例如,如图8(a)所示,p i 和p j 间的XRP穿越了障碍物b1,b2和b3,根据可修复路径策略,布线器选择s和c2作为两个伪斯坦纳点。在这种情况下,s和c2只能采用Xpath3,此外,b1,b2和b3分别同box重叠于t1t2,t4t5,和c2t3。然而,如果我们沿着两个伪Steiner点之间的路径分别滑动两个点,并且停止在一个距离该点最远的重叠障碍物拐点处,则两个找到的拐点可能通过Xpath0或Xpath1来连接,从而压缩了布线总长。例如,在图8(a)中,我们滑动s到t2,滑动c2到t5,那么可以形成一条新的XRPt2t50,从而压缩了线长。此外图8(b)给出了图5(d)中的布线路径被这种滑动技术优化后的路径图。
4.2ML-OAXST结构优化
在ML-OAXST构建过程中,布线器主要专注于如何帮助所有的ML-XST边绕过障碍,但这可能造成一个较差的布线结果,因为所有生成的XRP都是相互独立的。换句话说,如果这些XRP可以相互关联起来,并且尽可能多的共享布线资源,ML-OAXST的布线总长将进一步得到优化。
事实上,对于ML-OAXST上的任意一个点,总存在至少一个最优的连接结构。例如,图9(a)给出了一个2度顶点p1,这里p2和p3被连接到p1。不失一般性,这里我们假设两点间的距离满足△x>△y。由于每条边存在4中XRP,故针对点p1一种存在16中不同的连接组合。显然,如果路径p3p1采用Xpath0或Xpath3,则该路径不可能与p2p1间的路径共享任何资源。图9(a)给出了XRPp3p11,这里s11和s12是两个伪Steiner点。可以看出,当p2的x坐标位于s11和p1之间时,图9(a)是点p1的一个最优连接结构。此外,图9(b)给出了当p2的x坐标位于s22和s12之间的情况,这里s22是XRPp3p12的伪Steiner点。在这种情况下,点p1的最优连接结构则取决于p2s1和p2s2+s2s12的值,这里s1和s2则分别是XRPp2p11和p2p12的伪Steiner点。例如,当p2s1<p2s2+s2s12,那么图9(c)将是p1的最优连接结构。当然,如图9(d)所示,由于障碍物的存在,XRPp2p11变为非法,图9(d)成为这种情况下p1的最优连接结构。总之,ML-OAXST上的每个点均存在一个最优的连接结构。
基于上述分析,通过计算ML-OAXST上每个点的最连接结构,并应用这些结构到原始ML-OAXST中直到所有ML-OAXST边的连接方式被确定,ML-OAXST的线长可以得到进一步的压缩。具体的讲,对于每一个点d度顶点pi,我没枚举其所有4d种连接结构,并选择其中线长最短且避障的一个作为该点的最优结构。然后,我们根据每个点最优结构中共享路径长度由大到小的顺序排列所有点,并按序应用每个点的最优结构到原始ML-OAXST直到所有ML-OAXST边的连接方式被确定。由于所需的XRP信息均可以通过查表得到,因此这个过程是高效的。
综上所述,本发明提供的上列较佳实施例,对本发明的目的、技术方案和优点进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种针对多层芯片的高效X结构避障布线器的构造方法,其特征在于:包括以下步骤:
步骤S1:根据给定的一组引脚坐标位置,基于一种快速的多分片MST构建策略生成一棵连接所有引脚的3D-OFMST,该3D-OFMST为最终ML-OAXSMT的基础架构;
步骤S2:3D-OFMST中所有边的XRP信息被计算,并将这些信息存入两个记录从而生成两个查找表,这两个查找表可以为布线器的后续运作提供信息支持;
步骤S3:基于快速查表,通过将3D-OFMST的每条边转化为一条XRP生成一棵ML-XST,并将该ML-XST将被转化为一棵ML-OAXST;
步骤S4:对ML-OAXST进一步从全局和局部两个角度优化,从而生成最终的ML-OAXSMT。
2.根据权利要求1所述的针对多层芯片的高效X结构避障布线器的构造方法,其特征在于:步骤S1中3D-OFMST的生成包括以下具体步骤:基于多层芯片给定的所有引脚位置,构建一棵k-d树,该k-d树被用来预估任一引脚的近似密度值,同时可提供快速的最近邻引脚查找;基于Prim算法思想,并根据每个引脚的初始预估密度,从当前密度最小的引脚开始,一个MST分片被构建直到该分片达到了局部密度最大值,此时另一个MST分片亦从当前密度最小的引脚开始被构建,直到所有的引脚被这些MST分片所覆盖;最后,通过连接这些生成的MST分片,一棵完整的3D-OFMST将被生成。
3.根据权利要求1所述的针对多层芯片的高效X结构避障布线器的构造方法,其特征在于:步骤S2还包括以下具体步骤:假设给定芯片包含n个引脚,则生成的3D-OFMST一共包含n-1条边,由于每条边可以有4种不同的XRP,因此一共存在4*(n-1)条XRP,针对所有这些XRP,生成两个查找表,第一个查找表为多层XRP-障碍物查找表MLXOT,另一个表为多层XRP-坐标查找表MLXCT;假设两个引脚pi(xi,yi,zi)和pj(xj,yj,zj)间的一条XRP,记该路径为pipjk,将这条XRP穿越的障碍物记录到一个集合{Bijk}中,即生成MLXOT的记录,并且当zi≠zj时,设置参数Lijk的值为{Bijk}的基数,而当zi=zj时,设置Lijk的值为{Bijk}中所有障碍物的直角边界盒的半周长;考虑到每一条XRP包含三条子路径,对于任一路径pipjk,记三条子路径分别为pisk1,sk1sk2,sk2pj,其中sk1和sk2两个伪Steiner点,通过生成所有4*(n-1)条XRP的三条子路径的坐标信息,从而生成多层XRP-坐标查找表MLXCT的记录。
4.根据权利要求3所述的针对多层芯片的高效X结构避障布线器的构造方法,其特征在于:步骤S3中还包括以下具体步骤:依次检查3D-OFMST中的每一条边,并基于以下原则将每条边转化为一条XRP:
1)对于任意一条边,如果Xpath0和Xpath1都能绕过所有障碍物,则二者具有相同的优先度,如果Xpath2和Xpath3都能绕过所有障碍物,则二者具有相同的优先度;
2)如果两者之间均存在绕障路径,对于任意一条边,Xpath0和Xpath1的优先度高于Xpath2和Xpath3;
3)对于任意一条边,如果4种XRP全部穿越了障碍物,则每种XRP的优先度反比于相应的Lijk值。
5.根据权利要求3所述的针对多层芯片的高效X结构避障布线器的构造方法,其特征在于:步骤S4还包括以下具体步骤:根据ML-XST每条穿障边的具体特征,将所有ML-XST穿障边分为修复路径、逃逸路径及非逃逸路径三类,并采用了三种不同的策略进行避障路径计算,精确地捕捉到多层空间中恰当的伪Steiner点位置,从而ML-XST边生成最佳的避障X布线路径;
其中修复路径的策略为:对于转换后的任意一条可修复路径pipjk,布线器首先计算{Bijk}的直角边界盒,记作box,然后从点pi向其右半轴五个方向作投影线,并记投影线pidx同box的第一个交点为tx(x=1,2,3,4,5),若pidx同box不相交tx不存在;布线器计算每条投影线pidx同线段pipj之间的夹角记为αx,并选择最小的αx对应的那个交点tx作为一个伪Steiner点s,由于s可能不能直接连接到点pj,因此布线器检查box的四个拐点cy(y=1,2,3,4),并选择使得dis(s,cy)+dis(cy,pj)最小的那个拐点作为另一个伪Steiner点c,其中dis(a,b)表示点a和点b之间的直角距离;布线器计算边pis,sc,和cpj的XRP信息,并添加这些信息到两个查找表中,从而生成一条新的连接pi到pj的避障路径;逃逸路径的策略为:布线器首先将pipjk的三条子路径和{Bijk}全部投影到一个伪平面上,记投影后为pi’pj’k和{Bijk’};然后布线器将该逃逸路径细分为两种,如果投影后的伪Steiner点s并未被{Bijk’}中任何一个障碍物所包围则直接调用可修复路径策略解决,否则布线器首先计算投影后{Bijk’}的直角边界盒box,并求得pi’pj’k同box的一个交点v*(x*,y*),如果投影v*到pi和pj所在层形成一个通孔vv’,如果vv’合法,则问题得到求解,否则,基于线扫描的方法进一步寻找一个合法的通孔位置;
非逃逸路径的第一种策略为:布线器首先将一条非逃逸路径pipjk和{Bijk}全部投影到一个伪平面上,记投影后为pi’pj’k和{Bijk’},则根据非逃逸边的定义,pi’pj’的直角边界盒被至少一个{Bijk’}中的障碍物完全包围,在得到{Bijk’}的直角边界盒box后,通过线扫描方法在box的任一条边所在直线上寻找到一个合法通孔位置v*,并生成一个连接zi和zj层的通孔vv’,那么piv和v’pj两条XRP帮助原始路径pipjk逃离障碍物的包围;
非逃逸路径的第二种策略为:首先删除路径pipjk,则ML-XST的所有点被分为两个子集,一个点集A包含点pi,另一个点集B包含点pj;然后,我们从A中删除点pi,并求得此时A和B间的一条最短路径,同理,我们从B中删除pj,并求得两个集合间的另一条最短路径,最后,布线器选择两条路径中不构成非逃逸路径,且代价较小的作为非逃逸路径;
如果第二种策略新生成的边仍旧构成同一条非逃逸路径,或者代价大于第一种策略得到的结果,布线器则自动取用第一种策略的结果。
6.根据权利要求5所述的针对多层芯片的高效X结构避障布线器的构造方法,其特征在于:所述线扫描的方法包含三个要素:一条固定线L即是box中包含v*的那条边所在直线,一条扫描线Ls及一组包含了所有第zi层到第zj层间的障碍物集合设置L的y坐标范围为[y*,max(yb)],其中max(yb)是中所有障碍物y坐标的最大值,布线器将中的所障碍物投影到与L相同的平面上,记作并按照投影后障碍物左下角拐点y坐标值递增的顺序排序,一条水平边Ls被用来从y=y*到y=max(yb)去扫描所有排序后的障碍物;当Ls扫描到一条与L相交,且为一个障碍物的底边时,Ls将直接扫描b的顶边;当Ls扫描到连续两条边l1和l2,且l1和l2均与L相交,并分别为两个不同障碍物的顶边和底边,则l1和l2与L的两个交点被选为通孔候选,并从中选出一个合法的作为通孔位置;如果Ls一直扫描到y=max(yb),仍未找到两个连续的底边和顶边,最后一个扫描到的障碍物边同L的交点则被选为通孔位置;或者通过Ls从y=y*扫描到y=min(yb)去发现另一个合法的通孔位置,其中min(yb)是中障碍物y坐标的最小值;最终,布线器取同点pi和pj垂直距离之和较小的那个点作为通孔位置。
7.根据权利要求5所述的针对多层芯片的高效X结构避障布线器的构造方法,其特征在于:采用一种改进的最近点对算法寻找空间两个点集A和B间的最短路径,主要包括以下步骤:首先将集合A和B中的所有点根据平面y=m划分为两个集合S1和S2,m是所有点y坐标的中位数;分别递归地求解集合S1和S2中的最近点对,假设d1和d2为所求结果,A和B之间的最短路径小于ds=min(d1,d2),那么这条路径的两个端点pi和pj必须满足pi∈s1且pj∈s2;由于pi和pj间的距离小于ds,则有m-yi<=ds且yj-m<=ds,对于任意一个可能的pi,可构成最近点对的pj形成一个长为ds,宽和高为2ds的矩形R,R中任意两个点间的距离不小于ds;根据鸽巢原理,在R中最多可能存在24个点与pi构成最近点对,因此,对于S1中的一个点pi(m-yi<=ds),通过对S2中满足yj-m<=ds的点按照x和z坐标排序,快速地寻找到S2中所有24个可能的最近点,进而找到pi和pj间的最短路径。
8.根据权利要求1所述的针对多层芯片的高效X结构避障布线器的构造方法,其特征在于:步骤S4的优化基于以下两种精炼策略:一种通过优化伪Steiner点连接结构以达到充分利用有效布线资源的目的;另一种则是通过充分增加布线树共享路径总长,从而达到压缩线长的目的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510686612.5A CN105184022B (zh) | 2015-10-21 | 2015-10-21 | 一种针对多层芯片的高效x结构避障布线器的构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510686612.5A CN105184022B (zh) | 2015-10-21 | 2015-10-21 | 一种针对多层芯片的高效x结构避障布线器的构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105184022A true CN105184022A (zh) | 2015-12-23 |
CN105184022B CN105184022B (zh) | 2018-06-15 |
Family
ID=54906101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510686612.5A Active CN105184022B (zh) | 2015-10-21 | 2015-10-21 | 一种针对多层芯片的高效x结构避障布线器的构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105184022B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339726A (zh) * | 2020-02-26 | 2020-06-26 | 福州大学 | 考虑电压转换速率的X结构Steiner树构造方法 |
CN111444666A (zh) * | 2018-12-29 | 2020-07-24 | 杭州广立微电子有限公司 | 一种mol工艺中晶体管引脚提取和绕线的方法 |
CN112528592A (zh) * | 2020-12-23 | 2021-03-19 | 福州大学 | 基于多阶段优化的考虑布线资源松弛的x结构布线方法 |
CN115166301A (zh) * | 2022-06-02 | 2022-10-11 | 杭州广立微电子股份有限公司 | 一种测试结构的基极选择方法 |
CN118297027A (zh) * | 2024-06-05 | 2024-07-05 | 苏州芯联成软件有限公司 | 一种基于图结构的芯片多行详细布局方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5491641A (en) * | 1993-10-04 | 1996-02-13 | Lsi Logic Corporation | Towards optical steiner tree routing in the presence of rectilinear obstacles |
CN1588381A (zh) * | 2004-07-06 | 2005-03-02 | 清华大学 | 超大规模集成电路避障碍的直角Steiner树方法 |
-
2015
- 2015-10-21 CN CN201510686612.5A patent/CN105184022B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5491641A (en) * | 1993-10-04 | 1996-02-13 | Lsi Logic Corporation | Towards optical steiner tree routing in the presence of rectilinear obstacles |
CN1588381A (zh) * | 2004-07-06 | 2005-03-02 | 清华大学 | 超大规模集成电路避障碍的直角Steiner树方法 |
Non-Patent Citations (2)
Title |
---|
CHIH-HUNG LIU .ETAL: "Efficient Multilayer Obstacle-Avoiding Rectilinear Steiner Tree Construction Based on Geometric Reduction", 《IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS》 * |
GENGGENG LIU .ETAL: "Multilayer Obstacle-Avoiding X-Architecture Steiner Minimal Tree Construction Based on Particle Swarm Optimization", 《IEEE TRANSACTIONS ON CYBERNETICS》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444666A (zh) * | 2018-12-29 | 2020-07-24 | 杭州广立微电子有限公司 | 一种mol工艺中晶体管引脚提取和绕线的方法 |
CN111444666B (zh) * | 2018-12-29 | 2023-03-21 | 杭州广立微电子股份有限公司 | 一种mol工艺中晶体管引脚提取和绕线的方法 |
CN111339726A (zh) * | 2020-02-26 | 2020-06-26 | 福州大学 | 考虑电压转换速率的X结构Steiner树构造方法 |
CN112528592A (zh) * | 2020-12-23 | 2021-03-19 | 福州大学 | 基于多阶段优化的考虑布线资源松弛的x结构布线方法 |
CN112528592B (zh) * | 2020-12-23 | 2022-06-14 | 福州大学 | 基于多阶段优化的考虑布线资源松弛的x结构布线方法 |
CN115166301A (zh) * | 2022-06-02 | 2022-10-11 | 杭州广立微电子股份有限公司 | 一种测试结构的基极选择方法 |
CN115166301B (zh) * | 2022-06-02 | 2024-10-29 | 杭州广立微电子股份有限公司 | 一种测试结构的基极选择方法 |
CN118297027A (zh) * | 2024-06-05 | 2024-07-05 | 苏州芯联成软件有限公司 | 一种基于图结构的芯片多行详细布局方法和装置 |
CN118297027B (zh) * | 2024-06-05 | 2024-08-20 | 苏州芯联成软件有限公司 | 一种基于图结构的芯片多行详细布局方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105184022B (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105184022A (zh) | 一种针对多层芯片的高效x结构避障布线器的构造方法 | |
CN101980216B (zh) | 基于网块的快速多层布线方法 | |
CN107092978B (zh) | 一种面向虚拟地球的最短路径分层规划方法 | |
CN103529843A (zh) | Lambda*路径规划算法 | |
CN103488816B (zh) | 模拟电路的多层精确匹配布线方法 | |
CN101840202B (zh) | 一种控制系统建模中的功能块智能布线方法 | |
Zarate et al. | Optimal sankey diagrams via integer programming | |
CN104318025B (zh) | 八角结构Steiner最小树下的VLSI绕障布线器 | |
CN109460564B (zh) | 一种电网潮流图布线方法 | |
CN103838907A (zh) | 基于stl模型的曲面切割轨迹获得方法 | |
Lenin et al. | A tabu search for multi-objective single row facility layout problem | |
CN104574517A (zh) | 三维模型的边界面网格单元的处理方法和装置 | |
Chao et al. | Rectilinear Steiner tree construction by local and global refinement | |
CN107341823A (zh) | 一种基于特征融合的最小分支立体匹配方法 | |
Duncan et al. | Planar drawings of higher-genus graphs. | |
CN112989749A (zh) | 一种集成电路版图布线中引脚访问方法及装置 | |
CN102682163A (zh) | 3d集成电路自动布局中tsv位置的网格优化方法 | |
CN102541922A (zh) | 一种基于不确定数据集的双色反最邻近查询的方法及装置 | |
CN103902772B (zh) | 基于交错型引脚结构的等长差分对逃逸布线方法 | |
CN113496053B (zh) | 一种多洞口的预制叠合板双向底筋智能化布设方法 | |
Gu et al. | An Efficient Method for k Nearest Neighbor Searching in Obstructed Spatial Databases. | |
US10460064B1 (en) | Partition-aware grid graph based hierarchical global routing | |
de Berg et al. | Kinetic convex hulls, Delaunay triangulations and connectivity structures in the black-box model | |
Wu et al. | Integrated design of the block layout and aisle structure by simulated annealing | |
Fan et al. | Voronoi diagram with visual restriction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230104 Address after: 201306 2nd floor, no.979 Yunhan Road, Lingang New Area, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai Patentee after: Shanghai Lixin Software Technology Co.,Ltd. Address before: 350108 new campus of Fuzhou University, No. 2, Xue Yuan Road, University Town, Minhou street, Minhou, Fujian. Patentee before: FUZHOU University |
|
TR01 | Transfer of patent right |