CN113822008B - 基于多引脚同时扩散搜索的超大规模集成电路布线方法 - Google Patents

基于多引脚同时扩散搜索的超大规模集成电路布线方法 Download PDF

Info

Publication number
CN113822008B
CN113822008B CN202111149762.4A CN202111149762A CN113822008B CN 113822008 B CN113822008 B CN 113822008B CN 202111149762 A CN202111149762 A CN 202111149762A CN 113822008 B CN113822008 B CN 113822008B
Authority
CN
China
Prior art keywords
pins
pin
cost
node
nodes
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
CN202111149762.4A
Other languages
English (en)
Other versions
CN113822008A (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.)
Southeast University
Original Assignee
Southeast University
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 Southeast University filed Critical Southeast University
Priority to CN202111149762.4A priority Critical patent/CN113822008B/zh
Publication of CN113822008A publication Critical patent/CN113822008A/zh
Application granted granted Critical
Publication of CN113822008B publication Critical patent/CN113822008B/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明公开了一种基于多引脚同时扩散搜索的超大规模集成电路布线方法,包括以下步骤:(1)根据给定的带权图,以每个引脚所在节点为源点,同时进行广度优先搜索;(2)搜索相邻节点,将该相邻节点及其累计的cost加入优先队列,路径与所属引脚存储于该相邻节点;(3)当搜索到的节点属于多个引脚时,连接对应路径,以路径上所有节点为源点加入搜索;(4)重复执行(2)(3)直至所有引脚相连。该方法有利于提高布线效率,特别是对于线网中的引脚数量较大时,该方法能够快速连接距离较近的引脚,避免大量冗余搜索,同时易于使用多线程加速,显著提高布线效率。

Description

