CN112528591B - 一种基于联合蒙特卡洛树搜索的pcb板自动布线方法 - Google Patents
一种基于联合蒙特卡洛树搜索的pcb板自动布线方法 Download PDFInfo
- Publication number
- CN112528591B CN112528591B CN202011439839.7A CN202011439839A CN112528591B CN 112528591 B CN112528591 B CN 112528591B CN 202011439839 A CN202011439839 A CN 202011439839A CN 112528591 B CN112528591 B CN 112528591B
- Authority
- CN
- China
- Prior art keywords
- pin
- pcb
- wiring
- monte carlo
- carlo tree
- 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
Links
Images
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/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/08—Probabilistic or stochastic CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/12—Printed circuit boards [PCB] or multi-chip modules [MCM]
Abstract
本发明公开了一种基于联合蒙特卡洛树搜索的PCB板自动布线方法,包括:对待布线PCB板进行分析,生成PCB板初始引脚占用状态矩阵,并确定所述待布线的PCB板对应的n根目标线、以及n根所述目标线之间的布线顺序;再利用联合蒙特卡洛树模型依次求解出第一目标线至第n目标线的最佳连线路径,从而实现PCB板自动布线。本发明通过引入AI强化学习算法实现PCB自动布线,将自动布线问题建模为序惯决策问题,引入蒙特卡洛树对布线动作的搜索、神经网络对节点先验预测加速搜索等智能技术,通过不断自我学习,实现单层或多层PCB板的高效准确自动布线,与现有基于图论的PCB板自动布线算法相比,显著提升PCB板布通率、设计效率。
Description
技术领域
本发明涉及PCB板自动布线技术领域,特别涉及一种基于联合蒙特卡洛树搜索的PCB板自动布线方法。
背景技术
随着大规模集成电路技术的发展,集成电路工艺进入纳米技术时代,在一个芯片上集成的组件与引脚连线越来越多。而在不久的将来,每个芯片上的晶体管数量仍将大幅增长,这种日益增加的复杂性给电子设计带来了实质性的挑战。为了满足和达到这电子设计的需求,业界迫切需要EDA(Electronics Design Automation)软件作为强有力的支撑。
EDA是在电子CAD技术基础上发展起来的计算机辅助设计软件系统,融合了应用电子技术、计算机技术、信息处理及智能化技术进行电子产品的自动设计。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,并可以将电子产品从电路设计、性能分析到设计出PCB版图的整个过程,在计算机上自动处理完成。EDA技术可以广泛应用于电子、通信、航空航天、机械等多个领域。
然而,EDA软件的开发存在着极大的技术难度,针对诸如自动布线等关键环节,国内研究比较缺乏,相关的研究工作在本世纪进展缓慢。EDA中一项极为重要的技术就是PCB自动布线,所谓PCB自动布线就是依据一定的程序算法,让设计软件程序根据用户设定的相关参数和布线规则,自动的在各个元件之间进行连线,实现元器件之间的电气连接关系,进而快速完成PCB的布线工作。不同于芯片布局布线布通率更多考量元器件位置的放置,PCB设计成功与否更加注重PCB引脚间布线的合理性,而布线算法选择对PCB布线的布通率有很大的影响。
世界上最早的布线算法是1961年发布的Lee算法,自Lee算法提出后,有许多对该算法的改进,包括提高其速度和减少其计算空间的算法。1969年D.W.Hightower提出了一种基于线扩展的布线方法,称为线探索法。就目前来看,除了Lee算法和线探索法,还有最优通道法、Hitchcook的细胞结构法、Mah及Stainberg的拓扑类并法、J.Soukup的快速迷路法等。然而,这类传统图论布线算法时间和空间复杂度均较高,环境复杂时,复杂度上涨速度极快,因此布线速度较慢;且传统图论算法布通成功率较低,一旦布线失败,很难实现自我修复。现有通过AI算法进行PCB自动布图设计的研究,如申请号为2019108925450的中国专利,但是其中公开了利用AI布线模块进行AI自动布线的构思,但其中并不涉及到具体的AI算法。
发明内容
本发明的目的在于克服现有技术中所存在的传统图论布线算法复杂度过高、布线速度较慢,且布通成功率较低、一旦布线失败很难实现自我修复的缺陷,提供一种基于联合蒙特卡洛树搜索的PCB板自动布线方法,引入AI强化学习算法实现PCB自动布线,将自动布线问题建模为序惯决策问题,本申请所提供的AI强化学习方法采用蒙特卡洛树对布线动作进行搜索的基础上,联合神经网络对节点先验预测加速搜索,通过不断自我学习,能够实现复杂PCB板的高效准确自动布线,显著提升PCB板设计效率。
为了实现上述发明目的,本发明提供了以下技术方案:
一种基于联合蒙特卡洛树搜索的PCB板自动布线方法,包括:
步骤1:对待布线PCB板进行分析,生成PCB板初始引脚占用状态矩阵,并确定所述待布线的PCB板对应的n根目标线、以及n根所述目标线之间的布线顺序;
步骤2:将所述PCB板初始引脚占用状态矩阵、以及第一目标线对应的起点引脚、终点引脚输入至联合蒙特卡洛树模型中,求解得到起点引脚、终点引脚之间的最佳连线路径;根据所得最佳连线路径在PCB板上进行第一目标线的布线,并根据布线结果更新PCB板引脚占用状态矩阵;
所述联合蒙特卡洛树模型为融合了神经网络的蒙特卡洛树模型,所述联合蒙特卡洛树模型能够根据输入的PCB板引脚占用状态矩阵、起点引脚坐标、终点引脚坐标进行迭代循环计算,求解出所述起点引脚与终点引脚之间的最佳连线路径;
步骤3:重复步骤2,将根据布线结果更新后的引脚占用状态矩阵以及目标线对应的起点引脚、终点引脚输入至所述联合蒙特卡洛树模型中,依次完成第二目标线、第三目标线...第n目标线的布线。
优选的,上述基于联合蒙特卡洛树搜索的PCB板自动布线方法中,所述步骤1包括:
步骤101,对待布线的PCB板进行分析,得到待布线的PCB板的引脚分布,根据待布线的PCB板上既有元器件的引脚占用情况生成PCB板的初始引脚占用状态矩阵;
步骤102,根据待布线的PCB板对应的电路原理图确定所述待布线的PCB板对应的n根目标线,得到每根目标线的起始引脚与终点引脚;
步骤103,确定n根所述目标线之间的布线顺序,得到第一目标线、第二目标线...第n目标线。
优选的,上述基于联合蒙特卡洛树搜索的PCB板自动布线方法中,根据每根目标线的起始引脚与终点引脚之间的欧式距离确定n根所述目标线之间的布线顺序。
优选的,上述基于联合蒙特卡洛树搜索的PCB板自动布线方法中,所述联合蒙特卡洛树模型通过以下步骤求解得到起点引脚、终点引脚之间的最佳连线路径:
步骤201:以起点引脚作为蒙特卡洛树搜索的根节点,从根节点开始,联合蒙特卡洛树模型每次都根据选择公式选一个最值得搜索的走线引脚,当选择了一个走线引脚后,以选择得到的走线引脚的位置为当前位置,根据当前位置判断是否布线结束,若否,则进入步骤202;若是,则进入步骤203;
步骤202:判断当前位置是否第一次被选择,若是,则根据布线规则对当前位置执行拓展操作,得到当前位置对应的多个子位置;将当前位置对应的搜索路径以及目标线对应的引脚占用状态矩阵、起点引脚、终点引脚输入至神经网络,得到当前位置的价值,及其多个子位置被选择的概率;初始化多个子位置的价值,将当前位置的价值进行回传,沿着当前位置对应的搜索路径更新在前的多个引脚的价值和访问次数;回传后,返回步骤201从根节点开始重新搜索;若否,则直接按照选择公式依次进行选择;
步骤203,根据评价规则从而给出真实的回报奖励值,奖励值将会回传给该路径上每一个位置,使得这些位置的价值得到更新;
步骤204:迭代步骤201~203,当达到预设迭代次数时,按照选择公式选择起点引脚终点引脚之间的第一引脚;
步骤205,以第一引脚为根节点,重复步骤201~204,找到第二引脚,以第二引脚为根节点,重复步骤201~204,找到第三引脚...直到找到的根节点为终点引脚形成所述最佳连线路径。
优选的,上述基于联合蒙特卡洛树搜索的PCB板自动布线方法中,所述布线规则为上一引脚方向不超过45度、与已经被占用的引脚无交叉。
优选的,上述基于联合蒙特卡洛树搜索的PCB板自动布线方法中,所述评价规则包括:连线长短奖励值以及版图设计规则奖励值。
优选的,上述基于联合蒙特卡洛树搜索的PCB板自动布线方法中,所述选择公式为:
其中,at表示在第t步时的选择过程,c是调节参数,P(v')是神经网络输出的在当前布线状态s下选择子位置v'的概率,Q(v')表示子位置v'的价值,N(v')表示子位置v'的访问次数,同理,Q(v)表示当前位置v的价值,N(v)表示当前位置v的访问次数。
优选的,上述基于联合蒙特卡洛树搜索的PCB板自动布线方法中若所述当前位置无法被拓展或者当前位置为终点引脚时判断布线结束。
优选的,上述基于联合蒙特卡洛树搜索的PCB板自动布线方法中,在DenseNet网络架构后连接两个全连接层以搭建所述神经网络。
与现有技术相比,本发明的有益效果:
本发明所提供的PCB自动布线方法,在PCB板给定后、通过分析确定出PCB上的多根目标连线,通过网格化PCB板环境,将多层PCB板转换为三维矩阵,将PCB板自动布线问题建模为序惯决策问题,采用联合蒙特卡洛树模型计算最佳连线路径,该联合蒙特卡洛树模型利用蒙特卡洛树对布线动作的进行自动搜索、通过神经网络对节点先验预测加速搜索,能够不断自我学习,实现单层或多层PCB板的高效准确自动布线,与现有基于图论的PCB板自动布线算法相比,显著提升PCB板布通率、设计效率。
附图说明:
图1示出了本发明示例性实施例的基于联合蒙特卡洛树搜索的PCB板自动布线方法流程图。
图2示出了本发明示例性实施例的联合蒙特卡洛树模型的计算最佳连线路径的原理框图。
图3示出了本发明示例性实施例的联合蒙特卡洛树模型的计算最佳连线路径搜索模型示意图。
图4示出了本发明示例性实施例的Densenet神经网络架构图。
图5示出了本发明示例性实施例的基于联合蒙特卡洛树搜索的PCB板自动布线系统结构框图。
图6示出了本发明示例性实施例的3层PCB板(第一层)布线结果示意图。
附图标记:
1-元器件;2-算法布设的引脚之间的连线;3-穿孔。
具体实施方式
下面结合试验例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。
实施例1
图1示出了本发明示例性实施例的基于联合蒙特卡洛树搜索的PCB板自动布线方法流程图,包括:
步骤1:对待布线PCB板进行分析,生成PCB板初始引脚占用状态矩阵,并确定所述待布线的PCB板对应的n根目标线、以及n根所述目标线之间的布线顺序;
步骤2:将所述PCB板初始引脚占用状态矩阵、以及第一目标线对应的起点引脚、终点引脚输入至联合蒙特卡洛树模型中,求解得到起点引脚、终点引脚之间的最佳连线路径;根据所得最佳连线路径在PCB板上进行第一目标线的布线,并根据布线结果更新PCB板引脚占用状态矩阵;
所述联合蒙特卡洛树模型为融合了神经网络的蒙特卡洛树模型,所述联合蒙特卡洛树模型能够根据输入的PCB板引脚占用状态矩阵、起点引脚坐标、终点引脚坐标进行迭代循环计算,求解出所述起点引脚与终点引脚之间的最佳连线路径;
步骤3:重复步骤2,将根据布线结果更新后的引脚占用状态矩阵以及目标线对应的起点引脚、终点引脚输入至所述联合蒙特卡洛树模型中,依次完成第二目标线、第三目标线...第n目标线的布线。
具体的,在给出待布线PCB板之后,对待布线的PCB板进行分析,首先将整个PCB转换为网格矩阵,通过网格上的每个点来表示PCB上每个引脚,得到整个PCB板上引脚的数目、引脚的分布,从而将待布线PCB板转换为网格化的环境。并且在实际应用场景中,仅在一层PCB板上布完整个电路往往引脚是不够的,因此实际多层pcb板的布线设计。通过这种网格化处理方式,可以将每个引脚的坐标以三维坐标呈现(x,y,z),其中x代表在本层板子上的横坐标、y为纵坐标,而z就代表引脚所在的PCB板层数,从而可以实现多层PCB板的自动布图。在将整个PCB板网格化之后,根据待布线的PCB板上既有元器件的引脚占用情况生成PCB板的初始引脚占用状态矩阵;同时,根据待布线的PCB板对应的电路原理图确定所述待布线的PCB板对应的n根目标线,得到每根目标线的起始引脚与终点引脚。进一步的,在找到待布线PCB板的多根目标线之后,对目标线的布线顺序进行设定,确定出第一目标线、第二目标线...第n目标线。优选的,可以根据每根目标线的起始引脚与终点引脚之间的欧式距离确定n根所述目标线之间的布线顺序,即距离最近的目标线为第一目标线,以此类推。在确定好了目标线与目标线的顺序之后,利用联合蒙特卡洛树模型自动找到满足DRC规则的各引脚间的连线,任何一根线的布线过程都是从起点开始寻找一条走到终点的路径搜索问题。利用联合蒙特卡洛树模型按照顺序进行自动布线,从第一目标线开始,将PCB板初始引脚占用状态矩阵(此时PCB板上无线、仅有元器件占用了对应的引脚)、以及第一目标线对应的起点引脚、终点引脚输入至联合蒙特卡洛树模型,通过模型求得第一目标线起点引脚与第一目标线终点引脚之间的最佳连线路径;根据所得最佳连线路径在待布线PCB板上进行第一目标线的布线。并根据布线结果更新PCB板引脚占用状态矩阵:PCB板上布设了第一目标线,除了元器件占用的引脚,还有第一目标线占用的引脚,根据此时的引脚占用情况更新PCB板引脚占用状态矩阵。此时,将更新后的PCB板引脚占用状态矩阵以及第二目标线对应的起点引脚、终点引脚输入至联合蒙特卡洛树模型,通过模型求得第二目标线起点引脚与第二目标线终点引脚之间的最佳连线路径;根据所得最佳连线路径在待布线PCB板上进行第二目标线的布线,根据第一目标线、第二目标线的引脚占用状态更新PCB板引脚占用状态矩阵,代入模型进行第三目标线的布线...以此类推,按照既定顺序完成1~n根目标线的布线,由此完成了对PCB板的自动布线。
其中,针对布线领域的特点,我们采用深度神经网络和蒙特卡洛树搜索相结合的联合联合蒙特卡洛树模型实现每根目标线的智能布线,蒙特卡洛树搜索能够平衡探索和利用使得布线结果并逐步逼近最优解,深度神经网络的运用可以使得我们的布线工具不断迭代学习,模拟人的思考学习和实际布线过程,二者相结能够实现快速、高效的PCB智能布线。图2示出了本发明示例性实施例的联合蒙特卡洛树模型的计算最佳连线路径的原理框图,在给出PCB板当前引脚占用状态以及要连接的起始引脚、终点引脚后,程序输入当前PCB的引脚占用状态s,执行一个由神经网络fθ指导的蒙特卡洛树搜索,在搜索过程中,神经网络会根据当前连线所处的位置和PCB板的板面情况预测选择下一个走线位置的概率和该位置价值。最后,蒙特卡洛树搜索结束后,返回针对连线所处的当前位置的下一步最优布线位置。我们的方法迭代的使用蒙特卡洛树搜索和神经网络。其中,蒙特卡洛树搜索后产生的实际布线路径能够用来当作标签训练神经网络,而神经网络输出当前位置所对应的下一步动作选择概率和当前位置的预测价值:(p(v′),Q(v))=Pθ(s,a),其中p(v′)代表了下一步动作选择概率向量(有多少个动作就有多少个值),Q(v)表示当前位置的预测价值在不断地学习中能够更接近改进后的蒙特卡洛树搜索给出的概率,从而指导蒙特卡洛树搜索更加准确。
在本发明进一步的实施例中,以某一根目标线为例,所述联合蒙特卡洛树模型通过以下步骤求解得到起点引脚、终点引脚之间的最佳连线路径:
步骤201:以起点引脚作为蒙特卡洛树搜索的根节点,从根节点开始,联合蒙特卡洛树模型每次都根据选择公式选一个最值得搜索的走线引脚,当选择了一个走线引脚后,以选择得到的走线引脚的位置为当前位置,根据当前位置判断是否布线结束,若否,则进入步骤202;若是,则进入步骤203;
步骤202:判断当前位置是否第一次被选择,若是,则根据布线规则对当前位置执行拓展操作,得到当前位置对应的多个子位置;将当前位置对应的搜索路径以及目标线对应的引脚占用状态矩阵、起点引脚、终点引脚输入至神经网络,得到当前位置的价值,及其多个子位置被选择的概率;初始化多个子位置的价值,将当前位置的价值进行回传,沿着当前位置对应的搜索路径更新在前的多个引脚的价值和访问次数。具体而言,路径上的每个引脚的价值都被加上当前(被选择)位置的价值,每个引脚的访问次数加一。回传后,返回步骤201从根节点开始重新搜索;若否,则直接按照选择公式依次进行选择;
其中,选择公式为:选择最佳动作获得最优子位置,at表示在第t步时的选择过程,c是调节参数,一般设置为P(v')是神经网络输出的在当前布线状态s下选择子位置v'的概率,Q(v')表示子位置v'的价值,N(v')表示子位置v'的访问次数,同理,Q(v)表示当前位置v的价值,N(v)表示当前位置v的访问次数;
步骤203,根据评价规则从而给出真实的回报奖励值,奖励值将会回传给该路径上每一个位置,使得这些位置的价值得到更新;所述评价规则包括:连线长短奖励值以及版图设计规则(DRC规则)奖励值。
步骤204:迭代步骤201~203,当达到预设迭代次数时,按照选择公式选择起点引脚终点引脚之间的第一引脚;
这里以某一根连线为例,蒙特卡洛树搜索的每个节点都代表了当前连线走到的PCB板上的位置,其中树扩展的动作代表了下一次布线行动的方向,根据动作找到这个位置对应的下一走线引脚。在实际应用中,对于多层PCB板这里的拓展动作包括:穿孔。
在算法开始,我们首先将连线起点作为蒙特卡洛树搜索的根节点,经过反复执行如下三个步骤以后,蒙特卡洛树将会被扩展开,此时,算法将选择出对于根节点位置而言访问次数最多的下一个位置。这个新的位置会被真正的在PCB板上布线,然后,这个位置将会作为新的一棵蒙特卡洛树根节点开始以下的步骤。如此直到到达连线的预定终点。(1)第一步是搜索,从根节点开始,蒙特卡洛树每次都按照选择公式选一个最值得搜索的下一个走线位置(子位置),直到布线结束(代表到达目标位置,或者是当前布线位置不存在可行方向,或者是达到最大探索深度)或者当前位置是否第一次被选择。如果布线结束(代表到达目标位置),则转到(6)。如果该位置是第一次被选择,转到(2)。否则,代表当前位置已经被扩展,则继续按照选择公式搜索拓展即可。
其中,选择公式为:选择最佳动作获得最优子位置,at表示在第t步时的选择过程,c是调节参数,P(v')是神经网络输出的在当前布线状态s下选择子位置v'的概率,Q(v')表示子位置v'的价值,N(v')表示子位置v'的访问次数,同理,Q(v)表示当前位置v的价值,N(v)表示当前位置v的访问次数。
(2)当前位置尚未扩展开并且布线尚未结束,则通过执行以下操作在当前位置上执行扩展操作。首先,获取当前位置的所有可行布线动作(可行动作主要考虑1.与上一步方向夹角不超过45度,2.该动作不会使得当前连线与已布线或元器件位置或禁布区产生交叉),这个动作还包括多层PCB板的穿孔动作,但是由于穿孔比较消耗成本,这个动作在最后依据DRC规则评分时会有一个负价值反馈。(3)按照所有可行动作产生一系列子位置,其中每一个动作a产生一个子位置v'。(4)v'将被初始化,其中访问次数N(v')和价值Q(v')都被置为0。(将当前位置v所处的布线状态s(包含网格PCB矩阵和起点终点矩阵、节点路径信息)输入神经网络,神经网络返回当前位置的预测价值Q(v),以及各个子位置被选择的概率P(v')。(5)从当前位置v开始,沿着蒙特卡洛树被访问路径一直向上到根节点的n个位置,其中每个位置的价值都被置为Q(fi)=Q(fi)+Q(v)。每个位置的访问次数都被置为N(fi)=N(fi)+1。将根节点重新作为新的当前位置v,转回(1)。(6)布线结束,则将根据连线长短以及是否符合版图设计规则(DRC)从而给出真实的回报奖励值,同样的,奖励值将会回传给该路径上每一个位置,使得这些位置的价值得到更新。(7)在反复地执行完上述步骤以后,蒙特卡洛树被扩展完毕,根节点所在的位置将会根据访问次数决定哪以个子位置将被实际选择并且在PCB上真实布线,真实布线后的新位置将重新作为蒙特卡洛树的根节点重复上述步骤直到达到目标位置。
进一步的,结合附图3对上述联合蒙特卡洛树模型求解起点引脚、终点引脚之间的最佳连线路径的具体计算原理进行说明,如图3所示,p为起始引脚(根节点),对于现在的蒙特卡洛树只有一个节点p,所以节点p首先被选择,并且p也是第一次被选择,因此在PCB上根据布线规则(与p的夹角不超过45度,且根据引脚占用状态判断拓展动作不会与当前已经被占用的引脚产生交叉)拓展得到p对应的三个拓展动作,根据动作找到p对应的多个子节点o1、o2、ot。那么第一次被选择的p就会输入到神经网络,求得p的价值,以及o1、o2、ot被选择的概率,此时,初始化多个o1、o2、ot的价值、访问次数(置0),将当前位置的价值进行回传(根节点p回传给自己),并沿着当前位置对应的搜索路径更新在前的多个引脚的访问次数(根节点p次数加1);回传后,返回从根节点p开始重新搜索。从p重新搜索之后,假设我们根据选择公式选择得到了o1,此时o1也是第一次被选择,根据布线规则拓展动作,找到了o1的子节点o11、o12(假设o12这个位置对应的动作为穿孔)、o13;同时o1就会被送入神经网络(此时,网络的输入还包括p到o1的路径信息),求得o1的价值,以及o11、o12、o13的概率;此时初始化o11、o12、o13的价值、访问次数;将当前位置的价值进行回传给p,并沿着当前位置对应的搜索路径更新在前的多个引脚的访问次数(o1、根节点p次数加1)。返回从根节点p开始重新搜索,假设从p开始选择我们依然选到了o1,那么o1不是第一次被选择了,则直接按照选择公式选择o1即可,再通过继续搜索、选择公式选择到了o12,o12第一次被选择,拓展得到o121、o122、o123,同样o12被送入神经网络(此时,网络的输入还包括p到o1到o12的路径信息),求得o12的价值,o121、o122、o123的概率,此时初始化o121、o122、o123的价值、访问次数;将当前位置的价值进行回传给p,并沿着当前位置对应的搜索路径更新在前的多个引脚的访问次数(o12、o1、根节点p次数加1),返回p进行搜索。由选择公式可知,当树上各个节点的访问次数变化时,会影响本轮选择公式的计算结果,从而可能使得p在本次选择中,选择到了o2,那么o2第一次被选择,根据布线拓展规则拓展出了o22、o23,把o2送入神经网络,重复之前的计算,经过反复搜索、选择、拓展、回溯之后,蒙特卡洛树就会被拓展开,直到整个蒙特卡洛树到达了终点引脚,根据DRC评价规则从而给出真实的回报奖励值,奖励值将会回传给该路径上每一个位置,使得这些位置的价值得到更新,因为o2对应的动作为穿孔动作,所以这个动作在最后依据DRC规则评分时会有一个负价值反馈。迭代反复搜索、选择、拓展、回溯过程(步骤201~203),当达到预设迭代次数(本实施例取10000次作为预设迭代次数)时,按照选择公式选择起点引脚终点引脚之间的第一引脚,即统计整个树的访问次数、树上每个点的价值,选出o1、o2、ot中一个点为第一引脚。接着以第一引脚为根节点,重复第一引脚的搜索、选择、拓展、回溯以及循环迭代过程,依次找到起点引脚、终点引脚之间的第二引脚,以此类推,以第二引脚为根节点,找到第三引脚...直到找到的根节点为终点引脚形成所述最佳连线路径。
在本发明进一步的实施例中,图4示出了本发明示例性实施例的神经网络架构图(以Densenet为例,在Densenet卷积神经网络最后接两个全连接神经层用作输出)。本发明的神经网络可利用现有的多种神经网络架构,具体架构包括但不限于VGG-16,Resnet,Densenet等。网络作用:在蒙特卡洛树搜索过程中,每次选择最优子位置时,都会输入当前布线状态s,网络输入的通道数为两层,其中一层是PCB板的状态矩阵,其大小为PCB板的大小,另一层是和第一层同样大小的表征的矩阵。两个全连接层分别输出当前位置的预测价值和所有子位置被选择的概率:(p(v),Q(v'))=Pθ(s)。网络训练过程:在训练过程中,假定我们已经收集到了k个位置状态信息以及每个状态信息对应的真实选择概率标签和状态价值因此,神经网络的损失函数被定义为:其中,B是指训练神经网络的数据批量大,πi是指MCTS树根节点到第一层节点的真实选择概率(即每一个子节点的价值除以访问次数:pi是指神经网络输出的MCTS树根节点到第一层节点的选择概率,Qi是指布线结束后获得的真实奖励,vi是指神经网络输出的MCTS根节点的预测价值。训练数据集收集过程:在每次布线到达终点位置后,我们会将该条布线上的每个状态s和该状态对应的选择概率标签和状态价值存储在数据缓存区D中,神经网络就可以从D中随机抽取出批量大小的数据用于训练。
图5示出了本发明示例性实施例的基于联合蒙特卡洛树搜索的PCB板自动布线系统结构框图,即电子设备310(例如具备程序执行功能的计算机服务器),其包括至少一个处理器311,电源314,以及与所述至少一个处理器311通信连接的存储器312和输入输出接口313;所述存储器312存储有可被所述至少一个处理器311执行的指令,所述指令被所述至少一个处理器311执行,以使所述至少一个处理器311能够执行前述任一实施例所公开的方法;所述输入输出接口313可以包括显示器、键盘、鼠标、以及USB接口,用于输入输出数据;电源314用于为电子设备310提供电能。
本领域技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
当本发明上述集成的单元以软件功能单元的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
实施例2
本实施例中,以一个3层板,85根目标线,170个pin脚的PCB板为例,图6展示了我们的方法的第一层的布线成果图,另外,我们将本方法的布图结果与传统图论布图布线结果进行对比,对结果如下表:
表1.不同布线方法对比
根据上表可知,本发明的方法相较于传统图论布图布通率提高了25%,相较于Astar启发式算法提高了17.4%。
以上所述,仅为本发明具体实施方式的详细说明,而非对本发明的限制。相关技术领域的技术人员在不脱离本发明的原则和范围的情况下,做出的各种替换、变型以及改进均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于联合蒙特卡洛树搜索的PCB板自动布线方法,其特征在于,包括:
步骤1:对待布线PCB板进行分析,生成PCB板初始引脚占用状态矩阵,并确定所述待布线的PCB板对应的n根目标线、以及n根所述目标线之间的布线顺序;
步骤2:将所述PCB板初始引脚占用状态矩阵、以及第一目标线对应的起点引脚、终点引脚输入至联合蒙特卡洛树模型中,求解得到起点引脚、终点引脚之间的最佳连线路径;根据所得最佳连线路径在PCB板上进行第一目标线的布线,并根据布线结果更新PCB板引脚占用状态矩阵;
所述联合蒙特卡洛树模型为融合了神经网络的蒙特卡洛树模型,所述联合蒙特卡洛树模型能够根据输入的PCB板引脚占用状态矩阵、起点引脚坐标、终点引脚坐标进行迭代循环计算,求解出所述起点引脚与终点引脚之间的最佳连线路径;
步骤3:重复步骤2,将根据布线结果更新后的引脚占用状态矩阵以及目标线对应的起点引脚、终点引脚输入至所述联合蒙特卡洛树模型中,依次完成第二目标线、第三目标线...第n目标线的布线;
其中,所述联合蒙特卡洛树模型通过以下步骤求解得到起点引脚、终点引脚之间的最佳连线路径:
步骤201:以起点引脚作为蒙特卡洛树搜索的根节点,从根节点开始,联合蒙特卡洛树模型每次都根据选择公式选一个最值得搜索的走线引脚,当选择了一个走线引脚后,以选择得到的走线引脚的位置为当前位置,根据当前位置判断是否布线结束,若否,则进入步骤202;若是,则进入步骤203;
步骤202:判断当前位置是否第一次被选择,若是,则根据布线规则对当前位置执行拓展操作,得到当前位置对应的多个子位置;将当前位置对应的搜索路径以及目标线对应的引脚占用状态矩阵、起点引脚、终点引脚输入至神经网络,得到当前位置的价值,及其多个子位置被选择的概率;初始化多个子位置的价值,将当前位置的价值进行回传,沿着当前位置对应的搜索路径更新在前的多个引脚的价值和访问次数;回传后,返回步骤201从根节点开始重新搜索;若否,则直接按照选择公式依次进行选择;
步骤203,根据评价规则从而给出真实的回报奖励值,奖励值将会回传给该路径上每一个位置,使得这些位置的价值得到更新;
步骤204:迭代步骤201~203,当达到预设迭代次数时,按照选择公式选择起点引脚终点引脚之间的第一引脚;
步骤205,以第一引脚为根节点,重复步骤201~204,找到第二引脚,以第二引脚为根节点,重复步骤201~204,找到第三引脚...直到找到的根节点为终点引脚形成所述最佳连线路径。
2.如权利要求1所述的PCB板自动布线方法,所述步骤1包括:
步骤101,对待布线的PCB板进行分析,得到待布线的PCB板的引脚分布,根据待布线的PCB板上既有元器件的引脚占用情况生成PCB板的初始引脚占用状态矩阵;
步骤102,根据待布线的PCB板对应的电路原理图确定所述待布线的PCB板对应的n根目标线,得到每根目标线的起始引脚与终点引脚;
步骤103,确定n根所述目标线之间的布线顺序,得到第一目标线、第二目标线...第n目标线。
3.如权利要求2所述的PCB板自动布线方法,根据每根目标线的起始引脚与终点引脚之间的欧式距离确定n根所述目标线之间的布线顺序。
4.如权利要求1所述的PCB板自动布线方法,所述布线规则为上一引脚方向不超过45度、与已经被占用的引脚无交叉。
5.如权利要求1所述的PCB板自动布线方法,所述评价规则包括:连线长短奖励值以及版图设计规则奖励值。
7.如权利要求1所述的PCB板自动布线方法,若所述当前位置无法被拓展或者当前位置为终点引脚时判断布线结束。
8.如权利要求1所述的PCB板自动布线方法,在DenseNet网络架构后连接两个全连接层以搭建所述神经网络。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011439839.7A CN112528591B (zh) | 2020-12-11 | 2020-12-11 | 一种基于联合蒙特卡洛树搜索的pcb板自动布线方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011439839.7A CN112528591B (zh) | 2020-12-11 | 2020-12-11 | 一种基于联合蒙特卡洛树搜索的pcb板自动布线方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112528591A CN112528591A (zh) | 2021-03-19 |
CN112528591B true CN112528591B (zh) | 2022-10-14 |
Family
ID=74999601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011439839.7A Active CN112528591B (zh) | 2020-12-11 | 2020-12-11 | 一种基于联合蒙特卡洛树搜索的pcb板自动布线方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112528591B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113435123A (zh) * | 2021-07-05 | 2021-09-24 | 江苏核电有限公司 | 基于3d技术的变电站屏柜二次回路三维仿真培训方法 |
CN113569523A (zh) * | 2021-07-29 | 2021-10-29 | 电子科技大学 | 一种基于线序模拟的pcb自动布线方法及系统 |
CN115130424B (zh) * | 2022-07-01 | 2024-01-23 | 苏州浪潮智能科技有限公司 | 一种多层pcb板自动布线方法、装置、设备及介质 |
CN116882360B (zh) * | 2023-09-07 | 2023-12-19 | 量子科技长三角产业创新中心 | 量子芯片的布线方法、装置、设备、计算机可读存储介质 |
CN117521576B (zh) * | 2024-01-08 | 2024-04-26 | 深圳鸿芯微纳技术有限公司 | 运算资源共享方法、装置、设备和介质 |
CN117829083A (zh) * | 2024-03-01 | 2024-04-05 | 上海励驰半导体有限公司 | 基于神经网络的布线方法、装置、电子设备及存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7388394B1 (en) * | 2004-12-01 | 2008-06-17 | Cardiac Pacemakers, Inc. | Multiple layer printed circuit board having misregistration testing pattern |
US8667454B1 (en) * | 2011-06-15 | 2014-03-04 | Cadence Design Systems, Inc. | System, method, and computer program product for optimizing pins |
CN103064992B (zh) * | 2011-10-20 | 2016-08-24 | 台达电子企业管理(上海)有限公司 | 一种基于有向网格点的布线存储结构及其布线方法 |
CN103593527B (zh) * | 2013-11-15 | 2017-01-25 | 浪潮电子信息产业股份有限公司 | 一种一键设置pcb板中不同类型布线规则bga的设计方法 |
US11250946B2 (en) * | 2015-10-13 | 2022-02-15 | Teletracking Technologies, Inc. | Systems and methods for automated route calculation and dynamic route updating |
US10445457B1 (en) * | 2016-06-30 | 2019-10-15 | Cadence Design Systems, Inc. | Methods, systems, and articles of manufacture for implementing a physical design of an electronic design with DFM and design specification awareness |
US10991675B2 (en) * | 2016-10-10 | 2021-04-27 | Monolithic 3D Inc. | 3D semiconductor device and structure |
US10789406B1 (en) * | 2018-11-16 | 2020-09-29 | Cadence Design Systems, Inc. | Characterizing electronic component parameters including on-chip variations and moments |
CN109858098B (zh) * | 2018-12-29 | 2023-11-24 | 深圳市水世界信息有限公司 | Pcb布线的方法、装置、计算机设备及存储介质 |
CN110610052B (zh) * | 2019-09-20 | 2021-04-30 | 中国科学院软件研究所 | Pcb自动布线系统及方法 |
GB2589353A (en) * | 2019-11-27 | 2021-06-02 | Instadeep Ltd | Electrical circuit design |
-
2020
- 2020-12-11 CN CN202011439839.7A patent/CN112528591B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112528591A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112528591B (zh) | 一种基于联合蒙特卡洛树搜索的pcb板自动布线方法 | |
Li et al. | Differential evolution with an evolution path: A DEEP evolutionary algorithm | |
CN112464611B (zh) | 一种基于云端协同智能处理的pcb自动布线系统 | |
EP3871132A1 (en) | Generating integrated circuit floorplans using neural networks | |
CN111611274A (zh) | 一种数据库查询优化方法和系统 | |
CN116402002B (zh) | 一种用于芯片布局问题的多目标分层强化学习方法 | |
Singh et al. | A review on VLSI floorplanning optimization using metaheuristic algorithms | |
Saadatmand-Tarzjan et al. | A novel constructive-optimizer neural network for the traveling salesman problem | |
CN113569523A (zh) | 一种基于线序模拟的pcb自动布线方法及系统 | |
JP3741544B2 (ja) | 順序回路の状態探索方法および装置並びに状態探索プログラムを記録した記録媒体 | |
Michel et al. | Weak interaction and strong interaction in agent based simulations | |
Hornby et al. | Accelerating human-computer collaborative search through learning comparative and predictive user models | |
Chen et al. | Neural task planning with and–or graph representations | |
Wang et al. | Assembly sequence optimization based on hybrid symbiotic organisms search and ant colony optimization | |
CN116151384B (zh) | 量子电路处理方法、装置及电子设备 | |
CN115879412A (zh) | 一种基于迁移学习的版图层级电路图尺寸参数优化方法 | |
CN115358182A (zh) | 基于生成式深度学习的芯片布线系统及方法 | |
Kemmerling et al. | Beyond games: a systematic review of neural Monte Carlo tree search applications | |
CN107105052A (zh) | 基于图规划的启发式Web服务组合方法 | |
Olenšek et al. | DESA: a new hybrid global optimization method and its application to analog integrated circuit sizing | |
Betin et al. | A mechanism for a solution search within the formalism of functional neural networks | |
Zhang et al. | A novel method based on deep reinforcement learning for machining process route planning | |
CN115620807B (zh) | 靶点蛋白分子与药物分子之间相互作用强度的预测方法 | |
Hornby et al. | Learning comparative user models for accelerating human-computer collaborative search | |
WO2023151631A1 (en) | System and method for generating floorplan for digital circuit using reinforcement learning |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |