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

一种基于线序模拟的PCB自动布线方法及系统与流程

2021-10-30 01:37:00 来源:中国专利 TAG:布线 模拟 方法 系统 特别

一种基于线序模拟的pcb自动布线方法及系统
技术领域
1.本发明涉及pcb板自动布线技术领域,特别涉及一种基于线序模拟的pcb自动布线方法及系统。


背景技术:

2.近些年来,随着物联网技术的快速发展,越来越来的智能电子设备已经涌入我们的日常生活中。这些电子设备中的pcb越来越小型化,板上元件密度也越来越大,从而使得pcb布线工作变得越来越复杂。由于现有的eda工具并未实现完全的智能化,其内置的pcb自动布线功能布线速度慢且布通率低,所以当前工业界的布线工作仍然以人工为主,eda工具基本上只可以辅助完成布线过程中电气规则的检查。因此,在pcb设计过程中需要消耗大量的人力资源,从而业界迫切需要一种智能pcb自动布线算法来节约人力成本和提升pcb设计效率。
3.目前已经有一些pcb自动布线算法用于解决pcb上两个待连线pin脚之间的布线路径寻找问题,相应的pcb自动布线算法会借助人为设计的布线顺序规则进行待连线引脚的路径规划。pcb自动布线具体包括:1961年被提出的lee算法;以及1969年hightower提出的一种称为线探索法的布线算法。还有a*搜索算法,最优通道法、hdlock的细胞结构法、mah和stainberg的拓扑类算法、j.soukup的快速迷路法等。并且近年来,也有一些基于人工智能的pcb自动布线算法被提出:intel提出了一种基于神经网络和遗传算法的自动布线算法,instadeep也公开了一种测试版的基于人工智能的在线云布线服务,这些算法利用神经网络积累布线经验,充分利用现代计算资源,具有一定智能性。
4.实际上,在实际布线过程中,pcb板为多层结构,会存在很多pin脚对需要进行布线连接,先布的线往往会影响后续的布线。现有人为制定的布线顺序规则包括:高速信号线先布、欧式距离较线先布或者有经验的工程师所设定的布线顺序等。这种人为制定的布线顺序规则,一旦线序设置不合理,则会导致pcb多层空间没有被合理利用,已经规划完成的前线路径会对后线的路径规划带来巨大的障碍,这也是导致自动布线算法布线速度慢、布通率低,智能性不足的原因之一。


技术实现要素:

5.本发明的目的在于克服现有技术中所存在的传统自动布线算法未对线序进行规划、依赖于人为设置的布线顺序进行单线路径规划容易导致布线效率低下、布通率较低的问题,提供一种基于线序模拟的pcb自动布线方法及系统,将布线顺序决策作为布线过程中的重要一环,对线序进行随机模拟,决策得到最优布线顺序,提高现有自动布线算法的布通率与智能化程度。
6.为了实现上述发明目的,本发明提供了以下技术方案:
7.一种基于线序模拟的pcb自动布线方法,包括:
8.步骤1:对待布线pcb板进行分析,生成pcb板环境矩阵,并确定所述待布线的pcb板
对应的n根目标线;
9.步骤2:以每根所述目标线为节点,采用蒙特卡洛法在所述pcb板环境矩阵中进行线序的迭代模拟:在每次模拟中,结合自动布线算法,生成蒙特卡洛所扩展节点的布线路径,以使蒙特卡洛模拟得到n根所述目标线对应的线序集合与布线路径,根据n根所述目标线布线路径总长度以及布通率对模拟结果进行评价,根据评价结果对节点状态进行反向更新,迭代次数加一;当达到最大迭代次数时,根据节点的最终状态选择最优线序集合与布线路径。
10.具体的,根据待布线的pcb板对应的电路原理图即可确定所述待布线的pcb板对应的n根目标线,得到每根目标线的起始引脚与终点引脚。在实际使用时,将pcb板矩阵及其目标线输入至蒙特卡洛模型,即可得到输出最优线序组合及每条目标线对应的路径,再根据模型输出在pcb板实际布线即可。
11.根据一种具体的实施方式,上述基于线序模拟的pcb自动布线方法中,建立用于表征n根所述目标线布线路径总长度以及布通率的评价函数,通过所述评价函数对模拟结果进行评价
12.根据一种具体的实施方式,上述基于线序模拟的pcb自动布线方法中,还包括:联合深度学习模型对所述蒙特卡洛法进行改进,以提高蒙特卡洛的搜索效率。
13.根据一种具体的实施方式,上述基于线序模拟的pcb自动布线方法中,所述深度学习模型用于在每次模拟中,输出先验概率辅助蒙特卡洛选择节点进行扩展,结合自动布线算法,生成蒙特卡洛法所扩展节点的布线路径;以及,对蒙特卡洛模拟得到n根所述目标线对应的线序集合与自动布线算法生成的各条线的布线路径进行评价,根据评价结果对蒙特卡洛中各节点的状态进行反向更新。
14.根据一种具体的实施方式,上述基于线序模拟的pcb自动布线方法中,基于vgg

