考虑单位移动和复杂布线约束的增量三维全局布线方法

文档序号:191210 发布日期:2021-11-02 浏览:47次 >En<

阅读说明:本技术 考虑单位移动和复杂布线约束的增量三维全局布线方法 (Incremental three-dimensional global wiring method considering unit movement and complex wiring constraint ) 是由 钱翊仁 邹鹏 林智锋 兰琨 杨晓剑 于 2021-08-05 设计创作,主要内容包括:本发明涉及一种考虑单位移动和复杂布线约束的增量三维全局布线方法,包括如下步骤:步骤S1:基于预设布线电路网表和约束规则,通过拥塞感知3D全局布线器用最小的线长度和满足布线约束重新连接每个网络的所有引脚;步骤S2:采用线驱动运动评估方法确定移动单元的期望位置;步骤S3:根据得到的期望位置,采用增量策略移动单元并重新布线网络,直到每个引脚都连接起来,得到初始布线结果;步骤S4:采用边缘调整方法,进一步调整初始布线结果,得到最终的布线结果。本发明具有快速的单元运动,在显著缩短的运行时间内实现了最佳的解决方案质量,进一步优化线路长度。(The invention relates to an incremental three-dimensional global wiring method considering unit movement and complex wiring constraint, which comprises the following steps: step S1: based on a preset wiring circuit network table and a constraint rule, all pins of each network are reconnected by using the minimum wire length and meeting wiring constraint through the congestion sensing 3D global wiring device; step S2, determining the expected position of the mobile unit by adopting a line driving motion evaluation method; step S3, according to the expected position, adopting increment strategy to move the unit and re-wiring the network until each pin is connected to obtain the initial wiring result; and step S4, adopting an edge adjusting method to further adjust the initial wiring result to obtain a final wiring result. The invention has fast unit motion, achieves optimal solution quality in a significantly shortened running time, and further optimizes the line length.)

考虑单位移动和复杂布线约束的增量三维全局布线方法

技术领域

本发明属于超大规模集成电路(VLSI)物理设计自动化技术领域,具体涉及一种考虑单位移动和复杂布线约束的增量三维全局布线方法。

背景技术

布局和布线是超大规模集成电路(VLSI)物理设计中的两个关键问题。这两个问题通常被进一步划分为几个阶段,例如全局放置、合法化、详细放置、全局布线和详细布线。这种分而治之的方法确保了复杂的物理设计问题可以在合理的运行时得到管理和解决,但可能会导致子问题之间的不匹配。例如,放置器通常通过单元密度或引脚密度来限制放置结果,以为布线收敛保留更多的收敛。然而,这种密度模型可能与实际的布线问题没有很好的关联。

发明内容

有鉴于此,本发明的目的在于提供一种考虑单位移动和复杂布线约束的增量三维全局布线方法,提出了一个增量的三维全局布线器及方法,具有快速的单元运动,在显著缩短的运行时间内实现了最佳的解决方案质量。

为实现上述目的,本发明采用如下技术方案:

一种考虑单位移动和复杂布线约束的增量三维全局布线方法,包括如下步骤:

步骤S1:基于预设布线电路网表和约束规则,通过拥塞感知3D全局布线器用最小的线长度和满足布线约束重新连接每个网络的所有引脚;

步骤S2:采用线驱动运动评估方法确定移动单元的期望位置;

步骤S3:根据得到的期望位置,采用增量策略移动单元并重新布线网络,直到每个引脚都连接起来,得到初始布线结果;

步骤S4:采用边缘调整方法,进一步调整初始布线结果,得到最终的布线结果。

进一步的,所述步骤S1具体为:

步骤S11:预设一个带有可移动单元的布线电路网表和约束规则,布线电路网表:将布线区域划分为一个三维全局网格(G-grid)阵列,用网格图G(V,E)建模,每个节点表示一个G-grid,每个边对应两个相邻G-grid之间的边界。设c(u)为G-grid u的资源容量,d(u)为G-grid u的资源需求。约束规则如下:

