基于混合离散粒子群优化的轨道分配器构建方法与流程

文档序号:18215828发布日期:2019-07-19 22:38阅读:277来源:国知局
基于混合离散粒子群优化的轨道分配器构建方法与流程

本发明涉及集成电路计算机辅助设计技术领域,具体涉及一种基于混合离散粒子群优化的轨道分配器构建方法。



背景技术:

在超大规模集成电路(verylargescaleintergration,vlsi)物理设计中,布线过程是一个及其复杂且容易出错的阶段。一般的布线过程包括总体布线和详细布线。总体布线将布线区域划分成了一组全局单元,其任务是确定各个线网的大致走线,即线网会经过哪些全局单元。总体布线的结果是得到一组经过若干个全局单元的直线段。在详细布线阶段,需要实现各线网中引脚和直线段之间的连接,即产生各线网在芯片上的最终走线。因此,详细布线结果的好坏直接关系到芯片设计的生产成本和产品质量。但事实上,总体布线忽略了许多详细布线的问题,二者之间存在很大程度的失配。

为了更好地指导详细布线,研究者们提出轨道分配,将其作为总体布线和详细布线之间的理想桥梁。在轨道分配阶段,一条线段与另一条线段或障碍物重叠的情况视为冲突。而目前,大多数轨道分配器通过最大化线段的数量来产生一个最小冲突的布线方案,忽略了局部线网这个更为贴近详细布线的关键问题,从而导致轨道分配的布线结果优化效果不明显。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于混合离散粒子群优化的轨道分配器构建方法,用以解决局部线网、线长、重叠冲突与障碍物等重要因素的轨道分配问题。

为实现上述目的,本发明采用如下技术方案:

一种基于混合离散粒子群优化的轨道分配器构建方法,包括以下步骤:

步骤s1:对全局线网进行抽象处理,抽象出局部线网,并构建新线段模型;

步骤s2:对新线段模型采用融合贪心算法与遗传操作的初始分配策略进行初始分配,得到初始轨道分配方案;

步骤s3:构建改进的代价计算策略,并融入离散粒子群优化算法的粒子适应度计算中;

步骤s4:将得到的高质量的初始轨道分配方案,采用结合遗传算子的离散粒子群优化算法进行全局寻优,得到最优的轨道分配方案;

步骤s5:基于协商机制的精炼策略对最优的轨道分配方案进行处理,得到最终的轨道分配方案。

进一步的,所述步骤s2具体为:

步骤s21:根据新线段模型中,线段长度从长到短、线段长度从短到长、线网组件数量从大到小、线网组件数量从小到大等四种顺序进行贪心分配,得到四种粒子;

步骤s22:引入变异和选择操作,将产生的四种粒子进行变异,并根据适应值大小筛选出部分优秀粒子作为初始轨道分配方案。

进一步的,所述改进的代价计算策略具体为:

(1)定义线长代价为在详细布线时连接每个线网中的所有组件的内部连接线长,轨道分配要求各线网的组件的内部连接线长尽可能小;

(2)定义重叠代价为如果两条被分配同一轨道上的线段发生重叠,这种由线段之间重叠引起的冲突称为线段重叠,产生的代价称为重叠代价,重叠代价最小化是布线优化的重要目标之一;

(3)定义障碍代价为当一条线段被分配到一条轨道上,并且与一个或多个障碍物部分或完全重叠,这种由线段和障碍物之间引起的冲突称为障碍重叠,产生的代价称为障碍代价;

(4)构建一个障碍代价的预处理策略,为布线带创建一个存储线段与障碍物重叠信息的查找表,查找表中的每一个元素代表一条线段放置在一条轨道上产生的障碍代价;

(5)在计算重叠代价时,通过计算每个轨道上两两线段之间的重叠长度之和来获得重叠代价;

(6)总代价的计算方法为,线长代价是对线网构建一个以其所有组件为结点,组件间的最短曼哈顿距离为边长的最小生成树,通过计算最小生成树的长度以获得该线网的线长;重叠代价等于k条重叠线段的公共子区间的长度与k-1的乘积,特殊地,k=0或k=1时,重叠代价为零;障碍代价等于线段与所有重叠障碍物的重叠长度之和。

进一步的,所述结合遗传算子的离散粒子群优化算法具体为:

步骤s41:在粒子更新操作中使用遗传算子中的变异算子代替粒子的惯性保持部分,使用交叉算子代替粒子的个体认知和社会认知;

步骤s42:在粒子的变异操作中引入多点变异,以加强粒子迭代初期的全局探索能力,并在后期迅速收敛。

进一步的,所述步骤s5具体为;

