一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

芯片布局方法、装置、终端设备及计算机可读存储介质与流程

2022-02-21 07:36:06 来源:中国专利 TAG:


1.本技术属于数据处理技术领域,尤其涉及芯片布局方法、装置、终端设备及计算机可读存储介质。


背景技术:

2.集成电路版图的设计包括布局和布线。布局是指确定待设计电路的各逻辑模块或芯片在电路板上的摆放位置的过程。布线是指确定各逻辑模块或芯片之间电性连接顺序的过程。
3.现有技术常用的布局方法有人工布局和自动布局。其中,人工布局效率较低、且对设计者的专业要求较高。而自动布局方法大多需要人工干预,智能程度较低,且无法保证最终布局的最优性。


技术实现要素:

4.本技术实施例提供了一种芯片布局方法、装置、终端设备及计算机可读存储介质,可以提高芯片布局的智能程度、保证最终布局的最优性。
5.第一方面,本技术实施例提供了一种芯片布局方法,包括:
6.获取目标电路板上芯片的多种候选布局;
7.构建所述多种候选布局各自对应的图模型,其中,所述图模型中的节点为所述目标电路板上的芯片,所述图模型中两个节点之间的边表示所述两个节点各自表示的芯片之间存在信号交互,所述图模型中两个节点之间的边上的权重由所述两个节点各自表示的芯片在所述目标电路板上的距离确定;
8.根据所述图模型和预设的功耗预测模型预测所述多种候选布局各自对应的电路功耗;
9.将所述多种候选布局各自对应的电路功耗中的最小值对应的候选布局确定为目标布局。
10.本技术实施例中,通过图模型描述候选布局中各芯片之间的信号交互关系,根据图模型和功耗预测模型预测候选布局的电路功耗,根据电路功耗从多个候选布局中确定出目标布局。通过上述方法,相当于在布局过程中既考虑了每种布局中各芯片之间的信号交互关系,又考虑了每种布局对应的电路功耗,可以获得电路功耗最小的目标布局,保证了目标布局的最优性。另外,本技术实施例中的方法无需人工干预,大大提高了芯片布局的智能程度。
11.在第一方面的一种可能的实现方式中,所述获取目标电路板上芯片的多个候选布局,包括:
12.随机获取n个初始解,每个初始解表示所述目标电路板上芯片的一种布局,其中,n为大于1的正整数;
13.根据模拟退火算法计算所述n个初始解各自对应的目标解;
14.将每个所述目标解表示的所述目标电路板上芯片的布局确定为一种所述候选布局。
15.在第一方面的一种可能的实现方式中,所述根据模拟退火算法计算所述n个初始解各自对应的目标解,包括:
16.基于贝叶斯优化算法优化所述模拟退火算法的初始参数,得到优化后的初始参数;
17.根据所述优化后的初始参数和所述模拟退火算法计算所述n个初始解各自对应的目标解。
18.在第一方面的一种可能的实现方式中,所述功耗预测模型包括图神经网络和长短时记忆网络;
19.所述根据所述图模型和预设的功耗预测模型预测所述多钟候选布局各自对应的电路功耗,包括:
20.将所述多种候选布局各自对应的图模型分别输入所述图神经网络,获得所述多种候选布局各自的第一特征信息,其中,所述第一特征信息表示所述候选布局中各芯片在空间上的关联特征;
21.将所述多种候选布局各自的第一特征信息分别输入所述长短时记忆网络,获得所述多种候选布局各自的第二特征信息,其中,所述第二特征信息表示所述候选布局中各芯片在时间上的关联特征;
22.根据所述多种候选布局各自的第二特征信息预测所述多种候选布局各自的电路功耗。
23.在第一方面的一种可能的实现方式中,在将所述多种候选布局各自对应的电路功耗中的最小值对应的候选布局确定为目标布局之后,所述方法还包括:
24.基于粒子群算法迭代搜索满足所述目标布局的目标布线顺序,其中,所述粒子群算法中粒子位置表示所述目标电路板上的芯片的布线顺序,粒子速度用于更新所述粒子位置。
25.在第一方面的一种可能的实现方式中,所述基于粒子群算法迭代搜索满足所述目标布局的目标布线顺序,包括:
26.在每次迭代搜索的过程中,计算当前种群的适应度方差;
27.若所述适应度方差小于预设阈值,则对所述当前种群中的部分粒子进行混沌变异处理,得到处理种群;
28.计算所述处理种群的局部最优解和全局最优解;
29.根据所述处理种群的局部最优解和全局最优解更新所述处理种群中每个粒子的粒子位置和粒子速度,得到更新后的粒子位置和粒子速度;
30.若当前迭代次数已达到预设次数,则根据所述处理种群的全局最优解确定所述目标布线顺序;
31.若当前迭代次数未达到预设次数,则根据所述更新后的粒子位置和粒子速度继续下一次迭代搜索。
32.在第一方面的一种可能的实现方式中,所述若所述适应度方差小于预设阈值,则对所述当前种群中的部分粒子进行混沌变异处理,得到处理种群,包括:
33.计算所述当前种群中每个粒子的粒子适应度;
34.根据所述粒子适应度从所述当前种群中选取第一子种群,其中,所述第一子种群中包括m个粒子,所述m为大于1的正整数;
35.变换所述第一子种群中h个粒子的粒子位置,得到变换后的第一子种群,其中,所述1≤h≤m;
36.根据第二子种群和所述变换后的第一子种群构建所述处理种群,其中所述第二子种群为所述当前种群中除所述第一子种群外的种群。
37.第二方面,本技术实施例提供了一种芯片布线装置,包括:
38.获取单元,用于获取目标电路板上芯片的多种候选布局;
39.构建单元,用于构建所述多种候选布局各自对应的图模型,其中,所述图模型中的节点为所述目标电路板上的芯片,所述图模型中两个节点之间的边表示所述两个节点各自表示的芯片之间存在信号交互,所述图模型中两个节点之间的边上的权重由所述两个节点各自表示的芯片在所述目标电路板上的距离确定;
40.预测单元,用于根据所述图模型和预设的功耗预测模型预测所述多种候选布局各自对应的电路功耗;
41.布局单元,用于将所述多种候选布局各自对应的电路功耗中的最小值对应的候选布局确定为目标布局。
42.第三方面,本技术实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述第一方面中任一项所述的芯片布局方法。
43.第四方面,本技术实施例提供了一种计算机可读存储介质,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的芯片布局方法。
44.第五方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的芯片布局方法。
45.可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
46.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
47.图1是本技术实施例提供的芯片布局方法的流程示意图;
48.图2是本技术实施例提供的图模型的示意图;
49.图3是本技术实施例提供的功耗预测模型的示意图;
50.图4是本技术实施例提供的芯片布线装置的结构框图;
51.图5是本技术实施例提供的终端设备的结构示意图。
具体实施方式
52.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
53.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
54.如在本技术说明书和所附权利要求书中所使用的那样,术语“若”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
55.另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
56.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
57.参见图1,是本技术实施例提供的芯片布局方法的流程示意图,作为示例而非限定,所述方法可以包括以下步骤:
58.s101,获取目标电路板上芯片的多种候选布局。
59.在一个实施例中,可以采用模拟退火算法获取候选布局。具体的,s101可以包括:随机获取n个初始解,每个初始解表示目标电路板上芯片的一种布局,其中,n为大于1的正整数;根据模拟退火算法计算n个初始解各自对应的目标解;将每个目标解表示的所目标电路板上芯片的布局确定为一种候选布局。
60.本技术实施例中,模拟退火算法优化基本问题的思路:把温度t视作目标函数f,从初始解开始,计算目标函数f,然后产生新解,再次计算目标函数值,与上一步计算的目标函数值对比,判断是否接受新解。一直重复以上过程,直至控制参数衰减至零,最终即能得到优化问题的近似最优解。
61.模拟退火算法中是概率性的接受新解,对好的解是百分之百的接受,对坏解以一定的概率接受,其接受新解概率为:
[0062][0063]
其中,ti为解i对应的全局最高温度,t
i-tj为全局最高温度的改变量,k为玻尔兹曼常数。若tj≤ti,则接受新解j;若tj》ti,则当概率p=exp[(t
i-tj)/kt]为[0,1)区间内的随机数时,仍接受新解j,否则保留解i。
[0064]
将集成电路板上芯片的所有排列方式的集合定义为解空间x,芯片的每一种布局均属于解空间,假设当前板上有n个芯片,板件芯片布局解的一般形式为x={x1,x2,x3,

,xn},其中x1,x2,x3,

