当前位置: 首页 > 专利查询>北京大学专利>正文

一种GPU加速构建最小直角斯坦纳树的芯片布线方法技术

技术编号:36220419 阅读:10 留言:0更新日期:2023-01-04 12:18
本发明专利技术公布了一种GPU加速构建最小直角斯坦纳树的芯片布线方法,属于集成电路设计自动化技术领域,涉及集成电路芯片布线技术,设计了一种应用于芯片布线的GPU加速计算的最小直角斯坦纳树构建方法,使用GPU大规模并行加速多个线网的斯坦纳树搜索过程,包括:查找表初始化,获得扁平化的斯坦纳树分支列表和分支查找表索引,并从CPU内存复制到GPU显存;线网数据初始化,获得线网的管脚列表和管脚起始位置索引,并从CPU内存复制到GPU显存;线网并行分割,建立分层的线网分割森林;线网并行求解合并;本发明专利技术提供的技术方案提升了集成电路芯片布线的计算效率。布线的计算效率。布线的计算效率。

【技术实现步骤摘要】
一种GPU加速构建最小直角斯坦纳树的芯片布线方法


[0001]本专利技术属于集成电路设计自动化
,涉及集成电路芯片布线技术中的斯坦纳树构建技术,具体涉及一种GPU加速计算的最小直角斯坦纳树构建方法用于芯片布线,使用GPU大规模并行加速多个线网的斯坦纳树搜索过程,提升了集成电路芯片布线的计算效率。

技术介绍

[0002]布线是芯片设计的核心步骤,在这一步骤中,芯片设计自动化系统会为芯片中的每一个线网计算布线的方案。芯片中的线网是一个芯片管脚的集合,每个管脚是一个二维的坐标,代表它在芯片上的位置。芯片布线的任务就是使用金属线将每个线网内部的管脚连接起来。在芯片设计的早期步骤中,布线的方案通常使用最小直角斯坦纳树(Rectilinear Steiner Minimum Tree, RSMT)进行近似。对于一个给定的线网,只使用横线和竖线将线网的所有管脚连接起来,可以经过任意中转点,就得到了一个直角斯坦纳树。最小直角斯坦纳树定义为总线长最短的直角斯坦纳树。
[0003]由于最小直角斯坦纳树构建问题很难精确求解,因此,现有方法在时间和求解精度上追求平衡。其中,快速查表估计法(Fast Look

Up Table Estimation, FLUTE)是最典型的方法,能够在维持较优的求解精度同时,达到较高的计算效率。然而,随着芯片设计规模的不断提升,一次布线需要对数百万个线网求解最小直角斯坦纳树,花费大量时间。包括FLUTE在内的现有方法仅支持CPU上运行,受限于多核CPU的并行能力和内存调度能力,也只能利用最多16线程的并行计算资源,难以高效完成大规模电路的快速布线估计。

技术实现思路

