一种基于线网分布的可布线性驱动的全局布局方法及装置与流程

文档序号:24826344发布日期:2021-04-27 15:56阅读:142来源:国知局
一种基于线网分布的可布线性驱动的全局布局方法及装置与流程

1.本发明属于集成电路技术领域,具体涉及一种基于线网分布的可布线性驱动的全局布局方法及装置。


背景技术:

2.器件的布局和器件间的布线是集成电路设计中非常重要的两个流程,在布局算法的发展初期,由于集成电路的规模较小,工艺制程对布局结果的要求不高,线长是算法需要考虑的唯一因素。随着超大规模集成电路的规模和工艺制程的发展,物理设计流程中的布线难度也不断提升,仅仅在布线阶段考虑可布线性很难得到理想的结果。只考虑线长的布局可能会造成之后布线阶段出现不可修复的drc(design rule check,设计规则检查)违例,为了得到对布线更为友好的布局结果,需要在布局阶段即考虑可布线性。
3.相关技术中,为了得到对布线更为友好的布局结果,采用迭代地执行全局布局、可布线性评估及可布线性优化的方式,直至可布线性评估结果满足预期。其中,可布线性评估采用全局布线器,该全局布线器可以返回包含g

cell布线需求及布线容量的拥塞图。在可布线性优化阶段,采用图1所示的单元膨胀的方法,对于拥塞g

cell内的标准单元按比例进行膨胀;如果膨胀之后拥塞g

cell内的标准单元相互重叠,且密度超过了目标密度,则在之后的全局布局中,这些膨胀后的标准单元将会逐渐分开,从而减少该g

cell的布线拥塞。
4.然而,上述的单元膨胀法只能解决由于局部标准单元密集造成的布线拥塞,对于与拥塞相关的标准单元,如果其不位于拥塞g

cell内则会被忽略;并且,在大量长线网聚集、长线网上的标准单元彼此之间相距较远的情况下,上述的单元膨胀法并不能将这些长线网分开。因此,现有技术采用上述方式得到的布局结果,对后续的布线仍不够友好,造成布线溢出的可能性较高。


技术实现要素:

5.为了得到对布线更为友好的布局结果,从而减少布线溢出的概率,本发明提供了一种基于线网分布的可布线性驱动的全局布局方法及装置。
6.本发明要解决的技术问题通过以下技术方案实现:第一方面,本发明提供了一种基于线网分布的可布线性驱动的全局布局方法,包括:步骤a:利用基于静电学模型的全局布局算法对待布局的各个标准单元进行全局布局,得到第一布局结果;步骤b:对所述第一布局结果进行布局合法化处理,得到第二布局结果;步骤c:基于所述第二布局结果进行全局布线,得到g

cell拥塞图和线网分布路径;步骤d:统计所述g

cell拥塞图中的布线溢出总数;步骤e:响应于步骤d中所统计的布线溢出总数超出阈值,依次执行单元膨胀子步
骤和探测窗口应用子步骤,然后返回步骤a;步骤f:响应于步骤d中所统计的布线溢出总数未超出阈值,输出所述第二布局结果;其中,所述单元膨胀子步骤包括:基于所述g

cell拥塞图和所述线网分布路径,确定水平穿过一个或多个拥塞g

cell的第一目标线网,并确定垂直穿过一个或多个拥塞g

cell的第二目标线网;针对每个第一目标线网,基于该第一目标线网水平穿过的各个拥塞g

cell确定对应的垂直膨胀系数,并使该第一目标线网上的各个第一目标单元基于所述垂直膨胀系数进行垂直膨胀;所述第一目标单元包括:位于第一目标线网上的、且垂直坐标与所在第一目标线网水平穿过的任一拥塞g

cell有所重叠的标准单元;针对每个第二目标线网,基于该第二目标线网垂直穿过的各个拥塞g

cell确定对应的水平膨胀系数,并使该第二目标线网上的各个第二目标单元基于所述水平膨胀系数进行水平膨胀;所述第二目标单元包括:位于第二目标线网上的、且水平坐标与所在第二目标线网垂直穿过的任一拥塞g

cell有所重叠的标准单元;所述探测窗口应用子步骤包括:针对所述第一目标单元以及所述第二目标单元中的每个标准单元,确定与该标准单元不在同一条线网上的、且所属线网与该标准单元所属线网穿过相同拥塞g

cell的其他的第一目标单元和第二目标单元,作为该标准单元的相关单元;为每个第一目标单元生成第一虚拟探测窗口,该第一虚拟探测窗口用于在再次执行步骤a的过程中,探测垂直坐标与该第一虚拟探测窗口的垂直坐标有所重叠的相关单元,并基于探测到的相关单元对该第一目标单元施加额外的密度梯度;为每个第二目标单元生成第二虚拟探测窗口,该第二虚拟探测窗口用于在再次执行步骤a的过程中,探测水平坐标与该第二虚拟探测窗口的水平坐标有所重叠的相关单元,并基于探测到的相关单元对该第二目标单元施加额外的密度梯度;其中,每个第一目标单元的第一虚拟探测窗口的坐标范围覆盖且超出该第一目标单元的坐标范围;每个第二目标单元的第二虚拟探测窗口的坐标范围覆盖且超出该第二目标单元的坐标范围。
7.可选地,所述单元膨胀子步骤中,针对每个第一目标线网,基于该第一目标线网水平穿过的各个拥塞g

cell确定对应的垂直膨胀系数,包括:针对每个第一目标线网,基于该第一目标线网水平穿过的各个拥塞g

cell的布线需求及布线容量分别计算垂直膨胀系数;将所计算的各个垂直膨胀系数中的最大值作为该第一目标线网对应的垂直膨胀系数;所述单元膨胀子步骤中,针对每个第二目标线网,基于该第二目标线网垂直穿过的各个拥塞g

cell确定对应的水平膨胀系数,包括:针对每个第二目标线网,基于该第二目标线网垂直穿过的各个拥塞g