,xn分别表示n个芯片,x1,x2,x3,

,xn各自的数值表示芯片在板件上的
位置。因此,向量形式的解x与芯片的布局一一对应。
[0065]
在实际的集成电路板上一般拥有一个或者多个核心芯片,芯片的位置一般也有限制。其功率热负荷往往是所有芯片中最大的,这个芯片温度的上限也就决定着整个板件温度的上限。某些电子元器件因为其作用不同、功率不同、形状不同以及材料不同,这些芯片对位置的分布也是有特殊要求的,如有的器件位置是给定不变的,其他电子元器件的位置布局可以改变,其他电子元件的位置则可以配合变动位置。在这种情况下对整体元件的热布局优化时,应固定一个或者多个元器件的位置,然后对那些可以改变位置的元器件进行布局优化。因此本技术通过增加约束条件,把集成电路板上某些核心芯片的位置进行固定,然后采用模拟退火算法令集成电路板上其他芯片围绕这些核心芯片进行条件热布局优化。
[0066]
定义固定的芯片为g,假若固定的个数为m,固定约束条件为g={g1,g2,g3,

,gm},表示有m个芯片在算法产生新解迭代时其位置是固定不变的。例如,如果令m=1,g1=5,表示给定初始解时的第5个芯片是固定不变的。同样也可以使得多个芯片同时位置固定,计算时只对其他芯片位置调整,进行热布局优化。
[0067]
由于对芯片的热布局优化为条件热布局优化,具备约束条件的核心芯片发热功率比较大,一般最高温度即为此最大功率芯片处,故将板上芯片工作时的全局最高温度t
max
作为本算法的目标函数,定义为t=(t1,t2,t3,

,tn)=t
max

