CN103902775B - 超大规模集成电路多层绕障Steiner最小树构造方法 - Google Patents

超大规模集成电路多层绕障Steiner最小树构造方法 Download PDF

Info

Publication number
CN103902775B
CN103902775B CN201410124000.2A CN201410124000A CN103902775B CN 103902775 B CN103902775 B CN 103902775B CN 201410124000 A CN201410124000 A CN 201410124000A CN 103902775 B CN103902775 B CN 103902775B
Authority
CN
China
Prior art keywords
particle
wiring
represent
tree
value
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
Application number
CN201410124000.2A
Other languages
English (en)
Other versions
CN103902775A (zh
Inventor
郭文忠
陈国龙
刘耿耿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Lixin Software Technology Co ltd
Original Assignee
Fuzhou University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuzhou University filed Critical Fuzhou University
Priority to CN201410124000.2A priority Critical patent/CN103902775B/zh
Publication of CN103902775A publication Critical patent/CN103902775A/zh
Application granted granted Critical
Publication of CN103902775B publication Critical patent/CN103902775B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明涉及一种超大规模集成电路多层绕障Steiner最小树构造方法,包括以下步骤:1、读取基准测试电路网络数据;2、初始化种群规模、迭代次数等参数,并随机产生初始种群;3、采用粒子更新公式更新每个粒子的位置和速度;4、采用基于惩罚机制的适应度计算函数计算新粒子的适应度值,并判断新粒子的适应度值是否小于粒子的历史最优值,是则将新粒子更新为粒子的历史最优粒子;5、判断新粒子的适应度值是否小于种群的全局最优值,是则将新粒子更新为种群的全局最优粒子;6、判断是否满足迭代终止条件,是则输出最终的布线树,否则返回步骤3进行下一次迭代。该方法有利于降低布线总代价,提高布线树的质量。

Description

超大规模集成电路多层绕障Steiner最小树构造方法
技术领域
本发明属于集成电路计算机辅助设计技术领域,具体涉及一种X结构下带粒子群优化的超大规模集成电路多层绕障Steiner最小树构造方法。
背景技术
超大规模集成电路(very large scale integration,VLSI)设计中多层绕障X结构Steiner最小树(multilayer obstacle-avoiding X-architecture Steiner minimaltree,ML-OAXSMT)问题是给定布线层上一系列布线引脚和障碍物集合,通过X结构边连接每个布线层上的引脚且布线层之间借助通孔连接,在布线边和通孔不穿越障碍物的约束下,构建布线总代价最小的Steiner树。ML-OAXSMT问题是考虑到障碍物、X结构、多层等三个条件的Steiner最小树模型。
Steiner最小树作为ML-OAXSMT问题的基础模型是布线中多端线网连接的最佳模型。近年来超大规模集成电路设计中芯片会存在宏单元、IP预布好的线网等布线障碍物,在此基础上考虑到障碍物的Steiner最小树问题受到广泛的关注。单层绕障Steiner最小树的构建方法主要包含四类:先构造再替换法、不确定性算法、基于生成图的方法、精确算法。第一种方法主要是在不考虑障碍物的情况下先构建布线端点集合的Steiner最小树,然后对其中穿过障碍物的边替换成经过障碍物边界的布线边,该类算法过程简单,但容易获得较低质量的布线方案。不确定性算法是基于一些元启发式策略的,主要包括基于局部搜索的蚁群算法和基于粒子群优化算法。很多绕障算法都属于第三类基于生成图的方法,其中生成图一般包含引脚端点和部分障碍物端点,在一定程度上减低了问题求解空间的复杂度,并在此基础上取得线长与运行时间较为折中的方案。第四种方法是能够得到准确方案的精确算法,主要是基于GeoSteiner方法的两阶段算法,首先构造考虑障碍的完全Steiner树(full Steiner trees,FSTs),继而构建整数规划模型并利用分支定界策略从中选取若干FSTs用于构建最后的考虑障碍物的矩形Steiner最小树。
目前关于布线树的相关研究工作主要集中在曼哈顿结构,但基于曼哈顿结构进行线长与时延的优化,由于其布线走向有限,不能够充分地利用布线区域,导致互连线资源的过分冗余。故基于曼哈顿结构的优化策略在进行互连线线长优化时,其优化能力受限。因此,有必要从根本入手,改变传统的曼哈顿结构,故研究人员开始尝试以非曼哈顿结构为基础模型进行布线,实现芯片整体性能的优化。 学者提出了在X结构下的布线树和布线算法的一些挑战和机遇,同时给出该结构下良好的展望,并指出在X结构下,Steiner最小树问题仍是最为关键的问题之一。学者对能带来可观的线长减少量等物理设计指标提高的非曼哈顿结构已展开研究,特别是出现专门的工业联盟推广X结构,为这样的研究提供实现和验证基础。但对于能带来线长、通孔、功耗等目标优化的非曼哈顿结构的绕障工作研究较少。
随着集成电路设计进入纳米领域,布线金属层数增加,线宽大幅度减少,而连线间距也大幅度减小,使电路的性能和密度得到了很大的提高,因此多层布线应运而生,并且引起了诸多研究机构的广泛关注。目前多层Steiner最小树工作大多集中在基于曼哈顿结构,即求解多层矩形Steiner最小树的构建问题。而对于非曼哈顿结构下多层绕障Steiner最小树的构建工作是考虑到线长和通孔数的优化,分别对每个布线层进行绕障Steiner最小树的构建工作,再为每两个毗邻布线层寻找最短的连接路径。但该方法将多层绕障Steiner最小树问题转换为多个单层绕障Steiner最小树问题,未能从多层结构的全局角度寻找解方案,很大程度影响布线解的质量。
发明内容
本发明的目的在于克服现有技术的不足,提供一种超大规模集成电路多层绕障Steiner最小树构造方法,该方法有利于降低布线总代价,提高布线树的质量。
为实现上述目的,本发明的技术方案是:一种超大规模集成电路多层绕障Steiner最小树构造方法,包括以下步骤:
步骤1:读取基准测试电路网络数据,并按照层数和坐标大小进行升序排序;
步骤2:初始化种群规模、迭代次数等参数,对优化参数进行编码并随机产生初始种群;
步骤3:采用粒子更新公式更新每个粒子的位置和速度,得到新粒子;
步骤4:采用基于惩罚机制的适应度计算函数计算新粒子的适应度值,并判断新粒子的适应度值是否小于粒子的历史最优值,是则将新粒子更新为粒子的历史最优粒子,并转步骤5,否则直接转步骤5;
步骤5:判断新粒子的适应度值是否小于种群的全局最优值,是则将新粒子更新为种群的全局最优粒子,并转步骤6,否则直接转步骤6;
步骤6:判断是否满足迭代终止条件,是则输出最终的布线树,否则返回步骤3进行下一次迭代。
进一步的,该方法采用适合X结构和多层布线的边点对编码方法对X结构多层Steiner树进行编码:用布线树的边集合编码相应的Steiner树,每条边的编码采用四位数字串表示,前两位表示边所连接两引脚的引脚编号,第三位走线方式位pspc表示边的伪Steiner点选择方式,最后一位用以记录布线边走线是否穿越障碍物及其产生的通孔数,正数代表未穿越障碍物,负数代表穿越障碍物,数值大小代表通孔数。
进一步的,所述基于惩罚机制的适应度计算函数F(X)为:
其中N(X)=cost(T),S(X)=cost(T),e表示属于布线树T的边,penalty(e)的计算公式f 1(x)为:
其中lbub是值大于1的自定义参数,x表示边e编码中的走线状态位的数值,lmax表示布线层的最大编号;
cost(T)表示布线树T的布线总代价,其计算公式为:
其中Odis(i, j)表示引脚i和引脚j之间的距离,其计算公式为:
其中x i y i x j y j 分别表示引脚i的水平坐标、垂直坐标和引脚j的水平坐标、垂直坐标,min(xy)表示|x i x j |和|y i y j |之间的最小值,min(xy) = min(|x i x j |, |y i y j |),max(xy)表示|x i x j |和| y i y j |之间的最大值,max(xy) = max(|x i x j |, |y i y j |);
C via (i, j)表示通孔代价,C via (i, j) = |z i z j C v ,其中z i z j 分别表示引脚ij所在布线层的Z轴坐标,C v 为一参数。
进一步的,所述粒子更新公式为:
其中,分别表示第i个粒子在第t代、第t-1代的解方案,w为惯性权重因子,c 1c 2分别为加速因子,N 1表示变异算子,N 2N 3分别表示交叉算子;wc 1c 2的取值均采用如下的线性递减的方法进行更新:
其中c 1_start表示加速因子c 1的迭代初始值,c 1_end表示加速因子c 1的迭代最终值,c 2_start表示加速因子c 2的迭代初始值,c 2_end表示加速因子c 2的迭代最终值,w_start表示惯性权重因子w的迭代初始值,w_end表示惯性权重因子w的迭代最终值,eval表示当前迭代次数,evaluations表示最大迭代次数;
粒子的自身速度更新方法如下:
其中,表示变异后粒子的速度变量,表示第i个粒子在第t-1代的解方案;为变异操作,当产生的随机数r 1满足r 1<w时,随机产生一条待变异的边进行变异,变异边被去除后产生两棵子树;采用并查集记录所述两棵子树所对应的两个引脚集合,并从所述两个引脚集合中各自随机选取一个点组成变异后边的两个端点,得到变异后的边;同时随机选择粒子的一个走线方式位,并在集合[0,1,2,3]中按概率选取一个值作为变异后的走线方式位;
粒子与粒子的历史最佳位置和种群全局最佳位置进行交流的方法如下:
其中表示粒子与其历史最佳位置交流学习后的速度,表示粒子与种群全局最优粒子交流学习后的位置,r 1r 2r 3为[0,1]的随机数;算子表示粒子与粒子的历史最佳位置进行交流学习,同时算子表示与种群的全局最佳位置进行交流学习,这两个交流学习过程均采用交叉操作进行,其中交叉操作过程为:随机产生一个数,若大于加速因子c 1c 2,则保留待交叉粒子与历史最优粒子或种群全局最优粒子的共同部分,再从两者的剩余边集合中随机选取一条边加入到该粒子直至构造出一棵完整的布线树;此时,采用并查集记录相关端点信息,避免所选边的加入引起环路问题。
进一步的,该方法在进入迭代过程之前,预计算所有可能走线边的走线状态位并存储,在进行迭代时直接查询所需要的走线状态位的数值,以降低走线状态位的计算次数。
本发明的有益效果是提供了一种在超大规模集成电路中考虑到障碍物存在的情况、X结构的引入和多层布线需求的Steiner最小树的构造方法,该方法以优化布线树线长和通孔数为目标,实现了对布线总代价这一多层布线最重要目标的优化。该方法从多层布线的全局角度考虑多层绕障Steiner最小树的构造,获得了优秀的解方案,提高了布线树的质量,为布线问题提供了较好的布线树,具有很强的实用性和广阔的应用前景。
附图说明
图1 是本发明实施例的实现流程图。
图2 是本发明实施例中四种边的伪Steiner点选择方式的示意图。
图3 是本发明实施例中Steiner点变换策略与边变换策略示意图。
图4 是本发明实施例中带并查集策略的变异操作示意图。
图5 是本发明实施例中带并查集策略的交叉操作示意图。
具体实施方式
本发明超大规模集成电路多层绕障Steiner最小树构造方法,如图1所示,包括以下步骤:
步骤1:读取基准测试电路网络数据,并按照层数和坐标大小进行升序排序。该方法在进入迭代过程之前,预计算所有可能走线边的走线状态位并存储,在进行迭代时直接查询所需要的走线状态位的数值,以降低走线状态位的计算次数。
步骤2:初始化种群规模、迭代次数等参数,对优化参数进行编码并随机产生初始种群。
该方法采用适合X结构和多层布线的边点对编码方法对X结构多层Steiner树进行编码:用布线树的边集合编码相应的Steiner树,每条边的编码采用四位数字串表示,前两位表示边所连接两引脚的引脚编号,第三位走线方式位pspc表示边的伪Steiner点选择方式,最后一位用以记录布线边走线是否穿越障碍物及其产生的通孔数,正数代表未穿越障碍物,负数代表穿越障碍物,数值大小代表通孔数。
步骤3:采用改进的粒子更新公式更新每个粒子的位置和速度,得到新粒子。
所述改进的粒子更新公式为:
其中,分别表示第i个粒子在第t代、第(t-1)代的解方案,w为惯性权重因子,c 1c 2分别为加速因子,N 1表示变异算子,N 2N 3分别表示交叉算子;惯性权重w和加速因子c 1c 2的取值均采用如下的线性递减的方法进行更新:
其中c 1_start表示加速因子c 1的迭代初始值,c 1_end表示加速因子c 1的迭代最终值,c 2_start表示加速因子c 2的迭代初始值,c 2_end表示加速因子c 2的迭代最终值,w_start表示惯性权重因子w的迭代初始值,w_end表示惯性权重因子w的迭代最终值,eval表示当前迭代次数,evaluations表示最大迭代次数;
粒子的自身速度更新方法如下:
其中,表示变异后粒子的速度变量,w表示变异概率,表示第i个粒子在第t-1代的解方案;为变异操作,如图4所示,当产生的随机数r 1满足r 1<w时,随机产生一条待变异的边进行变异,变异边M被去除后产生两棵子树;采用并查集记录所述两棵子树所对应的两个引脚集合,并从所述两个引脚集合中各自随机选取一个点组成变异后边的两个端点,得到变异后的边M’;同时随机选择粒子的一个走线方式位,并在集合[0,1,2,3]中按概率选取一个值作为变异后的走线方式位;
粒子与粒子的历史最佳位置和种群的全局最佳位置进行交流的方法如下:
其中表示粒子与其历史最佳位置交流学习后的速度,表示粒子与种群全局最优粒子交流学习后的位置,r 1r 2r 3为[0,1]的随机数;算子表示粒子与粒子的历史最佳位置进行交流学习,同时算子表示与种群的全局最佳位置进行交流学习,这两个交流学习过程均采用交叉操作进行,其中交叉操作过程为(如图5所示):随机产生一个数,若大于加速因子c 1(c 2) ,将保留待交叉粒子与历史最优粒子(种群全局最优粒子)共同部分,再从两者的剩余边集合{C1,C2,C3,C4,C5,C6}中随机选取一条边加入到该粒子直至构造出一棵完整的布线树;此时,采用并查集记录相关端点信息,避免所选边的加入引起环路问题。
步骤4:采用基于惩罚机制的适应度计算函数计算新粒子的适应度值,并判断新粒子的适应度值是否小于粒子的历史最优值,是则将新粒子更新为粒子的历史最优粒子,并转步骤5,否则直接转步骤5。
所述基于惩罚机制的适应度计算函数F(X)为:
其中N(X)=cost(T),S(X)=cost(T),e表示属于布线树T的边,penalty(e)的计算公式f 1(x)为:
其中lbub是值大于1的自定义参数,x表示边e编码中的走线状态位的数值,lmax表示布线层的最大编号;
cost(T)表示布线树T的布线总代价,其计算公式为:
其中Odis(i, j)表示引脚i和引脚j之间的距离,其计算公式为:
其中x i y i x j y j 分别表示引脚i的水平坐标、垂直坐标和引脚j的水平坐标、垂直坐标,min(xy)表示|x i x j |和|y i y j |之间的最小值,min(xy) = min(|x i x j |, |y i y j |),max(xy)表示|x i x j |和| y i y j |之间的最大值,max(xy) = max(|x i x j |, |y i y j |);
C via (i, j)表示通孔代价,C via (i, j) = |z i z j C v ,其中z i z j 分别表示引脚ij所在布线层的Z轴坐标,C v 为一参数。
步骤5:判断新粒子的适应度值是否小于种群的全局最优值,是则将新粒子更新为种群的全局最优粒子,并转步骤6,否则直接转步骤6。
步骤6:判断是否满足迭代终止条件,是则输出最终的布线树,否则返回步骤3进行下一次迭代。
下面结合附图及具体实施例对本发明作进一步说明。
1.编码设计
本发明方法采用适合X结构和多层布线的边点对编码方法对X结构多层Steiner树进行编码。用布线树的边集合编码相应的Steiner树,每条边的编码采用四位数字串表示。前两位表示边所连接两引脚的引脚编号。第三位走线方式位pspc表示边的伪Steiner点选择方式(如定义2-5所示的四种方式),其中pspc的取值包含0、1、2、3,分别代表0选择、1选择、2 选择、3选择等四种方式。最后一位是走线状态位label,用以记录布线边走线是否穿越障碍物及其产生的通孔数,正数代表未穿越障碍物,负数代表穿越障碍物,数值大小则代表通孔数。如果一个线网有n个引脚,其对应的生成树就有n-1条边,n-1个走线方式位,加上1位的适应度函数值。另外,一条边需要两位引脚编号表示,故相应粒子的长度为4(n-1)+1。
定义 1 (伪Steiner点) 假设除了引脚外的连接点,称为伪Steiner点。图2中的S1和S2均为伪Steiner点,伪Steiner点中包含Steiner点。
定义 2 (0选择) 如图2(a)所示,(x 1y 1z 1) 和(x 2y 2z 2)为边L的两个端点P1和P2,其中x 1 <x 2 。边L对应的伪Steiner点的选择如图2(b)所示,从P1先引曼哈顿结构边至S1,再由通孔连接到P2所在的布线层上的S2 (若是P1和P2在同一布线层,则不需要引入通孔,此时S1和S2是重合的),最后从S2引非曼哈顿结构边至P2,则称作0选择。
定义 3 (1选择) 图2(c)所示,从P1先引非曼哈顿结构边至S1,再由通孔连接到P2所在的布线层上的S2,最后从S2引曼哈顿结构边至P2,则称作1选择。
定义 4 (2选择) 图2(d)所示,从P1先引竖直边至S1,再由通孔连接到P2所在的布线层上的S2,最后从S2引水平边至P2,则称作2选择。
定义 5 (3选择) 图2(e)所示,从P1先引水平边至S1,再由通孔连接到P2所在的布线层上的S2,最后从S2引竖直边至P2,则称作3选择。
2.适应度函数设计
X结构多层绕障Steiner最小树问题中布线树的代价除了包含布线树的长度,还需计算通孔的布线代价。在本发明的编码策略下,两个引脚ij的距离计算如下所示。
min(xy) = min(|x i x j |, |y i y j |)
max(xy) = max(|x i x j |, |y i y j |)
其中x i (x j ) 和 y i (y j )分别代表引脚i(j)的水平坐标和垂直坐标。|x i x j | (|y i y j |)代表相应的绝对值,min(max)则代表|x i x j |和|y i y j |之间的最小值(最大值)。
而通孔代价C via (i, j)则表示为|z i z j C v ,其中z i (z j )代表引脚i(j)所在布线层的Z轴坐标,C v 的取值一般为3或5。因此布线树T的布线总代价的计算如下所示:
布线树的边如果穿越障碍物,即违反ML-OAXSMT问题的约束,属于不可行解,但不可行解中可能会携带部分最优子结构信息,不能随意删除。为了克服这个问题,本发明设计了合适的惩罚函数,用以惩罚布线边穿越障碍物的情况,以一定概率保留这些不可行解,从而确保最后解方案的质量。同时通孔数是VLSI芯片设计中考虑到可布性和可制造性的一个重要优化指标。而在多层布线环境下,通孔的产生是不可避免的,但可采取有效的措施以减少通孔数。因此,本发明在适应度计算函数所引入的惩罚机制,对产生通孔情况也施加一定的惩罚力度。
惩罚函数是用来对优化问题中出现的不满足约束条件的解方案施以相应的惩罚,即惩罚目标函数,达到从目标函数上一定程度标识违反约束的程度,并同时保留这类解方案不被随意删除,在后续的进化过程中有机会呈现该类解方案所保留的局部最佳信息,增强种群的多样性。基于此,算法的适应度函数为
其中N(X)=cost(T),S(X)=cost(T),e代表属于布线树T的边。实验测试中,的计算如下所示。
其中lbub是用户自定义且值大于1的参数,本发明算法取lb=10/9,ub=2,x代表边e编码中的走线状态位的数值,lmax代表布线层的最大编号。此外,为了区别同一层绕障与否的情况,本发明设置在同一布线层不违反绕障约束的边e的走向状态位值为0,而违反绕障约束的边走线状态位值为-0.9。
3.操作算子设计
引入了遗传算法中的交叉和变异算子,并结合并查集思想,构造了适合ML-OAXSMT问题的离散型PSO算法的操作算子。粒子的更新公式如下所示:
其中,分别表示第i个粒子在第t代、第(t-1)代的解方案,w为惯性权重因子,c 1c 2是加速因子, N 1表示变异算子,N 2N 3表示交叉算子。这里假设r 1r 2r 3是[0,1]的随机数。算法的惯性权重w和加速因子c 1c 2的取值均采用线性递减的策略进行更新,如下所示。
其中c 1_start表示加速因子c 1的迭代初始值,c 1_end表示加速因子c 1的迭代最终值,c 2_start表示加速因子c 2的迭代初始值,c 2_end表示加速因子c 2的迭代最终值,w_start表示惯性权重因子w的迭代初始值,w_end表示惯性权重因子w的迭代最终值,eval表示当前迭代次数,evaluations表示最大迭代次数。
在X结构Steiner最小树构造工作中,更新操作如果只考虑到Steiner点的变换,将使得Steiner树在绕障能力方面受限。例如在图3(a)所示的例子, 边违反绕障约束,只考虑Steiner点变化的更新操作,可通过将边的选择从0方式变换为2方式,则可得到如图3(b)所示的不违反绕障约束的布线树,即边不穿越障碍物。而在图3(c)所示的情况,如果单纯考虑Steiner点的变换,只能得到类似图3(d)所示的违反绕障约束的Steiner树。从而造成布线树在进化过程中不具备绕开障碍物的可能,而需改变布线树的拓扑,即在更新操作中引入边变换策略,将边的连接转换为边的连接,可得到如3(b)所示的绕障Steiner树。因此,本发明在X结构多层绕障Steiner最小树问题中引入边变换策略。
边变换策略的引入,使得算法在进化过程中不仅加强了布线树的绕障能力,而且进一步提高了布线树线长的优化能力。如表1所示,边变换策略的引入(称为EXSMT算法)相对只考虑Steiner点变换的方法(称为XSMT算法)[Liu GG, Chen GL, Guo WZ. DPSO basedoctagonal Steiner tree algorithm for VLSI routing. Proceeding of the fifthinternational conference on advanced computational intelligence. Nanjing,China: IEEE Computer Society Press, 2012: 383-387],取得了线长1.57%的优化效果。其中,测试实例是来源于OR-Library中的测试集合[Beasley JE. OR-Library:distributing test problems by electronic Mail. Journal of the OperationalResearch Society, 1990, 41 (11): 1069- 1072]。
但存在这样的问题:边变换策略的引入,可能使得在进化过程中,布线树中存在环路问题,导致无效解的产生。为了克服引入边变换策略带来的缺陷,本发明在N 1 N 2 N 3 操作算子融入了并查集的思想,用以记录布线树各部分的连接状态,从而指导操作算子进行布线边选择以避免环路的产生,具体的指导过程体现如下。
粒子的自身速度更新部分如下所示:
其中,w代表变异概率,表示第i个粒子在第t-1代的解方案。是变异操作,当算法中产生的随机数r 1满足r 1<w时,算法将随机产生一条待变异的边进行变异。如图4所示,变异边M被去除后将产生两个子树。本发明使用并查集记录这两棵子树所对应的两个引脚集合,并从这两个集合中各自随机选取一个点组成变异后边的两个端点,得到变异后的边M’。同时随机选择粒子的一个走线方式位,并在集合[0,1,2,3]中按概率选取一个值作为变异后的走线方式位。
粒子与自身历史最佳位置和种群最佳位置进行交流的过程如下所示:
其中,算子表示粒子与粒子的历史最佳位置进行交流学习,同时 算子表示将与种群的全局的历史最佳位置进行交流学习。这两个交流学习过程均采用交叉操作进行,其中交叉操作的设计过程:如图5所示,左边为历史最优粒子(种群全局最优粒子),右边为待交叉粒子。随机产生的一个数,若大于加速因子c 1(c 2) ,将保留待交叉粒子与历史最优粒子(种群全局最优粒子)共同部分,再从两者的剩余边集合{C1,C2,C3,C4,C5,C6}中随机选取一条边加入到该粒子直至构造出一棵完整的布线树,这里选取了边集合为{C1,C3,C5}。此时,需要引入并查集思想记录相关端点信息,避免所选边的加入引起环路问题。
4.预处理设计
基于PSO的ML-OAXSMT的算法设置了走线状态位用以记录走线是否穿越障碍物及其产生的通孔数,走线状态位的计算复杂度是影响算法速度的主要因素之一。如果未采取任何措施,需要在迭代中每次计算粒子适应度函数值时计算走线状态位,而这就需要重新判断粒子解码后相应布线树的绕障情况及其通孔数的计算。这样将导致重复判断很多布线边的绕障情况和通孔数计算,从而增加算法的计算时间。为此,本发明引入计算走线状态位的预处理策略,在算法未进入迭代过程前,计算所有可能走线边的走线状态位并存储在数组中,算法在进行迭代时直接查询所需要的走线状态位的数值,从而大大降低了走线状态位的计算次数,避免一些冗余计算。具体计算次数的减少程度如表2所示。在所有基准测试电路中进行测试,采取预处理策略(WP)相对未采取预处理策略(WOP)走线状态位的计算次数减少95.14%,从实验效果上说明了预处理策略的有效性。
最终,综合上述步骤,以最小化布线总代价为目标,并同时考虑到通孔数的优化,构建了一种基于离散PSO算法和惩罚机制的多层X结构绕障Steiner最小树算法。为了验证该算法的有效性,将该算法(该方法称为OURS)将在基准测试电路上的实验结果跟文献[LinCW, Huang SL, Hsu KC, et al. Multilayer obstacle-avoiding rectilinear Steinertree construction based on spanning graphs [J]. IEEE Transactions onComputer-Aided Design of Integrated Circuits and Systems, 2008,27 (11): 2007-2016]中提出的先构造后修正的方法(该方法称为CC)、基于生成图的ML-OARSMT算法(该方法称为SG)以及文献[Liu CH, Chen IC, Lee DT. An efficient algorithm for multi-layer obstacle-avoiding rectilinear Steiner tree construction. Proceeding ofthe 49th ACM/ EDAC/ IEEE Design Automation Conference. San Francisco, USA:IEEE Computer Society Press, 2012: 613-622]中提出的ML-OARSMT算法(该方法称为VG)进行对比,对比结果如表3-4所示表3是在通孔代价为3时,本发明算法与其他算法在布线总代价方面的对比情况.表3中第1列是基准测试电路的名称,第2列列举了基准测试电路的引脚数、障碍物数目、总的布线层数,第3-4列为三种ML-OARSMT算法与本发明算法的布线总代价值,最后3列为本发明算法在布线总代价方面相对三种ML-OARSMT算法的改进情况.从表3可看出,本发明算法在C v =3时相对CC、SG、VG三种ML-OARSMT算法在布线总代价分别取得40.21%、10.76%、7.97%的平均减少率,最高的减少率甚至达到80%(在ind4上),说明本算法由于引入X结构并且基于多层结构的全局角度开展多层布线,从而相对目前相关工作而言具有较强的布线总代价优化能力。
表4是在通孔代价C v =3时本发明算法与三种ML-OARSMT算法在通孔数方面的对比情况.从表4可以看出,本发明算法在C v =3时,相对三种ML-OARSMT算法在通孔数方面分别取得39.74%、26.11%、24.19%的平均较少率.其中由于在ind4,ind5两组基准测试电路的障碍物是分布在多个布线层,而引脚均在单个布线层上,因而所有算法在这两组基准测试电路中均优化到未产生通孔的情况,即相应的通孔数均为0。由于本发明算法相对三种ML-OARSMT算法能取得可观的通孔减少率,说明本发明设计的惩罚机制带来了一定的通孔优化能力。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

Claims (3)

1.一种超大规模集成电路多层绕障Steiner最小树构造方法,其特征在于,包括以下步骤:
步骤1:读取基准测试电路网络数据,并按照测试电路中引脚所在的层数和坐标大小进行升序排序;
步骤2:初始化包括种群规模和迭代次数的优化参数,对X结构多层Steiner树进行编码并随机产生初始种群;
步骤3:采用粒子更新公式更新每个粒子的位置和速度,得到新粒子;
步骤4:采用基于惩罚机制的适应度计算函数计算新粒子的适应度值,并判断新粒子的适应度值是否小于粒子的历史最优值,是则将新粒子更新为粒子的历史最优粒子,并转步骤5,否则直接转步骤5;
步骤5:判断新粒子的适应度值是否小于种群的全局最优值,是则将新粒子更新为种群的全局最优粒子,并转步骤6,否则直接转步骤6;
步骤6:判断是否满足迭代终止条件,是则输出最终的布线树,否则返回步骤3进行下一次迭代;
该方法采用一种适合X结构和多层布线的边点对编码方法,对X结构多层Steiner树进行编码:用布线树的边集合编码相应的Steiner树,每条边的编码采用四位数字串表示,前两位表示边所连接两引脚的引脚编号,第三位表示边的伪Steiner点选择方式,最后一位用以记录布线边走线是否穿越障碍物及其产生的通孔数,正数代表未穿越障碍物,负数代表穿越障碍物,数值大小代表通孔数;
基于惩罚机制的适应度计算函数F(X)为:
F ( X ) = N ( X ) + Q * S ( X ) = &Sigma; e &Element; T p e n a l t y ( e ) * cos t ( T )
其中N(X)=cost(T),S(X)=cost(T),e表示属于布线树T的边,penalty(e)的计算公式f1(x)为:
f 1 ( x ) = l b - 1 l max x + 1 , x > 0 u b - 1 - l m a x x + 1 , x &le; 0
其中lb、ub是值大于1的自定义参数,x表示边e编码中的走线状态位的数值,lmax表示布线层的最大编号;
cost(T)表示布线树T的布线总代价,其计算公式为:
cos t ( T ) = &Sigma; ( i , j ) &Element; T cos t ( i , j ) = &Sigma; ( i , j ) &Element; T ( O d i s ( i , j ) + C v i a ( i , j ) )
其中Odis(i,j)表示引脚i和引脚j之间的距离,其计算公式为:
O d i s ( i , j ) = ( 2 - 1 ) m i n ( x y ) + m a x ( x y ) , i f p s p c = 0 o r 1 | x i - x j | + | y i - y j | , e l s e
其中xi、yi和xj、yj分别表示引脚i的水平坐标、垂直坐标和引脚j的水平坐标、垂直坐标,min(xy)表示|xi-xj|和|yi-yj|之间的最小值,min(xy)=min(|xi-xj|,|yi-yj|),max(xy)表示|xi-xj|和|yi-yj|之间的最大值,max(xy)=max(|xi-xj|,|yi-yj|)
Cvia(i,j)表示通孔代价,Cvia(i,j)=|zi-zj|×Cv,其中zi、zj分别表示引脚i、j所在布线层的Z轴坐标,Cv为一参数。
2.根据权利要求1所述的超大规模集成电路多层绕障Steiner最小树构造方法,其特征在于,所述粒子更新公式为:
X i t = N 3 ( N 2 ( N 1 ( X i t - 1 , w ) , c 1 ) , c 2 )
其中,分别表示第i个粒子在第t代、第t-1代的解方案,w为惯性权重因子,c1和c2分别为加速因子,N1表示变异算子,N2和N3分别表示交叉算子;w和c1、c2的取值均采用如下的线性递减的方法进行更新:
c 1 = c 1 _ s t a r t - c 1 _ s t a r t - c 1 _ e n d e v a l u a t i o n s &times; e v a l
c 2 = c 2 _ s t a r t - c 2 _ s t a r t - c 2 _ e n d e v a l u a t i o n s &times; e v a l
w = w _ s t a r t - w _ s t a r t - w _ e n d e v a l u a t i o n s &times; e v a l
其中c1_start表示加速因子c1的迭代初始值,c1_end表示加速因子c1的迭代最终值,c2_start表示加速因子c2的迭代初始值,c2_end表示加速因子c2的迭代最终值,w_start表示惯性权重因子w的迭代初始值,w_end表示惯性权重因子w的迭代最终值,eval表示当前迭代次数,evaluations表示最大迭代次数;
粒子的自身速度更新方法如下:
W i t = N 1 ( X i t - 1 , w ) = M ( X i t - 1 ) , r 1 < w X i t - 1 , o t h e r s
其中,Wi t表示变异后粒子的速度变量,表示第i个粒子在第t-1代的解方案;为变异操作,当产生的随机数r1满足r1<w时,随机产生一条待变异的边进行变异,变异边被去除后产生两棵子树;采用并查集记录所述两棵子树所对应的两个引脚集合,并从所述两个引脚集合中各自随机选取一个点组成变异后边的两个端点,得到变异后的边;同时随机选择粒子的一个走线方式位,并在集合[0,1,2,3]中按概率选取一个值作为变异后的走线方式位;
粒子与粒子的历史最佳位置和种群全局最佳位置进行交流的方法如下:
S i t = N 2 ( W i t , c 1 ) = C p ( W i t ) , r 2 < c 1 W i t , o t h e r s
X i t = N 3 ( S i t , c 2 ) = C g ( S i t ) , r 3 < c 2 S i t , o t h e r s
其中表示粒子与其历史最佳位置交流学习后的速度,表示粒子与种群全局最优粒子交流学习后的位置,r1、r2、r3为[0,1]的随机数;Cp(Wi t)算子表示粒子Wi t与粒子的历史最佳位置进行交流学习,同时算子表示与种群的全局最佳位置进行交流学习,这两个交流学习过程均采用交叉操作进行,其中交叉操作过程为:随机产生一个数,若大于加速因子c1或c2,则保留待交叉粒子与历史最优粒子或种群全局最优粒子的共同部分,再从两者的剩余边集合中随机选取一条边加入到该粒子直至构造出一棵完整的布线树;此时,采用并查集记录相关端点信息,避免所选边的加入引起环路问题。
3.根据权利要求2所述的超大规模集成电路多层绕障Steiner最小树构造方法,其特征在于,该方法在进入迭代过程之前,预计算所有可能走线边的走线状态位并存储,在进行迭代时直接查询所需要的走线状态位的数值,以降低走线状态位的计算次数。
CN201410124000.2A 2014-03-31 2014-03-31 超大规模集成电路多层绕障Steiner最小树构造方法 Active CN103902775B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410124000.2A CN103902775B (zh) 2014-03-31 2014-03-31 超大规模集成电路多层绕障Steiner最小树构造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410124000.2A CN103902775B (zh) 2014-03-31 2014-03-31 超大规模集成电路多层绕障Steiner最小树构造方法

Publications (2)

Publication Number Publication Date
CN103902775A CN103902775A (zh) 2014-07-02
CN103902775B true CN103902775B (zh) 2017-02-15

Family

ID=50994096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410124000.2A Active CN103902775B (zh) 2014-03-31 2014-03-31 超大规模集成电路多层绕障Steiner最小树构造方法

Country Status (1)

Country Link
CN (1) CN103902775B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105574237B (zh) * 2015-12-10 2018-12-21 广东顺德中山大学卡内基梅隆大学国际联合研究院 基于粒子群的系统级封装bga电源地引脚分布优化方法
CN107247844B (zh) * 2017-06-10 2020-11-03 福州大学 基于自适应PSO和混合转换策略的X结构Steiner最小树布线方法
CN107689922A (zh) * 2017-08-31 2018-02-13 青岛大学 基于微粒群算法的Steiner最优树计算方法及装置
CN107832519B (zh) * 2017-11-02 2021-01-29 福州大学 超大规模集成电路中高性能x结构多层总体布线方法
CN109033611B (zh) * 2018-07-20 2023-04-07 福州大学 一种vlsi多端点线网绕障碍的布线方法
CN109583133B (zh) * 2018-12-20 2022-05-17 福州大学 一种x结构下基于多阶段转换和遗传操作的粒子群优化斯坦纳最小树构造方法
CN110059405B (zh) * 2019-04-16 2022-05-13 福州大学 X结构下带差分进化的高质量Steiner最小树构建方法
CN110147632B (zh) * 2019-05-30 2020-11-10 福州大学 一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法
CN110222429A (zh) * 2019-06-10 2019-09-10 清华大学 多根线电流参数重建的优化方法
CN110795907B (zh) * 2019-09-30 2021-05-18 福州大学 一种考虑布线资源松弛的X结构Steiner最小树构造方法
CN111339726B (zh) * 2020-02-26 2022-04-05 福州大学 考虑电压转换速率的X结构Steiner树构造方法
CN111553125A (zh) * 2020-04-23 2020-08-18 福州立芯科技有限公司 一种考虑先进技术的超大规模集成电路详细布线方法
CN111539181B (zh) * 2020-04-28 2022-05-13 福州大学 基于离散差分进化的多策略优化x结构最小树构建方法
CN111723544A (zh) * 2020-06-18 2020-09-29 福州大学 X结构下考虑障碍内布线的Steiner树构建方法
CN111930613B (zh) * 2020-07-14 2023-11-28 深圳市紫光同创电子有限公司 待测芯片的测试用例生成方法、装置、电子设备以及介质
CN112347732A (zh) * 2020-11-27 2021-02-09 北京百瑞互联技术有限公司 一种集成电路分层走线规划方法、装置、存储介质及设备
CN113919280A (zh) * 2021-10-12 2022-01-11 福州大学 基于两阶段竞争粒子群优化的时延驱动xsmt构建方法

Citations (5)

* Cited by examiner, † Cited by third party
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
US5774690A (en) * 1995-09-14 1998-06-30 The United States Of America As Represented By The Secetary Of The Navy Method for optimization of element placement in a thinned array
CN1529268A (zh) * 2003-09-26 2004-09-15 清华大学 标准单元总体布线时障碍下的直角Steiner树方法
CN1588381A (zh) * 2004-07-06 2005-03-02 清华大学 超大规模集成电路避障碍的直角Steiner树方法
CN103324796A (zh) * 2013-06-21 2013-09-25 福州大学 一种大规模集成电路设计中的绕障直角斯坦纳树构造方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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
US5774690A (en) * 1995-09-14 1998-06-30 The United States Of America As Represented By The Secetary Of The Navy Method for optimization of element placement in a thinned array
CN1529268A (zh) * 2003-09-26 2004-09-15 清华大学 标准单元总体布线时障碍下的直角Steiner树方法
CN1588381A (zh) * 2004-07-06 2005-03-02 清华大学 超大规模集成电路避障碍的直角Steiner树方法
CN103324796A (zh) * 2013-06-21 2013-09-25 福州大学 一种大规模集成电路设计中的绕障直角斯坦纳树构造方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A Multi-layer Obstacles-Avoiding Router Using X-Architecture;Lin Y C,et al;《WSEAS Transactions on Circuits and Systems》;20081230;第7卷(第8期);第879-888页 *
Obstacle-Avoiding Octagonal Steiner Tree Construction Based on Particle Swarm Optimization;Huang X, et al;《Proceedings of the 9th International Conference on Natural Computation. Los Alamitos: IEEE Computer Society Press》;20131230;第539-543页 *
求解VLSI 布线问题的离散粒子群优化算法;刘耿耿等;《计算机科学》;20101030;第37卷(第10期);第197-201页 *

Also Published As

Publication number Publication date
CN103902775A (zh) 2014-07-02

Similar Documents

Publication Publication Date Title
CN103902775B (zh) 超大规模集成电路多层绕障Steiner最小树构造方法
CN112217202B (zh) 考虑灵活性投资的分布式新能源、储能与配电网规划方法
CN104332995B (zh) 基于改进粒子群算法的配电网重构优化方法
CN108734202A (zh) 一种基于改进bp神经网络的高压断路器故障诊断方法
CN104820865B (zh) 基于图论的智能配电网故障恢复智能优化方法
CN106487005A (zh) 一种考虑输配电价的电网规划方法
CN107748693A (zh) 云计算环境下的群组虚拟机调度策略
CN104036324B (zh) 一种基于遗传算法的通信网络容量可靠性最优设计方法
WO2021253744A1 (zh) 基于离散粒子群优化的轨道规划方法
CN105976048A (zh) 一种基于改进人工蜂群算法的输电网扩展规划方法
CN105279615A (zh) 一种基于双层规划的主动配电网网架规划方法
CN103106279A (zh) 一种同时基于节点属性以及结构关系相似度的聚类方法
CN112086958B (zh) 一种基于多步回溯强化学习算法的输电网扩展规划方法
CN107017618A (zh) 一种有源配电网供电区域划分方法及装置
CN105005823A (zh) 一种基于遗传算法的船舶分支管路路径规划方法
CN104734150A (zh) 配电网优化方法
Parvin et al. Linkage learning based on differences in local optimums of building blocks with one optima
CN107357965A (zh) 一种风电场集电线路的路径规划设计方法
CN104268629A (zh) 一种基于先验信息和网络固有信息的复杂网络社区检测方法
CN106127229A (zh) 一种基于时间序列类别的计算机数据分类方法
WO2023159845A1 (zh) 一种海上风电机组检修全过程优化方法及系统
CN101174261A (zh) 用于多正则表达式联合搜索的扩展有限状态机及搜索方法
CN105975694B (zh) 构建解决组合爆炸问题的级联贝叶斯网络的方法
CN115081587A (zh) 类脑计算机中脉冲神经网络在硬件上的运行部署方法
CN108198084A (zh) 一种复杂网络重叠社区发现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230105

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