一种布线轨道分配方法、电子设备及计算机可读存储介质与流程

文档序号:25215853发布日期:2021-05-28 14:13阅读:59来源:国知局
一种布线轨道分配方法、电子设备及计算机可读存储介质与流程

本发明涉及电子设计自动化(electronicdesignautomation,eda)技术领域,特别是涉及一种布线轨道分配方法。



背景技术:

近年来,随着科技的高速发展,人们对集成电路等高科技产业的认知和重视度正在逐步提升,而集成电路中的芯片制造也在随着时代的发展和社会的需要进入了纳米时代。芯片的集成度在逐步提高,在一块芯片上所需要集成的电路元件越来越多,再加上存储空间的局限性和封装技术工艺的限制,对超大规模集成电路(verylargescaleintegration,以下简称vlsi)设计提出了更高的要求。

布线是超大规模集成电路设计中最耗时,也是最重要的环节,他对芯片的功耗,可布线性,和良率有着极其重要的影响。而先进制程下的超大规模芯片大小和复杂物理设计的前提使得布线问题变得更加具有挑战性。由于布线问题的复杂性,通常将其分为全局布线,轨道分配,详细布线这三个阶段。在全局布线阶段所有的布线区域被划分为矩形网格单元,并使用粗粒度的3d布线图去表示布线的结果。但是,由于全局布线无法准确捕获布线结果中的局部拥塞区域,会对后面的详细布线问题带来繁琐的工作量,因此,轨道分配方法则是将这些全局布线结果分配到给定数量和位置的对应轨道上。最后,详细布线则是在重新分配位置后的全局结果上按照线网的连接关系将他们与引脚进行连接并满足一些工艺的设计约束。

当前工具中,许多布线器是没有轨道分配的操作,而是直接在获得全局布线的基础上进行详细布线,这种方法极大的浪费布线空间并增加了布线时长,所以一个成熟的布线器需要在进行详细布线阶段之前增加一种有效的轨道分配方法,从而可以达到后期在详细布线中优化布线效果的作用。

在采用轨道分配进行可布线性的评估时,将所有布线结果的矩形块分配给不同层的对应轨道,以使产生的违规尽可能小。而由于在布线过程中需要经常评估不同阶段的可布线性来调整布线结果,因此在考虑优化总线长的同时考虑时延问题也是一个关键问题。



技术实现要素:

为了解决现有技术存在的不足,本发明的目的在于提供一种布线轨道分配方法、电子设备及计算机可读存储介质,采用匈牙利算法,将不同层上的所有布线结果划分到对应的布线单元内后再分配到合适的轨道上,从而减少布线拥塞和更好优化布线区域。

为实现上述目的,本发明提供的一种布线轨道分配方法,包括以下步骤:

读取布线的基本参数信息;

根据所述基本参数信息划分每个布线层的走线方向为布线单元行或列,获取每个布线单元行或列内的全局布线结果;

计算每个所述全局布线结果和分配轨道的分配代价值;

根据计算的轨道分配代价值,调用匈牙利算法进行轨道分配。

进一步地,所述根据所述基本参数信息划分每个布线层的走线方向为布线单元行或列,获取每个布线单元行或列内的全局布线结果的步骤,还包括,在所述布线单元中初始化轨道网格,读取数据库中所述布线单元的引脚信息、障碍物、全局布线结果并保存到对应的单元中,获取并保存上下相邻层的全局布线结果以及障碍物的信息。

进一步地,还包括,对于每一个布线单元行,待分配的对象为布线单元行内部的全局布线结果,可分配的容器为布线单元行内的轨道网格,每段的全局布线结果放置在一个轨道上,同一条轨道上可放置多个布线结果。

进一步地,根据不同成分类型的全局布线结果区分每段布线结果与上下层的布线结果以及与引脚的连接关系。

进一步地,所述计算每个所述全局布线结果和分配轨道的分配代价值的步骤,还包括,

遍历每个全局布线结果的成分类型,对于不同类型的成分,计算当前分配的轨道和成分中所存储的轨道距离是不一样的,将成分的计算结果增加到分配的代价值中;