16或resnet或densenet架构构建所述深度学习模型。
15.根据一种具体的实施方式,上述基于线序模拟的pcb自动布线方法中,所述深度学习模型(以下称为策略预测神经网络)的卷积部分结构采用resnet34结构,卷积层后是两层全连接层。
16.根据一种具体的实施方式,上述基于线序模拟的pcb自动布线方法中,所述深度学习模型的损失函数被定义为:
[0017][0018]
其中,b
p
为训练的步长,γ||w
p
||2是用来防止参数过拟合的正则项;其对应动作选择概率标签和状态价值标签为{π
t
,z
t
}。
[0019]
根据一种具体的实施方式,上述基于线序模拟的pcb自动布线方法中,所述自动布线算法,包括:lee算法、a*搜索算法、线探索法、最优通道法、细胞结构法、拓扑类并法、快速迷路法、以及联合蒙特卡洛树模型。
[0020]
具体的,在线序模拟过程中,可以选择上述自动布线算法中任一种。其中,所述联合蒙特卡洛树模型为:申请号为2020114398397的中国专利公开的用于pcb布线路径计算的联合蒙特卡洛树模型。
[0021]
在本发明进一步的实施例中还提供一种基于线序模拟的pcb自动布线系统,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述基于线序模拟的pcb自动布线方法。
[0022]
与现有技术相比,本发明的有益效果:。
[0023]
1、本发明通过以pcb板对应的每根目标线为节点,基于蒙特卡洛法(mcts)建立pcb板线序选择模型,使用蒙特卡洛随机模拟决定布线顺序,在蒙特卡洛选择扩展节点的同时,结合自动布线算法进行布线路径的规划,由此可以根据布通率和目标线布线总长度在随机模拟中对节点状态进行反向更新,以此在迭代完成时,能够根据蒙特卡洛树中每根目标线的最终状态自动生成生成最优线序集合与布线路径;由此,本发明将线序选择问题映射成了一个序列决策搜索问题,结合自动布线算法,实现全智能化的自动布线,有效提高自动布线算法的布通率和布线效率。实验表明,使用了线序选择算法后,自动布线算法的平均布通率提高了14.76%。
[0024]
2、再将线序选择问题映射成了一个序列决策搜索问题的基础上,本发明通过联合深度学习来提高蒙特卡洛(mcts)的搜索效率,采用联合深度学习的蒙特卡洛法在所述pcb板环境矩阵中进行线序的迭代模拟在,利用深度学习模型输出先验概率辅助蒙特卡洛选择节点进行扩展,得mcts更倾向于去探索概率更高的节点;同时对当前状态的价值评估v会被当作奖励直接反向更新搜索树,从而省去原有mcts中的仿真步骤,进一步地提升了搜索效率。
附图说明
[0025]
图1示出了本发明示例性实施例1的基于线序模拟的自动布线算法mcts