基于多引脚同时扩散搜索的超大规模集成电路布线方法
技术领域
本发明涉及一种基于多引脚同时扩散搜索的超大规模集成电路布线方法,属于VLSI物理设计自动化技术领域。
背景技术
随着集成电路制造工艺的迅速发展,互连线的延时成为了芯片性能的瓶颈之一。布线阶段确定了每条线网在芯片上的具体走线,布线结果的好坏将直接影响整个芯片的性能。近年来,芯片集成度和复杂性不断增加,一块芯片所集成的线网数目不断增大且密度持续增高,使得VLSI布线难度越来越大。设计出快速有效的布线算法成为集成电路电子设计自动化的关键问题之一。
在当前的VLSI布线领域中,最常用的布线技术有模式布线、单调布线和迷宫布线。模式布线速度快,但是局限性较高,难以避开拥塞区域。迷宫布线可行性高,能够充分考虑拥塞信息,可行解存在时又一定能将其找到,但是运行时间很长。单调布线能比模式布线考虑更多的可能性,但是也较难避开拥塞区域。所以迷宫布线的优势仍不可替代。
然而,现有的迷宫布线过长的耗时导致其无法代替其余布线方式,尤其当引脚的数量较多时,从单点出发进行寻路,在找到其余引脚时将其连接,并从路径开始再次寻找的过程中存在大量的重复遍历。此外,由于每边的权重不需大量计算,搜索主要耗时在优先队列的压入和取出上,而这个操作不能进行并行化,不利于发挥当今多核计算的优势。
发明内容
本发明的目的是提供一种基于多引脚同时扩散搜索的超大规模集成电路布线方法,以解决现有技术中迷宫布线速度慢、对多引脚线网的绕线过程中存在大量重复遍历的问题。
为实现上述目的,本发明采用的技术方案为:
一种基于多引脚同时扩散搜索的超大规模集成电路布线方法,包括以下步骤:
步骤S1,根据给定的带权图,以每个引脚所在的节点为源点,令其cost为0并加入对应的优先队列,同时向外进行广度优先搜索;
步骤S2,从优先队列首取出节点开始搜索,将其cost与其相邻的节点的cost的和作为该相邻节点累计的cost,并与该相邻节点一起加入优先队列,将路径与其所属引脚存储于该相邻节点;
步骤S3,当其相邻的节点已经属于其所属引脚时,若其计算出cost比之前的值小,则加入优先队列并更新节点中存储路径,否则抛弃该cost值;
步骤S4,当其相邻的节点已经属于其余引脚时,若当前路径累计cost小于或等于其它引脚对应路径的累计cost时,将连接到此节点的各连通后的总cost除以连通的引脚的数量作为到达该点cost,与该节点一起存入优先队列,否则抛弃该cost值;
步骤S5,当从优先队列首取出节点属于多个引脚时,将对应路径相连,即完成对应引脚连接;同时,以路径上所有节点为源点,令其cost为0并加入优先队列向外进行广度优先搜索,将连接成功的引脚当作同一个引脚进行后续处理;
步骤S6:重复步骤S3、S4、S5,直至所有引脚相连。
所述的cost是连接产生的,能够将线长之外的其余因素考虑在内,并且,cost不是边的属性,而是节点的属性。
所述的cost考虑到其余引脚的距离L,距离越大cost越小,且对cost影响越小,需将其调整为与拥塞的影响在同一量级。
所述步骤S1中,进行广度优先搜索时,将相邻节点及其对应的cost加入优先队列,按照cost升序排序,优先搜索cost小的节点。
所述步骤S5中,之前已经存在的节点所属关系通过映射到新的引脚继续利用。
所述步骤S5中,从每一节点同时向外进行广度优先搜索时,采用单线程或者多线程的方案,具体如下:
单线程运算时,仅使用一个优先队列,将所有节点与cost信息存入其中;
多线程运算时,若可用线程数大于或等于引脚的数量,则对每个引脚分配一个线程,否则尽可能均匀分配引脚至各线程,对每个引脚使用一个优先队列存储其节点与cost信息,在搜索时,各线程以此搜索对应的各引脚,此外,在步骤S3连接多引脚时,将多引脚合并为单引脚处理,合并对应优先队列,并将其标记为正在合并,直至对其搜索至当前cost大于或等于之前各引脚对应优先队列首中最大者,取消标记;若有正在合并的引脚搜索到其余引脚则继续将其合并,而非正在合并的引脚搜索到其余引脚则将其标记为等待中,并暂停其搜索;若之前线程数小于引脚的数量,重新分配各线程对应引脚,若存在合并中的引脚,需使其独占一个线程使合并尽快完成,其余尽量平均分配,合并完成后需重新平均分配,并使之前暂停的引脚继续开始搜索;上述操作中对节点的操作需注意保证线程安全。
有益效果:本发明提供的一种基于多引脚同时扩散搜索的超大规模集成电路(VLSI)布线方法能够有效减少VLSI线网布线过程中冗余的计算,提高布线的效率,特别是对于线网中的引脚数量较大时,该方法能够快速连接距离较近的引脚,避免大量冗余搜索,同时易于使用多线程加速,显著提高布线效率。
附图说明
图1为本发明的一种基于多引脚同时扩散搜索的超大规模集成电路布线方法的流程图;
图2为本发明的实施例的引脚初始分布示意图;
图3至15为本发明的实施例的引脚逐步连接完成布线的示意图;
图2至15中,不同形状代表不同的引脚,大的为引脚的原始位置和连接成功的路径上的节点,小的为节点所属引脚的类型,虚线代表可连接的线,细实线代表节点对应路径,粗实线代表完成连接的线,浅色的节点代表即将搜索的引脚,浅色的线代表此次变化了的线。
具体实施方式
下面结合附图对发明的技术方案进行详细说明。
如图1所示,本发明的一种基于多引脚同时扩散搜索的超大规模集成电路(VLSI)布线方法,包括以下步骤:
101,根据给定的带权图,以每个引脚所在的节点为源点,令其cost为0并加入对应的优先队列,同时向外进行广度优先搜索,将相邻节点及其对应的cost加入优先队列,按照cost升序排序,优先搜索cost小的节点;
102,从优先队列首取出节点开始搜索,将其cost与其相邻的节点的cost的和作为该相邻节点累计的cost,并与该相邻节点一起加入优先队列,将路径与其所属引脚存储于该相邻节点;
103,当其相邻的节点已经属于其所属引脚时,若其计算出cost比之前的值小,则加入优先队列并更新节点中存储路径,否则抛弃该cost值;
104,当其相邻的节点已经属于其余引脚时,若当前路径累计cost小于或等于其它引脚对应路径的累计cost时,将连接到此节点的各连通后的总cost除以连通的引脚的数量作为到达该点cost,与该节点一起存入优先队列,否则抛弃该cost值;
105,当从优先队列首取出节点属于多个引脚时,将对应路径相连,即完成对应引脚连接;同时,以路径上所有节点为源点,令其cost为0并加入优先队列向外进行广度优先搜索,将连接成功的引脚当作同一个引脚进行后续处理,之前已经存在的节点所属关系通过映射到新的引脚继续利用;
106:重复步骤103、104、105,直至所有引脚相连。
其中,连接产生的cost可以将线长之外的其余因素考虑在内,如到其余引脚的距离、拥塞、时延、功耗等等。并且,cost不是边的属性,而是节点的属性。cost考虑到其余引脚的距离L,距离越大cost越小,且对cost影响越小,应根据实际情况进行调整,与拥塞等因素的影响在同一量级。
步骤105中,从每一节点同时向外进行广度优先搜索时,采用单线程或者多线程的方案,具体如下:
单线程运算时,仅使用一个优先队列,将所有节点与cost信息存入其中;
多线程运算时,若可用线程数大于或等于引脚的数量,则对每个引脚分配一个线程,否则尽可能均匀分配引脚至各线程,对每个引脚使用一个优先队列存储其节点与cost信息,在搜索时,各线程以此搜索对应的各引脚,此外,在步骤S3连接多引脚时,将多引脚合并为单引脚处理,合并对应优先队列,并将其标记为正在合并,直至对其搜索至当前cost大于或等于之前各引脚对应优先队列首中最大者,取消标记;若有正在合并的引脚搜索到其余引脚则继续将其合并,而非正在合并的引脚搜索到其余引脚则将其标记为等待中,并暂停其搜索;若之前线程数小于引脚的数量,重新分配各线程对应引脚,若存在合并中的引脚,需使其独占一个线程使合并尽快完成,其余尽量平均分配,合并完成后需重新平均分配,并使之前暂停的引脚继续开始搜索;上述操作中对节点的操作需注意保证线程安全。
下面结合具体实施例对本发明做进一步说明。
图2为实施例的引脚初始分布示意图,可以看出,线网有5个引脚需要进行连接,由于该算法可以使用多线程,各引脚搜索距离可能不一致,并不会影响布线,本实施例中按照所有引脚搜索范围每次距离加一进行讲解,且由于到其余各引脚距离导致的cost数量级远小于线长导致的,所以在讲解中除考虑搜索顺序之外均将其忽略,从而简化步骤便于阅读。描述中所选坐标均以左下角为原点(0,0),水平为x轴,竖直为y轴,通过(x,y)描述各节点。
图3为每个引脚向外搜索一圈后的结果,小的图形表示标记了节点所属的引脚,细实线标记了引脚搜索的路径。
图4为每个引脚继续向外搜索一圈的结果,浅色的线为此次扩展的线,浅色的节点为即将搜索的节点,可以看到,三角形与五边形的引脚搜索路径扩展到了同一个节点(6,6),该节点此时同时属于两个引脚,由于对于两个引脚而言,此节点均为离其他引脚最近的节点,将被优先搜索,所以即将在此处进行连接。
图5为将三角形与五边形的引脚连通的结果,可以看到五边形被标记到三角形,且路径上的点均被标记为源,优先于之前的边界进行搜索。
图6为每个引脚向外搜索一圈的结果,可以看到三角形的引脚与正方形的引脚均扩展到(5,6)。
图7为每个引脚向外搜索一圈的结果,由于正方形的引脚在(5,6)上与其他引脚距离最近,最优先进行搜索,而三角形的引脚标记为正在合并,此时正方形的引脚搜索到了有三角形引脚所属的节点,于是被标记为暂停中,此轮未向外继续搜索。三角形的引脚在搜索到(5,6)时,由于与之前存储的cost为1不符,应标记为连接后总cost除以连接引脚数量即(1+3)/2=2重新按照cost为2进行排序,此轮中未将其连接,而是进行了其余的扩展,并且该引脚下次仍要被搜索。(4,5)和(4,7)处节点虽本应对三角形引脚距离为2,但是由于本身属于正方形引脚,cost重新计算为(2+3)/2=2.5,所以标记为深色不作为下一批搜索节点。
图8为三角形引脚再次搜索到(5,6)时,与正方形引脚连接的结果。
图9为每个引脚向外搜索一圈的结果,圆形与六边形均因搜索到属于三角形引脚的节点而被标记为暂停中。同时,可以看到三角形引脚连接的部分节点更新了路径,如(4,5)等等。
图10为每个引脚向外搜索一圈的结果,三角形引脚再次遍历到(6,2)、(7,3)、(8,4),并重新以cost为3将其重新插入优先队列,此时(6,2)与其余引脚最近,将优先遍历。
图11为三角形引脚搜索到(6,2)时与六边形引脚连接的结果。
图12为每个引脚向外搜索一圈的结果,(6,0)等节点路径发生变化。
图13为每个引脚继续向外搜索一圈的结果,三角形节点扩展到属于圆形引脚的(4,1)节点,以cost为3加入优先队列。
图14为每个引脚向外搜索一圈的结果.
图15为三角形的引脚与圆形的引脚连接的结果,布线完成。可以看到没有连接之前在图6中圆形与三角形接触的路径,最终选择的路径比之前接触的路径cost更小。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (6)

