基于多策略优化的Slew约束下的X结构Steiner树构造方法

文档序号:24875046发布日期:2021-04-30 12:49阅读:127来源:国知局
基于多策略优化的Slew约束下的X结构Steiner树构造方法

本发明属于集成电路计算机辅助设计技术领域,尤其涉及一种超大规模集成电路中基于多策略优化的slew约束下的x结构steiner树构造方法。



背景技术:

随着制造工艺进入纳米阶段,芯片的特征尺寸不断减小,集成电路的设计规模遵循摩尔定律不断扩大,电路的密度不断提高,电子系统设计概念正从板上系统向系统级芯片发展。系统级芯片设计概念出现,对芯片性能提出更高要求。布线是超大规模集成电路物理设计最重要步骤之一,布线质量直接决定芯片最终的性能。steiner树是布线中线网的最佳连接模型,是超大规模集成电路布线中的关键环节。因此,构建一个高效率低代价的steiner树的布线方法具有重要意义。



技术实现要素:

为了填补现有技术的空白,本发明提出了一种基于多策略优化的slew约束下的x结构steiner树构造方法,目的是最小化总的线长偏差、总的溢出和总的线长。

随着集成电路制造工艺不断提高以及加工芯片的特征尺寸进一步减小,对电路的性能提出更高要求,在超大规模集成电路物理设计的布线阶段,互连效果直接影响最终的芯片性能。为了加强互连效果,进一步考虑更充分利用布线资源的slew约束模型以及更具互连优化优势的x结构,本发明提出一种基于多策略优化的slew约束下的x结构steiner树构造算法。首先,结合三角剖分方法和最小生成树方法获得点集为引脚集的最小生成树。其次,为了节省计算时间,生成用于记录引脚以及障碍之间的信息的预查表,将最小生成树转换成steiner树。然后,提出重布线策略,通过消除布线中经过障碍的较长片段并重新布线来降低slew大小,使得斯坦纳树部分满足slew约束,并使用精炼策略,进一步减少斯坦纳树布线代价。最后,提出一种验证策略,逐个计算并修正不满足约束的布线,使得内部树完全满足约束。经过实验表明,本发明方案在线长及算法运行时间上均取得最优的结果。

相关技术介绍:

a.坐标映射:

坐标映射是一种将原二维坐标的引脚坐标转换为绕原点逆时针旋转45°后二维坐标下的引脚坐标的技术。通过该技术,可以将斜率为45°或者135°的线段转换为绕原点逆时针旋转45°后二维坐标下的水平线段或者垂直线段,便于判断布线边的重叠及计算边的长度。

b.重布线:

重布线是一种消除steiner树中在某障碍的连通分量较大的布线的技术。通过重布线技术,将该类布线经过的所有障碍,按照障碍中心与该布线中空间位置靠左的引脚的距离大小进行排序,消除原先布线,从该布线中空间位置靠左的引脚设置为出发点,另一引脚设置为终点。按序选择障碍,并从布线经过的障碍的顶点中,选择距离与出发点和终点构成的直线最短的顶点做为伪steiner点。以合适的布线方式进行连接,并将该顶点设置为新的出发点,判断下一障碍,直至与终点相连。

c.子树结构优化:

对于任何一个引脚来说,其至少有一个最优的子树结构。为进一步提高布线资源共享程度,子树结构优化技术通过枚举steiner树中拓扑构成的所有可能存在的子树,计算每个子树公共边的长度,并根据公共边长度的值按降序对所有引脚进行排序。最后,根据已排序的引脚列表将每个引脚的替换其原始的连接组合,直到确定了所有引脚的连接组合。

其主要包括以下设计过程:

初始阶段:该阶段的主要目的是生成x结构steiner树的基本拓扑,以便后续阶段在该拓扑下进行操作。在该阶段中,通过三角剖分方法在较短时间将待连接的引脚构造成点集为引脚的连通图,并利用kruskal方法在该连通图构建最小生成树。