ws进行线序搜索选择的流程图;
[0026]
图2示出了本发明示例性实施例2的联合深度学习模型的dl

mcts

ws进行线序搜索选择的流程图;
[0027]
图3示出了本发明示例性实施例2的联合深度学习模型的dl

mcts

ws中深度学习模型的训练流程图;
[0028]
图4示出了本发明示例性实施例3的测试场景图。
[0029]
图5a示出了本发明示例性的mcts

ws和dl

mcts

ws在测试场景(a)下的仿真效果图。
[0030]
图5b示出了本发明示例性的mcts

ws和dl

mcts

ws在测试场景(b)下的仿真效果图。
[0031]
图5c示出了本发明示例性的mcts

ws和dl

mcts

ws在测试场景(c)下的仿真效果图。
[0032]
图5d示出了本发明示例性的mcts

ws和dl

mcts

ws在测试场景(d)下的仿真效果图。
[0033]
图5e示出了本发明示例性的mcts

ws和dl

mcts

ws在测试场景(e)下的仿真效果图。
[0034]
图5f示出了本发明示例性的mcts

ws和dl

mcts

ws在测试场景(f)下的仿真效果
图。
具体实施方式
[0035]
下面结合试验例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。
[0036]
实施例1
[0037]
具体的,首先将pcb进行网格化,用矩阵m表示,矩阵m中元素值的不同来标记pcb中可布线区域,禁布区域以及已布线区域,矩阵中元素按照下式进行值标记:
[0038][0039]
其中,i、j代表矩阵中的坐标。在线序选择问题中,我们用j
i
表示一对待布线对,假设有q对线对在线序选择过程中,每次从中选出一个线对进行实际布线,布线完成后,更新pcb状态,再从剩余未布线的线对中选出一个进行实际布线,如此反复,直到所有线对全部布线完成。将线序选择完成后的一种线序定义为h,在当前线序下,单个线对布线路径为所有线对的布线路径为因此,最终的优化目标是在满足drc(包括线不能交叉和满足线间距)的情况下,使得所有线对总的布线长度最短,得到的最优线序为
[0040][0041]
s.t.满足drc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4

1)
[0042]
同时,线序选择问题也可以映射成一个马尔可夫决策问题,当前布线的动作选择仅与当前的状态有关。令其中,代表当前待布线对集合,h代表当前线序集合。对应的动作空间的大小为当前状态下中线对个数,所以每次决策完成后,动作空间的大小会减一。当前的布线动作定义为a
t
(下标t为迭代次数),布线策略定义为π:最终,基于最大化马尔可夫决策过程中累积奖励的优化目标定义为:
[0043][0044]
s.t.满足drc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4

2)
[0045]
这里的r
t
(s
t
,a
t
)是关于所有线对总布线长度的函数。
[0046]
图1示出了本发明示例性实施例的基于mcts的线序选择算法mcts

ws流程,以当前环境状态作为根节点的初始状态,算法通过迭代执行选择、扩展、模拟和反向更新四个步骤构建出一棵搜索树,最后选取根节点最优子节点对应的动作作为环境当前状态应该执行的
线序选择动作。
[0047]
下面将具体介绍mcts搜索过程,pcb当前状态定义为s
t
,迭代完成后,mcts最终输出的控制策略为π。将节点n对应的状态定义为树中每个节点n的状态是不影响pcb真实状态的虚拟状态,只有当mcts搜索迭代完成后返回的动作a
t
才会放到pcb真实环境中执行。为了方便描述,我们将树中每个节点存储的值定义如下:
[0048][0049]
其中,r(n)是节点n的累积奖励,n(n)是节点n已经被访问的次数,a(n)是从父节点转到节点n的控制动作。将详细过程描述如下:
[0050]
p1:构建初始的根节点n0,其中初始节点为空节点,下面每层节点才代表选线,其对应状态为接着进入入迭代循环,执行p2。
[0051]
p2:判断迭代次数是否达到最大迭代次数,如果未达到,则执行p3,否则执行p10。
[0052]
p3:判断当前节点n是否是终止节点(当前节点状态中的待选线对个数为1),如果不是终止节点,则执行p4,否则,则执行p8。
[0053]
p4:判断当前节点是否全扩展,如果已经全扩展,则执行p5,否则,则跳转到p6。
[0054]
p5:此步为选择过程,基于下面公式选择最好的子节点n