1.一种基于多引脚同时扩散搜索的超大规模集成电路布线方法,其特征在于:包括以下步骤:
步骤S1,根据给定的带权图,以每个引脚所在的节点为源点,令其cost为0并加入对应的优先队列,同时向外进行广度优先搜索;
步骤S2,从优先队列首取出节点开始搜索,将其cost与其相邻的节点的cost的和作为该相邻节点累计的cost,并与该相邻节点一起加入优先队列,将路径与其所属引脚存储于该相邻节点;
步骤S3,当其相邻的节点已经属于其所属引脚时,若其计算出cost比之前的值小,则加入优先队列并更新节点中存储路径,否则抛弃该cost值;
步骤S4,当其相邻的节点已经属于其余引脚时,若当前路径累计cost小于或等于其它引脚对应路径的累计cost时,将连接到此节点的各连通后的总cost除以连通的引脚的数量作为到达该点cost,与该节点一起存入优先队列,否则抛弃该cost值;
步骤S5,当从优先队列首取出节点属于多个引脚时,将对应路径相连,即完成对应引脚连接;同时,以路径上所有节点为源点,令其cost为0并加入优先队列向外进行广度优先搜索,将连接成功的引脚当作同一个引脚进行后续处理;
步骤S6:重复步骤S3、S4、S5,直至所有引脚相连。
2.根据权利要求1所述的基于多引脚同时扩散搜索的超大规模集成电路布线方法,其特征在于:所述的cost是连接产生的,能够将线长之外的其余因素考虑在内,并且,cost不是边的属性,而是节点的属性。
3.根据权利要求2所述的基于多引脚同时扩散搜索的超大规模集成电路布线方法,其特征在于:所述的cost考虑到其余引脚的距离L,距离越大cost越小,且对cost影响越小,需将其调整为与拥塞的影响在同一量级。
4.根据权利要求1所述的基于多引脚同时扩散搜索的超大规模集成电路布线方法,其特征在于:所述步骤S1中,进行广度优先搜索时,将相邻节点及其对应的cost加入优先队列,按照cost升序排序,优先搜索cost小的节点。
5.根据权利要求1所述的基于多引脚同时扩散搜索的超大规模集成电路布线方法,其特征在于:所述步骤S5中,之前已经存在的节点所属关系通过映射到新的引脚继续利用。
6.根据权利要求1所述的基于多引脚同时扩散搜索的超大规模集成电路布线方法,其特征在于:所述步骤S5中,从每一节点同时向外进行广度优先搜索时,采用单线程或者多线程的方案,具体如下:
单线程运算时,仅使用一个优先队列,将所有节点与cost信息存入其中;
多线程运算时,若可用线程数大于或等于引脚的数量,则对每个引脚分配一个线程,否则尽可能均匀分配引脚至各线程,对每个引脚使用一个优先队列存储其节点与cost信息,在搜索时,各线程以此搜索对应的各引脚,此外,在步骤S3连接多引脚时,将多引脚合并为单引脚处理,合并对应优先队列,并将其标记为正在合并,直至对其搜索至当前cost大于或等于之前各引脚对应优先队列首中最大者,取消标记;若有正在合并的引脚搜索到其余引脚则继续将其合并,而非正在合并的引脚搜索到其余引脚则将其标记为等待中,并暂停其搜索;若之前线程数小于引脚的数量,重新分配各线程对应引脚,若存在合并中的引脚,需使其独占一个线程使合并尽快完成,其余尽量平均分配,合并完成后需重新平均分配,并使之前暂停的引脚继续开始搜索;上述操作中对节点的操作需注意保证线程安全。
CN202111149762.4A 2021-09-29 2021-09-29 基于多引脚同时扩散搜索的超大规模集成电路布线方法 Active CN113822008B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111149762.4A CN113822008B (zh) 2021-09-29 2021-09-29 基于多引脚同时扩散搜索的超大规模集成电路布线方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111149762.4A CN113822008B (zh) 2021-09-29 2021-09-29 基于多引脚同时扩散搜索的超大规模集成电路布线方法