步骤s51:使用公式(1)的代价函数来选择需要重新分配的线段:

cost1=oir,t+hir,t(1)

其中,oir,t表示线段ir从轨道t上移除时减少的重叠代价,hir,t表示轨道t上线段ir所覆盖的单位区间的历史代价之和。

步骤s52:使用公式(2)的代价函数来决定重分配的轨道:

cost2=0.1*wir,t+α*oir,t+β*bir,t+hir,t(2)

其中,wir,t表示把线段ir分配到轨道t上的连接代价,oir,t表示把ir分配到轨道t上时增加的重叠代价,bir,t表示把ir分配到t上时产生的障碍代价,hir,t表示ir分配到t上时的所占区间的历史代价之和;α和β是用户自定义参数。

本发明与现有技术相比具有以下有益效果:

本发明考虑到局部线网、线长、重叠冲突与障碍物等重要因素的轨道分配问题,采用离散粒子群优化算法,能够最小化冲突,获得最佳的重叠代价指标优化,减少关键布线区域的拥挤情况。

附图说明

图1是本发明一实施例中的线段模型图;其中(a)全局线网和局部线网,(b)仅考虑全局线网的线段模型,(c)s1策略中的线段模型

图2是本发明一实施例中的一个布线带(包含3条轨道,9条线段)的轨道分配结果

图3是本发明一实施例中的历史代价计算示意图;

图4是本发明轨道分配流程图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

请参照图4,本发明提供一种基于混合离散粒子群优化的轨道分配器构建方法,包括以下步骤:

步骤s1:对全局线网进行抽象处理,抽象出局部线网,并构建新线段模型;

步骤s2:对新线段模型采用融合贪心算法与遗传操作的初始分配策略进行初始分配,得到初始轨道分配方案;

步骤s3:构建改进的代价计算策略,并融入离散粒子群优化算法的粒子群适应度计算中;

步骤s4:将得到的高质量的初始轨道分配方案,采用结合遗传算子的离散粒子群优化算法进行全局寻优,得到最优的轨道分配方案;

步骤s5:基于协商机制的精炼策略对最优的轨道分配方案进行处理,得到最终的轨道分配方案。

本实施例中,所述步骤s1具体为:抽象出局部线网,并构建其新线段模型,充分利用了总体布线的信息,有助于最大化分配线段的数量。

大多数轨道分配工作没有考虑局部线网,以至于丢失了大量布线信息。图1(a)给出了总体布线得到的全局线网n1和局部线网n2,图1(b)中红色线段w1为大多数轨道分配器的线段模型,图1(c)为策略s1的线段模型,其中,w2和w3是从全局线网中提取的线段,w4是从局部线网中提取的线段。

定义1(全局单元)在总体布线阶段,整个布线区域被划分成若干个矩形的子区域,每一个子区域称为一个全局单元。

定义2(布线带)在层次式布线中,每个布线层上的布线方向是统一的,即水平方向或垂直方向。一个水平(或垂直)布线带由水平(或垂直)方向的一组全局单元构成。

定义3(线段)在总体布线得到各线网的大致走线,即线网经过的全局单元的集合。而线段表示一个全局单元中心点到另一个全局单元中心点的直线路径。提取线段是轨道分配的前期工作。

定义4(轨道)布线资源一般以网格线的形式展现,穿越水平(或垂直)布线带的若干条网格线称为轨道。创建轨道是轨道分配的前期工作。

基于dac12布局比赛发布的标准测试电路,本发明在布线器nctugr上进行实验,各电路局部线网的具体数量如表1所示。实验数据显示,局部线网平均占总线网的32.98%,而fzu-ta能够考虑到这些局部线网的连接问题,从而最大化分配线段的数量。

表1各电路局部线网的数量情况

本实施例中,所述步骤s2具体为:根据线段长度从长到短、线段长度从短到长、线网组件数量从大到小、线网组件数量从小到大等四种顺序进行贪心分配,其各自的轨道分配结果如表2所示,其中,wl表示线长代价,oc代表重叠代价,顺序1至顺序4分别是线段长度从长到短、线段长度从短到长、线网组件数量从大到小、线网组件数量从小到大。数据显示,按线段长度从长到短的顺序进行轨道分配,得到的重叠代价最小。但是,其他分配顺序可以得到更好的线长。

表2四种初始分配顺序的轨道分配结果

