本发明涉及vlsi设计自动化技术领域,特别是涉及一种超大规模集成电路(vlsi)多线网(net)的详细布线拥塞解决方法。
背景技术:
在vlsi详细布线阶段,需要确定每条net的具体走线。布线结果的好坏直接影响整个芯片的性能,该问题是一个np-完全问题。近年来,随着集成电路制造工艺的迅速发展,芯片集成度和复杂性不断增加。通常一次详细布线后往往会造成局部的拥塞,导致很多net不符合连接性约束,如不满足short(重叠)约束、open(连通)约束,以及不符合设计规则检测(drc)约束,如spacing(间距)约束等。因此在详细布线阶段往往需要进行多次的布线,花费大量的计算时间并且布线的质量不够理想。因此,设计能够有效处理vlsi多线网详细布线的拥塞解决方法已成为vlsi设计自动化的关键问题之一。
人们提出了一些拥塞解决方法。有一类是基于多商品流和整数线性规划的布线模型,这类方法往往非常耗时,甚至无法求解。因此,亟待出现一种高效的用于vlsi多线网详细布线的拥塞解决方法。
技术实现要素:
为了解决现有技术存在的不足,本发明的目的在于提供一种基于拥塞协商的拆线重布方法、设备及可读存储介质,能够利用历史布线信息指导解决详细布线阶段的拥塞问题,将之前布线结果中拥塞的线网逐渐散开,从而解决拥塞,获取高质量的布线结果。
为实现上述目的,本发明提供的一种基于拥塞协商的拆线重布方法,包括以下步骤,
输入版图信息,根据多波扩展算法构造出所有线网的斯坦纳树;
根据布线生成的路径记录当前布线代价,根据标记设计规则检测的类型惩罚标记边,增加标记边上网格点的拥塞代价;
拆除已有布线,根据更新代价值进行多波扩展算法迭代重新布线;
满足迭代次数或drc清零后布线结束。
进一步地,所述输入版图信息,根据多波扩展算法构造出所有线网的斯坦纳树的步骤,进一步包括,
读入布线输入版图信息中所有线网的端口图形,包括端口图形的大小、层次以及各层的间隔规则;
根据网格将布线区域构造为行乘列的棋盘地图结构,所述端口图形分布在所述棋盘地图内;
根据kruscal和dijkstra的多波扩展算法为每一个所述端口图形维护一个优先队列,选择最小代价的结点进行扩展。
进一步地,所述根据kruscal和dijkstra的多波扩展算法为每一个所述端口图形维护一个优先队列,选择最小代价的结点进行扩展的步骤,进一步包括,根据最小代价结点依次连接两个最近的端口图形,当扩展结点穿越两个相邻的矩形块时,构成一段布线路径。
进一步地,所述根据布线生成的路径记录当前布线代价,根据标记设计规则检测的类型惩罚标记边,增加标记边上网格点的拥塞代价的步骤,进一步包括,
获取当前设计规则检测的标记类型,若产生重叠约束类型,增加当前标记边结点拥塞代价;
若产生间距约束类型,将标记边向拥塞方向膨胀二分之一线宽后,增加相应标记边结点拥塞代价。
进一步地,所述拆除已有布线,根据更新代价值进行多波扩展算法迭代重新布线的步骤,进一步包括,获取更新代价值,根据多波扩展算法生成对应的解结构进行布线,扩展时判断是否存在拥塞代价,若存在则返回所述根据布线生成的路径记录当前布线代价,根据标记设计规则检测的类型惩罚标记边,增加标记边上网格点的拥塞代价的步骤。
进一步地,所述满足迭代次数或drc清零后布线结束的步骤,进一步包括,清空当前代价,检查布线结果并输出线长数据。
为实现上述目的,本发明还提供一种布线设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的基于拥塞协商的拆线重布方法步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的基于拥塞协商的拆线重布方法步骤。
本发明的一种基于拥塞协商的拆线重布方法、设备及可读存储介质,具有以下有益效果:
1)采用多阶段拆线重布策略,在新一轮的布线阶段中,利用原来的布线结果,对拥塞区域违反约束的网格边进行惩罚,指导新一轮布线。从而将之前布线结果中拥塞的线网逐渐散开,解决拥塞,获取高质量的布线结果。
2)在多net详细布线阶段中,能够高效地减少线网的拥塞,使线网满足相关布线约束,将布线结果中拥挤的线网散开,缓解线网拥塞程度,同时尽可能地减少布线线长。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的基于拥塞协商的拆线重布方法流程图;
图2为根据本发明的实施例一多波扩展算法示意图;
图3为根据本发明的实施例一多net详细布线的端口初始分布示意图;
图4为根据本发明的实施例一多net详细布线初次布线结果示意图;
图5为根据本发明的实施例一多net详细布线拆线重布解决拥塞后的结果示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为根据本发明的基于拥塞协商的拆线重布方法流程图,下面将参考图1,对本发明的基于拥塞协商的拆线重布方法进行详细描述。
首先,在步骤101,读入布线端口信息,生成待连接的端口图形。
优选地,读入布线输入文件中的所有线网的端口图形,包括端口图形的大小、层次,以及各层的间隔规则等。
本实施例中,根据几何约束,启动多net布线命令,读取待连接的端口图形,将端口图形的大小和层次显示在gui界面上。
在步骤102,根据布线相关信息构建网格地图。
优选地,使用网格将整个布线区域构造为一个行乘列的棋盘地图结构,使所有的端口图形都分布在棋盘地图内。
本实施例中,根据布线的相关参数构建网格地图,网格地图由长乘宽乘高的三维结构组成,每个net的端口图形及布线路径都由网格地图上的一个矩形表示。
在步骤103,使用多波扩展算法构造初始解结构。
优选地,使用基于kruscal和dijkstra算法的多波扩展算法生成一个初始解,该算法为每一个端口图形维护一个优先队列,每次都选择最小代价的结点进行扩展。
本实施例中,初始状态时,所有端口图形还未连接,以每个端口图形和棋盘地图重合的一个或多个格子作为起始点。使用基于kruscal和dijkstra算法进行扩展,在扩展过程中为每个端口图形维护一个优先队列,每次扩展优先弹出最小代价结点,根据最小代价结点依次连接两个最近的端口图形,当扩展结点穿越两个相邻的矩形块时,就构成了一段布线路径。由此设计了多波扩展算法高效构造布线初始解。
在步骤104,根据布线生成的路径记录当前布线代价,并根据产生drc所对应的violation区域内的格点进行拥塞代价惩罚。
优选地,采用基于拥塞协商的多阶段拆线重布策略。在每个阶段中,根据历史布线拥塞信息,动态更新布线网格图中格子的布线代价。使得在新一轮布线迭代中,在最小化布线线长的同时,绕开拥塞区域。
优选地,在一次迭代布完所有net后根据布线生成路径记录当前代价,并根据标记drc的一个或多个格子进行惩罚,更新布线资源。
优选地,根据布线生成路径记录当前代价,并根据drc的类型对相应的矩形violation进行惩罚,包括,获取当前drc的标记类型,若产生shortdrc类型,则把对应violation矩形内的网格增加拥塞代价,即将当前标记边结点拥塞代价增加;若产生spacedrc类型,则把对应violation矩形向产生拥塞的方向进行膨胀二分之一线宽,并增加膨胀后矩形内的网格拥塞代价,即将标记边向拥塞方向膨胀二分之一线宽,并将相应的标记边结点拥塞代价增加。
在步骤105,将所有net进行拆线,并重新使用多波扩展算法构造解结构进行布线。
优选地,在结点进行扩展时,若结点存在拥塞代价则为扩展的结点的代价增加一个惩罚值。
本实施例中,将所有net进行拆线,并使用多波扩展算法生成对应的解结构进行布线,在扩展时判断是否有拥塞代价,若存在拥塞代价则在现有代价上增加一定代价。
在步骤106,重复步骤104至步骤105直至drc清零或满足设置迭代次数后退出。
在步骤107,输出布线结果。
优选地,清空当前代价,检查布线结果并输出相关线长数据。
本实施例中,将布线后的结果显示在gui界面上。
下面结合一具体实施例对本发明的基于拥塞协商的拆线重布方法做进一步的说明。
图2为根据本发明的实施例一多波扩展算法示意图,本发明一实施例中,输入版图信息,使用基于kruscal和dijkstra的多波扩展算法构造出所有线网的斯坦纳树,布线端口每次都选择最小代价的结点进行扩展布线。如图2(a)所示,根据初始解迭代的布线策略为s1—b—d1、s2—b—d2、s3—b—d3,布线拥塞,首次迭代失败,记录当前代价,根据drc的类型对相应的矩形violation进行惩罚,增加s1—b—d1、s2—b—d2、s3—b—d3布线结点的拥塞代价,更新布线资源,将所有net进行拆线,并重新使用多波扩展算法构造解结构进行布线,如图2(b)所示,第二次迭代布线后s2—b—d2、s3—b—d3布线拥塞,记录当前代价,根据drc的类型对相应的矩形violation进行惩罚,增加s2—b—d2、s3—b—d3布线结点的拥塞代价,更新布线资源,将所有net进行拆线,并重新使用多波扩展算法构造解结构进行布线,如图2(c)所示,第三次迭代布线成功后退出。
图3为根据本发明的实施例一多net详细布线的端口初始分布示意图。
本发明一实施例中,读取多net端口信息和障碍物信息参数,显示在gui界面上,如图3所示。
图4为根据本发明的实施例一多net详细布线的初次布线结果示意图。
本发明一实施例中,启动多net详细布线命令,开始布线,布线结果如图4所示。
图5为根据本发明的实施例一多net详细布线拆线重布解决拥塞后的结果示意图。
本发明提出了一种基于拥塞协商的拆线重布方法,采用多阶段拆线重布策略,在新一轮的布线阶段中,利用原来的布线结果,对拥塞区域违反约束的网格边进行惩罚,指导新一轮布线。在多net详细布线阶段中,应用本发明所述的基于拥塞协商的拆线重布方法,能够高效地减少线网的拥塞,使线网满足相关布线约束,将布线结果中拥挤的线网散开,缓解线网拥塞程度,同时尽可能地减少布线线长。
本发明的一个实施例中,还提供一种布线设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的基于拥塞协商的拆线重布方法的步骤。
本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的基于拥塞协商的拆线重布方法的步骤。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。