Publications (2)

Publication Number Publication Date
CN113822008A CN113822008A (zh) 2021-12-21
CN113822008B true CN113822008B (zh) 2022-11-04

Family

ID=78915885

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111149762.4A Active CN113822008B (zh) 2021-09-29 2021-09-29 基于多引脚同时扩散搜索的超大规模集成电路布线方法

Country Status (1)

Country Link
CN (1) CN113822008B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114997088B (zh) * 2022-06-29 2022-11-04 西安电子科技大学 一种布线和tdm比率快速优化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01263875A (ja) * 1988-04-15 1989-10-20 Nec Corp 配線経路探索方式及び装置
WO2016188151A1 (zh) * 2015-05-26 2016-12-01 深圳大学 应用于实时合乘的最优多会合点路径搜索方法及装置
WO2017113569A1 (zh) * 2015-12-30 2017-07-06 深圳大学 一种基于a星策略的最优多会合点路径搜索方法及装置
WO2021164268A1 (zh) * 2020-02-17 2021-08-26 福州大学 考虑总线和非总线线网的层分配方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01263875A (ja) * 1988-04-15 1989-10-20 Nec Corp 配線経路探索方式及び装置
WO2016188151A1 (zh) * 2015-05-26 2016-12-01 深圳大学 应用于实时合乘的最优多会合点路径搜索方法及装置
WO2017113569A1 (zh) * 2015-12-30 2017-07-06 深圳大学 一种基于a星策略的最优多会合点路径搜索方法及装置
WO2021164268A1 (zh) * 2020-02-17 2021-08-26 福州大学 考虑总线和非总线线网的层分配方法

