CN114662444A - 一种集成电路的馈通方法及相关设备 - Google Patents
一种集成电路的馈通方法及相关设备 Download PDFInfo
- Publication number
- CN114662444A CN114662444A CN202210278162.6A CN202210278162A CN114662444A CN 114662444 A CN114662444 A CN 114662444A CN 202210278162 A CN202210278162 A CN 202210278162A CN 114662444 A CN114662444 A CN 114662444A
- Authority
- CN
- China
- Prior art keywords
- area
- nodes
- traversable
- areas
- region
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请公开了一种集成电路的馈通方法及相关设备,可规划出更加优质的路径,使得集成电路的馈通规划效果较佳,进而保证整个集成电路的设计结果的质量。本申请的方法包括:获取集成电路中待连接的第一区域以及第二区域;获取第一区域与第二区域之间的多个可穿过区域;基于多个可穿过区域,构建第一区域与第二区域之间的多个候选路径,每个候选路径穿过至少一个可穿过区域;在多个候选路径确定目标路径,目标路径用于连接第一区域与第二区域。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种集成电路的馈通方法及相关设备。
背景技术
随着芯片的规模越来越大,可通过一定的设计方法将芯片分割成多个区域(也可以称为模块),由于芯片需实现各种各样的功能,故芯片中每个区域都会和其余区域产生连接关系。为了实现芯片中不同子模块之间成百上千的连接关系,芯片的馈通(feedthrough)规划是整个芯片设计流程中的重要一环。
目前的feedthrough方案中,当需要连接芯片中的第一区域和第二区域时,可先确定与第一区域相邻的多个区域,并在这些区域中选择最靠近第二区域的第三区域。接着,可确定与第三区域相邻的多个区域,并在这些区域中选择最靠近第二区域的第四区域,以此类推,可得到用于连接第一区域和第二区域的路径,该路径以第一区域为起点,依次经过第三区域、第四区域等中间区域,直至到达第二区域。
基于前述的方案,虽然规划得到的用于连接两个区域的路径是最短的路径,但是若馈通规划中仅考虑路径最短这一约束,考虑的约束过于片面,往往得到的路径并非优质路径,导致馈通规划的效果不佳,进而影响整个芯片设计结果。
发明内容
本申请实施例提供了一种集成电路的馈通方法及相关设备,可规划出更加优质的路径,使得集成电路的馈通规划效果较佳,进而保证整个集成电路的设计结果的质量。
本申请实施例的第一方面提供了一种集成电路的馈通方法,该方法包括:
当需要对某个集成电路进行馈通规划时,可先获取集成电路中待连接的第一区域以及第二区域。
确定第一区域和第二区域后,可获取第一区域与第二区域之间的多个可穿过区域,需要说明的是,在集成电路的多个区域中,每一个区域可被预先打上标签,该区域的标签用于指示该区域为可被穿过的区域或不可被穿过的区域,即可穿过区域或不可穿过区域。如此一来,可基于某个区域的标签来确定该区域是可穿过区域还是不可穿过区域,故可获取位于第一区域与第二区域之间的多个可穿过区域。
得到第一区域与第二区域之间的多个可穿过区域后,可以第一区域为起始区域,以第二区域为结束区域,以这多个可穿过区域为中间区域,构建第一区域与第二区域之间的多个候选路径。由此可见,对于多个候选路径中的任意一个候选路径,该候选路径穿过至少一个可穿过区域,且以第一区域为起始区域,以第二区域为结束区域。
得到多个候选路径后,可在多个候选路径中,选择其中一个候选路径作为目标路径,以在后续中沿着目标路径,在第一区域和第二区域之间实现二者的连接。
从上述方法可以看出:当需要对集成电路进行馈通规划时,可先获取集成电路中待连接的第一区域以及第二区域。接着,可获取第一区域与第二区域之间的多个可穿过区域。然后,基于多个可穿过区域,构建第一区域与第二区域之间的多个候选路径,每个候选路径穿过至少一个可穿过区域。最后,在多个候选路径确定目标路径,目标路径用于连接第一区域与第二区域。基于前述过程可知,在规划连接第一区域和第二区域的路径时,可将第一区域和第二区域之间的其余区域定义成两类区域,一类为可穿过区域,一类为不可穿过区域,最终规划得到的目标路径仅穿过可穿过区域,此种馈通方案考虑了路径仅穿过可穿过区域这一约束,考虑的约束更为全年且贴合实际应用,故可规划出更加优质的路径,使得集成电路的馈通规划效果较佳,进而保证整个集成电路的设计结果的质量。
在一种可能的实现方式中,获取第一区域与第二区域之间的多个可穿过区域包括:在第一区域与第二区域之间的其余区域中,剔除所有不可穿过区域,得到多个可穿过区域,不可穿过区域为低功耗区域、阻塞区域或复用区域。前述实现方式中,确定第一区域和第二区域后,可基于区域的标签将第一区域与第二区域之间的其余区域分为两大类区域,第一类区域为不可穿过区域,第二类区域为可穿过区域。那么,在第一区域与第二区域之间的其余区域中,可剔除所有不可穿过区域,剩下的区域即为多个可穿过区域。需要说明的是,此处所提及的不可穿过区域通常指低功耗区域、阻塞区域或复用区域等等,其中,低功耗区域指处理信号或传输信号时功耗较低的区域,阻塞区域指可能会发生信号拥塞的区域,复用区域指具备某种形状或某种功能的区域,且该区域在该集成电路中具有多个。如此一来,在本申请实施例提供的馈通方案中,可加入路径仅穿过可穿过区域这一约束,从而优化集成电路的馈通规划的效果。
在一种可能的实现方式中,基于多个可穿过区域,构建第一区域与第二区域之间的多个候选路径包括:获取多个可穿过区域的节点,多个可穿过区域的节点设置于多个可穿过区域的边上;在多个可穿过区域的节点中,将每个可穿过区域的节点互连,将位于第一区域上的节点与第一区域的中心点连接,将位于第二区域上的节点与第二区域的中心点连接,得到多个候选路径。前述实现方式中,得到多个可穿过区域后,可在多个可穿过区域上设置节点,多个可穿过区域的节点设置于多个可穿过区域的边上。需要说明的是,对于多个可穿过区域中的任意一个可穿过区域而言,该可穿过区域的任意一个边上可设置有至少一个节点。由于第一区域和至少一个可穿过区域相邻,且第二区域也和某个至少一个可穿过区域相邻,故第一区域和其相邻的可穿过区域可共享节点,第二区域也和其相邻的可穿过区域可共享节点,并且相邻的可穿过区域之间也可共享节点,也就相当于第一区域和第二区域上也设置有节点,这些节点分别位于第一区域的边上和第二区域的边上。在多个可穿过区域的节点中,对于任意一个可穿过区域的节点而言,可先将该可穿过区域上的节点互连。接着,取第一区域的中心点和第二区域的中心点,将位于第一区域上的节点与第一区域的中心点连接,并将位于第二区域上的节点与第二区域的中心点连接,得到第一区域和第二区域之间的多个候选路径,对于任意一个候选路径而言,该候选路径以第一区域的中心点为起始点,以第二区域的中心点为结束点,以其穿过的可穿过过区域上的节点为中间点。
在一种可能的实现方式中,该方法还包括:在多个可穿过区域的节点中,剔除目标节点,得到处理后的多个可穿过区域的节点,目标节点所在边不可容纳连接第一区域与第二区域所需的管脚;在多个可穿过区域的节点中,将每个可穿过区域的节点互连,将位于第一区域上的节点与第一区域的中心点连接,将位于第二区域上的节点与第二区域的中心点连接,得到多个候选路径包括:在处理后的多个可穿过区域的节点中,将每个可穿过区域的节点互连,将位于第一区域上的节点与第一区域的中心点连接,将位于第二区域上的节点与第二区域的中心点连接,得到多个候选路径。前述实现方式中,对于任意一个可穿过区域的节点而言,可对该可穿过区域的节点逐个进行判断。若该可穿过区域的某个节点所在的边可容纳连接第一区域与第二区域所需的管脚,则将该节点视为有效节点并保留,若该可穿过区域的某个节点所在的边不可容纳连接第一区域与第二区域所需的管脚,则将该节点视为无效节点(即目标节点)并剔除。如此一来,可将该可穿过区域的所有无效节点剔除,该可穿过区域的所有有效节点则作为处理后的该可穿过区域的节点。对于除该可穿过区域之外的其余可穿过区域,也可执行如同对该可穿过区域所执行的操作,故可得到处理后的多个可穿过区域的节点。在处理后的多个可穿过区域的节点中,对于处理后的任意一个可穿过区域的节点而言,可先将处理后的该可穿过区域上的节点互连。接着,将位于第一区域上的节点与第一区域的中心点连接,并将位于第二区域上的节点与第二区域的中心点连接,得到第一区域和第二区域之间的多个候选路径。如此一来,在本申请实施例提供的馈通方案中,可加入区域的边足够容纳管脚这一约束,从而进一步优化集成电路的馈通规划的效果。
在一种可能的实现方式中,在多个候选路径,确定目标路径包括:在多个候选路径中,获取每个候选路径的权重,候选路径的权重基于候选路径的长度以及候选路径穿过可穿过区域所付出的损耗;在多个候选路径中,获取权重最小的候选路径,权重最小的路径作为目标路径。前述实现方式中,在多个候选路径中,对于任意一个候选路径而言,可基于该候选路径的长度以及该候选路径穿过可穿过区域所付出的损耗进行计算,得到该候选路径的权重,故可得到多个候选路径中每个候选路径的权重。接着,可在多个候选路径中确定权重最小的候选路径,并将权重最小的路径作为用于连接第一区域和第二区域的目标路径。如此一来,在本申请实施例提供的馈通方案中,可加入路径足够短以及路径所穿过的模块所付出的损耗这两个约束,从而进一步优化集成电路的馈通规划的效果。
在一种可能的实现方式中,在多个候选路径中,获取权重最小的候选路径包括:多个候选路径可以构成一个拓补图,故可基于图搜索算法在多个候选路径所构成的拓补图中,确定权重最小的候选路径。
在一种可能的实现方式中,图搜索算法为最小生成树算法、斯坦纳树算法、Floyd算法、Dijkstra算法或Astar算法。
本申请实施例的第二方面提供了一种集成电路的馈通装置,该装置包括:第一获取模块,用于获取集成电路中待连接的第一区域以及第二区域;第二获取模块,用于获取第一区域与第二区域之间的多个可穿过区域;构建模块,用于基于多个可穿过区域,构建第一区域与第二区域之间的多个候选路径,每个候选路径穿过至少一个可穿过区域;确定模块,用于在多个候选路径确定目标路径,目标路径用于连接第一区域与第二区域。
从上述装置可以看出:当需要对集成电路进行馈通规划时,可先获取集成电路中待连接的第一区域以及第二区域。接着,可获取第一区域与第二区域之间的多个可穿过区域。然后,基于多个可穿过区域,构建第一区域与第二区域之间的多个候选路径,每个候选路径穿过至少一个可穿过区域。最后,在多个候选路径确定目标路径,目标路径用于连接第一区域与第二区域。基于前述过程可知,在规划连接第一区域和第二区域的路径时,可将第一区域和第二区域之间的其余区域定义成两类区域,一类为可穿过区域,一类为不可穿过区域,最终规划得到的目标路径仅穿过可穿过区域,此种馈通方案考虑了路径仅穿过可穿过区域这一约束,考虑的约束更为全年且贴合实际应用,故可规划出更加优质的路径,使得集成电路的馈通规划效果较佳,进而保证整个集成电路的设计结果的质量。
在一种可能的实现方式中,第二获取模块,用于在第一区域与第二区域之间的其余区域中,剔除所有不可穿过区域,得到多个可穿过区域,不可穿过区域为低功耗区域、阻塞区域或复用区域。
在一种可能的实现方式中,构建模块,用于:获取多个可穿过区域的节点,多个可穿过区域的节点设置于多个可穿过区域的边上;在多个可穿过区域的节点中,将每个可穿过区域的节点互连,将位于第一区域上的节点与第一区域的中心点连接,将位于第二区域上的节点与第二区域的中心点连接,得到多个候选路径。
在一种可能的实现方式中,该装置还包括:剔除模块,用于在多个可穿过区域的节点中,剔除目标节点,得到处理后的多个可穿过区域的节点,目标节点所在边不可容纳连接第一区域与第二区域所需的管脚;构建模块,用于在处理后的多个可穿过区域的节点中,将每个可穿过区域的节点互连,将位于第一区域上的节点与第一区域的中心点连接,将位于第二区域上的节点与第二区域的中心点连接,得到多个候选路径。
在一种可能的实现方式中,确定模块,用于:在多个候选路径中,获取每个候选路径的权重,候选路径的权重基于候选路径的长度以及候选路径穿过可穿过区域所付出的损耗;在多个候选路径中,获取权重最小的候选路径,权重最小的路径作为目标路径。
在一种可能的实现方式中,确定模块,用于基于图搜索算法在多个候选路径所构成的拓补图中,确定权重最小的候选路径。
在一种可能的实现方式中,图搜索算法为最小生成树算法、斯坦纳树算法、Floyd算法、Dijkstra算法或Astar算法。
本申请实施例的第三方面提供了一种集成电路的馈通装置,该装置包括存储器和处理器;存储器存储有代码,处理器被配置为执行代码,当代码被执行时,该装置执行如第一方面或第一方面任意一种可能的实现方式所述的方法。
本申请实施例的第四方面提供了一种计算机存储介质,计算机存储介质存储有计算机程序,该程序由计算机执行时,使得计算机实施如第一方面或第一方面任意一种可能的实现方式所述的方法。
本申请实施例的第五方面提供了一种计算机程序产品,计算机程序产品存储有指令,指令在由计算机执行时,使得计算机实施如第一方面或第一方面任意一种可能的实现方式所述的方法。
本申请实施例中,当需要对集成电路进行馈通规划时,可先获取集成电路中待连接的第一区域以及第二区域。接着,可获取第一区域与第二区域之间的多个可穿过区域。然后,基于多个可穿过区域,构建第一区域与第二区域之间的多个候选路径,每个候选路径穿过至少一个可穿过区域。最后,在多个候选路径确定目标路径,目标路径用于连接第一区域与第二区域。基于前述过程可知,在规划连接第一区域和第二区域的路径时,可将第一区域和第二区域之间的其余区域定义成两类区域,一类为可穿过区域,一类为不可穿过区域,最终规划得到的目标路径仅穿过可穿过区域,此种馈通方案考虑了路径仅穿过可穿过区域这一约束,考虑的约束更为全年且贴合实际应用,故可规划出更加优质的路径,使得集成电路的馈通规划效果较佳,进而保证整个集成电路的设计结果的质量。
附图说明
图1为相关技术提供的feedthrough方案的一个示意图;
图2为本申请实施例提供的电子设计自动化软件的一个架构示意图;
图3为本申请实施例提供的集成电路的馈通系统的一个结构示意图;
图4为本申请实施例提供的集成电路的馈通系统的另一结构示意图;
图5示出了终端设备500的一个示例性的结构示意图;
图6为本申请实施例提供的集成电路的馈通方法的一个流程示意图;
图7为本申请实施例提供的集成电路的多个区域的一个示意图;
图8为本申请实施例提供的集成电路的多个区域的另一示意图;
图9为本申请实施例提供的集成电路的多个区域的另一示意图;
图10为本申请实施例提供的集成电路的多个区域的另一示意图;
图11为本申请实施例提供的集成电路的馈通装置的一个结构示意图;
图12为本申请实施例提供的集成电路的馈通装置的另一结构示意图。
具体实施方式
本申请实施例提供了一种集成电路的馈通方法及相关设备,可规划出更加优质的路径,使得集成电路的馈通规划效果较佳,进而保证整个集成电路的设计结果的质量。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
随着芯片(集成电路)的规模越来越大,可通过一定的设计方法将芯片分割成多个区域(也可以称为模块),由于芯片需实现各种各样的功能,故芯片中每个区域都会和其余区域产生连接关系。为了实现芯片中不同子模块之间成百上千的连接关系,芯片的馈通(feedthrough)规划是电子设计自动化(electronic design automation,EDA)软件中的重要一环。
目前的feedthrough方案中,当需要连接芯片中的第一区域和第二区域时,可先确定与第一区域相邻的多个区域,并在这些区域中选择最靠近第二区域的第三区域。接着,可确定与第三区域相邻的多个区域,并在这些区域中选择最靠近第二区域的第四区域,以此类推,可得到用于连接第一区域和第二区域的路径,该路径以第一区域为起点,依次经过第三区域、第四区域等中间区域,直至到达第二区域。例如,如图1所示(图1为相关技术提供的feedthrough方案的一个示意图),当需要连接区域0和区域52时,可先在与区域0相邻的区域中,选出最靠近区域52的区域2,接着在区域2相邻的区域中,选出与区域52相邻的区域51。那么,可得到用于连接区域0和区域52的路径,该路径中间经过区域2和区域51。同样地,当需要连接区域71和区域51时,可先在与区域71相邻的区域中,选出最靠近区域51的区域65,接着在区域65相邻的区域中,选出与区域51相邻的区域74。那么,可得到用于连接区域71和区域51的路径,该路径中间经过区域65和区域74等等。
基于前述的方案,虽然规划得到的用于连接两个区域的路径是最短的路径,但是若馈通规划中仅考虑路径最短这一约束,考虑的约束过于片面,往往得到的路径并非优质路径,导致馈通规划的效果不佳,进而影响EDA软件的输出结果。
进一步地,相关技术的feedthrough方案中无法灵活添加各种约束,导致规划得到的路径往往无法满足各种优化目标。
为了解决上述问题,本申请实施例提供了一种集成电路的馈通方法(也可以认为提供了一种芯片的馈通方法),该方法可应用于EDA软件的框架中,且对该框架的馈通规划功能进行了一定的改进,从而可实现更优质的馈通规划。如图2所示(图2为本申请实施例提供的电子设计自动化软件的一个架构示意图),该方法设置于EDA软件的馈通(feedthrough)规划及引脚放置模块中,即该模块用于实现本申请实施例所提供的方法。值得注意的是,本申请实施例提供的方法可应用于多种场景中,下文将分别对该方法的应用场景进行介绍:
图3为本申请实施例提供的集成电路的馈通系统的一个结构示意图,该集成电路的馈通系统包括用户设备以及数据处理设备。其中,用户设备包括手机、个人电脑或者信息处理中心等智能终端。用户设备为集成电路的馈通规划的发起端,作为馈通规划的发起方,通常由用户通过用户设备发起针对集成电路的馈通请求。
上述数据处理设备可以是云服务器、网络服务器、应用服务器以及管理服务器等具有数据处理功能的设备或服务器。数据处理设备通过交互接口接收来自智能终端针对某个集成电路的馈通请求,再通过存储数据的存储器以及数据处理的处理器环节将该集成电路进行馈通规划以及引脚放置等形式的处理。数据处理设备中的存储器可以是一个统称,包括本地存储以及存储历史数据的数据库,数据库可以在数据处理设备上,也可以在其它网络服务器上。
在图3所示的集成电路的馈通系统中,用户设备可以接收用户的指令,例如用户设备可以获取用户输入/选择的一个集成电路,然后向数据处理设备发起馈通请求,使得数据处理设备针对用户设备得到的该集成电路执行馈通规划应用,从而得到针对该集成电路的馈通规划结果。示例性的,用户设备可以获取用户输入的一个集成电路,然后向数据处理设备发起该集成电路的馈通规划请求,使得数据处理设备对基于该集成电路划分成的多个区域,进行不同区域之间的路径规划,可作为针对该集成电路的馈通规划结果,即用于连接不同区域的路径。因此,后续可沿着这些路径在各个区域上部署管脚,并完成布局(placement)以及布线(routing),完成区域之间的连接。
在图3中,数据处理设备可以执行本申请实施例的集成电路的馈通方法。
图4为本申请实施例提供的集成电路的馈通系统的另一结构示意图,在图4中,用户设备直接作为数据处理设备,该用户设备能够直接获取来自用户的输入并直接由用户设备本身的硬件进行处理,具体过程与图1相似,可参考上面的描述,在此不再赘述。
在图4所示的集成电路的馈通系统中,用户设备可以接收用户的指令,例如,用户设备可以获取用户在用户设备中所选择的一个集成电路,然后再由用户设备自身针对用户设备得到的该集成电路执行馈通规划应用,即对基于该集成电路划分成的多个区域而言,进行不同区域之间的路径规划,得到用于连接不同区域的路径,可作为针对该集成电路的馈通规划结果。
在图4中,用户设备自身就可以执行本申请实施例的集成电路的馈通方法。
进一步地,对于图3和图4中的用户设备,通常可以是用户所使用的终端设备,例如,手机、笔记本等等。为了便于了解用户所使用的终端设备,下文结合图5对终端设备作进一步的介绍(图5示出了终端设备500的一个示例性的结构示意图)。如图5所示,终端设备500包括:应用处理器501、微控制器单元(microcontroller unit,MCU)503、存储器505、调制解调器(modem)507、射频(radio frequency,RF)模块509、无线保真(Wireless-Fidelity,简称Wi-Fi)模块511、蓝牙模块513、传感器514、定位模块550、输入/输出(input/output,I/O)设备515等部件。这些部件可通过一根或多根通信总线或信号线进行通信。本领域技术人员可以理解,图1中示出的硬件结构并不构成对终端设备的限定,终端设备500可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图5对终端设备500的各个部件进行具体的介绍:
应用处理器501是终端设备500的控制中心,利用各种接口和总线连接终端设备500的各个部件。在一些实施例中,处理器501可包括一个或多个处理单元。
存储器505中存储有计算机程序,诸如图5所示的操作系统561和应用程序563。应用处理器501被配置用于执行存储器505中的计算机程序,从而实现该计算机程序定义的功能,例如应用处理器501执行操作系统561从而在终端设备500上实现操作系统的各种功能。存储器505还存储有除计算机程序之外的其他数据,诸如操作系统561和应用程序563运行过程中产生的数据。存储器505为非易失性存储介质,一般包括内存和外存。内存包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read-Only Memory,ROM),或高速缓存(cache)等。外存包括但不限于闪存(flash memory)、硬盘、光盘、通用串行总线(universal serial bus,USB)盘等。计算机程序通常被存储在外存上,处理器在执行计算机程序前会将该程序从外存加载到内存。
存储器505可以是独立的,通过总线与应用处理器501相连接;存储器505也可以和应用处理器501集成到一个芯片子系统。
MCU 503是用于获取并处理来自传感器514的数据的协处理器,MCU 503的处理能力和功耗小于应用处理器501,但具有“永久开启(always on)”的特点,可以在应用处理器501处于休眠模式时持续收集以及处理传感器数据,以极低的功耗保障传感器的正常运行。在一个实施例中,MCU503可以为sensor hub芯片。传感器514可以包括光传感器、运动传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示器551的亮度,接近传感器可在终端设备500移动到耳边时,关闭显示屏的电源。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向;传感器514还可以包括陀螺仪、气压计、湿度计、温度计、红外线传感器等其它传感器,在此不再赘述。MCU503和传感器514可以集成到同一块芯片上,也可以是分离的元件,通过总线连接。
Modem 507以及射频模块509构成了终端设备500通信子系统,用于实现3GPP、ETSI等无线通信标准协议的主要功能。其中,Modem 507用于编解码、信号的调制解调、均衡等。射频模块509用于无线信号的接收和发送,射频模块509包括但不限于天线、至少一个放大器、耦合器、双工器等。射频模块509配合Modem 507实现无线通信功能。Modem507可以作为单独的芯片,也可以与其他芯片或电路在一起形成系统级芯片或集成电路。这些芯片或集成电路可应用于所有实现无线通信功能的终端设备,包括:手机、电脑、笔记本、平板、路由器、可穿戴设备、汽车、家电设备等。
终端设备500还可以使用Wi-Fi模块511,蓝牙模块513等来进行无线通信。Wi-Fi模块511用于为终端设备500提供遵循Wi-Fi相关标准协议的网络接入,终端设备500可以通过Wi-Fi模块511接入到Wi-Fi接入点,进而访问互联网。在其他一些实施例中,Wi-Fi模块511也可以作为Wi-Fi无线接入点,可以为其他终端设备提供Wi-Fi网络接入。蓝牙模块513用于实现终端设备500与其他终端设备(例如手机、智能手表等)之间的短距离通信。本申请实施例中的Wi-Fi模块511可以是集成电路或Wi-Fi芯片等,蓝牙模块513可以是集成电路或者蓝牙芯片等。
定位模块550用于确定终端设备500的地理位置。可以理解的是,定位模块550具体可以是全球定位系统(global position system,GPS)或北斗卫星导航系统、俄罗斯GLONASS等定位系统的接收器。
Wi-Fi模块511,蓝牙模块513和定位模块550分别可以是单独的芯片或集成电路,也可以集成到一起。例如,在一个实施例中,Wi-Fi模块511,蓝牙模块513和定位模块550可以集成到同一芯片上。在另一个实施例中,Wi-Fi模块511,蓝牙模块513、定位模块550以及MCU 503也可以集成到同一芯片中。
输入/输出设备355包括但不限于:显示器551、触摸屏553,以及音频电路555等等。
其中,触摸屏553可采集终端设备500的用户在其上或附近的触摸事件(比如用户使用手指、触控笔等任何适合的物体在触摸屏553上或在触控屏触摸屏553附近的操作),并将采集到的触摸事件发送给其他器件(例如应用处理器501)。其中,用户在触摸屏553附近的操作可以称之为悬浮触控;通过悬浮触控,用户可以在不直接接触触摸屏553的情况下选择、移动或拖动目标(例如图标等)。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型来实现触摸屏553。
显示器(也称为显示屏)551用于显示用户输入的信息或展示给用户的信息。可以采用液晶显示屏、有机发光二极管等形式来配置显示器。触摸屏553可以覆盖在显示器551之上,当触摸屏553检测到触摸事件后,传送给应用处理器501以确定触摸事件的类型,随后应用处理器501可以根据触摸事件的类型在显示器551上提供相应的视觉输出。虽然在图5中,触摸屏553与显示器551是作为两个独立的部件来实现终端设备500的输入和输出功能,但是在某些实施例中,可以将触摸屏553与显示器551集成而实现手机500的输入和输出功能。另外,触摸屏553和显示器551可以以全面板的形式配置在终端设备500的正面,以实现无边框的结构。
音频电路555、扬声器556、麦克风557可提供用户与终端设备500之间的音频接口。音频电路555可将接收到的音频数据转换后的电信号,传输到扬声器556,由扬声器556转换为声音信号输出;另一方面,麦克风557将收集的声音信号转换为电信号,由音频电路555接收后转换为音频数据,再通过Modem 507和射频模块509将音频数据发送给比如另一终端设备,或者将音频数据输出至存储器505以便进一步处理。
另外,终端设备500还可以具有指纹识别功能。例如,可以在终端设备500的背面(例如后置摄像头的下方)配置指纹采集器件,或者在终端设备500的正面(例如触摸屏553的下方)配置指纹采集器件。又例如,可以在触摸屏553中配置指纹采集器件来实现指纹识别功能,即指纹采集器件可以与触摸屏553集成在一起来实现终端设备500的指纹识别功能。在这种情况下,该指纹采集器件配置在触摸屏553中,可以是触摸屏553的一部分,也可以以其他方式配置在触摸屏553中。本申请实施例中的指纹采集器件的主要部件是指纹传感器,该指纹传感器可以采用任何类型的感测技术,包括但不限于光学式、电容式、压电式或超声波传感技术等。
以搭载操作系统的终端设备500为例,如图3所示,终端设备500从逻辑上可划分为硬件层、操作系统561,以及应用层。硬件层包括如上所述的硬件处理器501、微控制器单元505、Modem 507、Wi-Fi模块511、传感器514、定位模块550等硬件资源。应用层包括一个或多个应用程序,比如应用程序563,应用程序563可以为社交类应用、电子商务类应用、浏览器等任意类型的应用程序。操作系统561作为硬件层和应用层之间的软件中间件,是管理和控制硬件与软件资源的计算机程序。
在一个实施例中,操作系统561包括内核,硬件抽象层(hardware abstractionlayer,HAL)、库和运行时(libraries and runtime)以及框架(framework)。其中,内核用于提供底层系统组件和服务,例如:电源管理、内存管理、线程管理、硬件驱动程序等;硬件驱动程序包括Wi-Fi驱动、传感器驱动、定位模块驱动等。硬件抽象层是对内核驱动程序的封装,向框架提供接口,屏蔽低层的实现细节。硬件抽象层运行在用户空间,而内核驱动程序运行在内核空间。
库和运行时也叫做运行时库,它为可执行程序在运行时提供所需要的库文件和执行环境。在一个实施例中,库与运行时包括安卓运行时(Android Runtime,ART),库,以及场景包运行时。ART是能够把应用程序的字节码转换为机器码的虚拟机或虚拟机实例。库是为可执行程序在运行时提供支持的程序库,包括浏览器引擎(比如webkit)、脚本执行引擎(比如JavaScript引擎)、图形处理引擎等。场景包运行时是场景包的运行环境,主要包括页面执行环境(page context)和脚本执行环境(script context),其中,页面执行环境通过调用相应的库解析html、css等格式的页面代码,脚本执行环境通过调用相应的功能库解析执行JavaScript等脚本语言实现的代码或可执行文件。
框架用于为应用层中的各个应用程序提供各种基础的公共组件和服务,比如,窗口管理、位置管理等等。在一个实施例中,框架可包括地理围栏服务,策略服务,通知管理器等等。
以上描述的操作系统561的各个组件的功能均可以由应用处理器501执行存储器505中存储的程序来实现。
图6为本申请实施例提供的集成电路的馈通方法的一个流程示意图,如图6所示,该方法包括:
601、获取集成电路中待连接的第一区域以及第二区域。
本实施例中,当需要对某个集成电路进行馈通规划时,可先获取该集成电路的布图规划结果以及网表(这些信息均可在对该集成电路的布图规划中得到。此处不做展开)。可以理解的是,布图规划结果通常包括对该集成电路进行划分所得到的多个区域(模块),网表则包含多个网络,每个网络包含该集成电路中若干个区域之间的连接关系(也可以理解为,每个网络用于指示该集成电路中某些区域之间需要连接)。例如,如图7所示(图7为本申请实施例提供的集成电路的多个区域的一个示意图),可按照一定的规则(例如,区域的功能等等)将集成电路划分成97个区域,编号分别为0、1、2、...、95以及96。网表包含网络1、网络2以及网络3,网络1指示区域10和区域55之间需要连接,网络2指示区域61、区域71、区域73和区域78之间需要连接,网络3指示区域4、区域36、区域79和区域83之间需要连接。
由于对每个网络所执行的操作是类似的,故可以取某一个网络进行示意性介绍。在该网络中,对待连接的每两个区域所执行的操作也是类似的,故可取该网络中待连接的某两个区域进行示意性介绍,并将该两个区域分别称为第一区域和第二区域。
602、获取第一区域与第二区域之间的多个可穿过区域。
确定第一区域和第二区域后,可获取第一区域与第二区域之间的多个可穿过区域,需要说明的是,在集成电路的多个区域中,每一个区域可被预先打上标签,该区域的标签用于指示该区域为可被穿过的区域或不可被穿过的区域,即可穿过区域或不可穿过区域。如此一来,可基于某个区域的标签来确定该区域是可穿过区域还是不可穿过区域,故可获取位于第一区域与第二区域之间的多个可穿过区域。具体地,可通过以下方式获取第一区域与第二区域之间的多个可穿过区域:
确定第一区域和第二区域后,可基于区域的标签将第一区域与第二区域之间的其余区域分为两大类区域,第一类区域为不可穿过区域,第二类区域为可穿过区域。那么,在第一区域与第二区域之间的其余区域中,可剔除所有不可穿过区域,剩下的区域即为多个可穿过区域。需要说明的是,本实施例所涉及的不可穿过区域通常指低功耗区域、阻塞区域或复用区域等等,其中,低功耗区域指处理信号或传输信号时功耗较低的区域,阻塞区域指可能会发生信号拥塞的区域,复用区域指具备某种形状或某种功能的区域,且该区域在该集成电路中具有多个(也可以理解为,该集成电路中具有相同形状或功能的某些区域,这些区域可称为复用区域)。
603、基于多个可穿过区域,构建第一区域与第二区域之间的多个候选路径,每个候选路径穿过至少一个可穿过区域。
得到第一区域与第二区域之间的多个可穿过区域后,可以第一区域为起始区域,以第二区域为结束区域,以这多个可穿过区域为中间区域,构建第一区域与第二区域之间的多个候选路径。由此可见,对于多个候选路径中的任意一个候选路径,该候选路径穿过至少一个可穿过区域,且以第一区域为起始区域,以第二区域为结束区域。具体地,可通过以下方式获取第一区域与第二区域之间的多个候选路径:
(1)在多个可穿过区域上设置节点,多个可穿过区域的节点设置于多个可穿过区域的边上。需要说明的是,对于多个可穿过区域中的任意一个可穿过区域而言,该可穿过区域的任意一个边上可设置有至少一个节点,该边上的节点数量与该边所重合的区域(通常指除该可穿过区域之外的其余可穿过区域、第一区域或第二区域)数量相同,故对该可穿过区域的所有边完成节点设置后,可得到该可穿过区域上的节点。对于除该穿过区域之外的其余可穿过区域,也可执行如同对穿过区域所执行的操作,故可得到多个可穿过区域上的节点。值得注意的是,在第一区域、第二区域和多个可穿过区域中,相邻的区域之间可共享节点,故也就相当于第一区域和第二区域上也设置有节点(分别位于第一区域的边上和第二区域的边上),因为第一区域和某个(或某些)可穿过区域相邻(即二者的边重合),且第二区域也和某个(或某些)可穿过区域相邻,故第一区域和其相邻的可穿过区域可共享节点,第二区域也和其相邻的可穿过区域可共享节点,并且相邻的可穿过区域之间也可共享节点。
例如,如图8所示(图8为本申请实施例提供的集成电路的多个区域的另一示意图),设某个集成电路分划分成区域a、区域b、区域c、区域d、区域e、区域f以及区域g,其中,区域a、区域e和区域f为待连接的三个区域。那么,对于区域a和区域e而言,这两个区域之间的可穿过区域可以为区域b和区域d(区域c为不可穿过区域,已被剔除),其中,区域b有两个边与区域重合,其中左方的边与区域a完成重叠,故左方的边可部署一个节点,下方的边的第一部分与区域d重合,第二部分与区域e重合,故下方的边可部署两个节点(分别在第一部分和第二部分上)。区域d有三个边与区域重合,上方的边的第一部分与区域a重合,第二部分与区域b重合,故上方的边可部署两个节点(需要说明的是,区域d中上方的边的第二部分上的节点和区域b中下方的边的第一部分上的节点为同一个节点),右方的边与区域e重合,故右方的边可部署一个节点,下方的边与区域g重合,故下方的边可部署有一个节点。同理,对于区域a和区域f而言,这两个区域之间的可穿过区域可以为区域d和区域g,其中,区域d上的节点可参考前述说明,此处不再赘述,区域g有两个边与区域重合,其中左方的边与区域f完成重叠,故左方的边可部署一个节点,上方的边的第一部分与区域d重合,第二部分与区域e重合,故上方的边可部署两个节点(需要说明的是,区域g中上方的边的第一部分上的节点和区域d中下方的边上的节点为同一个节点)。对于区域e和区域f而言,这两个区域之间的可穿过区域可以为区域g,区域g上的节点可参考前述说明,此处不再赘述。如此一来,在该集成电路中,区域a上部署有2个节点,区域b部署有3个节点,区域d部署有4个节点,区域e部署有3个节点,区域f部署有1个节点,区域g部署有3个节点。
(2)在多个可穿过区域的节点中,对于任意一个可穿过区域的节点而言,可先将该可穿过区域上的节点互连。接着,取第一区域的中心点和第二区域的中心点,将位于第一区域上的节点与第一区域的中心点连接,并将位于第二区域上的节点与第二区域的中心点连接,得到第一区域和第二区域之间的多个候选路径,对于任意一个候选路径而言,该候选路径以第一区域的中心点为起始点,以第二区域的中心点为结束点,以其穿过的可穿过过区域上的节点为中间点。
依旧如上述例子,可先将区域b上的3个节点互连,将区域d上的4个节点互连。接着,将区域a的中心点与区域a上的2个节点连接,并将区域e的中心点与区域e上的3个节点连接,从而得到区域a和区域e之间的多个候选路径,这些候选路径以区域a的中心点为起始点,以区域e的中心点为结束点,且中间经过区域b和区域d这两个区域中至少一个区域上的节点。同样地,还可将区域g上的3个节点互连,并将区域f的中心点与区域f上的1个节点连接,可得到区域a和区域f之间的多个候选路径,区域e和区域f之间的多个候选路径,此处不再赘述。
进一步地,在得到多个可穿过区域的节点后,并非所有节点均是有效节点,为了保证节点的有效性,可先通过以下方式对多个可穿过区域的节点进行处理,再构建第一区域与第二区域之间多个候选路径:
对于任意一个可穿过区域的节点而言,可对该可穿过区域的节点逐个进行判断。若该可穿过区域的某个节点所在的边可容纳连接第一区域与第二区域所需的管脚,则将该节点视为有效节点并保留,若该可穿过区域的某个节点所在的边不可容纳连接第一区域与第二区域所需的管脚,则将该节点视为无效节点(即前述的目标节点)并剔除。如此一来,可将该可穿过区域的所有无效节点剔除,该可穿过区域的所有有效节点则作为处理后的该可穿过区域的节点。对于除该可穿过区域之外的其余可穿过区域,也可执行如同对该可穿过区域所执行的操作,故可得到处理后的多个可穿过区域的节点。
例如,如图9所示(图9为本申请实施例提供的集成电路的多个区域的另一示意图,图9是在图8的基础上进行绘制得到的),基于图8可知,区域d原先部署有4个节点。在图9中,设连接区域a和区域e需要5个管脚,而区域d中上方的边的第一部分、下方的边和右方的边均可容纳5个管脚,而上方的边的第二部分不可容纳5个管脚,故保留区域d中上方的边的第一部分、下方的边和右方的边上的节点,剔除上方的边的第二部分上的节点,故区域d在处理后仅部署有3个节点。同理,区域b在处理后仅部署有2个节点,区域a在处理后依旧部署有2个节点,区域e在处理后依旧部署有3个节点,区域f在处理后依旧部署有1个节点,区域g在处理后依旧部署有3个节点。
在处理后的多个可穿过区域的节点中,对于处理后的任意一个可穿过区域的节点而言,可先将处理后的该可穿过区域上的节点互连。接着,取第一区域的中心点和第二区域的中心点,将位于第一区域上的节点与第一区域的中心点连接,并将位于第二区域上的节点与第二区域的中心点连接,得到第一区域和第二区域之间的多个候选路径,对于任意一个候选路径而言,该候选路径以第一区域的中心点为起始点,以第二区域的中心点为结束点,以其穿过的可穿过过区域上的节点为中间点。
依旧如上述例子,可先将区域b上的2个节点互连,将区域d上的3个节点互连。接着,将区域a的中心点与区域a上的2个节点连接,并将区域e的中心点与区域e上的3个节点连接,从而得到区域a和区域e之间的多个候选路径,这些候选路径以区域a的中心点为起始点,以区域e的中心点为结束点,且中间经过区域b和区域d这两个区域中至少一个区域上的节点。同样地,还可将区域g上的3个节点互连,并将区域f的中心点与区域f上的1个节点连接,可得到区域a和区域f之间的多个候选路径,区域e和区域f之间的多个候选路径,此处不再赘述。
604、在多个候选路径确定目标路径,目标路径用于连接第一区域与第二区域。
得到多个候选路径后,可在多个候选路径中,选择其中一个候选路径作为目标路径,以在后续中沿着目标路径,在第一区域和第二区域之间实现管脚放置、布局和布线等步骤,从而实现第一区域与第二区域之间的连接。
具体地,可通过以下方式获取目标路径:
(1)在多个候选路径中,对于任意一个候选路径而言,可基于该候选路径的长度以及该候选路径穿过可穿过区域所付出的损耗(代价)进行计算,得到该候选路径的权重。其中,该候选路径的权重可通过以下公式进行计算:
W=a*HPWL+b*baseWeight
上式中,a、b为预置的权重系数(系数的大小可根据实际需求进行设置,此处不做限制),HPWL为该候选路径的长度,baseWeight为该候选路径穿过可穿过区域所付出的损耗,例如,若该候选路径穿过两个可穿过区域,baseWeight则为该候选路径穿过第一个可穿过区域所付出的损耗以及穿过第二个可穿过区域所付出的损耗之和,需要说明的是,该候选路径穿过第一区域和第二区域不会付出损耗,因为二者为起始区域和结束区域。并且,对于任意一个可穿过区域而言,穿过该可穿过区域所付出的损耗为预置的值(该值的大小可根据实际需求进行设置,此处不做限制)。
对于除该候选路径之外的其余候选路径,也可执行如同对该候选路径所执行的操作,故可得到每个候选路径的权重。
(2)遍历多个候选路径,以在多个候选路径中确定权重最小的候选路径,并将权重最小的路径作为目标路径。进一步地,多个候选路径可以构成一个拓补图,故可基于图搜索算法(例如,最小生成树算法、斯坦纳树算法、Floyd算法、Dijkstra算法或Astar算法等等)在多个候选路径所构成的拓补图中,确定权重最小的候选路径。
完成第一区域和第二区域之间的馈通规划后,可对二者所属网络中的其余待连接的区域进行馈通规划(即执行步骤601至步骤604),以完成该网络执行馈通规划后。同样地。还可对其余网络执行类似的馈通规划操作,以规划出集成电路所有待连接的区域之间的最优路径,即完成该集成电路的馈通规划,在这之后,还可执行管脚放置、布局和布线等后续操作。例如,如图10所示(图10为本申请实施例提供的集成电路的多个区域的另一示意图,图10是在图7的基础上进行绘制的),完成馈通规划后,可得到连接网络1中区域10和区域55的路径,连接网络2中区域61、区域71、区域73和区域78的路径,连接网络3中区域4、区域36、区域79和区域83的路径,且放置了相应的管脚。
本申请实施例中,当需要对集成电路进行馈通规划时,可先获取集成电路中待连接的第一区域以及第二区域。接着,可获取第一区域与第二区域之间的多个可穿过区域。然后,基于多个可穿过区域,构建第一区域与第二区域之间的多个候选路径,每个候选路径穿过至少一个可穿过区域。最后,在多个候选路径确定目标路径,目标路径用于连接第一区域与第二区域。基于前述过程可知,在规划连接第一区域和第二区域的路径时,可将第一区域和第二区域之间的其余区域定义成两类区域,一类为可穿过区域,一类为不可穿过区域,最终规划得到的目标路径仅穿过可穿过区域,此种馈通方案考虑了路径仅穿过可穿过区域这一约束,考虑的约束更为全年且贴合实际应用,故可规划出更加优质的路径,使得集成电路的馈通规划效果较佳,进而保证整个集成电路的设计结果的质量。
进一步地,本申请实施例提供的馈通方案可灵活添加各种约束,例如,路径仅穿过可穿过区域(即在规划连接两个区域之间的路径时,对路径中间所穿过的区域的类型进行限制)、区域的边足够容纳管脚(即在规划连接两个区域之间的路径时,对路径中间所穿过的区域进行管脚资源分配)、路径足够短(即在规划连接两个区域之间的路径时,限制该路径的长度)以及路径所穿过的模块所付出的损耗(即在规划连接两个区域之间的路径时,对路径中间穿过某些区域所付出的代价进行限制)足够小等等约束,故基于这些约束所规划得到的路径,可满足各种优化目标,实现较为便利,且可应用于各种业务场景。
以上是对本申请实施例提供的集成电路的馈通方法所进行的详细说明,以下将对本申请实施例提供的集成电路的馈通装置进行介绍,图11为本申请实施例提供的集成电路的馈通装置的一个结构示意图,如图11所示,该装置包括:
第一获取模块1101,用于获取集成电路中待连接的第一区域以及第二区域;
第二获取模块1102,用于获取第一区域与第二区域之间的多个可穿过区域;
构建模块1103,用于基于多个可穿过区域,构建第一区域与第二区域之间的多个候选路径,每个候选路径穿过至少一个可穿过区域;
确定模块1104,用于在多个候选路径确定目标路径,目标路径用于连接第一区域与第二区域。
在一种可能的实现方式中,第二获取模块1102,用于在第一区域与第二区域之间的其余区域中,剔除所有不可穿过区域,得到多个可穿过区域,不可穿过区域为低功耗区域、阻塞区域或复用区域。
在一种可能的实现方式中,构建模块1103,用于:获取多个可穿过区域的节点,多个可穿过区域的节点设置于多个可穿过区域的边上;在多个可穿过区域的节点中,将每个可穿过区域的节点互连,将位于第一区域上的节点与第一区域的中心点连接,将位于第二区域上的节点与第二区域的中心点连接,得到多个候选路径。
在一种可能的实现方式中,该装置还包括:剔除模块,用于在多个可穿过区域的节点中,剔除目标节点,得到处理后的多个可穿过区域的节点,目标节点所在边不可容纳连接第一区域与第二区域所需的管脚;构建模块1103,用于在处理后的多个可穿过区域的节点中,将每个可穿过区域的节点互连,将位于第一区域上的节点与第一区域的中心点连接,将位于第二区域上的节点与第二区域的中心点连接,得到多个候选路径。
在一种可能的实现方式中,确定模块1104,用于:在多个候选路径中,获取每个候选路径的权重,候选路径的权重基于候选路径的长度以及候选路径穿过可穿过区域所付出的损耗;在多个候选路径中,获取权重最小的候选路径,权重最小的路径作为目标路径。
在一种可能的实现方式中,确定模块1104,用于基于图搜索算法在多个候选路径所构成的拓补图中,确定权重最小的候选路径。
在一种可能的实现方式中,图搜索算法为最小生成树算法、斯坦纳树算法、Floyd算法、Dijkstra算法或Astar算法。
需要说明的是,上述装置各模块/单元之间的信息交互、实现过程等内容,由于与本申请方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参考本申请实施例前述所示的方法实施例中的叙述,此处不再赘述。
图12为本申请实施例提供的集成电路的馈通装置的另一结构示意图。如图12所示,集成电路的馈通装置的一个实施例可以包括一个或一个以上中央处理器1201,存储器1202,输入输出接口1203,有线或无线网络接口1204,电源1205。
存储器1202可以是短暂存储或持久存储。更进一步地,中央处理器1201可以配置为与存储器1202通信,在第一网络设备上执行存储器1202中的一系列指令操作。
本实施例中,中央处理器1201可以执行前述图6所示实施例中的方法步骤,具体此处不再赘述。
本实施例中,中央处理器1201中的具体功能模块划分可以与前述图11中所描述的第一获取模块、第二获取模块、构建模块、确定模块以及剔除模块的划分方式类似,此处不再赘述。
本申请实施例还涉及一种计算机存储介质,包括计算机可读指令,当所述计算机可读指令被执行时,实现如图6所示实施例的方法步骤。
本申请实施例还涉及一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如图6所示实施例的方法步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (17)
1.一种集成电路的馈通方法,其特征在于,所述方法包括:
获取集成电路中待连接的第一区域以及第二区域;
获取所述第一区域与所述第二区域之间的多个可穿过区域;
基于所述多个可穿过区域,构建所述第一区域与所述第二区域之间的多个候选路径,每个候选路径穿过至少一个可穿过区域;
在所述多个候选路径确定目标路径,所述目标路径用于连接所述第一区域与所述第二区域。
2.根据权利要求1所述的方法,其特征在于,所述获取所述第一区域与所述第二区域之间的多个可穿过区域包括:
在所述第一区域与所述第二区域之间的其余区域中,剔除所有不可穿过区域,得到多个可穿过区域,所述不可穿过区域为低功耗区域、阻塞区域或复用区域。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述多个可穿过区域,构建所述第一区域与所述第二区域之间的多个候选路径包括:
获取所述多个可穿过区域的节点,所述多个可穿过区域的节点设置于所述多个可穿过区域的边上;
在所述多个可穿过区域的节点中,将每个可穿过区域的节点互连,将位于所述第一区域上的节点与所述第一区域的中心点连接,将位于所述第二区域上的节点与所述第二区域的中心点连接,得到多个候选路径。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述多个可穿过区域的节点中,剔除目标节点,得到处理后的多个可穿过区域的节点,所述目标节点所在边不可容纳连接所述第一区域与所述第二区域所需的管脚;
所述在所述多个可穿过区域的节点中,将每个可穿过区域的节点互连,将位于所述第一区域上的节点与所述第一区域的中心点连接,将位于所述第二区域上的节点与所述第二区域的中心点连接,得到多个候选路径包括:
在所述处理后的多个可穿过区域的节点中,将每个可穿过区域的节点互连,将位于所述第一区域上的节点与所述第一区域的中心点连接,将位于所述第二区域上的节点与所述第二区域的中心点连接,得到多个候选路径。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述在所述多个候选路径,确定目标路径包括:
在所述多个候选路径中,获取每个候选路径的权重,候选路径的权重基于候选路径的长度以及候选路径穿过可穿过区域所付出的损耗;
在所述多个候选路径中,获取权重最小的候选路径,所述权重最小的路径作为目标路径。
6.根据权利要求5所述的方法,其特征在于,所述在所述多个候选路径中,获取权重最小的候选路径包括:
基于图搜索算法在所述多个候选路径所构成的拓补图中,确定权重最小的候选路径。
7.根据权利要求6所述的方法,其特征在于,所述图搜索算法为最小生成树算法、斯坦纳树算法、Floyd算法、Dijkstra算法或A star算法。
8.一种集成电路的馈通装置,其特征在于,所述装置包括:
第一获取模块,用于获取集成电路中待连接的第一区域以及第二区域;
第二获取模块,用于获取所述第一区域与所述第二区域之间的多个可穿过区域;
构建模块,用于基于所述多个可穿过区域,构建所述第一区域与所述第二区域之间的多个候选路径,每个候选路径穿过至少一个可穿过区域;
确定模块,用于在所述多个候选路径确定目标路径,所述目标路径用于连接所述第一区域与所述第二区域。
9.根据权利要求8所述的装置,其特征在于,所述第二获取模块,用于在所述第一区域与所述第二区域之间的其余区域中,剔除所有不可穿过区域,得到多个可穿过区域,所述不可穿过区域为低功耗区域、阻塞区域或复用区域。
10.根据权利要求8或9所述的装置,其特征在于,所述构建模块,用于:
获取所述多个可穿过区域的节点,所述多个可穿过区域的节点设置于所述多个可穿过区域的边上;
在所述多个可穿过区域的节点中,将每个可穿过区域的节点互连,将位于所述第一区域上的节点与所述第一区域的中心点连接,将位于所述第二区域上的节点与所述第二区域的中心点连接,得到多个候选路径。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
剔除模块,用于在所述多个可穿过区域的节点中,剔除目标节点,得到处理后的多个可穿过区域的节点,所述目标节点所在边不可容纳连接所述第一区域与所述第二区域所需的管脚;
所述构建模块,用于在所述处理后的多个可穿过区域的节点中,将每个可穿过区域的节点互连,将位于所述第一区域上的节点与所述第一区域的中心点连接,将位于所述第二区域上的节点与所述第二区域的中心点连接,得到多个候选路径。
12.根据权利要求8至11任意一项所述的装置,其特征在于,所述确定模块,用于:
在所述多个候选路径中,获取每个候选路径的权重,候选路径的权重基于候选路径的长度以及候选路径穿过可穿过区域所付出的损耗;
在所述多个候选路径中,获取权重最小的候选路径,所述权重最小的路径作为目标路径。
13.根据权利要求12所述的装置,其特征在于,所述确定模块,用于基于图搜索算法在所述多个候选路径所构成的拓补图中,确定权重最小的候选路径。
14.根据权利要求13所述的装置,其特征在于,所述图搜索算法为最小生成树算法、斯坦纳树算法、Floyd算法、Dijkstra算法或Astar算法。
15.一种集成电路的馈通装置,其特征在于,所述装置包括存储器和处理器;
所述存储器存储有代码,所述处理器被配置为执行所述代码,当所述代码被执行时,所述装置执行如权利要求1至7任一项所述的方法。
16.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,该程序由计算机执行时,使得所述计算机实施权利要求1至7任一项所述的方法。
17.一种计算机程序产品,其特征在于,所述计算机程序产品存储有指令,所述指令在由计算机执行时,使得所述计算机实施权利要求1至7任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210278162.6A CN114662444A (zh) | 2022-03-21 | 2022-03-21 | 一种集成电路的馈通方法及相关设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210278162.6A CN114662444A (zh) | 2022-03-21 | 2022-03-21 | 一种集成电路的馈通方法及相关设备 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN114662444A true CN114662444A (zh) | 2022-06-24 |
Family
ID=82031936
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210278162.6A Pending CN114662444A (zh) | 2022-03-21 | 2022-03-21 | 一种集成电路的馈通方法及相关设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN114662444A (zh) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102024066A (zh) * | 2009-09-09 | 2011-04-20 | 中国科学院微电子研究所 | 从模拟电路网表自动生成模拟电路原理图的方法 |
| CN108170968A (zh) * | 2018-01-06 | 2018-06-15 | 嘉兴倚韦电子科技有限公司 | 集成电路半定制后端设计高效时钟树物理绕线优化方法 |
| CN112257376A (zh) * | 2020-10-28 | 2021-01-22 | 海光信息技术股份有限公司 | 馈通路径的规划方法及装置、电子设备、存储介质 |
| CN113723042A (zh) * | 2021-09-02 | 2021-11-30 | 海光信息技术股份有限公司 | 接口位置的布局方法及装置、电子设备及存储介质 |
-
2022
- 2022-03-21 CN CN202210278162.6A patent/CN114662444A/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102024066A (zh) * | 2009-09-09 | 2011-04-20 | 中国科学院微电子研究所 | 从模拟电路网表自动生成模拟电路原理图的方法 |
| CN108170968A (zh) * | 2018-01-06 | 2018-06-15 | 嘉兴倚韦电子科技有限公司 | 集成电路半定制后端设计高效时钟树物理绕线优化方法 |
| CN112257376A (zh) * | 2020-10-28 | 2021-01-22 | 海光信息技术股份有限公司 | 馈通路径的规划方法及装置、电子设备、存储介质 |
| CN113723042A (zh) * | 2021-09-02 | 2021-11-30 | 海光信息技术股份有限公司 | 接口位置的布局方法及装置、电子设备及存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111416756B (zh) | 协议测试方法、装置、计算机设备及存储介质 | |
| CN108345543B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
| US11012070B2 (en) | Electronic device and method thereof for grip recognition | |
| WO2019184600A1 (zh) | 一种基于用户场景感知触发服务的方法、终端设备及系统 | |
| US10671373B1 (en) | Mechanism for automatically incorporating software code changes into proper channels | |
| WO2019061541A1 (zh) | 编辑主屏幕的方法、图形用户界面及电子设备 | |
| CN103473253B (zh) | 经地理编码的数据的检测及用于其的用户界面 | |
| CN112162843A (zh) | 工作流执行方法、装置、设备及存储介质 | |
| KR102893057B1 (ko) | Poi 정보를 제공하는 방법 및 이를 지원하는 전자 장치 | |
| CN113220366B (zh) | 子应用启动方法、装置、终端及服务器 | |
| RU2606880C2 (ru) | Способ, устройство и компьютерная программа для обработки данных датчика активности | |
| KR102471739B1 (ko) | 전자 장치의 히스토리 정보 관리 장치 및 방법 | |
| CN114662444A (zh) | 一种集成电路的馈通方法及相关设备 | |
| JP7653550B2 (ja) | 情報処理システムおよび情報処理方法 | |
| US10880365B2 (en) | Information processing apparatus, terminal apparatus, and method of processing information | |
| CN110147193A (zh) | 一种信息展示方法、装置、设备和介质 | |
| US9479889B2 (en) | Service platform for general-purposed multi-functional detectors | |
| CN109670324A (zh) | 数据访问方法及装置 | |
| CN112073505B (zh) | 在云服务器上进行卸载的方法、控制装置、存储介质 | |
| KR102562379B1 (ko) | 결제내역 정보를 이용하여 로컬 데이터를 검색하는 방법과 시스템 및 비-일시적인 컴퓨터 판독 가능한 기록 매체 | |
| CN114385939A (zh) | 应用显示方法、应用显示系统、装置及设备 | |
| KR20160127351A (ko) | 모바일 단말의 사용자 정보를 이용한 맞춤형 콘텐츠 공유 방법 및 장치 | |
| CN113495869B (zh) | 文件系统空间的调整方法、装置和电子设备 | |
| CN115344574B (zh) | 灵活的数据处理方法、装置、存储介质及电子设备 | |
| US20240202389A1 (en) | System and method for path analysis to manage computing resources |
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 |