根据当前的分配的轨道上存在布线障碍、与不同线网的其他预布线结果之间有大于0的重叠长度,以及在当前分配的轨道上存在其他线网的引脚且这个布线结果经过这些引脚,增加相应的分配代价值。

进一步地,所述根据计算的轨道分配代价值,调用匈牙利算法进行轨道分配的步骤,还包括,根据计算的轨道分配代价值,构造带有权重的二分图,对于每个布线单元行调用匈牙利算法获得一个最优的轨道分配结果。

进一步地,还包括,

将所述布线单元内的所有全局布线结果合成点集u={ui1,ui2,,,,uim},将所述布线单元内的所有布线轨道合成点集v={vi1,vi2,,,,vin},其中,uij为第i个布线单元行中的第j个布线结果,vin为第i个布线单元行中的第n个轨道;

构建基于全局布线结果的带权二分图g=(u,v),分配代价值wjn=weight(uij,vin),wjn为将uij分配给vin的代价值。

进一步地,还包括,将带权重的二分图描述为:

对于在单个布线单元行内的所有布线结果,根据匈牙利算法计算使所有布线结果在经过轨道分配后的代价之和最小的布线结果。

为实现上述目的,本发明还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的布线轨道分配方法的步骤。

为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的布线轨道分配方法的步骤。

本发明的布线轨道分配方法、电子设备及计算机可读存储介质,具有以下有益效果:

1)将各种违背设计约束的可能布线结果与数学二分匹配图相结合,可以考虑所有的布线可能。

2)支持多种复杂情况线网的轨道分配,有助于提高对布线空间的使用。

3)对于重叠线网的拆解,能够有效的减少drc。

4)对于违背约束的线网的拆除,能够有效减少布线拥塞区域,提高芯片的可布线性。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:

图1为根据本发明的布线轨道分配方法流程图;

图2为根据本发明的实施例一水平布线金属层示意图;

图3为根据本发明的实施例一布线单元行示意图;

图4为根据本发明的实施例一布线单元行内全局布线结果和对应轨道的带权二分图;

图5为根据本发明的实施例一存在设计约束冲突的示意图;

图6为根据本发明的实施例一符合设计约束的示意图;

图7为根据本发明的实施例一轨道分配时运用匈牙利算法的流程示意图;

图8为根据本发明的实施例一布线线网示意图;

图9为根据本发明的实施例一布线结果示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1为根据本发明的布线轨道分配方法流程图,下面将参考图1,对本发明的布线轨道分配方法进行详细描述。

首先,在步骤101,读取布线的基本参数信息,即所有的布线层和总体布线后的所有布线结果。

在步骤102,对每个布线层按照走线方向划分为一系列水平或竖直的布线单元行或列,然后通过查找获得每个布线单元行或列内的全局布线结果。

优选地,在这些布线单元中初始化轨道网格,并将这些布线单元内的所有引脚信息、障碍物、全局布线结果等通过数据库读取并保存到对应的单元中,同时获取并保存了上下相邻层的全局布线结果以及障碍物的信息。

优选地,对于每一个布线单元行,所有待分配的对象为布线单元行内部的全局布线结果,可分配的容器为这些布线单元行内的轨道网格,每段的全局布线结果只能放置在一个轨道上,而在同一条轨道上可以放置多个布线结果。

优选地,通过不同类型的成分来区分每段布线结果与上下层的布线结果以及与引脚的连接关系。

本发明实施例中,不同类型的成分可以分为3种类型:

1)表示该走线与下一层布线层上的走线有连接关系;

2)表示该走线与上一层布线层上的走线有连接关系;

3)表示该走线与芯片的引脚或者芯片内部某个实例单元上的引脚有连接关系。

在步骤103,对每个布线结果和对应的某个轨道分配进行计算分配费用。

优选地,初始的分配费用是0,首先遍历每个全局布线结果的成分的类型,对于不同类型的成分,计算当前分配的轨道和成分中所存储的轨道距离是不一样的,此时分配费用需要先加上这个成分的计算结果(即为默认的某一个起始轨道,存储的起始轨道距离设为0);然后若在当前的分配的轨道上存在布线障碍、与不同线网的其他预布线结果之间有>0的重叠长度、以及在当前分配的轨道上存在其他线网的引脚且这个布线结果经过这些引脚,则加上相应的惩罚权重。该步骤中,通过计算在二分图中每次分配后的权重代价,可以实时更新拥塞区域,并在后处理中达到减少布线拥塞的目的。