预处理阶段:为了进一步提高时间效率,发明通过预先计算并记录初始阶段构造的最小生成树的边集以及与障碍之间的信息,生成相应的预查表,避免后续阶段频繁且重复的计算,并将初始阶段构造的最小生成树转变为steiner树。

主体阶段:该阶段的主要目的是消除部分违反约束的布线结构以及进一步的缩短线长。发明通过引入伪steiner点的方法,除去预处理阶段构造的steiner树中经过障碍较长的布线并重新布线,从而有效消除部分违反约束的布线结构,并提出一种精炼策略,通过去除冗余点及子树结构优化方法进一步的优化线长。

后处理阶段:为了使构造的steiner树完全满足slew约束,发明遍历steiner树中所有的内部树,逐点的判断内部树所有的接收节点的slew值,修复违反约束部分,使得steiner树完全满足约束。

本发明具体采用以下技术方案:

一种基于多策略优化的slew约束下的x结构steiner树构造方法,其特征在于,包括以下步骤:

步骤s1:结合三角剖分方法和最小生成树方法获得点集为引脚集的最小生成树;

步骤s2:生成用于记录引脚以及障碍之间的信息的预查表,并将最小生成树转换成steiner树;

步骤s3:进行重布线,通过消除布线中经过障碍的较长片段并重新布线以降低slew大小,使steiner树部分满足slew约束;并采用精炼策略,以进一步减少steiner树的布线代价;

步骤s4:逐个计算并修正不满足slew约束的布线,使得内部树完全满足slew约束。

优选地,包括以下步骤:

步骤s1:初始阶段:通过三角剖分方法将待连接的引脚构造成点集为引脚的连通图,并利用kruskal方法在该连通图构建最小生成树;

步骤s2:预处理阶段:通过预先计算并记录初始阶段构造的最小生成树的边集以及与障碍之间的信息,生成相应的预查表,并将初始阶段构造的最小生成树转变为steiner树。

步骤s3:主体阶段:通过引入伪steiner点的方法,除去预处理阶段构造的steiner树中经过障碍较长的布线并重新布线,从而有效消除部分违反约束的布线结构,并采用精炼策略,通过去除冗余点及子树结构优化方法进一步的优化线长;

步骤s4:后处理阶段:遍历steiner树中所有的内部树,逐点的判断内部树所有的接收节点的slew值,修复违反约束部分,使得steiner树完全满足slew约束。

优选地,步骤s1具体包括以下过程:在给定电路下,首先通过平面扫描在给定引脚集的基础上构造泰森多边形,然后通过将泰森多边形转换为对偶图来生成三角剖分,并通过kruskal方法在三角剖分上构建最小生成树。

优选地,在步骤s2中,所述预查表包括:线段信息表,障内片段表和引脚障碍信息表;所述线段信息表记录生成的最小生成树产生的线段;所述障内片段表记录障碍内部布线分量的端点及线长的信息;所述引脚障碍信息表记录线段信息表中记录的线段与障碍相交的信息。

优选地,设x结构连接方式包括连接方式0至连接方式3四种连接方式:

连接方式0:首先从点p通过水平边或竖直边连接到伪steiner点s,然后从点s通过45°边或135°边连接至点q;

连接方式1:首先从点p通过45°边或135°边连接到伪steiner点s,然后从点s通过水平边或竖直边连接至点q;

连接方式2:首先从点p通过竖直边连接到伪steiner点s,然后从点s通过水平边连接至点q;

连接方式3:首先从点p通过水平边连接到伪steiner点s,然后从点s通过竖直边连接至点q;

在步骤s3中,所述重布线包括以下过程:

如果steiner树中存在需调整的布线,将该布线经过的所有障碍,按照障碍中心与该布线中空间位置靠左的引脚的距离大小进行排序,消除原先布线,从该布线中空间位置靠左的引脚设置为出发点,另一引脚设置为终点,按序选择障碍,并从布线经过的障碍的顶点中,选择距离与出发点和终点构成的直线最短的顶点做为伪steiner点,以连接方式0至连接方式3的布线连接方式进行连接,并将该顶点设置为新的出发点,判断下一障碍,直至与终点相连。

优选地,在步骤s3中,精炼策略采用的子树结构优化方法具体包括以下步骤:

步骤31:遍历steiner树的所有边以记录每个引脚pi的相邻引脚,每个引脚pi与其相邻引脚构成根为引脚pi,边集大小为引脚个数m,深度为2的子树结构;

步骤32:对于每个子树,枚举的所有4m种拓扑结构;然后选择所有边集元素绕障或者在障碍内部的连通分量不超过阈值且具有最小线长的那一个子树结构作为该子树最佳子结构记为bpi,同时计算每个bpi的公共边长度spi;

步骤33:根据spi的长度按递减顺序对所有子树进行排序;

步骤34:对于每个引脚pi,按spi的顺序将bpi的布线选择组合对原有的steiner树进行替换,直到布线树的所有边都已确定。

优选地,步骤s4具体包括以下步骤:

步骤s41:遍历steiner树的所有边,为每个障碍建立对应的内部树;

步骤s42:遍历所有的内部树,自驱动节点而下逐点的准确计算内部树的接收节点的slew值的大小;

步骤s43:对slew值大于阈值的接收节点,删除接收节点至其内部树上游节点的连通分量,并沿着障碍的边连接至同侧上游接收节点,无同侧上游接收节点则沿着障碍的边连至驱动节点。

与现有技术相比,本发明及其优选方案有以下特点和有益效果:首先,结合三角剖分方法和最小生成树方法获得点集为引脚集的最小生成树。其次,为了节省计算时间,生成用于记录引脚以及障碍之间的信息的预查表,将最小生成树转换成steiner树。然后,提出重布线策略,通过消除布线中经过障碍的较长片段并重新布线来降低slew大小,使得斯坦纳树部分满足slew约束,并使用精炼策略,进一步减少斯坦纳树布线代价。最后,提出一种验证策略,逐个计算并修正不满足约束的布线,使得内部树完全满足约束。经过实验表明,本发明方案在线长及算法运行时间上均取得最优的结果。

附图说明

下面结合附图和具体实施方式对本发明进一步详细的说明:

图1为本发明实施例布线基准电路示意图;

图2为本发明实施例x结构连接方式(a)连接方式0,(b)连接方式1,(c)连接方式2,(d)连接方式3示意图;

图3为本发明实施例方法流程示意图;

图4为本发明实施例初始阶段:(a)布线图,(b)三角剖分,(c)最小生成树示意图;

图5为本发明实施例预处理阶段:(a)最小生成树,(b)预查表,(c)转换策略示意图;

图6为本发明实施例坐标映射示意图;

图7为本发明实施例布线调整:(a)违规布线,(b)重布线,(c)消除冗余点示意图;

图8为本发明实施例含两条边的子树结构的16种拓扑结构示意图;

图9为本发明实施例4节点内部树:(a)初始内部树,(b)调整k3节点,(c)调整k2节点示意图。

具体实施方式

为让本专利的特征和优点能更明显易懂,下文特举实施例,作详细说明如下:

1.slew约束下的x结构steiner布线树构造问题模型:

给定一个待布线电路,包含一个引脚集合p={p0,p1,p2,…,pn-1},以及一个矩形障碍集合o={o0,o1,o2,…,om-1}其中pi∈p且pi=(xi,yi),(xi,yi)代表布线区域引脚坐标,引脚p0为信号源,其余引脚为宿点,oi∈o且oj=(xj1,yj1,xj2,yj2),(xj1,yj1)代表矩形障碍左下角的坐标,(xj2,yj2)代表矩形障碍右上角的坐标。在该问题模型下,需构造一棵连接所有引脚的steiner树t。t取得最优线长目标下并满足以下约束:

(1).t中所有布线边与x轴所形成的夹角需满足x结构的特定角度。

(2).t在障碍内部的连通分量需满足slew约束。

图1给出一含10引脚和10障碍的待布线电路,其中p0为信号源,其余端点为待连引脚。如图1所示,电路中引脚不能位于障碍内部,但可在障碍边上(引脚p5位于障碍o5边上),障碍不相互重叠,但存在共同边(障碍o0与障碍o2存在共同边b0b1)。本实施例实际上就是提供一种解决方案以实现上述模型。

2.slew计算:

在slew约束下的steiner树模型中,信号从信号源p0出发,沿斯坦纳树t驱动至所有宿点。在这过程中,为驱动信号经过内部树,在靠近驱动节点vin之前位置插入中继器bin,并在靠近接收节点vouti之后放置中继器bouti,从而屏蔽下游电容。本实施例通过peri模型计算每个节点的具体电压转换速率,以下为具体公式:

在公式1中,sstep(vin,vout)是节点vin到vout的步进电压转换速率,与时延相关,通过elmore模型计算;而s(vin)是节点vin处的电压转换速率,与中继器bin的固有电压转换速率kbin以及输入电压转换速率相关。以下分别给出对应的计算方法:

sstep(vin,vout)=ln9×elmore(vin,vout)(2)

s(vin)=kbin+rbin×csucc(vin)(3)

其中公式2中,elmore(vin,vout)是节点vin到vout的elmore时延;而公式3中,rbin为中继器bin的电压转换速率阻抗,csucc(vin)为节点vin的下游负载电容。

3.x结构连接方式:

针对了x结构的特点,本发明给出了连接方式0至连接方式3四种连接方式。在图2(a)中给出了连接方式0的示例。在该连接方式下,首先从点p通过水平边或竖直边连接到伪steiner点s,然后从点s通过45°边或135°边连接至点q。图2(b)给出了连接方式1的示例。在该连接方式下,首先从点p通过45°边或135°边连接到伪steiner点s,然后从点s通过水平边或竖直边连接至点q。图2(c)给出了连接方式2的示例。在该连接方式下,首先从点p通过竖直边连接到伪steiner点s,然后从点s通过水平边连接至点q。图2(d)给出了连接方式3的示例。在该连接方式下,首先从点p通过水平边连接到伪steiner点s,然后从点s通过竖直边连接至点q。

4.算法概述:

本实施例所提出的基于多策略优化的slew约束下的x结构steiner树构造算法优化了线长代价和运行效率。该算法通过多个有效的阶段减少了线长及运行时间。所提出的算法分为四个阶段,算法流程如图3所示。在初始阶段,结合三角剖分方法和最小生成树方法获得点集为引脚集的最小生成树。在预处理阶段,为了节省计算时间,生成用于记录引脚以及障碍之间的信息的预查表,并通过一种有效的转换策略,将最小生成树转换成steiner树。在主体阶段,提出重布线策略,通过消除布线中经过障碍的较长片段并重新布线来降低slew,使得steiner树部分满足slew约束,并使用精炼策略,进一步减少steiner树布线代价。在后处理阶段,提出一种验证策略,逐个计算并修正不满足约束的阶段,使得steiner树完全满足约束。每个阶段的细节在后续分别详细描述。

(1)初始阶段:

由于最小生成树容易转换为x结构steiner树,所以通常利用最小生成树做为x结构steiner树的初始拓扑。为提高时间效率,在给定电路下(如图4(a)),算法首先通过平面扫描在给定引脚集的基础上构造泰森多边形,然后通过将泰森多边形转换为对偶图来生成三角剖分(如图4(b)),并通过kruskal方法在三角剖分上高效构建最小生成树(如图4(c))。

这个阶段的主要目的是快速获得一棵最小生成树,并将该生成树作为布线树的初始拓扑。

