CN116070575B - 一种芯片布线优化方法及软件系统 - Google Patents
一种芯片布线优化方法及软件系统 Download PDFInfo
- Publication number
- CN116070575B CN116070575B CN202310040166.5A CN202310040166A CN116070575B CN 116070575 B CN116070575 B CN 116070575B CN 202310040166 A CN202310040166 A CN 202310040166A CN 116070575 B CN116070575 B CN 116070575B
- Authority
- CN
- China
- Prior art keywords
- wiring
- path
- points
- constraint
- grid
- 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
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
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供一种芯片布线优化方法及软件系统,该方法包括:获取芯片版图信息文件;构建动态化网格;将所有飞线划分为两端线网和多端线网;将所有两端线网和所有多端线网根据预设的排序规则进行排序;将两端线网和多端线网进行布线;判断完成的布线是否违反预设的约束:若是,则找出每一布线的所有路径中违背约束中的短路约束的关键网格点,再限制关键网格点后返回上一步骤;若否,则进入下一步骤;将每一条符合约束的路径复制到对应的其他同种模板的分块中;判断所有飞线的路径是否完成寻找:若是,则将所有飞线的路径写入输出结果文件;若否,则将当前的网格间距值减少后返回第二步骤。采用本发明的技术方案的芯片布线的效果好。
Description
技术领域
本发明涉及芯片布局技术领域,尤其涉及一种芯片布线优化方法和软件系统。
背景技术
近年来,集成电路领域发展越来越迅猛,晶体管数量随集成电路制造工艺发展逐年增加,芯片内包含的逻辑门数量急剧提升,这给集成电路设计带来了巨大的难题。由于超大规模集成电路(very-large-scale integration circuit,VLSI)逻辑的高度复杂性,其物理设计往往需要使用计算机辅助设计工具来完成。这就向电子设计自动化(electronicdesign automation,EDA)工具提出了严峻挑战。在物理设计过程中,布线是极其重要的一环。布线工作占据了EDA过程的大部分时间,甚至在大部分情况下,自动布线的结果还需要设计人员在后期手工调整。具备优秀的布线速度及高布线质量的布线器对缩短芯片设计周期有着至关重要的作用。
相关技术的芯片布线优化方法一般将规模庞大的单个设计切分成若干较小的分块,将每个分块单独实现成为了广泛采用的解决方案。分块设计可以有效地降低不同部分的耦合度,控制设计过程中的风险;不同的分块可以并行实现,显著地降低了芯片开发的时间成本;同时,多实例化分块技术支持使用模板保存并同步设计多个完全相同的分块,可以有效节约开发过程中的存储和人力成本。在分块设计中,为了保持分块的完整性和易用性,所有处于分块边界内的对象都被划分到分块内部进行独立设计,但不同分块之间仍然存在一些关键连接,需要先在顶层对其进行全局布线,再将布线结果分段划分到其穿过的各分块中。路径搜索算法就是寻找源点和目标点之间连通路径的算法,在此基础上还需满足路径最短或路径开销最小。绝大多数布线问题都可以抽象成寻路问题来解决,将线网的连线问题看作是寻找两点之间最短路径的问题,在不同的布线阶段选择合理的路径搜索算法是布线问题的关键步骤。布线问题中,使用最广泛的是迷宫布线类算法,包括李氏算法、A*算法等,此类算法一般在网格状图结构上,通过递归或迭代搜索线网的最优布线路径,对多个线网进行顺序布线(或称串行布线)。除此之外,还有同属于顺序布线算法的线搜索算法,以及可以对所有线网同时进行布线的同时布线(或称并行布线)算法,如多商品流算法。
然而,多实例化分块的存在,给顶层布线带来了新的挑战。为了保持多实例化性质,布线结果中穿过多实例化分块的路径在被划分时会自动同步到其它使用相同模板的分块中。因此,芯片布线中可能出现冗余的路径,导致布线资源的拥挤或浪费,甚至造成短路。相关技术的路径搜索算法实际是应用在没有多实例化分块的布图上。而在多实例化分块的布图下进行布线,需要考虑分块的多实例化性质,即同种模板下的分块的子分块、端点、曼哈顿路径是一致的;也需要考虑拓扑约束,即曼哈顿路径的连接关系应与给定的飞线连接关系具有相同的拓扑结构;还需要考虑邻域约束,即任意一段曼哈顿路径的宽度为封闭邻域内,不应存在与其平行的其它曼哈顿路径、分块边界或不直接相连的端点。在计算总线长时,两条曼哈顿路线交叉不违背约束,但是在交叉点的长和宽的矩形邻域内的曼哈顿路径需双倍计入总长度,且所有曼哈顿路径无论是否参与连接,均计入到总长度。若是将相关技术的布线算法用到多实例化分块布图下进行布线,由于未考虑多实例化的性质,将会造成布线效果不理想,具体表现在布线的线长过长,导致布线资源的拥挤或浪费,严重的甚至会造成线路短路,无法用于实际生产中。
发明内容
针对以上现有技术的不足,本发明提出一种芯片布线的效果好的芯片布线优化方法和软件系统。
为了解决上述技术问题,第一方面,本发明实施例提供了一种芯片布线优化方法,该方法包括如下步骤:
步骤S1、获取芯片版图信息文件;
步骤S2、根据所述芯片版图信息文件构建动态化网格;所述动态化网格为通过预设的网格间距值的坐标点构成;
步骤S3、根据所述芯片版图信息文件将所有飞线划分为两端线网和多端线网;
步骤S4、将所述步骤S3划分出的所有所述两端线网和所有所述多端线网根据预设的排序规则进行排序;
步骤S5、将所述两端线网和所述多端线网按照所述步骤S4的排序进行布线;
步骤S6、判断所述步骤S5完成的所述布线是否违反预设的约束:
若是,则找出每一所述布线的所有路径中违背所述约束中的短路约束的关键网格点,再限制所述关键网格点后返回所述步骤S5;
若否,则进入步骤S7;
步骤S7、将每一条符合所述约束的所述路径复制到对应的其他同种模板的分块中;
步骤S8、判断所有所述飞线的所述路径是否完成寻找:
若是,则将所有所述飞线的所述路径写入输出结果文件;
若否,则将当前的所述网格间距值减少后返回所述步骤S2。
优选的,所述步骤S1中,所述芯片布图信息文件包括在芯片版图中的路径交叉点矩形邻域的长和宽、约束条件中邻域宽度、分块的所述模板的形状和各分块的原点和朝向、各端点的位置和连接关系、端点的坐标、端点所在的分块以及飞线的信息。
优选的,所述步骤S2包括:
步骤S21、构造不规则网格;具体为:获得每个端点的坐标、实例化分块的顶点的坐标以及分别与所述顶点上偏移、下偏移、左偏移、右偏移的点的坐标,再记录各所述坐标的分块信息,并将各所述坐标对应到该分块的所述模板的相对位置,再各所述坐标对应到该模板中其他分块的坐标;
步骤S22、判断两个相邻坐标是否超过所述网格间距值:
若是,则在该两个相邻坐标之间每间隔一个所述网格间距值插入一个坐标点,并将该坐标点的位置记录在各所述分块上,同时在同种所述模板的其他分块根据该分块的朝向插入相对位置相同的另一个坐标点,再将所有所述坐标点作为划分网格的基准,建立所述动态化网格,再进入步骤S23;
若否,则进入所述步骤S23;
步骤S23、将所述不规则网格作进一步处理;所述进一步处理包括:
步骤S231、设置边权;具体为将相邻网格点之间的权重;
步骤S232、将同一所述模板下的各所述分块中所包含的网格点数量不相等的相邻点的路径距离标记为无穷大,以用于在布线时避开该条路径。
优选的,所述步骤S4中,所述线网包括所述两端线网和所述多端线网,所述排序规则包括:比较并判断同类型的线网的数量:若其中所述线网的数量多,则该类型线网优先布线;若同类型的所述线网的数量一致,则进一步比较该类型的所述线网的飞线数量,并将所述飞线数量多的所述线网进行优先布线;若所述线网的飞线数量一致,则进一步比较所述线网中的端点所围成的包络矩形的面积,并将所述包络矩形面积大的所述线网进行优先布线;最后比较所述两端线网,所述两端线网中两端点之间的曼哈顿距离较大的线网优先布线。
优选的,所述步骤S5包括:
步骤S51、将所述两端线网通过第一改进A*算法进行布线;具体为:首先判断是否有同类型的所述两端线网,若有,则对所述两端线网的端点所在的分块中的所述边权进行降低,降低后的所述边权为未降之前的所述边权除以同类型所述两端线网的数量,再找到两个所述两端线网中的端点之间的最短路径,采用所述第一改进A*算法将所述不规则网格进行布线,若两个所述端点所在的分块中存在包含该端点的路径,则判断该路径的距离与两个所述端点的距离:若该路径布线距离短,则选择该路径;若否,则选择两个所述端点的距离;
步骤S52、将所述多端线网通过顺序斯坦纳树结合第二改进A*算法进行布线;具体为:首先判断是否有同类型的所述多端线网,若有,则对所述多端线网的端点所在的分块中的所述边权进行降低,降低后的所述边权为未降之前的所述边权除以同类型所述多端线网的数量,再采用所述顺序斯坦纳树结合所述第二改进A*算法进行所述多端线网的布线。
优选的,所述第一改进A*算法为在A*算法的基础上,还具有:多条最优路径选择时,选择转折点少的路径;判断当前节点与父节点的位置关系:若所述父节点到所述当前节点的路径方向,与所述当前节点到选择的邻近节点的路径方向相反,则跳过该邻近节点,选择下一个邻近节点;所述邻近节点到所述当前节点的距离要大于邻域约束距离。
优选的,所述第二改进A*算法为在所述第一改进A*算法的基础上,还具有:所述第二改进A*算法结束判断的条件为找到所述路径中的一个点则可截止;所述第二改进A*算法中的预测距离改为邻近点与已布线完成的所述路径中的拐弯点、以及邻近点与所述路径中到起始点最近的点的最短曼哈顿距离。
优选的,所述步骤S6包括:
步骤S61、判断所述步骤S51完成的所述布线是否违反预设的约束:
若是,则找出每一所述布线的所有路径中违背所述约束中的短路约束的关键网格点,再将所述关键网格点限制后返回所述步骤S51;
若否,则进入步骤S7;
步骤S62、判断所述步骤S52完成的所述布线是否违反预设的约束:
若是,则找出每一所述布线的所有路径中违背所述约束中的短路约束的关键网格点,再将所述关键网格点限制后返回所述步骤S52;
若否,则进入步骤S7。
优选的,所述步骤S7包括:
步骤S71、寻找出符合所述约束的所述路径经过的所述分块和在每一所述分块内的所有所述路径;
步骤S72、将所述步骤71中寻找出的所述路径在每个所述分块的路径复制到所述模板的其他所述分块中,若其他所述分块中已有该路径,则跳过该分块的所述路径复制操作;
步骤S73、将包含其他所述分块的分块寻找出,再将其他所述分块的所述路径补充到该分块中。
第二方面,本发明实施例还提供了一种软件系统,所述软件系统应用如本发明实施例提供的上述的芯片布线优化方法。
与现有技术相比,本发明的芯片布线优化方法和软件系统通过步骤S1、获取芯片版图信息文件;步骤S2、根据所述芯片版图信息文件构建动态化网格;所述动态化网格为通过预设的网格间距值的坐标点构成;步骤S3、根据所述芯片版图信息文件将所有飞线划分为两端线网和多端线网;步骤S4、将所述步骤S3划分出的所有所述两端线网和所有所述多端线网根据预设的排序规则进行排序;步骤S5、将所述两端线网和所述多端线网按照所述步骤S4的排序进行布线;步骤S6、判断所述步骤S5完成的所述布线是否违反预设的约束:若是,则找出每一所述布线的所有路径中违背所述约束中的短路约束的关键网格点,再限制所述关键网格点后返回所述步骤S5;若否,则进入步骤S7;步骤S7、将每一条符合所述约束的所述路径复制到对应的其他同种模板的分块中;步骤S8、判断所有所述飞线的所述路径是否完成寻找:若是,则将所有所述飞线的所述路径写入输出结果文件;若否,则将当前的所述网格间距值减少后返回所述步骤S2。实施步骤S1至步骤S8在满足约束的情况下,寻找多实例化分块布图下的最短布线路径算法,从而使得本发明的芯片布线优化方法和软件系统的芯片布线的效果好。
附图说明
下面结合附图详细说明本发明。通过结合以下附图所作的详细描述,本发明的上述或其他方面的内容将变得更清楚和更容易理解。附图中:
图1为本发明芯片布线优化方法的流程框图;
图2为本发明芯片布线优化方法中的步骤S2的流程框图;
图3为本发明芯片布线优化方法中的步骤S2的不规则网格构造示意图;
图4为本发明芯片布线优化方法中的步骤S4的线网分类示意图;
图5为本发明芯片布线优化方法中的步骤S5的流程框图;
图6为本发明芯片布线优化方法中的步骤S6的流程框图;
图7为本发明芯片布线优化方法中的步骤S6的短路判断示意图;
图8为本发明芯片布线优化方法中的步骤S6的块堆叠布线示意图;
图9为本发明芯片布线优化方法中的步骤S7的流程框图;
图10为本发明芯片布线优化方法中的步骤S7的内嵌分块路径示意图;
图11为本发明软件系统的功能结构树示意图;
图12为本发明软件系统的实施例中的系统界面图。
具体实施方式
下面结合附图详细说明本发明的具体实施方式。
在此记载的具体实施方式/实施例为本发明的特定的具体实施方式,用于说明本发明的构思,均是解释性和示例性的,不应解释为对本发明实施方式及本发明范围的限制。除在此记载的实施例外,本领域技术人员还能够基于本申请权利要求书和说明书所公开的内容采用显而易见的其它技术方案,这些技术方案包括采用对在此记载的实施例的做出任何显而易见的替换和修改的技术方案,都在本发明的保护范围之内。
本发明提供了一种芯片布线优化方法。
请参考图1所示,图1为本发明芯片布线优化方法的流程框图。
所述芯片布线优化方法包括如下步骤:
步骤S1、获取芯片版图信息文件。
所述步骤S1中,所述芯片布图信息文件包括在芯片版图中的路径交叉点矩形邻域的长和宽、约束条件中邻域宽度、分块的所述模板的形状和各分块的原点和朝向、各端点的位置和连接关系、端点的坐标、端点所在的分块以及飞线的信息。通过实施所述步骤S1,获取芯片版图信息文件得到约束、模板、分块、端点、飞线的信息。
本实施例中,分块模板的形状由一组以所述模板原点(0,0)开始的坐标序列构成,依次表示分块边界的顶点;各分块的表述中三项依次为分块模板、分块原点和分块朝向,分块的实际边界由分块模板平移至分块原点,并按朝向翻转后得到。所有的坐标精确到小数点后4位。需要先对这些基本信息进行读取保存。
步骤S2、根据所述芯片版图信息文件构建动态化网格。所述动态化网格为通过预设的网格间距值的坐标点构成。
请参考图2所示,图2为本发明芯片布线优化方法中的步骤S2的流程框图。具体的,所述步骤S2包括:
步骤S21、构造不规则网格;具体为:获得每个端点的坐标、实例化分块的顶点的坐标以及分别与所述顶点上偏移、下偏移、左偏移、右偏移的点的坐标,再记录各所述坐标的分块信息,并将各所述坐标对应到该分块的所述模板的相对位置,再各所述坐标对应到该模板中其他分块的坐标。具体的,根据块和端点的位置作为基准,适当增加辅助线,对布线区域进行划分,从而建立自适应不规则网格。具体操作方法为:先收集每个端点的坐标、实例化分块的顶点坐标以及与顶点上下/左右偏移d+0.0001(d为邻域约束的距离)的点的坐标,记录这些坐标是属于哪个分块(其中对于端点的坐标,若其横坐标或纵坐标在其他块的区域内,则也需要记录该横坐标或纵坐标在其他分块块中),对应到该块的模板的相对位置,从而对应到模板中其他分块的坐标,对于分块A中存在其他分块B的情况,需要先把分块B的坐标记录到块A上。
步骤S22、判断两个相邻坐标是否超过所述网格间距值:
若是,则在该两个相邻坐标之间每间隔一个所述网格间距值插入一个坐标点,并将该坐标点的位置记录在各所述分块上,同时在同种所述模板的其他分块根据该分块的朝向插入相对位置相同的另一个坐标点,再将所有所述坐标点作为划分网格的基准,建立所述动态化网格,再进入步骤S23;
若否,则进入所述步骤S23。
请参考图3所示,图3为本发明芯片布线优化方法中的步骤S2的不规则网格构造示意图。所述网格间距值为gap。当两个相邻坐标距离过大时,可能导致布线资源过少,解决方法为:定义一个所述网格间距值gap,当相邻距离超过所述网格间距值gap时,会插入一个坐标点,依次类推;同时这些插入的点需要记录在相应块中,且在同种模板的其他分块要根据块的朝向同样的插入相对位置相同的坐标点。最后将所有这些坐标点集中在一起,将这些点作为划分网格的基准,建立动态化网格。
步骤S23、将所述不规则网格作进一步处理。
由于是不规则网络,且同种分块模板下的多实例化分块中存在的网格点也不完全能够对应上,因此还需要对网格图进行所述进一步处理。具体的,所述进一步处理包括:
步骤S231、设置边权;具体为将相邻网格点之间的权重。
所述边权为w,并满足如下公式:
w=distance*num。
其中,distance为两相邻网格点之间的距离,num为该边所在同一模板下分块的数量。
若该边不在分块中,则num设置为1;若该边在分块中,则边权相应乘以该分块模板下的数量num,如图3中所示,两个黑色的矩形表示同一模板的两个分块,黑色矩形块中,矩形的distance为一个gap,num为2,所以边权w=2*gap;在黑色矩形块外,矩形的边的distance为一个gap,num为1,所以边权w=1*gap,故黑色矩形块内部的边权是分块外部同种长度的边权的2倍。
步骤S232、将同一所述模板下的各所述分块中所包含的网格点数量不相等的相邻点的路径距离标记为无穷大,以用于在布线时避开该条路径。具体的,若同一分块模板下的各个分块中所包含的网格点数量不相等,则标记到该相邻点的路径距离(distance)为无穷大,即所述边权w设置为无穷大,设置该路径的状态为失效状态,即该路径在布线时不可走,如此,剩下的分块坐标点就能相互对应,解决了块内路径复制问题。如图3所示中虚线所示,黑色矩形块多了一条虚线的路径,该虚线是从其他块延伸过来的,不属于自身的路径,对应不上同种模板下其他分块的路径,因此设置虚线路径的状态为失效状态,在布线时避开该条路径。
步骤S3、根据所述芯片版图信息文件将所有飞线划分为两端线网和多端线网。
请参考图4所示,图4为本发明芯片布线优化方法中的步骤S4的线网分类示意图。图4中,线网a、b、c、d都为两端线网,且a线网,b线网和c线网所在块的模板都为蓝色块和绿色块,线网中的两个端点分别所在块的相对位置一致,故a线网,b线网和c线网是同一类型的线网。而线网d所在块的模板为蓝色块与黄色块,与其他线网所在块的模板不一致,故线网d与其他线网不为同一类型的线网。
步骤S4、将所述步骤S3划分出的所有所述两端线网和所有所述多端线网根据预设的排序规则进行排序。
所述步骤S4中,所述线网包括所述两端线网和所述多端线网,所述排序规则包括:比较并判断同类型的线网的数量:若其中所述线网的数量多,则该类型线网优先布线;若同类型的所述线网的数量一致,则进一步比较该类型的所述线网的飞线数量,并将所述飞线数量多的所述线网进行优先布线;若所述线网的飞线数量一致,则进一步比较所述线网中的端点所围成的包络矩形的面积,并将所述包络矩形面积大的所述线网进行优先布线;最后比较所述两端线网,所述两端线网中两端点之间的曼哈顿距离较大的线网优先布线。
步骤S5、将所述两端线网和所述多端线网按照所述步骤S4的排序进行布线。
请参考图5所示,图5为本发明芯片布线优化方法中的步骤S5的流程框图。具体的,所述步骤S5包括:
步骤S51、将所述两端线网通过第一改进A*算法进行布线。具体为:首先判断是否有同类型的所述两端线网,若有,则对所述两端线网的端点所在的分块中的所述边权进行降低,降低后的所述边权为未降之前的所述边权除以同类型所述两端线网的数量,再找到两个所述两端线网中的端点之间的最短路径,采用所述第一改进A*算法将所述不规则网格进行布线,若两个所述端点所在的分块中存在包含该端点的路径,则判断该路径的距离与两个所述端点的距离:若该路径布线距离短,则选择该路径;若否,则选择两个所述端点的距离。
A*算法距离公式表示为f(n)=g(n)+h(n);
f(n)表示距离函数,g(n)表示为起始点到当前点的最短距离,h(n)为预测距离,为保证A*算法能搜到最优解,用当前点到终止点的曼哈顿距离来表示。
所述第一改进A*算法为在A*算法的基础上,还具有:多条最优路径选择时,选择转折点少的路径;判断当前节点与父节点的位置关系:若所述父节点到所述当前节点的路径方向,与所述当前节点到选择的邻近节点的路径方向相反,则跳过该邻近节点,选择下一个邻近节点;所述邻近节点到所述当前节点的距离要大于邻域约束距离。
其中,多条最优路径选择时,选择转折点少的路径的具体操作为:在A*算法中,推出当前节点时,判断当前节点与父节点的位置关系(横向/纵向),若父节点到当前节点的路径方向,与当前节点到邻近节点的路径方向一致,则起始节点到邻近节点的距离为起始节点到当前节点的距离+当前节点到邻近节点的距离;若父节点到当前节点的路径方向,与当前节点到邻近节点的路径方向不一致,则起始节点到邻近节点的距离为起始节点到当前节点的距离+当前节点到邻近节点的距离+0.0001;这样可以保证开始节点到终止节点的路径存在更少的拐弯点。
而减少判断的相邻节点的具体操作为:判断当前节点与父节点的位置关系:若所述父节点到所述当前节点的路径方向,与所述当前节点到选择的邻近节点的路径方向相反,则跳过该邻近节点,选择下一个邻近节点。
由于要满足邻域约束,故邻近节点到当前节点的距离要大于邻域约束距离。具体操作为:若父节点到当前节点的路径方向,与当前节点到选择的邻近节点的路径方向相同,则无需判断邻近节点到当前节点的距离,直接将邻近点加到队列;若父节点到当前节点的路径方向,与当前节点到选择的邻近节点的路径方向不同,且当前节点到选择的邻近节点的路径距离小于邻域约束距离,则按当前节点到选择的邻近节点的路径方向往后选择一个,若邻近节点到当前节点的距离还是小于邻域约束距离,则继续往该方向选择下一个节点,直到邻近节点到当前节点的距离大于邻近距离,则把该节点加入到队列。
在本实施例中,所述第一改进A*算法的伪代码如下:
创建两个表,OPEN表保存所有已生成而未考察的节点,CLOSE表中记录已访问过的节点。OPEN用的数据结构为小顶堆,CLOSE用的数据结构为线性表。
在本实施例中,所述第一改进A*算法的路径搜索伪代码:
while(OPEN!=NULL){
从OPEN表中取f(n)最小的节点n;
if(n节点==目标节点)
break;
for(当前节点n的邻近节点X){//若不满足邻域约束距离,则往该方向选择下一个邻近节点
计算f(X)=g(X)+h(X);
if(CLOSE表中不含有X节点){
把n设置为X的父节点;
设置X的f(X);
将X插入到OPEN表中并排序;
}else if(CLOSE表中含有X节点且新f(X)<旧f(X)){
把n设置为X的父亲;
设置X的f(X);
并将X插入到OPEN表中并排序;
}
}
将n节点插入CLOSE表中;
}。
步骤S52、将所述多端线网通过顺序斯坦纳树结合第二改进A*算法进行布线。具体为:首先判断是否有同类型的所述多端线网,若有,则对所述多端线网的端点所在的分块中的所述边权进行降低,降低后的所述边权为未降之前的所述边权除以同类型所述多端线网的数量,再采用所述顺序斯坦纳树结合所述第二改进A*算法进行所述多端线网的布线。
具体操作为:在一个多端线网中,先选择两个最近的端点(曼哈顿距离)用所述第一改进A*算法进行两端线网连线,得到一条路径,接着在多端线网的端点中,选择下一个离路径最短的端点作为起始点,若该端点所在块中存在包含该端点的路径,则可以考虑利用该路径,若加入该路径使布线的线长更短,则将该路径考虑进来,否则不考虑。终止点为已布好路径的所有点,进行顺序斯坦纳树结合第二改进A*算法进行布线,依次类推,直到该多端线网的最后一个端点也布线完毕,则该多端线网布线完成。
所述第二改进A*算法为在所述第一改进A*算法的基础上,还具有:所述第二改进A*算法结束判断的条件为找到所述路径中的一个点则可截止;所述第二改进A*算法中的预测距离改为邻近点与已布线完成的所述路径中的拐弯点、以及邻近点与所述路径中到起始点最近的点的最短曼哈顿距离。
所述第二改进A*算法的伪代码为:
while(OPEN!=NULL){
从OPEN表中取f(n)最小的节点n;
if(已有路径包含起始点)
break;
for(当前节点n的邻近节点X){//若不满足邻域约束距离,则往该方向选择下一个邻近节点
计算f(X)=g(X)+h(X);//其中h(x)为路径中的拐弯点和最近点到当前点的最短距离
if(CLOSE表中不含有X节点){
把n设置为X的父节点;
设置X的f(X);
将X插入到OPEN表中并排序;
}else if(CLOSE表中含有X节点且新f(X)<旧f(X)){把n设置为X的父亲;
设置X的f(X);
并将X插入到OPEN表中并排序;
}
}
将n节点插入CLOSE表中;
}。
另外,多端线网布线算法伪代码:
步骤S6、判断所述步骤S5完成的所述布线是否违反预设的约束:
若是,则找出每一所述布线的所有路径中违背所述约束中的短路约束的关键网格点,再限制所述关键网格点后返回所述步骤S5;
若否,则进入步骤S7。
请参考图6所示,图6为本发明芯片布线优化方法中的步骤S6的流程框图。具体的,所述步骤S6包括:
步骤S61、判断所述步骤S51完成的所述布线是否违反预设的约束:
若是,则找出每一所述布线的所有路径中违背所述约束中的短路约束的关键网格点,再将所述关键网格点限制后返回所述步骤S51;
若否,则进入步骤S7。
步骤S62、判断所述步骤S52完成的所述布线是否违反预设的约束:
若是,则找出每一所述布线的所有路径中违背所述约束中的短路约束的关键网格点,再将所述关键网格点限制后返回所述步骤S52;
若否,则进入步骤S7。
请参考图7所示,图7为本发明芯片布线优化方法中的步骤S6的短路判断示意图。布图中有A1-B1和A2-B2这两条飞线,先布A2-B2这条飞线,得到红色实线路径,经这条红色路径复制到其他分块的到分块路径B1-D,此时该路径没有违背约束,在布A1-B1这条路径时,若选择直线路径,则C-B1这条路径复制到其他块内路径D-B2,与分块路径B1-D相距太近,造成短路约束,其中D为违背约束的关键网格点,这时我们将D点对应于原路径的C点设置为关键网格点,在布线时绕开该点,重新布置一条可行路径。
当遇到同样模板的块堆叠在一起时,上述短路判断解决方案会失效,这时我们需要将块内端点通过辅助路径迁移到堆叠块外,在块外进行布线。请参考图8所示,图8为本发明芯片布线优化方法中的步骤S6的块堆叠布线示意图。在进行A1-A2这条飞线布线时,在堆叠块内进行布线都会导致短路,这时,作辅助路径将端点A1迁移到点A1’,将端点A2迁移到点A2’,在块外进行A1’和A2’的布线,如图中实线路径。当遇到更大规模的堆叠块时,可以继续增加辅助路径来保证布线的可行性,如图中的虚线。
步骤S7、将每一条符合所述约束的所述路径复制到对应的其他同种模板的分块中。
请参考图9所示,图9为本发明芯片布线优化方法中的步骤S7的流程框图。每次得到一条可行的路径,需要将该路径复制到对应的其他同种模板的分块中。具体的,所述步骤S7包括:
步骤S71、寻找出符合所述约束的所述路径经过的所述分块和在每一所述分块内的所有所述路径。
步骤S72、将所述步骤71中寻找出的所述路径在每个所述分块的路径复制到所述模板的其他所述分块中,若其他所述分块中已有该路径,则跳过该分块的所述路径复制操作。
步骤S73、将包含其他所述分块的分块寻找出,再将其他所述分块的所述路径补充到该分块中。请参考图10所示,图10为本发明芯片布线优化方法中的步骤S7的内嵌分块路径示意图。具体的,若出现大分块中含有小分块的情况,需要将小分块中的路径补充到大分块中,即小分块的路径也属于大分块的路径。图中实线为块内路径,在块A/B中的路径属于A/B的块内路径,同时在块A/B中的路径也属于A的块内路径。
步骤S8、判断所有所述飞线的所述路径是否完成寻找:
若是,则将所有所述飞线的所述路径写入输出结果文件;
若否,则将当前的所述网格间距值减少后返回所述步骤S2。
为了验证本发明的芯片布线优化方法的芯片布线的效果,从比赛中获取了5组相应数据进行迭代优化。该算法用Java实现,由IDEA 2018.3.3编译。所有实验均在主频为2.9G Hz(四核)的Intel(R)Core(TM)i5-10400F上执行,内存为16.0GB,操作系统为Windows10,没有使用多线程。
针对比赛的五个案例,我们改变算法里面的所述网格间距值gap(即两相邻网格点的间距)值,得到了五组案例的路径长度和时间,详见表1:
表1、路径长度和时间比较数据。
由表1的数据表明,改变算法里面的所述网格间距值gap可以有效提高布线的效率。
综上所述,实施所述步骤S1至所述步骤S8,使得本发明的芯片布线优化方法在满足约束的情况下,寻找多实例化分块布图下的最短布线路径算法,从而使得本发明的芯片布线优化方法的芯片布线的效果好。
本发明还提供了一种软件系统,所述软件系统应用所述芯片布线优化方法。
本实施例中,所述软件系统依据同一模板下的分块块内元素相同的特点,结合本发明的芯片布线优化方法,采用JavaFX编程语言,使用开发工具IDEA,开发了多实例化分块布线系统,主要的功能模块包含初始数据展示,布线功能,约束验证、布线结果展示等。
请参考图11所示,图11为本发明软件系统的功能结构树示意图。本发明软件系统的可实现多实例化分块布线系统功能。
请参考图12所示,图12为本发明软件系统的实施例中的系统界面图。
可以理解的是,上述的芯片布线优化方法的实施例中的内容均适用于本发明的软件系统的实施例中,本发明的软件系统的实施例所具体实现的功能与上述的芯片布线优化方法的实施例相同,并且达到的有益效果与上述的芯片布线优化方法的实施例所达到的有益效果也相同。
与现有技术相比,本发明的芯片布线优化方法和软件系统通过步骤S1、获取芯片版图信息文件;步骤S2、根据所述芯片版图信息文件构建动态化网格;所述动态化网格为通过预设的网格间距值的坐标点构成;步骤S3、根据所述芯片版图信息文件将所有飞线划分为两端线网和多端线网;步骤S4、将所述步骤S3划分出的所有所述两端线网和所有所述多端线网根据预设的排序规则进行排序;步骤S5、将所述两端线网和所述多端线网按照所述步骤S4的排序进行布线;步骤S6、判断所述步骤S5完成的所述布线是否违反预设的约束:若是,则找出每一所述布线的所有路径中违背所述约束中的短路约束的关键网格点,再限制所述关键网格点后返回所述步骤S5;若否,则进入步骤S7;步骤S7、将每一条符合所述约束的所述路径复制到对应的其他同种模板的分块中;步骤S8、判断所有所述飞线的所述路径是否完成寻找:若是,则将所有所述飞线的所述路径写入输出结果文件;若否,则将当前的所述网格间距值减少后返回所述步骤S2。实施步骤S1至步骤S8在满足约束的情况下,寻找多实例化分块布图下的最短布线路径算法,从而使得本发明的芯片布线优化方法和软件系统的芯片布线的效果好。
以上内容仅为本发明的较佳实施例,对于本领域的普通技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种芯片布线优化方法,其特征在于,该方法包括如下步骤:
步骤S1、获取芯片版图信息文件;
所述步骤S1中,所述芯片版图信息文件包括在芯片版图中的路径交叉点矩形邻域的长和宽、约束条件中邻域宽度、分块的模板的形状和各分块的原点和朝向、各端点的位置和连接关系、端点的坐标、端点所在的分块以及飞线的信息;
步骤S2、根据所述芯片版图信息文件构建动态化网格;所述动态化网格为通过预设的网格间距值的坐标点构成;
所述步骤S2包括:
步骤S21、构造不规则网格;具体为:获得每个端点的坐标、实例化分块的顶点的坐标以及分别与所述顶点的上偏移、下偏移、左偏移、右偏移的点的坐标,再记录各所述坐标的分块信息,并将各所述坐标对应到所述分块信息中分块的模板的相对位置,再将各所述坐标对应到该模板中其他分块的坐标;
步骤S22、判断两个相邻坐标是否超过所述网格间距值:
若是,则在该两个相邻坐标之间每间隔一个所述网格间距值插入一个坐标点,并将该坐标点的位置记录在各所述分块上,同时在同种模板的其他分块根据记录有坐标点位置的分块的朝向插入相对位置相同的另一个坐标点,再将所有所述坐标点作为划分网格的基准,建立所述动态化网格,再进入步骤S23;
若否,则进入所述步骤S23;
步骤S23、将所述不规则网格作进一步处理;所述进一步处理包括:
步骤S231、设置边权;具体为设置相邻网格点之间的权重;
步骤S232、将同一所述模板下的各所述分块中所包含的网格点数量不相等的相邻点的路径距离标记为无穷大,以用于在布线时避开上述同一所述模板下的各所述分块中所包含的网格点数量不相等的相邻点的路径;
步骤S3、根据所述芯片版图信息文件将所有飞线划分为两端线网和多端线网;
步骤S4、将所述步骤S3划分出的所有所述两端线网和所有所述多端线网根据预设的排序规则进行排序;
步骤S5、将所述两端线网和所述多端线网按照所述步骤S4的排序进行布线;
步骤S6、判断所述步骤S5完成的所述布线是否违反预设的约束:
若是,则找出所述布线的所有路径中违背所述约束中的短路约束的关键网格点,再限制所述关键网格点后返回所述步骤S5;
若否,则进入步骤S7;
步骤S7、将每一条符合所述约束的路径复制到对应的其他同种模板的分块中;
步骤S8、判断所述所有路径是否完成寻找:
若是,则将所有所述飞线的所述路径写入输出结果文件;
若否,则将当前的所述网格间距值减少后返回所述步骤S2。
2.根据权利要求1所述的芯片布线优化方法,其特征在于,所述步骤S4中,线网包括所述两端线网和所述多端线网,所述排序规则包括:比较并判断同类型的线网的数量:若其中同类型的所述线网的数量多,则该类型线网优先布线;若同类型的所述线网的数量一致,则进一步比较该类型的所述线网的飞线数量,并将所述飞线数量多的所述线网进行优先布线;若所述线网的飞线数量一致,则进一步比较所述线网中的端点所围成的包络矩形的面积,并将所述包络矩形面积大的所述线网进行优先布线;最后比较所述两端线网,所述两端线网中两端点之间的曼哈顿距离较大的线网优先布线。
3.根据权利要求2所述的芯片布线优化方法,其特征在于,所述步骤S5包括:
步骤S51、将所述两端线网通过第一改进A*算法进行布线;具体为:首先判断是否有同类型的所述两端线网,若有,则对所述两端线网的端点所在的分块中的所述边权进行降低,降低后的所述边权为未降之前的所述边权除以同类型所述两端线网的数量,再找到两个所述两端线网中的端点之间的最短路径,采用所述第一改进A*算法将所述不规则网格进行布线,若两个所述端点所在的分块中存在包含该端点的路径,则判断该路径的距离与两个所述端点的距离:若该路径布线距离短,则选择该路径;若否,则选择两个所述端点的路径;
步骤S52、将所述多端线网通过顺序斯坦纳树结合第二改进A*算法进行布线;具体为:首先判断是否有同类型的所述多端线网,若有,则对所述多端线网的端点所在的分块中的所述边权进行降低,降低后的所述边权为未降之前的所述边权除以同类型所述多端线网的数量,再采用所述顺序斯坦纳树结合所述第二改进A*算法进行所述多端线网的布线。
4.根据权利要求3所述的芯片布线优化方法,其特征在于,所述第一改进A*算法为在A*算法的基础上,还具有:多条最优路径选择时,选择转折点少的路径;判断当前节点与父节点的位置关系:若所述父节点到所述当前节点的路径方向,与所述当前节点到选择的邻近节点的路径方向相反,则跳过该邻近节点,选择下一个邻近节点;所述邻近节点到所述当前节点的距离要大于邻域约束距离。
5.根据权利要求4所述的芯片布线优化方法,其特征在于, 所述第二改进A*算法为在所述第一改进A*算法的基础上,还具有:所述第二改进A*算法结束判断的条件为找到所述路径中的一个点则可截止;所述第二改进A*算法中的预测距离改为邻近点与已布线完成的所述路径中的拐弯点、以及邻近点与所述路径中到起始点最近的点的最短曼哈顿距离。
6.根据权利要求5所述的芯片布线优化方法,其特征在于,所述步骤S6包括:
步骤S61、判断所述步骤S51完成的所述布线是否违反预设的约束:
若是,则找出所述布线的所有路径中违背所述约束中的短路约束的关键网格点,再将所述关键网格点限制后返回所述步骤S51;
若否,则进入步骤S7;
步骤S62、判断所述步骤S52完成的所述布线是否违反预设的约束:
若是,则找出每一所述布线的所有路径中违背所述约束中的短路约束的关键网格点,再将所述关键网格点限制后返回所述步骤S52;
若否,则进入步骤S7。
7.根据权利要求1所述的芯片布线优化方法,其特征在于,所述步骤S7包括:
步骤S71、寻找出符合所述约束的所述路径经过的所述分块和在每一符合所述约束的所述路径经过的所述分块内的所有所述路径;
步骤S72、将所述步骤S71中寻找出的所述路径在每个所述分块的路径复制到所述模板的其他所述分块中,若其他所述分块中已有寻找出的所述路径在每个所述分块的路径,则跳过该分块的所述路径复制操作;
步骤S73、将包含其他所述分块的分块寻找出,再将其他所述分块的所述路径补充到该分块中。
8.一种软件系统,其特征在于,所述软件系统应用如权利要求1-7中任意一项所述的芯片布线优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310040166.5A CN116070575B (zh) | 2023-01-12 | 2023-01-12 | 一种芯片布线优化方法及软件系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310040166.5A CN116070575B (zh) | 2023-01-12 | 2023-01-12 | 一种芯片布线优化方法及软件系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116070575A CN116070575A (zh) | 2023-05-05 |
CN116070575B true CN116070575B (zh) | 2023-08-15 |
Family
ID=86169411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310040166.5A Active CN116070575B (zh) | 2023-01-12 | 2023-01-12 | 一种芯片布线优化方法及软件系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116070575B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116402010B (zh) * | 2023-05-10 | 2023-11-21 | 南京邮电大学 | 基于斯坦纳树算法的多实例化分块顶层布线方法 |
CN117634414B (zh) * | 2024-01-26 | 2024-03-29 | 上海合见工业软件集团有限公司 | 不同元器件之间的飞线互连方法、电子设备及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1687934A (zh) * | 2005-05-13 | 2005-10-26 | 清华大学 | 多端线网插入缓冲器优化时延的标准单元总体布线方法 |
US7117468B1 (en) * | 2002-01-22 | 2006-10-03 | Cadence Design Systems, Inc. | Layouts with routes with different spacings in different directions on the same layer, and method and apparatus for generating such layouts |
CN1963827A (zh) * | 2006-12-08 | 2007-05-16 | 清华大学 | 基于多步长迷宫算法的模拟集成电路自动布线方法 |
CN102054068A (zh) * | 2009-10-30 | 2011-05-11 | 新思科技(上海)有限公司 | 芯片设计中的线网分配方法与装置 |
CN103488816A (zh) * | 2013-09-02 | 2014-01-01 | 清华大学 | 模拟电路的多层精确匹配布线方法 |
CN111368493A (zh) * | 2018-12-26 | 2020-07-03 | 杭州广立微电子有限公司 | 一种基于稀疏网格的自动版图布线生成方法 |
CN112883682A (zh) * | 2021-03-15 | 2021-06-01 | 北京华大九天科技股份有限公司 | 集成电路的总体布线方法及设备和存储介质 |
CN113221501A (zh) * | 2021-04-16 | 2021-08-06 | 上海国微思尔芯技术股份有限公司 | 用于平衡电路不同划分间互联数的方法及可读存储介质 |
CN113591430A (zh) * | 2021-08-04 | 2021-11-02 | 北京华大九天科技股份有限公司 | 检测版图布线线网违例的方法 |
CN115270693A (zh) * | 2022-08-04 | 2022-11-01 | 福州芯智联科技有限公司 | 基于动态网格的135度pcb区域布线方法 |
CN115392178A (zh) * | 2022-08-10 | 2022-11-25 | 广东工业大学 | 芯片布局方法、芯片布局设备和计算机可读存储介质 |
CN115496030A (zh) * | 2022-11-15 | 2022-12-20 | 北京大学 | 可处理电学和几何约束的模拟电路布线自动化方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8042085B2 (en) * | 2008-09-08 | 2011-10-18 | Atrenta, Inc. | Method for compaction of timing exception paths |
US8448123B2 (en) * | 2010-10-22 | 2013-05-21 | International Business Machines Corporation | Implementing net routing with enhanced correlation of pre-buffered and post-buffered routes |
-
2023
- 2023-01-12 CN CN202310040166.5A patent/CN116070575B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7117468B1 (en) * | 2002-01-22 | 2006-10-03 | Cadence Design Systems, Inc. | Layouts with routes with different spacings in different directions on the same layer, and method and apparatus for generating such layouts |
CN1687934A (zh) * | 2005-05-13 | 2005-10-26 | 清华大学 | 多端线网插入缓冲器优化时延的标准单元总体布线方法 |
CN1963827A (zh) * | 2006-12-08 | 2007-05-16 | 清华大学 | 基于多步长迷宫算法的模拟集成电路自动布线方法 |
CN102054068A (zh) * | 2009-10-30 | 2011-05-11 | 新思科技(上海)有限公司 | 芯片设计中的线网分配方法与装置 |
CN103488816A (zh) * | 2013-09-02 | 2014-01-01 | 清华大学 | 模拟电路的多层精确匹配布线方法 |
CN111368493A (zh) * | 2018-12-26 | 2020-07-03 | 杭州广立微电子有限公司 | 一种基于稀疏网格的自动版图布线生成方法 |
CN112883682A (zh) * | 2021-03-15 | 2021-06-01 | 北京华大九天科技股份有限公司 | 集成电路的总体布线方法及设备和存储介质 |
CN113221501A (zh) * | 2021-04-16 | 2021-08-06 | 上海国微思尔芯技术股份有限公司 | 用于平衡电路不同划分间互联数的方法及可读存储介质 |
CN113591430A (zh) * | 2021-08-04 | 2021-11-02 | 北京华大九天科技股份有限公司 | 检测版图布线线网违例的方法 |
CN115270693A (zh) * | 2022-08-04 | 2022-11-01 | 福州芯智联科技有限公司 | 基于动态网格的135度pcb区域布线方法 |
CN115392178A (zh) * | 2022-08-10 | 2022-11-25 | 广东工业大学 | 芯片布局方法、芯片布局设备和计算机可读存储介质 |
CN115496030A (zh) * | 2022-11-15 | 2022-12-20 | 北京大学 | 可处理电学和几何约束的模拟电路布线自动化方法及系统 |
Non-Patent Citations (1)
Title |
---|
ICP与射频源的匹配网络的设计与实现;张浩等;烟台大学学报;第1-11页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116070575A (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116070575B (zh) | 一种芯片布线优化方法及软件系统 | |
US6507941B1 (en) | Subgrid detailed routing | |
US8037441B2 (en) | Gridded-router based wiring on a non-gridded library | |
Pan et al. | FastRoute 2.0: A high-quality and efficient global router | |
Li et al. | Routability-driven placement and white space allocation | |
US20070101303A1 (en) | Method and apparatus for integrated circuit layout optimization | |
US9201999B1 (en) | Integrated circuit floorplan having feedthrough buffers | |
US9003344B2 (en) | Generating pattern-based estimated RC data with analysis of route information | |
US8984465B1 (en) | Methods, systems, and articles of manufacture for automatically assigning track patterns to regions for physical implementation of an electronic design | |
US9251299B1 (en) | Methods, systems, and articles of manufacture for associating track patterns with rules for electronic designs | |
CN111914507B (zh) | 一种快速单磁通量子rsfq电路布线方法和装置 | |
US9208273B1 (en) | Methods, systems, and articles of manufacture for implementing clone design components in an electronic design | |
WO1991006061A1 (en) | Improved routing system and method for integrated circuits | |
WO2001065424A2 (en) | Device level layout optimization in electronic design automation | |
US20060064653A1 (en) | Automatic layout yield improvement tool for replacing vias with redundant vias through novel geotopological layout in post-layout optimization | |
US6480996B1 (en) | System and method for transposing wires in a circuit design | |
JP2006301961A (ja) | 半導体集積回路の自動フロアプラン手法 | |
Tian et al. | Triple patterning aware detailed placement with constrained pattern assignment | |
US7093220B2 (en) | Method for generating constrained component placement for integrated circuits and packages | |
CN112560389A (zh) | 一种基于轨道分配的实用详细布线方法 | |
CN115526140A (zh) | 一种考虑先进制程约束和单元移动的全局布线方法 | |
US9165103B1 (en) | Methods, systems, and articles of manufacture for tessellating and labeling routing space for routing electronic designs | |
US11983476B2 (en) | Technology-independent line end routing | |
US11966682B2 (en) | Fast independent checker for extreme ultraviolet (EUV) routing | |
US20230306177A1 (en) | Using topological and geometric routers to produce curvilinear routes |
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 |