cell的布线需求及布线容量分别计算水平膨胀系数;将所计算的各个水平膨胀系数中的最大值作为该第二目标线网对应的水平膨胀系数。
8.可选地,所述单元膨胀子步骤中,使该第一目标线网上的各个第一目标单元基于所述垂直膨胀系数进行垂直膨胀,包括:针对该第一目标线网上的每个第一目标单元,基于所述垂直膨胀系数,利用预设的膨胀尺寸计算公式计算该第一目标单元的膨胀后垂直尺寸,并使该第一目标单元按照所计算的膨胀后垂直尺寸进行垂直膨胀;所述单元膨胀子步骤中,使该第二目标线网上的各个第二目标单元基于所述水平膨胀系数进行水平膨胀,包括:针对该第二目标线网上的各个第二目标单元,基于所述水平膨胀系数,利用所述膨胀尺寸计算公式计算该第二目标单元的膨胀后水平尺寸,并使该第二目标单元按照所计算的膨胀后水平尺寸进行水平膨胀;所述膨胀尺寸计算公式为:;其中,当计算膨胀后垂直尺寸时,代表每个第一目标单元的膨胀前垂直尺寸,代表该第一目标单元的膨胀后垂直尺寸,为预设的膨胀单位,代表所述垂直膨胀系数;当计算膨胀后水平尺寸时,代表每个第二目标单元的膨胀前水平尺寸,代表该第二目标单元的膨胀后水平尺寸,为所述膨胀单位,代表所述水平膨胀系数。
9.可选地,所述第一虚拟探测窗口具体用于:在步骤a的执行过程中,探测垂直坐标与该第一虚拟探测窗口的垂直坐标有所重叠的相关单元;当探测到的相关单元的数量大于第一上限时,为探测到的每个相关单元在所述第一虚拟探测窗口中对应生成第一伪标准单元;其中,探测到的每个相关单元与对应的第一伪标准单元具有相同的垂直坐标,且每个相关单元与对应的第一伪标准单元具有相同的尺寸;所述第一伪标准单元与该第一虚拟探测窗口所属的第一目标单元具有相同的水平坐标;模拟各个所述第一伪标准单元共同作用于该第一虚拟探测窗口所属的第一目标单元的库仑力,作为额外的密度梯度施加于该第一目标单元;所述第二虚拟探测窗口具体用于:在步骤a的执行过程中,探测水平坐标与该第二虚拟探测窗口的水平坐标有所重叠的相关单元;当探测到的相关单元的数量大于第二上限时,为探测到的每个相关单元在所述第二虚拟探测窗口中对应生成第二伪标准单元;其中,探测到的每个相关单元与对应的第二伪标准单元具有相同的水平坐标,且每个相关单元与对应的第二伪标准单元具有相同的尺寸;所述第二伪标准单元与该第二虚拟探测窗口所属的第二目标单元具有相同的垂直坐标;模拟各个所述第二伪标准单元共同作用于该第二虚拟探测窗口所属的第二目标单元的库仑力,作为额外的密度梯度施加于该第二目标单元。
10.可选地,所述方法还包括:
在执行步骤e中的所述单元膨胀子步骤之后,且未执行步骤e中的所述探测窗口应用子步骤之前,对上一次执行步骤e时膨胀过的、且本次未膨胀的标准单元进行部分缩减,缩减方式与上一次执行步骤e时该标准单元的膨胀方式相逆。
11.可选地,所述方法还包括:在对上一次执行步骤e时膨胀过的、且本次未膨胀的标准单元进行部分缩减之后,且未执行步骤e中的所述探测窗口应用子步骤之前,统计布局面积是否充足;如果充足,继续执行所述探测窗口应用子步骤;如果不充足,按照膨胀面积从小到大的顺序,逐个还原本次已膨胀的标准单元,直至布局面积充足时停止还原。
12.可选地,所述第一虚拟探测窗口在垂直方向上的宽度等于步骤a中进行全局布局时所设定的行高的m倍,所述第二虚拟探测窗口在水平方向上的宽度等于步骤a中进行全局布局时所设定的行高的m倍;m为大于或等于1的整数。
13.可选地,所述第一上限和所述第二上限均按照下述公式进行确定:;其中,当确定所述第一上限时,代表所述第一上限,代表所述第一虚拟探测窗口探测到的相关单元的数量,代表所述第一虚拟探测窗口所属的第一目标单元进行垂直膨胀时所基于的垂直膨胀系数;当确定所述第二上限时,代表所述第二上限,代表所述第二虚拟探测窗口探测到的相关单元的数量,代表所述第二虚拟探测窗口所属的第二目标单元进行水平膨胀时所基于的水平膨胀系数。
14.可选地,所述步骤a中,当是初次进行全局布局时,利用基于静电学模型的全局布局算法对待布局的各个标准单元进行全局布局,得到第一布局结果;当非初次进行全局布局时,基于初次进行全局布局时的经验参数,利用基于静电学模型的全局布局算法对待布局的各个标准单元进行全局布局,得到第一布局结果。
15.第二方面,本发明实施例提供了一种基于线网分布的可布线性驱动的全局布局装置,包括:布局模块,用于利用基于静电学模型的全局布局算法对待布局的各个标准单元进行全局布局,得到第一布局结果;布局合法化处理模块,对所述第一布局结果进行布局合法化处理,得到第二布局结果;全局布线模块,用于基于所述第二布局结果进行全局布线,得到g

cell拥塞图和线网分布路径;统计模块,用于统计所述g

cell拥塞图中的布线溢出总数;可布线性优化模块,用于响应于所述统计模块所统计的布线溢出总数超出阈值,依次调用单元膨胀子模块和探测窗口应用子模块,然后返回所述布局模块;输出模块,用于响应于所述统计模块所统计的布线溢出总数未超出阈值,输出所
述第二布局结果;其中,所述单元膨胀子模块,用于基于所述g

cell拥塞图和所述线网分布路径,确定水平穿过一个或多个拥塞g