(2)预处理阶段:

由于现代芯片的密度急剧增加,布线问题规模比以往任何时候都大,为了进一步提高算法的效率,避免后续阶段引脚以及障碍之间频繁的判断与计算,该阶段设计并生成预查表:线段信息表,障内片段表,引脚障碍信息表。线段信息表记录在初始阶段生成的最小生成树基础4种走线方式可能产生的线段,障内片段表记录障碍内部布线分量的端点及线长的信息,引脚障碍信息表记录线段信息表中记录的线段与障碍相交的信息。

不失一般性下,假设初始阶段构造的最小生成树有k条边,每条边存在4种走线方式,在布线区域最多存在4*(k-1)条x结构边。如图5所示,图5(a)为初始阶段构造的最小生成树,该树有4条边,而图5(b)中,显示了图5(a)中最小生成树的所有潜在的x结构边,其中边p1p2与障碍o1在任意走线下都会相交,边p2p3及p3p4与任意障碍在任意走线下都不会相交,边p3p5在部分走线下会与部分障碍相交。

为了后续阶段便于判断边的重叠及计算边的长度等,在算法中针对潜在的x结构的45°或者135°边进行了45度坐标轴下的坐标映射(如图6所示),并在线段信息表中记录该信息。以下为坐标映射公式:

其中,原来坐标为(xi,yi),其映射后坐标为(xi*,yi*)。在预处理的后半阶段,算法提出一种转换策略,有效的将最小生成树转换为steiner树。如图5(c)所示,算法以图5(a)的最小生成树为基本骨架,为每条边选择合适走线方式,并转换为steiner树。如中国专利cn201910937860-一种考虑布线资源松弛的x结构steiner最小树构造方法中给出的最小生成树转换为steiner树的方案同样也可以应用于本实施例中。

(3)主体阶段:

考虑到预处理阶段转换的steiner树可能存在因在障碍内部的连通分量过大而引起违反slew约束的布线,而另一方面考虑到布线之间的资源共享,存在进一步减少线长代价的可能。因此,主体阶段提出以消除大部分违反约束为目的的重布线方法,及进一步减少线长代价为目的的去除冗余点及子树结构优化的精炼方法。

在主体阶段中,遍历steiner树的所有布线边,判断每条边与障碍的相交情况,并在忽视其他布线边产生的节点的影响下,单纯计算布线的在所有经过的障碍内的连通分量产生的slew值,称为slew估计值,倘若布线在经过的所有障碍有任一障碍内产生的slew估计值大于阈值,则视为在单一障碍内的连通分量过大,以下给出slew估计值的计算方式:

其中,cb是中继器输入电容,rb是中继器输出电阻,c是互连线上单位电容,r是互连线上单位电阻,len(vin,vout)为布线在障碍内部的连通分量(节点vin到节点vout)。

在本实施例中,所采用的重布线技术的具体方法如下:倘若steiner树中存在需调整的布线,将该布线经过的所有障碍,按照障碍中心与该布线中空间位置靠左的引脚的距离大小进行排序,消除原先布线,从该布线中空间位置靠左的引脚设置为出发点,另一引脚设置为终点,按序选择障碍,并从布线经过的障碍的顶点中,选择距离与出发点和终点构成的直线最短的顶点做为伪斯坦纳点,以连接方式0至连接方式3的布线连接方式进行连接,并将该顶点设置为新的出发点,判断下一障碍,直至与终点相连。

如图7(b),p1点为障碍b2四个角点中离线段pq最近的角点,p2点为障碍b3四个角点中离线段p1q最近的角点,故选择p1、p2点做为为伪steiner点进行重布线,并分别选择连接方式2以及连接方式1对布线p1p2、p2q进行连接。

经过重布线阶段,布线在障碍内较大的连通分量均已消除,但由于重布线阶段选择将违反约束的布线绕开所有其所经过的障碍,导致在部分障碍内较小的连通分量不违反约束,但仍选择绕障而增加线长代价。针对该情况,本文提出消除冗余点策略。

