CN110147632B - 一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法 - Google Patents
一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法 Download PDFInfo
- Publication number
- CN110147632B CN110147632B CN201910465654.4A CN201910465654A CN110147632B CN 110147632 B CN110147632 B CN 110147632B CN 201910465654 A CN201910465654 A CN 201910465654A CN 110147632 B CN110147632 B CN 110147632B
- Authority
- CN
- China
- Prior art keywords
- track
- bus
- wiring
- tracks
- cost
- 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.)
- Expired - Fee Related
Links
Images
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/392—Floor-planning or layout, e.g. partitioning or placement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法,首先进行预处理,将非均匀轨道结构与障碍物统一起来;接着将拓扑考虑的单个总线布线作为一个不可分割的流问题,并将其集成到基于协商的全局布线中,以确定每个总线所需的布线区域;然后在步骤S2的指导下,将轨道分配到总线的各个部分,降低后续步骤中维护相同布线拓扑的难度;最后进行详细布线,以连接每个总线的各个部分。本发明采用工业界的测试例子对本发明所提出的算法进行测试,实验结果表明,本发明提出的算法可以快速地得到一个高质量的结果。
Description
技术领域
本发明涉及深度纳米布线技术领域,特别是一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法。
背景技术
随着先进技术节点进入深度纳米时代,总线布线变得非常具有挑战性,因为:(1)每个总线上的所有位都必须以相同的拓扑结构进行布线;(2)不均匀、复杂的布线轨道结构;(3)需要避开障碍物。特别是所有属于同一总线的位必须以相同的布线拓扑进行布线的这一约束,使得之前的布线器并不适用于当前拓扑匹配总线布线。
以往的总线布线工作主要集中在印刷电路板(PCB)的设计上。例如,Tian等人考虑了总线布线中的延迟匹配约束,以满足多个时序要求。Yan等人.和Zhang等人处理了长度匹配总线布线,使得同一总线上所有网的网线长度都在指定范围内。然而,这些工作都没有考虑到为同一总线上的所有位维护相同拓扑的约束。因此,研究一种有效的拓扑匹配总线布线算法是十分必要的。
如果满足以下四个条件,则认为总线上的位具有相同的拓扑结构:(1)所有位具有相同的段数;(2)每一段上所有位的连线在相同的层上;(3)每一段上所有位的路线朝着同一个方向;(4)每一段中所有位所对应的连线的相对顺序与引脚的顺序相同或相反。
图1列举了一个具有相同拓扑结构的总线和不均匀布线轨道结构。布线轨道的设计是为了使得布线器能够满足各种设计要求,帮助掩码着色,这在高级技术节点中是必不可少的。每个布线轨道都有一个宽度约束,线的宽度有小于该宽度约束才能在其上走线。由于不同总线的布线要求可能不同(例如,不同的线宽度和不同线间距),布线轨道可能不均匀。此外,布线轨道也有可能会相互重叠。这种不均匀的布线轨道结构给总线布线带来了很大的挑战。由于布线障碍物(如线路元器件、电源通道等)分散在某些层中,这进一步加大了布线难度。
由于布线问题的高度复杂性,布线过程通常分为全局布线、轨道分配和详细布线。在全局布线中,将布线区域划分为粗粒度的网格单元(称为g单元),并通过g单元之间的连接为每个网络确定粗布线区域。接下来,轨道分配将布线轨道分配给从全局布线结果中提取的通道。最后,详细布线为每个网络找到连接通道和导航的轨道,并完成最终布线。
发明内容
有鉴于此,本发明的目的是提出一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法,可以克服上述问题,进而快速地得到一个高质量的布线方案。
本发明采用以下方案实现:一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法,具体包括以下步骤:
步骤S1:进行预处理,将非均匀轨道结构与障碍物统一起来;
步骤S2:将拓扑考虑的单个总线布线作为一个不可分割的流问题,并将其集成到基于协商的全局布线中,以确定每个总线所需的布线区域;
步骤S3:在步骤S2的指导下,将轨道分配到总线的各个部分,降低后续步骤中维护相同布线拓扑的难度;
步骤S4:进行详细布线,以连接每个总线的各个部分。
步骤S1包括:将每条布线轨道形式化地从上到下或从左到右覆盖整个设计,每条轨道都有一组记录已使用的子轨道的间隔;此外,如果两个轨道的中心线重叠,则缩小或删除宽度较小的轨道的使用间隔。
进一步地,步骤S1中包括:采用最小生成树算法将每个多引脚位分解为一组两引脚位,并确定每个引脚的首选方向,如果在不同位元中相同的轨道形的物理位置是水平分布的,则将轨道形的首选方向设置为垂直;如果在不同的位上相同的轨道形状的物理位置是垂直分布的,则轨道形状的首选方向是水平的;其中引脚的首选方向是所需要连接到引脚的导线的方向。
进一步地,步骤S2具体包括以下步骤:
步骤S21:进行网格图构建;将每个布线层划分为一组全局单元,即g单元,并构建相应的网格图;在网格图中,每个顶点代表一个g单元,每个布线边代表相邻g单元之间的边界,任意两个相邻层由渠道连接;此外,每条布线边上的数字表示这条边的容量,它对应于可以包含在这条边上的布线轨道的数量;将多层设计投影到二维平面上,然后构造一个电容化图G(V,E,u),其中V表示顶点,E表示边,u表示节点;此外,每个引脚对应一个g细胞;如果任意两个位的两个引脚在同一个g细胞中,则将这两个位暂时合并为一个位;
步骤S22:进行初始解迭代;
步骤S23:进行拆线重布。
进一步地,步骤S22具体为:
根据引脚的首选方向,将位分为两种类型,其一为每个位的两个引脚具有相同的首选位置,连接两个引脚的轨道具有偶数个拐弯,其二为每个位的两个引脚具有正交的首选方向,连接两个引脚的轨道具有奇数个拐弯;由于为每个引脚设置了一个首选方向,所以一位最多有一条弯曲为1或0的轨道,只要依次确定个n-1(n≥2)弯曲点,就能够得到一条弯曲为n的轨道;
将连接每个位的轨道的弯度限制为4;对于每个总线,令di表示第i位命令,Ρi表示第i位的轨道集,Ρi T表示Ρi中具有相同布线拓扑的轨道集;对于每个p∈Ρi,有一个非负变量x(P)和一个权值w(P);轨道p的权值w(P)是轨道上所有边的权值之和,定义边e的权值为:
式中,d(e)表示通过e的位的需求之和,u(e)表示边e的容量;对于每条边e,需求d(e)初始化为0,并在总线布线成功后进行更新;当需求接近生产能力时,重量会显著下降,但在产能不足和产能过剩部分,重量会缓慢增长;
据轨道的拐弯数和权值来确定布线拓扑的顺序,较少的拐弯具有较高的优先级,对于每个总线,逐个尝试总线的拓扑,直到总线被成功布线;同时,引入一个新的变量xi,对于每一位i,其中令u’为u的一个拷贝,将拓扑为T的总线全局布线问题表示为不可分割流问题:
xi,x(P)∈{0,1},1≤i≤nbit,P∈∪iPi T
在制定的不可分割流问题中,目标是找到最大可布线位,所有选择轨道的总权值尽可能大,即交通拥挤程度越小越好;在第一行的约束确保最大的权值,选择一条轨道和第二行限制的约束,使总线的所有拓扑都无法布线;如果总线的所有位元都被成功布线,则总线被成功布线(i.e.,xi=1,1≤i≤nbit);成功布线总线后,更新每条边e的需求d(e)和权值w(e),然后处理下一条总线。
进一步地,步骤S3具体包括以下步骤:
步骤S31:进行初始轨道分配,通过逐一处理总线,以便将轨道分配给每个段,对于每个总线,每个段由不同位的路线组成,这些路线在从源引脚轨道到汇聚引脚时具有相同的序列;
步骤S32:进行拆线重布。
进一步地,步骤S31具体包括以下步骤:
步骤S311:将每个段的路线按照相同的顺序或位的相反顺序排序,这两个订单都经过了测试,因为每个订单的结果可能不同,采用最好的结果;
步骤S312:根据排序顺序,对每个路线,在面板中收集有效的轨道,并计算分配成本到每个有效的轨道;其中如果轨道的宽度约束大于或等于路线的线宽,则轨道是有效的;
步骤S313:选择一个有效的轨道与最低成本,以适应路线;其中cost(ir,t)为轨道t分配路线ir的代价函数定义为:
cost(ir,t)=wl(ir,t)+C2·ol(ir,t)+C3·blk(ir,t)+C4·cp(ir,t);
式中,成本cost(ir,t)为将轨道t分配给路线ir的总成本,wl(ir,t)为线长成本,ol(ir,t)为重叠代价,blk(ir,t)为阻塞区间代价,cp(ir,t)为紧性代价,C2、C3、C4为用户定义的常数。
进一步地,步骤S32具体为:为了避免初始轨道分配之后路线之间可能存在重叠的问题,对基于协商的轨道分配进行了扩展,使重叠和线长最小化,同时保持各段路线的相对顺序,重新分配的成本函数定义为:
costhis(ir,t)=θwl·wl(ir,t)+θol·ol(ir,t)+θblk·blk(ir,t)+θcp·cp(ir,t)+θhis·his(ir,t);
式中,wl(ir,t)为线长成本,ol(ir,t)为重叠代价,blk(ir,t)为阻塞区间代价,cp(ir,t)为紧性代价,his(ir,t)为历史代价;用户定义参数θwl、θol、θblk、θcp、θhis用于平衡成本组件。
进一步地,为了避免在保持各段路线的相对顺序时陷入局部最优,在每一个迭代过程中,将多个路线重新分配,以降低陷入局部最优的可能性,即当一个路线没有其他轨道可以分配,或者这些轨道已经被这个路线尝试了一次以上,也将分解和重新分配一些路线附近的路线。
进一步地,步骤S4具体包括以下步骤:
步骤S41:将每两个具有重叠连接的相邻组件分解,并通过模式布线重新布线它们,同时维护相同的布线拓扑;每一次迭代后,根据重叠电线的数量增加的历史成本的重叠区间轨道;
步骤S42:允许轨道位于全局布线指南之外还允许在轨道分配阶段提取一些路线,从而增加了布线自由度;重复分解和重布线过程,直到所有总线都被成功布线或者达到给定的最大迭代次数;
步骤S43:构造一个冲突图,其中每个总线被视为一个顶点,每个边代表两个总线之间的冲突;对最大度的总线所在顶点及其关联边进行迭代,直到图中没有冲突边为止,得到最终的布线结果。
与现有技术相比,本发明有以下有益效果:采用工业界的测试例子对本发明提出的算法进行测试,实验结果表明,本发明提出的算法可以快速的得到一个高质量的结果。
附图说明
图1为本发明实施例的背景技术中的附图,其中(a)为具有相同拓扑结构的总线,(b)为不均匀布线轨道结构。
图2为本发明实施例的轨道处理技术的示例图。
图3为本发明实施例的网格图构造示例,其中(a)为每一布线层都被分成一组全局单元格(g单元格),(b)为将每个g单元建模为一个顶点,相邻的g单元通过布线边连接。
图4为本发明实施例的位的两种类型示意图,其中(a)为每个位的两个引脚具有相同的首选位置,连接两个引脚的轨道具有偶数个拐弯,(b)为每个位的两个引脚具有正交的首选方向,连接两个引脚的轨道具有奇数个拐弯。
图5为本发明实施例的算法1示意图。
图6为本发明实施例的三种压实度成本计算情况示意图,其中(a)为第一部分或最后一部分的路线,最终需要连接到详细布线阶段的相应引脚,(b)为段的所有路线都在同一面板中,(c)为段的路线分布在多个面板中。
图7为本发明实施例的算法2示意图。
图8为本发明实施例的方法流程示意图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
如图8所示,本实施例提供了一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法,具体包括以下步骤:
步骤S1:进行预处理,将非均匀轨道结构与障碍物统一起来;
步骤S2:将拓扑考虑的单个总线布线作为一个不可分割的流问题,并将其集成到基于协商的全局布线中,以确定每个总线所需的布线区域;
步骤S3:在步骤S2的指导下,将轨道分配到总线的各个部分,降低后续步骤中维护相同布线拓扑的难度;
步骤S4:进行详细布线,以连接每个总线的各个部分。
步骤S1包括:由于不均匀的轨道结构和障碍物使得总线的布线更加复杂,本实施例对输入数据执行一些预处理,以简化后续布线操作将每条布线轨道形式化地从上到下或从左到右覆盖整个设计,每条轨道都有一组记录已使用的子轨道的间隔;此外,如果两个轨道的中心线重叠,则缩小或删除宽度较小的轨道的使用间隔。
如图2所示,图2显示了三个不均匀的布线轨道和一个障碍。在图中,本实施例将这三个轨道从上到下作为覆盖整个设计的轨道,T1、T2和T3轨道分别具有使用的区间集合{I1,I2}、{I4}和{I3}。I1区间被障碍物占据,I2、I3、I4区间不被相应的轨道覆盖。另外,由于轨道T2和T3的中心线重叠,且轨道T2的宽度较小,本实施通过删除区间T2来更新轨道T3的使用区间集。则轨道T2的使用区间集合最终为空。因此,导线可以直接从轨道T2穿过到轨道T3。
在本实施例中,步骤S1还包括:采用最小生成树算法将每个多引脚位分解为一组两引脚位,并确定每个引脚的首选方向(水平或垂直),如果在不同位元中相同的轨道形的物理位置是水平分布的,则将轨道形的首选方向设置为垂直;如果在不同的位上相同的轨道形状的物理位置是垂直分布的,则轨道形状的首选方向是水平的;其中引脚的首选方向是所需要连接到引脚的导线的方向。
在本实施例中,步骤S2具体包括以下步骤:
步骤S21:进行网格图构建;将每个布线层划分为一组全局单元,即g单元,如图3中的(a)所示,并构建相应的网格图,如图3中的(b)所示;在网格图中,每个顶点代表一个g单元,每个布线边代表相邻g单元之间的边界,任意两个相邻层由渠道连接;此外,图3的(b)中每条布线边上的数字表示这条边的容量,它对应于可以包含在这条边上的布线轨道的数量;由于直接求解三维全局布线问题耗时较长,本实施例进一步将多层设计投影到二维平面上,然后构造一个电容化图G(V,E,u),其中V表示顶点,E表示边,u表示节点;此外,每个引脚对应一个g细胞;如果任意两个位的两个引脚在同一个g细胞中,则将这两个位暂时合并为一个位;这样可以大大减少全局布线中每个总线的位数,从而减少全局布线阶段的运行时间。以图3中的(a)为例。总线上有两个位,每个位有两个引脚。由于两个位的两个引脚在同一个g单元中,本实施例将这两个位合并为一个位,合并后的位中每个布线线的需求(消耗的磁道数)为2。
步骤S22:进行初始解迭代;
步骤S23:进行拆线重布。
在本实施例中,步骤S22中,布线轨道拐弯过多不仅增加了渠道的数量,导致布线质量差,而且由于线段数量的增加,使得保持相同的布线拓扑更加困难。因此,在这个初始解生成步骤中,本实施例限制了弯曲的数量。步骤S22具体为:
根据引脚的首选方向,将位分为两种类型,其一为每个位的两个引脚具有相同的首选位置,连接两个引脚的轨道具有偶数个拐弯(如图4中的(a)所示),其二为每个位的两个引脚具有正交的首选方向,连接两个引脚的轨道具有奇数个拐弯(如图4中的(b)所示);由于为每个引脚设置了一个首选方向,所以一位最多有一条弯曲为1或0的轨道,只要依次确定个n-1(n≥2)弯曲点,就能够得到一条弯曲为n的轨道;
将连接每个位的轨道的弯度限制为4;对于每个总线,令di表示第i位命令,Ρi表示第i位的轨道集,Ρi T表示Ρi中具有相同布线拓扑的轨道集;请注意,全局布线中的拓扑保证:(1)所有的位具有相同数量的线(2)所有的线从所有的位布线到相同的方向,而暂时忽略不同位的线的相对顺序。此外,对于每个p∈Ρi,有一个非负变量x(P)和一个权值w(P);轨道p的权值w(P)是轨道上所有边的权值之和,定义边e的权值为:
式中,d(e)表示通过e的位的需求之和,u(e)表示边e的容量;对于每条边e,需求d(e)初始化为0,并在总线布线成功后进行更新;当需求接近生产能力时,重量会显著下降,但在产能不足和产能过剩部分,重量会缓慢增长;
据轨道的拐弯数和权值来确定布线拓扑的顺序,较少的拐弯具有较高的优先级,对于每个总线,逐个尝试总线的拓扑,直到总线被成功布线;同时,引入一个新的变量xi,对于每一位i,其中令u’为u的一个拷贝,将拓扑为T的总线全局布线问题表示为不可分割流问题(UFP问题):
xi,x(P)∈{0,1},1≤i≤nbit,P∈∪iPi T
在制定的不可分割流问题中,目标是找到最大可布线位,所有选择轨道的总权值尽可能大,即交通拥挤程度越小越好;在第一行的约束确保最大的权值,选择一条轨道和第二行限制的约束,使总线的所有拓扑都无法布线;如果总线的所有位元都被成功布线,则总线被成功布线(i.e.,xi=1,1≤i≤nbit);成功布线总线后,更新每条边e的需求d(e)和权值w(e),然后处理下一条总线。
基于之前的不可分割流问题,如图5的算法1给出了一种算法。设E=m,umin(umax)为最小(最大)边容量,dmin,dmax,wmin,wmax为所有总线位中最小/最大需求/权重。在第1行,本实施例首先将T位集划分为两个不相交的集合T1和T2。T1由dj≤umax/2位组成,其余位在T2中,对于每一位j和给定的位轨道P,本实施例采用F(j,p)来测量相对于增加的需求负载的权值增加。本实施例在第3行设置了F的下界αlb和上界αub。位的顺序在第6行排序,然后本实施例逐个处理这些位,为第7-11行中的每个位选择一个轨道。第8行Lj-1(e)表示布线位j后边缘的相对负载。
对于每个考虑j∈Q中的最优解布线位,令Qj为j在最优解中的轨道选择。Q∩T1或Q∩T2的总重量至少为w(Q/2)。令α'=2k'为w{j∈Q'|F(j,Qj)≤2α'}的最大值。令Q'high{j∈Q'|F(j,Qj)≤α'}和Q'low{j∈Q'|F(j,Qj)≤2α'}是Q'中的高质量布线和低质量布线集合。根据F的定义,有w(P)=α'∑e1=2mα',其中不等式为真,因为最优解不能溢出边。因此,有w(Q)≤8mα'。另外,因为F(j,Pj)>α'对于每一个j∈P,有通过结合这两个不等式,得到
较佳的,在本实施例中,全局布线中的拆线重布具体为:
拆线重布是一种基本的布线技术,通常与协商技术相结合。基于分拣和重布线协商被广泛应用于全局布线、轨道分配和详细布线中,被证明是提高布线质量的有效方法。
在每次泛化和重布线迭代中,本实施例首先识别和标记一组需要泛化和重布线总线,这些总线具有溢出的边缘或过高的布线成本。对不溢出但布线成本过高的总线进行重布线,不仅可以降低布线成本,而且可以为其他溢出总线释放布线资源。然后,根据定义的分数,将标记的总线按降序排序如下:
Sorder(Bi)=C1·neof(Bi)+α·Cw(Bi)+β·Cs(Bi)+γ·Cc(Bi);
式中,α·Cw(Bi)+β·Cs(Bi)+γ·Cc(Bi)为布线代价,neof(Bi)为前一次迭代中总线Bi通过的溢出边数,C1为用户自定义参数,设为α+β+γ。
采用基于历史的代价函数对每条布线边e进行代价函数的定义为成本:
cost(e)=b(e)+h(e)×p(e)+vc(e),
本实施例重复分解和重布线过程,直到没有溢出边缘或过高的布线成本,或者达到给定的最大迭代次数。在得到一个二维全局布线方案后,本实施例扩展了之前的层分配方法,将该方案从投影二维图映射回原来的三维图。注意,在总线的每一段中,本实施例确保不同位的连线被分配到同一层。
在本实施例中,在获得全局布线阶段中每个总线所需的布线区域后,本实施例提出了一个拓扑考虑的轨道分配,在全局布线结果的指导下,将轨道分配给总线的每个部分。在这个轨道分配阶段,本实施例将布线层的行或列中的所有g单元数组视为面板,每条通过一个或多个g单元的直线都被视为路线。步骤S3具体包括以下步骤:
步骤S31:进行初始轨道分配,通过逐一处理总线,以便将轨道分配给每个段,对于每个总线,每个段由不同位的路线组成,这些路线在从源引脚轨道到汇聚引脚时具有相同的序列;
步骤S32:进行拆线重布。
在本实施例中,步骤S31具体包括以下步骤:
步骤S311:将每个段的路线按照相同的顺序或位的相反顺序排序,这两个订单都经过了测试,因为每个订单的结果可能不同,采用最好的结果;
步骤S312:根据排序顺序,对每个路线,在面板中收集有效的轨道,并计算分配成本到每个有效的轨道;其中如果轨道的宽度约束大于或等于路线的线宽,则轨道是有效的;
步骤S313:选择一个有效的轨道与最低成本,以适应路线;其中cost(ir,t)为轨道t分配路线ir的代价函数定义为:
cost(ir,t)=wl(ir,t)+C2·ol(ir,t)+C3·blk(ir,t)+C4·cp(ir,t);
式中,成本cost(ir,t)为将轨道t分配给路线ir的总成本,wl(ir,t)为线长成本,ol(ir,t)为重叠代价,blk(ir,t)为阻塞区间代价,cp(ir,t)为紧性代价,C2、C3、C4为用户定义的常数,分别设为0.2、1000、1。
由于布线轨道可能是非均匀甚至重叠的,所以分配给某条轨道的路线的重叠代价从工作中修正,该工作不仅由该轨道上的重叠路线决定,还由其他轨道上的重叠路线决定。此外,由于某些轨道可能只覆盖部分设计,因此阻塞间隔成本是加上了不在轨道上的路线ir的长度之和。此外,本实施例还提供了紧凑性成本的计算,使每个总线更紧凑,并为其他总线预留更多的空闲空间。
图6说明了紧凑性成本的计算。本实施例假定面板是水平的,但不失一般性。对于每个总线的前一段和最后一段,由于路线最终需要在详细布线阶段连接到对应的引脚,因此密实度成本设置为路线与对应引脚之间的垂直距离。例如,图6的(a)显示了总线的第一段,其中识别码p2和路线a1属于第一个位,识别码p2和路线a2属于第二个位。路线a1在T1、T2、T3轨道上的紧化代价分别为0、d1、d1+d2,路线a2在T1、T2、T3轨道上的紧化代价分别为d1+d2、d2、0。
对于总线中其他不需要连接引脚的段,路线的紧致性成本与位路线的分配顺序有关。如果本实施例处理路线a1路线a2在图6中的(b)之前,每个路线成本的密实度之间的垂直距离路线和面板的上边界。反之,如果本实施例在a1之前处理a2,那么每个路线的紧实性代价就是路线与面板下界之间的垂直距离。此外,如果段的路线分布在多个面板如图6中的(c)所示,每个路线的密实度成本最低的面板之间的垂直距离是路线和面板的上边界的紧性成本最高的面板中的每个路线路线之间的垂直距离和面板的下边界,和成本的密实度路线其他面板是0。
在本实施例中,步骤S32具体为:为了避免初始轨道分配之后路线之间可能存在重叠的问题,对基于协商的轨道分配进行了扩展,使重叠和线长最小化,同时保持各段路线的相对顺序,重新分配的成本函数定义为:
costhis(ir,t)=θwl·wl(ir,t)+θol·ol(ir,t)+θblk·blk(ir,t)+θcp·cp(ir,t)+θhis·his(ir,t);
式中,wl(ir,t)为线长成本,ol(ir,t)为重叠代价,blk(ir,t)为阻塞区间代价,cp(ir,t)为紧性代价,his(ir,t)为历史代价;用户定义参数θwl、θol、θblk、θcp、θhis用于平衡成本组件。θwl和θcp都初始化为0.1,随着迭代的增加逐渐减小到0.1,θol初始化为0.1,随着迭代的增加逐渐增大到1。此外,θblk是一个非常大的常数,θhis设为1。通过对这些参数的控制,本实施例可以在早期迭代中以更少的有线和紧凑性成本来减少重叠,并在后期迭代中更多地关注减少重叠。
在本实施例中,为了避免在保持各段路线的相对顺序时陷入局部最优,在每一个迭代过程中,将多个路线重新分配,以降低陷入局部最优的可能性(由于解空间是有限的,本实施例可能总是选择一组相同的路线或总是试图分配一个路线少量的痕迹),即当一个路线没有其他轨道可以分配,或者这些轨道已经被这个路线尝试了一次以上,也将分解和重新分配一些路线附近的路线。
例如,假设图6中(c)中的路线a2需要重新分配。由于需要保持段内不同位路线的相对顺序,路线a2只能放在路线a1和路线a3之间。也就是说,如果路线a1没有被重新分配到其他轨道,那么路线a2就不能被重新分配。因此,我们对路线a1和a2进行了拆分,然后路线a1和a2可以分别重新分配到轨道T1和T2上。
在本实施例中,轨道分配完成后,需要将每个位的组件连接起来,得到最终的布线结果。位组件是位的引脚或路线。图7的算法2给出了详细布线框架。在第3行,为了保持相同的布线拓扑所有总线位和荣誉全局布线结果,每个位排序的组件根据全局布线轨道的轨道订单从源汇轨道轨道,然后我们只需要连接每一位的回合组件。在第4行中,本实施例采用L形,z形,和3-bend绕线来连接相邻的组件,因为对于所有总线位来说,控制相同的拓扑是很容易的,并且使用这些预定义的模式布线是非常有效的。在此之后,本实施例使用基于两阶段协商的分解并重新布线,以迭代改进第8-16行中的解决方案质量。第8行中的itel和ite2分别表示第1阶段和第2阶段的最大迭代次数。
步骤S4具体包括以下步骤:
步骤S41:将每两个具有重叠连接的相邻组件分解,并通过模式布线重新布线它们,同时维护相同的布线拓扑;每一次迭代后,根据重叠电线的数量增加的历史成本的重叠区间轨道;
因此,轨道的历史成本更高,往往有较少的机会布线,和部分替代路线被迫使用其他痕迹。最后,最需要使用这条轨道的位最终会使用它。由于模式布线搜索空间有限,且只允许在第一阶段对邻近组件进行泛化和重布线,因此如果去掉一些限制,就有可能减少线路重叠;
步骤S42:允许轨道位于全局布线指南之外还允许在轨道分配阶段提取一些路线,从而增加了布线自由度;例如,如果本实施例删除第二个组成部分,那么本实施例必须找到一条通往第一组件和第三个组件。当位的一部分被重布线时,本实施例检查总线中的其他位是否与其拓扑相同。如果没有,本实施例将根据该位的轨道调整其他位的布线轨道;重复分解和重布线过程,直到所有总线都被成功布线或者达到给定的最大迭代次数;
步骤S43:构造一个冲突图,其中每个总线被视为一个顶点,每个边代表两个总线之间的冲突;对最大度的总线所在顶点及其关联边进行迭代,直到图中没有冲突边为止,得到最终的布线结果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
Claims (10)
1.一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法,其特征在于,包括以下步骤:
步骤S1:进行预处理,将非均匀轨道结构与障碍物统一起来;
步骤S2:将拓扑考虑的单个总线布线作为一个不可分割的流问题,并将其集成到基于协商的全局布线中,以确定每个总线所需的布线区域;
步骤S3:在步骤S2的指导下,将轨道分配到总线的各个部分,降低后续步骤中维护相同布线拓扑的难度;
步骤S4:进行详细布线,以连接每个总线的各个部分。
2.根据权利要求1所述的一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法,其特征在于,步骤S1包括:将每条布线轨道从上到下或从左到右覆盖整个设计,每条轨道都有一组记录已使用的子轨道的间隔;此外,如果两个轨道的中心线重叠,则缩小或删除宽度较小的轨道的使用间隔。
3.根据权利要求1所述的一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法,其特征在于,步骤S1中包括:采用最小生成树算法将每个多引脚位分解为一组两引脚位,并确定每个引脚的首选方向,如果在不同位元中相同的轨道形的物理位置是水平分布的,则将轨道形的首选方向设置为垂直;如果在不同的位上相同的轨道形状的物理位置是垂直分布的,则轨道形状的首选方向是水平的;其中引脚的首选方向是所需要连接到引脚的导线的方向。
4.根据权利要求1所述的一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法,其特征在于,步骤S2具体包括以下步骤:
步骤S21:进行网格图构建;将每个布线层划分为一组全局单元,即g单元,并构建相应的网格图;在网格图中,每个顶点代表一个g单元,每个布线边代表相邻g单元之间的边界,任意两个相邻层由渠道连接;此外,每条布线边上的数字表示这条边的容量,它对应于可以包含在这条边上的布线轨道的数量;将多层设计投影到二维平面上,然后构造一个电容化图G(V,E,u),其中V表示顶点,E表示边,u表示节点;此外,每个引脚对应一个g单元;如果任意两个位的两个引脚在同一个g单元中,则将这两个位暂时合并为一个位;
步骤S22:进行初始解迭代;
步骤S23:进行拆线重布。
5.根据权利要求4所述的一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法,其特征在于,步骤S22具体为:
根据引脚的首选方向,将位分为两种类型,其一为每个位的两个引脚具有相同的首选位置,连接两个引脚的轨道具有偶数个拐弯,其二为每个位的两个引脚具有正交的首选方向,连接两个引脚的轨道具有奇数个拐弯;由于为每个引脚设置了一个首选方向,所以一位最多有一条弯曲为1或0的轨道,只要依次确定个n-1弯曲点,其中n≥2,就能够得到一条弯曲为n的轨道;
将连接每个位的轨道的弯度限制为4;对于每个总线,令di表示第i位命令,Pi表示第i位的轨道集,Pi T表示Pi中具有相同布线拓扑的轨道集;对于每个p∈Pi,有一个非负变量x(P)和一个权值w(P);轨道p的权值w(P)是轨道上所有布线边的权值之和,定义布线边e的权值为:
式中,d(e)表示通过e的位的需求之和,u(e)表示布线边e的容量;对于每条布线边e,需求d(e)初始化为0,并在总线布线成功后进行更新;当需求接近生产能力时,重量会显著下降,但在产能不足和产能过剩部分,重量会缓慢增长;
据轨道的拐弯数和权值来确定布线拓扑的顺序,较少的拐弯具有较高的优先级,对于每个总线,逐个尝试总线的拓扑,直到总线被成功布线;同时,引入一个新的变量xi,对于每一位i,其中令u’为u的一个拷贝,将拓扑考虑的单个总线布线作为一个不可分割的流问题:
xi,x(P)∈{0,1},1≤i≤nbit,P∈∪iPi T
在制定的不可分割流问题中,目标是找到最大可布线位,所有选择轨道的总权值尽可能大,即交通拥挤程度越小越好;在第一行的约束确保最大的权值,选择一条轨道和第二行限制的约束,使总线的所有拓扑都无法布线;如果总线的所有位元都被成功布线,则总线被成功布线,即,xi=1,1≤i≤nbit;成功布线总线后,更新每条布线边e的需求d(e)和权值w(e),然后处理下一条总线。
6.根据权利要求1所述的一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法,其特征在于,步骤S3具体包括以下步骤:
步骤S31:进行初始轨道分配,通过逐一处理总线,以便将轨道分配给每个段,对于每个总线,每个段由不同位的路线组成,这些路线在从源引脚轨道到汇聚引脚时具有相同的序列;
步骤S32:进行拆线重布。
7.根据权利要求6所述的一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法,其特征在于,步骤S31具体包括以下步骤:
步骤S311:将每个段的路线按照相同的顺序或位的相反顺序排序,采用具有最好结果的排序顺序;
步骤S312:根据排序顺序,对每个路线,在面板中收集有效的轨道,并计算分配成本到每个有效的轨道;其中如果轨道的宽度约束大于或等于路线的线宽,则轨道是有效的;
步骤S313:选择一个有效的轨道与最低成本,以适应路线;其中cost(ir,t)为轨道t分配路线ir的代价函数定义为:
cost(ir,t)=wl(ir,t)+C2·ol(ir,t)+C3·blk(ir,t)+C4·cp(ir,t);
式中,成本cost(ir,t)为将轨道t分配给路线ir的总成本,wl(ir,t)为线长成本,ol(ir,t)为重叠代价,blk(ir,t)为阻塞区间代价,cp(ir,t)为紧性代价,C2、C3、C4为用户定义的常数。
8.根据权利要求6所述的一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法,其特征在于,步骤S32具体为:为了避免初始轨道分配之后路线之间可能存在重叠的问题,对基于协商的轨道分配进行了扩展,使重叠和线长最小化,同时保持各段路线的相对顺序,重新分配的成本函数定义为:
costhis(ir,t)=θwl·wl(ir,t)+θol·ol(ir,t)+θblk·blk(ir,t)+θcp·cp(ir,t)+θhis·his(ir,t);
式中,wl(ir,t)为线长成本,ol(ir,t)为重叠代价,blk(ir,t)为阻塞区间代价,cp(ir,t)为紧性代价,his(ir,t)为历史代价;用户定义参数θwl、θol、θblk、θcp、θhis用于平衡成本组件。
9.根据权利要求8所述的一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法,其特征在于,为了避免在保持各段路线的相对顺序时陷入局部最优,在每一个迭代过程中,将多个路线重新分配,以降低陷入局部最优的可能性,即当一个路线没有其他轨道可以分配,或者这些轨道已经被这个路线尝试了一次以上,也将分解和重新分配一些路线附近的路线。
10.根据权利要求1所述的一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法,其特征在于,步骤S4具体包括以下步骤:
步骤S41:将每两个具有重叠连接的相邻组件分解,并通过模式布线重新布线它们,同时维护相同的布线拓扑;每一次迭代后,根据重叠电线的数量增加的历史成本的重叠区间轨道;
步骤S42:允许轨道位于全局布线指南之外还允许在轨道分配阶段提取一些路线,从而增加了布线自由度;重复分解和重布线过程,直到所有总线都被成功布线或者达到给定的最大迭代次数;
步骤S43:构造一个冲突图,其中每个总线被视为一个顶点,每个边代表两个总线之间的冲突;对最大度的总线所在顶点及其关联边进行迭代,直到图中没有冲突边为止,得到最终的布线结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910465654.4A CN110147632B (zh) | 2019-05-30 | 2019-05-30 | 一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910465654.4A CN110147632B (zh) | 2019-05-30 | 2019-05-30 | 一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110147632A CN110147632A (zh) | 2019-08-20 |
CN110147632B true CN110147632B (zh) | 2020-11-10 |
Family
ID=67590043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910465654.4A Expired - Fee Related CN110147632B (zh) | 2019-05-30 | 2019-05-30 | 一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110147632B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110705204B (zh) * | 2019-09-27 | 2023-03-24 | 福州大学 | 基于多阶段策略的时序感知层分配方法 |
CN110795908B (zh) * | 2019-10-30 | 2022-12-13 | 福州大学 | 偏差驱动的总线感知总体布线方法 |
CN111027275A (zh) * | 2019-12-19 | 2020-04-17 | 北京华大九天软件有限公司 | 一种满足最小凹槽约束的引脚连接预处理方法 |
CN111723545B (zh) * | 2020-06-19 | 2022-07-08 | 福州大学 | 超大规模集成电路下基于通孔感知的并行层分配方法 |
CN112632899B (zh) * | 2020-12-30 | 2022-05-24 | 上海华大九天信息科技有限公司 | 一种均衡电阻的布线方法 |
CN112861466B (zh) * | 2021-02-04 | 2022-08-23 | 深圳华大九天科技有限公司 | 一种布线轨道分配方法、电子设备及计算机可读存储介质 |
CN114510900B (zh) * | 2022-01-13 | 2024-07-16 | 北京大学 | 一种用于模拟电路版图布线的交互式编辑方法及工具 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491598A (zh) * | 2017-07-28 | 2017-12-19 | 清华大学 | 大规模微流控生物芯片快速布线方法及设备 |
CN109033611A (zh) * | 2018-07-20 | 2018-12-18 | 福州大学 | 一种vlsi多端点线网绕障碍的布线方法 |
CN109684731A (zh) * | 2018-12-25 | 2019-04-26 | 福州大学 | 一种高效的详细布线驱动轨道分配算法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902775B (zh) * | 2014-03-31 | 2017-02-15 | 福州大学 | 超大规模集成电路多层绕障Steiner最小树构造方法 |
CN109460564B (zh) * | 2018-09-07 | 2022-09-13 | 国电南瑞科技股份有限公司 | 一种电网潮流图布线方法 |
-
2019
- 2019-05-30 CN CN201910465654.4A patent/CN110147632B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491598A (zh) * | 2017-07-28 | 2017-12-19 | 清华大学 | 大规模微流控生物芯片快速布线方法及设备 |
CN109033611A (zh) * | 2018-07-20 | 2018-12-18 | 福州大学 | 一种vlsi多端点线网绕障碍的布线方法 |
CN109684731A (zh) * | 2018-12-25 | 2019-04-26 | 福州大学 | 一种高效的详细布线驱动轨道分配算法 |
Non-Patent Citations (4)
Title |
---|
Obstacle-Aware Routing Problem in a Rectangular Mesh Network;Noraziah Adzhar;《Applied Mathematical Sciences》;20151231;第9卷(第14期);全文 * |
基于多阶段拆线重布的总体布线算法;朱自然 陈建利 等;《计算机辅助设计与图形学学报》;20161130;第28卷(第11期);全文 * |
改进的进化蚁群算法在超深亚微米VLSI电路线障布线问题中的应用;刘和周;《万方数据知识服务平台》;20040408;全文 * |
面向目标的主动绕障PCB布线算法;宋谦 等;《电子测试》;20181231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110147632A (zh) | 2019-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110147632B (zh) | 一种考虑非均匀轨道和障碍物的拓扑匹配总线布线方法 | |
CN109684731B (zh) | 一种高效的详细布线驱动轨道分配方法 | |
Viswanathan et al. | FastPlace 3.0: A fast multilevel quadratic placement algorithm with placement congestion control | |
CN112013829B (zh) | 基于多目标优化的多uav/ugv协同长时作业路径规划方法 | |
CN108335356B (zh) | 地铁车站三维模型自动生成方法 | |
US8112733B2 (en) | Method and apparatus for routing with independent goals on different layers | |
CN110032808B (zh) | 基于混合离散粒子群优化的轨道分配器构建方法 | |
US8782588B2 (en) | Multiple level spine routing | |
CN112084704A (zh) | 柔性车间的多工艺路线与布局联合优化方法 | |
CN114519455A (zh) | 一种带运输过程的分布式柔性车间调度方法及系统 | |
US20030188281A1 (en) | Maximal tile generation technique and associated methods for designing and manufacturing VLSI circuits | |
Su et al. | Nanowire-aware routing considering high cut mask complexity | |
CN113343632B (zh) | 一种考虑进位链和位置约束的异质型布局合法化方法 | |
Chen et al. | A novel wire-density-driven full-chip routing system for CMP variation control | |
Teymourifar et al. | A comparison between two modified NSGA-II algorithms for solving the multi-objective flexible job shop scheduling problem | |
JP3006824B2 (ja) | 配線設計方法および配線設計装置 | |
CN116468176B (zh) | 一种考虑固定装卸点的车间双行布局求解方法 | |
CN112668276A (zh) | 一种基于层次化划分的布图规划方法 | |
Yusof et al. | Harmony search algorithm for flexible manufacturing system (FMS) machine loading problem | |
Yassen et al. | A hybrid meta-heuristic algorithm for vehicle routing problem with time windows | |
US20080244495A1 (en) | Method of determining wire pattern on board and board designed by the method | |
JP7540222B2 (ja) | 割り当て装置、割り当て方法、及びプログラム | |
CN108734346A (zh) | 基于k-均值聚类平衡多机器人系统的任务分配方法 | |
Chen et al. | A novel framework for multilevel full-chip gridless routing | |
Six et al. | Automated visualization of process diagrams |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201110 |