CN116451639A - 时序松弛约束下超大规模集成电路绕障x结构布线方法 - Google Patents
时序松弛约束下超大规模集成电路绕障x结构布线方法 Download PDFInfo
- Publication number
- CN116451639A CN116451639A CN202310551173.1A CN202310551173A CN116451639A CN 116451639 A CN116451639 A CN 116451639A CN 202310551173 A CN202310551173 A CN 202310551173A CN 116451639 A CN116451639 A CN 116451639A
- Authority
- CN
- China
- Prior art keywords
- obstacle
- pins
- connection mode
- line
- pseudo
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 239000002245 particle Substances 0.000 claims abstract description 92
- 230000004888 barrier function Effects 0.000 claims abstract description 41
- 238000005457 optimization Methods 0.000 claims abstract description 24
- 230000035772 mutation Effects 0.000 claims abstract description 23
- 230000002068 genetic effect Effects 0.000 claims abstract description 7
- 230000003993 interaction Effects 0.000 claims abstract description 6
- 238000004364 calculation method Methods 0.000 claims description 18
- 238000007670 refining Methods 0.000 claims description 7
- 230000001133 acceleration Effects 0.000 claims description 3
- 230000006978 adaptation Effects 0.000 claims description 3
- 230000005484 gravity Effects 0.000 claims description 3
- 230000003044 adaptive effect Effects 0.000 claims 1
- 230000004048 modification Effects 0.000 claims 1
- 238000012986 modification Methods 0.000 claims 1
- 238000004804 winding Methods 0.000 abstract description 4
- 238000010276 construction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009326 social learning Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/06—Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Biology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Geometry (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种时序松弛约束下超大规模集成电路绕障X结构布线方法,在粒子群优化方法的基础上,采用一种基于遗传算子的更新方式,通过变异操作和交叉操作使粒子可以通过个体变化和种群之间信息交互来实现粒子群的搜索和更新。对处于半径的所有连线进行遍历,选择最小化线长和时延的布线结构,并允许牺牲少量的线长来增大引脚的时序松弛值。根据连线与障碍组相交的的情况来选择伪Steiner点,通过添加伪Steiner点使得所有引脚之间的连线完全绕障。本发明方法能够有效绕障并优化线长和最坏负松弛值(Worst Negative Slack,WNS),从而优化芯片的性能。
Description
技术领域
本发明属于计算机辅助设计技术领域,具体涉及一种超大规模集成电路绕障X结构布线方法。
背景技术
现有技术分为以下三种类型的工作,分别是构建X结构Steiner最小树(X-architecture Steiner Minimum Tree,XSMT)、绕障X结构Steiner最小树(Obstacle-Avoiding X-architecture Steiner Minimum Tree,OAXSMT)以及时序约束下X结构Steiner最小树(Timing-Driven X-architecture Steiner Minimum Tree(TDXSMT)。
1.XSMT
SMT的构造问题是布线阶段的一个关键性问题,而XSMT由于在线长和时延等关键性指标中明显优于直角结构的Steiner最小树,因此在近几年受到人们的广泛关注。
Coulston提出了一种精确的XSMT构造方法,但该方法由于其时间复杂度呈指数级,所以实用性不高。Zhu等提出了两种分别结合边替换和三角收缩的方式来构造XSMT。Ho等提出了一种构造针对多层布线问题的XSMT方法,并且设计了针对3引脚线网的最佳X结构布线结构。Arora等提出了一种基于蚁群算法的XSMT构造方法,可以有效减少线长和电容。Wu等提出了一种基于微分进化算法的XSMT构造方法,结合遗传算法来解决离散的SMT构造问题,从而得到了一个高质量的解决方案。
2.OAXSMT
由于芯片中存在预布线网、宏单元等障碍物,OASMT问题得到了人们的重视,在非曼哈顿结构的OASMT中,最常见的是OAXSMT。
Jing等提出了一种纯启发式的λ-OASMT构造方法。基于对障碍物的三角剖分算法,构造了一个全连接树,并通过区域组合将其嵌入到λ-OASMT中。λ-OASMT的高效和准确性使其在布线阶段非常实用。Huang等提出了一种基于粒子群优化算法的OAXSMT构造方法,该方法在各种基准测试中都取得了良好的效果,并在合理的运行时间下获得了高质量的解。Huang等提出了一种快速四步启发式方法,在不过度牺牲质量的情况下,其运行速度得到了极大的提升。Huang等的方法中首先基于查找表来构建三维无障碍物的MST,再采用三种基于投影的避障策略,最后结合两种有效的精炼技术将三维MST转化为多层OAXSMT。
3.TDXSMT
随着互连线的时延在总时延中的比例越来越大,在布线阶段考虑时序约束的研究也越来越多。
在给定任意线网的直角Steiner最小树的情况下,Yan提出了一种有效的基于变换的方法,通过对X结构距离的计算、Steiner点再分配和路径重构,构造了一个TDXSMT。Huang等提出了一种针对矩形和非矩形障碍物的TDXSMT算法。该方法可以处理矩形和非矩形障碍物,减少从源点到汇点的最小延迟。Liu等提出了一种基于多目标PSO和Elmore延迟模型,构建了一个拥有最小半径的最小代价生成树。Chen等提出了一种基于社会学习多目标PSO的有效方法,构造了一个半径最短的TDXSMT。
然而以上三种类型的超大规模集成电路布线算法都没有考虑将芯片中的障碍物和互连线的时延同时作为布线的约束,忽视了其中的一种或者两种约束对布线效果的影响。
发明内容
为了克服现有技术的不足,本发明提供了一种时序松弛约束下超大规模集成电路绕障X结构布线方法,在粒子群优化方法的基础上,采用一种基于遗传算子的更新方式,通过变异操作和交叉操作使粒子可以通过个体变化和种群之间信息交互来实现粒子群的搜索和更新。对处于半径的所有连线进行遍历,选择最小化线长和时延的布线结构,并允许牺牲少量的线长来增大引脚的时序松弛值。根据连线与障碍组相交的的情况来选择伪Steiner点,通过添加伪Steiner点使得所有引脚之间的连线完全绕障。本发明方法能够有效绕障并优化线长和最坏负松弛值(Worst Negative Slack,WNS),从而优化芯片的性能。
本发明解决其技术问题所采用的技术方案包括如下步骤:
步骤1:信息初始化;
构建边障表记录各连线与障碍的相交情况信息并在后续引入伪Steiner点后进行更新;
综合考虑线长和半径,利用Prim-Dijkstra算法构建初始的生成PD树;
对PD树进行编码;遍历PD树每两个引脚之间的连线,并将每条连线用3个数字保存,这3个数字分别代表两个引脚的编号和它们的连线方式并在最后1位数中给出PD树的适应值;
步骤2:粒子的更新方式;
采用基于遗传算子的离散位置更新方式,在并查集的基础上通过变异操作和交叉操作使粒子可以通过个体变化和种群之间信息交互来实现粒子群的搜索和更新;
粒子的更新公式具体表示成如下公式:
其中,表示第i个,第t代粒子;C2为全局交叉操作,C1为个体交叉操作,V为个体变异操作;r1和r2为交叉的概率,w为个体变异概率;
步骤3:种群初始化;
粒子种群的初始化是设定种群数量popsize、最大迭代次数count、加速因子和权重的数值,随机生成popsize个PD树并编码将其作为粒子群的初始种群,并初始化每个粒子的历史最优位置和粒子群的全局最优位置;
设计一种线性增长公式使w、r1和r2随迭代次数自适应改变,其计算公式如式(2)、(3)、(4):
其中wt、r1t和r2t表示第t代的w、r1和r2;ws、r1s和r2s表示w、r1和r2的初始值;we、r1e和r2e表示w、r1和r2的最终值;count为粒子种群的迭代总数,t为粒子种群的迭代次数;
步骤4:变异操作;
利用个体变异操作来扩大粒子群搜索范围,从而找到全局最优解;
变异操作公式如下:
其中V表示变异操作,c1表示[0,1)区间的随机数;
步骤5:交叉操作;
设计个体交叉操作使粒子在局部范围内搜索和全局交叉操作使粒子群向全局最优粒子收敛;
个体交叉操作是将粒子与其本身的历史最优位置交叉,使粒子进行局部搜索,公式如下:
其中C1表示个体交叉操作,c2表示[0,1)区间的随机数;
全局交叉操作是将粒子与粒子种群的最优情况交叉,加快粒子群的收敛速度,其公式如下:
其中C2表示个体交叉操作,c3表示[0,1)区间的随机数;
步骤6:适应度值的计算;
步骤6-1:适应度的计算以优化线长和半径为目标,其公式如下:
fitness=(1-dt)×WL+dt×PL (81)5
其中WL表示线长;PL表示半径;dt是一个均衡线长和半径的平衡因子,随着迭代次数的增长进行线性增长,从而线性的改变线长和半径的比重,线性增长的公式如下:
其中ds为dt的初始值,de为dt的最终值;
步骤6-2:在线长的计算中加入障碍组的部分周长,从而减少绕障的线长,线长计算公式如下:
其中是边ese的线长,(xe,ye)和(xs,ys)分别为边ese的两个顶点坐标,/>为边ese穿过的障碍组的四分之一周长,其公式如下:
其中,(xbmin,ybmin)和(xbmax,ybmax)分别表示连线ese经过的障碍组的左下角坐标和右上角坐标;
WL是布线的总线长,其计算公式如下:
其中WLre是连线中重叠边的线长;
PL是布线的半径,其计算公式如下:
其中表示生成树/>的叶子节点,/>表示从源点到引脚pn的路径;
步骤7:时序松弛优化策略;
构建最优更新数组来保存更新的连线以及更新后的线长和WNS,将粒子群优化算法生成的最优粒子及其线长和WNS作为最优更新数组的初始值;
找到最优粒子中具有最坏负松弛值的引脚,并确定该引脚所在的从源点到汇点的最长路径,假设在该条路径上,从源点到叶子节点之间的引脚分别为p1,p2…,pl;遍历该条路径上除源点以及源点的下一个引脚外的所有引脚pi,即i≠1,2,删除pi与pi-1的连线,并将pi与p1,p2…,pi-2逐一相连;将每次更新后的线长和WNS与最优更新的线长和WNS进行对比,将得到以下四种结果之一:
(1)线长以及WNS都得到优化,则将其替换为最优更新;
(2)线长得到优化,WNS未被优化,若减少的线长大于减少的WNS,则将其替换为最优更新,反之跳过该更新;
(3)线长未得到优化,WNS被优化,则将其替换为最优更新;
(4)线长和WNS都未得到优化,则跳过该更新;
步骤8:连线方式的选取;
当连线经过障碍时,删除该条连线,并分别用4种连线方式连接两个引脚,并通过边障表判断是否经过障碍,此时有以下三种情况:
(1)若连线方式0或连线方式1未经过障碍,则用连线方式0或连线方式1连接两个引脚;
(2)若连线方式0和连线方式1都经过障碍但连线方式2或连线方式3未经过障碍,则对比连线方式0和连线方式1经过的障碍组的半周长,用半周长最小的连线连线方式连接两个引脚,并进入伪Steiner点的选取;
(3)若连线方式0、连线方式1、连线方式2和连线方式3都经过障碍,则对比连线方式0、连线方式1、连线方式2和连线方式3经过的障碍组的半周长,用半周长最小的连线方式连接两个引脚,并进入伪Steiner点的选取;
步骤9:伪Steiner点的选取;
确定两个引脚之间的连线方式所经过的障碍组的左下角和右上角的坐标,将两个引脚直接相连,连线与障碍组之间的联系有以下三种:
(1)连线未与障碍组相交时,选择与连线的垂直距离最短的障碍组内的障碍的顶角作为伪Steiner点;
(2)连线与障碍组相邻的两边相交时,若连线与障碍组的左边和上边相交,则选取障碍组的左上角为伪Steiner点;若连线与障碍组的左边与下边相交,则选取障碍组的左下角为伪Steiner点,以此类推;若上述选取的伪Steiner点不属于障碍组内的障碍的顶角,则选择距离该伪Steiner点最近的障碍组内的障碍的顶角来代替删除该伪Steiner点;
(3)连线与障碍组相对的两边相交时,障碍组被连线划分为两个部分,选择周长较小的那一部分的两个顶角作为伪Steiner点;若选取的伪Steiner点不属于障碍组内的障碍的顶角,则选择距离该伪Steiner点最近的障碍组内的障碍的顶角来代替删除该伪Steiner点;
步骤10:绕障策略;
首先,通过边障表判断连线是否经过障碍,若经过障碍,则删除该条连线,选取伪Steiner点,并增添新的连线;若未经过障碍,则跳过该条连线,继续判断下一条连线是否经过障碍;最后根据新的生成树更新边障表,循环以上操作直至所有连线都不经过障碍,则绕障结束。
步骤11:路径精炼策略;
通过路径精炼策略增加连线的共享边长度,从而得到拥有更短线长的布线结构;
首先,计算每个引脚的度,并记录与该引脚相连的所有引脚;如果引脚的度为D,则列出引脚的4D种布线结构,并选择满足绕障约束并具有最小线长和延迟的连线作为最佳连线;其次,计算每个布线的共享边长度WLre,并根据共享边的长度按降序排列;最后,将引脚的初始布线结构替换为其最优布线结构。
优选地,所述变异操作为随机删除生成树的一条边后,利用并查集划分两棵树的引脚并分别放入两个集合之中,再从两个集合中随机选出两个引脚,并将其相连。
优选地,所述交叉操作首先将两棵生成树中相同的连线放入一个集合作为下一代粒子的部分连线,接着将两个粒子中的不同连线放入另一个集合,利用并查集随机的从第二个集合里挑选连线作为下一代粒子的剩余连线,直到构成一棵完整的生成树。
本发明的有益效果如下:
本发明方法在芯片物理设计的布线阶段中考虑了障碍物和时延对芯片布线效果的影响,并对布线的线长和半径进行优化,使本发明在完全绕障的基础上,尽可能的减小了时延对布线的负面影响。本发明方法能够有效绕障并优化线长和最坏负松弛值,从而优化芯片的性能。
附图说明
图1为两引脚的四种连线方式示意图。
图2为变异操作示意图。
图3为交叉操作示意图。
图4为未绕障的X结构Steiner最小树示意图。
图5为时序优化策略示意图。
图6为绕障策略示意图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
本发明提出了一种时序松弛约束的超大规模集成电路绕障X结构布线方法,具体包含以下过程:
1.提出粒子群优化策略:在粒子群优化方法的基础上,采用一种基于遗传算子的更新方式,通过变异操作和交叉操作使粒子可以通过个体变化和种群之间信息交互来实现粒子群的搜索和更新。
2.提出时序松弛优化策略:对处于半径的所有连线进行遍历,选择最小化线长和时延的布线结构,并允许牺牲少量的线长来增大引脚的时序松弛值。
3.提出绕障策略:根据连线与障碍组相交的的情况来选择伪Steiner点,通过添加伪Steiner点使得所有引脚之间的连线完全绕障。
具体实现如下:
1.信息初始化
由于后续策略都需要频繁的使用各连线与障碍的相交情况信息,所以本发明构建边障表来记录这些信息并在后续引入伪Steiner点后进行更新,以便后续策略的使用。
本发明需要综合考虑线长和半径,利用Prim-Dijkstra算法来构建初始的生成树,以避免造成某些路径过长导致其中某些引脚的最坏负松弛值过小或者为了优化各个引脚的最坏负松弛值而过度牺牲线长的结果。
同时,为了构建离散粒子群的初始种群,需要对PD树进行编码。遍历PD树每两个引脚之间的连线,并将每条连线用3个数字保存,其中这3个数字分别代表两个引脚的编号和它们的连线方式(四种连线方式参照图1),并在最后1位数中给出PD树的适应值。
2.粒子的更新方式
本发明在粒子群优化算法的基础上采用一种基于遗传算子的离散位置更新方式,在并查集的基础上通过变异操作和交叉操作使粒子可以通过个体变化和种群之间信息交互来实现粒子群的搜索和更新。
粒子的更新公式具体可表示成如下公式:
其中,表示第i个,第t代粒子;C2为全局交叉操作,C1为个体交叉操作,V为个体变异操作;r1和r2为交叉的概率,w为个体变异概率。
3.种群初始化
粒子种群的初始化是设定种群数量popsize、最大迭代次数count、加速因子和权重的数值,随机生成popsize个PD树并编码将其作为粒子群的初始种群,并初始化每个粒子的历史最优位置和粒子群的全局最优位置。同时,本发明设计了一种线性增长公式使w、r1和r2随迭代次数自适应改变。其计算公式如式2、3、4:
其中wt、r1t和r2t表示第t代的w、r1和r2;ws、r1s和r2s表示w、r1和r2的初始值;we、r1e和r2e表示w、r1和r2的最终值;count为粒子种群的迭代总数,t为粒子种群的迭代次数。
4.变异操作
为了避免陷入局部最优,本发明利用个体变异操作来扩大粒子群搜索范围,从而找到全局最优解。
变异操作公式如下:
其中V表示变异操作,c1表示[0,1)区间的随机数。
变异操作的基本思想为随机删除生成树的一条边后,利用并查集划分两棵树的引脚并分别放入两个集合之中,再从两个集合中随机选出两个引脚,并将其相连。参照图2,随机删除了引脚p1与p3之间的连线,后利用并查集从两个集合中随机选出引脚p4和p3并将其连接。
5.交叉操作
为了增加种群的多样性并加快粒子群的收敛速度,本发明设计了个体交叉操作使粒子在局部范围内搜索和全局交叉操作使粒子群向全局最优粒子收敛。
个体交叉操作是将粒子与其本身的历史最优位置交叉,使粒子进行局部搜索。其公式如下:
其中C1表示个体交叉操作,c2表示[0,1)区间的随机数。
全局交叉操作是将粒子与粒子种群的最优情况交叉,加快粒子群的收敛速度。其公式如下:
其中C2表示个体交叉操作,c3表示[0,1)区间的随机数。
交叉操作的原理参照图3。首先将两棵生成树中相同的连线放入一个集合作为下一代粒子的部分连线,接着将两个粒子中的不同连线放入另一个集合,利用并查集随机的从第二个集合里挑选连线作为下一代粒子的剩余连线,直到构成一棵完整的生成树。
6.适应度值的计算
本发明不仅需要减少线长,还需要满足时序约束,且由于时序约束与半径息息相关,半径越长的路径往往越容易违背时序约束,因此适应度的计算以优化线长和半径为目标,其公式如下:
fitness=(1-dt)×WL+dt×PL (8)
其中WL表示线长,PL表示半径,dt是一个均衡线长和半径的平衡因子,它会随着迭代次数的增长进行线性增长,从而线性的改变线长和半径的比重。其线性增长的公式如下:
其中ds为dt的初始值,de为dt的最终值。
由于障碍的存在,连线若经过障碍一定会导致线长增大,因此本发明考虑在线长的计算中加入障碍组的部分周长,从而减少绕障的线长。线长计算公式如下:
其中是边ese的线长,(xe,ye)和(xs,ys)分别为边ese的两个顶点坐标,/>为边ese穿过的障碍组的四分之一周长,其公式如下:
其中,(xbmin,ybmin)和(xbmax,ybmax)分别表示连线ese经过的障碍组的左下角坐标和右上角坐标。
WL是布线的总线长,其计算公式如下:
其中WLre是连线中重叠边的线长。
PL是布线的半径,其计算公式如下:
其中表示生成树/>的叶子节点,/>表示从源点到引脚pn的路径。
7.时序松弛优化策略
首先,构建最优更新数组来保存更新的连线以及更新后的线长和WNS,将粒子群优化算法生成的最优粒子及其线长和WNS作为最优更新数组的初始值。找到最优粒子中具有最坏负松弛值的的引脚,并确定该引脚所在的从源点到汇点的最长路径,假设在该条路径上,从源点到的叶子节点之间的引脚分别为p1,p2…,pl。遍历该条路径上除源点以及源点的下一个引脚外的所有引脚pi(即i≠1,2),删除pi与pi-1的连线,并将pi与p1,p2…,pi-2逐一相连。将每次更新后的线长和WNS与最优更新的线长和WNS进行对比,将得到以下四种结果之一:
(1)线长以及WNS都得到优化,则将其替换为最优更新。
(2)线长得到优化,WNS未被优化。若减少的线长大于减少的WNS,则将其替换为最优更新,反之跳过该更新。
(3)线长未得到优化,WNS被优化,则将其替换为最优更新。
(4)线长和WNS都未得到优化,则跳过该更新。
8.连线方式的选取
当连线经过障碍时,删除该条连线,并分别用4种连线方式连接两个引脚,并通过边障表判断是否经过障碍,此时有以下三种情况:
若连线方式0或连线方式1未经过障碍,则用连线方式0或连线方式1连接两个引脚;
若连线方式0和连线方式1都经过障碍但连线方式2或连线方式3未经过障碍,则对比连线方式0和连线方式1经过的障碍组的半周长,用半周长最小的连线连线方式连接两个引脚,并进入伪Steiner点的选取;
若连线方式0、连线方式1、连线方式2和连线方式3都经过障碍,则对比连线方式0、连线方式1、连线方式2和连线方式3经过的障碍组的半周长,用半周长最小的连线方式连接两个引脚,并进入伪Steiner点的选取。
9.伪Steiner点的选取
确定两个引脚之间的连线方式所经过的障碍组的左下角和右上角的坐标,将两个引脚直接相连,连线与障碍组之间的联系有以下三种:
(1)连线未与障碍组相交时,选择与连线的垂直距离最短的障碍组内的障碍的顶角作为伪Steiner点。
(2)连线与障碍组相邻的两边相交时,若连线与障碍组的左边和上边相交,则选取障碍组的左上角为伪Steiner点;若连线与障碍组的左边与下边相交,则选取障碍组的左下角为伪Steiner点,以此类推。若上述选取的伪Steiner点不属于障碍组内的障碍的顶角,则选择距离该伪Steiner点最近的障碍组内的障碍的顶角来代替该伪Steiner点。
(3)连线与障碍组相对的两边相交时,障碍组被连线划分为两个部分,选择周长较小的那一部分的两个顶角作为伪Steiner点。若选取的伪Steiner点不属于障碍组内的障碍的顶角,则选择距离该伪Steiner点最近的障碍组内的障碍的顶角来代替该伪Steiner点。
10.绕障策略
首先,通过边障表判断连线是否经过障碍,若经过障碍,则删除该条连线,选取伪Steiner点,并增添新的连线;若未经过障碍,则跳过该条连线,继续判断下一条连线是否经过障碍。最后根据新的生成树更新边障表,循环以上操作直至所有连线都不经过障碍,则绕障结束。
11.路径精炼策略
在满足避障约束和时序松弛约束后,一些路径在线长上仍可以进一步优化。本发明通过路径精炼策略来增加连线的共享边长度,从而得到拥有更短线长的布线结构。
首先,计算每个引脚的度,并记录与该引脚相连的所有引脚。如果引脚的度为D,则列出引脚的4D种布线结构,并选择满足绕障约束并具有最小线长和延迟的连线作为最佳连线。其次,计算每个布线的共享边长度WLre,并根据共享边的长度按降序排列。最后,将引脚的初始布线结构替换为其最优布线结构。
具体实施例:
1.通过粒子群优化策略构建一棵未绕障的X结构Steiner最小树,参照图4;
2.通过时序松弛优化策略优化X结构Steiner最小树的时延,参照图5,其中,A表示引脚信息的实际到达时间,R表示引脚信息要求到达的时间,S表示引脚的松弛值,松弛值越大说明布线稳定性越好;
3.通过绕障策略使X结构Steiner最小树完全绕障,参照图6。
为了证明粒子群优化策略的有效性,本发明在严格松弛条件下,比较了有无粒子群优化策略的方法的半径、线长以及WNS。如表1所示,粒子群优化策略使半径、线长及WNS分别优化了11%、2%和8%。
表1在严格松弛条件下,有无粒子群优化策略的对比。
为了证明时序松弛优化策略的有效性,本发明在严格松弛条件下,比较了有无时序松弛优化策略前后的半径、线长以及WNS。如表2所示,时序松弛优化策略使半径、线长及WNS分别优化了19%、2%和17%。
表2在严格松弛条件下,有无时序松弛优化策略的对比。
为了证明绕障策略的有效性,本发明在严格松弛条件下,比较了有无绕障策略的半径、线长以及WNS。如表3所示,绕障策略使半径、线长及WNS分别优化了3%、3%和9%。
表3在严格松弛条件下,有无绕障策略的对比。
为了验证本发明策略的有效性,本发明与相关方法在严格松弛条件下进行比较。未考虑时序松弛约束的OAXSMT算法,如表4所示,本发明相较于文献,在半径、线长及WNS分别优化了41%、6%和59%。TDXSMT算法,如表5所示,本发明与文献线长相当,但在半径和WNS上分别优化了12%和51%。
表4在严格松弛条件下,本发明与文献的对比
表5在严格松弛条件下,本发明与文献的对比
/>
Claims (3)
1.一种时序松弛约束下超大规模集成电路绕障X结构布线方法,其特征在于,包括如下步骤:
步骤1:信息初始化;
构建边障表记录各连线与障碍的相交情况信息并在后续引入伪Steiner点后进行更新;
综合考虑线长和半径,利用Prim-Dijkstra算法构建初始的生成PD树;
对PD树进行编码;遍历PD树每两个引脚之间的连线,并将每条连线用3个数字保存,这3个数字分别代表两个引脚的编号和它们的连线方式并在最后1位数中给出PD树的适应值;
步骤2:粒子的更新方式;
采用基于遗传算子的离散位置更新方式,在并查集的基础上通过变异操作和交叉操作使粒子可以通过个体变化和种群之间信息交互来实现粒子群的搜索和更新;
粒子的更新公式具体表示成如下公式:
其中,表示第i个,第t代粒子;C2为全局交叉操作,C1为个体交叉操作,V为个体变异操作;r1和r2为交叉的概率,w为个体变异概率;
步骤3:种群初始化;
粒子种群的初始化是设定种群数量popsize、最大迭代次数count、加速因子和权重的数值,随机生成popsize个PD树并编码将其作为粒子群的初始种群,并初始化每个粒子的历史最优位置和粒子群的全局最优位置;
设计一种线性增长公式使w、r1和r2随迭代次数自适应改变,其计算公式如式(2)、(3)、(4):
其中wt、r1t和r2t表示第t代的w、r1和r2;ws、r1s和r2s表示w、r1和r2的初始值;we、r1e和r2e表示w、r1和r2的最终值;count为粒子种群的迭代总数,t为粒子种群的迭代次数;
步骤4:变异操作;
利用个体变异操作来扩大粒子群搜索范围,从而找到全局最优解;
变异操作公式如下:
其中V表示变异操作,c1表示[0,1)区间的随机数;
步骤5:交叉操作;
设计个体交叉操作使粒子在局部范围内搜索和全局交叉操作使粒子群向全局最优粒子收敛;
个体交叉操作是将粒子与其本身的历史最优位置交叉,使粒子进行局部搜索,公式如下:
其中C1表示个体交叉操作,c2表示[0,1)区间的随机数;
全局交叉操作是将粒子与粒子种群的最优情况交叉,加快粒子群的收敛速度,其公式如下:
其中C2表示个体交叉操作,c3表示[0,1)区间的随机数;
步骤6:适应度值的计算;
步骤6-1:适应度的计算以优化线长和半径为目标,其公式如下:
fitness=(1-dt)×WL+dt×PL (8)
其中WL表示线长;PL表示半径;dt是一个均衡线长和半径的平衡因子,随着迭代次数的增长进行线性增长,从而线性的改变线长和半径的比重,线性增长的公式如下:
其中ds为dt的初始值,de为dt的最终值;
步骤6-2:在线长的计算中加入障碍组的部分周长,从而减少绕障的线长,线长计算公式如下:
其中是边ese的线长,(xe,ye)和(xs,ys)分别为边ese的两个顶点坐标,/>为边ese穿过的障碍组的四分之一周长,其公式如下:
其中,(xbmin,ybmin)和(xbmax,ybmax)分别表示连线ese经过的障碍组的左下角坐标和右上角坐标;
WL是布线的总线长,其计算公式如下:
其中WLre是连线中重叠边的线长;
PL是布线的半径,其计算公式如下:
其中表示生成树/>的叶子节点,/>表示从源点到引脚pn的路径;
步骤7:时序松弛优化策略;
构建最优更新数组来保存更新的连线以及更新后的线长和WNS,将粒子群优化算法生成的最优粒子及其线长和WNS作为最优更新数组的初始值;
找到最优粒子中具有最坏负松弛值的引脚,并确定该引脚所在的从源点到汇点的最长路径,假设在该条路径上,从源点到叶子节点之间的引脚分别为p1,p2…,pl;遍历该条路径上除源点以及源点的下一个引脚外的所有引脚pi,即i≠1,2,删除pi与pi-1的连线,并将pi与p1,p2…,pi-2逐一相连;将每次更新后的线长和WNS与最优更新的线长和WNS进行对比,将得到以下四种结果之一:
(1)线长以及WNS都得到优化,则将其替换为最优更新;
(2)线长得到优化,WNS未被优化,若减少的线长大于减少的WNS,则将其替换为最优更新,反之跳过该更新;
(3)线长未得到优化,WNS被优化,则将其替换为最优更新;
(4)线长和WNS都未得到优化,则跳过该更新;
步骤8:连线方式的选取;
当连线经过障碍时,删除该条连线,并分别用4种连线方式连接两个引脚,并通过边障表判断是否经过障碍,此时有以下三种情况:
(1)若连线方式0或连线方式1未经过障碍,则用连线方式0或连线方式1连接两个引脚;
(2)若连线方式0和连线方式1都经过障碍但连线方式2或连线方式3未经过障碍,则对比连线方式0和连线方式1经过的障碍组的半周长,用半周长最小的连线连线方式连接两个引脚,并进入伪Steiner点的选取;
(3)若连线方式0、连线方式1、连线方式2和连线方式3都经过障碍,则对比连线方式0、连线方式1、连线方式2和连线方式3经过的障碍组的半周长,用半周长最小的连线方式连接两个引脚,并进入伪Steiner点的选取;
步骤9:伪Steiner点的选取;
确定两个引脚之间的连线方式所经过的障碍组的左下角和右上角的坐标,将两个引脚直接相连,连线与障碍组之间的联系有以下三种:
(1)连线未与障碍组相交时,选择与连线的垂直距离最短的障碍组内的障碍的顶角作为伪Steiner点;
(2)连线与障碍组相邻的两边相交时,若连线与障碍组的左边和上边相交,则选取障碍组的左上角为伪Steiner点;若连线与障碍组的左边与下边相交,则选取障碍组的左下角为伪Steiner点,以此类推;若上述选取的伪Steiner点不属于障碍组内的障碍的顶角,则选择距离该伪Steiner点最近的障碍组内的障碍的顶角来代替删除该伪Steiner点;
(3)连线与障碍组相对的两边相交时,障碍组被连线划分为两个部分,选择周长较小的那一部分的两个顶角作为伪Steiner点;若选取的伪Steiner点不属于障碍组内的障碍的顶角,则选择距离该伪Steiner点最近的障碍组内的障碍的顶角来代替删除该伪Steiner点;
步骤10:绕障策略;
首先,通过边障表判断连线是否经过障碍,若经过障碍,则删除该条连线,选取伪Steiner点,并增添新的连线;若未经过障碍,则跳过该条连线,继续判断下一条连线是否经过障碍;最后根据新的生成树更新边障表,循环以上操作直至所有连线都不经过障碍,则绕障结束;
步骤11:路径精炼策略;
通过路径精炼策略增加连线的共享边长度,从而得到拥有更短线长的布线结构;
首先,计算每个引脚的度,并记录与该引脚相连的所有引脚;如果引脚的度为D,则列出引脚的4D种布线结构,并选择满足绕障约束并具有最小线长和延迟的连线作为最佳连线;其次,计算每个布线的共享边长度WLre,并根据共享边的长度按降序排列;最后,将引脚的初始布线结构替换为其最优布线结构。
2.根据权利要求1所述的一种时序松弛约束下超大规模集成电路绕障X结构布线方法,其特征在于,所述变异操作为随机删除生成树的一条边后,利用并查集划分两棵树的引脚并分别放入两个集合之中,再从两个集合中随机选出两个引脚,并将其相连。
3.根据权利要求1所述的一种时序松弛约束下超大规模集成电路绕障X结构布线方法,其特征在于,所述交叉操作首先将两棵生成树中相同的连线放入一个集合作为下一代粒子的部分连线,接着将两个粒子中的不同连线放入另一个集合,利用并查集随机的从第二个集合里挑选连线作为下一代粒子的剩余连线,直到构成一棵完整的生成树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310551173.1A CN116451639A (zh) | 2023-05-16 | 2023-05-16 | 时序松弛约束下超大规模集成电路绕障x结构布线方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310551173.1A CN116451639A (zh) | 2023-05-16 | 2023-05-16 | 时序松弛约束下超大规模集成电路绕障x结构布线方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116451639A true CN116451639A (zh) | 2023-07-18 |
Family
ID=87120375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310551173.1A Pending CN116451639A (zh) | 2023-05-16 | 2023-05-16 | 时序松弛约束下超大规模集成电路绕障x结构布线方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116451639A (zh) |
-
2023
- 2023-05-16 CN CN202310551173.1A patent/CN116451639A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | Applying multi-objective ant colony optimization algorithm for solving the unequal area facility layout problems | |
Cong et al. | DUNE: A multi-layer gridless routing system with wire planning | |
Alexander et al. | New performance-driven FPGA routing algorithms | |
WO2021253744A1 (zh) | 基于离散粒子群优化的轨道规划方法 | |
Ban et al. | Query optimization of distributed database based on parallel genetic algorithm and max-min ant system | |
Chen et al. | A survey of swarm intelligence techniques in VLSI routing problems | |
CN105975674B (zh) | 一种船舶分支管路路径规划方法 | |
WO2000038228A1 (fr) | Appareil et procede de cablage brute et support d'enregistrement conservant un programme de cablage brute | |
CN107092978B (zh) | 一种面向虚拟地球的最短路径分层规划方法 | |
CN113591427B (zh) | 考虑单位移动和复杂布线约束的增量三维全局布线方法 | |
Xu et al. | MGR: Multi-level global router | |
Dousti et al. | Minimizing the latency of quantum circuits during mapping to the ion-trap circuit fabric | |
CN113917925B (zh) | 一种基于改进遗传算法的移动机器人路径规划方法 | |
CN110225096B (zh) | 基于遗传算法的服务器负载均衡方法 | |
Singh et al. | A review on VLSI floorplanning optimization using metaheuristic algorithms | |
Wang et al. | Latency-aware mapping for 3D NoC using rank-based multi-objective genetic algorithm | |
Li et al. | Obstacle-avoiding rectilinear Steiner tree construction | |
Chou et al. | Wire length and delay minimization in general clock net routing | |
CN116451639A (zh) | 时序松弛约束下超大规模集成电路绕障x结构布线方法 | |
CN115494840B (zh) | 一种基于蒙特卡洛因子的mc-iaco的焊接机器人路径规划方法 | |
Laskar et al. | A survey on VLSI floorplanning: its representation and modern approaches of optimization | |
CN117135087A (zh) | 一种面向轻重边有效分离的双层邻接矩阵图流测量方法 | |
Liu et al. | Two-Stage Competitive Particle Swarm Optimization Based Timing-Driven X-Routing for IC Design Under Smart Manufacturing | |
Chen et al. | Timing-driven X-architecture Steiner minimum tree construction based on social learning multi-objective particle swarm optimization | |
CN111881327A (zh) | 基于顶点重排序与优先缓存的大数据处理能力测试方法 |
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 |