[0068]
模拟退火算法的步骤为:
[0069]
1、参数初始化。设置一个足够大初始温度t,固定芯片的序号g,迭代次数l。随机生成一个初始解:x0={x1,x2,x3,

,xn},其代表芯片的一种随机布局。取芯片工作时的全局最高温度t
max
作为本算法的目标温度值。初始解作为当前解保存,目标函数值为所有芯片的最高温度t
max

[0070]
2、利用二变法(即把当前解中的任意两个进行位置调换)对当前解x={x1,x2,

,xu,

xv,

,xn}进行元素变换产生一个新解x={x1,x2,

,xv,

xu,

,xn}。元素xu和xv均不属于固定约束条件中的元素,否则重新产生新解。
[0071]
3、求解第2步产生的新解的目标函数值t

(当前状态下的全局最高温度),然后与当前解目标函数值比较,得出两解之间的目标函数值差δt=t
′‑
t。依据前文的接受概率对新解进行判断。当t

《t时,接受新解作为下一步计算的当前解,并将新解对应的布局保存为新布局;否则以公式计算得出的概率接受新解;若拒绝接受新解,将当前解作为下一步的当前解,目标函数值也为上一步计算的目标函数值。
[0072]
4、判断计算是否达到终止条件,若达到终止条件,则将当前解作为全局最优布局输出;若未达到终止条件,则判断是否达到迭代次数,若未达到迭代次数,则跳转到第2步;若达到迭代次数,则将当前解作为全局最优布局输出。
[0073]
其中,终止条件的判断包括:如果连续进行几次迭代,步骤4得到的都是拒绝接受新解,保留当前解作为新解,则终止算法。
[0074]
如上所述,模拟退火算法存在以下三个参数问题:
[0075]
问题一、温度t的初始值设置问题
[0076]
温度t的初始值设置是影响模拟退火算法全局搜索性能的重要因素之一、初始温度高,则搜索到全局最优解的可能性大,但因此要花费大量的计算时间;反之,则可节约计
算时间,但全局搜索性能可能受到影响。
[0077]
问题二、退火速度问题,即每个t值的迭代次数
[0078]
模拟退火算法的全局搜索性能也与退火速度密切相关。一般来说,同一温度下的“充分”搜索是相当必要的,但这也需要计算时间。循环次数增加必定带来计算开销的增大。
[0079]
问题三、温度管理问题
[0080]
温度管理问题也是模拟退火算法难以处理的问题之一。实际应用中,由于必须考虑计算复杂度的切实可行性等问题。
[0081]
在本技术中采用贝叶斯优化算法对模拟退火算法初始值,退火速度,温度管理的参数进行最优选择。
[0082]
在一个实施例中,根据模拟退火算法计算n个初始解各自对应的目标解的步骤可以包括:基于贝叶斯优化算法优化模拟退火算法的初始参数,得到优化后的初始参数;根据所述优化后的初始参数和模拟退火算法计算n个初始解各自对应的目标解。
[0083]
贝叶斯优化算法以贝叶斯定理为理论基础,该定理表示为:
[0084][0085]
式中,f为模型中的参数(如模拟退火算法中的初始温度t和迭代次数l),d
1:t
={(x1,y1),(x2,y2),

,(x
t
,y
t
)}为已评估点的集合(如f表示温度时,x1对应的y1为温度t1),x
t
为决策向量,y
t
为观测值,p(d
1:t
|f)为y
t
的似然分布,p(d
1:t
)为f的边际似然分布,p(f)为f的先验概率,p(f|d
1:t
)为f的后验概率。后验概率分布是通过已评估点集合对先验进行修正后参数模型中的参数的置信度。贝叶斯优化算法使用概率代理模型拟合真实的目标函数,根据采集函数选择下一个评估点。
[0086]
此过程中使用高斯过程的概率代理模型。高斯过程是多元高斯概率分布的范化,由均值函数和半正定的协方差函数构成,即:
[0087]
t
t
=gp(m(x
t
),k(x
t
,x

t
))
[0088]
其中m()为均值函数,k()为协方差函数。采用高斯过程对一系列离散数据对(x
t
,y
t
)进行函数拟合,m()通常设置为0,
[0089][0090]
其中,r为x
t
和x
t