所以,本发明同时采用了这四种分配顺序,四者之间的相互学习,有机会探索到更好的解方案。为提高种群多样性,引入变异算子,将产生的四种粒子进行变异,同时保留这四个初始解。同时,引入基于适应度的选择算子为种群筛选出更具潜力的粒子,根据适应值大小对变异后的粒子群进行升序排序,筛选出部分优秀粒子作为初始种群,这样筛选出的粒子具有更高效的引导作用。表2数据显示,根据线段的长度从长到短进行贪心分配,得到的重叠代价大约是其他三种分配顺序的二分之一。因此,fzu-ta将四种分配顺序的粒子数量比设为2:1:1:1。

本实施例,所述步骤s3具体为:

定义5(线长代价)在详细布线时需要连接每个线网中的所有组件,轨道分配要求各线网的组件(线段和引脚)的内部连接线长尽可能小。

定义6(重叠代价)如果两条被分配同一轨道上的线段发生重叠,这种由线段之间重叠引起的冲突称为线段重叠,产生的代价称为重叠代价。重叠代价最小化是布线优化的重要目标之一。

定义7(障碍代价)当一条线段被分配到一条轨道上,并且与一个或多个障碍物部分或完全重叠,这种由线段和障碍物之间引起的冲突称为障碍重叠,产生的代价称为障碍代价。绕障布线是一个关键的布线问题,在轨道分配阶段要尽可能避免障碍重叠。

定义8(总代价的计算方法)线长代价是对线网构建一个以其所有组件为结点,组件间的最短曼哈顿距离为边长的最小生成树(minimumspanningtree,mst),通过计算mst的长度以获得该线网的线长。重叠代价等于k条重叠线段的公共子区间的长度与k-1的乘积,特殊地,k=0或k=1时,重叠代价为零。障碍代价等于线段与所有重叠障碍物的重叠长度之和。

考虑到代价函数中重叠代价和障碍代价的计算复杂度,本发明设计了更为简单高效的计算方法。在计算重叠代价时,通过计算每个轨道上两两线段之间的重叠长度之和来获得重叠代价,这种近似计算既可以节约运行时间,也能在一定程度上反映重叠情况。图2显示了一条布线带的轨道分配结果,根据图2(b)的具体冲突情况,该布线带各轨道的重叠代价、障碍代价及适应值计算如下:

轨道1:重叠代价:l12+(l11+l12)+(l12+l13)

障碍代价:0

轨道2:重叠代价:l21

障碍代价:l22

轨道3:重叠代价:l31

障碍代价:0

布线带p的适应值:l11+3l12+l13+l21+l31+l22

使用这种计算方式不仅考虑了重叠区间的总长度,还考虑了重叠区间的布线数量,加大了多条(大于两条)线段重叠情况的惩罚力度,如图2(b)中长度为l12的区间。

本实施例中设计的有关障碍代价的预处理策略能有效减少冗余计算;

本实施例为了避免障碍代价的重复计算,设计了一个障碍代价的预处理策略:为布线带创建一个存储线段与障碍物重叠信息的查找表,查找表中的每一个元素代表一条线段放置在一条轨道上产生的障碍代价。该查找表提前计算好所有可能的障碍重叠情况,在粒子迭代过程中无须反复计算,只要从表中提取数据即可。表3实验数据显示,使用预处理策略,相对未使用预处理策略的障碍代价计算次数平均减少99.33%,证明了该策略的有效性和必要性。

表3障碍代价预处理策略的计算次数减少情况

本实施例中,步骤s4具体为:

fzu-ta设计了适合轨道分配问题的一维实数编码策略,以布线带为单位进行轨道分配,即各布线层上的布线带是并行的。对单个布线带上的轨道分配问题进行分析:编码的每一位分别表示对应线段被分配到的轨道编号。如图2(a)所示,给定布线带p,ip={ir1,ir2,ir3,ir4,ir5,ir6,ir7,ir8,ir9}为p的线段集合为,tp={1,2,3}为p的轨道集合。则该布线带的粒子编码为:211313221,即ir1被分配到轨道2上,ir2被分配到轨道1上,ir3被分配到轨道1上……

s4策略中的离散粒子群优化算法的粒子更新使用遗传算子中的变异算子代替粒子的惯性保持部分,使用交叉算子代替粒子的“个体认知”和“社会认知”。同时,为了加强粒子在迭代初期的全局探索能力,而在后期能迅速收敛,s4策略引入了多点变异。设置粒子变异位数为num,其数值随迭代次数线性递减。粒子的更新操作将同时改变num个位置上的编码,每一个变异位置都是随机产生的。

本实施例中,利用dpso算法的全局优化能力进行轨道分配,能够探索到比贪心策略更好的轨道分配方案。