Also Published As

Publication number Publication date
CN113822008A (zh) 2021-12-21

Similar Documents

Publication Publication Date Title
CN110795908B (zh) 偏差驱动的总线感知总体布线方法
CN111291525B (zh) 考虑总线和非总线线网的层分配方法
WO2022183921A1 (zh) 一种类脑计算机操作系统的神经模型映射方法
CN111709205B (zh) Fpga布线方法
CN113822008B (zh) 基于多引脚同时扩散搜索的超大规模集成电路布线方法
WO2024051388A1 (zh) 一种基于禁忌搜索算法的神经网络片上映射方法和装置
CN111914500A (zh) 一种快速单磁通量子rsfq电路布局方法和装置
CN110738019B (zh) 一种利用负载单元自动结群修复时序违反的方法及装置
CN117271101A (zh) 一种算子融合方法、装置、电子设备及存储介质
CN115563927A (zh) 一种gpu加速构建最小直角斯坦纳树的芯片布线方法
CN113627120B (zh) 超导集成电路布局优化方法和装置、存储介质和终端
EP3910522A1 (en) Methods and computer readable media for synthesis of a network-on-chip for deadlock-free transformation
CN105069216A (zh) 一种fpga布线方法及装置
JPWO2005098612A1 (ja) 重要成分優先計算方式ならびに装置
CN110032815A (zh) 基于文化基因的八角形斯坦纳树构建方法
CN114997098A (zh) 一种基于快速迷宫路由的电路全局布线方法
CN114297959A (zh) 通过裂分线网以提高布线效率的fpga布线方法
CN117807950B (zh) 一种考虑模块对称性的布图规划方法、系统及电子设备
CN111062180A (zh) 一种fpga布线方法及装置
US11544438B2 (en) Superconductive circuit splitter placement
US8037438B2 (en) Techniques for parallel buffer insertion
CN117057304A (zh) 对超导快速单磁通量子电路进行布线的方法和相关产品
Wu et al. A local congestion elimination technique driven by overflow
Kothari Parallelizing Pattern Routing Algorithms for Chip Design
CN115270692A (zh) 基于布线区域生成的总线布线方法

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