的欧拉距离,σf为特征偏差,σ
l
为特征长度,σf和σ
l
会随着高斯过程拟合而自动变化,σ
l
的初值为xi的标准差,σf的初值为yi的标准差除以
[0091]
基于提升概率和提升量的策略构造的采集函数如下:
[0092][0093]
其中,α
t
(x;d
1:t
)为采集函数,v
*
为当前最优函数值,为标准正态分布累计密度函数,μ
t
(x)和σ
t
(x)分别为均值和标准差。
[0094]
对于d
1:t
={(x1,y1),(x2,y2),

,(x
t
,y
t
)}中,选择一个新的x
t 1
,使得
[0095]
x
t 1
=argmaxα(x
t 1
,d
t
);
[0096]
α为上文中的采集函数。然后将x
t 1
代入y
t
=gp(m(x
t
),k(x
t
,x
t

))获得y
t 1
,更新数据集d
1:t 1
={d
1:t
,(x
t 1
,y
t 1
)}。最后更新参数的概率分布,并重复迭代计算。最终输出的参数的结果为模拟退火算法中的最优设置参数值。
[0097]
s102,构建多种候选布局各自对应的图模型。
[0098]
参见图2,是本技术实施例提供的图模型的示意图。如图2所示,图模型中的节点为目标电路板上的芯片a、b,图模型中两个节点之间的边表示两个节点各自表示的芯片之间存在信号交互,图模型中两个节点之间的边上的权重由两个节点各自表示的芯片在目标电路板上的距离确定。n
a,b
由芯片位置计算得出,具体的计算公式如下:
[0099][0100]
式中:l
a,b
为2个芯片在板件上的距离,rh为就离阈值。在构图时,只计算距离小于rh的2个芯片间边上的权重,考虑到芯片之间并非完全整齐排布,采用欧式距离度量会引入错误的先验知识,故采用曼哈顿距离来度量元件之间的相关性。
[0101]
s103,根据图模型和预设的功耗预测模型预测多种候选布局各自对应的电路功耗。
[0102]
在一个实施例中,功耗预测模型包括图神经网络和长短时记忆网络。
[0103]
相应的,s103可以包括:
[0104]
将多种候选布局各自对应的图模型分别输入图神经网络,获得多种候选布局各自的第一特征信息,其中,第一特征信息表示候选布局中各芯片在空间上的关联特征;将多种候选布局各自的第一特征信息分别输入长短时记忆网络,获得多种候选布局各自的第二特征信息,其中,第二特征信息表示候选布局中各芯片在时间上的关联特征;根据多种候选布局各自的第二特征信息预测多种候选布局各自的电路功耗。
[0105]
可选的,可以采用滑动时间窗口获取图模型中的局部图,然后将局部图分别输入图神经网络。
[0106]
参见图3,是本技术实施例提供的功耗预测模型的示意图。如图3所示,对于每个时间窗口对应的局部图,获取该局部图中每个节点的节点属性(包括上一时刻的功耗数据和温度数据),将节点属性和局部图中的边上的权重输入到图神经网络中,再将图神经网络(图3所示的gcn)的输出信息作为长短时记忆网络(图3所示的lstm)的输入。其中,gcn后边的lstm为编码lstm,最后的lstm为解码lstm。
[0107]
在图神经网络中对局部图进行图卷积计算,具体计算公式如下:
[0108][0109]
式中:即图模型的邻接矩阵加上自循环(每个节点从自身出发,又指向自己)。邻接矩阵中的值表示元件之间的连接情况,该场景中的邻接矩阵计算时考虑了边上的权重。d为过度矩阵,h
(l)
为节点在第l层的特征;w
(l)
为第l层的权重,用来对矩阵进行归一化处理;σ为激活函数。
[0110]
在完成图卷积操作后,每个芯片更新后的信号可以按时间顺序组成序列{x1,x2,

x
τin
},该序列送入编码lstm中,得到每个芯片的编码向量。lstm是为了解决rnn网络梯度消
失问题所提出的改进型序列建模神经网络,通过在模内部引入多种功能的门机制,实现对序列长期依赖关系的建模。具体的计算过程如下:
[0111]it
=tanh(wix
t
u
iht-1
bi);
[0112]ft
=tanh(wfx
t
ufh
t-1
bf);
[0113]0t
=tanh(wox
t
u
oht-1
bo);
[0114]ct
=f
t o c
t 1
i
t o tanh(wcx
t
uch
t-1
bc);
[0115]ht
=0
t o tanh(c
t
);
[0116]
式中:tanh为激活函数,i
t
为输入门,f
t
为遗忘门,c
t
为当前时刻的单元状态,h
t
为最终输出。wi、ui、wf、uf、wo、uo、wc和uc为可学习参数,bi、bf、bo、bc为偏置向量,o表示哈达玛积。
[0117]
编码lstm得到输出值h
τin
作为芯片的编码向量,用来初始化解码lstm。解码lstm将每一步的隐状态输入到多层感知机(multi-layer perception,mlp)中,最终的输出结果就是芯片布局之后功耗预测数据。
[0118]
在训练过程中,损失函数定义为均方误差(mse),具体的计算方式如下:
[0119][0120]
式中:τ
ou
为预测步长,k为芯片功耗数据值,为芯片功耗数据预测值。
[0121]
s104,将多种候选布局各自对应的电路功耗中的最小值对应的候选布局确定为目标布局。
[0122]
本技术实施例中,通过图模型描述候选布局中各芯片之间的信号交互关系,根据图模型和功耗预测模型预测候选布局的电路功耗,根据电路功耗从多个候选布局中确定出目标布局。通过上述方法,相当于在布局过程中既考虑了每种布局中各芯片之间的信号交互关系,又考虑了每种布局对应的电路功耗,可以获得电路功耗最小的目标布局,保证了目标布局的最优性。另外,本技术实施例中的方法无需人工干预,大大提高了芯片布局的智能程度。
[0123]
在完成对芯片的布局之后开始进行板件上的布线工作。目前电路板的布线在很大程度上还是由专业人员手动完成。随着电路板器件集成度不断提高,器件引脚数量大规模增加,人工布线全部由设计者手动完成,这对设计者要求较高且极费时间。在此采用一种基于粒子群的布线算法来解决在布局完成后对芯片组之间的布线问题。
[0124]
在一个实施例中,在s104确定目标布局之后,还包括布线方法:基于粒子群算法迭代搜索满足目标布局的目标布线顺序,其中,粒子群算法中粒子位置表示目标电路板上的芯片的布线顺序,粒子速度用于更新粒子位置。
[0125]
可选的,粒子群算法的每次迭代搜索的步骤包括:
[0126]
计算当前种群的局部最优解和全局最优解;根据当前种群的局部最优解和全局最优解更新当前种群中每个粒子的粒子位置和粒子速度,得到更新后的粒子位置和粒子速度;若当前迭代次数已达到预设次数,则根据当前种群的全局最优解确定目标布线顺序;若当前迭代次数未达到预设次数,则根据更新后的粒子位置和粒子速度继续下一次迭代搜索。
[0127]
粒子群优化(particle swarm optimization,pso)算法是一种群体智能优化算
法,能够很好地解决芯片布线顺序规划这种难题。基本pso算法在迭代过程中,其速度和位置更新公式为:
[0128][0129][0130]
其中:表示t时刻粒子i的位置;为t 1时刻粒子i的位置。在芯片布线顺序规划中,粒子的位置表示布线顺序。
[0131]
表示粒子i在第t时刻的速度,当t=0时,其中n为芯片组的数量,为1到n之间的任意整数,且为1到n之间的任意整数,且表示t 1时刻粒子i的速度;ω为非负惯性权重;c1和c2为非负的学习因子;r1和r2为相互独立且服从均匀分布的随机数;p
best
为某个粒子在当前时刻找到的最优位置,即某个粒子迭代到当前时刻找到的最合理布线顺序,g
best
为整个粒子群在当前时刻找到的最好位置,即所有粒子在迭代到当前时刻找到的最合理的布线顺序。
[0132]
芯片布线顺序规划是一种整数离散化问题,而基本粒子群算法的位置与速度是实值计算,不适合线芯片布线。故本技术实施例中,对基本粒子群算法进行离散化,重新定义粒子的位置、速度以及粒子之间的更新操作和运算。
[0133]
定义1、粒子位置。粒子的位置表示芯片编号之间的排列,第i个粒子的位置为xi=(x
i1
,x
i2
,

,x
id
,

,x
in
),其中x
id
∈{1,2,

,n}为芯片编号。
[0134]
定义2、粒子速度。芯片编号之间的排列通过粒子速度来更新。种群中第i个粒子的速度矢量为vi=(v
i1
,v
i2
,

,v
id
,

,v
in
),其中v
id
∈{1,2,

,n},为粒子i速度矢量的第d维元素,表示粒子i中x
id
对应的速度。当v
id
≠0时,表示芯片x
id
在xi中的排列位置需要发生改变。
[0135]
定义3、粒子位置与速度的加法。重新定义的和:若则在中找到与相等的元素并交换中与的位置;若则不改变中的位置。完成所有操作后,将赋值给
[0136]
定义4、粒子位置的减法。两个粒子位置相减产生一个新速度,设x1=(x
11
,x
12
,

,x
1d
,

,x
1n
),x2=(x
21
,x
22
,

,x
2d
,

,x
2n
),则定义其中vi为已更新速度。其求解方法为:若x
1d
=x
2d
,则v
id
=0;若x
1d
≠x
2d
,则v
id
=x
2d