cell的第一目标线网,并确定垂直穿过一个或多个拥塞g

cell的第二目标线网;针对每个第一目标线网,基于该第一目标线网水平穿过的各个拥塞g

cell确定对应的垂直膨胀系数,并使该第一目标线网上的各个第一目标单元基于所述垂直膨胀系数进行垂直膨胀;针对每个第二目标线网,基于该第二目标线网垂直穿过的各个拥塞g

cell确定对应的水平膨胀系数,并使该第二目标线网上的各个第二目标单元基于所述水平膨胀系数进行水平膨胀;其中,所述第一目标单元包括:位于第一目标线网上的、且垂直坐标与所在第一目标线网水平穿过的任一拥塞有所重叠的标准单元;所述第二目标单元包括:位于第二目标线网上的、且水平坐标与所在第二目标线网垂直穿过的任一拥塞g

cell有所重叠的标准单元;所述探测窗口应用子模块,用于针对所述第一目标单元以及所述第二目标单元中的每个标准单元,确定与该标准单元不在同一条线网上的、且所属线网与该标准单元所属线网穿过相同拥塞g

cell的其他的第一目标单元和第二目标单元,作为该标准单元的相关单元;为每个第一目标单元生成第一虚拟探测窗口,该第一虚拟探测窗口用于在调用所述布局模块的过程中,探测垂直坐标与该第一虚拟探测窗口的垂直坐标有所重叠的相关单元,并基于探测到的相关单元对该第一目标单元施加额外的密度梯度;为每个第二目标单元生成第二虚拟探测窗口,该第二虚拟探测窗口用于在调用所述布局模块的过程中,探测水平坐标与该第二虚拟探测窗口的水平坐标有所重叠的相关单元,并基于探测到的相关单元对该第二目标单元施加额外的密度梯度;其中,每个第一目标单元的第一虚拟探测窗口的坐标范围覆盖且超出该第一目标单元的坐标范围;每个第二目标单元的第二虚拟探测窗口的坐标范围覆盖且超出该第二目标单元的坐标范围。
16.本发明提供的基于线网分布的可布线性驱动的全局布局方法中,在可布线性优化阶段,即在步骤e中,只要标准单元所在的线网水平穿过或垂直穿过拥塞g

cell,且该标准单元的坐标与拥塞g

cell的坐标在另一方向上有所重叠,则该标准单元便会相应的膨胀;因此,本发明将与拥塞g

cell相关的所有标准单元均进行了膨胀,没有遗漏。并且,本发明在可布线性优化阶段使用两种虚拟探测窗口来探测参与膨胀的标准单元的相关单元,该相关单元与该标准单元不在同一条线网,且同样是与拥塞g

cell相关标准单元;这样,即使是长线网上相距较远的标准单元,他们之间的互相影响本发明也将其可考虑在内。虚拟探测窗口在探测到相关单元后,会对虚拟探测窗口所属的标准单元施加额外的密度梯度,从而在后续重新进行全局布局时,可以促使分布密集的长线网分开,缓解长线网造成的布线拥塞而导致全局布局效果不佳的情况。综上可见,本发明能够得到对布线更为友好的布局结果,从而减少布线溢出的概率。
17.以下将结合附图及对本发明做进一步详细说明。
附图说明
18.图1是现有技术中的单元膨胀法的示意图;图2是本发明实施例提供的一种基于线网分布的可布线性驱动的全局布局方法的流程图;
图3是图2中的步骤e的子步骤的流程图;图4是本发明实施例中第一目标单元进行垂直膨胀的示意图;图5是本发明实施例中第一虚拟探测窗口向自身所在标准单元施加额外的密度梯度的示意图;图6本发明实施例中第一虚拟探测窗口生成第一伪标准单元的示意图;图7是本发明实施例提供的一种基于线网分布的可布线性驱动的全局布局装置的结构示意图。
具体实施方式
19.下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
20.为了得到对布线更为友好的布局结果,从而减少布线溢出的概率,本发明实施例提供了一种基于线网分布的可布线性驱动的全局布局方法及装置;其中,该方法的执行主体即为该装置;该装置可以应用于电子设备中。在具体应用中,该电子设备可以为计算机、便携式计算机等。在此不作限定,任何可以实现本发明的电子设备,均属于本发明的保护范围。
21.首先,对本发明实施例提供的一种基于线网分布的可布线性驱动的全局布局方法进行详细说明。如图2所示,该方法可以包括以下步骤:步骤a:利用基于静电学模型的全局布局算法对待布局的各个标准单元进行全局布局,得到第一布局结果。
22.具体的,给定一组待布局且可移动的标准单元、一组线网、可布局区域和目标密度;其中,,和分别代表标准单元的水平坐标和垂直坐标;可布局区域分为许多个大小相同的规则的方块的集合,方块即是g

cell;每个方块内的标准单元的密度不能超过目标密度。由此,解析式布局的目标函数可以表示为:
ꢀꢀꢀꢀꢀ
式1.1其中,代表所有线网的线长之和,代表方块的密度。由于求解最优化需要目标函数可微,因此将目标函数转化为如下形式:
ꢀꢀꢀꢀ
式1.2其中,为待求解最优解的目标函数,为基于静电学模型的密度函数,为采用平滑化的半周长线长进行平滑后的总线长,为惩罚因子。在此静电学模型下,每个标准单元均带有数值等于自身面积的电荷量,通过快速傅里叶变换求解泊松方程计算标准单元间的相互作用力,以此计算密度梯度。采用nesterov加速梯度法求解形式转
换后的目标函数的最优解,该最优解满足方块对密度的要求,且是只存在少数重叠且半周长线长的最小解。得到的最优解即是第一布局结果,具体代表了各个标准单元的位置分布情况。
23.在实际应用中,该步骤a中,当是初次进行全局布局时,可以按照上述过程得到第一布局结果;当非初次进行全局布局时,为了加快算法迭代速度,可以基于初次进行全局布局时的经验参数,利用基于静电学模型的全局布局算法对待布局的各个标准单元进行全局布局,得到第一布局结果;该经验参数为初次进行全局布局的算法迭代过程中的参数,如惩罚因子等。优选地,步骤a中的全局布局的算法迭代次数约800次,每次重新布局时,可以从倒数第100~200次中的某一次迭代时的参数作为算法迭代的初始参数。
24.步骤b:对第一布局结果进行布局合法化处理,得到第二布局结果。
25.具体的,将第一布局结果加载到布局布线版图设计工具中的布局合法化模块,将第一布局结果中的各个标准单元对齐放置在行(row)内,对齐相应的电源线,且消除标准单元间的重叠,得到第二布局结果。其中,布局布线版图设计工具可以是innovus,并不局限于此。这里,innovus是一种数字芯片布局布线版图设计工具。
26.步骤c:基于第二布局结果进行全局布线,得到g