在步骤104,根据计算的轨道分配费用,调用匈牙利算法进行轨道分配。

优选地,根据计算的轨道分配费用,构造一个带有权重的二分图,对于每个布线单元行调用匈牙利算法获得一个最优的轨道分配结果。

本实施例中,将该布线单元内的所有全局布线结果都看做一个个点并合成点集u,再将该单元内的所有布线轨道也看做一个个点合成点集v;由于每个布线结果均可以放在所有的轨道上,但对应的分配代价不同,因此每条连线所对应的代价cost则是经过上列各种代价计算后的值(若在当前的分配的轨道上的布线结果与布线障碍物有重叠区域、该布线结果与不同线网的其他预布线结果之间有>0的重叠长度、以及在当前分配的轨道上存在其他线网的引脚且这个布线结果经过这些引脚,则我们通过添加不同大小的惩罚权重,然后与初始的代价值相加获得更新后的历史代价)。该步骤中,通过对不同线网之间的重叠和违背设计约束的布线结果用较大的代价进行计算和标记,为后期的后处理提供了具体目标,由此在轨道分配中已经可以实现对于一些布线结果的初步优化。

优选地,在布线单元内将所有的布线结果都找到对应的轨道进行分配使得选择的所有连线上的代价之和最小,利用数学模型来进一步描述基于全局布线结果的一个带权二分图g=(u,v)。u={ui1,ui2,,,,uim},v={vi1,vi2,,,,vin},wjn=weight(uij,vin),其中uij为第i个布线单元行中的第j个布线结果,vin为第i个布线单元行中的第n个轨道,wjn是将uij分配给vin的代价值。

优选地,对于带权重的二分图,可以描述为:

从上式可以得出,对于在单个布线单元行内的所有布线结果,我们的问题是用匈牙利算法求得一个使得所有布线结果在经过轨道分配后的代价之和最小。

本发明的目的在于提供一种布线轨道分配方法。将不同层上的轨道布线分配问题划分成每个布线单元行内的轨道布线子问题,达到了简化整个问题求解的复杂度。然后我们将实际问题与图论相结合,通过构建带权的二分图模型,对每个布线单元行内部的所有布线结果统一建模,然后建模成二分图后用匈牙利算法进行求解;通过对每个布线单元行内部的所有布线结果统一建模,并且将设计规则检查的问题用数学的代价计算来进行标记和后期的优化,在满足代价最小化的情况下得到各个布线的最佳放置轨道方案。通过该方法,可以有效地将不同层上的所有布线结果在经过划分到对应的布线单元内后再分配到合适的轨道上,从而达到减少布线拥塞和更好优化布线区域的目的。

下面结合一具体实施例对本发明的布线轨道分配方法做进一步的说明。

图2表示为布线方向为水平的金属层1,该金属层共有4个水平单元行,且在第二个布线单元行中共有3个全局布线结果。

图3表示为某个布线单元行以及在其内部的一些引脚、障碍物和一些全局布线结果。

图4表示为一个描述在某个布线单元行内的所有全局布线结果以及对应的轨道的带权二分图,在该图中,每条连线的代价是该布线结果放在某个轨道后计算的代价值,二分图中左边的是全局布线结果的集合,右边是该布线单位行内所有的轨道集合。

图5和图6表示为两种布线结果。在图5中,c和d的布线结果存在设计约束的冲突,因此我们通过匈牙利算法获得另外一个较优的解,如图6所示。

图7为在进行轨道分配时运用匈牙利算法的流程图。

(1)读取线网有关参数,显示的是所有需要布线的线网以及u型要的读入数据,包括障碍物和全局布线内容,如图8所示;

(2)启动轨道分配命令,在经过轨道分配后的布线结果如图9所示。

本发明的一个实施例中,还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的布线轨道分配方法的步骤。

本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的布线轨道分配方法的步骤。

本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1