[0137]
定义5、粒子速度的加法。重新定义粒子速度的加法其中vk的求解方法如下:
[0138][0139]
式中r3为分布于[0,1]区间的随机数。
[0140]
定义6、粒子速度的乘法。重新定义粒子速度的乘法c∈[0 1],vj表达式的值为:
[0141][0142]
式中r4为分布于[0,1]区间的随机数。
[0143]
定义7、粒子位置和速度更新。重新定义粒子位置和速度更新:
[0144][0145][0146]
式中c1、c2、r1、r2为分布于[0,1]区间的随机数。
[0147]
pso算法在迭代寻优过程中,粒子群中其他粒子会向某一个找到当前最优位置的粒子靠拢,当该粒子发现当前最优位置不是全局最优位置,即局部最优解时,粒子群会因为“惰性”不会继续在解空间内搜索,因而使算法陷入局部最优并出现早熟现象。针对该问题,本技术实施例中,在基本粒子群算法的基础上,在算法中对粒子进行干扰和变异,以提高粒子的寻优能力,避免算法发生早熟现象。
[0148]
首先,利用混沌搜索机制生成不同的混沌变量对微粒进行干扰,生成新的微粒,以提高算法的搜索精度;然后,利用变异机制以一定的概率对新微粒进行变异操作,避免算法过早陷入局部最优。
[0149]
(1)基于混沌搜索机制的微粒干扰
[0150]
采用逻辑映射来产生混沌变量,混沌每次迭代都能产生不同的新解,且产生的混沌变量遍布于整个解空间,具有很大的随机性。logistic映射函数定义如下:
[0151][0152]
式中:r=2(即随机生成两个混沌变量);可选的,η=4(当3.5699456≤η≤4的时候才具有混沌性质)。
[0153]
(2)微粒变异
[0154]
粒子变异操作的一般步骤为:
[0155]