表4的实验将轨道分配器fzu-ta1与根据线段从长到短进行贪心分配的轨道分配器nta1进行对比,相对nta1,fzu-ta1产生的轨道分配方案在重叠代价上优化了2.2%,同时保持线长代价和障碍代价几乎不变,证明了s4策略的有效性。

表4fzu-ta1与nta1的比较

5.s5策略的设计:

本发明的轨道分配器,使用基于协商机制的分解-重分配操作对粒子群优化得到的全局最优方案进行更精确的调整,进一步优化重叠冲突。该精炼策略对拥挤区域的线段进行分解和重分配,力求将线段从拥挤的轨道转移至空闲的轨道上。具体分为以下两个步骤:

(1)使用公式(1)的代价函数来选择需要重新分配的线段:

cost1=oir,t+hir,t(1)

其中,oir,t表示线段ir从轨道t上移除时减少的重叠代价,hir,t表示轨道t上线段ir所覆盖的单位区间的历史代价之和。

(2)使用公式(2)的代价函数来决定重分配的轨道:

cost2=0.1*wir,t+α*oir,t+β*bir,t+hir,t(2)

其中,wir,t表示把线段ir分配到轨道t上的连接代价,oir,t表示把ir分配到轨道t上时增加的重叠代价,bir,t表示把ir分配到t上时产生的障碍代价,hir,t表示ir分配到t上时的所占区间的历史代价之和。α和β是用户自定义参数。

在精炼策略中,历史代价是用来统计在过去的迭代中,由重分配操作引起重叠的次数,它反映了轨道的拥塞情况。图3给出了历史代价计算的示意图。在这一阶段的开始,fzu-ta将每个轨道的单位区间的历史代价初始化为0,每当一条线段被重新分配到轨道上并产生重叠时,重叠区间区间所对应的各单位区间的值就增加1。

参考图4,基于本发明所述设计的新轨道分配器——fzu-ta,轨道分配的新流程为:

针对层次式布线模型中的轨道分配问题,提出了一种可有效求解轨道分配问题的新分配流程,如图4所示,主要包括了初始轨道分配阶段、主阶段、精炼处理阶段:(1)新的轨道分配器相对于目前大多数轨道分配器,考虑了局部线网的连接情况,能够最大化线段的分配数量。同时考虑到贪心算法的局限性,引入s2策略,有助于跳出局部最优,同时提高种群多样性,并为s4策略提供高质量的初始粒子。

(2)新的轨道分配器的主阶段分配,将简单高效的代价函数融入粒子群的适应度计算中,大大减少了绕障情况的重复判断次数和降低计算重叠代价的复杂度,引入多点变异,以加强dpso的全局搜索能力。

(3)新的轨道分配器的精炼处理阶段,调整拥挤区域的线段,进一步优化了重叠冲突这一关键目标。(4)本发明构造的fzu-ta是用于求解层次式布线中的轨道分配问题,需要将尽可能多的线段分配到合适的轨道上,使得最终产生的布线总代价(线长代价、重叠代价、障碍代价)最小。

为了验证本发明方法在求解轨道分配问题中的有效性,将fzu-ta与nta两种轨道分配器在dac12布局比赛发布的基准测试电路上进行实验,仍采用布局器ntuplace4进行布局,布线器nctugr进行总体布线。实验数据如表5所示,与wbm-ta相比,本方法大大优化了重叠冲突,产生的重叠代价仅是wbm-ta的23.67%,在线长上优化0.12%,障碍重叠的情况保持不变。与nta相比,fzu-ta减少了1.4%的重叠,而在线长和障碍重叠方面几乎不变。本发明相对于其他轨道分配器能够有效减少重叠冲突的原因包括:考虑了局部线网这个更为贴近详细布线的问题,引入离散粒子群优化算法从全局的角度进行轨道分配方案的探索,从而有效减少关键布线区域的拥挤情况。

表5fzu-ta与两种轨道分配算法的比较

另外,由于fzu-ta充分利用了总体布线的结果进行轨道分配,在一定程度上,反映了不同的布局对可布线性的影响。表6给出了fzu-ta对三种不同总体布线结果进行轨道分配的结果对比。在simplr的布局结果上进行布线,得到轨道分配方案的线段重叠和障碍重叠分别是ntuplace4的1.52倍和1.33倍,而在ripple布局基础上进行的轨道分配,会增加40.07%的线段重叠。以线长、重叠和障碍物冲突为评价指标,上述三种布局器按可布线性能从高到低分别为:ntuplace4>ripple>simplr。实验结果显示,fzu-ta在评估布局器可布线性上具有一定的指导意义。

表8使用fzu-ta对布局器ntuplace4,simplr和ripple进行的可布线性评估

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1