[0055][0056]
其中n

是节点n的子节点。t(n

)是子节点的上限置信空间,定义如下
[0057][0058]
其中c1是探索系数。∑
b
n(b)表示与子节点n

有共同父节点的所有子节点访问次数和(包括子节点n

)。q(n

)是节点n

的平均奖励值,定义为
[0059][0060]
当前节点n

n

best
,跳转到p3。
[0061]
p6:此步为扩展过程,从未访问过的动作里随机选择一个动作a进行扩展,扩展出来的节点为n

l
,其对应的状态转移方程定义如下
[0062][0063]
由于状态中会包含网格矩阵m,待布线对集合和当前线序集合h,所以状态转移的过程就是将动作a对应为当前布线线对,然后使用智能布线算法生成当前线对布线路径,然后将网格矩阵m中的对应区域按照路径标记成已布线区域,将该线对从集合中移除,再将该线对放入集合h中。最后将节点n

l
中的值初始化为:
[0064]
r(n

l
)=0,n(n

l
)=0,a(n

l
)=a
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4

7)
[0065]
当前节点n

n

,执行p7。
[0066]
p7:此步为模拟过程,这里使用的defaultpolicy为随机选择,从节点n

l
开始循环随机选择动作a,直到到达终止节点的状态执行p8。
[0067]
p8:使用布线算法按照当前线序,在环境进行布线,然后根据下式计算奖励
[0068][0069]
其中,是根据线对布线的路径总长度(该条线中起始引脚到终点引脚的总步数)计算得到,cnt
布通
是q个线对中能够布通线对个数。执行p9。
[0070]
p9:此步为反向更新过程,在这个过程中,节点的累积奖励和访问次数沿着选择路径从节点n

l
反向更新到根节点,根据下式更新每个节点的统计量
[0071]
r(n)=r(n) r
[0072]
n(n)=n(n) 1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4

9)
[0073]
将当前节点重置为根节点,即n

n0,迭代次数加1,跳转到p2。
[0074]
p10:根据式(4

3)选择根节点最优子节点,将其对应动作作为最终线序选择动作输出a
t
;最后由模型输出最优线序组合及每条目标线对应的路径,再根据输出在pcb板实际布线即可。
[0075]
实施例2
[0076]
在本实施例中,本发明通过联合深度学习模型来提高mcts的搜索效率,所述深度学习模型用于在每次模拟中,输出先验概率辅助蒙特卡洛选择节点进行扩展,结合自动布线算法,生成蒙特卡洛法所扩展节点的布线路径;以及,对蒙特卡洛模拟得到n根所述目标线对应的线序集合与自动布线算法生成的各条线的布线路径进行评价,根据评价结果对蒙特卡洛中各节点的状态进行反向更新。相应的联合深度学习的mcts的线序选择算法为:dl

mcts

ws,dl

mcts

ws算法利用策略预测神经网络f
p
根据当前状态信息输出线序选择动作先验概率p和对当前状态的价值评估v来提高mcts的搜索效率。先验概率p会作为先验知识加入原先的uct公式并将其更改为puct公式,使得mcts更倾向于去探索概率更高的节点;同时对当前状态的价值评估v会被当作奖励直接反向更新搜索树,从而省去原有mcts中的仿真步骤,进一步地提升了搜索效率。
[0077]
在本发明进一步的实施例中,结合图2具体介绍dl