图7(a)中pq为两引脚,b2b3为pq引脚之间的布线经过的障碍,假定布线在b2的连通分量不违反约束,而b3中连通分量过大而违反约束。在图7(b)中,在重布线部分,算法通过引入伪steiner点p1p2绕开障碍b2b3,而在图7(c)中,算法仅仅选择了伪steiner点p2,便可消除布线在b3中较大的连通分量。相对于重布线方法,消除了冗余点p1,优化了线长代价。

在主体阶段的后半阶段,通过子树结构优化的方法进一步提高布线资源共享。如图8所示,图中子树结构存在两条边,每条边存在四种连接方式,则一共存在16种子树结构,遍历16种子树结构,选择线长最短的子树结构,视为最佳子树结构。其次按照最佳子树结构相较于当前子树结构的优化程度排序,并按序对当前子树结构进行更新。精炼阶段通过消除冗余点及子树结构优化两种技术达到优化线长的目的。

在本实施例中,所采用的子树结构优化方法具体如下:

相较于连接方式2与连接方式3的布线连接方式,算法在选择引脚间的布线连接方式通常会优先选择更具布线优势的连接方式0与连接方式1。在进一步考虑布线间的资源共享,一味的优先连接方式0与连接方式1的布线连接方式不一定是最佳选择。为提高布线的共享程度,进一步减小布线线长,算法提出子树结构优化的策略,其步骤如下:

步骤1:遍历steiner树的所有边以记录每个引脚pi的相邻引脚,每个引脚pi与其相邻引脚构成根为引脚pi,边集大小为引脚个数m,深度为2的子树结构。

步骤2:对于每个子树,枚举的所有4m种拓扑结构。然后选择所有边集元素绕障或者在障碍内部的连通分量不超过阈值且具有最小线长的那一个子树结构作为该子树最佳子结构记为bpi,同时计算每个bpi的公共边长度spi。

步骤3:根据spi的长度按递减顺序对所有子树进行排序。

步骤4:对于每个引脚pi,按spi的顺序将bpi的布线选择组合对原有的steiner树进行替换,直到布线树的所有边都已确定。

在步骤2中,边集元素绕障或者在障碍内部的连通分量不超过阈值的判断可以通过预查表进行查询,步骤4中,优先确定公共边长度较长的引脚的结构,如果已经确定了某条边的连接方式,那么在后续的过程中,即使其他的最佳拓扑结构对于该条边选择了不同的连接方式,也不会改变该条边的连接方式。

(4)后处理阶段:

内部树中接收节点的slew值会受其他的接收节点影响,而重布线是在忽视其他接收节点影响下进行计算。因此,重布线策略不能完全保证消除完全的违反约束的布线。为了使斯坦纳树完全满足约束,算法提出验证策略,其具体步骤如下:

步骤1:遍历steiner树的所有边,为每个障碍建立对应的内部树。

步骤2:遍历所有的内部树,自驱动节点而下逐点的准确计算内部树的接收节点的slew的大小。

步骤3:对slew值大于阈值的接收节点,删除接收节点至其内部树上游节点的连通分量,并沿着障碍的边连接至同侧上游接收节点,无同侧上游接收节点则沿着障碍的边连至驱动节点。

如图(9)所示,k0为驱动节点,k1、k2、k3为接收节点,步骤2中按k1、k2、k3的顺序计算各个接收节点的slew大小。在步骤3中,假定k3的slew大小超过阈值,则沿着障碍的边连至同侧上游接收节点k2,倘若k2的slew大小超过阈值,则沿着障碍的边连至驱动节点k0。

本专利不局限于上述最佳实施方式,任何人在本专利的启示下都可以得出其它各种形式的基于多策略优化的slew约束下的x结构steiner树构造方法,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本专利的涵盖范围。

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