CN110795907B - 一种考虑布线资源松弛的X结构Steiner最小树构造方法 - Google Patents
一种考虑布线资源松弛的X结构Steiner最小树构造方法 Download PDFInfo
- Publication number
- CN110795907B CN110795907B CN201910937860.0A CN201910937860A CN110795907B CN 110795907 B CN110795907 B CN 110795907B CN 201910937860 A CN201910937860 A CN 201910937860A CN 110795907 B CN110795907 B CN 110795907B
- Authority
- CN
- China
- Prior art keywords
- edge
- connection mode
- particle
- steiner
- tree
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Genetics & Genomics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Physiology (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及一种考虑布线资源松弛的X结构Steiner树构造方法,在传统的直角Steiner树的基础上,设计了5种有效的加强策略,包括(1)改变了传统布线结构,增加新的布线方向;(2)限制Steiner树在障碍中的布线长度,充分利用了障碍内可布线资源;(3)使用了一种结合经典遗传算子的特殊粒子群优化算法;(4)建立了为整个算法流程提供快速信息查询的查找表,(5)设计了角点选取和精炼两个启发式策略,以进一步提高布线树的质量。在标准测试电路的仿真实验中表明,考虑布线资源松弛的X结构Steiner树构造方法相较于同类算法,充分利用了障碍内可布线资源,有效缩短了总布线长度,取得最佳的总布线长度。
Description
技术领域
本发明涉及集成电路计算机辅助设计技术领域,特别是一种考虑布线资源松弛的X结构Steiner最小树构造方法。
背景技术
超大规模集成电路(very large scale integration,VLSI)设计中的布线问题一直是研究人员关注的焦点。这是VLSI物理设计过程中最重要的步骤之一。目前,关于布线树的相关工作主要集中在曼哈顿结构,但基于曼哈顿结构在进行线长与时延的优化时,由于其布线走向有限,不能充分地利用布线区域,导致互连线资源冗余,故其优化能力有限。因此,有必要从根本入手,改变传统的曼哈顿结构,故研究人员开始尝试以非曼哈顿结构为基础模型进行布线,实现芯片整体性能的优化。
随着集成电路技术的发展,现代VLSI设计已经转向系统单晶片模型,芯片密度大大增加,物理设计过程中出现越来越多的障碍,例如一些预先布线线网,宏单元以及知识产权保护模块,这就使得绕障Steiner树成为人们研究的热点。在实际设计中,可布线区域通常包含多个布线层,设备往往只占据了设备层和某几个较低的金属层,并没有完全阻挡导线。在较高的层上布线时,导线可能会穿过较大的障碍,但中继器不能放置在障碍内,此时增加线长确实可以绕过障碍,但会导致电容、转换以及时序违规。因此,需要在布线过程中考虑松弛布线资源,使导线可以在一定程度穿过障碍,从而通过限制导线的长度以达到时序收敛。
在基于曼哈顿结构的模型中,已经有很多关于此类问题,即限制长度的直角Steiner最小树(length-restricted rectilinear Steiner minimum tree problem,LRRSMT)的相关研究,而在基于非曼哈顿结构的模型中,对于此类问题,即限制长度的X结构Steiner最小树(length-restricted X-architecture Steiner minimum tree problem,LRXSMT)的研究尚未有人开展。
作为基于群智能的全局优化算法,粒子群优化(particle swarm optimization,PSO)相较于其他进化算法,具有执行简单,能够快速收敛到一个较好解等优势,已被成功应用于很多研究领域和实际工程问题。
发明内容
有鉴于此,本发明的目的是提出一种考虑布线资源松弛的X结构Steiner最小树构造方法,充分利用了障碍内可布线资源,有效缩短了总布线长度,取得最佳的总布线长度。
本发明采用以下方案实现:一种考虑布线资源松弛的X结构Steiner最小树构造方法,包括以下步骤:
步骤S1:初始化:为芯片上的每个引脚和障碍设置唯一的序列号,使用Prim算法为引脚构造最小生成树,并为最小生成树中存在邻接关系的两个引脚之间随机分配一种连接方式;此时随机生成n个所述的最小生成树即生成了粒子群n为种群中粒子的数量,并为所述粒子群中的每个粒子添加一个额外变量,即适应值;除了所述引脚外的连接点,称为伪Steiner点;
步骤S2:建立查找表:建立第一查找表与第二查找表:所述第一个查找表用以记录了每条边穿过的障碍数量和障碍序号;所述第二个查找表用以记录每条边在其所穿过的每个障碍中的走线长度;
步骤S3:利用PSO算法进行粒子群优化搜索,选择全局最优粒子gf作为最终的x结构布线树;
步骤S4:判断gf中所有的边是否都满足松弛条件;若满足则直接执行步骤S5;否则进行角点选取后再执行步骤S5;
步骤S5:进行精炼:对于每条边,枚举它的4种连接方式,并选择使整个粒子获得最小适应值的连接方式,同时查询两张查找表,保证该边满足松弛条件。
进一步地,步骤S1中所述的连接方式包括以下四种连接方式:
令P=(x1,y1),Q=(x2,y2),P和Q分别是一条边L的两个顶点,其中x1<x2;
连接方式0:首先由曼哈顿边从P连接到伪Steiner点S,然后从S引非曼哈顿边连接到Q;
连接方式1:首先以非曼哈顿边从P连接到伪Steiner点S,然后从S引曼哈顿边连接到Q;
连接方式2:首先以竖直边从P连接到伪Steiner点S,然后从S引水平边连接到Q;
连接方式3:首先以水平边从P连接到伪Steiner点S,然后从S引竖直边连接到Q。
进一步地,所述步骤S1还包括以下内容:
为每个引脚和障碍设置唯一的序列号,然后使用一组最小生成树边来表示候选布线树,并向每条边添加一个额外变量,表示伪Steiner点所对应的连接方式,用以将其转换为X结构Steiner树;如果线网中有n个引脚,则最小生成树将包括n-1条边和n-1个伪Steiner点,以及一个额外变量,该变量表示粒子的适应值;因此,一个粒子的长度为3*(n-1)+n。
进一步地,所述步骤S2具体包括以下内容:在建立第一查找表时,令p={p1,p2,p3...pn}为线网中的一组引脚,并且b={b1,b2,b3...bm}为芯片上的一组障碍;对于每对引脚pi和pj,计算边pipj(c)穿过的障碍的数量,并将所有障碍记录为集合{Bk},其中c表示引脚pi和pj之间的连接方式;
在建立第二查找表时,令p={p1,p2,p3...pn}为线网中的一组引脚,并且b={b1,b2,b3...bm}为芯片上的一组障碍;对于每对引脚,pi和pj计算边pipj(c)穿过的障碍的数量,并将所有这些障碍记录为集合{Bk},其中c表示引脚pi和pj之之间的连接方式;然后分别计算pipj(c)在其穿过的每个障碍中的走线长度。
进一步地,所述步骤S3具体包括以下步骤:
步骤S31:随机产生一个PSO初始解;
步骤S32:通过变异和交叉两种操作来更新粒子的位置;
步骤S33:通过计算适应度值来评估当前粒子是否保留,若当前粒子的适应值是最小的,则保留;否则,不保留;
步骤S34:判断是否达到最大迭代次数,若是则得到全局最优粒子即适应值最小的粒子;否则返回步骤S32。
进一步地,所述步骤S32的具体内容为:
粒子的更新公式表示为:
其中F1表示变异操作,而F2和F3表示交叉操作;
粒子的速度表示为:
其中ω表示变异概率,且r1是区间[0,1]上的随机数;
粒子与自身历史最佳位置进行交流的过程如下所示:
其中c1表示粒子与自身历史最佳位置的交叉概率,且r2是区间[0,1]上的随机数;
粒子与种群最佳位置进行交流的过程如下所示:
其中c2表示粒子与种群最佳位置的交叉概率,且r3是区间[0,1]上的随机数。
进一步地,步骤S33的具体内容为:
假设L(r)等于r的总长度,基于惩罚机制的适应度函数为:
penalty=1+(lbarr-lrelax)*0.001
(6)
公式e1表示连通边;e2表示伪连通边;e3表示非连通边;n表示粒子中所有边违反松弛条件的总次数;lbarr代表该条边在障碍中走线的长度,而lrelax代表阈值L;
布线的总代价为:
公式中的e4表示Fixed_伪连通边;e5表示Fixed_非连通边。
进一步地,步骤S4中所述进行角点选取具体包括如下步骤:
步骤SA:对于gf的一条边pq,通过查找表来判断该条边是否满足松弛条件;如果是,请重复此步骤以检查下一个边,直到检查最后一条边;否则,转到步骤SB;
步骤SB:通过查找表来检查边pq的连接方式0至连接方式3;如果它们中的任何一个满足松弛条件,则用当前连接方式替换原始连接方式。否则,删除边pq,然后转到步骤SC;
步骤SC:通过查找表列出pq穿过的所有障碍,再根据p与障碍中心之间的距离以非递减顺序对这些障碍进行排序;假设排序列表是Bk={Bk,1,Bk,2,...,Bk,n},设当前起始点s=p,并且当前障碍B=Bk,j,j=1;
步骤SD:从Bk中选择最接近直线sq的角点c,优先使用连接方式0或连接方式1连接sc,并将sc的连接信息添加到查找表中;然后设置s=c;如果j=n转到步骤SE,否则重复步骤SD,令B=Bk,j+1;
步骤SE:计算sq的连接信息,并将该信息添加到查找表中;然后根据连接方式0和连接方式1的标准连接sq。
进一步地,步骤S5中所述的精炼,具体包括以下步骤:
步骤Sa:扫描粒子gf的每条边;
步骤Sb:对于当前边,枚举它的4种连接方式,并选择使整个粒子获得最小适应值的连接方式,同时应查询两张查找表,保证该边满足松弛条件。
与现有技术相比,本发明有以下有益效果:
本发明充分利用了障碍内可布线资源,有效缩短了总布线长度,取得最佳的总布线长度。
附图说明
图1是本发明实施例的伪Steiner点s对用的四种连接方式图,其中图1(a)为连接方式0,图1(b)为连接方式1,图1(c)为连接方式2,图1(d)为连接方式3。
图2是本发明实施例的生成查找表的原理示意图,其中,图2(a)为连接方式2和连接方式3,图2(b)为连接方式0和连接方式1。
图3是本发明实施例的PSO搜索过程中变异操作的原理示意图。
图4是本发明实施例的PSO搜索过程中交叉操作的原理示意图。
图5是本发明实施例的工作定义的连通边示意图,其中图5(a)和图5(b)分别为连通边的两种不同情况。
图6是本发明实施例的工作定义的伪连通边示意图,其中图6(a)和图6(b)分别为连通边的两种不同情况。
图7是本发明实施例的工作定义的非连通边示意图。
图8是本发明实施例的证明引理1的示意图,其中图8(a)为粒子p更新前,图8(b)为粒子p更新后。
图9是本发明实施例的角点选取策略的示意图,其中图9(a)、9(b)、9(c)和9(d)分别表示角点选取策略过程的不同阶段。
图10是本发明实施例的一个二度引脚子结构的例子。
图11是本发明实施例的一个精炼策略的例子。
图12是本发明实施例的流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
如图1所示,本实施例提供了一种考虑布线资源松弛的X结构Steiner最小树构造方法,包括以下步骤:
步骤S1:初始化:为芯片上的每个引脚和障碍设置唯一的序列号,使用Prim算法为引脚构造最小生成树,并为最小生成树中存在邻接关系的两个引脚之间随机分配一种连接方式(即四种连接方式之一,见图1);此时随机生成n个所述的最小生成树即生成了粒子群n为种群中粒子的数量,并为所述粒子群中的每个粒子添加一个额外变量,即适应值;除了所述引脚外的连接点,称为伪Steiner点;
步骤S2:建立查找表:建立第一查找表与第二查找表:所述第一个查找表用以记录了每条边穿过的障碍数量和障碍序号;所述第二个查找表用以记录每条边在其所穿过的每个障碍中的走线长度;
步骤S3:利用PSO算法进行粒子群优化搜索,选择全局最优粒子gf作为最终的x结构布线树;
步骤S4:判断gf中所有的边是否都满足松弛条件;若是则直接执行步骤S5;否则进行角点选取后再执行步骤S5;
步骤S5:进行精炼:对于每条边,枚举它的4种连接方式,并选择使整个粒子获得最小适应值的连接方式,同时查询两张查找表,保证该边满足松弛条件。
较佳的,在本实施例中,建立查找表:虑到现代芯片的密度急剧增加,问题的规模变得越来越大。如果算法每次计算重复的信息,这无疑会对整个算法的性能产生负面影响。因此,预先建立查找表,该策略可以为整个算法流程提供快速的信息查询。在该步骤中,分别生成两个查找表,第一个查找表记录了每条边穿过的障碍数量和障碍序号,第二个查找表记录了每条边在其所穿过的每个障碍中的走线长度。
较佳的,在本实施例中,PSO搜索:作为基于群智能的全局优化算法,粒子群优化(particle swarm optimization,PSO)相较于其他进化算法,具有执行简单,能够快速收敛到一个较好解等优势,已被成功应用于很多研究领域和实际工程问题。PSO算法的初始原型是用于解决连续型问题的,但本实施例所解决问题属于离散型问题。为此,设计了两种基于并查集的遗传算子,分别对应于变异操作和交叉操作。此外,在PSO算法的模型中,适应度函数是最重要的部分之一。因为本实施例的优化目标是总线长,很明显使用布线树的总长度作为一个粒子的适应值是一个很好的选择,它可以直接反映一个粒子的卓越程度,但由于PSO算法的随机性,在迭代过程中很可能出现一些违反约束的解方案,而在这些违反约束的解方案中,违反的严重程度也各自不同。因此设计了一个惩罚策略,用来对这些违反约束条件的解方案施以相应的惩罚,即惩罚目标函数,达到从目标函数上一定程度标识违反约束的程度,并同时保留这类解方案不被随意删除,在后续的进化过程中有机会呈现该类解方案所保留的局部最佳信息,增强种群的多样性。
较佳的,在本实施例中,角点选取:在该步骤中,如果需要,选取一些障碍角点以确保全局最佳粒子gf的所有边能够满足松弛条件.注意,对于任意一条边,如果它没有穿过障碍,或者在其穿过的每个障碍物内的走线长度都不超过L,称这条边满足松弛条件.
较佳的,在本实施例中,精炼:在该步骤中,不再只关注局部的最优线长,而是以全局的角度来进一步增加公共边的长度,从而优化总线长。
在本实施例中,步骤S1中所述的连接方式包括以下四种连接方式:
令P=(x1,y1),Q=(x2,y2),P和Q分别是一条边L的两个顶点,其中x1<x2;
连接方式0:首先由曼哈顿边从P连接到伪Steiner点S,然后从S引非曼哈顿边连接到Q;
连接方式1:首先以非曼哈顿边从P连接到伪Steiner点S,然后从S引曼哈顿边连接到Q;
连接方式2:首先以竖直边从P连接到伪Steiner点S,然后从S引水平边连接到Q;
连接方式3:首先以水平边从P连接到伪Steiner点S,然后从S引竖直边连接到Q。
在本实施例中,所述步骤S1还包括以下内容:
为每个引脚和障碍设置唯一的序列号,然后使用一组最小生成树边来表示候选布线树,并向每条边添加一个额外变量,表示伪Steiner点所对应的连接方式,用以将其转换为X结构Steiner树;如果线网中有n个引脚,则最小生成树将包括n-1条边和n-1个伪Steiner点,以及一个额外变量,该变量表示粒子的适应值;因此,一个粒子的长度为3*(n-1)+n。
例如,粒子可以表示为以下数字串:1 3 0 2 3 2 3 4 3 3 5 1 28.2,其中28.2代表粒子的适应值,即线长。前三位数字1 3 0表示一条边,即根据连接方式0来连接引脚1和引脚3。因为初始化这一步骤是基于最小生成树的,所以使用简单快速的Prim算法来构建最小生成树。应注意,每条边的初始连接方式是从四个给定的连接方式中随机选择的,因此可能穿过障碍。
详细步骤为:
步骤1:为每个引脚和障碍设置唯一的序列号,使用Prim算法为引脚构造最小生成树。
步骤2:为每条最小生成树边随机分配一种连接方式。如1 3 0,其中1 3表示引脚1和引脚3,0表示使用连接方式0来连接引脚1和引脚3。
步骤3:生成粒子群,并为每个粒子添加一个额外变量。如1 3 0 2 3 2 3 4 3 3 51 28.2表示:采用连接方式0连接引脚1和引脚3,采用连接方式2连接引脚2和引脚3,采用连接方式3连接引脚3和引脚4,采用连接方式1连接引脚3和引脚5。这4条边的总长度是28.2(即这个粒子的适应值)。
较佳的,在本实施例中,查找表的设计:
性质1.查找表有助于粒子适应值的正确评估。
在PSO搜索阶段,当评估运动之后新生成的粒子时,除了计算粒子中每条边的长度之外,还应通过查找表检查每条边是否满足松弛条件,从而给每个粒子一个适当的适应值,使得算法可以选择正确的全局最优粒子和个体最优粒子。
性质2.查找表使算法有效地计算各个端点的最优结构。
在进行精炼的过程中,我们不断地改变某些边的连接方式,尽可能增加公共边的长度以获得最优结构,从而减少总线长。需要保证调整后的边仍然满足约束条件,此信息需要通过查找表获得。此外,在实施角点选取策略时,必须确定最终的全局最优粒子gf的每条边是否都满足了松弛条件,此信息也需要计算。
在本实施例中,所述步骤S2具体包括以下内容:在建立第一查找表时,令p={p1,p2,p3...pn}为线网中的一组引脚,并且b={b1,b2,b3...bm}为芯片上的一组障碍;对于每对引脚pi和pj,计算边pipj(c)穿过的障碍的数量,并将所有障碍记录为集合{Bk},其中c表示引脚pi和pj之间的连接方式;
图2显示了原理。线网中有2个引脚,芯片上有3个障碍。以引脚P为例,图2(a)显示了引脚P与引脚Q基于连接方式2和连接方式3的连接图,而图2(b)包括了连接方式0和连接方式1。可以看出一些线段穿过障碍而其他线则没有。基于图2,可以容易地生成引脚P穿过的障碍的记录。如表1所示,很容易查询关于引脚P的所有连接信息。例如,当引脚P基于连接方式0连接到引脚Q时,边穿过障碍b1和障碍b3。但是,当引脚P根据连接方式1连接到引脚Q时,绕开了所有障碍。
在建立第二查找表时,令p={p1,p2,p3...pn}为线网中的一组引脚,并且b={b1,b2,b3...bm}为芯片上的一组障碍;对于每对引脚,pi和pj计算边pipj(c)穿过的障碍的数量,并将所有这些障碍记录为集合{Bk},其中c表示引脚pi和pj之之间的连接方式;然后分别计算pipj(c)在其穿过的每个障碍中的走线长度。
例如,当引脚P基于连接方式0连接到引脚Q时,边在障碍b1和障碍b3中走线的长度分别为1和2.8。
表1查找表一示意
表2查找表二示意
在本实施例中,所述步骤S3具体包括以下步骤:
步骤S31:随机产生一个PSO初始解;
步骤S32:通过变异和交叉两种操作来更新粒子的位置;
步骤S33:通过计算适应度值来评估当前粒子是否保留,若当前粒子的适应值是最小的,则保留;否则,不保留;
步骤S34:判断是否达到最大迭代次数,若是则得到全局最优粒子即适应值最小的粒子;否则返回步骤S32。
在本实施例中,所述步骤S32的具体内容为:
粒子的更新公式表示为:
其中F1表示变异操作,而F2和F3表示交叉操作;
粒子的速度表示为:
其中ω表示变异概率,且r1是区间[0,1]上的随机数;
粒子与自身历史最佳位置进行交流的过程如下所示:
其中c1表示粒子与自身历史最佳位置的交叉概率,且r2是区间[0,1]上的随机数;
粒子与种群最佳位置进行交流的过程如下所示:
其中c2表示粒子与种群最佳位置的交叉概率,且r3是区间[0,1]上的随机数。
较佳的,在本实施例中,步骤S32中所述通过变异和交叉两种操作来更新粒子的位置的具体内容为:
变异操作:从生成树中随机删除边,并将其替换为另一个随机生成的边,以确保生成树完整连接。我们使用并查集将一个边删除后的所有点记录为两个集合,并分别从两个点集中分别随机选择一个点。然后我们连接两个选定的点以形成新的生成树。原理如图3所示,为简单起见,我们使用直线作为示意图。蓝线表示要删除的边,虚线表示新添加的边。
步骤1:从生成树中随机选择一条边,然后将其删除。
步骤2:扫描剩余边,并使用并查集将所有点分成两个子集。
步骤3:随机选择两个点p1和p2。
步骤4:检查p1和p2是否在同一个子集中,如果是,则返回步骤3。
步骤5:将点p1与点p2连接以形成新的边。
交叉操作:每个引脚都有一个唯一的序列号。当进行交叉操作时,我们根据两个生成树中的引脚序列号对所有边进行顺序排序。然后通过使用并查集将两个排序树中的相同边作为一个集合,将其余部分作为另一个集合。第一组边直接视作新的生成树边。然后,从第二组中随机选择一条边,并将其添加到新的生成树,直到生成完整的树,同时我们通过使用并查集来防止生成环。原理如图4所示,其中蓝线表示两棵生成树之间的不同边,虚线表示新生成树的新边。交叉操作的详细步骤如下所述。
步骤1:从第一个引脚开始,按照引脚的序列号对每条边进行排序,如果匹配,则根据第二个引脚的序列号排序。
步骤2:扫描两个排序的边集。选择与新生成树的边相同的边。同时,将所有其他边复制到另一组S中。
步骤3:从S中随机选择一条边并将其添加到新的生成树,直到形成完整的树。
较佳的,在本实施例中,在执行完变异操作和交叉操作之后,通过适应度值来评估当前粒子是否保留,而适应度值的大小由适应度函数计算得出。
粒子的适应度函数:在PSO算法的基本模型中,适应度函数是最重要的部分之一。适应度函数的准确性与选择历史最佳位置粒子pi和全局最优粒子gi的正确性直接相关。因为我们的优化目标是总线长,很明显使用X结构Steiner树的总长度作为一个粒子的适应值是一个很好的选择,它可以直接反映一个粒子的卓越程度,但由于PSO算法的随机性,在迭代过程中很可能出现一些违反约束的解方案,而在这些违反约束的解方案中,违反的严重程度也各自不同。因此我们设计了一个惩罚策略,用来对这些违反约束条件的解方案施以相应的惩罚,即惩罚目标函数,达到从目标函数上一定程度标识违反约束的程度,并同时保留这类解方案不被随意删除,在后续的进化过程中有机会呈现该类解方案所保留的局部最佳信息,增强种群的多样性。在本方法的XSMT-CWR模型中,一共存在三种边,可定义如下:
定义8(连通边).表示引脚p和q之间的一条边,其不穿过布线平面中的任何障碍或者即使穿过障碍也满足松弛条件。如图5(a)所示,连接p和q的边不穿过任何障碍。又如图5(b)所示,连接p和q的边穿过一个障碍,但满足松弛条件(黄色线段表示该段长度不超过阈值L,即此条边对于当前障碍满足松弛条件)。另外,若p和q之间的一条边穿过多个障碍,但对每个障碍都满足松弛条件,那么这条边也属于连通边。
定义9(伪连通边).表示引脚p和q之间的一条边,其穿过一个或多个障碍,并且不满足松弛条件,但可以仅通过改变p和q之间的连接方式来使其避开障碍或满足松弛条件。如图6(a)和图6(b)所示,p和q之间的一条边穿过一个障碍,但可仅通过改变p和q之间的连接方式使其避开障碍或是满足松弛条件。
定义10(非连通边).表示穿过一个或多个障碍的p和q之间的边,且至少有一个障碍不满足松弛条件,并且无法通过改变p和q之间的连接方式使其满足松弛条件,对于这样的边,需要执行角点选取策略。如图7所示,p和q之间的一条边穿过两个障碍,虽然该边对于较薄的那个障碍满足了松弛条件,但无论怎样改变连接方式,都无法使得该边对于较厚的那个障碍满足松弛条件。
定义11(Fixed_伪连通边).表示在改变引脚p和q之间的连接方式之后从伪连通边获得的p和q之间的边,并且使其满足了松弛条件。
定义12(Fixed_非连通边).表示在引脚p和q之间增加了一个或多个障碍角点作为中间点,以此来避开障碍或使其满足松弛条件。
在本实施例中,步骤S33的具体内容为:
假设L(r)等于r的总长度,基于惩罚机制的适应度函数为:
penalty=1+(lbarr-lrelax)*0.001
(6)
公式e1表示连通边;e2表示伪连通边;e3表示非连通边;n表示粒子中所有边违反松弛条件的总次数;lbarr代表该条边在障碍中走线的长度,而lrelax代表阈值L;
布线的总代价为:
公式中的e4表示Fixed_伪连通边;e5表示Fixed_非连通边。
较佳的,在本实施例中,在PSO搜索过程结束后,选择全局最优粒子gf作为最终的x结构布线树。如果gf的所有边都满足松弛条件,则直接进入步骤S5(精炼),否则,进行角点选取。
性质3.当粒子的边pq穿过障碍时,至多有两种可能的场景。
在经过前几个步骤之后,粒子gf可能非常优秀,每条边都避开了障碍或是满足松弛条件。当然,它也可能很糟糕,有很多边都违反了松弛条件。当粒子的边pq穿过障碍时,pq只可能是伪连通边或非连通边。
性质4.在经过角点选取后,所有的伪连通边和非连通边将会分别转换为Fixed_伪连通边和Fixed_非连通边。在处理伪连通边和非连通边时,两者都可以通过表查找直接识别,其中伪连通边可以通过查找表直接调整至避开障碍或满足松弛条件,从而转化为Fixed_伪连通边。然而,非连通边可能需要更多的方案来处理,因此我们提出角点选取策略以将其转化为Fixed_非连通边。
在本实施例中,步骤S4中所述进行角点选取具体包括如下步骤:
步骤SA:对于gf的一条边pq,通过查找表来判断该条边是否满足松弛条件;如果是,请重复此步骤以检查下一个边,直到检查最后一条边;否则,转到步骤SB;
步骤SB:通过查找表来检查边pq的连接方式0至连接方式3(优先使用连接方式0和连接方式1);如果它们中的任何一个满足松弛条件,则用当前连接方式替换原始连接方式。否则,删除边pq,然后转到步骤SC;
步骤SC:通过查找表列出pq穿过的所有障碍,再根据p与障碍中心之间的距离以非递减顺序对这些障碍进行排序;假设排序列表是Bk={Bk,1,Bk,2,...,Bk,n},设当前起始点s=p,并且当前障碍B=Bk,j,j=1;
步骤SD:从B中选择最接近直线sq的角点c,优先使用连接方式0或连接方式1连接sc,并将sc的连接信息添加到查找表中;然后设置s=c;如果j=n转到步骤SE,否则重复步骤SD,令B=Bk,j+1;
步骤SE:计算sq的连接信息,并将该信息添加到查找表中;然后根据连接方式0和连接方式1的标准连接sq。
在该策略中,步骤2用于处理伪连通边,因为仅需依靠查找表来实现。步骤3-步骤5用于处理非连通边。图9(a)显示了引脚p与引脚q的原始连接图,该条边穿过了B1,B2两个障碍,其对于B1满足松弛条件,对于B2不满足松弛条件,故删除该条边。根据p与B1和B2中心之间的距离,首先检查B1。根据障碍角点与直线pq的距离排序(9(b)),在B1中选择了角点c1作为中转点,因为c1是距离直线pq最近的点。然后检查B2,并由c1连接到c2,依此类推,直至连接至引脚q(9(d))。注意,应将新连接的边的所有连接信息添加到查找表中,因为它对精炼策略很有帮助。
较佳的,在本实施例中,由于PSO搜索过程具有随机性,粒子在更新后的位置可能会变得更差。事实上,粒子以随机模式进行更新是PSO算法具有如此强大的搜索能力的主要原因。此外,在角点选取策略中,优先考虑连接方式0和连接方式1的规则在局部或许是最优的,但在考虑全局的情况下,由于公共边的存在,仍然可能包含或多或少非最优的结构。如图10所示,p是一个二度端点(为了简单起见,仅给出引脚水平距离大于竖直距离的情况),分别连接到引脚q和引脚g。其中有两条边,每条边有四种连接方式,因此一共有16种子结构,但由于不同结构的公共边长度不同,故只有一个是最优的。在精炼这一步骤中,我们的目标就是增加公共边的长度,从而减小总长度。
在上述分析的基础上,提出了一种基于公共边的精炼策略,该策略能够将所有这些非最优结构转化为最优结构,同时使得每条边都满足松弛条件。具体步骤如下:
步骤1:扫描粒子gf的每条边。
步骤2:对于当前边,枚举它的4种连接方式,并选择使整个粒子获得最小适应值的连接方式,同时应查询查找表,保证该边满足松弛条件。
在精炼过程中,应注意两点。首先,关于引脚的组合是否满足松弛条件这一问题可以直接通过查找表确定,因为我们在角点选取过程中添加了障碍角点的必要连接信息。其次,对于枚举的每条边,由于考虑全局性,不仅计算边本身的长度,而是计算整个粒子的适应值。如图11所示,这是一个包含3个引脚的线网,当仅考虑pq之间的线长时,显然p q 0是最优的。然而,当考虑整个线网时,p和q以连接方式3来连接将会使得整个线网的总线长更小。当线网规模很大时,将会有非常多类似的情况出现,这就是引入精炼策略的原因。
较佳的,在本实施例中,进行如下定义:
定义1(障碍).在XSMT-CRRR问题中,障碍可以是任意尺寸的矩形。任意两个障碍不能互相重叠,但可以点与点接触或是边与边接触。
定义2(引脚).引脚端点可以是在布线区域内的任意端点,不能处于任意障碍内,但可以分布在障碍的边上或是障碍角点处。
定义3(伪Steiner点).为方便起见,本实施例假设除了引脚外的连接点,称为伪Steiner点。
定义4(连接方式0).如图1(a)所示,令P=(x1,y1),Q=(x2,y2),P和Q分别是一条边L的两个顶点,其中x1<x2。在图1(b)中给出了对应于边L的伪Steiner点的连接方式0。首先由曼哈顿边从P连接到伪Steiner点S,然后从S引非曼哈顿边连接到Q。
定义5(连接方式1).对应于边L的伪Steiner点的连接方式1如图1(b)所示。首先以非曼哈顿边从P连接到伪Steiner点S,然后从S引曼哈顿边连接到Q。
定义6(连接方式2).对应于边L的伪Steiner点的连接方式2如图1(c)所示。首先以竖直边从P连接到伪Steiner点S,然后从S引水平边连接到Q。
定义7(连接方式3).对应于边L的伪Steiner点的连接方式3如图1(d)所示。首先以水平边从P连接到伪Steiner点S,然后从S引竖直边连接到Q。
较佳的,本实施例在超大规模集成电路布线中考虑到X结构的引入并充分利用障碍内可布线资源的Steiner最小树构建方法,以总布线长度为优化目标。该方法在传统的Steiner树的基础上,设计了5种有效的加强策略,包括(1)改变了传统布线结构,增加新的布线方向,(2)限制Steiner树在障碍中的布线长度,充分利用了障碍内可布线资源,(3)使用了一种结合经典遗传算子的特殊粒子群优化算法,(4)建立了为整个算法流程提供快速信息查询的查找表,(5)设计了角点选取和精炼两个启发式策略,以进一步提高布线树的质量,从而构建了一种有效的考虑布线资源松弛的X结构Steiner树构造方法。
特别的,本实施例改变了传统的曼哈顿结构,引入了45°和135°这两种布线方向,从而更加充分地利用布线区域。其次,建立了两个基于引脚和障碍的查找表,避免多次重复计算相同的信息,为整个算法流程提供快速的信息查询。第三,使用了一种非传统的粒子群优化算法,通过引入两个基于并查集的遗传算子来更新每个粒子的速度和位置。第四,设计了一种角点选取策略,通过引入一些障碍角点,从而使得粒子满足约束。最后,构建了一种精炼策略,以进一步增加公共边的长度,有效缩短了总布线长度,取得最佳的总布线长度。特别的,为了验证本实施例方法在求解X结构Steiner最小树问题上的有效性,将本发明方法(Ours)与现有技术中两种布线算法在多组基准电路上进行实验对比。相应的实验结果在表3-表5中给出。注意,l*x%表示布线区域较长边长度的x%。
表3显示了使用精炼策略之前和之后的总线长,可看出,本发明工作中的精炼策略在当L设为l*1%,l*5%,l*10%时,线长的平均改善分别可以达到8.12%,4.41%,4.25%。
表4将本实施例与现有技术中所提出的算法进行对比。改进等于(([1]-our)/[1])*100%。当L设为0时,即在完全绕障的情况下,我们的算法也有0.11%-14.75%的改进,平均减少线长达5.91%。而在完全忽略障碍(L=∞)时,我们的算法平均减少线长6.65%。当L设为l*1%,l*5%,l*10%时,线长的平均优化分别可以达到6.55%,7.42%,8.02%。
表5将本实施例与现有技术中所提出的算法进行对比。改进等于(([2]-our)/[2])*100%。当L设为0时,即在完全绕障的情况下,我们的算法有-0.47%-14.75%的改进,平均减少线长达4.72%。而在完全忽略障碍(L=∞)时,我们的算法平均减少线长6.60%。当L设为l*1%,l*5%,l*10%时,线长的平均优化分别可以达到5.42%,5.63%,6.07%。
表3
表4
表5
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (9)
1.一种考虑布线资源松弛的X结构Steiner最小树构造方法,其特征在于:包括以下步骤:
步骤S1:初始化:为芯片上的每个引脚和障碍设置唯一的序列号,使用Prim算法为引脚构造最小生成树,并为最小生成树中存在邻接关系的两个引脚之间随机分配一种连接方式;此时随机生成n个所述的最小生成树即生成了粒子群n为种群中粒子的数量,并为所述粒子群中的每个粒子添加一个额外变量,即适应值;除了所述引脚外的连接点,称为伪Steiner点;
步骤S2:建立查找表:建立第一查找表与第二查找表:所述第一查找表用以记录每条边穿过的障碍数量和障碍序号;所述第二查找表用以记录每条边在其所穿过的每个障碍中的走线长度;
步骤S3:利用PSO算法进行粒子群优化搜索,选择全局最优粒子gf作为最终的x结构布线树;
步骤S4:判断gf中所有的边是否都满足松弛条件;若满足则直接执行步骤S5;否则进行角点选取后再执行步骤S5;
步骤S5:进行精炼:对于每条边,枚举它的4种连接方式,并选择使整个粒子获得最小适应值的连接方式,同时查询两张查找表,保证该边满足松弛条件。
2.根据权利要求1所述的一种考虑布线资源松弛的X结构Steiner最小树构造方法,其特征在于:步骤S1中所述的连接方式包括以下四种连接方式:
令P=(x1,y1),Q=(x2,y2),P和Q分别是一条边L的两个顶点,其中x1<x2;
连接方式0:首先由曼哈顿边从P连接到伪Steiner点S,然后从S引非曼哈顿边连接到Q;
连接方式1:首先以非曼哈顿边从P连接到伪Steiner点S,然后从S引曼哈顿边连接到Q;
连接方式2:首先以竖直边从P连接到伪Steiner点S,然后从S引水平边连接到Q;
连接方式3:首先以水平边从P连接到伪Steiner点S,然后从S引竖直边连接到Q。
3.根据权利要求1所述的一种考虑布线资源松弛的X结构Steiner最小树构造方法,其特征在于:所述步骤S1还包括以下内容:
为每个引脚和障碍设置唯一的序列号,然后使用一组最小生成树边来表示候选布线树,并向每条边添加一个额外变量,表示伪Steiner点所对应的连接方式,用以将其转换为X结构Steiner树;如果线网中有n个引脚,则最小生成树将包括n-1条边和n-1个伪Steiner点,以及一个额外变量,该变量表示粒子的适应值;因此,一个粒子的长度为3*(n-1)+n。
4.根据权利要求1所述的一种考虑布线资源松弛的X结构Steiner最小树构造方法,其特征在于:所述步骤S2具体包括以下内容:在建立第一查找表时,令p={p1,p2,p3...pn}为线网中的一组引脚,并且b={b1,b2,b3...bm}为芯片上的一组障碍;对于每对引脚pi和pj,计算边pipj(c)穿过的障碍的数量,并将所有障碍记录为集合{Bk},其中c表示引脚pi和pj之间的连接方式;
在建立第二查找表时,令p={p1,p2,p3...pn}为线网中的一组引脚,并且b={b1,b2,b3...bm}为芯片上的一组障碍;对于每对引脚,pi和pj计算边pipj(c)穿过的障碍的数量,并将所有这些障碍记录为集合{Bk},其中c表示引脚pi和pj之之间的连接方式;然后分别计算pipj(c)在其穿过的每个障碍中的走线长度。
5.根据权利要求1所述的一种考虑布线资源松弛的X结构Steiner最小树构造方法,其特征在于:所述步骤S3具体包括以下步骤:
步骤S31:随机产生一个PSO初始解;
步骤S32:通过变异和交叉两种操作来更新粒子的位置;
步骤S33:通过计算适应度值来评估当前粒子是否保留,若当前粒子的适应值是最小的,则保留;否则,不保留;
步骤S34:判断是否达到最大迭代次数,若是则得到全局最优粒子即适应值最小的粒子;否则返回步骤S32。
8.根据权利要求1所述的一种考虑布线资源松弛的X结构Steiner最小树构造方法,其特征在于:步骤S4中所述进行角点选取具体包括如下步骤:
步骤SA:对于gf的一条边pq,通过查找表来判断该条边是否满足松弛条件;如果是,请重复此步骤以检查下一个边,直到检查最后一条边;否则,转到步骤SB;
步骤SB:通过查找表来检查边pq的连接方式0至连接方式3;如果它们中的任何一个满足松弛条件,则用当前连接方式替换原始连接方式;否则,删除边pq,然后转到步骤SC;
步骤SC:通过查找表列出pq穿过的所有障碍,再根据p与障碍中心之间的距离以非递减顺序对这些障碍进行排序;假设排序列表是Bk={Bk,1,Bk,2,...,Bk,n},设当前起始点s=p,并且当前障碍B=Bk,j,j=1;
步骤SD:从Bk中选择最接近直线sq的角点c,优先使用连接方式0或连接方式1连接sc,并将sc的连接信息添加到查找表中;然后设置s=c;如果j=n转到步骤SE,否则重复步骤SD,令B=Bk,j+1;
步骤SE:计算sq的连接信息,并将该信息添加到查找表中;然后根据连接方式0和连接方式1的标准连接sq。
9.根据权利要求1所述的一种考虑布线资源松弛的X结构Steiner最小树构造方法,其特征在于:步骤S5中所述的精炼,具体包括以下步骤:
步骤Sa:扫描粒子gf的每条边;
步骤Sb:对于当前边,枚举它的4种连接方式,并选择使整个粒子获得最小适应值的连接方式,同时应查询两张查找表,保证该边满足松弛条件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910937860.0A CN110795907B (zh) | 2019-09-30 | 2019-09-30 | 一种考虑布线资源松弛的X结构Steiner最小树构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910937860.0A CN110795907B (zh) | 2019-09-30 | 2019-09-30 | 一种考虑布线资源松弛的X结构Steiner最小树构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110795907A CN110795907A (zh) | 2020-02-14 |
CN110795907B true CN110795907B (zh) | 2021-05-18 |
Family
ID=69439974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910937860.0A Active CN110795907B (zh) | 2019-09-30 | 2019-09-30 | 一种考虑布线资源松弛的X结构Steiner最小树构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795907B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291525B (zh) * | 2020-02-17 | 2022-04-08 | 福州大学 | 考虑总线和非总线线网的层分配方法 |
CN111339726B (zh) * | 2020-02-26 | 2022-04-05 | 福州大学 | 考虑电压转换速率的X结构Steiner树构造方法 |
CN111553125A (zh) * | 2020-04-23 | 2020-08-18 | 福州立芯科技有限公司 | 一种考虑先进技术的超大规模集成电路详细布线方法 |
CN111582431B (zh) * | 2020-05-14 | 2022-07-08 | 福州大学 | 一种两步式X结构Steiner最小树构建方法 |
CN111723544A (zh) * | 2020-06-18 | 2020-09-29 | 福州大学 | X结构下考虑障碍内布线的Steiner树构建方法 |
CN111814420B (zh) * | 2020-06-18 | 2022-07-08 | 福州大学 | 基于拓扑优化和启发式搜索的总体布线方法 |
CN112257377B (zh) * | 2020-10-29 | 2022-11-29 | 海光信息技术股份有限公司 | 器件布局方法、装置、电子设备和计算机可读存储介质 |
CN112528592B (zh) * | 2020-12-23 | 2022-06-14 | 福州大学 | 基于多阶段优化的考虑布线资源松弛的x结构布线方法 |
CN113657067B (zh) * | 2021-06-30 | 2023-07-21 | 福州大学 | 基于多策略优化的超大规模集成电路多层总体布线方法 |
CN113935275A (zh) * | 2021-10-12 | 2022-01-14 | 福州大学 | 时序松弛约束下绕障X结构Steiner最小树构造方法 |
CN114662446B (zh) * | 2022-03-29 | 2024-05-03 | 东科半导体(安徽)股份有限公司 | 一种用以减小动态功耗的布线优化方法 |
CN114997088B (zh) * | 2022-06-29 | 2022-11-04 | 西安电子科技大学 | 一种布线和tdm比率快速优化方法 |
CN115114884B (zh) * | 2022-07-22 | 2024-06-25 | 福州大学 | 基于多策略优化的时序松弛约束下绕障x结构布线方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104318025A (zh) * | 2014-10-27 | 2015-01-28 | 福州大学 | 八角结构Steiner最小树下的VLSI绕障布线器 |
CN107247844A (zh) * | 2017-06-10 | 2017-10-13 | 福州大学 | 基于自适应PSO和混合转换策略的X结构Steiner最小树算法 |
CN107832519A (zh) * | 2017-11-02 | 2018-03-23 | 福州大学 | 超大规模集成电路中高性能x结构多层总体布线方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462628A (zh) * | 2013-09-24 | 2015-03-25 | 复旦大学 | 一种绕过障碍物的八叉Steiner最小树的构建方法及装置 |
CN103902774B (zh) * | 2014-03-31 | 2017-01-25 | 福州大学 | X结构下超大规模集成电路总体布线方法 |
CN103902775B (zh) * | 2014-03-31 | 2017-02-15 | 福州大学 | 超大规模集成电路多层绕障Steiner最小树构造方法 |
CN110059405B (zh) * | 2019-04-16 | 2022-05-13 | 福州大学 | X结构下带差分进化的高质量Steiner最小树构建方法 |
-
2019
- 2019-09-30 CN CN201910937860.0A patent/CN110795907B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104318025A (zh) * | 2014-10-27 | 2015-01-28 | 福州大学 | 八角结构Steiner最小树下的VLSI绕障布线器 |
CN107247844A (zh) * | 2017-06-10 | 2017-10-13 | 福州大学 | 基于自适应PSO和混合转换策略的X结构Steiner最小树算法 |
CN107832519A (zh) * | 2017-11-02 | 2018-03-23 | 福州大学 | 超大规模集成电路中高性能x结构多层总体布线方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110795907A (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795907B (zh) | 一种考虑布线资源松弛的X结构Steiner最小树构造方法 | |
Cheng et al. | On joint learning for solving placement and routing in chip design | |
CN111291525B (zh) | 考虑总线和非总线线网的层分配方法 | |
US4615011A (en) | Iterative method for establishing connections and resulting product | |
CN111539181B (zh) | 基于离散差分进化的多策略优化x结构最小树构建方法 | |
US6353918B1 (en) | Interconnection routing system | |
CN114896937A (zh) | 一种基于强化学习的集成电路布局优化方法 | |
Liu et al. | PSO-based power-driven X-routing algorithm in semiconductor design for predictive intelligence of IoT applications | |
CN111814420B (zh) | 基于拓扑优化和启发式搜索的总体布线方法 | |
CN116341480B (zh) | 数字芯片布局布线全局优化方法及系统 | |
US5500804A (en) | Method to optimize the wiring of multiple wiring media packages | |
CN111553125A (zh) | 一种考虑先进技术的超大规模集成电路详细布线方法 | |
US6480996B1 (en) | System and method for transposing wires in a circuit design | |
Chang et al. | MR: A new framework for multilevel full-chip routing | |
CN115859899A (zh) | 一种多驱动能力的集成电路标准单元版图迁移的方法 | |
US6901506B2 (en) | Maximal tile generation technique and associated methods for designing and manufacturing VLSI circuits | |
CN113935275A (zh) | 时序松弛约束下绕障X结构Steiner最小树构造方法 | |
CN111723544A (zh) | X结构下考虑障碍内布线的Steiner树构建方法 | |
US5825659A (en) | Method for local rip-up and reroute of signal paths in an IC design | |
US11461529B1 (en) | Routing with soft-penalizing pixels on a found path | |
KR20080103364A (ko) | 반도체 배선 경로 설정 방법 및 이를 실행하기 위한프로그램을 기록한 기록 매체 | |
Jain et al. | A genetic algorithm based approach to solve vlsi floor planning problem | |
Terapasirdsin et al. | Crosstalk-aware global routing in VLSI design by using a shuffled frog-leaping algorithm | |
JP2001507841A (ja) | チャネルを有する電子装置の製造方法 | |
Yao et al. | Pathfinding Model and Lagrangian-Based Global Routing |
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 |