CN109684731B - 一种高效的详细布线驱动轨道分配方法 - Google Patents
一种高效的详细布线驱动轨道分配方法 Download PDFInfo
- Publication number
- CN109684731B CN109684731B CN201811598401.6A CN201811598401A CN109684731B CN 109684731 B CN109684731 B CN 109684731B CN 201811598401 A CN201811598401 A CN 201811598401A CN 109684731 B CN109684731 B CN 109684731B
- Authority
- CN
- China
- Prior art keywords
- iroute
- track
- cost
- hole
- pin
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及一种高效的详细布线驱动轨道分配算法,首先提供总体布线结果并进行初始分配:利用轨道分配算法NTA中的逐通道处理的贪心算法将每个iroute都分配到相应的轨道上;其次,进行iroute连接:利用通孔位置模型对步骤S1中分配到相应轨道上的iroute进行连接;然后,进行重叠消减:利用轨道分配算法NTA中的协商机制,在每一个通道中,iroute按照拆除代价从大到小排序,然后按照这个顺序迭代地拆除iroute并将iroute重新分配到分配代价最小的轨道上;最后,进行引脚连接,将每一个引脚连接到iroute或通孔上;输出轨道分配结果。本发明能够得到一个精确的布线结果。
Description
技术领域
本发明涉及集成电路计算机辅助设计技术领域,特别是一种高效的详细布线驱动轨道分配方法。
背景技术
布线是超大规模集成电路(VLSI)物理设计的重要步骤。传统的布线阶段被分为了两部分,分别是总体布线和详细布线。在总体布线阶段,布线区域被划分为一组总体布线单元。总体布线可以得到跨越多个总体布线单元的总体线网大致的布线区域。总体布线可以得到跨越多个总体布线单元的总体线网大致的布线区域,即一个由总体布线单元构成的布线树。而局部线网的所有引脚位于同一个总体布线单元内部,无法构建出一棵由总体布线单元组成的布线树。在总体布线中,局部线网的布线常常被省略。在详细布线阶段,每个线网的引脚被准确地在总体布线给出的布线区域内连通。在问题规模较小时,这种两阶段的方法可以得到理想的结果。但是,布线作为物理设计中比较偏后的阶段,需要处理大量的设计规则约束。随着技术节点的进步,在布线阶段需要考虑的设计规则急剧增加,大大增加了布线算法设计的复杂度以及布线算法运行的时间。在总体布线阶段,包括局部线网在内的很多信息都被忽略,随着设计越来越复杂,总体布线已经很难为详细布线阶段提供较好的指导。于是,学者们在两个阶段之间加入了轨道分配阶段作为两者之间的桥梁。
随着对轨道分配的广泛研究,产生了很多不同用途的轨道分配算法。有些轨道分配算法用于修正早期设计阶段的可布线性问题,而更多的轨道分配算法是为了得到可用于详细布线的草案。已有的用于解决总体布线和详细布线不匹配问题的轨道分配算法大多数是为了最大化被分配的iroute数量。这种轨道分配结果不能预测全局的布线情况,未完成布线的部分在详细布线阶段可能会与已完成布线的部分产生大量的重叠以至于难以达到理想的效果。
发明内容
有鉴于此,本发明的目的是提出一种高效的详细布线驱动轨道分配方法,通过有效地缩减iroute之间以及iroute与障碍物之间的重叠长度,能够有效地解决总体布线和详细布线之间不匹配的问题,节约经济成本。
本发明采用以下方案实现:一种高效的详细布线驱动轨道分配方法,包括以下步骤:
步骤S1:提供总体布线结果并进行初始分配:利用轨道分配算法NTA中的逐通道处理的贪心算法将每个iroute都分配到相应的轨道上;
步骤S2:进行iroute连接:利用通孔位置模型对步骤S1中分配到相应轨道上的iroute进行连接;
步骤S3:进行iroute的重叠消减:利用轨道分配算法NTA中的协商机制,在每一个通道中,iroute按照拆除代价从大到小排序,然后按照这个顺序迭代地拆除iroute并将iroute重新分配到分配代价最小的轨道上;
步骤S4进行线网的引脚连接,将每一个引脚连接到iroute或通孔上;输出轨道分配结果,即完成所有线网连接后的布线图。
进一步地,步骤S1具体为:在每一个通道中,对属于该通道的iroute按照长度从长到短排序,然后按照这个顺序将每个iroute分配到具有最小分配代价的轨道上。
进一步地,所述分配代价的计算公式为:
wlCost+α×overlapCost+β×blkCost
其中,wlCost,overlapCost和blkCost分别表示线长代价,重叠代价和障碍代价,α和β是自定义参数,分别被设置为0.1和1000000。
进一步地,步骤S2具体为:在所述通孔位置模型中,通孔的位置由两个iroute来确定;如果连接的iroute的数量超过两个的通孔,则由其中的两个iroute确定通孔的位置,其余iroute需要连接到确定位置的通孔上;确定通孔位置的两个iroute从总体布线结果中按预设顺序选出。
进一步地,所述的通孔位置模型包括正交连接子模型、平行直连子模型和平行非直连子模型;
在所述正交连接子模型中,通孔的位置由两个正交的iroute确定;这两个iroute的方向是所在的金属布线层的走线方向;
在所述平行直连子模型中,通孔的位置由两个平行的iroute确定,并且这两个iroute通过一个通孔直接相连;这两个iroute的方向是所在的金属布线层的走线方向;
在所述平行非直连子模型中,通孔的位置由两个平行的iroute确定,但是这两个iroute不能通过一个通孔直接相连,需要通过增加一个新的正交的iroute连接在一起;这两个iroute的方向是所在的金属布线层的走线方向。
进一步地,步骤S3中所述拆除代价的公式为:
overlapCost(ir,t)+historyCost(ir,t)
其中,overlapCost(ir,t)和historyCost(ir,t)分别是重叠代价和历史代价,t表示轨道t,ir表示轨道t上的iroute ir。
进一步地,步骤S3中所述将iroute重新分配到轨道上的分配代价公式为:
0.1×wlCost(ir,t)+α1×overlapCost(ir,t)+
β×blkCost(ir,t)+historyCost(ir,t)
其中,t表示轨道t,ir表示轨道t上的iroute ir;wlCost(ir,t)、overlapCost(ir,t)、blkCost(ir,t)和historyCost(ir,t)分别表示将ir分配到轨道t上的线长代价、重叠代价、障碍代价和历史代价;α1和β是自定义参数;α1被初始化为0.1并且每迭代|Ip|/k次α1的值就会增加0.1,Ip表示在轨道p中iroute的数量,k为10;β为100000。
进一步地,步骤S4的具体为:当连接一个总体线网时,对于每个引脚,利用连接组件距离计算公式计算出该引脚到其他连接组件之间的距离,然后将引脚连接到距离最近的组件,用以减少新增iroute的数量和iroute重叠的长度。
进一步地,所述连接组件包括iroute、通孔和引脚。
与现有技术相比,本发明有以下有益效果:
本发明能够得到一个精确的布线结果;通过有效地缩减iroute之间以及iroute与障碍物之间的重叠长度,可以有效地解决总体布线和详细布线之间不匹配的问题,节约经济成本。
附图说明
图1为本发明实施例的轨道分配算法的流程图。
图2为本发明实施例的iroute示意图。
图3为本发明实施例的通孔位置模型的三种子模型,其中,图3(a)为总体布线结果图,图3(b)为正交连接子模型的实施情况图,图3(c)为平行直连子模型的实施情况图,图3(d)为平行非直连子模型的实施情况图。
图4为本发明实施例的iroute连接过程示意图,其中,图4(a)为总体布线结果图,图4(b)为图4(a)所示总体线网中S1的连接示意图,图4(c)为图4(a)所示总体线网中S1和S2的连接示意图,图4(d)为图4(a)所示总体线网中S1、S2和S3的连接示意图。
图5为本发明实施例的引脚连接方案中投影面上两个点的距离示意图,其中,图5(a)为引脚和通孔之间距离的示意图,图5(b)为引脚之间的距离示意图。
图6为本发明实施例的引脚连接方案中投影面上iroute和引脚的距离示意图,其中,图6(a)为引脚位于iroute左侧的距离示意图,图6(b)为引脚位于iroute右侧的距离示意图,图6(c)为引脚可以垂直投影到iroute内部的距离示意图。
图7为本发明实施例的引脚连接方案图,其中,图7(a)为引脚连接前总体线网连接组件间距离的示意图,图7(b)为引脚连接后的布线图,图7(c)为局部线网的引脚连接示意图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
如图1所示,本实施例提供了一种高效的详细布线驱动轨道分配方法,包括以下步骤:
步骤S1:提供总体布线结果并进行初始分配:利用轨道分配算法NTA中的逐通道处理的贪心算法将每个iroute都分配到相应的轨道上;
步骤S2:进行iroute连接:利用通孔位置模型对步骤S1中分配到相应轨道上的iroute进行连接;
步骤S3:进行iroute的重叠消减:利用轨道分配算法NTA中的协商机制,在每一个通道中,iroute按照拆除代价从大到小排序,然后按照这个顺序迭代地拆除iroute并将iroute重新分配到分配代价最小的轨道上;该阶段可以有效地削减iroute的重叠长度使得轨道分配算法能有效地减小总体布线和详细布线之间的不匹配问题。(说明书)
步骤S4:进行线网的引脚连接,将每一个引脚连接到iroute或通孔上;输出轨道分配结果,即完成所有线网连接后的布线图。
特别的,本实施例在初始分配阶段和重叠削减阶段之后都引入了iroute连接阶段。两个阶段都使用了同样的轨道分配算法中定义的通孔位置模型将同一个线网的iroute连接在一起,但是具有不同的目的。初始分配阶段之后的iroute连接阶段是为了给之后的重叠削减阶段提供更为精确的指导,实验证明设置这一阶段是非常有效的。而重叠削减阶段之后的iroute连接阶段则是为了将属于同一线网的iroute被准确地连接在一起,使得最终的轨道分配结果是准确的。
在本实施例中,步骤S1具体为:在每一个通道中,对属于该通道的iroute按照长度从长到短排序,然后按照这个顺序将每个iroute分配到具有最小分配代价的轨道上。
在本实施例中,所述分配代价的计算公式为:
wlCost+α×overlapCost+β×blkCost
其中,wlCost,overlapCost和blkCost分别表示线长代价,重叠代价和障碍代价,α和β是自定义参数,分别被设置为0.1和1000000。
在本实施例中,步骤S2具体为:在所述通孔位置模型中,通孔的位置由两个iroute来确定;如果连接的iroute的数量超过两个的通孔,则由其中的两个iroute确定通孔的位置,其余iroute需要连接到确定位置的通孔上;确定通孔位置的两个iroute从总体布线结果中按预设顺序选出。
在本实施例中,所述的通孔位置模型包括正交连接子模型、平行直连子模型和平行非直连子模型;
在所述正交连接子模型中,通孔的位置由两个正交的iroute确定;这两个iroute的方向是所在的金属布线层的走线方向;
在所述平行直连子模型中,通孔的位置由两个平行的iroute确定,并且这两个iroute通过一个通孔直接相连;这两个iroute的方向是所在的金属布线层的走线方向;
在所述平行非直连子模型中,通孔的位置由两个平行的iroute确定,但是这两个iroute不能通过一个通孔直接相连,需要通过增加一个新的正交的iroute连接在一起;这两个iroute的方向是所在的金属布线层的走线方向。
在本实施例中,步骤S3中所述拆除代价的公式为:
overlapCost(ir,t)+historyCost(ir,t)
其中,overlapCost(ir,t)和historyCost(ir,t)分别是重叠代价和历史代价,t表示轨道t,ir表示轨道t上的iroute ir。
在本实施例中,步骤S3中所述将iroute重新分配到轨道上的分配代价公式为:
0.1×wlCost(ir,t)+α1×overlapCost(ir,t)+
β×blkCost(ir,t)+historyCost(ir,t)
其中,t表示轨道t,ir表示轨道t上的iroute ir;wlCost(ir,t)、overlapCost(ir,t)、blkCost(ir,t)和historyCost(ir,t)分别表示将ir分配到轨道t上的线长代价、重叠代价、障碍代价和历史代价;α1和β是自定义参数;α1被初始化为0.1并且每迭代|Ip|/k次α1的值就会增加0.1,Ip表示在轨道p中iroute的数量,k为10;β为100000。
在本实施例中,步骤S4的具体为:当连接一个总体线网时,对于每个引脚,利用连接组件距离计算公式计算出该引脚到其他连接组件之间的距离,然后将引脚连接到距离最近的组件,用以减少新增iroute的数量和iroute重叠的长度。
在本实施例中,所述连接组件包括iroute、通孔和引脚。
在本实施例中,在引脚位于多个总体布线单元的总体线网中,总体布线树的每条垂直或水平线段被提取出来作为一个iroute,且iroute的两个端点位于所在总体布线单元的中心。在引脚位于同一个总体布线单元的局部线网中,iroute为覆盖所有引脚X坐标的水平线段和覆盖所有引脚Y坐标的垂直线段中长度最小的一个。
在本实施例中,总体布线结果即为:在总体布线中,整个布线区域被分割为总体布线单元的集合,总体布线单元是大小相同的矩形。总体布线结果即为每个线网所占用的总体布线单元的集合。
较佳的,本实施例提供一种在超大规模集成电路中考虑到局部线网、通孔位置和引脚连通性问题的轨道分配算法,以优化iroute之间以及iroute与障碍物之间的重叠长度为目标,最终得到可以很好地应用于详细布线阶段的轨道分配结果。通过定义一种完备的通孔位置模型和一种引脚连接方案以及采用一种协商机制,该算法可以得到优化iroute重叠长度的引脚到引脚的精确布线结果,为详细布线提供很好的指导。
较佳的,本实施例在允许iroute重叠存在的条件下找到精确的布线结果。对于通孔位置,设计了一种完备的通孔位置模型;对于引脚连通性问题,设计了一种有效的引脚连接方法。本实施的算法可以有效地削减iroute之间以及iroute和障碍之间的重叠长度,并且通过削减重叠长度可以有效地减少总体布线和详细布线之间的不匹配问题。因此,本实施算法的轨道分配结果是一个很好的详细布线起点,并且轨道分配结果中的iroute重叠可以在详细布线阶段通过一些措施消除。该算法也是十分高效的。相比较于已有的轨道分配算法,本实施例的算法可以减少40%的iroute重叠代价,并且可以加速约11.88倍。
较佳的,本实施例的具体实施方式如下:
1.初始分配阶段:
在轨道分配算法中,iroute的定义和NTA中的定义相同。Iroute从总体线网和局部线网中提取出来。对于一个给定的总体线网,从一个总体布线单元的中心到另一个总体布线单元的中心的一个线段就是一个iroute。如图2所示,总体线网n1是被虚线框圈出的一组总体布线单元,虚线框内的矩形表示n1的两个引脚,虚线框内的粗线段ir1和ir2是从n1中提取出的iroute。对于一个给定的局部线网,iroute是基于引脚的位置覆盖整个局部线网引脚的一个主干。若水平主干比较短,则iroute为水平主干;若垂直主干比较短,则iroute为垂直主干。如图2所示,局部线网n2是被虚线框圈出来的一个总体布线单元,虚线框内的两个圆形表示n2的两个引脚,虚线框内的粗线段ir3是从局部线网n2中提取出的iroute。
初始分配阶段引入NTA中的贪心算法将每个iroute分配到所在的通道中具有最小分配代价的轨道上。因为iroute的分配顺序对贪心算法的效果有很大的影响,所以需要选择一种合适的分配顺序。实验表明按照iroute的长度从长到短进行分配可以取得较好的效果。将一个iroute分配到一条轨道上的分配代价的计算方式如下所示:
wlCost+α×overlapCost+β×blkCost
其中,wlCost,overlapCost和blkCost分别表示线长代价,重叠代价和障碍代价。重叠代价表示一条轨道上所有iroute数量不小于2的单位长度上iroute数量的总和。障碍代价表示一条轨道上所有iroute与障碍物重叠的长度的总和。线长代价的定义与NTA介绍的相同。α和β是用户自定义参数,在该算法内被分别设置为0.1和1000000。
2.Iroute连接阶段:
1(优选走线方向)在工业生产中,芯片的每一层有一个水平或垂直的优选走线方向,并且相邻两层的优选走线方向是不同的。
线网中的每个线段的走线方向都要尽可能地和它所在的金属布线层的优选走线方向相同。相邻的金属布线层的优选走线方向相互正交。图3给出了轨道分配算法中通孔位置模型的三个子模型的示例,是整个布线区域的一个局部图示。图3中,L3层和L5层的优选走线方向是水平方向,L4层的优选走线方向是垂直方向,黑框表示总体布线单元,虚线表示轨道。图3(a)是一个总体布线结果。Iroute S1,S2和S3通过通孔V连接。
2(正交连接子模型)在该子模型中,通孔的位置由两个正交的iroute确定。这两个iroute的方向是所在的金属布线层的优选走线方向。
3(平行直连子模型)在该子模型中,通孔的位置由两个平行的iroute确定,并且这两个iroute可以通过一个通孔直接相连。这两个iroute的方向是所在的金属布线层的优选走线方向。
4(平行非直连子模型)在该子模型中,通孔的位置由两个平行的iroute确定,但是这两个iroute不能通过一个通孔直接相连,需要通过增加一个新的正交的iroute连接在一起。这两个iroute的方向是所在的金属布线层的优选走线方向。
在轨道分配算法的通孔位置模型中,通孔的位置由两个iroute来确定。对于连接的iroute的数量超过两个的通孔,由其中的两个iroute确定通孔的位置,其余iroute需要连接到确定位置的通孔上。确定通孔位置的两个iroute从总体布线结果中按顺序选出。该通孔位置模型包含三种子模型,三种子模型包含了所有的情况。
图3(b)和图3(d)在初始分配阶段有相同的轨道分配结果,但是iroute在总体布线结果中的顺序不同。图3(b)的iroute顺序是S1,S2和S3,而图3(d)的iroute顺序是S1,S3和S2。图3(c)在初始分配阶段有不同的轨道分配结果,总体布线结果中iroute的顺序是S1,S3和S2。因此,在图3(b)中通孔的位置由S1和S2确定,而在图3(c)和图3(d)中通孔的位置由S1和S3确定。
图3(b)为正交连接子模型的实施情况,总体布线结果中通孔V的位置为S1和S2的轨道的交点,即V1。S3不决定通孔的位置并且不能直接连接到V1,所以通过增加一个新的iroute S4连接到V1。S3和S4通过通孔V2连接。
图3(c)为平行直连子模型的实施情况,总体布线结果中通孔V的位置由S1和S3确定,并且S1和S3所在轨道的坐标相同可以直接连接。总体布线中通孔V确定为S1和S3所在轨道的交点,即V1。V1的垂直坐标确定为V1所在的总体布线单元中一个拥有最少iroute数量的垂直轨道的坐标,在图3(c)中设为轨道T1。S2不决定V1的位置,所以通过新增一个irouteS4连接到V1。
图3(d)为平行非直连子模型的实施情况,总体布线结果中通孔V的位置由S1和S3确定。但是,S1和S3所在轨道的坐标不同,不能直接连接,需要新增加一个iroute S4连接在一起。S4被分配到通孔所在的总体布线单元中具有最少iroute数量的轨道上。在图3(d)中,假设S4被分配到了轨道T1上。总体布线结果中的通孔的位置被确定为V1。S2不决定通孔的位置,通过新增加iroute S5连接到通孔V1上。
Iroute连接过程按照总体布线结果中iroute的顺序进行,使用轨道分配算法中的通孔位置模型完成连接。图4所示为具体的iroute连接过程。图4(a)给出了一个总体布线结果。假设iroute连接的顺序为S1,S2和S3。先连接S1,如图4(b)所示,通孔的水平坐标为S1所在轨道的坐标,而通孔的垂直坐标确定为所在总体布线单元中具有最少iroute数量的轨道的坐标,在图中选择了轨道T1。S1的右端点的坐标确定为通孔的坐标,即V1的坐标。接着连接S2,当前有两个iroute,则套用通孔位置模型重新确定准确的通孔位置。如图4(c)所示,套用正交连接子模型,通孔的位置确定为S1和S2所在轨道的交点,即V1。同时,S1和S2连接到V1,确定了S1和S2的坐标。最后,连接S3,如图4(d)所示。S3不决定通孔的位置,通孔的位置已经被确定为V1,通过新增加iroute S4将S3连接到V1上。
表1给出了不同iroute连接策略的对比,B为本发明给出的轨道分配算法,A与B相似,但是去除了初始分配阶段与重叠削减阶段之间的iroute连接阶段。OC表示iroute之间的重叠代价,BC表示iroute与障碍之间的重叠代价。通过实验对比可以发现,本实施例的轨道分配算法能平均减少4.29%的OC和7.62%的BC,说明本实施例的轨道分配算法的两阶段iroute连接是非常有效的。虽然B相比于A付出了一定的时间代价,但是增加的时间是可以接受的。
表1不同iroute连接策略的对比情况
3.重叠削减阶段:该阶段引入NTA中使用的协商机制迭代地拆除和重新分配有着严重重叠的iroute。先对所有iroute按照拆除代价从大到小排序,然后依次拆除重分配每个iroute。对于每个被拆除的iroute,将其分配到通道内具有最小分配代价的轨道上。
在轨道t上的iroute ir的拆除代价定义如下:
overlapCost(ir,t)+historyCost(ir,t)
其中,overlapCost(ir,t)和historyCost(ir,t)分别是重叠代价和历史代价。历史代价的定义与NTA中介绍的相同,都是作为协商机制重要的参考。
将iroute ir分配到轨道t上的分配代价定义如下:
0.1×wlCost(ir,t)+α1×overlapCost(ir,t)+
β×blkCost(ir,t)+historyCost(ir,t)
其中,wlCost(ir,t),overlapCost(ir,t),blkCost(ir,t)和historyCost(ir,t)分别表示将ir分配到轨道t上的线长代价,重叠代价,障碍代价和历史代价。α1和β是用户自定义参数。α1被初始化为0.1并且每迭代|Ip|/k次α1的值就会增加0.1,Ip表示在轨道p中iroute的数量,k在轨道分配算法中被设置为10。β需要被设置为一个很大的数字以尽可能地减小iroute与障碍的重叠,在轨道分配算法中被设置为100000。
4.引脚连接阶段:
5(连接组件)连接组件包括iroute、通孔和引脚。属于一个线网的连接组件需要连接在一起以保证线网的连通性。
6(2维距离)将属于一个线网的连接组件垂直投影到同一金属布线层,投影平面上连接组件之间的曼哈顿距离即为2维距离。
在引脚连接阶段,轨道分配算法定义了一种连接组件之间距离的计算方法,使得连接组件之间的连接有明确的指标。在这种计算方法中,连接组件之间的距离均为2维距离。引脚和通孔投影到平面上均为一个点,而iroute投影到平面上为一条线段。图5给出了在投影平面上两个点之间的距离计算方法。图5(a)中,矩形表示通孔,圆形表示引脚,虚线的长度即为引脚和通孔之间的距离。图5(b)中,圆形表示引脚,虚线的长度即为引脚之间的距离。图6所示为引脚与iroute之间的距离。矩形表示iroute,圆形表示引脚,虚线的长度即为引脚与iroute之间的距离。图6给出了三种不同情况下引脚与iroute之间距离的计算方法。
当连接一个总体线网时,对于每个引脚,使用轨道分配算法定义的距离计算方法计算出该引脚到其他连接组件之间的距离,然后将引脚连接到距离最近的组件。通过这种方式可以尽可能地减少新增iroute的数量和iroute重叠的长度。图7(a)和图7(b)给出了在投影平面上连接一个线网引脚的示意图。圆形表示引脚,矩形表示通孔,粗线段表示iroute。在图7(a)中,粗虚线的长度就是每个引脚到最近的连接组件之间的距离。在图7(b)中,所有引脚通过粗线段,即iroute,连接到距离最近的连接组件上。
当连接一个局部线网时,所有的引脚都被连接到一个主干上。这个主干在初始分配阶段生成,并参与到初始分配阶段以及重叠削减阶段的轨道分配过程中。通过引入局部线网,轨道分配的准确性得到提高。由于有些引脚不在轨道上,所以需要先将引脚连接到轨道上,再将引脚连接到主干上。如果局部线网的主干在第二层,方向为垂直方向,则局部线网的每个引脚连接到第三层距离引脚最近的轨道上,然后再水平连接到主干。如果局部线网的主干在第三层,方向为水平方向,则局部线网的每个引脚连接到第二层距离引脚最近的轨道上,然后再垂直连接到主干上。局部线网的引脚连接如图7(c)所示。矩形表示通孔,圆形表示引脚,垂直粗线段表示在初始分配阶段生成的主干,水平粗线段表示将引脚连接到主干的iroute。
最终,综合上述步骤,以优化iroute的重叠代价为目标,同时考虑局部线网、通孔位置和引脚连通性问题,构建了一种高效的轨道分配算法。为了验证该算法的有效性,将该算法的实验结果提出的TraPL做了对比,如表2所示。OC表示iroute之间的重叠代价,BC表示iroute与障碍之间的重叠代价。通过对比可以发现,该算法相比于TraPL可以平均减少39.66%的OC和39.82%的BC。TraPL过于依赖iroute的分配顺序,逐线网的分配方法非常不灵活,虽然它能找到局部最优解却难以找到全局最优解。由于本实施例的算法中引入了初始分配阶段和重叠削减阶段,因此本实施例的算法是非常灵活的并且能够有效地优化OC和BC。同时,相比于TraPL,本实施例的算法可以平均加速约11.88倍,是非常高效的。
在本实施例的算法中引入了NTA算法,因此,本实施例的轨道分配算法与NTA做了对比,如表3所示。OC表示iroute之间的重叠代价,BC表示iroute与障碍之间的重叠代价。通过对比可以发现,NTA忽略了通孔位置和引脚连通性问题,忽略了大量潜在的重叠,是不精确的。本实施例的轨道分配算法虽然付出了一定的时间考虑通孔位置和引脚连通性问题,但是增加的时间是可以接受的。
表2 TraPL与本发明的轨道分配算法的对比情况
表3 NTA与本发明的轨道分配算法的对比情况
较佳的,本实施例目标是在允许重叠发生的情况下完成所有的iroute分配。通过同时考虑局部线网、通孔位置和引脚连通性问题,本实施例可以得到每个线网所有引脚的准确连接结果。同时,本实施例使用了一种协商机制通过最小化iroute重叠的长度尽可能地解决总体布线和详细布线之间不匹配的问题。由此,本实施例可以得到优化重叠长度的精确布线结果。在详细布线中,可以通过拆线重绕等方法对轨道分配的结果做出优化以获得满足设计规则约束的布线结果。通过实验对比,本实施例可以用较少的时间在轨道分配阶段有效地减少iroute重叠的长度。所以,本实施例产生的结果可以作为很好的输入引入到详细布线阶段。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (7)
1.一种高效的详细布线驱动轨道分配方法,其特征在于:包括以下步骤:
步骤S1:提供总体布线结果并进行初始分配:利用轨道分配算法NTA中的逐通道处理的贪心算法将每个iroute都分配到相应的轨道上;
步骤S2:进行iroute连接:利用通孔位置模型对步骤S1中分配到相应轨道上的iroute进行连接;
步骤S3:进行iroute的重叠消减:利用轨道分配算法NTA中的协商机制,在每一个通道中,iroute按照拆除代价从大到小排序,然后按照这个顺序迭代地拆除iroute并将iroute重新分配到分配代价最小的轨道上;
步骤S4进行线网的引脚连接,将每一个引脚连接到iroute或通孔上;输出轨道分配结果,即完成所有线网连接后的布线图;
步骤S3中所述拆除代价的公式为:
overlapCost(ir,t)+historyCost(ir,t)
其中,overlapCost(ir,t)和historyCost(ir,t)分别是重叠代价和历史代价,t表示轨道t,ir表示轨道t上的iroute ir;
步骤S3中所述将iroute重新分配到轨道上的分配代价公式为:
0.1×wlCost(ir,t)+α1×overlapCost(ir,t)+β×blkCost(ir,t)+historyCost(ir,t)
其中,t表示轨道t,ir表示轨道t上的iroute ir;wlCost(ir,t)、overlapCost(ir,t)、blkCost(ir,t)和historyCost(ir,t)分别表示将ir分配到轨道t上的线长代价、重叠代价、障碍代价和历史代价;α1和β是自定义参数;α1被初始化为0.1并且每迭代|Ip|/k次α1的值就会增加0.1,Ip表示在轨道p中iroute的数量,k为10;β为100000。
2.根据权利要求1所述的一种高效的详细布线驱动轨道分配方法,其特征在于:步骤S1具体为:在每一个通道中,对属于该通道的iroute按照长度从长到短排序,然后按照这个顺序将每个iroute分配到具有最小分配代价的轨道上。
3.根据权利要求2所述的一种高效的详细布线驱动轨道分配方法,其特征在于:所述分配代价的计算公式为:
wlCost+α×overlapCost+β′×blkCost
其中,wlCost,overlapCost和blkCost分别表示线长代价,重叠代价和障碍代价,α和β′是自定义参数,分别被设置为0.1和1000000。
4.根据权利要求1所述的一种高效的详细布线驱动轨道分配方法,其特征在于:步骤S2具体为:在所述通孔位置模型中,通孔的位置由两个iroute来确定;如果连接的iroute的数量超过两个的通孔,则由其中的两个iroute确定通孔的位置,其余iroute需要连接到确定位置的通孔上;确定通孔位置的两个iroute从总体布线结果中按预设顺序选出。
5.根据权利要求4所述的一种高效的详细布线驱动轨道分配方法,其特征在于:所述的通孔位置模型包括正交连接子模型、平行直连子模型和平行非直连子模型;
在所述正交连接子模型中,通孔的位置由两个正交的iroute确定;这两个iroute的方向是所在的金属布线层的走线方向;
在所述平行直连子模型中,通孔的位置由两个平行的iroute确定,并且这两个iroute通过一个通孔直接相连;这两个iroute的方向是所在的金属布线层的走线方向;
在所述平行非直连子模型中,通孔的位置由两个平行的iroute确定,但是这两个iroute不能通过一个通孔直接相连,需要通过增加一个新的正交的iroute连接在一起;这两个iroute的方向是所在的金属布线层的走线方向。
6.根据权利要求1所述的一种高效的详细布线驱动轨道分配方法,其特征在于:步骤S4的具体为:当连接一个总体线网时,对于每个引脚,利用连接组件距离计算公式计算出该引脚到其他连接组件之间的距离,然后将引脚连接到距离最近的组件,用以减少新增iroute的数量和iroute重叠的长度。
7.根据权利要求6所述的一种高效的详细布线驱动轨道分配方法,其特征在于:所述连接组件包括iroute、通孔和引脚。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811598401.6A CN109684731B (zh) | 2018-12-25 | 2018-12-25 | 一种高效的详细布线驱动轨道分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811598401.6A CN109684731B (zh) | 2018-12-25 | 2018-12-25 | 一种高效的详细布线驱动轨道分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684731A CN109684731A (zh) | 2019-04-26 |
CN109684731B true CN109684731B (zh) | 2022-06-14 |
Family
ID=66188415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811598401.6A Active CN109684731B (zh) | 2018-12-25 | 2018-12-25 | 一种高效的详细布线驱动轨道分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684731B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147632B (zh) * | 2019-05-30 | 2020-11-10 | 福州大学 | 一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法 |
CN111709214B (zh) * | 2020-06-18 | 2022-06-14 | 福州大学 | 基于离散粒子群优化的轨道规划方法 |
CN112668212B (zh) * | 2020-09-02 | 2023-03-24 | 国网内蒙古东部电力有限公司检修分公司 | 基于有限元的不同土壤模型下接地极溢流特性分析方法 |
CN112560389B (zh) * | 2020-12-24 | 2022-07-08 | 福州大学 | 一种基于轨道分配的详细布线方法 |
CN112861466B (zh) * | 2021-02-04 | 2022-08-23 | 深圳华大九天科技有限公司 | 一种布线轨道分配方法、电子设备及计算机可读存储介质 |
CN113887166A (zh) * | 2021-10-12 | 2022-01-04 | 福州大学 | 一种基于整数线性规划和两阶段划分策略的轨道分配方法 |
CN115238639B (zh) * | 2022-09-23 | 2023-01-20 | 深圳鸿芯微纳技术有限公司 | 全局布线的预测方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997034245A1 (en) * | 1996-03-12 | 1997-09-18 | Avanti Corporation | Method for optimizing track assignment in a grid-based channel router |
CN103902774A (zh) * | 2014-03-31 | 2014-07-02 | 福州大学 | X结构下超大规模集成电路总体布线方法 |
CN104750885A (zh) * | 2013-12-29 | 2015-07-01 | 北京华大九天软件有限公司 | 集成电路版图布线中引脚布线资源预分配方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9390216B2 (en) * | 2014-10-20 | 2016-07-12 | Oracle International Corporation | System and method for obstacle-avoiding signal bus routing |
-
2018
- 2018-12-25 CN CN201811598401.6A patent/CN109684731B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997034245A1 (en) * | 1996-03-12 | 1997-09-18 | Avanti Corporation | Method for optimizing track assignment in a grid-based channel router |
CN104750885A (zh) * | 2013-12-29 | 2015-07-01 | 北京华大九天软件有限公司 | 集成电路版图布线中引脚布线资源预分配方法 |
CN103902774A (zh) * | 2014-03-31 | 2014-07-02 | 福州大学 | X结构下超大规模集成电路总体布线方法 |
Non-Patent Citations (1)
Title |
---|
RDTA: An Efficient Routability-Driven Track Assignment Algorithm;Genggeng Liu et.al;《GLSVLSI "19 - PROCEEDINGS OF THE 2019 ON GREAT LAKES SYMPOSIUM ON VLSI》;20190511;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109684731A (zh) | 2019-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684731B (zh) | 一种高效的详细布线驱动轨道分配方法 | |
JP2831703B2 (ja) | 自動フロアプラン演算装置 | |
CN110147632B (zh) | 一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法 | |
CN110795907A (zh) | 一种考虑布线资源松弛的X结构Steiner最小树构造方法 | |
US8782588B2 (en) | Multiple level spine routing | |
Suaris et al. | A quadrisection-based combined place and route scheme for standard cells | |
CN112183015B (zh) | 一种面向深度神经网络的芯片布图规划方法 | |
CN110032808B (zh) | 基于混合离散粒子群优化的轨道分配器构建方法 | |
Shi et al. | TraPL: Track planning of local congestion for global routing | |
CN115526140A (zh) | 一种考虑先进制程约束和单元移动的全局布线方法 | |
CN114564905A (zh) | 一种基于迭代禁忌搜索算法的电路示意图布局布线方法 | |
CN112560389A (zh) | 一种基于轨道分配的实用详细布线方法 | |
CN112989749B (zh) | 一种集成电路版图布线中引脚访问方法及装置 | |
CN113987996A (zh) | 模拟芯片电路绕线方法 | |
US5770481A (en) | Wiring designing apparatus for automatically designing layout of integrated circuit and wiring designing method therefor | |
Kao et al. | Cross point assignment with global rerouting for general-architecture designs | |
US4783749A (en) | Basic cell realized in the CMOS technique and a method for the automatic generation of such a basic cell | |
CN111062180B (zh) | 一种fpga布线方法及装置 | |
JP2010073073A (ja) | レイアウト設計方法、装置及びプログラム | |
CN113887166A (zh) | 一种基于整数线性规划和两阶段划分策略的轨道分配方法 | |
Singhar et al. | Optimizing Mixed Size & Large Scale Block Placement Using Greedy Approach | |
JP5900540B2 (ja) | レイアウト設計方法及びレイアウト設計支援プログラム | |
CN117194412A (zh) | 一种信标自动布置方法、设备及介质 | |
JPH10135339A (ja) | 自動配置配線方法 | |
Bhowal et al. | High performance multilayer routing for VLSI circuit synthesis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230110 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: No.2 Xueyuan Road, Fuzhou University Town, Shangjie Town, Minhou County, Fuzhou City, Fujian Province Patentee before: FUZHOU University |