(1)不允许开网:所有网必须连接。

(2)不允许超流量G-grid:对于每个G-grid,其资源容量必须超过需求。

(3)方向约束:水平路线必须在奇数层上,垂直路线必须在偶数层上。

(4)最小层规则:水平和垂直路线必须在每个网的给定的最小层之上。

(5)最大的单元格移动限制:在每种情况下,移动的单元格的数量被限制为总单元格数的30%,以避免一个全新的放置过程产生不同的放置结果。

步骤S12:采用迷宫布线方法,在三维边界直接布线有多引脚的网;

步骤S13:根据布线电路网表和约束规则,逐个重布线每个网络的连接,在重布线阶段,采用顶点权重版本的中的边权代价函数。

进一步的,所述步骤S12进一步采用减小布线边界尺寸和队列优化搜索算法加快布线。

进一步的,所述顶点u的代价:

其中1是每行长度的成本;logistic函数和正号右侧的比例函数的乘积描述了拥堵的成本;C1控制拥塞率,C2控制全局布线器对溢出的敏感性。

进一步的,所述步骤S2具体为:

使用时间驱动的位置估计方法来确定每个单元的期望位置,并确保在从原始网络中移除单元后,剩余的子网在一个连接的组件中

在去除过程中,首先将经过的网格连接起来,布线的网表表示为一个以网格为顶点的图;然后,沿着顶点删除度为1且包含重定位单元的引脚;遇到包含其他单元的引脚的顶点,或其剩余度大于1时,删除将停止;

在删除与重新定位单元格相关的连接后,使用算法1:基于多网的选址代价计算来估计新的位置。

进一步的,所述使用算法1:基于多网的选址代价计算来估计新的位置,具体为:

首先得到最小矩形覆盖所有层关联网的边界框的位置范围;

再计算每个网的估计成本,考虑到c单元有一个网的多个引脚的特殊情况,采用g网格的简化模型,其中包含c单元的最低引脚需要移动;

采用队列搜索从获取的长方体中的每个位置到剩余连接GR所占用的g网格的最短距离;

使用临界扩展,其中新扩展的位置应在估计边界内,同时满足方向约束和最小层规则;在算法计算之后,每个位置的估计成本会增加该网络中移除的g网格的数量与最短距离之间的差值。

进一步的,在没有任何约束的情况下,两个g-网格(u和v)之间的最短距离:

dis(u,v)=|xu-xv|+|yu-yv|+|zu-zv| (2)

两个约束将延长z轴上的布线距离,但不会改变X轴和y轴上的布线距离;z轴上的布线需要绕道,因为X轴和y轴的布线只能在特定的层上进行;在不失一般性的前提下,将距离公式修改为:

dis(u,v)=Δx+Δy+Zdis(zu,zv,ml,Δx=0,Δy=0)

(3)

其中Δx、Δy、Δz分别表示两个g网格在x、y、z方向上的delta;Zdis表示两个g网格在z轴方向上的最短距离,层数ml最小;Zdis的计算取决于两个g网格是否需要在x轴和y轴上移动;

当zu和ml确定后,采用时间复杂度O(L)计算所有zu情况下的Zdis,其中L为层数;

进一步使用最短路径搜索方法,搜索节点可以表示为其中是布尔状态,表示当前路径是否已经到达在x轴上布线的层,到达y轴;当到达水平或垂直布线层时,将保持这两种状态;通过迭代源层和最小层,以O(L3)的时间复杂度预计算所有情况下的Zdis。

进一步的,步骤S3具体为:

(1)对于每个坐标,使用一个平衡二叉树来存储所有单元格类型的数量使用一个平衡二叉树来存储所有单元格类型的数量

(2)在额外需求和堵塞需求维护之后,移动单元所在的所有网都将重新布线;