cell拥塞图和线网分布路径。
27.具体的,将第二布局结果加载到布局布线版图设计工具的全局布线模块,该全局布线模块接收第二布局结果进行布线后返回拥塞图和线网分布路径;该拥塞图包括了每个g

cell在水平方向、垂直方向的布线需求及布线容量。这里使用的布局布线版图设计工具可以与布局合法化处理时使用的工具相同。
28.步骤d:统计g

cell拥塞图中的布线溢出总数。
29.具体的,布局布线版图设计工具通常都具有拥塞分析功能,使用该拥塞分析功能统计布线溢出总数;布线溢出总数等于拥塞图中所有拥塞g

cell的布线需求与布线容量两者之差的总和。
30.步骤e:响应于步骤d中所统计的布线溢出总数超出阈值,依次执行单元膨胀子步骤和探测窗口应用子步骤;然后返回步骤a。
31.可以理解的是,若布线溢出总数大于阈值,则说明步骤b得到的第二布局结果不理想,需要进行可布线性优化。可布线性优化可以分为单元膨胀子步骤和探测窗口应用子步骤两个子步骤。执行完这两个子步骤后,返回步骤a重新进行全局布局。
32.其中,参见图2所示,单元膨胀子步骤包括:步骤e

1:基于g

cell拥塞图和线网分布路径,确定水平穿过一个或多个拥塞g

cell的第一目标线网,并确定垂直穿过一个或多个拥塞g

cell的第二目标线网。
33.步骤e

2:针对每个第一目标线网,基于该第一目标线网水平穿过的各个拥塞g

cell确定对应的垂直膨胀系数,并使该第一目标线网上的各个第一目标单元基于所述垂直膨胀系数进行垂直膨胀;这里说的第一目标单元包括:位于第一目标线网上的、且垂直坐标与所在第一目标线网水平穿过的任一拥塞g

cell有所重叠的标准单元。
34.步骤e

3:针对每个第二目标线网,基于该第二目标线网垂直穿过的各个拥塞g

cell确定对应的水平膨胀系数,并使该第二目标线网上的各个第二目标单元基于所述水平膨胀系数进行水平膨胀;这里说的第二目标单元包括:位于第二目标线网上的、且水平坐标与所在第二目标线网垂直穿过的任一拥塞g

cell有所重叠的标准单元。
35.其中,基于第一目标线网水平穿过的各个拥塞g

cell确定对应的垂直膨胀系数具体实现方式,以及基于第二目标线网垂直穿过的各个拥塞g

cell确定对应的水平膨胀系数的具体实现方式均存在多种。为了方案清楚及布局清晰,后续对两种具体实现方式进行举例说明。
36.可以理解的是,所谓垂直膨胀,即是第一目标单元在垂直方向上的尺寸增加,而在水平方向上的尺寸则保持不变。同理,水平膨胀即是第二目标单元在水平方向上的尺寸增加,而在垂直方向上的尺寸则保持不变。
37.举例而言,参见图4中的(a)部分所示,标准单元1和标准单元4所在的线网、标准单元3和标准单元5所在的线网以及标准单元2和标准单元6所在的线网均为第一目标线网;这些第一目标线网均水平穿过了图3正中心的拥塞g

cell。其中,标准单元2、标准单元3、标准单元4、标准单元5以及标准单元6的垂直坐标均与拥塞g

cell的垂直坐标有所重叠,故而他们均是第一目标单元;相应的,参见图4中的(b)部分所示,这些第一目标单元均进行了垂直膨胀。水平膨胀的实现过程与垂直膨胀相似,这里不再赘述。
38.可以理解的是,对于任一个拥塞g

cell而言,可能仅被第一目标线网穿过,也可能仅被第二目标线网穿过,也可能同时被第一目标线网和第二目标线网穿过。另外,对于单个的标准单元而言,由于其所在的线网不仅一个,因此,有些标准单元既可能位于一个第一目标线网上,也可能同时位于一个第二目标线网上;也就是说,对于单个的标准单元而言,既可能是第一目标单元,也可能同时是第二目标单元;此时,该单元膨胀子步骤执行完毕后,该标准单元既进行了垂直膨胀,又进行了水平膨胀。
39.继续参见图2所示,步骤e中的探测窗口应用子步骤包括:步骤e

4:针对第一目标单元以及第二目标单元中的每个标准单元,确定与该标准单元不在同一条线网上的、且所属线网与该标准单元所属线网穿过相同拥塞g

cell的其他的第一目标单元和第二目标单元,作为该标准单元的相关单元。
40.步骤e

5:为每个第一目标单元生成第一虚拟探测窗口,该第一虚拟探测窗口用于在再次执行步骤a的过程中,探测垂直坐标与该第一虚拟探测窗口的垂直坐标有所重叠的相关单元,并基于探测到的相关单元对该第一目标单元施加额外的密度梯度。
41.步骤e