mcts

ws搜索过程,给定pcb当前状态s
t
,mcts循环执行选择、扩展和评价、反向更新三个过程得到控制策略π。mcts通过将树中根节点n0的状态设置为创建树,同时树中每个节点n的状态是不影响pcb真实状态的虚拟状态,只有当mcts搜索迭代完成后返回的动作a
t
才会放到pcb真实环境中执行。这里将树中每个节点n存储的值定义如下
[0078][0079]
其中,r(n)是节点n的累积奖励,n(n)是节点n已经被访问的次数,a(n)是从父节点转到节点n的控制动作,p(n)是神经网络f
p
根据当前节点状态输出的先验概率。如图2所示,dl

mcts

ws将进行搜索模拟的详细过程描述如下:
[0080]
p1:构建初始的根节点n0,其对应状态为接着进入入迭代循环,执行p2。
[0081]
p2:判断迭代次数是否达到最大迭代次数,如果未达到,则执行p3,否则跳转到p9。
[0082]
p3:判断当前节点n是否是终止节点(当前节点状态中的待选线对个数为1),如果不是终止节点,则执行p4,否则,则执行p7。
[0083]
p4:判断当前节点n是否全扩展,如果已经全扩展,则执行p5,否则,则跳转到p6。
[0084]
p5:此步为选择过程,基于下面公式选择最好的子节点n:
[0085][0086]
其中n

是节点n的子节点。t(n

)是子节点的上限置信空间,这里使用的是puct算法的一个变种,定义如下
[0087][0088]
其中c2是探索系数,平衡探索广度和深度。∑
b
n(b)表示与子节点n

有共同父节点的所有子节点的访问次数和(包括子节点n

)。q(n

)是节点n

的平均奖励值,定义为
[0089][0090]
当前节点n

n

best
,跳转到p3。
[0091]
p6:此步为扩展过程,如果叶子节点n
l
不是终止节点,这个搜索会进行扩展。扩展的过程是全扩展,扩展出来的节点会执行相同的初始化操作。假设扩展出来的节点为n

l
,首先,使用策略神经网络f
p
计算叶子节点n
l
的先验概率p和当前的价值v,如下
[0092][0093]
其中,是将节点n
l
的状态映射成一个多通道图像,最底层图像为禁布区和已布线信息,上面多层图像是待布线对的标记信息(初始情况下,多通道图像的通道个数为待布线对个数加1,待布线对按照一一对应规则在上面多层图像标记起点终点位置,起点标记值为1,终点标记值为2,其他地方均为0,当每次动作决策后,其对应线对所在图像层的标记值会被赋值为0)。然后节点n

l
对应的状态可以由下式得到
[0094][0095]
最后将节点n

l
中的值初始化为
[0096][0097]
p
n

l
是扩展节点n

l
的先验概率,是向量p中的一个元素。
[0098]
当前节点n

n

,当前奖励r

v,执行p8。
[0099]
p7:使用布线算法按照当前线序,在环境进行布线,然后根据式(4

8)计算奖励r。执行p8。
[0100]
p8:此步为反向更新过程,在这个过程中,节点的累积奖励和访问次数沿着选择路径从节点n

l
反向更新到根节点,根据下式更新每个节点的统计量
[0101]
r(n)=r(n) r
[0102]
n(n)=n(n) 1
[0103]
(4

16)
[0104]
将当前节点重置为根节点,即n

n0,迭代次数加1,跳转到p2。
[0105]
p9:通过下面公式计算根节点的每个子节点
[0106]
n

的先验概率π(n

),即
[0107][0108]
其中,τ是调节系数。π为所有子节点被选择的概率向量。根据概率向量π选择控制动作a(n

),最后将映射到要返回的控制命令a
t