(3)当一个单元移动到它想要的位置时,所有相关的网络都需要重新布线。

进一步的,所述步骤(1),具体为:平衡二叉树会在单元类型数为零时删除相应的节点,以确保节点数不会太大而影响查询效率;对于每个sameEX规则和adjHEX规则,压缩两个单元格类型并将其存储在哈希表中,将查询的复杂性降低到常数时间;当单元格移动时,;通过在原始坐标中执行删除操作和在新坐标中执行添加操作来维护它的需求;当两种单元数量相同时,ex下降相同;当当前单元格类型的数量小于另一个单元格类型的数量时,该增加发生;adjHEX规则的额外需求修改类似,在相邻坐标中修改相应的需求信息。

进一步的,所述步骤(2),具体为:由于具有最佳估计的新位置可能会拥塞,为布线尝试选择top-k估计值的候选位置;并行移动和布线所有候选位置,并选择不违反约束的位置与最短的线长度;移动和重布线后,重新计算相关网中所有单元的估计;对估计线长缩减的平衡二叉树进行相应的修正。

本发明与现有技术相比具有以下有益效果:

1、本发明具有适当的布线指引,可以有效地改进初始解,缩短运行时间;

2、本发明基于多网的位置估计方法,以最小总长度并行地寻找移动单元的期望位置。全局布线器在没有最大小区移动约束的情况下,有效提高计算效率;

3、本发明设计了一种基于时间驱动堆栈的布线策略,在不违反布线规则的情况下加快破网的重布线过程,并确保解决方案的质量。

附图说明

图1为本发明方法流程图;

图2为本发明一实施例中时间驱动位置估计方法所产生的结果和使用SRP提出的多源传播算法所产生的结果;

图3为本发明一实施例中算法1;

图4为本发明一实施例中算法2;

图5为本发明一实施例中算法3;

图6为本发明在基准hidden06上的每个阶段之后的线长分布。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

请参照图1,本发明提供一种考虑单位移动和复杂布线约束的增量三维全局布线方法的流程图,包括如下步骤:

步骤S1:基于预设布线电路网表和约束规则,通过拥塞感知3D全局布线器用最小的线长度和满足布线约束重新连接每个网络的所有引脚;优选地,使用减小布线边界尺寸和队列优化搜索算法来加快这一步骤。

步骤S2:采用线驱动运动评估方法确定移动单元的期望位置;在实现了感知拥塞的3D全局布线之后,尝试用最小的线长度将单元格移动到所需的位置,使用时间驱动的位置估计方法来确定每个单元的期望位置,并且对算法时间复杂度进行优化;

步骤S3:根据得到的期望位置,采用增量策略移动单元并重新布线网络,直到每个引脚都连接起来,得到初始布线结果;对每个单元进行位置估计后,使用增量策略移动单元并重新布线网络,在每一轮移动中,以最大估计的线长减少来重新定位单元。当一个单元移动到它想要的位置时,所有相关的网络都需要重新布线,提出算法3来进一步加快布线过程。该算法一直循环,直到每个引脚都连接起来。在实现了几轮网络重布线和单元重定位后,生成了所需的布线路径来连接每个网络的所有引脚。

步骤S4:采用边缘调整方法,进一步调整初始布线结果,得到最终的布线结果。

优选的,在本实施例中,步骤S1具体为:

预先给定一个布线电路网表和约束规则。传统的布线方法通常首先通过像FLUTE这样的直线Steiner最小树(RSMT)算法将网络分解成一个多引脚到引脚的结构,该算法的结果依赖于RSMT算法,因此其阻塞信息部分被忽略。因此,

采用迷宫布线方法,在三维边界直接布线有多引脚的网。该方法从一个任意的引脚开始,找到最近的引脚并连接,然后将路径上的所有点视为源点,并继续寻找下一个引脚。三维迷宫路径高度利用了拥塞和空间信息。然而,这是相对耗时的。因此,使用减小布线边界尺寸和队列优化搜索算法两种技术来加快这一布线步骤。

