CN117933179A - 一种最短飞线路径的获取方法、电子设备及存储介质 - Google Patents
一种最短飞线路径的获取方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117933179A CN117933179A CN202410110110.7A CN202410110110A CN117933179A CN 117933179 A CN117933179 A CN 117933179A CN 202410110110 A CN202410110110 A CN 202410110110A CN 117933179 A CN117933179 A CN 117933179A
- Authority
- CN
- China
- Prior art keywords
- flying
- line
- pins
- shortest
- flying line
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012545 processing Methods 0.000 claims abstract description 14
- 238000012163 sequencing technique Methods 0.000 claims abstract description 10
- 238000013507 mapping Methods 0.000 claims description 37
- 238000004364 calculation method Methods 0.000 description 13
- 238000013461 design Methods 0.000 description 10
- 239000013256 coordination polymer Substances 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及EDA技术领域,特别是涉及一种最短飞线路径的获取方法、电子设备及存储介质,其通过获取依次连接所有节点的N1条飞线;将所有飞线按照长度排序,得到飞线有序集合;获取连接所有节点的最短飞线路径的目标飞线数量M;按照飞线有序集合中飞线的顺序依次遍历飞线并处理,得到最短飞线路径;其中,遍历第i个飞线时的处理步骤包括:为第i个飞线两端连接的目标节点标记分支索引;如飞线两端分支索引不同或未标记分支索引,则选中飞线,更新选中飞线数量H,如飞线两端分支索引相同,则舍弃该飞线,当选中飞线数量H等于M时停止遍历,进而得到的飞线路径为最短的飞线路径。
Description
技术领域
本发明涉及EDA技术领域,特别是涉及一种最短飞线路径的获取方法、电子设备及存储介质。
背景技术
在芯片设计时,有时需要通过飞线可视化查看成熟元器件中具有相同网络名的引脚的位置分布,便于调整其他元器件的布局,例如其他元器件的摆放位置、是否需要翻转或旋转等操作调整布局;有时也需要通过飞线可视化查看或验证处于设计阶段的元器件中具有相同网络的引脚的位置分布,对于一些不合理的引脚位置,能够快速观察到,便于调整元器件内部的引脚位置分布等。
目前现有技术中通过贪婪算法生成,也即查找离当前节点最近的另一个节点Pk,然后再以Pk为当前节点再次查找离当前节点最近的另一个节点,依次类推,生成最短路径。贪婪算法能够保证相邻两个节点之间的飞线最短,但是无法保证最终得到的飞线路径是最短的,因此,亟需一种能够生成最短飞线路径的方法。
发明内容
针对上述技术问题,本发明采用的技术方案为:一种最短飞线路径的获取方法,所述方法包括如下步骤:
T100,获取依次连接所有节点的N1条飞线。
T200,将所有飞线按照长度排序,得到飞线有序集合。
T300,获取连接所有节点的最短飞线路径的目标飞线数量M,其中M满足:M=n-1,其中n为节点的数量。
T400,按照飞线有序集合中飞线的顺序依次遍历飞线并处理得到选中的所有飞线,选中的所有飞线组成最短飞线路径;其中,遍历第i个飞线时的处理步骤包括:
T410,为第i个飞线两端连接的目标节点标记分支索引,并根据分支索引确定是否选中飞线。
T420,更新选中的飞线数量H,当选中的飞线数量H等于M时停止遍历。
此外,本发明还提供了一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现上述方法。
此外,本发明还提供了一种电子设备,包括处理器和上述非瞬时性计算机可读存储介质。
本发明至少具有以下有益效果:
本发明提供了一种最短飞线路径的获取方法、电子设备及存储介质,其在遍历的过程中是由飞线有序集合中最短飞线依次增大遍历,而且在选中的飞线数量H等于目标飞线数量时停止遍历,因此其最终得到的飞线路径一定是最短的飞线路径。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种不同元器件之间的飞线互连方法流程图;
图2为本发明实施例二提供的一种最短飞线路径的获取方法流程图;
图3为本发明实施例三提供的一种获取最短飞线路径的优化方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在现有的EDA工具进行协同设计时,多个设计布局时无法同时兼顾飞线的设计,导致飞线没有合理的布局,因此亟需一种兼顾飞线布局设计的方法。为了解决该技术问题,本发明提供了实施例一。
实施例一
请参阅图1,其示出了一种不同元器件之间的飞线互连方法流程图,所述方法包括如下步骤:
S200,获取待连接的第一元器件D1和第二元器件D2,D1具有N个引脚,D2具有M个引脚,D1和D2中分别包括多个具有相同网络名的引脚。需要说明的是,同一个元器件中具有相同网络名的多不同引脚在物理上是相互连通的。
其中,D1和D2分别为不同设计的元器件。
S400,指定K对第一元器件的网络名与第二元器件的网络名之间的映射关系{PP1,PP2,…,PPk,…,PPK},PPk为第k对网络名的映射关系,k的取值范围为1到K;PPk的映射关系为D1的第i个网络名netD1,i与D2的第j个网络名netD2,j连接,其中i和j均大于等于1。
其中,指定的是映射关系是网络名和网络名之间的映射关系。指定了映射关系的两个网络名之间需要创建飞线连通。在指定映射关系时可以指定K对映射关系,由用户指定。
S600,计算每对网络名的映射关系中引脚之间的最短距离,以最短距离的两个引脚为端点创建飞线。通过该步骤能够将指定映射关系的所有网络名都创建飞线。通过创建飞线让用户直观地看到各器件之间的飞线布局,使用户通过移动、翻转等操作调整器件进而实时更新飞线布局,能够使用户直观比较进而选择更加合理的布局。
进一步,PPk中引脚之间的最短距离的计算步骤包括:
S620,查找D1中与netD1,i相同的所有引脚,得到引脚集合S1。
S640,查找D2中与netD2,j相同的所有引脚,得到引脚集合S2。
S660,计算S1中所有引脚到S2中所有引脚的最短距离,得到第k对映射关系中引脚之间的最短距离。
具体的,当S1中的所有引脚为{PS1,1,PS1,2,…,PS1,q…,PS1,Q},PS1,q为S1中的第q个引脚,Q为S1中引脚的总数量,q的取值范围为1到Q;当S2中的所有引脚为{PS2,1,PS2,2,…,PS2,e,…,PS2,E},PS2,e为S2中的第e个引脚,E为S2中引脚的总数量,e的取值范围为1到E;则S1中所有引脚到S2中所有引脚的最短距离Dmin的计算步骤采用穷举法,包括:分别计算PS1,1与S2中的所有引脚之间的距离得到距离序列DS1,1;计算PS1,2与S2中的所有引脚之间的距离得到距离序列DS1,2,以此类推,分别计算S1中每个引脚与S2中的所有引脚之间的距离,得到S1中每个引脚对应的距离序列;将S1中所有引脚的距离序列排序得到最短距离。现有技术中其他用于计算最短距离的算法均落入本发明的保护范围之内。
作为一个优选实施例,对计算最短距离的算法做进一步的优化。S1中所有引脚到S2中所有引脚的最短距离的计算步骤包括:
S662,获取参考差值坐标和参考距离DD,参考差值坐标包括横坐标参考差值dx和纵坐标参考差值dy。可选的,参考差值坐标和参考距离DD的初始值可以是用户指定的。
作为一个优选实施例,S662还包括获取参考差值坐标和参考距离DD的初始值的步骤:
S6622,通过穷举法获取第一个引脚对CP1,1。
需要说明的是,穷举法是将S1中的所有引脚与S2中的所有引脚进行两两组合得到不同的引脚对。其中,S1和S2分别为两个数组,根据数组的索引编号进行两层遍历,第一层遍历为遍历S1中的每个引脚,第二层遍历为遍历S2中的每个引脚,当遍历S1中的任意一个引脚时嵌套第二层遍历。因此,遍历的第一个引脚对为第一层遍历的第一个引脚和第二层遍历的第一个引脚。
S6624,获取CP1,1的差值坐标,所述差值坐标包括引脚对的横坐标的差值dx1,1和纵坐标的差值dy1,1。作为一个示例,当引脚对的坐标为(x11,y11)和(x21,y21)时,则dx=x11-x21,dy=y11-y21。
S6626,根据CP1,1的差值坐标计算引脚对之间的距离平方值得到候选距离DD1,1。其中DD1,1满足:DD1,1=dx1,1 2+dy1,1 2。
S6628,将CP1,1的差值坐标指定为参考差值坐标的初始值,将DD1,1指定为参考距离DD的初始值。
将遍历的第一个引脚对的差值坐标作为参考差值坐标的初始值,候选距离作为参考距离DD的初始值之后,遍历下一个引脚对时,将下一个引脚对的数据与参考值进行比较,实时更新参考值能够降低计算复杂度,提高计算效率。
S664,通过穷举法依次处理每个引脚对,得到最短距离;其中,当获取到S1中第w个引脚和S2中第v个引脚组成的引脚对CPw,v时,处理步骤包括:
S6642,获取CPw,v的差值坐标,所述差值坐标包括引脚对的横坐标的差值dxw,v和纵坐标的差值dyw,v。
S6644,当dxw,v大于dx且dyw,v大于dy时,结束计算,通过穷举法获取下一个引脚对;当dxw,v小于dx且dyw,v小于dy时,根据CPw,v的差值坐标计算引脚对之间的距离平方值得到候选距离DDw,v,当DDw,v小于DD时,将DD更新为DDw,v且将参考差值坐标更新为CPw,v的差值坐标。
当dxw,v大于dx且dyw,v大于dy时,结束计算,能够筛选掉一大部分引脚对,不需要进一步计算候选距离即可筛掉,节省了大量的硬件计算资源。进一步,通过实时更新参考差值坐标和参考距离DD能够在穷举法穷举完成的同时获取到最短距离,进一步的提高了计算效率。
该计算步骤能够避免传统的通过开根号计算两个引脚之间的距离,提高计算效率;同时由于通过参考值屏蔽掉大部分的引脚对能够进一步的提高计算效率。
作为一个优选实施例,本发明还包括S300,获取引脚和网络名的映射表,包括:
S320,获取D1中引脚和网络名的映射表PND1={PND1,1,PND1,2,…,PND1,f,…,PND1,F},PND1,f为D1中第f个网络名netD1,f与D1中所有具有netD1,f的引脚之间的映射关系,其中f的取值范围为1到F。
则S620,根据PND1查找D1中与netD1,i相同的所有引脚,得到引脚集合S1。需要说明的是,以网络名为索引查找PND1得到与当前网络名的映射关系,映射关系中的所有引脚即为S1。
S340,获取D2中引脚和网络名的映射表PND2={PND2,1,PND2,2,…,PND2,h,…,PND2,H},PND2,h为D2中第h个网络名netD2,h与D2中所有具有netD2,h的引脚之间的映射关系,其中h的取值范围为1到H。
则S640,根据PND2查找D2中与netD2,j相同的所有引脚,得到引脚集合S2。
可选的,S300的步骤可以是在S200之前获取,也可以与S200之后且S600之前获取,还可以是与S200同步获取。
由于在元器件中引脚的网络名在设计时已经指定好,在使用时,元器件中每个引脚的网络名是确定的,因此在计算最短距离之前获取引脚和网络名的映射表,每次执行完移动、翻转等操作之后在查找时以网络名为索引查找映射表即可得到相应的引脚,而不需要每次都重新查找每个网络名对应的所有引脚,节约了硬件计算资源。
作为一个优选实施例,本发明还包括S500,在S400之后且在S600之前执行S300,择一使用S500或S300,也即在本发明提供的方法步骤中S300和S500不同时出现。S500,获取引脚和网络名的映射表,包括:
S520,获取D1中引脚和网络名的映射表PPND1={PPND1,1,PPND1,2,…,PPND1,r,…,PPND1,R},PPND1,r指定的D1中的第r个网络名netD1,r与D1中所有具有netD1,r的引脚之间的映射关系,其中r的取值范围为1到R。
则S620,根据PPND1查找D1中与netD1,i相同的所有引脚,得到引脚集合S1。需要说明的是,以网络名为索引查找PND1得到与当前网络名的映射关系,映射关系中的所有引脚即为S1。
S540,获取D2中引脚和网络名的映射表PPND2={PPND2,1,PPND2,2,…,PPND2,t,…,PPND2,T},PPND2,r指定的D2中的第t个网络名netD2,t与D2中所有具有netD2,t的引脚之间的映射关系,其中t的取值范围为1到T。
则S640,根据PPND2查找D2中与netD2,j相同的所有引脚,得到引脚集合S2。
需要说明的是,在S500中获取的引脚和网络名的映射表中网络名均为S400中指定的网络名,不建立未指定网络名的映射关系。该步骤能够进一步节约硬件计算资源和缓存空间。
作为一个优选实施例,S500,当D1或D2的位置发生移动时,根据移动后的引脚坐标执行S600。
本发明实施例提供了一种不同元器件之间的飞线互连方法,该方法通过获取第一元器件D1和第二元器件D2,并指定网络名的映射关系,其中D1和D2分别具有多个引脚;获取每个映射关系中两个网络名分别对应的所有引脚的引脚集合S1和S2,计算S1和S2的最短距离,为最短距离对应的两个引脚创建飞线,该方法能够实时可视化飞线布局,在设计时能够同时创建飞线,兼顾飞线布局,解决了现有技术中多个设计无法兼顾飞线布局设计的问题。并且在每次执行完移动、翻转等操作之后也能够实时查看飞线布局,能够使用户直观比较进而选择更加合理的布局。
本发明的实施例还提供了一种非瞬时性计算机可读存储介质,该存储介质可设置于电子设备之中以保存用于实现方法实施例中一种方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述实施例提供的方法。
本发明的实施例还提供了一种电子设备,包括处理器和前述的非瞬时性计算机可读存储介质。
本发明的实施例还提供一种计算机程序产品,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使该电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤。
实施例一实现了如何创建两个模块之间的最短飞线。得到了最短飞线之后,如何获取所有模块之间的最短飞线路径成为亟待解决的技术问题,目前现有技术中通过贪婪算法生成,也即查找离当前节点最近的另一个节点Pk,然后再以Pk为当前节点再次查找离当前节点最近的另一个节点,依次类推,生成最短路径。贪婪算法能够保证相邻两个节点之间的飞线最短,但是无法保证最终得到的飞线路径是最短的,因此,亟需一种能够生成最短飞线路径的方法。为了解决最终生成的飞线路径最短的问题,本发明提供了实施例二。
本发明的实施例一还提供了一种非瞬时性计算机可读存储介质,该存储介质可设置于电子设备之中以保存用于实现方法实施例中一种方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述实施例提供的方法。
本发明的实施例一还提供了一种电子设备,包括处理器和前述的非瞬时性计算机可读存储介质。
本发明的实施例一还提供一种计算机程序产品,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使该电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤。
实施例二
请参阅图1,其示出了一种最短飞线路径的获取方法流程图,所述方法包括如下步骤:
T100,获取依次连接所有节点的N1条飞线。
其中,N1条飞线连接的所有节点分别为不同的元器件,或者分别为同一个元器件内部具有相同网络名的不同引脚。
其中,当N1条飞线连接的多个节点分别为不同的元器件时,且每条飞线为两个元器件的最短距离飞线。需要说明的是,在每个元器件中包括多个引脚,每个引脚配置一个网络名。在每个元器件中包括L个具有相同网络名的引脚,其中L大于等于0。不同元器件之间相同网络名的引脚在物理上实现互连。因此不同元器件的网络名之间配置映射关系之后,不同元器件通过引脚创建飞线互连,飞线互连方案有很多,其中能够获取到一条飞线使得飞线连接的两个引脚之间的距离最短。
作为一个优选实施例,当N1条飞线连接的多个节点分别为不同的元器件时,通过实施例一所提供的方案生成元器件之间的飞线。通过实施例一创建的最短距离飞线使得任意两个元器件之间的飞线最短,在这个基础上再获取最短飞线路径,则最终获取的最终飞线路径为实际的最短飞线路径。
作为一个优选实施例,从所有节点中任意取两个点生成N1条飞线,因此节点和飞线的数量关系满足:N1=n(n-1)/2,其中n为节点的数量。
T200,将所有飞线按照长度排序,得到飞线有序集合。可选的,按照长度由小到大的顺序排列,在T400中遍历时也是按照由小到达的顺序遍历飞线。
T300,获取连接所有节点的最短飞线路径的目标飞线数量M,其中M满足:M=n-1,其中n为节点的数量。其中,目标飞线数量为最短飞线路径中所包含的飞线数量,用于约束按照飞线长度依次遍历时选中的飞线数量,避免遍历多余飞线,浪费计算资源。
T400,按照飞线有序集合中飞线的顺序依次遍历飞线并处理得到选中的所有飞线,选中的所有飞线组成最短飞线路径;其中,遍历第i个飞线时的处理步骤包括:
T410,为第i个飞线两端连接的目标节点标记分支索引,并根据分支索引确定是否选中飞线。
进一步,T410还包括:当第i个飞线两端连接的两个目标节点均未被标记分支索引时,则选中第i个飞线,并将两个目标节点标记为同一个新的分支索引。当两个目标节点已被标记为两个不同路径分支的分支索引时,则选中第i个飞线,并将两个路径分支的所有分支索引统一为同一个分支索引。当其中一个目标节点未被标记分支索引时,则选中第i个飞线,并将未被标记分支索引的目标节点标记为另一个目标节点的分支索引。当两个目标节点的分支索引相同时,则不选中第i个飞线。
需要说明的是,在遍历之前,所有节点的分支索引为默认值,当节点的分支索引为默认值时,说明节点在遍历的过程中未被标记分支索引。
可选的,将两个目标节点标记为同一个新的分支索引时,该新的分支索引不同于已被使用的分支索引标记。
可选的,将两个路径分支的所有分支索引统一为同一个分支索引时,统一的同一个分支索引可以为两个路径分支中的任意一个分支索引,也可以是新的分支索引,其中新的分支索引不同于已被使用的分支索引标记。例如,存在两个路径分支,一个路径分支连通J个节点,每个节点的分支索引为val1;另一个路径分支连通G个节点,每个节点的分支索引为val2;此时,将所有的val1和val2统一为val1,或者统一为val2,或者统一为其他的未被使用过的新的分支索引。
通过标记分支索引的方式能够使每次遍历的飞线都是剩余未被标记的飞线中的最短飞线,将所有最短飞线路径遍历连通之后能够使得最终标记得到的路径为最短飞线路径。
T420,更新选中的飞线数量H,当选中的飞线数量H等于M时停止遍历。
通过标记分支索引标记能够按顺序依次遍历剩余飞线中长度最短的飞线,当选中的飞线数量等于最短飞线路径的目标飞线数量M,则得到由长度最短的飞线组成的最短飞线路径。
本发明提供的一种最短飞线路径的获取方法,其通过将节点之间的飞线进行排序得到飞线有序集合,按照飞线有序集合中飞线的顺序依次遍历,遍历每个飞线时为每个飞线两端连接的目标节点标记分支索引,当选中的节点数量H等于M时停止遍历,得到最短飞线路径。由于在遍历的过程中是由最短飞线依次增大遍历,而且当选中的飞线数量等于目标飞线数量时停止遍历,因此其最终得到的飞线路径一定是最短的飞线路径,而且是最高效的遍历方式,不遍历多余的飞线。
实施例二提供了如何获取连接多个节点的最短飞线路径,但是在实际应用中存在较多的飞线,例如对于4万个引脚,采用实施例一提供的方法能够得到40000*39999条飞线,约为8亿条飞线,对8亿条飞线进行遍历获取最短路径的时间为104s,其获取飞线的时间较长。为了提高获取飞线的计算效率,减少硬件计算资源,本发明提供了实施例三。
本发明的实施例二还提供了一种非瞬时性计算机可读存储介质,该存储介质可设置于电子设备之中以保存用于实现方法实施例中一种方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述实施例提供的方法。
本发明的实施例二还提供了一种电子设备,包括处理器和前述的非瞬时性计算机可读存储介质。
本发明的实施例二还提供一种计算机程序产品,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使该电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤。
实施例三
请参阅图2,其示出了一种获取最短飞线路径的优化方法流程图,所述方法包括:
P200,根据连接任意两个节点的飞线数量申请内存空间,内存空间SM满足:SM=n(n-1)/2,其中n为节点的数量。
需要说明的是,从n个节点中选择任意两个节点,通过飞线连接选择的两个节点,共计需要连接的飞线数量为n(n-1)/2个。利用内存保存这n(n-1)/2个飞线,则需要n(n-1)/2个内存空间。因此分配的内存空间的大小与飞线数量相等。
其中,节点为引脚或元器件,节点与实施例一中的节点含义相同,不再赘述。
P400,根据节点和SM获取目标有序飞线组,包括:
P420,获取中间参考值ref。其中,中间参考值用于将所有设计模块的飞线划分为大于参考值的飞线组和小于参考值的飞线组。
可选的,中间参考值ref满足:ref=D/2,D=[(xmax-xmin)2+(ymax-ymin)2]1/2,其中xmin为所有节点的最小横坐标,xmax为所有节点的最大横坐标,ymin为所有节点的最小纵坐标,ymax为所有节点的最大纵坐标。
作为一个优选实施例,为了提高计算效率,中间参考值ref满足:ref=D2/4,D2=(xmax-xmin)2+(ymax-ymin)2。
P440,遍历所有节点计算任意两个节点之间的飞线长度,当飞线长度小于ref时,将飞线长度按照内存空间的正序依次保存,得到目标飞线组;当飞线长度大于ref时,按照内存空间的反序依次保存,得到候选飞线组。
其中,正序为从内存空间最小地址依次增大的顺序。也即每遍历一个小于ref的飞线长度时,则将飞线依次按照内存空间增大的顺序放入内存。反序为从内存空间最大地址依次减小的顺序。由于飞线数量等于内存空间的大小,因此,最终正序增大的地址和反序减小的地址会逐渐靠近,最终汇合,使得内存空间中的每个地址中都会保存飞线数据。最终达到通过ref将内存空间中保存的数据划分为两个不同组的效果。
P460,目标飞线组按照飞线长度进行排序,得到目标有序飞线组。需要说明的是,若目标有序飞线组中元素的数量为KK,则排序耗费的时间为KK的平方,其中KK小于SM,相较于不分组,直接将所有飞线长度进行排序需要消耗的时间SM的平方来说,提高了排序效率,减少硬件计算资源的消耗。
P600,按照目标有序飞线组中元素的顺序依次遍历飞线长度并处理,得到最短飞线路径。
作为一个优选实施例,P400还包括:
P470,当目标飞线组中的元素数量小于预设数量阈值时,不更新目标飞线组;当目标飞线组中的元素数量大于等于预设数量阈值时,更新目标飞线组。其中,预设数量阈值用于限制目标飞线组中元素的数量,元素数量过大,例如上亿个元素,排序的计算量较大,排序效率很低,因此通过预设数量阈值能够提高计算效率。
进一步,更新步骤包括:
P472,根据目标飞线组中飞线的最大长度和最小长度的均值得到新的参考值。可选的,新的参考值ref1满足:ref1=(min+max)/2,其中min为标飞线组中飞线的最小长度,max为标飞线组中飞线的最大长度。现有技术中,其他用于获取目标飞线组中飞线的中间值、均值、中位数或其他数值作为参考值的方式也落入本发明的保护范围之内。
P474,将目标飞线组中每个飞线的长度按照正序依次与新的参考值进行比较,当目标飞线组中第j个飞线长度大于新的参考值时,按照反序依次与新的参考值进行比较,当第k个飞线长度小于新的参考值时,交换第j个飞线和第k个飞线在内存空间中的保存位置,最终得到新的目标飞线组和新的候选飞线组。需要说明的是,该步骤将目标飞线组中的飞线重新根据新的参考值移位为两个组,使得所有小于新的参考值位于新的目标飞线组内,保存在内存空间的前半部分。使得所有大于新的参考值位于新的候选飞线组内,保存在内存空间的后半部分。
P476,当新的目标飞线组中飞线的数量大于预设数量阈值时,再次执行P470。
作为一个优选实施例,P600,还包括:
P620,为第i个飞线两端连接的目标节点标记分支索引,并根据分支索引确定是否选中飞线。
P640,更新选中的飞线数量H,当选中的飞线数量H等于目标飞线数量M时停止遍历,其中M满足:M=n-1。
需要说明的是,P620-P640的步骤与实施例一中S410-S420的步骤相同,不再赘述。
作为一个优选实施例,P600还包括:
P660,当遍历的数量H小于M时,将候选飞线组中的飞线按照飞线长度进行排序,得到候选有序飞线组;将候选有序飞线组作为新的目标有序飞线组再次执行P620-P660。
作为一个示例,当所有飞线在内存空间中被保存为目标飞线组A1和候选飞线组B1时;若A1中的飞线数量大于预设数量阈值时,则将A1再次根据步骤P470保存为新的目标飞线组A11和候选飞线组B11;若A11中的飞线数量依然大于预设数量阈值时,则将A11再次根据步骤P470保存为新的目标飞线组A111和候选飞线组B111。在对A111进行排序后根据P600进行处理获取最短飞线路径时,若A111中的飞线数量小于H时,则对B111进行排序后根据P600进行遍历;若A111和B111中的总数量依然小于H时,则将候选飞线组B11作为处理对象,以此类推,直至P600遍历的飞线数量等于M时停止遍历。
通过本发明实施列二所提供的方法获取最短路径的效率远远大于通过本发明实施例一。例如,对于4万个引脚,采用实施例一提供的方法能够得到40000*39999条飞线,约为8亿条飞线,对8亿条飞线进行遍历获取最短路径的时间为104s。而采用本发明实施列二所提供的方法获取最短路径的时间时12s。
本发明实施例提供了一种获取最短飞线路径的优化方法,该方法通过将飞线保存到同样大小的内存空间中,并通过参考值将内存空间中保存的飞线划分为两组,并将小于参考值的目标飞线组中的飞线进行排序,排序后进行遍历得到目标有序飞线组,按照目标有序飞线组中元素的顺序依次遍历飞线长度并处理,得到最短飞线路径,提高了获取最短飞线路径的效率。
本发明的实施例三还提供了一种非瞬时性计算机可读存储介质,该存储介质可设置于电子设备之中以保存用于实现方法实施例中一种方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述实施例提供的方法。
本发明的实施例三还提供了一种电子设备,包括处理器和前述的非瞬时性计算机可读存储介质。
本发明的实施例三还提供一种计算机程序产品,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使该电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明开的范围由所附权利要求来限定。
Claims (10)
1.一种最短飞线路径的获取方法,其特征在于,所述方法包括如下步骤:
T100,获取依次连接所有节点的N1条飞线;
T200,将所有飞线按照长度排序,得到飞线有序集合;
T300,获取连接所有节点的最短飞线路径的目标飞线数量M,其中M满足:M=n-1,其中n为节点的数量;
T400,按照飞线有序集合中飞线的顺序依次遍历飞线并处理得到选中的所有飞线,选中的所有飞线组成最短飞线路径;其中,遍历第i个飞线时的处理步骤包括:
T410,为第i个飞线两端连接的目标节点标记分支索引,并根据分支索引确定是否选中飞线;
T420,更新选中的飞线数量H,当选中的飞线数量H等于M时停止遍历。
2.根据权利要求1所述的方法,其特征在于,T410还包括:
当第i个飞线两端连接的两个目标节点均未被标记分支索引时,则选中第i个飞线,并将两个目标节点标记为同一个新的分支索引;
当两个目标节点已被标记为两个不同路径分支的分支索引时,则选中第i个飞线,并将两个路径分支的所有分支索引统一为同一个分支索引;
当其中一个目标节点未被标记分支索引时,则选中第i个飞线,并将未被标记分支索引的目标节点标记为另一个目标节点的分支索引;
当两个目标节点的分支索引相同时,则不选中第i个飞线。
3.根据权利要求2所述的方法,其特征在于,T410中的同一个分支索引为两个路径分支中的任意一个分支索引;或者同一个分支索引为新的分支索引,其中新的分支索引不同于已被使用的分支索引标记。
4.根据权利要求1所述的方法,其特征在于,T100中,节点和飞线的数量关系满足:N1=n(n-1)/2。
5.根据权利要求1所述的方法,其特征在于,T100中节点为引脚。
6.根据权利要求1所述的方法,其特征在于,T100中节点为元器件。
7.根据权利要求6所述的方法,其特征在于,每条飞线为两个元器件之间的最短距离飞线。
8.根据权利要求7所述的方法,其特征在于,所述最短距离飞线的获取步骤包括:
S200,获取待连接的第一元器件D1和第二元器件D2,D1具有N个引脚,D2具有M个引脚,D1和D2中分别包括多个具有相同网络名的引脚;
S400,指定K对第一元器件的网络名与第二元器件的网络名之间的映射关系{PP1,PP2,…,PPk,…,PPK},PPk为第k对网络名的映射关系,k的取值范围为1到K;PPk的映射关系为D1的第i个网络名netD1,i与D2的第j个网络名netD2,j连接,其中i和j均大于等于1;
S600,计算每对网络名的映射关系中引脚之间的最短距离,以最短距离的两个引脚为端点创建飞线;其中PPk中引脚之间的最短距离的计算步骤包括:
S620,查找D1中与netD1,i相同的所有引脚,得到引脚集合S1;
S640,查找D2中与netD2,j相同的所有引脚,得到引脚集合S2;
S660,计算S1中所有引脚到S2中所有引脚的最短距离,得到第k对映射关系中引脚之间的最短距离。
9.一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,其特征在于,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-8中任意一项的所述方法。
10.一种电子设备,其特征在于,包括处理器和权利要求9中所述的非瞬时性计算机可读存储介质。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410110110.7A CN117933179B (zh) | 2024-01-26 | 2024-01-26 | 一种最短飞线路径的获取方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410110110.7A CN117933179B (zh) | 2024-01-26 | 2024-01-26 | 一种最短飞线路径的获取方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117933179A true CN117933179A (zh) | 2024-04-26 |
CN117933179B CN117933179B (zh) | 2024-09-20 |
Family
ID=90769993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410110110.7A Active CN117933179B (zh) | 2024-01-26 | 2024-01-26 | 一种最短飞线路径的获取方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117933179B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102054068A (zh) * | 2009-10-30 | 2011-05-11 | 新思科技(上海)有限公司 | 芯片设计中的线网分配方法与装置 |
CN104808660A (zh) * | 2015-03-04 | 2015-07-29 | 中南大学 | 凹凸混合复杂多边形农田无人机喷洒作业航迹规划方法 |
CN110325929A (zh) * | 2016-12-07 | 2019-10-11 | 阿瑞路资讯安全科技股份有限公司 | 用于检测有线网络变化的信号波形分析的系统和方法 |
CN115377802A (zh) * | 2022-08-18 | 2022-11-22 | 西安炬光科技股份有限公司 | 线光斑光源发射装置和设备 |
CN115688672A (zh) * | 2022-11-14 | 2023-02-03 | 深圳市奇普乐芯片技术有限公司 | 显示方法、装置、终端及存储介质 |
CN116070575A (zh) * | 2023-01-12 | 2023-05-05 | 广东工业大学 | 一种芯片布线优化方法及软件系统 |
-
2024
- 2024-01-26 CN CN202410110110.7A patent/CN117933179B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102054068A (zh) * | 2009-10-30 | 2011-05-11 | 新思科技(上海)有限公司 | 芯片设计中的线网分配方法与装置 |
CN104808660A (zh) * | 2015-03-04 | 2015-07-29 | 中南大学 | 凹凸混合复杂多边形农田无人机喷洒作业航迹规划方法 |
CN110325929A (zh) * | 2016-12-07 | 2019-10-11 | 阿瑞路资讯安全科技股份有限公司 | 用于检测有线网络变化的信号波形分析的系统和方法 |
CN115377802A (zh) * | 2022-08-18 | 2022-11-22 | 西安炬光科技股份有限公司 | 线光斑光源发射装置和设备 |
CN115688672A (zh) * | 2022-11-14 | 2023-02-03 | 深圳市奇普乐芯片技术有限公司 | 显示方法、装置、终端及存储介质 |
CN116070575A (zh) * | 2023-01-12 | 2023-05-05 | 广东工业大学 | 一种芯片布线优化方法及软件系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117933179B (zh) | 2024-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3192057B2 (ja) | 配線プログラム生成方法及びその装置 | |
CN104504003B (zh) | 图数据的搜索方法和装置 | |
JP2886481B2 (ja) | 物体の配置方法 | |
CN109416694A (zh) | 包括资源有效索引的键值存储系统 | |
CN115983189B (zh) | 一种自适应网格的模拟集成电路版图布线方法及系统 | |
US7143385B2 (en) | Wiring design method and system for electronic wiring boards | |
US7590963B2 (en) | Integrating multiple electronic design applications | |
CN117034857B (zh) | 多边形大面积重叠的集成电路版图网络标识方法及装置 | |
US8726222B1 (en) | Method and system for routing optimally between terminals through intermediate vias in a circuit design | |
CN106651077A (zh) | 设备存放位置的查找方法及装置 | |
CN117933179B (zh) | 一种最短飞线路径的获取方法、电子设备及存储介质 | |
CN117634414B (zh) | 不同元器件之间的飞线互连方法、电子设备及存储介质 | |
CN117933180A (zh) | 一种获取最短飞线路径的优化方法、电子设备及存储介质 | |
CN110334104A (zh) | 一种榜单更新方法、装置、电子设备及存储介质 | |
US20120254821A1 (en) | Implementation design support method and apparatus | |
CN116522844B (zh) | 电路划分方法、电路节点电压计算方法、终端及存储介质 | |
CN102117350A (zh) | 多线网之间物理短路位置的自动定位方法 | |
CN106980673A (zh) | 内存数据库表索引更新方法及系统 | |
CN104424204A (zh) | 索引机制合并方法、搜索方法、装置及设备 | |
CN106055690A (zh) | 一种基于属性匹配的快速检索与获取数据特征方法 | |
CN113822008B (zh) | 基于多引脚同时扩散搜索的超大规模集成电路布线方法 | |
CN114119882A (zh) | 飞行器动态流场分析中高效的嵌套网格宿主单元搜索方法 | |
CN118314245B (zh) | 基于优选策略的图斑面积调整方法及装置、电子设备 | |
US11544438B2 (en) | Superconductive circuit splitter placement | |
CN116432599B (zh) | 一种用于集成电路sink管脚优化的方法和系统 |
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 |