1.本发明涉及芯片布局技术领域,更具体地,涉及一种基于图神经网络的芯 片布局方法。
背景技术:2.芯片布局主要指的是确定待设计芯片中的各个单元或模块在电路板上的摆 放位置的过程。布局是集成电路版图设计的关键环节之一,也是整个芯片设计 过程中最为复杂和耗时的步骤。
3.过去十年里,系统和硬件的进步极大地促进了机器学习领域的快速发展, 因此利用机器学习算法实现快速准确的芯片布局方法具有现实意义和实用价值。 现有的芯片布局方法主要依赖于电子设计自动化的布局工具,这种布局方法大 多需要人工干预且需要参与人具备较高的布局经验;其余的芯片布局方法,如 模拟退火方法存在智能化水平较低、计算量大的问题,强化学习方法存在迭代 次数多、训练时间长的问题。
4.现有技术公开了一种基于深度强化学习的优化芯片布局系统及方法。该方 法利用数据预处理模块读取并解析pl、net文件,将其中的网表图信息转换为智 能体的初始状态以及奖励函数;策略网络模块通过卷积神经网络和图神经网络 分别得到分别包含粗细粒度的全局嵌入特征与结点嵌入特征,将两个网络分别 得到的特征向量融合,最终预测出当前时刻行为,即元件可能的放置位置的概 率分布。该方案基于强化学习的思路,存在需要的训练数据规模大、需要迭代 次数多、需要训练时间长的缺陷。
5.为此,结合以上需求和现有技术缺陷,本技术提出了一种基于图神经网络 的芯片布局方法。
技术实现要素:6.本发明提供了一种基于图神经网络的芯片布局方法,能够在实现智能化芯 片布局的同时,节约时间投入和人力成本。
7.本发明的首要目的是为解决上述技术问题,本发明的技术方案如下:
8.本发明第一方面提供了一种基于图神经网络的芯片布局方法,包括以下步 骤:
9.s1、依照不同的资源类型将电路转化为图数据,在待布局的芯片表面建立 二维坐标系x-y,对数据集进行标注并以设定比例划分为训练集和验证集。
10.s2、构建图神经网络模型,分别设定与x坐标相关和与y坐标相关的损失 函数,并设定loss阈值。
11.s3、将训练集作为输入数据分别训练图神经网络模型并更新模型,将验证 集作为输入数据计算损失函数的值,直到loss值小于设定的阈值,得到预测x 坐标的第一模型、预测y坐标的第二模型。
12.s4、将待布局芯片中各个单元的数据与芯片的图数据预处理后输入第一模 型与第二模型,合并第一模型与第二模型的预测结果,得到待布局芯片上每个 单元的x、y坐标
值,输出最终的布局结果。
13.进一步的,步骤s1中所述图数据是异构图,所述异构图中不同类型的节点 对应不同类型的芯片资源。
14.其中,由于芯片的资源主要有可配置逻辑单元、存储单元、多功能高性能 io以及时钟资源等模块,且每一类资源都有自己独特的分布规律,所以该电路 图网表数据能够映射成异构图,即不同类别的资源对应异构图上不同类型的节 点。
15.进一步的,步骤s1所述标注数据集具体为:将可编程逻辑器件芯片的所有 资源分为n个类,其中n为自然数,对每一类资源包括的不同单元进行二维平 面坐标系上的位置标注,标注样式为,类别:n和位置:其中 n=1,2,
…
,n,i=1,2,
…
,mn,其中mn为第n类资源包含的单元总数。
16.进一步的,步骤s2中所述图神经网络模型,其主体为根据资源类型堆叠的 n组异构图神经网络hgnn层,其中每组异构图神经网络hgnn层的层数均为 3层。
17.进一步的,所述图神经网络模型包括两部分:
18.第一部分包括了n组并列的gnn网络层和mlp层,所述gnn网络层和 mlp层顺次连接,第一部分输入的节点信息进入对应资源类型组别的gnn网 络中,然后将gnn网络的输出值输入至mlp层,得到对应资源类型的节点嵌 入表达。
19.第二部分包括一组顺次连接的mlp层和fc层,第一部分输出的多种资源 类型的节点嵌入表达经过mlp层的维度变换后输入fc层,并由fc层输出最 终的坐标值。
20.进一步的,步骤s2中所述损失函数的数学表达形式为:
[0021][0022][0023]
其中,l1为x坐标相关的损失函数,xi为与x相关的图神经网络模型的输 出值;l2为y坐标相关的损失函数,yi为与y相关的图神经网络模型的输出值。
[0024]
进一步的,所述图神经网络模型通过adam优化器实现模型的更新。
[0025]
其中,所述图神经网络模型在损失函数的指导下,应用梯度下降法完成模 型的训练。
[0026]
进一步的,所述步骤s3的训练过程如下:
[0027]
s31、将训练集的数据输入x坐标相关的图神经网络模型,利用输出值计算 损失函数l1的值并更新模型。
[0028]
s32、将验证集的数据输入更新后的模型,得到的验证集输出值计算模型的 loss值,判断loss值是否小于设定的阈值,若小于阈值时训练完成,保存为预 测x坐标的第一模型,否则重复训练步骤s31-s32。
[0029]
s33、将训练集的数据输入y坐标相关的图神经网络模型,利用输出值计算 损失函数l2的值并更新模型。
[0030]
s34、将验证集的数据输入更新后的模型,得到的验证集输出值计算模型的 loss值,判断loss值是否小于设定的阈值,若小于阈值时训练完成,保存为预 测y坐标的第二模
型,否则重复训练步骤s33-s34。
[0031]
进一步的,所述步骤s4具体为:将待布局芯片中各个单元的属性数据与芯 片的网表数据预处理后输入到第一模型中,得到待布局芯片上每个单元的x坐 标值;将待布局芯片中各个单元的属性数据与芯片的网表数据预处理后输入到 第二模型中,得到待布局芯片上每个单元的y坐标值;合并第一模型与第二模 型的预测结果,得到最终的布局结果。
[0032]
本发明第二方面提供了一种基于图神经网络的芯片布局系统,包括:数据 预处理及数据标记模块、图神经网络初始化模块、模型训练及保存模块、模型 布局预测模块;其中数据预处理及数据标记模块读取并解析电路网表数据文件, 根据不同的资源类型,将电路的网表数据转化为图数据,构建坐标系,为芯片 上的每一类资源包含的各个单元的位置作标注,并划分数据集;图神经网络初 始化模块依据芯片上资源类型的总数目,搭建以异构图神经网络为主体的模型 架构,初始化整个模型的参数并设置损失函数;模型训练及保存模块在损失函 数的指导下,完成模型的训练,并对训练好的模型进行保存;模型布局预测模 块应用训练好的模型计算待布局芯片上各个单元的x、y坐标值,输出最终的布 局结果。
[0033]
与现有技术相比,本发明技术方案的有益效果是:
[0034]
本发明提供了一种基于图神经网络的芯片布局方法,通过将电路网表数据 转化成图数据,借助损失函数训练图神经网络模型,实现智能化芯片布局,具 有节约时间投入和人力成本的特点。
附图说明
[0035]
图1为本发明一种基于图神经网络的芯片布局方法的流程图。
[0036]
图2为本发明一种基于图神经网络的芯片布局方法的hgnn模型主体结构 示意图。
[0037]
图3为本发明一种基于图神经网络的芯片布局方法的hgnn模型权重更新 的示意图。
[0038]
图4为本发明一种基于图神经网络的芯片布局系统的结构示意图。
具体实施方式
[0039]
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和 具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情 况下,本技术的实施例及实施例中的特征可以相互组合。
[0040]
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发 明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范 围并不受下面公开的具体实施例的限制。
[0041]
实施例1
[0042]
如图1-图2所示,本发明提供了一种基于图神经网络的芯片布局方法,具 体的,包括以下步骤:
[0043]
s1、依照不同的资源类型将电路转化为图数据,在待布局的芯片表面建立 二维坐标系x-y,对数据集进行标注并以设定比例划分为训练集和验证集。
[0044]
s2、构建图神经网络模型,分别设定与x坐标相关和与y坐标相关的损失 函数,并设定loss阈值。
[0045]
s3、将训练集作为输入数据分别训练图神经网络模型并更新模型,将验证 集作为输入数据计算损失函数的值,直到loss值小于设定的阈值,得到预测x 坐标的第一模型、预测y坐标的第二模型。
[0046]
s4、将待布局芯片中各个单元的数据与芯片的图数据预处理后输入第一模 型与第二模型,合并第一模型与第二模型的预测结果,得到待布局芯片上每个 单元的x、y坐标值,输出最终的布局结果。
[0047]
进一步的,步骤s1中所述图数据是异构图,所述异构图中不同类型的节点 对应不同类型的芯片资源。
[0048]
其中,由于芯片的资源主要有可配置逻辑单元、存储单元、多功能高性能 io以及时钟资源等模块,且每一类资源都有自己独特的分布规律,所以该电路 图网表数据能够映射成异构图,即不同类别的资源对应异构图上不同类型的节 点。
[0049]
进一步的,步骤s1所述标注数据集具体为:将可编程逻辑器件芯片的所有 资源分为n个类,其中n为自然数,对每一类资源包括的不同单元进行二维平 面坐标系上的位置标注,标注样式为,类别:n和位置:其中 n=1,2,
…
,n,i=1,2,
…
,mn,其中mn为第n类资源包含的单元总数。
[0050]
其中,在一个具体的实施例中划分训练集和验证集的比例为8:2或9:1。
[0051]
进一步的,步骤s2中所述图神经网络模型,其主体为根据资源类型堆叠的 n组异构图神经网络hgnn层,其中每组异构图神经网络hgnn层的层数均为 3层。
[0052]
进一步的,所述图神经网络模型包括两部分:
[0053]
第一部分包括了n组并列的gnn网络层和mlp层,所述gnn网络层和 mlp层顺次连接,第一部分输入的节点信息进入对应资源类型组别的gnn网 络中,然后将gnn网络的输出值输入至mlp层,得到对应资源类型的节点嵌 入表达。
[0054]
第二部分包括一组顺次连接的mlp层和fc层,第一部分输出的多种资源 类型的节点嵌入表达经过mlp层的维度变换后输入fc层,并由fc层输出最 终的坐标值。
[0055]
进一步的,步骤s2中所述损失函数的数学表达形式为:
[0056][0057][0058]
其中,l1为x坐标相关的损失函数,xi为与x相关的图神经网络模型的输 出值;l2为y坐标相关的损失函数,yi为与y相关的图神经网络模型的输出值。
[0059]
进一步的,所述图神经网络模型通过adam优化器实现模型的更新。
[0060]
其中,所述图神经网络模型在损失函数的指导下,应用梯度下降法完成模 型的训练。
[0061]
进一步的,所述步骤s3的训练过程如下:
[0062]
s31、将训练集的数据输入x坐标相关的图神经网络模型,利用输出值计算 损失函数l1的值并更新模型。
[0063]
s32、将验证集的数据输入更新后的模型,得到的验证集输出值计算模型的 loss
值,判断loss值是否小于设定的阈值,若小于阈值时训练完成,保存为预 测x坐标的第一模型,否则重复训练步骤s31-s32。
[0064]
s33、将训练集的数据输入y坐标相关的图神经网络模型,利用输出值计算 损失函数l2的值并更新模型。
[0065]
s34、将验证集的数据输入更新后的模型,得到的验证集输出值计算模型的 loss值,判断loss值是否小于设定的阈值,若小于阈值时训练完成,保存为预 测y坐标的第二模型,否则重复训练步骤s33-s34。
[0066]
进一步的,所述步骤s4具体为:将待布局芯片中各个单元的属性数据与芯 片的网表数据预处理后输入到第一模型中,得到待布局芯片上每个单元的x坐 标值;将待布局芯片中各个单元的属性数据与芯片的网表数据预处理后输入到 第二模型中,得到待布局芯片上每个单元的y坐标值;合并第一模型与第二模 型的预测结果,得到最终的布局结果。
[0067]
实施例2
[0068]
基于上述实施例1,结合图3,本实施例详细阐述利用训练好的图神经网络 模型获取图数据中节点的过程。
[0069]
在一个具体的实施例中,选取图数据中的六角星形节点进行获取,如图3 所示,该节点共有两种类型的邻居:圆形节点与三角形节点,应用训练好的模 型1中的gnn网络获取两种类型邻居节点的嵌入表示以及六角星形节点本身的 嵌入表示e1;然后,将同一种类型的邻居节点的表示进行拼接后,分别输入到 模型1的mlp网络中,得到两种类型邻居节点的mlp层的输出。然后,将 e1,e2,e3拼接后输入到接下来的mlp网络中,即可得到六角星形节点的最终表示 emb1。最后,将emb1输入到模型1的全连接层(fc)即可输出该节点横坐标的 最终预测值x1;同理,应用训练好的模型2可以获得该节点纵坐标的最终预测 值y1。此预测得到的该节点的二维坐标(x1,y1)即为该节点布局后的具体位置。
[0070]
实施例3
[0071]
如图4所示,本发明还提供了一种基于图神经网络的芯片布局系统,包括: 数据预处理及数据标记模块、图神经网络初始化模块、模型训练及保存模块、 模型布局预测模块;其中数据预处理及数据标记模块读取并解析电路网表数据 文件,根据不同的资源类型,将电路的网表数据转化为图数据,构建坐标系, 为芯片上的每一类资源包含的各个单元的位置作标注,并划分数据集;图神经 网络初始化模块依据芯片上资源类型的总数目,搭建以异构图神经网络为主体 的模型架构,初始化整个模型的参数并设置损失函数;模型训练及保存模块在 损失函数的指导下,完成模型的训练,并对训练好的模型进行保存;模型布局 预测模块应用训练好的模型计算待布局芯片上各个单元的x、y坐标值,输出最 终的布局结果。
[0072]
其中,每个模块具体的工作原理如下:
[0073]
数据预处理及数据标记模块依照不同的资源类型将电路转化为图数据,在 待布局的芯片表面建立二维坐标系x-y,对数据集进行标注并以设定比例划分为 训练集和验证集。
[0074]
进一步的,所述图数据是异构图,所述异构图中不同类型的节点对应不同 类型的芯片资源。
[0075]
进一步的,所述标注数据集具体为:将可编程逻辑器件芯片的所有资源分 为n个
类,其中n为自然数,对每一类资源包括的不同单元进行二维平面坐标 系上的位置标注,标注样式为,类别:n和位置:其中n=1,2,
…
,n, i=1,2,
…
,mn,其中mn为第n类资源包含的单元总数。
[0076]
图神经网络初始化模块构建图神经网络模型,分别设定与x坐标相关和与 y坐标相关的损失函数,并设定loss阈值。
[0077]
进一步的,所述图神经网络模型,其主体为根据资源类型堆叠的n组异构 图神经网络hgnn层,其中每组异构图神经网络hgnn层的层数均为3层。
[0078]
进一步的,所述图神经网络模型包括两部分:
[0079]
第一部分包括了n组并列的gnn网络层和mlp层,所述gnn网络层和 mlp层顺次连接,第一部分输入的节点信息进入对应资源类型组别的gnn网 络中,然后将gnn网络的输出值输入至mlp层,得到对应资源类型的节点嵌 入表达。
[0080]
第二部分包括一组顺次连接的mlp层和fc层,第一部分输出的多种资源 类型的节点嵌入表达经过mlp层的维度变换后输入fc层,并由fc层输出最 终的坐标值。
[0081]
进一步的,所述损失函数的数学表达形式为:
[0082][0083][0084]
其中,l1为x坐标相关的损失函数,xi为与x相关的图神经网络模型的输 出值;l2为y坐标相关的损失函数,yi为与y相关的图神经网络模型的输出值。
[0085]
进一步的,所述图神经网络模型通过adam优化器实现模型的更新。
[0086]
其中,所述图神经网络模型在损失函数的指导下,应用梯度下降法完成模 型的训练。
[0087]
模型训练及保存模块将训练集作为输入数据分别训练图神经网络模型并更 新模型,将验证集作为输入数据计算损失函数的值,直到loss值小于设定的阈 值,得到预测x坐标的第一模型、预测y坐标的第二模型。
[0088]
进一步的,所述训练过程如下:
[0089]
s31、将训练集的数据输入x坐标相关的图神经网络模型,利用输出值计算 损失函数l1的值并更新模型。
[0090]
s32、将验证集的数据输入更新后的模型,得到的验证集输出值计算模型的 loss值,判断loss值是否小于设定的阈值,若小于阈值时训练完成,保存为预 测x坐标的第一模型,否则重复训练步骤s31-s32。
[0091]
s33、将训练集的数据输入y坐标相关的图神经网络模型,利用输出值计算 损失函数l2的值并更新模型。
[0092]
s34、将验证集的数据输入更新后的模型,得到的验证集输出值计算模型的 loss值,判断loss值是否小于设定的阈值,若小于阈值时训练完成,保存为预 测y坐标的第二模型,否则重复训练步骤s33-s34
[0093]
模型布局预测模块将待布局芯片中各个单元的数据与芯片的图数据预处理 后输
入第一模型与第二模型,合并第一模型与第二模型的预测结果,得到待布 局芯片上每个单元的x、y坐标值,输出最终的布局结果。
[0094]
进一步的,所述布局预测过程具体为:将待布局芯片中各个单元的属性数 据与芯片的网表数据预处理后输入到第一模型中,得到待布局芯片上每个单元 的x坐标值;将待布局芯片中各个单元的属性数据与芯片的网表数据预处理后 输入到第二模型中,得到待布局芯片上每个单元的y坐标值;合并第一模型与 第二模型的预测结果,得到最终的布局结果。
[0095]
附图中描述结构位置关系的图标仅用于示例性说明,不能理解为对本专利 的限制。
[0096]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并 非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述 说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有 的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替 换和改进等,均应包含在本发明权利要求的保护范围之内。
技术特征:1.一种基于图神经网络的芯片布局方法,其特征在于,包括以下步骤:s1、依照不同的资源类型将电路转化为图数据,在待布局的芯片表面建立二维坐标系x-y,对数据集进行标注并以设定比例划分为训练集和验证集;s2、构建图神经网络模型,分别设定与x坐标相关和与y坐标相关的损失函数,并设定loss阈值;s3、将训练集作为输入数据分别训练图神经网络模型并更新模型,将验证集作为输入数据计算损失函数的值,直到loss值小于设定的阈值,得到预测x坐标的第一模型、预测y坐标的第二模型;s4、将待布局芯片中各个单元的数据与芯片的图数据预处理后输入第一模型与第二模型,合并第一模型与第二模型的预测结果,得到待布局芯片上每个单元的x、y坐标值,输出最终的布局结果。2.根据权利要求1所述的一种基于图神经网络的芯片布局方法,其特征在于,步骤s1中所述图数据是异构图,所述异构图中不同类型的节点对应不同类型的芯片资源。3.根据权利要求1所述的一种基于图神经网络的芯片布局方法,其特征在于,步骤s1所述标注数据集具体为:将可编程逻辑器件芯片的所有资源分为n个类,其中n为自然数,对每一类资源包括的不同单元进行二维平面坐标系上的位置标注,标注样式为,类别:n和位置:其中n=1,2,
…
,n,i=1,2,
…
,m
n
,其中m
n
为第n类资源包含的单元总数。4.根据权利要求1所述的一种基于图神经网络的芯片布局方法,其特征在于,步骤s2中所述图神经网络模型,其主体为根据资源类型堆叠的n组异构图神经网络hgnn层,其中每组异构图神经网络hgnn层的层数均为3层。5.根据权利要求4所述的一种基于图神经网络的芯片布局方法,其特征在于,所述图神经网络模型包括两部分:第一部分包括了n组并列的gnn网络层和mlp层,所述gnn网络层和mlp层顺次连接,第一部分输入的节点信息进入对应资源类型组别的gnn网络中,然后将gnn网络的输出值输入至mlp层,得到对应资源类型的节点嵌入表达;第二部分包括一组顺次连接的mlp层和fc层,第一部分输出的多种资源类型的节点嵌入表达经过mlp层的维度变换后输入fc层,并由fc层输出最终的坐标值。6.根据权利要求1所述的一种基于图神经网络的芯片布局方法,其特征在于,步骤s2中所述损失函数的数学表达形式为:所述损失函数的数学表达形式为:其中,l1为x坐标相关的损失函数,x
i
为与x相关的图神经网络模型的输出值;l2为y坐标相关的损失函数,y
i
为与y相关的图神经网络模型的输出值。7.根据权利要求6所述的一种基于图神经网络的芯片布局方法,其特征在于,所述图神经网络模型通过adam优化器实现模型的更新。8.根据权利要求7所述一种基于图神经网络的芯片布局方法,其特征在于,所述步骤s3
的训练过程如下:s31、将训练集的数据输入x坐标相关的图神经网络模型,利用输出值计算损失函数l1的值并更新模型:s32、将验证集的数据输入更新后的模型,得到的验证集输出值计算模型的loss值,判断loss值是否小于设定的阈值,若小于阈值时训练完成,保存为预测x坐标的第一模型,否则重复训练步骤s31-s32;s33、将训练集的数据输入y坐标相关的图神经网络模型,利用输出值计算损失函数l2的值并更新模型;s34、将验证集的数据输入更新后的模型,得到的验证集输出值计算模型的loss值,判断loss值是否小于设定的阈值,若小于阈值时训练完成,保存为预测y坐标的第二模型,否则重复训练步骤s33-s34。9.根据权利要求1所述一种基于图神经网络的芯片布局方法,其特征在于,所述步骤s4具体为:将待布局芯片中各个单元的属性数据与芯片的网表数据预处理后输入到第一模型中,得到待布局芯片上每个单元的x坐标值;将待布局芯片中各个单元的属性数据与芯片的网表数据预处理后输入到第二模型中,得到待布局芯片上每个单元的y坐标值;合并第一模型与第二模型的预测结果,得到最终的布局结果。10.一种基于图神经网络的芯片布局系统,包括:数据预处理及数据标记模块、图神经网络初始化模块、模型训练及保存模块、模型布局预测模块;其中数据预处理及数据标记模块读取并解析电路网表数据文件,根据不同的资源类型,将电路的网表数据转化为图数据,构建坐标系,为芯片上的每一类资源包含的各个单元的位置作标注,并划分数据集;图神经网络初始化模块依据芯片上资源类型的总数目,搭建以异构图神经网络为主体的模型架构,初始化整个模型的参数并设置损失函数;模型训练及保存模块在损失函数的指导下,完成模型的训练,并对训练好的模型进行保存;模型布局预测模块应用训练好的模型计算待布局芯片上各个单元的x、y坐标值,输出最终的布局结果。
技术总结本发明公开了一种基于图神经网络的芯片布局方法,包括以下步骤:S1、将电路转化为图数据,建立二维坐标系x-y,对数据集进行标注并划分训练集和验证集;S2、构建图神经网络模型,设定损失函数,并设定loss阈值;S3、将训练集作为输入数据分别训练图神经网络模型并更新模型,得到预测x坐标的第一模型、预测y坐标的第二模型;S4、将待布局芯片中各个单元的数据与芯片的图数据预处理后输入第一模型与第二模型得到待布局芯片上每个单元的x、y坐标值,输出最终的布局结果。本方法与传统芯片布局技术相比,通过将电路网表数据转化成图数据,借助损失函数训练图神经网络模型,实现智能化芯片布局,具有节约时间投入和人力成本的特点。具有节约时间投入和人力成本的特点。具有节约时间投入和人力成本的特点。
技术研发人员:王玉莹 郝沁汾
受保护的技术使用者:无锡芯光互连技术研究院有限公司
技术研发日:2022.06.24
技术公布日:2022/11/1