减小布线边界尺寸技术:在多层结构中,单个网往往不使用高层金属层。因此,使用最后的布线高度来约束每个网络在z轴上的全局布线上界。当无法找到低于上一层的解时,选择将z轴的上限增加到层的高度。该技术在实际应用中可以减小搜索空间的大小,提高布线速度约两倍。此外,只在引脚所在的x轴和y轴范围内布线连接。

队列优化搜索算法:网络布线中最耗时的阶段是搜索每个G-grid的最短路径。为了加速这一阶段,采用了队列优化的最短路径搜索算法,即保持所有网格当前的最短路径,并在产生新的资源时更新最短距离。在每一轮游戏中,将在队列前面扩展G-grid,并在扩展后的G-grid到达更近的距离时将其添加到队列的末尾。在迷宫路径算法中,上述搜索算法比实际中通过堆优化的算法要快。

由于网络列表已经有了一个初始布线结果,将逐个重布线每个网络的连接,以进一步改善布线结果,同时确保没有溢出。在重布线阶段,采用顶点权重版本的中的边权代价函数。顶点u的代价:

其中1是每行长度的成本。logistic函数和正号右侧的比例函数的乘积描述了拥堵的成本。另外,C1控制拥塞率,C2控制全局布线器对溢出的敏感性。

优选的,在本实施例中,步骤S2具体为:

在步骤S1中实现了感知拥塞的3D全局布线之后,尝试用最小的线长度将单元格移动到所需的位置。使用时间驱动的位置估计方法来确定每个单元的期望位置。直接作用于3D金属层,并确保在从原始网络中移除单元后,剩余的子网在一个连接的组件中。在去除过程中,首先将经过的网格连接起来,这样布线的网表就可以表示为一个以网格为顶点的图。然后,开始沿着顶点删除度为1且包含重定位单元的引脚。当遇到包含其他单元的引脚的顶点,或其剩余度大于1时,删除将停止。

在删除与重新定位单元格相关的连接后,使用算法1来估计新的位置。首先得到最小矩形覆盖所有层关联网的边界框的位置范围。然后,再计算每个网的估计成本。考虑到c单元有一个网的多个引脚的特殊情况,采用g网格的简化模型,其中包含c单元的最低引脚需要移动。然后,采用队列搜索从获取的长方体中的每个位置到剩余连接GR所占用的g网格的最短距离。使用临界扩展,其中新扩展的位置应在估计边界内,同时满足方向约束和最小层规则。在算法计算之后,每个位置的估计成本会增加该网络中移除的g网格的数量与最短距离之间的差值,这个差异表示将单元格移动到新位置而不影响其余连接的成本。

算法1中单网估计的时间复杂度为O(XYL),其中X、Y、L为轴边界的长度,因为将搜索长方体中的每个g网格。由于估计轮数远大于布线轮数,耗时的位置估计将成为运行时的瓶颈。因此将进一步降低位置估计的时间复杂度。

在没有任何约束的情况下,两个g-网格(u和v)之间的最短距离显然是:

dis(u,v)=|xu-xv|+|yu-yv|+|zu-zv| (2)

然而,最小层规则和方向约束使最短距离问题更加复杂。两个约束将延长z轴上的布线距离,但不会改变X轴和y轴上的布线距离。z轴上的布线需要绕道,因为X轴和y轴的布线只能在特定的层上进行。在不失一般性的前提下,可以将距离公式修改为:

dis(u,v)=Δx+Δy+Zdis(zu,zv,ml,Δx=0,Δy=0)

(3)

其中Δx、Δy、Δz分别表示两个g网格在x、y、z方向上的delta。Zdis表示两个g网格在z轴方向上的最短距离,层数ml最小;Zdis的计算取决于两个g网格是否需要在x轴和y轴上移动

当zu和ml确定后,可以用时间复杂度O(L)计算所有zu情况下的Zdis,其中L为层数。使用最短路径搜索方法。搜索节点可以表示为其中是布尔状态,表示当前路径是否已经到达在x轴上布线的层,到达y轴。当到达水平或垂直布线层时,将保持这两种状态。总的来说,通过迭代源层和最小层,以O(L3)的时间复杂度预计算所有情况下的Zdis。

对于算法1,如果枚举GR中的网格和pin层最底层的网格,可以得到一个时间复杂度为O(XYM)的算法,其中M为GR中g网格的个数。这种枚举方法存在计算冗余。因此,提出了算法2:约束条件下的快速广度优先搜索,将该计算方法的时间复杂度提高到O(XY+(X+Y)M+MlgM)

在本实施例中,步骤S3,具体为:在步骤(2)实现了对每个单元进行位置估计后,再使用增量策略移动单元并重新布线网络。在每一轮移动中,以最大估计的线长减少来重新定位单元。为了加快获取最大值的速度,平衡二叉树存储了所有单元的最佳移动位置和估计的线长度缩减。

单位移动会改变堵塞需求、相同的g网格额外需求和相邻的水平g网格额外需求。堵塞需求只与单元有关,而后两种需求需要当前和水平相邻坐标中的单元信息。对于每个坐标,使用一个平衡二叉树来存储所有单元格类型的数量。这种平衡二叉树还会在单元类型数为零时删除相应的节点,以确保节点数不会太大而影响查询效率。对于每个sameEX规则和adjHEX规则,压缩两个单元格类型并将其存储在哈希表中,将查询的复杂性降低到常数时间。当单元格移动时,通过在原始坐标中执行删除操作和在新坐标中执行添加操作来维护它的需求。当两种单元数量相同时,ex下降相同;当当前单元格类型的数量小于另一个单元格类型的数量时,该增加发生。adjHEX规则的额外需求修改类似,只是需要在相邻坐标中修改相应的需求信息。

在额外需求和堵塞需求维护之后,移动单元所在的所有网都将重新布线。由于具有最佳估计的新位置可能会拥塞,为布线尝试选择top-k估计值的候选位置。并行移动和布线所有候选位置,并选择不违反约束的位置与最短的线长度。移动和重布线后,需要重新计算相关网中所有单元的估计。对估计线长缩减的平衡二叉树进行相应的修正。此外,值得注意的是,该单元的估计可以并行计算,因此可以快速进行初始估计和更新。总的来说,单元格的移动将重复,直到没有一个单元格有一个更好的估计位置。

当一个单元移动到它想要的位置时,所有相关的网络都需要重新布线,这使得单元移动的速度在很大程度上依赖于布线效率。即使采用了所提出的队列优化,布线算法也没有达到相对较高的速度。因此,在单元移动阶段统一布线代价函数,并提出算法3:基于引导prim的迷宫布线来进一步加快布线过程。

在的全局布线算法中,布线边界是多层次的,其范围由小到大。采用了三种边界范围和两种高度限制方法,一共六种组合。在两种高度限制方法中,高度分别受到上一层和金属层的限制。首先用FLUTE计算了二维引脚的RSMT。第一个边界范围在RSMT的分段上,严格遵循RSMT的布线方向。第二个边界范围也在RSMT上。但是,它不能遵循布线的方向,这意味着可以不考虑连接关系而使用经过的g网格。最后一个边界是销位于x轴和y轴的范围。

通过使用堆栈来加速基于prim的迷宫布线算法,以保持在源-接收器最短路径搜索之间的节点被扩展。同时,采用快速中断机制来减少无用的搜索节点。提出的算法见算法3。该算法一直循环,直到每个引脚都连接起来,否则就不存在需要扩展的g网格。

在本实施例中,步骤S4具体为:试图删除所有没有经过构造的斯坦纳点和引脚的布线段,并在不违反布线约束的情况下找到两个连接组件之间的最短路径。如果最短路径的长度小于原布线段的长度,则用它替换原导线。重复这个过程,直到网中没有可以调整的边为止。

为了让一般技术人员更好的理解本发明的技术方案,以下结合附图对本发明进行详细介绍。

如图2所示,为根据本发明使用的时间驱动位置估计方法所产生的结果和使用SRP提出的多源传播算法所由于潜在不合理问题而产生的结果;(a)移动单元C1有两个相关网:网N1和网N2。(b)去掉网络N1和网络N2上的单元C1及其连接后,网络N1的剩余路径划分为两个子网:N11和N12,网络N2变成子网N21。利用多源传播算法,SRP对C1单元的红色区域进行定位,而绿色区域是最优区域。(c)不合理的最早遭遇战略可能会给SRP带来问题。(d)使用的时间驱动位置估计方法去除(a)的结果。

参考图3,在本实施例中,在删除与重新定位单元格相关的连接后,使用算法1来估计新的位置;在算法1的第1-2行中,首先得到最小矩形覆盖所有层关联网的边界框的位置范围。然后,在第3-22行计算每个网的估计成本。临界扩展过程见第12-15行,其中新扩展的位置应在估计边界内,同时满足方向约束和最小层规则。在算法计算之后,每个位置的估计成本会增加该网络中移除的g网格的数量与最短距离之间的差值。这个差异表示将单元格移动到新位置而不影响其余连接的成本(第19-21行)。

参考图4,在本实施例中,将算法1的时间复杂度降低为O(XY+(X+Y)M+MlgM);算法2在第5-10行处理的情况是:只有一个轴中有偏移,并使用双环遍历g网格的行和列。为了处理两个轴都有偏移的情况,首先用Zdis对所有g图按升序排序(第11行和第13行),然后使用两个数组来计算距离。数组QB存储宽度优先搜索(BFS)顺序的g网格。阵列QA存储QB中Zdis大于当前距离的未使用的g网格。当G图在QA中的Zdis不大于QB处的距离时,将G-grids从QA转移到QB。(第14-25行)的时间复杂度是O(XY+M)作为zl中的每个g网格;只访问一次,GR中的每个g网格都传输一次。使用c++开源矩阵库Eigen来提高算法2的性能,其中第6行和第9行可以通过预处理的最小操作向量来加速

参考图5为算法3,进一步加快布线过程。在算法3中,任意一个引脚从一开始就作为一个源存储在栈S中,其他引脚到源的距离存储在优先队列PQ中。堆叠中具有相同距离的g网格将在每一轮节点扩展中进行扩展,由第2行、第5行和第6行保证。如果当前g网格距离不小于PQ中的最小距离,则从PQ中相应引脚的路径将连接到布线连接。路径中的g网格将被视为源,并以零距离添加到堆栈的顶部。第14-17行在指南范围内应用网格搜索来扩展新的g网格。plus1Q是一个辅助数组,用于存储扩展后的距离为1的g网格,在一轮扩展之后(第10行和第20行),plus1Q中的搜索节点被移动到堆栈的顶部。在plus1Q的帮助下,堆栈S将展开节点的距离存储在a以单调的方式保证算法的正确性。该算法一直循环,直到每个引脚都连接起来,否则就不存在需要扩展的g网格。

在本实施例中,图6为本发明在基准hidden06上的每个阶段之后的线长分布。(a)初步布线结果。(b)3D全局布线后。(c)单元迁移和网络改道后。(d)边缘调整细化后的最终结果。基准hidden06的初始结果包含很少的网和短的线长度。通过实现三维全局布线算法和单元重布线和网络重布线方法,短网络数量显著增加,表明了算法的有效性。最后,提出的边缘调整方法进一步改进了布线结果。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种时钟树布局方法、装置、电子设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类