[0004]本专利技术的目的是提供一种GPU加速计算的最小直角斯坦纳树构建方法,高效地完成大规模电路的快速布线估计,以克服上述现有最小直角斯坦纳树构建方法存在的不足。
[0005]本专利技术通过将斯坦纳树搜索过程设计成为GPU友好的广度优先计算流程,利用GPU的大规模数据并行计算能力来同时处理大量线网的最小直角斯坦纳树构建任务。在不降低求解精度的前提下,提升了最小直角斯坦纳树的构建效率,提升了集成电路芯片布线的计算效率。
[0006]本专利技术的技术方案是:一种GPU加速计算构建最小直角斯坦纳树的芯片布线方法,包括步骤:查找表初始化,线网数据初始化,线网并行分割,线网并行求解合并。在查找表初始化过程中,使用快速查表估计法(FLUTE)对线网度数小于查找表阈值的所有线网,构建最小直角斯坦纳树查找表;将最小直角斯坦纳树查找表扁平化,获得扁平化的斯坦纳树分支列表和分支查找表索引;将扁平化的斯坦纳树分支列表和分支查找表索引从CPU内存复制到GPU显存。在线网数据初始化过程中,将输入的线网扁平化,获得线网的管脚列表和管脚起始位置索引,将管脚列表和起始位置索引从CPU内存复制到GPU显存。在线网并行分割步骤中,在GPU上对线网的
管脚列表和管脚起始位置索引进行迭代分割,建立分层的线网分割森林;在获得的下一层线网管脚列表和管脚起始位置索引上重复进行分割操作,直至所有线网的管脚个数都小于查找表阈值。在线网并行求解合并过程中,在GPU上对分割的线网进行求解,若度数小于查找表阈值,则通过扁平化的斯坦纳树分支列表和分支查找表索引获得线网的最小直角斯坦纳树,若度数大于查找表阈值,则从下层线网的求解结果合并得到本线网的最小直角斯坦纳树;对线网求解的顺序是在分层的线网分割森林上从下层到上层;获得顶层线网的合并结果,即为输入线网的最小直角斯坦纳树求解结果。具体包含如下步骤:A. 查找表初始化;使用FLUTE对芯片中线网度数小于查找表阈值的所有线网构建最小直角斯坦纳树查找表,包含从线网管脚相对位置编码到潜在最小直角斯坦纳树的映射,其中,定义线网度数为线网中的管脚数量,潜在最小直角斯坦纳树使用FLUTE方法得到,查找表阈值为一个常数。
[0007]将最小直角斯坦纳树查找表扁平化,获得扁平化的斯坦纳树分支列表和分支查找表索引。具体过程是将潜在最小直角斯坦纳树的所有分支按照管脚相对位置编码顺序存放在数组中,使得上一个斯坦纳树的最后一个分支与下一斯坦纳树的首个分支相邻,得到的分支数组即为扁平化的斯坦纳树分支列表;计算每个潜在最小直角斯坦纳树的首个分支在数组中的下标,得到分支查找表索引。
[0008]将扁平化的斯坦纳树分支列表和分支查找表索引从CPU内存复制到GPU显存。
[0009]B. 线网数据初始化将芯片中的所有线网(即输入的线网)扁平化,获得线网的管脚列表和管脚起始位置索引,其中线网的管脚列表包含横坐标列表和纵坐标列表。具体过程是将输入的线网中所有管脚表示为横坐标和纵坐标,将横坐标和纵坐标分别按照线网编号顺序存放在两个数组中,得到横坐标列表和纵坐标列表,即为线网的管脚列表;计算每个线网的首个管脚在横坐标列表和纵坐标列表中的下标,得到管脚起始位置索引。
[0010]将管脚列表和起始位置索引从CPU内存复制到GPU显存。
[0011]C. 线网并行分割在GPU上对线网的管脚列表和管脚起始位置索引进行迭代分割,建立分层的线网分割森林,线网分割森林由多个线网分割树组成,每个线网分割树的节点是线网,连接父节点和子节点的树边代表由父节点线网分割得到子节点线网,根节点为输入的线网,叶子结点为无需继续分割的线网,即管脚个数小于查找表阈值的线网。
[0012]迭代分割的具体过程是,从输入的线网开始进行分割操作,输入的线网构成第一层线网。对本层内的每个线网,通过管脚起始位置索引获得线网管脚列表中这个线网的管脚所在的区间。对度数已经小于查找表阈值的线网,不做任何操作;对度数大于等于查找表阈值的线网,选择其中的一个管脚作为分割点将线网分割成两个度数较小的线网,即为当前线网在线网分割树上的子节点。分割的具体方式是,将原始线网分割成上下或左右两个部分,尝试多个分割方案,选择分割点管脚和分割方向,使得分割成的线网尽量均匀,方法是枚举所有分割点管脚和分割方向,计算分割得到的两个线网的度数之差,选择能够让度数之差最小的分割方案。对每个原始线网进行分割,得到多组子节点。将分割得到的每个线网用线网分割树的树边连接到它的原始线网,获得了下一层线网管脚列表。在获得的下一
层线网管脚列表和管脚起始位置索引上重复进行分割操作,直至所有线网的管脚个数都小于查找表阈值。
[0013]D. 线网并行求解合并在GPU上对分割的线网进行求解。求解的具体方式是:1. 若线网度数小于查找表阈值,则通过扁平化的斯坦纳树分支列表和分支查找表索引获得线网的最小直角斯坦纳树,具体方法是计算管脚的相对位置编码,通过分支查找表索引获得最小直角斯坦纳树的所有分支在分支列表中的区间,这些分支即构成本线网的最小直角斯坦纳树。
[0014]2. 若度数大于查找表阈值,则从下层线网的求解结果合并得到本线网的最小直角斯坦纳树,具体方法是将下层线网的最小直角斯坦纳树在分割点处连接起来。对多个分割方案,取直角斯坦纳树总线长最小的方案作为本线网的分割方案。
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种GPU加速构建最小直角斯坦纳树的芯片布线方法,其特征是,包括步骤:A. 查找表初始化,获得扁平化的斯坦纳树分支列表和分支查找表索引,并从CPU内存复制到GPU显存;包括:A1.对芯片中线网度数小于查找表阈值的所有线网,构建最小直角斯坦纳树查找表;最小直角斯坦纳树查找表包含从线网管脚相对位置编码到潜在最小直角斯坦纳树的映射;查找表阈值为常数;A2.将最小直角斯坦纳树查找表扁平化,获得扁平化的斯坦纳树分支列表和分支查找表索引;具体过程是将潜在最小直角斯坦纳树的所有分支按照管脚相对位置编码顺序存放在数组中,使得上一个斯坦纳树的最后一个分支与下一斯坦纳树的首个分支相邻,得到的分支数组即为扁平化的斯坦纳树分支列表;计算每个潜在最小直角斯坦纳树的首个分支在数组中的下标,得到分支查找表索引;A3.将扁平化的斯坦纳树分支列表和分支查找表索引从CPU内存复制到GPU显存;B. 线网数据初始化,获得线网的管脚列表和管脚起始位置索引,并从CPU内存复制到GPU显存;B1.芯片中所有线网为输入的线网,将输入的线网扁平化,获得线网的管脚列表和管脚起始位置索引,其中线网的管脚列表包含横坐标列表和纵坐标列表;B2.将管脚列表和起始位置索引从CPU内存复制到GPU显存;C. 线网并行分割,建立分层的线网分割森林;在GPU上对线网的管脚列表和管脚起始位置索引进行迭代分割,建立分层的线网分割森林,线网分割森林由多个线网分割树组成,每个线网分割树的节点是线网,连接父节点和子节点的树边代表由父节点线网分割得到子节点线网,根节点为输入的线网,叶子结点为无需继续分割的线网,即管脚个数小于查找表阈值的线网;迭代分割的具体过程包括:C1.从输入的线网开始进行分割操作,输入的线网构成第一层线网;C2.对本层内的每个线网,通过管脚起始位置索引获得线网管脚列表中这个线网的管脚所在的区间;C3.定义线网度数为线网中的管脚数量,对度数已经小于查找表阈值的线网,不做任何操作;对度数大于等于查找表阈值的线网,选择其中的一个管脚作为分割点,将线网分割成两个线网,即为当前线网在线网分割树上的子节点;D. 线网并行求解合并:在GPU上对分割的线网进行求解,求解的具体方式是:D1.若线网度数小于查找表阈值,则通过扁平化的斯坦纳树分支列表和分支查找表索引获得线网的最小直角斯坦纳树,具体方法是计算管脚的相对位置编码,通...

【专利技术属性】
技术研发人员:林亦波郭资政谷丰
申请(专利权)人:北京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1