[0109]
策略神经网络f
p
的输入为其将状态映射成一个多通道图像,最底层图像为禁布区和已布线信息,上面多层图像是待布线对的标记信息。训练策略神经网络f
p
的数据为{p
t
,v
t
},其对应动作选择概率标签和状态价值标签为{π
t
,z
t

t
是通过式(4

17)计算得到,z
t
是完整线序生成后,布线算法按照线序布线完成后通过式(4

8)计算得到,生成完整线序时搜索树根节点的状态价值对应的标签都为z
t
,损失函数定义为
[0110][0111]
其中,b
p
为训练的batchsize,γ||w
p
||2是用来防止参数过拟合的正则项。
[0112]
策略神经网络f
p
的卷积部分结构为标准的resnet34结构。卷积层后是两层全连接层,第一层的神经元个数为256,第二层会分为两部分,一部分对应动作概率p预测,维度为待布线对个数q(随着选择的进行,动作空间中可行动作会减少,这时就手动将动作概率向量相应位置置为0),另一部分对应状态价值v预测,维度为1。在策略网络的训练阶段,可以采用实施例1所生成的mcts搜索得到关于pcb板目标线布通率和总长度的价值样本对策略神经网络进行训练,策略神经网络f
p
的训练过程总结如图3所示,其中训练次数定义为φ。
[0113]
实施例3
[0114]
在本发明进一步的实施例中,本发明对基于mcts的线序选择算法mcts

ws和基于联合深度学习和mcts的线序选择算法dl

mcts

ws在相同的环境下进行对比仿真分析。先会介绍不同场景下mcts

ws和dl

mcts

ws性能比较,再阐述dl

mcts

ws的泛化性能。
[0115]
如图4所示,本次仿真测试场景总共有六个,其中上边三个和下边三个分别一组,组内的第二个和第三个场景是通过组内第一个场景通过上下和左右对称得到的。每个场景的网格环境大小均为100
×
100,待布线对个数为8,即q=8。实验中的一些超参数定义如表1,mcts

ws中uct公式(4

4)中探索系数c1设置为0.1,dl

mcts

ws中puct公式(4

11)中探索系数c2和先验概率计算公式(17)中的调节系数τ分别设置为0.1和2,dl

mcts

ws中策略神经网络训练batchsize b
p
和训练次数φ分别设置为64和300。实验过程中,底层布线算法这里使用的是lee算法,即当mcts

ws或者dl

mcts

ws输出布线顺序时,自动布线lee算法会按照此布线顺序进行实际布线。表2示出了mcts

ws和dl

mcts

ws指导下底层自动布线算法(lee算法)的完全布通率。
[0116]
表1仿真参数设置
[0117][0118]
表4

2 mcts

ws和dl

mcts

ws指导下底层布线算法的完全布通率
[0119]
[0120][0121]
由上表可以看到,在不同的仿真次数下,6个场景下mcts

ws和dl

mcts

ws的完全布通率。完全布通是指底层布线算法在按照mcts

ws和dl

mcts

ws输出的布线顺序,能够将场景中8个待布线对都能布通,底层布线算法这里使用的是lee算法。在每个仿真次数设置下,每一个场景中会测试β次,待布线对完全布通的次数为其中每次测试的初始线序是随机生成的,则最后的完全布通率η可以由下式计算得到:
[0122][0123]
如表4

2,随着仿真次数的增加,mcts

ws和dl

mcts

ws在不同场景下的布通率都呈上升趋势(dl

mcts

ws是在该测试场景下按照batchsize b
p
=64,将策略神经网络训练300次后才形成可以用于测试使用的模型),最后在250次仿真次数以内完全布通率都能达到1.0。在6个场景中,dl

mcts

ws达到完全布通率η=1所需的仿真次数是均小于mcst

ws的。经计算,dl

mcts

ws在6个场景下达到η=1所需的平均仿真次数仿真次数约为67次,而mcts

ws所需平均仿真次数约为208次,从而说明在这6个场景下,dl

mcts

ws的平均搜索效率约为mcts

ws的208/67≈3.10倍。因此,策略深度神经网络对mcts搜索效率的提升是有显著效果。如表4

3,为在6个场景上,mcts

ws和dl

mcts

ws完全布通时的总长度,可以看出两者最终完全布通的布线总长度在6个场景中都是无差别的,是因为底层布线算法使用的都是lee算法,在合适的布线顺序下,lee算法总能找到最短路径(由于场景(b)和(c)是场景(a)通过对称得到的,所以它们最终完全布通的布线总长度都一样,同理,场景(d),(e)和(f)最终完全布通的布线总长度也完全一样)。在搜索次数为100的情况下,mcts

ws在一个场景下的平均耗时(gpu的计算耗时)为10.21秒,而dl

mcts

ws的平均耗时为12.35秒,耗时为mcts

ws的1.21倍。这里可以看出,策略神经网络的引入并没有增加太多的额外耗时,主要是因为神经网络的运行在gpu下进行加速运算的,同时策略神经网络还省去了mcts的模拟过程,最终,相比于策略神经网络的引入带来的搜索效率提升,其额外增加的耗时是可以接受的。如图5a~图5f,共有6组图片,每组图片对应的是图4中(a)~(f)6个不同场景下,底层lee算法按照线序选择算法输出布线顺序进行实际布线的效果图,蓝色的线对应的是已经布通的线对路径,而棕色线连接的线对是不能布通的线对。每组中共有两张图片,上面一
张对应的是在仿真次数不够充足情况下的布线效果,此时线序选择算法输出的布线顺序不是最优的,从图中也能看出一些布通的线将未能布通线对的可布线路径全部挡住,从而使得最终不能布通所有待布线对;下面一张则对应仿真次数比较充足情况下的布线效果,所有待布线对都能布通,说明此时线序选择算法输出的布线顺序已经是最优的。
[0124]
表4

3 mcts

ws和dl

mcts

ws完全布通时的布线总长度
[0125][0126]
在发明进一步的实施例中,对dl

mcts

ws的泛化性能进行验证。在本次测试中,dl

mcts

ws训练和测试的场景均为同一个场景,dl

mcts

ws的训练过程是在场景(a),(b),(d)和(e)这四个上进行的,训练总共的轮数为1000次(其他参数和前一次仿真中设置一样),然后测试过程则是在场景(c)和(f)上进行的。最终的测试效果如表4

4,dl

mcts

ws在场景(c)和(f)下达到η=1所需的平均仿真次数为75,此时的搜索效率大约为mcts

ws的208/75≈2.77,证明dl

mcts

ws在未训练过的场景下是有一定的泛化性能的。
[0127]
表4

4 dl

mcts

ws的泛化性能
[0128][0129]
综上所述,本发明通过针对pcb线序选择问题建立数学模型,将线序选择问题映射成马尔可夫决策过程。提供了基于mcts的线序选择算法mcts

ws,以及联合了深度学习的线序选择算法dl

mcts

ws两种线序搜索模拟搜索算法,相应线序选择算法能够自动生成生成最优线序集合与布线路径,实现全智能化的自动布线,有效提高自动布线算法的布通率和布线效率。实验表明,使用了线序选择算法后,自动布线算法的平均布通率提高了14.76%。
[0130]
在本发明进一步的实施例中,还提供一种执行上述基于线序模拟的pcb自动布线系统,即电子设备(例如具备程序执行功能的计算机服务器),其包括至少一个处理器,电源,以及与所述至少一个处理器通信连接的存储器和输入输出接口;所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述任一实施例所公开的方法;所述输入输出接口可以包括显示器、键盘、鼠标、以及usb接口,用于输入输出数据;电源用于为电子设备提供电能。
[0131]
本领域技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
[0132]
当本发明上述集成的单元以软件功能单元的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技
术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
[0133]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