CN112464611B - 一种基于云端协同智能处理的pcb自动布线系统 - Google Patents

一种基于云端协同智能处理的pcb自动布线系统 Download PDF

Info

Publication number
CN112464611B
CN112464611B CN202011449244.XA CN202011449244A CN112464611B CN 112464611 B CN112464611 B CN 112464611B CN 202011449244 A CN202011449244 A CN 202011449244A CN 112464611 B CN112464611 B CN 112464611B
Authority
CN
China
Prior art keywords
wiring
pcb
pin
monte carlo
wired
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
CN202011449244.XA
Other languages
English (en)
Other versions
CN112464611A (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202011449244.XA priority Critical patent/CN112464611B/zh
Publication of CN112464611A publication Critical patent/CN112464611A/zh
Application granted granted Critical
Publication of CN112464611B publication Critical patent/CN112464611B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/08Probabilistic or stochastic CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/12Printed circuit boards [PCB] or multi-chip modules [MCM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Probability & Statistics with Applications (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明公开了一种基于云端协同智能处理的PCB自动布线系统,包括:申请模块、自动布线模块、存储模块,其中,自动布线模型通过预置的布线模型自动计算布线结果。本系统利用强大的云端存储能力不断积累布线经验数据,并且依托强大的云端计算能力使用人工智能算法实现高准确率的PCB自动布线系统,具体采用联合蒙特卡洛树搜索模型作为PCB板自动布线系统的布线模型,联合蒙特卡洛树搜索模型是一种适用于PCB自动布线问题的布线算法,能够为用户提供高效准确的布线结果,同时本系统采用云端部署,支持用户可以在多种终端平台上上传自己的PCB布线需求,云端经过处理就能返回布线完成的PCB板,能够实现复杂PCB板的高效准确自动布线,显著提升PCB板设计效率。

Description

一种基于云端协同智能处理的PCB自动布线系统
技术领域
本发明涉及PCB板自动布线技术领域,特别涉及一种基于云端协同智能处理的PCB自动布线系统。
背景技术
随着大规模集成电路技术的发展,集成电路工艺进入纳米技术时代,在一个芯片上集成的组件与引脚连线越来越多。而在不久的将来,每个芯片上的晶体管数量仍将大幅增长,这种日益增加的复杂性给电子设计带来了实质性的挑战。为了满足和达到这电子设计的需求,业界迫切需要EDA(Electronics Design Automation)软件作为强有力的支撑。
EDA是在电子CAD技术基础上发展起来的计算机辅助设计软件系统,融合了应用电子技术、计算机技术、信息处理及智能化技术进行电子产品的自动设计。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,并可以将电子产品从电路设计、性能分析到设计出PCB版图的整个过程,在计算机上自动处理完成。EDA技术可以广泛应用于电子、通信、航空航天、机械等多个领域。
然而,EDA软件的开发存在着极大的技术难度,针对诸如自动布线等关键环节,国内研究比较缺乏,相关的研究工作在本世纪进展缓慢。EDA中一项极为重要的技术就是PCB自动布线,所谓PCB自动布线就是依据一定的程序算法,让设计软件程序根据用户设定的相关参数和布线规则,自动的在各个元件之间进行连线,实现元器件之间的电气连接关系,进而快速完成PCB的布线工作。不同于芯片布局布线布通率更多考量元器件位置的放置,PCB设计成功与否更加注重PCB引脚间布线的合理性,并且具体布线算法的选择会对PCB布线的布通率有很大的影响。当前,市面已有PCB自动布线算法存在很多问题,布通率低,还需要很多的人工参与。世界上最早的布线算法是1961年发布的Lee算法,自Lee算法提出后,有许多对该算法的改进,包括提高其速度和减少其计算空间的算法。1969年D.W.Hightower提出了一种基于线扩展的布线方法,称为线探索法。就目前来看,除了Lee算法和线探索法,还有最优通道法、Hitchcook的细胞结构法、Mah及Stainberg的拓扑类并法、J.Soukup的快速迷路法等。然而,这类传统图论布线算法时间和空间复杂度均较高,环境复杂时,复杂度上涨速度极快,因此布线速度较慢;且传统图论算法布通成功率较低,一旦布线失败,很难实现自我修复。由于上述布线算法存在一定缺陷,其对应的PCB自动布线系统布线成功率较低,且无法存储积累大量布线经验,也没有强大的算力进行算法优化学习,因此使用人工智能算法进行相应的自动布线成为解决途径,例如,申请号为2019108925450的中国专利,其公开了一种基于AI算法的PCB自动布线系统,利用AI算法进行PCB自动布线的构思,但其中不清楚其采用的是何种AI算法。
发明内容
本发明的目的在于克服现有技术中所存在的基于传统图论布线算法的布线系统布通率较低、的缺陷,提供一种基于云端协同智能处理的PCB自动布线系统,利用强大的云端存储能力不断积累布线经验数据,并且依托强大的云端计算能力使用人工智能算法实现高准确率的PCB自动布线系统,并且采用联合蒙特卡洛树搜索模型作为PCB板自动布线系统的布线模型,联合蒙特卡洛树搜索模型是一种适用于PCB自动布线问题的布线算法,能够为用户提供高效准确的布线结果(引脚之间如何连接的结果),同时本系统采用云端部署,支持用户可以在多种终端平台上上传自己的PCB布线需求,云端经过处理就能返回布线完成的PCB板,能够实现复杂PCB板的高效准确自动布线,显著提升PCB板设计效率。
为了实现上述发明目的,本发明提供了以下技术方案:
一种基于云端协同智能处理的PCB自动布线系统,包括:
申请模块,用于通过通信接口响应客户端的PCB布线请求、对客户端的PCB布线请求进行排序,生成PCB板布线任务列表;
自动布线模块,用于根据PCB板布线任务列表获取当前待处理PCB布线任务,对当前待处理PCB布线任务中的待布线PCB板及其电路原理图进行分析,生成PCB板初始引脚占用状态矩阵及其布线目标,利用预置的布线模型根据所述PCB板初始引脚占用状态矩阵与布线目标生成待布线PCB板的布线结果,并将待布线PCB板及其对应的布线结果传输至存储模块,以及,通过通信接口将所述布线结果传输至该布线任务对应的客户端;其中,所述布线模型为联合蒙特卡洛树模型;
存储模块,用于接收来自自动布线模块的待布线PCB板及其对应的布线结果,根据接收到的待布线PCB板及其布线结果更新其存储的布线经验数据库,以通过所述布线经验数据库指导所述预置的联合蒙特卡洛树模型的强化学习。
优选的,上述基于云端协同智能处理的PCB自动布线系统中,所述自动布线模块包括:第一计算子模块与第二计算子模块,
所述第一计算子模块,用于根据PCB板布线任务列表获取当前待处理PCB布线任务,当前待处理PCB布线任务中的待布线PCB板及其电路原理图进行分析,生成PCB板初始引脚占用状态矩阵及其布线目标,并将所述待布线PCB板的初始引脚占用状态矩阵及其布线目标发送至第二计算子模块;所述布线目标包括:待布线PCB板的对应的n根目标线以及n根所述目标线之间的布线顺序;
所述第二计算子模块,用于配置所述联合蒙特卡洛树模型,所述联合蒙特卡洛树模型能够根据所述PCB板初始引脚占用状态矩阵、n根目标线以及n根所述目标线之间的布线顺序,依次求得第一目标线的最佳连线路径、第二目标线的最佳连线路径...第n目标线的最佳连线路径,求解得到待布线PCB板的布线结果,并将待布线PCB板及其对应的布线结果传输至存储模块,以及,通过通信接口将所述布线结果传输至该布线任务对应的客户端;
所述联合蒙特卡洛树模型为融合了神经网络的联合蒙特卡洛树模型。
优选的,上述基于云端协同智能处理的PCB自动布线系统中,所述神经网络为VGG-16,Resnet,Densenet中的一种。
优选的,上述基于云端协同智能处理的PCB自动布线系统中,所述布线系统还包括:反馈学习模块;
所述反馈学习模块用于接收客户端通过通信接口发送的布线结果质量信息,以及根据所述布线结果质量信息提取经验数据,将提取的经验数据发送至所述存储模块,以更新布线经验数据库。
优选的,上述基于云端协同智能处理的PCB自动布线系统中,所述布线经验数据库采用MySQL、Oracle、DB2数据库中的一种。
优选的,上述基于云端协同智能处理的PCB自动布线系统中,所述布线系统还包括:状态处理模块,
所述状态处理模块,用于对所述PCB板布线任务列表中的PCB板布线任务进行时间监控,当所述PCB板布线任务存在超时处理时,将所述服务请求进行剔除。
与现有技术相比,本发明的有益效果:
本发明所提供的基于云端协同智能处理的PCB自动布线系统,利用强大的云端存储能力不断积累布线经验数据,并且依托强大的云端计算能力使用人工智能算法实现高准确率的PCB自动布线系统,具体采用联合蒙特卡洛树搜索模型作为PCB板自动布线系统的布线模型,联合蒙特卡洛树搜索模型是一种适用于PCB自动布线问题的布线算法,能够为用户提供高效准确的布线结果,同时本系统采用云端部署,支持用户可以在多种终端平台上上传自己的PCB布线需求,云端经过处理就能返回布线完成的PCB板,能够实现复杂PCB板的高效准确自动布线,显著提升PCB板设计效率。
附图说明
图1示出了本发明示例性实施例的基于云端协同智能处理的PCB自动布线系统结构框图。
图2示出了本发明示例性实施例的联合蒙特卡洛树模型的计算最佳连线路径的原理框图。
图3示出了本发明示例性实施例的联合蒙特卡洛树模型的计算最佳连线路径搜索模型示意图。
图4示出了本发明示例性实施例的Densenet神经网络架构图。
图5示出了本发明示例性实施例的3层PCB板(第一层)布线结果示意图。
附图标记:
1-元器件;2-算法布设的引脚之间的连线;3-穿孔。
具体实施方式
下面结合试验例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。
实施例1
图1示出了本发明示例性实施例的基于云端协同智能处理的PCB自动布线系统结构框图,包括:
申请模块,用于通过通信接口响应客户端的PCB布线请求、对客户端的PCB布线请求进行排序,生成PCB板布线任务列表;
自动布线模块,用于根据PCB板布线任务列表获取当前待处理PCB布线任务,对当前待处理PCB布线任务中的待布线PCB板及其电路原理图进行分析,生成PCB板初始引脚占用状态矩阵及其布线目标,利用预置的布线模型根据所述PCB板初始引脚占用状态矩阵与布线目标生成待布线PCB板的布线结果,并将待布线PCB板及其对应的布线结果传输至存储模块,以及,通过通信接口将所述布线结果传输至该布线任务对应的客户端;其中,所述布线模型为联合蒙特卡洛树模型;
存储模块,用于接收来自自动布线模块的待布线PCB板及其对应的布线结果,根据接收到的待布线PCB板及其布线结果更新其存储的布线经验数据库,以通过所述布线经验数据库指导所述预置的布线模型的强化学习。
其中,所述自动布线模块包括:第一计算子模块与第二计算子模块,
所述第一计算子模块,用于根据PCB板布线任务列表获取当前待处理PCB布线任务,当前待处理PCB布线任务中的待布线PCB板及其电路原理图进行分析,生成PCB板初始引脚占用状态矩阵及其布线目标,并将所述待布线PCB板的初始引脚占用状态矩阵及其布线目标发送至第二计算子模块;所述布线目标包括:待布线PCB板的对应的n根目标线以及n根所述目标线之间的布线顺序(例如:根据每根目标线的起始引脚与终点引脚之间的欧式距离确定n根所述目标线之间的布线顺序);
所述第二计算模块,用于配置所述联合蒙特卡洛树模型,所述联合蒙特卡洛树模型能够根据所述PCB板初始引脚占用状态矩阵、n根目标线以及n根所述目标线之间的布线顺序,依次求得第一目标线的最佳连线路径、第二目标线的最佳连线路径...第n目标线的最佳连线路径,求解得到的待布线PCB板的布线结果,并将待布线PCB板及其对应的布线结果传输至存储模块,以及,通过通信接口将所述布线结果传输至该布线任务对应的客户端;所述联合蒙特卡洛树模型为融合了神经网络的联合蒙特卡洛树模型。
在本发明进一步的实施例中,所述布线系统还包括:反馈学习模块以及状态处理模块;所述反馈学习模块用于接收客户端通过通信接口发送的布线结果质量信息,以及根据所述布线结果质量信息提取经验数据,将提取的经验数据发送至所述存储模块,以更新布线经验数据库。所述状态处理模块,用于对所述PCB板布线任务列表中的PCB板布线任务进行时间监控,当所述PCB板布线任务存在超时处理时,将所述服务请求进行剔除。
具体的,下面介绍本系统进行自动布线的实施步骤:当用户想要我们的自动布线服务时,用户通过客户端,发出请求,此时申请模块会通过相应的通信接口接收到客户的请求并响应客户的请求(若用户为新用户,则需要响应用户的注册请求,待注册成功后,进行后续服务),接收用户上传的待布线PCB板(包括PCB板对应的电路原理图),由申请模块将收到的PCB板请求放入任务消息队列,即对来自多个客户端的请求进行排序,生成PCB板布线任务列表。由状态处理模块,对任务时间进行监控。此时,自动布线模块则可以根据PCB板布线任务列表找到当前待处理PCB布线任务,对当前待处理PCB布线任务中的待布线PCB板及其电路原理图进行分析,并在分析之后,利用预置的布线模型(联合蒙特卡洛树模型)计算出布线结果,并将布线结果通过通信接口返回给客户端。同时,将待布线PCB板及其对应的布线结果发送至存储模块,存储模块中的存储的布线经验数据库可以得到更新,以便于后续利用布线经验数据库指导预置的布线模型的强化学习。用户在客户端收到布线结果后,用户可以对布线结果发表自己的布线结果的质量做出评价,进行打分以及提供自己的建议,也就是用户向系统发出的布线结果质量信息。当有用户发出布线结果质量信息时,由反馈学习模块接收客户端通过通信接口发出的布线结果质量信息,以及根据所述布线结果质量信息提取经验数据,将提取的经验数据发送至所述存储模块,以更新布线经验数据库(本实施例中采用Oracle数据库)。因此整个过程成为了一个不断学习、不断迭代的过程,每完成一次布线任务,布线经验数据库就会进行一次扩充,从而使得后续任务的布线结果的布通率得到不断提高。
实施例2
在本发明进一步的实施例中,对本发明自动布线模块的工作原理进行说明:在给出待布线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从根节点开始重新搜索;若否,则直接按照选择公式依次进行选择;
其中,选择公式为:
Figure BDA0002831612330000111
选择最佳动作获得最优子位置,at表示在第t步时的选择过程,c是调节参数,一般设置为
Figure BDA0002831612330000112
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)。否则,代表当前位置已经被扩展,则继续按照选择公式搜索拓展即可。其中,选择公式为:
Figure BDA0002831612330000121
选择最佳动作获得最优子位置,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个位置,其中每个位置
Figure BDA0002831612330000131
的价值都被置为Q(fi)=Q(fi)+Q(v)。每个位置
Figure BDA0002831612330000132
的访问次数都被置为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个位置状态信息
Figure BDA0002831612330000151
以及每个状态信息对应的真实选择概率标签和状态价值
Figure BDA0002831612330000152
因此,神经网络的损失函数被定义为:
Figure BDA0002831612330000153
其中,B是指训练神经网络的数据批量大,πi是指MCTS树根节点到第一层节点的真实选择概率(即每一个子节点的价值除以访问次数:
Figure BDA0002831612330000161
),pi是指神经网络输出的MCTS树根节点到第一层节点的选择概率,Qi是指布线结束后获得的真实奖励,vi是指神经网络输出的MCTS根节点的预测价值。训练数据集收集过程:在每次布线到达终点位置后,我们会将该条布线上的每个状态s和该状态对应的选择概率标签和状态价值
Figure BDA0002831612330000163
存储在数据缓存区D中,神经网络就可以从D中随机抽取出批量大小的数据用于训练。
本实施例中,以一个3层板,85根目标线,170个pin脚的PCB板为例,图5展示了我们的方法的第一层的布线成果图,另外,我们将本系统的布线模型计算得到的布图结果与传统图论布图布线结果进行对比,对结果如下表:
表1.不同布线方法对比
Figure BDA0002831612330000162
根据上表可知,本发明的方法相较于传统图论布图布通率提高了25%,相较于Astar启发式算法提高了17.4%。
以上所述,仅为本发明具体实施方式的详细说明,而非对本发明的限制。相关技术领域的技术人员在不脱离本发明的原则和范围的情况下,做出的各种替换、变型以及改进均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于云端协同智能处理的PCB自动布线系统,其特征在于,包括:
申请模块,用于通过通信接口响应客户端的PCB布线请求、对客户端的PCB布线请求进行排序,生成PCB板布线任务列表;
自动布线模块,用于根据PCB板布线任务列表获取当前待处理PCB布线任务,对当前待处理PCB布线任务中的待布线PCB板及其电路原理图进行分析,生成PCB板初始引脚占用状态矩阵及其布线目标,利用预置的布线模型根据所述PCB板初始引脚占用状态矩阵与布线目标生成待布线PCB板的布线结果,并将待布线PCB板及其对应的布线结果传输至存储模块,以及,通过通信接口将所述布线结果传输至该布线任务对应的客户端;其中,所述布线模型为联合蒙特卡洛树模型;所述联合蒙特卡洛树模型能够根据所述PCB板初始引脚占用状态矩阵、n根目标线以及n根所述目标线之间的布线顺序,依次求得第一目标线的最佳连线路径、第二目标线的最佳连线路径...第n目标线的最佳连线路径,求解得到待布线PCB板的布线结果,并将待布线PCB板及其对应的布线结果传输至存储模块,以及,通过通信接口将所述布线结果传输至该布线任务对应的客户端;所述联合蒙特卡洛树模型为融合了神经网络的联合蒙特卡洛树模型;
其中,所述联合蒙特卡洛树模型通过以下步骤求解得到某一目标线的起点引脚、终点引脚之间的最佳连线路径:
步骤201:以起点引脚作为蒙特卡洛树搜索的根节点,从根节点开始,联合蒙特卡洛树模型每次都根据选择公式选一个最值得搜索的走线引脚,当选择了一个走线引脚后,以选择得到的走线引脚的位置为当前位置,根据当前位置判断是否布线结束,若否,则进入步骤202;若是,则进入步骤203;
步骤202:判断当前位置是否第一次被选择,若是,则根据布线规则对当前位置执行拓展操作,得到当前位置对应的多个子位置;将当前位置对应的搜索路径以及目标线对应的引脚占用状态矩阵、起点引脚、终点引脚输入至神经网络,得到当前位置的价值,及其多个子位置被选择的概率;初始化多个子位置的价值,将当前位置的价值进行回传,沿着当前位置对应的搜索路径更新在前的多个引脚的价值和访问次数;回传后,返回步骤201从根节点开始重新搜索;若否,则直接按照选择公式依次进行选择;
步骤203,根据评价规则从而给出真实的回报奖励值,奖励值将会回传给该路径上每一个位置,使得这些位置的价值得到更新;
步骤204:迭代步骤201~203,当达到预设迭代次数时,按照选择公式选择起点引脚终点引脚之间的第一引脚;
步骤205,以第一引脚为根节点,重复步骤201~204,找到第二引脚,以第二引脚为根节点,重复步骤201~204,找到第三引脚...直到找到的根节点为终点引脚形成所述最佳连线路径;
存储模块,用于接收来自自动布线模块的待布线PCB板及其对应的布线结果,根据接收到的待布线PCB板及其布线结果更新其存储的布线经验数据库,以通过所述布线经验数据库指导所述预置的联合蒙特卡洛树模型的强化学习。
2.如权利要求1所述的布线系统,其特征在于,所述自动布线模块包括:第一计算子模块与第二计算子模块,
所述第一计算子模块,用于根据PCB板布线任务列表获取当前待处理PCB布线任务,当前待处理PCB布线任务中的待布线PCB板及其电路原理图进行分析,生成PCB板初始引脚占用状态矩阵及其布线目标,并将所述待布线PCB板的初始引脚占用状态矩阵及其布线目标发送至第二计算子模块;所述布线目标包括:待布线PCB板的对应的n根目标线以及n根所述目标线之间的布线顺序;
所述第二计算子模块,用于配置所述联合蒙特卡洛树模型。
3.如权利要求2所述的布线系统,其特征在于,所述神经网络为VGG-16,Resnet,Densenet中的一种。
4.如权利要求1-3任一所述的布线系统,其特征在于,所述布线系统还包括:反馈学习模块;
所述反馈学习模块用于接收客户端通过通信接口发送的布线结果质量信息,以及根据所述布线结果质量信息提取经验数据,将提取的经验数据发送至所述存储模块,以更新布线经验数据库。
5.如权利要求4所述的布线系统,其特征在于,所述布线经验数据库采用MySQL、Oracle、DB2数据库中的一种。
6.如权利要求1-3任一所述的布线系统,其特征在于,所述布线系统还包括:状态处理模块,
所述状态处理模块,用于对所述PCB板布线任务列表中的PCB板布线任务进行时间监控,当所述PCB板布线任务存在超时处理时,将服务请求进行剔除。
CN202011449244.XA 2020-12-11 2020-12-11 一种基于云端协同智能处理的pcb自动布线系统 Active CN112464611B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011449244.XA CN112464611B (zh) 2020-12-11 2020-12-11 一种基于云端协同智能处理的pcb自动布线系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011449244.XA CN112464611B (zh) 2020-12-11 2020-12-11 一种基于云端协同智能处理的pcb自动布线系统

Publications (2)

Publication Number Publication Date
CN112464611A CN112464611A (zh) 2021-03-09
CN112464611B true CN112464611B (zh) 2022-09-20

Family

ID=74800923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011449244.XA Active CN112464611B (zh) 2020-12-11 2020-12-11 一种基于云端协同智能处理的pcb自动布线系统

Country Status (1)

Country Link
CN (1) CN112464611B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505426B (zh) * 2021-07-19 2024-04-12 杭州群核信息技术有限公司 强电管道绘制方法、装置、计算机设备及其介质
CN113569523A (zh) * 2021-07-29 2021-10-29 电子科技大学 一种基于线序模拟的pcb自动布线方法及系统
CN115983189B (zh) * 2023-01-06 2024-02-23 中山大学 一种自适应网格的模拟集成电路版图布线方法及系统
CN117521576B (zh) * 2024-01-08 2024-04-26 深圳鸿芯微纳技术有限公司 运算资源共享方法、装置、设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007026718A (ja) * 2005-07-12 2007-02-01 Yamaichi Electronics Co Ltd 半導体装置用ソケット
CN109858098A (zh) * 2018-12-29 2019-06-07 遵义市水世界科技有限公司 Pcb布线的方法、装置、计算机设备及存储介质
CN110427261A (zh) * 2019-08-12 2019-11-08 电子科技大学 一种基于深度蒙特卡洛树搜索的边缘计算任务分配方法
CN110610052A (zh) * 2019-09-20 2019-12-24 中国科学院软件研究所 Pcb自动布线系统及方法
CN111586969A (zh) * 2020-04-28 2020-08-25 中国科学院计算技术研究所 电路布线方法、ddr4内存电路及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109818786B (zh) * 2019-01-20 2021-11-26 北京工业大学 一种云数据中心应用可感知的分布式多资源组合路径最优选取方法
US11586728B2 (en) * 2019-06-07 2023-02-21 Nxp B.V. Methods for detecting system-level trojans and an integrated circuit device with system-level trojan detection
CN111259611B (zh) * 2020-01-13 2023-01-10 苏州浪潮智能科技有限公司 一种pcb设计中走线分割的方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007026718A (ja) * 2005-07-12 2007-02-01 Yamaichi Electronics Co Ltd 半導体装置用ソケット
CN109858098A (zh) * 2018-12-29 2019-06-07 遵义市水世界科技有限公司 Pcb布线的方法、装置、计算机设备及存储介质
CN110427261A (zh) * 2019-08-12 2019-11-08 电子科技大学 一种基于深度蒙特卡洛树搜索的边缘计算任务分配方法
CN110610052A (zh) * 2019-09-20 2019-12-24 中国科学院软件研究所 Pcb自动布线系统及方法
CN111586969A (zh) * 2020-04-28 2020-08-25 中国科学院计算技术研究所 电路布线方法、ddr4内存电路及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Hierarchy MCTS Algorithm for The Automated PCB Routing;Cong Zhang等;《2020 IEEE 16th International Conference on Control & Automation (ICCA)》;20201130;第1366-1371页 *
Circuit Routing Using Monte Carlo Tree Search and Deep Neural Networks;Youbiao He等;《https://www.researchgate.net/publication/342435601_Circuit_Routing_Using_Monte_Carlo_Tree_Search_and_Deep_Neural_Networks》;20200624;第1-8页 *

Also Published As

Publication number Publication date
CN112464611A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN112464611B (zh) 一种基于云端协同智能处理的pcb自动布线系统
CN112528591B (zh) 一种基于联合蒙特卡洛树搜索的pcb板自动布线方法
CN110851566B (zh) 一种应用于命名实体识别的可微分网络结构搜索的方法
CN111027140B (zh) 基于多视角点云数据的飞机标准件模型快速重构方法
CN113222031B (zh) 基于联邦个性化学习的光刻热区检测方法
CN104579747B (zh) 一种分布式电力设备仿真中的模型数据快速传输方法
CN110118566B (zh) 机器人运行路径生成方法及装置
CN116402002B (zh) 一种用于芯片布局问题的多目标分层强化学习方法
CN112784362A (zh) 一种用于无人机辅助边缘计算的混合优化方法及系统
CN113077501B (zh) 一种基于特征学习的端到端点云配准方法
CN113343427B (zh) 一种基于卷积神经网络的结构拓扑构型预测方法
CN116151324A (zh) 基于图神经网络的rc互连延时预测方法
CN103761212A (zh) 片上网络中任务与节点间映射方案与拓扑结构的设计方法
CN112529010B (zh) 一种基于在线局部特征提取的点云识别方法
CN114595656A (zh) 电子器件的算法模型和版图的生成方法、装置、设备及介质
CN101458714A (zh) 一种基于精确测地线的三维模型检索方法
Zhang et al. Distributed parallel computing technique for EM modeling
CN113807040A (zh) 一种面向微波电路的优化设计方法
US20030046279A1 (en) Method of robust semiconductor circuit products design using rational robust optimization
CN111985153B (zh) 基于神经网络和遗传算法的硅基光子器件仿真方法和系统
CN108614889B (zh) 基于混合高斯模型的移动对象连续k近邻查询方法及系统
CN113552881A (zh) 一种用于神经网络训练的多路径规划数据集生成方法
CN113066172A (zh) 一种基于云模型和神经网络的三维模型分类方法
Sudeng et al. Finding knee solutions in multi-objective optimization using extended angle dominance approach
US11973662B1 (en) Intelligent mapping method for cloud tenant virtual network based on reinforcement learning model

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