6:为每个第二目标单元生成第二虚拟探测窗口,该第二虚拟探测窗口用于在再次执行步骤a的过程中,探测水平坐标与该第二虚拟探测窗口的水平坐标有所重叠的相关单元,并基于探测到的相关单元对该第二目标单元施加额外的密度梯度。
42.其中,每个第一目标单元的第一虚拟探测窗口的坐标范围覆盖且超出该第一目标单元的坐标范围;每个第二目标单元的第二虚拟探测窗口的坐标范围覆盖且超出该第二目标单元的坐标范围。
43.举例而言,参见图5所示,标准单元2、标准单元3、标准单元4、标准单元5以及标准单元6所在的线网均水平穿过拥塞g

cell;其中,标准单元1、标准单元2、标准单元3、标准单元4以及标准单元5均与拥塞g

cell在垂直坐标上有所重叠,故他们均是第一目标单元;其中,对于标准单元1而言,标准单元3、标准单元4以及标准单元5均与标准单元1不在同一个线网上,故而他们都是标准单元1的相关单元。在后续再次执行步骤a重新进行全局布局时,6个标准单元在移动过程中,标准单元1的第一虚拟探测窗口探测到标准单元3的垂直坐标与该第一虚拟探测窗口的垂直坐标有所重叠,则该第一虚拟探测窗口则基于该标准单元3
给标准单元1施加一个额外的密度梯度,该密度梯度相当于一个虚拟的标准单元3’加诸于标准单元1上的库仑力f。该库仑力f可以表示为以下形式:其中,f为该虚拟的标准单元3’对标准单元1的作用力,为常量,和分别为标准单元1和虚拟的标准单元3’的面积。需要说明的是,在基于静电学模型的全局布局算法中,标准单元的带电量等于其面积,故和也表示标准单元1和虚拟的标准单元3’的带电量,d为标准单元1与虚拟的标准单元3’的中心点之间的距离。该库仑力代表的额外的密度梯度将在步骤a中求解目标函数的最优解的过程中,促使标准单元1所在的线网与标准单元3所在的线网分开。
44.需要说明的是,图5中,标准单元2的第一虚拟探测窗口的上下两条线使用实线、左右两条线使用虚线进行表示的意义在于,该第一虚拟探测窗口进行的是垂直方向的探测,探测范围仅在垂直方向上具有限定的宽度,而在水平方向上则不限定宽度。在一种可选实现方式中,第一虚拟探测窗口在垂直方向上的宽度等于步骤a中进行全局布局时所设定的行高的m倍。同理的,第二虚拟探测窗口在水平方向上的宽度等于步骤a中进行全局布局时所设定的行高的m倍;m为大于或等于1的整数。第二虚拟探测窗口的工作原理与第一虚拟探测窗口的工作原理相似,这里不再赘述。
45.步骤f:响应于步骤d中所统计的布线溢出总数未超出阈值,输出第二布局结果。
46.可以理解的是,步骤d中所统计的布线溢出总数未超出阈值,则说明第二布局结果对于全局布线是友好的,不会造成布线溢出。
47.在实际应用中,当使用的innovus时,输出的第二布局结果是一个后缀为def的文件。
48.本发明提供的基于线网分布的可布线性驱动的全局布局方法中,在可布线性优化阶段,即在步骤e中,只要标准单元所在的线网水平穿过或垂直穿过拥塞g

cell,且该标准单元的坐标与拥塞g

cell的坐标在另一方向上有所重叠,则该标准单元便会相应的膨胀;因此,本发明将与拥塞g

cell相关的所有标准单元均进行了膨胀,没有遗漏。并且,本发明在可布线性优化阶段使用两种虚拟探测窗口来探测参与膨胀的标准单元的相关单元,该相关单元与该标准单元不在同一条线网,且同样是与拥塞g

cell相关标准单元;这样,即使是长线网上相距较远的标准单元,他们之间的互相影响本发明也将其可考虑在内。虚拟探测窗口在探测到相关单元后,会对虚拟探测窗口所属的标准单元施加额外的密度梯度,从而在后续重新进行全局布局时,可以促使分布密集的长线网分开,缓解长线网造成的布线拥塞而导致全局布局效果不佳的情况。综上可见,本发明能够得到对布线更为友好的布局结果,从而减少布线溢出的概率。
49.下面,对基于第一目标线网水平穿过的各个拥塞g

cell确定对应的垂直膨胀系数具体实现方式,以及基于第二目标线网垂直穿过的各个拥塞g

cell确定对应的水平膨胀系数的具体实现方式进行举例说明。
50.示例性的,在一种实现方式中,针对每个第一目标线网,基于该第一目标线网水平穿过的各个拥塞g

cell确定对应的垂直膨胀系数,可以包括:针对每个第一目标线网,基于该第一目标线网水平穿过的各个拥塞g

cell的布线需求及布线容量分别计算垂直膨胀系数;将所计算的各个垂直膨胀系数中的最大值作为该第一目标线网对应的垂直膨胀系数。
51.在另一种实现方式中,针对每个第一目标线网,基于该第一目标线网水平穿过的各个拥塞g

cell确定对应的垂直膨胀系数,可以包括:针对每个第一目标线网,基于该第一目标线网水平穿过的各个拥塞g

cell的布线需求及布线容量分别计算垂直膨胀系数;求取所计算的各个垂直膨胀系数的平均值作为该第一目标线网对应的垂直膨胀系数。
52.相应的,针对每个第二目标线网,基于该第二目标线网垂直穿过的各个拥塞g

cell确定对应的水平膨胀系数,可以包括:针对每个第二目标线网,基于该第二目标线网垂直穿过的各个拥塞g

cell的布线需求及布线容量分别计算水平膨胀系数;将所计算的各个水平膨胀系数中的最大值作为该第二目标线网对应的水平膨胀系数。
53.在另一种实现方式中,针对每个第二目标线网,基于该第二目标线网垂直穿过的各个拥塞g

cell确定对应的水平膨胀系数,可以包括:针对每个第二目标线网,基于该第二目标线网垂直穿过的各个拥塞g

cell的布线需求及布线容量分别计算水平膨胀系数;求取所计算的各个水平膨胀系数的平均值作为该第二目标线网对应的水平膨胀系数。
54.在实际应用中,确定垂直膨胀系数和水平膨胀系数的实现方式优选保持一致。
55.在一种可选实现方式中,为了避免单元膨胀子步骤执行完毕后,因标准单元的膨胀而导致的布局面积不足,可以采用平滑化的膨胀而非直接按比例膨胀的方式来对标准单元进行膨胀。
56.具体的,在单元膨胀子步骤中,使第一目标线网上的各个第一目标单元基于垂直膨胀系数进行垂直膨胀,可以包括:针对该第一目标线网上的每个第一目标单元,基于该单元膨胀子步骤中所确定的垂直膨胀系数,利用预设的膨胀尺寸计算公式计算该第一目标单元的膨胀后垂直尺寸,并使该第一目标单元按照所计算的膨胀后垂直尺寸进行垂直膨胀。
57.同理的,使第二目标线网上的各个第二目标单元基于所述水平膨胀系数进行水平膨胀,可以包括:针对该第二目标线网上的各个第二目标单元,基于该单元膨胀子步骤中所确定的水平膨胀系数,利用上述膨胀尺寸计算公式计算该第二目标单元的膨胀后水平尺寸,并使该第二目标单元按照所计算的膨胀后水平尺寸进行水平膨胀。
58.其中,膨胀尺寸计算公式为:
;其中,对于第一目标单元的垂直膨胀而言,代表每个第一目标单元的膨胀前垂直尺寸,代表该第一目标单元的膨胀后垂直尺寸,为预设的膨胀单位,代表垂直膨胀所基于的垂直膨胀系数;对于第二目标单元的水平膨胀而言,代表每个第二目标单元的膨胀前水平尺寸,代表该第二目标单元的膨胀后水平尺寸,为上述的膨胀单位,代表水平膨胀所基于的水平膨胀系数。
59.在一种可选实现方式中,第一虚拟探测窗口和第二虚拟探测窗口可以在探测到足够多的相关单元时,才向自身所在的标准单元施加额外的密度梯度;这样,对于长线网聚集情况相对密集的布局需求,可以提升步骤a中求解目标函数时算法运行的稳定性,防止算法求解不收敛。
60.此时,该第一虚拟探测窗口可以具体用于:(1)在步骤a的执行过程中,探测垂直坐标与该第一虚拟探测窗口的垂直坐标有所重叠的相关单元;(2)当探测到的相关单元的数量大于第一上限时,为探测到的每个相关单元在第一虚拟探测窗口中对应生成第一伪标准单元;其中,探测到的每个相关单元与对应的第一伪标准单元具有相同的垂直坐标,且每个相关单元与对应的第一伪标准单元具有相同的尺寸;第一伪标准单元与该第一虚拟探测窗口所属的第一目标单元具有相同的水平坐标;(3)模拟各个第一伪标准单元共同作用于该第一虚拟探测窗口所属的第一目标单元的库仑力,作为额外的密度梯度施加于该第一目标单元。
61.参见图6所示,标准单元1的第一虚拟探测窗口探测到标准单元3和标准单元4两个相关单元,从而在自身的窗口中生成了标准单元3对应的第一伪标准单元3’,以及生成了标准单元4对应的第一伪标准单元4’;标准单元5的垂直坐标与第一虚拟探测窗口的垂直坐标没有重叠,不属于标准单元1的相关单元。然后,第一虚拟探测窗口向标准单元1施加额外的密度梯度,该密度梯度相当于第一伪标准单元3’和第一伪标准单元4’共同作用在标准单元1上的库仑力。
62.同理的,此时该第二虚拟探测窗口可以具体用于:(1)在步骤a的执行过程中,探测水平坐标与该第二虚拟探测窗口的水平坐标有所重叠的相关单元;(2)当探测到的相关单元的数量大于第二上限时,为探测到的每个相关单元在第二虚拟探测窗口中对应生成第二伪标准单元;其中,探测到的每个相关单元与对应的第二伪标准单元具有相同的水平坐标,且每个相关单元与对应的第二伪标准单元具有相同的尺寸;第二伪标准单元与该第二虚拟探测窗口所属的第二目标单元具有相同的垂直坐标;(3)模拟各个第二伪标准单元共同作用于该第二虚拟探测窗口所属的第二目标单元的库仑力,作为额外的密度梯度施加于该第二目标单元。
63.其中,第一上限和第二上限可以根据需求分别预先设定。优选地,第一上限和第二上限均可以按照下述公式进行确定:
;其中,当需要确定第一上限时,代表第一上限,代表第一虚拟探测窗口探测到的相关单元的数量,代表第一虚拟探测窗口所属的第一目标单元进行垂直膨胀时所基于的垂直膨胀系数;当需要确定第二上限时,代表第二上限,代表第二虚拟探测窗口探测到的相关单元的数量,代表第二虚拟探测窗口所属的第二目标单元进行水平膨胀时所基于的水平膨胀系数。
64.在一种可选实现方式中,为了避免因重复进行全局布局而导致标准单元多次膨胀,造成布局面积不足的情况,在执行步骤e中的单元膨胀子步骤之后,且未执行步骤e中的探测窗口应用子步骤之前,可以对上一次执行步骤e时膨胀过的、且本次未膨胀的标准单元进行部分缩减,缩减方式与上一次执行步骤e时该标准单元的膨胀方式相逆。
65.举例而言,如果有一标准单元a在上一次执行步骤e时进行了垂直膨胀,而本次执行步骤e时未进行膨胀,则将标准单元a进行垂直缩减,即将标准单元在垂直方向上的尺寸进行缩减,而保持水平方向上的尺寸不变。如果有一标准单元b在上一次执行步骤e时进行了水平膨胀,而本次执行步骤e时未进行膨胀,则将标准单元b进行水平缩减,即将标准单元b在水平方向上的尺寸进行缩减,而保持垂直方向上的尺寸不变。如果有一标准单元c在上一次执行步骤e时既进行了垂直膨胀又进行了水平膨胀,而本次执行步骤e时未进行膨胀,则将标准单元c进行垂直缩减和水平缩减,即将标准单元c在垂直方向上的尺寸以及在水平方向上的尺寸均进行缩减。如果有一标准单元d在上一次执行步骤e时进行了垂直膨胀,本次执行步骤e时又进行了水平膨胀,则不对该标准单元d进行尺寸上的缩减。
66.在一种优选实现方式中,在对上一次执行步骤e时膨胀过的、且本次未膨胀的标准单元进行部分缩减之后,且未执行步骤e中的所述探测窗口应用子步骤之前,本发明实施例提供的方法还可以包括:统计布局面积是否充足;如果充足,继续执行探测窗口应用子步骤;如果不充足,按照膨胀面积从小到大的顺序,逐个还原本次已膨胀的标准单元,直至布局面积充足时停止还原。
67.可以理解的是,所谓还原本次已膨胀的标准单元,即是将本次已膨胀的标准单元的尺寸还原到本次未膨胀时的尺寸。
68.其中,统计布局面积是否充足,具体是统计当前的各个标准单元所占据的面积总和是否不超过可进行静电学全局布局的最小面积;如果超过,则按照膨胀面积从小到大的顺序,逐个还原本次已膨胀的标准单元,直至布局面积充足时停止还原;其中,每还原一个标准单元,即判断布局面积是否充足;如果充足,则停止还原;如果不充足继续还原下一个尚未还原过的、膨胀面积最小的标准单元,直至布局面积充足时停止还原。
69.相应于上述的一种基于线网分布的可布线性驱动的全局布局方法,本发明实施例还提供了一种基于线网分布的可布线性驱动的全局布局装置;如图7所示,该装置包括:布局模块701,用于利用基于静电学模型的全局布局算法对待布局的各个标准单
元进行全局布局,得到第一布局结果;布局合法化处理模块702,对第一布局结果进行布局合法化处理,得到第二布局结果;全局布线模块703,用于基于第二布局结果进行全局布线,得到g