利用混沌搜索机制生成的两个混沌变量求解变量,粒子变异公式为
[0156][0157]
其中n为芯片数量,「」为向上取整符号。
[0158]

找到粒子中编号为的芯片位置,并交换这两个芯片的位置。
[0159]
通过计算种群适应方差σ2能较好的判断算法是否发生早熟现象。对于种群容量为m的种群,定义该种群适应度方差
[0160][0161]
式中:fi为第i粒子的适应度值;f
avg
为当前种群平均适应度值。
[0162]fi
=0.45n
nci
0.55n
ccl

[0163][0164][0165][0166]
其中,n
nci
为布线序列路径重合次数,pi为在此布线顺序中模拟布线时,未布线的芯片在连线过程中的路径与已布线的路径发生重合的次数,重合一次pi=1。n
ccl
为布线长度。在芯片布线顺序中,应该遵循先布短线,后布长线的原则来进行布线;li为在布线顺序中,相邻两布线器件之间的长度比较。若li>l
i 1
,则li=1,表示该布线顺序存在一次不合理的线缆布线,通过对该布线顺序进行求和计算,即可求得其中存在不合理的布线次数。nccl越大,布线序列不合理布线次数越多,说明布线序列有待改进。
[0167]
种群适应度方差σ2能够反映种群的聚集程度和种群多样性,σ2越大,种群多样性越大,σ2越小,种群多样性越小。当σ2=0,表示种群多样性消失,种群陷入局部最优或者找到全局最优解;当σ2《gm(gm为某一理论阈值)时,表示粒子群陷入局部最优,应进行扰动变异操作。
[0168]
示例性的,在粒子群算法的每次迭代搜索的步骤中加入粒子的混沌变异处理,具体包括:
[0169]
步骤1、初始化。设置算法参数ω
max
、ω
min
、c1、c2、最大迭代次数t
max
、混沌迭代次数g
cmax
、种群容量m和理论阈值gm。其中,ω
min
为初始权重,ω
max
为最大迭代次数时的权重。
[0170]
步骤2、初始化种群速度v,种群位置p,初始化种群迭代次数t1=1。
[0171]
步骤3、计算种群中各粒子适应度fi、种群平均适应度值f
avg
和种群适应度方差σ2。
[0172]
步骤4、判断适应度方差σ2与理论阈值gm的大小。若σ2《gm,转步骤5;否则转步骤11。
[0173]
步骤5、在初始化的种群中选择0.2
×
m个适应度值较差的粒子作为混沌变异的新种群n,初始化混沌迭代次数g=1。
[0174]
步骤6、随机生成两个变量利用式对和分别进行混沌变异,生成混沌变量
[0175]
步骤7、令其中,n为集成电路板上芯片的数量。
[0176]
步骤8、交换种群n中所有粒子位置,并计算新种群中各粒子适应度值
[0177]
步骤9、比较新粒子适应度与原始粒子适应度值fi的大小。若则将新粒子代替原始粒子;若则使用原始粒子。
[0178]
步骤10、令g=g 1,判断g与g
cmax
的大小。若g《g
cmax
,则返回步骤6,否则转步骤11。
[0179]
步骤11、找到种群中个体最优值p
best
和全局最优解g
best

[0180]
步骤12、计算新种群最小适应度值f
min
、最大适应度值f
max
和平均适应度值f
avg
,并
根据公式对惯性权重ω进行更新。
[0181]
惯性权重值是为了对全局搜索和局部搜索区分侧重点。惯性权重的更新公式为:
[0182][0183]
其中,k为当前迭代次数,t
max
为最大迭代次数。
[0184]
步骤13、根据公式步骤13、根据公式和更新粒子位置和速度。
[0185]
步骤14、种群迭代次数k=k 1,并判断k与t
max
的大小,若k《t
max
,则转步骤3;否则,转步骤15。
[0186]
步骤15、输出最佳布线顺序和最佳适应度值,算法结束。
[0187]
最后根据最终输出的芯片最佳布线顺序和适应度值(适应度值最优的粒子的粒子位置为最终所需要的布线顺序,即最后的g
best
)进行芯片布线工作。
[0188]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0189]
对应于上文实施例所述的芯片布局方法,图4是本技术实施例提供的芯片布线装置的结构框图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0190]
参照图4,该装置包括:
[0191]
获取单元41,用于获取目标电路板上芯片的多种候选布局。
[0192]
构建单元42,用于构建所述多种候选布局各自对应的图模型,其中,所述图模型中的节点为所述目标电路板上的芯片,所述图模型中两个节点之间的边表示所述两个节点各自表示的芯片之间存在信号交互,所述图模型中两个节点之间的边上的权重由所述两个节点各自表示的芯片在所述目标电路板上的距离确定。
[0193]
预测单元43,用于根据所述图模型和预设的功耗预测模型预测所述多种候选布局各自对应的电路功耗。
[0194]
布局单元44,用于将所述多种候选布局各自对应的电路功耗中的最小值对应的候选布局确定为目标布局。
[0195]
可选的,获取单元41还用于:
[0196]
随机获取n个初始解,每个初始解表示所述目标电路板上芯片的一种布局,其中,n为大于1的正整数;根据模拟退火算法计算所述n个初始解各自对应的目标解;将每个所述目标解表示的所述目标电路板上芯片的布局确定为一种所述候选布局。
[0197]
可选的,获取单元41还用于:
[0198]
基于贝叶斯优化算法优化所述模拟退火算法的初始参数,得到优化后的初始参数;根据所述优化后的初始参数和所述模拟退火算法计算所述n个初始解各自对应的目标解。
[0199]
可选的,功耗预测模型包括图神经网络和长短时记忆网络。
[0200]
相应的,预测单元43还用于:
[0201]
将所述多种候选布局各自对应的图模型分别输入所述图神经网络,获得所述多种
候选布局各自的第一特征信息,其中,所述第一特征信息表示所述候选布局中各芯片在空间上的关联特征;将所述多种候选布局各自的第一特征信息分别输入所述长短时记忆网络,获得所述多种候选布局各自的第二特征信息,其中,所述第二特征信息表示所述候选布局中各芯片在时间上的关联特征;根据所述多种候选布局各自的第二特征信息预测所述多种候选布局各自的电路功耗。
[0202]
可选的,装置4还包括:
[0203]
布线单元45,用于在将所述多种候选布局各自对应的电路功耗中的最小值对应的候选布局确定为目标布局之后,基于粒子群算法迭代搜索满足所述目标布局的目标布线顺序,其中,所述粒子群算法中粒子位置表示所述目标电路板上的芯片的布线顺序,粒子速度用于更新所述粒子位置。
[0204]
可选的,布线单元45还用于:
[0205]
在每次迭代搜索的过程中,计算当前种群的适应度方差;
[0206]
若所述适应度方差小于预设阈值,则对所述当前种群中的部分粒子进行混沌变异处理,得到处理种群;
[0207]
计算所述处理种群的局部最优解和全局最优解;
[0208]
根据所述处理种群的局部最优解和全局最优解更新所述处理种群中每个粒子的粒子位置和粒子速度,得到更新后的粒子位置和粒子速度;
[0209]
若当前迭代次数已达到预设次数,则根据所述处理种群的全局最优解确定所述目标布线顺序;
[0210]
若当前迭代次数未达到预设次数,则根据所述更新后的粒子位置和粒子速度继续下一次迭代搜索。
[0211]
可选的,布线单元45还用于:
[0212]
计算所述当前种群中每个粒子的粒子适应度;
[0213]
根据所述粒子适应度从所述当前种群中选取第一子种群,其中,所述第一子种群中包括m个粒子,所述m为大于1的正整数;
[0214]
变换所述第一子种群中h个粒子的粒子位置,得到变换后的第一子种群,其中,所述1≤h≤m;
[0215]
根据第二子种群和所述变换后的第一子种群构建所述处理种群,其中所述第二子种群为所述当前种群中除所述第一子种群外的种群。
[0216]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0217]
另外,图4所示的芯片布线装置可以是内置于现有的终端设备内的软件单元、硬件单元、或软硬结合的单元,也可以作为独立的挂件集成到所述终端设备中,还可以作为独立的终端设备存在。
[0218]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可
以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0219]
图5是本技术实施例提供的终端设备的结构示意图。如图5所示,该实施例的终端设备5包括:至少一个处理器50(图5中仅示出一个)处理器、存储器51以及存储在所述存储器51中并可在所述至少一个处理器50上运行的计算机程序52,所述处理器50执行所述计算机程序52时实现上述任意各个芯片布局方法实施例中的步骤。
[0220]
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图5仅仅是终端设备5的举例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
[0221]
所称处理器50可以是中央处理单元(central processing unit,cpu),该处理器50还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0222]
所述存储器51在一些实施例中可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51在另一些实施例中也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储操作系统、应用程序、引导装载程序(boot loader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
[0223]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
[0224]
本技术实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
[0225]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。
在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
[0226]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0227]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0228]
在本技术所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0229]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0230]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献