cell拥塞图和线网分布路径;统计模块704,用于统计g

cell拥塞图中的布线溢出总数;可布线性优化模块705,用于响应于统计模块704所统计的布线溢出总数超出阈值,依次调用单元膨胀子模块和探测窗口应用子模块,然后返回布局模块701;输出模块706,用于响应于统计模块704所统计的布线溢出总数未超出阈值,输出第二布局结果;其中,单元膨胀子模块,用于基于g

cell拥塞图和线网分布路径,确定水平穿过一个或多个拥塞g

cell的第一目标线网,并确定垂直穿过一个或多个拥塞g

cell的第二目标线网;针对每个第一目标线网,基于该第一目标线网水平穿过的各个拥塞g

cell确定对应的垂直膨胀系数,并使该第一目标线网上的各个第一目标单元基于垂直膨胀系数进行垂直膨胀;针对每个第二目标线网,基于该第二目标线网垂直穿过的各个拥塞g

cell确定对应的水平膨胀系数,并使该第二目标线网上的各个第二目标单元基于水平膨胀系数进行水平膨胀;其中,第一目标单元包括:位于第一目标线网上的、且垂直坐标与所在第一目标线网水平穿过的任一拥塞g

cell有所重叠的标准单元;第二目标单元包括:位于第二目标线网上的、且水平坐标与所在第二目标线网垂直穿过的任一拥塞g

cell有所重叠的标准单元;探测窗口应用子模块,用于针对第一目标单元以及第二目标单元中的每个标准单元,确定与该标准单元不在同一条线网上的、且所属线网与该标准单元所属线网穿过相同拥塞g

cell的其他的第一目标单元和第二目标单元,作为该标准单元的相关单元;为每个第一目标单元生成第一虚拟探测窗口,该第一虚拟探测窗口用于在再次调用布局模块701的过程中,探测垂直坐标与该第一虚拟探测窗口的垂直坐标有所重叠的相关单元,并基于探测到的相关单元对该第一目标单元施加额外的密度梯度;为每个第二目标单元生成第二虚拟探测窗口,该第二虚拟探测窗口用于在再次调用布局模块701的过程中,探测水平坐标与该第二虚拟探测窗口的水平坐标有所重叠的相关单元,并基于探测到的相关单元对该第二目标单元施加额外的密度梯度;其中,每个第一目标单元的第一虚拟探测窗口的坐标范围覆盖且超出该第一目标单元的坐标范围;每个第二目标单元的第二虚拟探测窗口的坐标范围覆盖且超出该第二目标单元的坐标范围。
70.可选地,单元膨胀子模块针对每个第一目标线网,基于该第一目标线网水平穿过的各个拥塞g

cell确定对应的垂直膨胀系数,包括:针对每个第一目标线网,基于该第一目标线网水平穿过的各个拥塞g

cell的布线需求及布线容量分别计算垂直膨胀系数;将所计算的各个垂直膨胀系数中的最大值作为该第一目标线网对应的垂直膨胀系数。
71.单元膨胀子模块针对每个第二目标线网,基于该第二目标线网垂直穿过的各个拥塞g

cell确定对应的水平膨胀系数,包括:针对每个第二目标线网,基于该第二目标线网垂直穿过的各个拥塞g

cell的布线
需求及布线容量分别计算水平膨胀系数;将所计算的各个水平膨胀系数中的最大值作为该第二目标线网对应的水平膨胀系数。
72.可选地,单元膨胀子模块使该第一目标线网上的各个第一目标单元基于垂直膨胀系数进行垂直膨胀,包括:针对该第一目标线网上的每个第一目标单元,基于垂直膨胀系数,利用预设的膨胀尺寸计算公式计算该第一目标单元的膨胀后垂直尺寸,并使该第一目标单元按照所计算的膨胀后垂直尺寸进行垂直膨胀。
73.单元膨胀子模块使第二目标线网上的各个第二目标单元基于水平膨胀系数进行水平膨胀,包括:针对该第二目标线网上的各个第二目标单元,基于水平膨胀系数,利用膨胀尺寸计算公式计算该第二目标单元的膨胀后水平尺寸,并使该第二目标单元按照所计算的膨胀后水平尺寸进行水平膨胀;膨胀尺寸计算公式为:;其中,当计算膨胀后垂直尺寸时,代表每个第一目标单元的膨胀前垂直尺寸,代表该第一目标单元的膨胀后垂直尺寸,为预设的膨胀单位,代表垂直膨胀系数;当计算膨胀后水平尺寸时,代表每个第二目标单元的膨胀前水平尺寸,代表该第二目标单元的膨胀后水平尺寸,为膨胀单位,代表水平膨胀系数。
74.可选地,第一虚拟探测窗口具体用于:在布局模块的运行过程中,探测垂直坐标与该第一虚拟探测窗口的垂直坐标有所重叠的相关单元;当探测到的相关单元的数量大于第一上限时,为探测到的每个相关单元在第一虚拟探测窗口中对应生成第一伪标准单元;其中,探测到的每个相关单元与对应的第一伪标准单元具有相同的垂直坐标,且每个相关单元与对应的第一伪标准单元具有相同的尺寸;第一伪标准单元与该第一虚拟探测窗口所属的第一目标单元具有相同的水平坐标;模拟各个第一伪标准单元共同作用于该第一虚拟探测窗口所属的第一目标单元的库仑力,作为额外的密度梯度施加于该第一目标单元。
75.第二虚拟探测窗口具体用于:在布局模块的运行过程中,探测水平坐标与该第二虚拟探测窗口的水平坐标有所重叠的相关单元;当探测到的相关单元的数量大于第二上限时,为探测到的每个相关单元在第二虚拟探测窗口中对应生成第二伪标准单元;其中,探测到的每个相关单元与对应的第二伪标准单元具有相同的水平坐标,且每个相关单元与对应的第二伪标准单元具有相同的尺寸;第二伪标准单元与该第二虚拟探测窗口所属的第二目标单元具有相同的垂直坐标;模拟各个第二伪标准单元共同作用于该第二虚拟探测窗口所属的第二目标单元的库仑力,作为额外的密度梯度施加于该第二目标单元。
76.可选地,本发明实施例提供的基于线网分布的可布线性驱动的全局布局装置,还可以包括:缩减模块;该缩减模块用于:在调用单元膨胀子模块之后,且未调用探测窗口应用子模块之前,对上一次调用可布线性优化模块时膨胀过的、且本次未膨胀的标准单元进行部分缩减,缩减方式与上一次调用可布线性优化模块时该标准单元的膨胀方式相逆。
77.可选地,本发明实施例提供的基于线网分布的可布线性驱动的全局布局装置,还可以包括:还原模块;该还原模块用于:在调用缩减模块之后,且未调用探测窗口应用子模块之前,统计布局面积是否充足;如果充足,继续调用探测窗口应用子模块;如果不充足,按照膨胀面积从小到大的顺序,逐个还原本次已膨胀的标准单元,直至布局面积充足时停止还原。
78.可选地,第一虚拟探测窗口在垂直方向上的宽度等于布局模块701中进行全局布局时所设定的行高的m倍,第二虚拟探测窗口在水平方向上的宽度等于布局模块701中进行全局布局时所设定的行高的m倍;m为大于或等于1的整数。
79.可选地,第一上限和第二上限均按照下述公式进行确定:;其中,当确定第一上限时,代表第一上限,代表第一虚拟探测窗口探测到的相关单元的数量,代表第一虚拟探测窗口所属的第一目标单元进行垂直膨胀时所基于的垂直膨胀系数;当确定第二上限时,代表第二上限,代表第二虚拟探测窗口探测到的相关单元的数量,代表第二虚拟探测窗口所属的第二目标单元进行水平膨胀时所基于的水平膨胀系数。
80.可选地,在调用布局模块时,当是初次进行全局布局时,布局模块利用基于静电学模型的全局布局算法对待布局的各个标准单元进行全局布局,得到第一布局结果;当非初次进行全局布局时,布局模块基于初次进行全局布局时的经验参数,利用基于静电学模型的全局布局算法对待布局的各个标准单元进行全局布局,得到第一布局结果。
81.本发明提供的基于线网分布的可布线性驱动的全局布局装置中,在可布线性优化阶段,即在可布线性优化模块中,只要标准单元所在的线网水平穿过或垂直穿过拥塞g

cell,且该标准单元的坐标与拥塞g

cell的坐标在另一方向上有所重叠,则该标准单元便会相应的膨胀;因此,本发明将与拥塞g

cell相关的所有标准单元均进行了膨胀,没有遗漏。并且,本发明在可布线性优化阶段使用两种虚拟探测窗口来探测参与膨胀的标准单元的相关单元,该相关单元与该标准单元不在同一条线网,且同样是与拥塞g

cell相关标准单元;这样,即使是长线网上相距较远的标准单元,他们之间的互相影响本发明也将其可考虑在内。虚拟探测窗口在探测到相关单元后,会对虚拟探测窗口所属的标准单元施加额外的密度梯度,从而在后续重新进行全局布局时,可以促使分布密集的长线网分开,缓解长线网造成的布线拥塞而导致全局布局效果不佳的情况。综上可见,本发明能够得到对布线更为友好的布局结果,从而减少布线溢出的概率。
82.本发明还提供了一种计算机可读存储介质。在该计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时,实现上述任一种基于线网分布的可布线性驱动的全局布局方法的方法步骤。
83.可选地,该计算机可读存储介质可以为非易失性存储器(non

volatile memory,nvm),例如为至少一个磁盘存储器。
84.可选的,计算机可读存储器还可以是至少一个位于远离前述处理器的存储装置。
85.在本发明的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一种基于线网分布的可布线性驱动的全局布局方法的方法步骤。
86.需要说明的是,对于装置/存储介质/计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
87.需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
88.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
89.尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。
90.以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1